diff --git a/DEPS b/DEPS
index ce7b1d8..2caac66 100644
--- a/DEPS
+++ b/DEPS
@@ -245,7 +245,7 @@
   # 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': '04151728ac473ac17384589d0492f8f899a535ff',
+  'skia_revision': '896d278a5c97bbf6409640f0944b996159a2d153',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
@@ -320,7 +320,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': '668bc7a4bc6bea854e8fc21f0e0ca3953ff5e95a',
+  'devtools_frontend_revision': '30df387ba8415d6f1670f49a86032b3f3baba239',
   # 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.
@@ -360,7 +360,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'dawn_revision': '678dc5649baf67651e0b82608952d3bc31d501de',
+  'dawn_revision': '1351d4bbd8d5b2e0942299c98d243f07aec4dbf2',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -384,7 +384,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libavif
   # and whatever else without interference from each other.
-  'libavif_revision': '411221a16d2cee76e14dad10963c1ffafe2cfa6b',
+  'libavif_revision': 'ded15fb7b41b0513e138ba457034a2fb91c1f2c9',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling nearby
   # and whatever else without interference from each other.
@@ -408,7 +408,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'libunwind_revision':    '57e4aff4a11ba10432307816505385d9344b3706',
+  'libunwind_revision':    'efb2cbd37494e4cab69fc3548e811c59ab01c9de',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -1427,7 +1427,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '5a202e1c1c7fb14817bb4df498d5f0ea71915653',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + 'c581dd4f599dc73735f6d006ea1d25ea80ce3165',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1648,7 +1648,7 @@
     Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + 'fc207904abbb29864991c71c7156336455a3d892',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '3ea5f714a9c1bd94eaef75d904a9fb2041922270',
+    Var('webrtc_git') + '/src.git' + '@' + '4f8a58c3d2e1fa5fcf7dc7f07bd89ad428fb09f0',
 
   'src/third_party/libgifcodec':
      Var('skia_git') + '/libgifcodec' + '@'+  Var('libgifcodec_revision'),
@@ -1718,7 +1718,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@7b25b2f29a4407f353679bc8cae691aa6aefa4bd',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@0c5efb6296a081fd6395bb5517b30ccf8784ef1f',
     'condition': 'checkout_src_internal',
   },
 
@@ -1748,7 +1748,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': 'OvR7qsLlZ9pCdAJRZ4z4fAzvSak7VqIz5d52wLIdF84C',
+        'version': 'j_rn66zrwG6xL4lUt0-O8kgYoBL0YaqsJDnCymTr2gsC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -1759,7 +1759,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/media_app/app',
-        'version': 'u3v3oqVCd4xvpeQtTrOfZ-1Yj1bM1Vf-Ol1pVezZB2YC',
+        'version': 'c1II7SXhPrHzkonOxa1ZQMiFLPuOdKv7OZiUqCuD4cYC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -1770,7 +1770,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/projector_app/app',
-        'version': 'e3MIsXKmh6VfKN1--QZqutBMCWHt_82YWo6w8OExsdEC',
+        'version': '2pqPQ_wSuAWQ24j8MpTLLqnEdas50f8Ua_yEa9ZDSlkC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -4748,6 +4748,7 @@
   # Dawn and Tint's revision are linked
   'src/third_party/dawn',
   'src/third_party/openscreen/src',
+  'src/third_party/devtools-frontend/src',
   'src/third_party/vulkan-deps',
   # src-internal has its own DEPS file to pull additional internal repos
   'src-internal',
diff --git a/ash/app_list/views/apps_grid_view.h b/ash/app_list/views/apps_grid_view.h
index 3719c646..0a85792 100644
--- a/ash/app_list/views/apps_grid_view.h
+++ b/ash/app_list/views/apps_grid_view.h
@@ -56,6 +56,7 @@
 class AppsGridViewFolderDelegate;
 class PulsingBlockView;
 class GhostImageView;
+class ScrollableAppsGridViewTest;
 
 // Represents the index to an item view in the grid.
 struct ASH_EXPORT GridIndex {
@@ -325,6 +326,8 @@
   AppsGridContextMenu* context_menu_for_test() { return context_menu_.get(); }
 
  protected:
+  friend ScrollableAppsGridViewTest;
+
   // The cardified apps grid should be scaled down by this factor.
   static constexpr float kCardifiedScale = 0.84f;
 
@@ -392,6 +395,17 @@
   // list item view during the drag.
   virtual void SetFocusAfterEndDrag() = 0;
 
+  struct VisibleItemIndexRange {
+    // The view index of the first visible item on the apps grid.
+    int first_index = 0;
+
+    // The view index of the last visible item on the apps grid.
+    int last_index = 0;
+  };
+
+  // Calculates the index range of the visible item views.
+  virtual VisibleItemIndexRange GetVisibleItemIndexRange() const = 0;
+
   // Sets the max number of columns that the grid can have.
   // For root apps grid view, the grid size depends on the space available to
   // apps grid view only, and `cols()` will match `max_columns`. I.e. if the
diff --git a/ash/app_list/views/paged_apps_grid_view.cc b/ash/app_list/views/paged_apps_grid_view.cc
index 9bdd897..7929cee3 100644
--- a/ash/app_list/views/paged_apps_grid_view.cc
+++ b/ash/app_list/views/paged_apps_grid_view.cc
@@ -660,6 +660,15 @@
     pagination_model_.SelectPage(index.page, false);
 }
 
+PagedAppsGridView::VisibleItemIndexRange
+PagedAppsGridView::GetVisibleItemIndexRange() const {
+  // TODO(https://crbug.com/1287334): implement the reorder animation for tablet
+  // mode.
+  NOTIMPLEMENTED();
+
+  return VisibleItemIndexRange();
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // PaginationModelObserver:
 
diff --git a/ash/app_list/views/paged_apps_grid_view.h b/ash/app_list/views/paged_apps_grid_view.h
index 3f5fee0c..742e58d 100644
--- a/ash/app_list/views/paged_apps_grid_view.h
+++ b/ash/app_list/views/paged_apps_grid_view.h
@@ -130,6 +130,7 @@
   const gfx::Vector2d CalculateTransitionOffset(
       int page_of_view) const override;
   void EnsureViewVisible(const GridIndex& index) override;
+  VisibleItemIndexRange GetVisibleItemIndexRange() const override;
 
   // PaginationModelObserver:
   void TotalPagesChanged(int previous_page_count, int new_page_count) override;
diff --git a/ash/app_list/views/scrollable_apps_grid_view.cc b/ash/app_list/views/scrollable_apps_grid_view.cc
index f6c4ac31..8740f2b 100644
--- a/ash/app_list/views/scrollable_apps_grid_view.cc
+++ b/ash/app_list/views/scrollable_apps_grid_view.cc
@@ -12,6 +12,7 @@
 #include "ash/app_list/model/app_list_item.h"
 #include "ash/app_list/model/app_list_model.h"
 #include "ash/app_list/views/app_list_item_view.h"
+#include "ash/controls/scroll_view_gradient_helper.h"
 #include "ash/public/cpp/app_list/app_list_config.h"
 #include "base/bind.h"
 #include "base/metrics/histogram_macros.h"
@@ -308,6 +309,63 @@
     view->ScrollViewToVisible();
 }
 
+ScrollableAppsGridView::VisibleItemIndexRange
+ScrollableAppsGridView::GetVisibleItemIndexRange() const {
+  // Indicate the first row on which item views are visible.
+  absl::optional<int> first_visible_row;
+
+  // Indicate the first invisible row that is right after the last visible row.
+  absl::optional<int> first_invisible_row;
+
+  const gfx::Rect scroll_view_visible_rect = scroll_view_->GetVisibleRect();
+  for (int view_index = 0; view_index < view_model()->view_size();
+       view_index += cols()) {
+    // Calculate an item view's bounds in the scroll content's coordinates.
+    gfx::Point item_view_local_origin;
+    views::View* item_view = view_model()->view_at(view_index);
+    views::View::ConvertPointToTarget(item_view, scroll_view_->contents(),
+                                      &item_view_local_origin);
+    gfx::Rect item_view_bounds_in_scroll_view =
+        gfx::Rect(item_view_local_origin, item_view->size());
+
+    // Calculate the overlapped area between the item view's bounds and the
+    // visible area.
+    item_view_bounds_in_scroll_view.InclusiveIntersect(
+        scroll_view_visible_rect);
+
+    // An item is deemed to visible if the overlapped area is not empty.
+    const bool is_current_row_visible =
+        !item_view_bounds_in_scroll_view.IsEmpty();
+
+    const int current_row = view_index / cols();
+    if (is_current_row_visible) {
+      // Already find the first visible row so continue.
+      if (first_visible_row)
+        continue;
+
+      first_visible_row = current_row;
+    } else if (first_visible_row) {
+      DCHECK(!first_invisible_row);
+      first_invisible_row = current_row;
+      break;
+    }
+  }
+
+  VisibleItemIndexRange result;
+
+  // Expect that at least one row is within the visible area.
+  if (first_visible_row) {
+    result.first_index = *first_visible_row * cols();
+
+    // If `first_invisible_row` is not found, it means that the last item view
+    // in the view model is visible.
+    result.last_index = first_invisible_row ? *first_invisible_row * cols() - 1
+                                            : view_model()->view_size() - 1;
+  }
+
+  return result;
+}
+
 const gfx::Vector2d ScrollableAppsGridView::CalculateTransitionOffset(
     int page_of_view) const {
   // The ScrollableAppsGridView has no page transitions.
diff --git a/ash/app_list/views/scrollable_apps_grid_view.h b/ash/app_list/views/scrollable_apps_grid_view.h
index 0138a5e..f9578037 100644
--- a/ash/app_list/views/scrollable_apps_grid_view.h
+++ b/ash/app_list/views/scrollable_apps_grid_view.h
@@ -66,6 +66,7 @@
   const gfx::Vector2d CalculateTransitionOffset(
       int page_of_view) const override;
   void EnsureViewVisible(const GridIndex& index) override;
+  VisibleItemIndexRange GetVisibleItemIndexRange() const override;
 
   views::ScrollView* scroll_view_for_test() { return scroll_view_; }
   base::OneShotTimer* auto_scroll_timer_for_test() {
diff --git a/ash/app_list/views/scrollable_apps_grid_view_unittest.cc b/ash/app_list/views/scrollable_apps_grid_view_unittest.cc
index 909fe07d..e26f678 100644
--- a/ash/app_list/views/scrollable_apps_grid_view_unittest.cc
+++ b/ash/app_list/views/scrollable_apps_grid_view_unittest.cc
@@ -149,6 +149,15 @@
     return GetAppListTestHelper()->GetScrollableAppsGridView();
   }
 
+  // Verifies the visible item index range.
+  bool IsIndexRangeExpected(int first_index, int last_index) {
+    const AppsGridView::VisibleItemIndexRange index_range =
+        apps_grid_view_->GetVisibleItemIndexRange();
+
+    return index_range.first_index == first_index &&
+           index_range.last_index == last_index;
+  }
+
   void AddPageBreakItem() { GetAppListTestHelper()->AddPageBreakItem(); }
 
   base::test::ScopedFeatureList scoped_feature_list_;
@@ -906,4 +915,122 @@
   EXPECT_FALSE(GetAppListTestHelper()->IsInFolderView());
 }
 
+// Verify on the apps grid with zero scroll offset.
+TEST_F(ScrollableAppsGridViewTest, VerifyVisibleRangeByDefault) {
+  PopulateApps(33);
+  ShowAppList();
+
+  const int cols = apps_grid_view_->cols();
+
+  // Assume that the column count is 5 so choose a number that is not the
+  // multiple of 5 as the total item count.
+  ASSERT_EQ(5, cols);
+
+  // Verify that the items on row 0 to row 3 are visible at default.
+  EXPECT_TRUE(
+      IsIndexRangeExpected(/*first_index=*/0, /*last_index=*/4 * cols - 1));
+}
+
+// Verify on the apps grid whose first row is unfilled.
+TEST_F(ScrollableAppsGridViewTest, VerifyVisibleRangeFirstRowUnfilled) {
+  PopulateApps(4);
+  ShowAppList();
+
+  const int cols = apps_grid_view_->cols();
+
+  // Assume that the column count is 5 so choose a smaller number as the total
+  // item count.
+  ASSERT_EQ(5, cols);
+
+  // Verify that the items on the first row are visible at default.
+  EXPECT_TRUE(IsIndexRangeExpected(/*first_index=*/0, /*last_index=*/3));
+}
+
+// Verify on the apps grid whose first row is filled.
+TEST_F(ScrollableAppsGridViewTest, VerifyVisibleRangeFirstRowFilled) {
+  PopulateApps(5);
+  ShowAppList();
+
+  const int cols = apps_grid_view_->cols();
+
+  // Assume that the column count is 5 so apps just fill the first row.
+  ASSERT_EQ(5, cols);
+
+  // Verify that the items on the first row are visible at default.
+  EXPECT_TRUE(IsIndexRangeExpected(/*first_index=*/0, /*last_index=*/4));
+}
+
+// Verify on the apps grid with a non-zero scroll offset.
+TEST_F(ScrollableAppsGridViewTest, VerifyVisibleRangeAfterScrolling) {
+  PopulateApps(33);
+  ShowAppList();
+
+  const int cols = apps_grid_view_->cols();
+
+  // Assume that the column count is 5 so choose a number that is not the
+  // multiple of 5 as the total item count.
+  ASSERT_EQ(5, cols);
+
+  // Scroll the apps grid so that the item views on the first row are hidden.
+  // To calculate the scroll offset, the origin of the item view at (row 1,
+  // column 0) should be translated into the scroll content's coordinates.
+  views::View* item_view = apps_grid_view_->GetItemViewAt(5);
+  views::ScrollView* scroll_view = apps_grid_view_->scroll_view_for_test();
+  gfx::Point local_origin;
+  views::View::ConvertPointToTarget(item_view, scroll_view->contents(),
+                                    &local_origin);
+  const int offset = local_origin.y() - scroll_view->GetVisibleRect().y();
+  scroll_view_->ScrollToPosition(scroll_view_->vertical_scroll_bar(), offset);
+
+  // Verify that in this case the items on row 1 to row 5 are visible.
+  EXPECT_TRUE(
+      IsIndexRangeExpected(/*first_index=*/cols, /*last_index=*/6 * cols - 1));
+}
+
+// Verify visible items' index range by scrolling to the end on a partially
+// filled apps grid.
+TEST_F(ScrollableAppsGridViewTest,
+       VerifyVisibleRangeAfterScrollingToEndPartiallyFilled) {
+  constexpr int populated_app_count = 33;
+  PopulateApps(populated_app_count);
+  ShowAppList();
+
+  const int cols = apps_grid_view_->cols();
+
+  // Assume that the column count is 5 so choose a number that is not the
+  // multiple of 5 as the total item count.
+  ASSERT_EQ(5, cols);
+
+  // Scroll to the end.
+  scroll_view_->ScrollToPosition(scroll_view_->vertical_scroll_bar(),
+                                 std::numeric_limits<int>::max());
+
+  // Verify that the items on row 3 to row 6 are visible.
+  EXPECT_TRUE(IsIndexRangeExpected(/*first_index=*/3 * cols,
+                                   /*last_index=*/populated_app_count - 1));
+}
+
+// Verify visible items' item index range by scrolling to the end on a full
+// apps grid.
+TEST_F(ScrollableAppsGridViewTest,
+       VerifyVisibleRangeAfterScrollingToEndFilled) {
+  constexpr int populated_app_count = 35;
+  PopulateApps(populated_app_count);
+  ShowAppList();
+
+  const int cols = apps_grid_view_->cols();
+
+  // Assume that the column count is 5 so choose a column count's multiple as
+  // the total item count.
+  ASSERT_EQ(5, cols);
+
+  // Scroll to the end.
+  scroll_view_->ScrollToPosition(scroll_view_->vertical_scroll_bar(),
+                                 std::numeric_limits<int>::max());
+
+  // Verify that the items on row 3 to row 6 are visible.
+  EXPECT_TRUE(IsIndexRangeExpected(/*first_index=*/3 * cols,
+                                   /*last_index=*/populated_app_count - 1));
+}
+
 }  // namespace ash
diff --git a/ash/capture_mode/capture_mode_controller.cc b/ash/capture_mode/capture_mode_controller.cc
index f2aaa30..10d0252 100644
--- a/ash/capture_mode/capture_mode_controller.cc
+++ b/ash/capture_mode/capture_mode_controller.cc
@@ -1041,6 +1041,9 @@
 
   capture_mode_util::TriggerAccessibilityAlert(
       IDS_ASH_SCREEN_CAPTURE_ALERT_SCREENSHOT_CAPTURED);
+
+  delegate_->OnCaptureImageAttempted(capture_params.window,
+                                     capture_params.bounds);
 }
 
 void CaptureModeController::CaptureVideo(const CaptureParams& capture_params) {
diff --git a/ash/capture_mode/test_capture_mode_delegate.cc b/ash/capture_mode/test_capture_mode_delegate.cc
index 92b6bc54..e68d286e 100644
--- a/ash/capture_mode/test_capture_mode_delegate.cc
+++ b/ash/capture_mode/test_capture_mode_delegate.cc
@@ -120,6 +120,9 @@
   std::move(callback).Run(should_save_after_dlp_check_);
 }
 
+void TestCaptureModeDelegate::OnCaptureImageAttempted(aura::Window const*,
+                                                      gfx::Rect const&) {}
+
 mojo::Remote<recording::mojom::RecordingService>
 TestCaptureModeDelegate::LaunchRecordingService() {
   mojo::Remote<recording::mojom::RecordingService> service_remote;
diff --git a/ash/capture_mode/test_capture_mode_delegate.h b/ash/capture_mode/test_capture_mode_delegate.h
index 4508c8b8..46eea46 100644
--- a/ash/capture_mode/test_capture_mode_delegate.h
+++ b/ash/capture_mode/test_capture_mode_delegate.h
@@ -82,6 +82,7 @@
       base::OnceClosure stop_callback) override;
   void StopObservingRestrictedContent(
       OnCaptureModeDlpRestrictionChecked callback) override;
+  void OnCaptureImageAttempted(aura::Window const*, gfx::Rect const&) override;
   mojo::Remote<recording::mojom::RecordingService> LaunchRecordingService()
       override;
   void BindAudioStreamFactory(
diff --git a/ash/components/arc/mojom/auth.mojom b/ash/components/arc/mojom/auth.mojom
index 51a01c85b..9ab5c77 100644
--- a/ash/components/arc/mojom/auth.mojom
+++ b/ash/components/arc/mojom/auth.mojom
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Next MinVersion: 29
+// Next MinVersion: 30
 
 module arc.mojom;
 
@@ -393,8 +393,7 @@
   bool is_managed@2;
 };
 
-// Information about an account in ARC. Used during the one-time migration of
-// accounts from ARC to Chrome OS Account Manager.
+// Information about an account in ARC.
 struct ArcAccountInfo {
   // Account's email id.
   string email;
@@ -485,7 +484,7 @@
   [MinVersion=28] ReportAndroidIdSource@21(AndroidIdSource source);
 };
 
-// Next Method ID: 6
+// Next Method ID: 7
 interface AuthInstance {
   // Establishes full-duplex communication with the host.
   [MinVersion=12] Init@2(pending_remote<AuthHost> host_remote) => ();
@@ -504,4 +503,19 @@
   // Gets resolution status of main account for statistics reporting.
   [MinVersion=22] GetMainAccountResolutionStatus@5()
       => (MainAccountResolutionStatus status);
+
+  // Pushes the `accounts` list to ARC on session start.
+  // - Just after ARC provisioning, all accounts except the primary account
+  // are pushed to ARC. Pushing the primary account is not required since ARC
+  // was just provisioned and it may also cause performance issues, see
+  // https://crrev.com/c/1796344.
+  // - On the start of the following sessions all accounts (including the
+  // primary account) are pushed to ARC.
+  // ARC will remove any accounts in the Android account manager that are not
+  // present in `accounts` (with an exception for the primary account as noted
+  // above). Accounts in `accounts` will be added or updated to the Android
+  // account manager.
+  // During a session, subsequent changes to the list of accounts are still
+  // managed through OnAccountUpdated.
+  [MinVersion=29] SetAccounts@6(array<ArcAccountInfo> accounts);
 };
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc
index 83ea0d7..b48029e0 100644
--- a/ash/constants/ash_features.cc
+++ b/ash/constants/ash_features.cc
@@ -842,7 +842,7 @@
 
 // Enables or disables sorting app icons shown on the launcher.
 const base::Feature kLauncherAppSort{"LauncherAppSort",
-                                     base::FEATURE_DISABLED_BY_DEFAULT};
+                                     base::FEATURE_ENABLED_BY_DEFAULT};
 
 // Uses short intervals for launcher nudge for testing if enabled.
 const base::Feature kLauncherNudgeShortInterval{
diff --git a/ash/public/cpp/capture_mode/capture_mode_delegate.h b/ash/public/cpp/capture_mode/capture_mode_delegate.h
index 33e67ab..79487b3 100644
--- a/ash/public/cpp/capture_mode/capture_mode_delegate.h
+++ b/ash/public/cpp/capture_mode/capture_mode_delegate.h
@@ -111,6 +111,11 @@
   virtual void StopObservingRestrictedContent(
       OnCaptureModeDlpRestrictionChecked callback) = 0;
 
+  // Notifies DLP that taking a screenshot was attempted. Called after checking
+  // DLP restrictions.
+  virtual void OnCaptureImageAttempted(const aura::Window* window,
+                                       const gfx::Rect& bounds) = 0;
+
   // Launches the Recording Service into a separate utility process.
   virtual mojo::Remote<recording::mojom::RecordingService>
   LaunchRecordingService() = 0;
diff --git a/ash/system/power/power_prefs.cc b/ash/system/power/power_prefs.cc
index c4e896c0..bc0e05ba 100644
--- a/ash/system/power/power_prefs.cc
+++ b/ash/system/power/power_prefs.cc
@@ -15,6 +15,7 @@
 #include "ash/system/power/hps_sense_controller.h"
 #include "base/bind.h"
 #include "base/callback.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/time/default_tick_clock.h"
 #include "chromeos/dbus/power/power_policy_controller.h"
 #include "chromeos/dbus/power_manager/idle.pb.h"
@@ -219,6 +220,22 @@
   ObservePrefs(prefs);
 }
 
+void PowerPrefs::UpdatePowerPolicyFromPrefsChange() {
+  PrefService* prefs = GetPrefService();
+  if (!prefs)
+    return;
+
+  bool new_quick_dim_pref_enabled =
+      prefs->GetBoolean(prefs::kPowerQuickDimEnabled);
+  if (quick_dim_pref_enabled_ != new_quick_dim_pref_enabled) {
+    quick_dim_pref_enabled_ = new_quick_dim_pref_enabled;
+    base::UmaHistogramBoolean("ChromeOS.HPS.QuickDim.Enabled",
+                              quick_dim_pref_enabled_);
+  }
+
+  UpdatePowerPolicyFromPrefs();
+}
+
 void PowerPrefs::UpdatePowerPolicyFromPrefs() {
   PrefService* prefs = GetPrefService();
   if (!prefs || !local_state_)
@@ -387,9 +404,13 @@
 }
 
 void PowerPrefs::ObservePrefs(PrefService* prefs) {
+  // Store initial state of the quick dim preference to detect whether it has
+  // been manually flipped.
+  quick_dim_pref_enabled_ = prefs->GetBoolean(prefs::kPowerQuickDimEnabled);
+
   // Observe pref updates from policy.
   base::RepeatingClosure update_callback(base::BindRepeating(
-      &PowerPrefs::UpdatePowerPolicyFromPrefs, base::Unretained(this)));
+      &PowerPrefs::UpdatePowerPolicyFromPrefsChange, base::Unretained(this)));
 
   profile_registrar_ = std::make_unique<PrefChangeRegistrar>();
   profile_registrar_->Init(prefs);
diff --git a/ash/system/power/power_prefs.h b/ash/system/power/power_prefs.h
index 6c10fb8..49812be 100644
--- a/ash/system/power/power_prefs.h
+++ b/ash/system/power/power_prefs.h
@@ -69,6 +69,7 @@
   void OnActiveUserPrefServiceChanged(PrefService* prefs) override;
 
   void UpdatePowerPolicyFromPrefs();
+  void UpdatePowerPolicyFromPrefsChange();
 
   // Observes either the signin screen prefs or active user prefs and loads
   // initial settings.
@@ -96,6 +97,9 @@
   // Unset if the screen isn't currently turned off due to user inactivity.
   base::TimeTicks screen_idle_off_time_;
 
+  // The last observed quick dim state for the current pref service.
+  bool quick_dim_pref_enabled_ = false;
+
   PrefService* local_state_ = nullptr;  // Not owned.
 };
 
diff --git a/ash/system/power/power_prefs_unittest.cc b/ash/system/power/power_prefs_unittest.cc
index 8a25ba4..c69f46b 100644
--- a/ash/system/power/power_prefs_unittest.cc
+++ b/ash/system/power/power_prefs_unittest.cc
@@ -18,6 +18,7 @@
 #include "ash/test/ash_test_base.h"
 #include "base/callback_helpers.h"
 #include "base/json/json_reader.h"
+#include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/simple_test_tick_clock.h"
 #include "chromeos/dbus/hps/fake_hps_dbus_client.h"
@@ -182,6 +183,15 @@
   *value = std::move(*parsed_json.value);
 }
 
+void SetQuickDimPreference(bool enabled) {
+  PrefService* prefs =
+      Shell::Get()->session_controller()->GetActivePrefService();
+  if (!prefs)
+    return;
+
+  prefs->SetBoolean(prefs::kPowerQuickDimEnabled, enabled);
+}
+
 }  // namespace
 
 class PowerPrefsTest : public NoSessionAshTestBase {
@@ -267,6 +277,9 @@
 
   PrefService* local_state() { return local_state_.get(); }
 
+  // Start counting histogram updates before we load our first pref service.
+  base::HistogramTester histogram_tester_;
+
   chromeos::PowerPolicyController* power_policy_controller_ =
       nullptr;                         // Not owned.
   PowerPrefs* power_prefs_ = nullptr;  // Not owned.
@@ -548,10 +561,8 @@
   // Set hps service as available so that hps dbus calls can be recorded.
   chromeos::FakeHpsDBusClient::Get()->set_hps_service_is_available(true);
 
-  PrefService* prefs =
-      Shell::Get()->session_controller()->GetActivePrefService();
   // This will trigger UpdatePowerPolicyFromPrefs and set correct parameters.
-  prefs->SetBoolean(prefs::kPowerQuickDimEnabled, true);
+  SetQuickDimPreference(true);
 
   const auto policy = power_manager_client()->policy();
   EXPECT_EQ(policy.ac_delays().quick_dim_ms(),
@@ -566,9 +577,53 @@
   EXPECT_EQ(chromeos::FakeHpsDBusClient::Get()->enable_hps_sense_count(), 1);
 
   // DisableHpsSense should be called when kPowerQuickDimEnabled becomes false.
-  prefs->SetBoolean(prefs::kPowerQuickDimEnabled, false);
+  SetQuickDimPreference(false);
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(chromeos::FakeHpsDBusClient::Get()->disable_hps_sense_count(), 1);
 }
 
+TEST_F(PowerPrefsTest, QuickDimMetrics) {
+  const char kUserEmail[] = "user@example.net";
+
+  // Initial pref loading shouldn't be logged as manual pref change.
+  EXPECT_TRUE(
+      histogram_tester_.GetAllSamples("ChromeOS.HPS.QuickDim.Enabled").empty());
+
+  // Initial pref value is false, so manually updating it to true should be
+  // logged.
+  SetQuickDimPreference(true);
+
+  const std::vector<base::Bucket> login_screen_buckets = {
+      base::Bucket(true, 1)};
+  EXPECT_EQ(histogram_tester_.GetAllSamples("ChromeOS.HPS.QuickDim.Enabled"),
+            login_screen_buckets);
+
+  // Loading a new pref service isn't a manual update, so shouldn't be logged.
+  SimulateUserLogin(kUserEmail);
+  EXPECT_EQ(histogram_tester_.GetAllSamples("ChromeOS.HPS.QuickDim.Enabled"),
+            login_screen_buckets);
+
+  // We now re-enable the feature, which *is* a manual toggle (because the
+  // newly-loaded user pref service defaults to having it disabled).
+  SetQuickDimPreference(true);
+
+  // Login screen and user have both enabled the feature.
+  const std::vector<base::Bucket> user_enable_buckets = {base::Bucket(true, 2)};
+  EXPECT_EQ(histogram_tester_.GetAllSamples("ChromeOS.HPS.QuickDim.Enabled"),
+            user_enable_buckets);
+
+  // Manual disable should also be logged.
+  SetQuickDimPreference(false);
+
+  const std::vector<base::Bucket> user_disable_buckets = {
+      base::Bucket(false, 1), base::Bucket(true, 2)};
+  EXPECT_EQ(histogram_tester_.GetAllSamples("ChromeOS.HPS.QuickDim.Enabled"),
+            user_disable_buckets);
+
+  // Redundant pref change shouldn't be logged.
+  SetQuickDimPreference(false);
+  EXPECT_EQ(histogram_tester_.GetAllSamples("ChromeOS.HPS.QuickDim.Enabled"),
+            user_disable_buckets);
+}
+
 }  // namespace ash
diff --git a/ash/system/time/calendar_event_list_item_view.cc b/ash/system/time/calendar_event_list_item_view.cc
index 47d56be..b646c0b0 100644
--- a/ash/system/time/calendar_event_list_item_view.cc
+++ b/ash/system/time/calendar_event_list_item_view.cc
@@ -107,7 +107,7 @@
   GetViewAccessibility().OverrideRole(ax::mojom::Role::kButton);
   SetAccessibleName(l10n_util::GetStringFUTF16(
       IDS_ASH_CALENDAR_EVENT_ENTRY_ACCESSIBLE_DESCRIPTION, start_time_string,
-      end_time_string, base::TimeFormatWithPattern(start_time, "zzzz"),
+      end_time_string, base::TimeFormatWithPattern(start_time, "z"),
       base::UTF8ToUTF16(event.summary())));
   SetFocusBehavior(FocusBehavior::ALWAYS);
 
diff --git a/ash/system/time/calendar_event_list_view_unittest.cc b/ash/system/time/calendar_event_list_view_unittest.cc
index 52e401b..41f5287 100644
--- a/ash/system/time/calendar_event_list_view_unittest.cc
+++ b/ash/system/time/calendar_event_list_view_unittest.cc
@@ -64,7 +64,7 @@
         std::make_unique<CalendarEventListView>(controller_.get());
   }
 
-  void SetSelectedDate(base::Time date) {
+  void SetSelectedDate(base::Time::Exploded date) {
     controller_->selected_date_ = date;
     controller_->ShowEventListView(date, /*row_index=*/0);
   }
@@ -93,7 +93,9 @@
 
   EXPECT_EQ(0u, content_view()->children().size());
 
-  SetSelectedDate(date);
+  base::Time::Exploded selected_date;
+  date.LocalExplode(&selected_date);
+  SetSelectedDate(selected_date);
 
   // 3 events on 18 Nov 2021. And they should be sorted by the start time.
   EXPECT_EQ(3u, content_view()->children().size());
@@ -101,18 +103,21 @@
   EXPECT_EQ(u"summary_0", GetSummary(1)->GetText());
   EXPECT_EQ(u"summary_2", GetSummary(2)->GetText());
 
-  SetSelectedDate(date + base::Days(1));
+  (date + base::Days(1)).LocalExplode(&selected_date);
+  SetSelectedDate(selected_date);
 
   // 1 event on 19 Nov 2021.
   EXPECT_EQ(1u, content_view()->children().size());
   EXPECT_EQ(u"summary_3", GetSummary(0)->GetText());
 
-  SetSelectedDate(date + base::Days(2));
+  (date + base::Days(2)).LocalExplode(&selected_date);
+  SetSelectedDate(selected_date);
 
   // 0 event on 20 Nov 2021.
   EXPECT_EQ(0u, content_view()->children().size());
 
-  SetSelectedDate(date + base::Days(3));
+  (date + base::Days(3)).LocalExplode(&selected_date);
+  SetSelectedDate(selected_date);
 
   // 2 events on 21 Nov 2021.
   EXPECT_EQ(2u, content_view()->children().size());
diff --git a/ash/system/time/calendar_month_view.cc b/ash/system/time/calendar_month_view.cc
index fe917b32..2c5a3bc 100644
--- a/ash/system/time/calendar_month_view.cc
+++ b/ash/system/time/calendar_month_view.cc
@@ -4,8 +4,6 @@
 
 #include "ash/system/time/calendar_month_view.h"
 
-#include <codecvt>
-
 #include "ash/public/cpp/ash_typography.h"
 #include "ash/strings/grit/ash_strings.h"
 #include "ash/style/ash_color_provider.h"
@@ -47,32 +45,23 @@
 // next one.
 void MoveToNextDay(int& column,
                    base::Time& current_date,
-                   base::Time& local_current_date,
                    base::Time::Exploded& current_date_exploded) {
   // Using 30 hours to make sure the date is moved to the next day, since there
   // are daylight saving days which have more than 24 hours in a day.
   // `base::Days(1)` cannot be used, because it is 24 hours.
-  //
-  // Also using the local time format to calculate the local midnight, since the
-  // LocalExplode doesn't use the manually set timezone.
-  std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> converter;
-  int hours;
-  bool result = base::StringToInt(
-      converter.to_bytes(base::TimeFormatWithPattern(current_date, "H")),
-      &hours);
-  DCHECK(result);
-  current_date += base::Hours(30 - hours);
-  local_current_date += base::Hours(30 - hours);
-  local_current_date.UTCExplode(&current_date_exploded);
+  current_date = current_date.LocalMidnight() + base::Hours(30);
+  current_date.LocalExplode(&current_date_exploded);
   column = (column + 1) % calendar_utils::kDateInOneWeek;
   DCHECK_EQ(column, current_date_exploded.day_of_week);
 }
 
 }  // namespace
 
+// TODO(https://crbug.com/1236276): Fix the ChromeVox window position on this
+// view.
 CalendarDateCellView::CalendarDateCellView(
     CalendarViewController* calendar_view_controller,
-    base::Time date,
+    base::Time::Exploded& date,
     bool is_grayed_out_date,
     int row_index)
     : views::LabelButton(
@@ -84,7 +73,7 @@
                         base::Unretained(calendar_view_controller),
                         date,
                         row_index)),
-          base::TimeFormatWithPattern(date, "d"),
+          base::UTF8ToUTF16(base::NumberToString(date.day_of_month)),
           CONTEXT_CALENDAR_DATE),
       date_(date),
       grayed_out_(is_grayed_out_date),
@@ -141,15 +130,15 @@
   // Sets accessible label. E.g. Calendar, week of July 16th 2021, [selected
   // date] is currently selected.
   if (is_selected_) {
-    base::Time::Exploded date_exploded =
-        calendar_utils::GetExplodedLocal(date_);
-    base::Time first_day_of_week =
-        date_ - base::Days(date_exploded.day_of_week);
+    base::Time unexploded;
+    bool result = base::Time::FromLocalExploded(date_, &unexploded);
+    DCHECK(result);
+    unexploded -= base::Days(date_.day_of_week);
 
     SetAccessibleName(l10n_util::GetStringFUTF16(
         IDS_ASH_CALENDAR_SELECTED_DATE_CELL_ACCESSIBLE_DESCRIPTION,
-        base::TimeFormatWithPattern(first_day_of_week, "MMMMdyyyy"),
-        base::TimeFormatWithPattern(date_, "d")));
+        base::TimeFormatWithPattern(unexploded, "MMMMdyyyy"),
+        base::UTF8ToUTF16(base::NumberToString(date_.day_of_month))));
   }
 
   if (views::View::HasFocus() || is_selected_) {
@@ -237,18 +226,22 @@
   if (grayed_out_)
     return;
 
+  base::Time unexploded;
+  bool result = base::Time::FromLocalExploded(date_, &unexploded);
+  DCHECK(result);
+
   const int event_number =
-      calendar_view_controller_->EventsNumberOfDay(date_,
+      calendar_view_controller_->EventsNumberOfDay(unexploded,
                                                    /*events =*/nullptr);
   const int tooltip_id = (event_number <= 1)
                              ? IDS_ASH_CALENDAR_DATE_CELL_TOOLTIP
                              : IDS_ASH_CALENDAR_DATE_CELL_PLURAL_EVENTS_TOOLTIP;
 
   SetTooltipText(l10n_util::GetStringFUTF16(
-      tooltip_id, base::TimeFormatWithPattern(date_, "MMMMdyyyy"),
+      tooltip_id, base::TimeFormatWithPattern(unexploded, "MMMMdyyyy"),
       base::UTF8ToUTF16(base::NumberToString(event_number))));
   SetAccessibleName(l10n_util::GetStringFUTF16(
-      tooltip_id, base::TimeFormatWithPattern(date_, "MMMMdyyyy"),
+      tooltip_id, base::TimeFormatWithPattern(unexploded, "MMMMdyyyy"),
       base::UTF8ToUTF16(base::NumberToString(event_number))));
 
   if (event_number == 0)
@@ -278,31 +271,14 @@
   layer()->SetFillsBoundsOpaquely(false);
   calendar_utils::SetUpWeekColumns(layout);
 
-  std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> converter;
-
-  // Using the local time format to get the local `base::Time`, which is used to
-  // generate the exploded, since the LocalExplode doesn't use the manually set
-  // timezone.
-  base::Time first_day_of_month_local;
-  bool result = base::Time::FromString(
-      converter
-          .to_bytes(base::TimeFormatWithPattern(first_day_of_month,
-                                                "MMMMdyyyy HH:mm") +
-                    u" UTC")
-          .c_str(),
-      &first_day_of_month_local);
-  DCHECK(result);
   base::Time::Exploded first_day_of_month_exploded =
-      calendar_utils::GetExplodedUTC(first_day_of_month_local);
+      calendar_utils::GetExplodedLocal(first_day_of_month);
 
   // Calculates the start date.
   base::Time current_date =
       first_day_of_month - base::Days(first_day_of_month_exploded.day_of_week);
-  base::Time current_date_local =
-      first_day_of_month_local -
-      base::Days(first_day_of_month_exploded.day_of_week);
   base::Time::Exploded current_date_exploded =
-      calendar_utils::GetExplodedUTC(current_date_local);
+      calendar_utils::GetExplodedLocal(current_date);
 
   // TODO(https://crbug.com/1236276): Extract the following 3 parts (while
   // loops) into a method.
@@ -310,10 +286,9 @@
   // Gray-out dates in the first row, which are from the previous month.
   while (current_date_exploded.month % 12 ==
          (first_day_of_month_exploded.month - 1) % 12) {
-    AddDateCellToLayout(current_date, column,
+    AddDateCellToLayout(current_date_exploded, column,
                         /*is_in_current_month=*/false, /*row_index=*/0);
-    MoveToNextDay(column, current_date, current_date_local,
-                  current_date_exploded);
+    MoveToNextDay(column, current_date, current_date_exploded);
   }
 
   int row_number = 0;
@@ -323,7 +298,7 @@
     if (column == 0 || current_date_exploded.day_of_month == 1) {
       ++row_number;
     }
-    auto* cell = AddDateCellToLayout(current_date, column,
+    auto* cell = AddDateCellToLayout(current_date_exploded, column,
                                      /*is_in_current_month=*/true,
                                      /*row_index=*/row_number - 1);
     // Add the first non-grayed-out cell of the row to the `focused_cells_`.
@@ -332,15 +307,14 @@
     }
     // If this row has today, updates today's row number and replaces today to
     // the last element in the `focused_cells_`.
-    if (calendar_utils::IsToday(current_date)) {
+    if (calendar_utils::IsToday(current_date_exploded)) {
       calendar_view_controller_->set_row_height(
           cell->GetPreferredSize().height());
       calendar_view_controller_->set_today_row(row_number);
       focused_cells_.back() = cell;
       has_today_ = true;
     }
-    MoveToNextDay(column, current_date, current_date_local,
-                  current_date_exploded);
+    MoveToNextDay(column, current_date, current_date_exploded);
   }
 
   last_row_index_ = row_number - 1;
@@ -353,26 +327,25 @@
   // Adds the first several days from the next month if the last day is not the
   // end day of this week.
   const base::Time end_of_the_last_row =
-      current_date_local + base::Days(6 - current_date_exploded.day_of_week);
+      current_date + base::Days(6 - current_date_exploded.day_of_week);
   base::Time::Exploded end_of_row_exploded =
-      calendar_utils::GetExplodedUTC(end_of_the_last_row);
+      calendar_utils::GetExplodedLocal(end_of_the_last_row);
 
   // Gray-out dates in the last row, which are from the next month.
   while (current_date_exploded.day_of_month <=
          end_of_row_exploded.day_of_month) {
     // Next column is generated.
-    AddDateCellToLayout(current_date, column,
+    AddDateCellToLayout(current_date_exploded, column,
                         /*is_in_current_month=*/false,
                         /*row_index=*/row_number);
-    MoveToNextDay(column, current_date, current_date_local,
-                  current_date_exploded);
+    MoveToNextDay(column, current_date, current_date_exploded);
   }
 }
 
 CalendarMonthView::~CalendarMonthView() = default;
 
 CalendarDateCellView* CalendarMonthView::AddDateCellToLayout(
-    base::Time current_date,
+    base::Time::Exploded current_date_exploded,
     int column,
     bool is_in_current_month,
     int row_index) {
@@ -380,7 +353,7 @@
   if (column == 0)
     layout_manager->AddRows(1, views::TableLayout::kFixedSize);
   return AddChildView(std::make_unique<CalendarDateCellView>(
-      calendar_view_controller_, current_date,
+      calendar_view_controller_, current_date_exploded,
       /*is_grayed_out_date=*/!is_in_current_month, /*row_index=*/row_index));
 }
 
diff --git a/ash/system/time/calendar_month_view.h b/ash/system/time/calendar_month_view.h
index 4b08d59..2ca628e 100644
--- a/ash/system/time/calendar_month_view.h
+++ b/ash/system/time/calendar_month_view.h
@@ -21,7 +21,7 @@
   METADATA_HEADER(CalendarDateCellView);
 
   CalendarDateCellView(CalendarViewController* calendar_view_controller,
-                       base::Time date,
+                       base::Time::Exploded& date,
                        bool is_grayed_out_date,
                        int row_index);
   CalendarDateCellView(const CalendarDateCellView& other) = delete;
@@ -66,7 +66,7 @@
   void MaybeDrawEventsIndicator(gfx::Canvas* canvas);
 
   // The date used to render this cell view.
-  const base::Time date_;
+  const base::Time::Exploded date_;
 
   const bool grayed_out_;
 
@@ -114,10 +114,11 @@
  private:
   // Adds the `current_date`'s `CalendarDateCellView` to the table layout and
   // returns it.
-  CalendarDateCellView* AddDateCellToLayout(base::Time current_date,
-                                            int column,
-                                            bool is_in_current_month,
-                                            int row_index);
+  CalendarDateCellView* AddDateCellToLayout(
+      base::Time::Exploded current_date_exploded,
+      int column,
+      bool is_in_current_month,
+      int row_index);
 
   // Owned by `CalendarView`.
   CalendarViewController* const calendar_view_controller_;
diff --git a/ash/system/time/calendar_utils.cc b/ash/system/time/calendar_utils.cc
index fe509a36..62cf0cd 100644
--- a/ash/system/time/calendar_utils.cc
+++ b/ash/system/time/calendar_utils.cc
@@ -4,13 +4,8 @@
 
 #include "ash/system/time/calendar_utils.h"
 
-#include <codecvt>
-#include <string>
-
 #include "ash/style/ash_color_provider.h"
-#include "base/i18n/time_formatting.h"
 #include "base/i18n/unicodestring.h"
-#include "base/strings/string_number_conversions.h"
 #include "base/time/time.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/icu/source/i18n/unicode/datefmt.h"
@@ -22,15 +17,16 @@
 
 namespace calendar_utils {
 
-bool IsToday(const base::Time selected_date) {
-  return IsTheSameDay(selected_date, base::Time::Now());
+bool IsToday(const base::Time::Exploded& selected_date) {
+  base::Time::Exploded today_exploded = GetExplodedLocal(base::Time::Now());
+  return IsTheSameDay(selected_date, today_exploded);
 }
-bool IsTheSameDay(absl::optional<base::Time> date_a,
-                  absl::optional<base::Time> date_b) {
+bool IsTheSameDay(absl::optional<base::Time::Exploded> date_a,
+                  absl::optional<base::Time::Exploded> date_b) {
   if (!date_a.has_value() || !date_b.has_value())
     return false;
-  return base::TimeFormatWithPattern(date_a.value(), "dd MMM YYYY") ==
-         base::TimeFormatWithPattern(date_b.value(), "dd MMM YYYY");
+  return date_a->year == date_b->year && date_a->month == date_b->month &&
+         date_a->day_of_month == date_b->day_of_month;
 }
 
 base::Time::Exploded GetExplodedLocal(const base::Time& date) {
@@ -46,7 +42,25 @@
 }
 
 std::u16string GetMonthName(const base::Time date) {
-  return base::TimeFormatWithPattern(date, "MMMM");
+  // Inits status with no error, no warning.
+  UErrorCode status = U_ZERO_ERROR;
+
+  // Generates the "MMMM" pattern.
+  std::unique_ptr<icu::DateTimePatternGenerator> generator(
+      icu::DateTimePatternGenerator::createInstance(status));
+  DCHECK(U_SUCCESS(status));
+  icu::UnicodeString generated_pattern =
+      generator->getBestPattern(icu::UnicodeString(UDAT_MONTH), status);
+  DCHECK(U_SUCCESS(status));
+
+  // Then, creates the formatter and formats `date` to string with the pattern.
+  auto dfmt =
+      std::make_unique<icu::SimpleDateFormat>(generated_pattern, status);
+  UDate unicode_date = static_cast<UDate>(date.ToDoubleT() * 1000);
+  icu::UnicodeString unicode_string;
+  unicode_string = dfmt->format(unicode_date, unicode_string);
+
+  return base::i18n::UnicodeStringToString16(unicode_string);
 }
 
 void SetUpWeekColumns(views::TableLayout* layout) {
@@ -73,15 +87,9 @@
 }
 
 base::Time GetStartOfMonthLocal(const base::Time& date) {
-  // Using the local time format to calculate the start of a month, since the
-  // LocalExplode doesn't use the manually set timezone.
-  std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> converter;
-  int local_day_of_month;
-  bool result = base::StringToInt(
-      converter.to_bytes(base::TimeFormatWithPattern(date, "dd")),
-      &local_day_of_month);
-  DCHECK(result);
-  return date - base::Days(local_day_of_month - 1);
+  return (date -
+          base::Days(calendar_utils::GetExplodedLocal(date).day_of_month - 1))
+      .LocalMidnight();
 }
 
 base::Time GetStartOfPreviousMonthLocal(base::Time date) {
diff --git a/ash/system/time/calendar_utils.h b/ash/system/time/calendar_utils.h
index 570011d..5e15363 100644
--- a/ash/system/time/calendar_utils.h
+++ b/ash/system/time/calendar_utils.h
@@ -40,11 +40,11 @@
 constexpr base::TimeDelta kAnimationDurationForMoving = base::Milliseconds(300);
 
 // Checks if the `selected_date` is local time today.
-bool IsToday(const base::Time selected_date);
+bool IsToday(const base::Time::Exploded& selected_date);
 
 // Checks if the two exploded are in the same day.
-bool IsTheSameDay(absl::optional<base::Time> date_a,
-                  absl::optional<base::Time> date_b);
+bool IsTheSameDay(absl::optional<base::Time::Exploded> date_a,
+                  absl::optional<base::Time::Exploded> date_b);
 
 // Gets the given `date`'s `Exploded` instance, in local time.
 base::Time::Exploded GetExplodedLocal(const base::Time& date);
diff --git a/ash/system/time/calendar_view.cc b/ash/system/time/calendar_view.cc
index 6daa6cc..55bc83e 100644
--- a/ash/system/time/calendar_view.cc
+++ b/ash/system/time/calendar_view.cc
@@ -673,13 +673,18 @@
     return;
 
   // Updates `scroll_view_`'s accessible name with the selected date.
-  absl::optional<base::Time> selected_date =
+  absl::optional<base::Time::Exploded> selected_date =
       calendar_view_controller_->selected_date();
+  DCHECK(selected_date.has_value());
+  base::Time unexploded_selected_date;
+  bool result = base::Time::FromLocalExploded(selected_date.value(),
+                                              &unexploded_selected_date);
+  DCHECK(result);
   scroll_view_->GetViewAccessibility().OverrideName(l10n_util::GetStringFUTF16(
       IDS_ASH_CALENDAR_CONTENT_ACCESSIBLE_DESCRIPTION,
       base::TimeFormatWithPattern(calendar_view_controller_->current_date(),
                                   "MMMM yyyy"),
-      base::TimeFormatWithPattern(selected_date.value(), "MMMMdyyyy")));
+      base::TimeFormatWithPattern(unexploded_selected_date, "MMMMdyyyy")));
   scroll_view_->NotifyAccessibilityEvent(ax::mojom::Event::kTextChanged,
                                          /*send_native_event=*/true);
 
diff --git a/ash/system/time/calendar_view_controller.cc b/ash/system/time/calendar_view_controller.cc
index ce90f65..5521772 100644
--- a/ash/system/time/calendar_view_controller.cc
+++ b/ash/system/time/calendar_view_controller.cc
@@ -75,8 +75,10 @@
 
 void CalendarViewController::UpdateMonth(
     const base::Time current_month_first_date) {
-  if (base::TimeFormatWithPattern(current_date_, "MMM YYYY") ==
-      base::TimeFormatWithPattern(current_month_first_date, "MMM YYYY")) {
+  if (calendar_utils::GetExplodedLocal(current_date_).month ==
+          calendar_utils::GetExplodedLocal(current_month_first_date).month &&
+      calendar_utils::GetExplodedLocal(current_date_).year ==
+          calendar_utils::GetExplodedLocal(current_month_first_date).year) {
     return;
   }
 
@@ -253,7 +255,11 @@
   if (!selected_date_.has_value())
     return std::list<google_apis::calendar::CalendarEvent>();
 
-  return FindEvents(selected_date_.value());
+  base::Time date;
+  const bool result =
+      base::Time::FromLocalExploded(selected_date_.value(), &date);
+  DCHECK(result);
+  return FindEvents(date);
 }
 
 int CalendarViewController::EventsNumberOfDayInternal(
@@ -282,8 +288,9 @@
   return event_number;
 }
 
-void CalendarViewController::ShowEventListView(base::Time selected_date,
-                                               int row_index) {
+void CalendarViewController::ShowEventListView(
+    base::Time::Exploded selected_date,
+    int row_index) {
   // Do nothing if selecting on the same date.
   if (is_event_list_showing_ &&
       calendar_utils::IsTheSameDay(selected_date, selected_date_)) {
@@ -321,11 +328,9 @@
   if (!selected_date_.has_value())
     return false;
 
-  auto current_exploded = calendar_utils::GetExplodedLocal(current_date_);
-  auto selected_exploded =
-      calendar_utils::GetExplodedLocal(selected_date_.value());
-  return current_exploded.month == selected_exploded.month &&
-         current_exploded.year == selected_exploded.year;
+  auto current = calendar_utils::GetExplodedLocal(current_date_);
+  return current.month == selected_date_->month &&
+         current.year == selected_date_->year;
 }
 
 void CalendarViewController::OnCalendarEventsFetched(
diff --git a/ash/system/time/calendar_view_controller.h b/ash/system/time/calendar_view_controller.h
index f53c6f2b..ee377fc1 100644
--- a/ash/system/time/calendar_view_controller.h
+++ b/ash/system/time/calendar_view_controller.h
@@ -113,7 +113,9 @@
   bool was_on_later_month() { return was_on_later_month_; }
 
   // The currently selected date to show the event list.
-  absl::optional<base::Time> selected_date() { return selected_date_; }
+  absl::optional<base::Time::Exploded> selected_date() {
+    return selected_date_;
+  }
 
   // The row index of the currently selected date. This is used for auto
   // scrolling to this row when the event list is expanded.
@@ -153,7 +155,7 @@
 
   // A callback passed into the`CalendarDateCellView`, which is called when the
   // cell is clicked to show the event list view.
-  void ShowEventListView(base::Time selected_date, int row_index);
+  void ShowEventListView(base::Time::Exploded selected_date, int row_index);
 
   // A callback passed into the`CalendarEventListView`, which is called when the
   // close button is clicked to close the event list view.
@@ -263,7 +265,7 @@
   bool is_event_list_showing_ = false;
 
   // The currently selected date.
-  absl::optional<base::Time> selected_date_;
+  absl::optional<base::Time::Exploded> selected_date_;
 
   // The row index of the currently selected date.
   int selected_date_row_index_;
diff --git a/ash/system/time/calendar_view_unittest.cc b/ash/system/time/calendar_view_unittest.cc
index 97d5b53..45ad9ac 100644
--- a/ash/system/time/calendar_view_unittest.cc
+++ b/ash/system/time/calendar_view_unittest.cc
@@ -710,6 +710,7 @@
   std::unique_ptr<DetailedViewDelegate> delegate_;
   scoped_refptr<UnifiedSystemTrayModel> tray_model_;
   std::unique_ptr<UnifiedSystemTrayController> tray_controller_;
+  static base::Time fake_time_;
 };
 
 // The header should show the new header with animation when there's an update.
diff --git a/ash/system/unified/hps_notify_controller.cc b/ash/system/unified/hps_notify_controller.cc
index cf50679..a6c1487 100644
--- a/ash/system/unified/hps_notify_controller.cc
+++ b/ash/system/unified/hps_notify_controller.cc
@@ -12,6 +12,7 @@
 #include "base/bind.h"
 #include "base/callback.h"
 #include "base/logging.h"
+#include "base/metrics/histogram_functions.h"
 #include "chromeos/dbus/hps/hps_service.pb.h"
 #include "components/account_id/account_id.h"
 #include "components/pref_registry/pref_registry_syncable.h"
@@ -226,6 +227,8 @@
   ReconfigureHps(hps_available_, session_active_, pref_enabled);
   UpdateSnooperStatus(session_active_, hps_state_ && pref_enabled,
                       pref_enabled);
+  base::UmaHistogramBoolean("ChromeOS.HPS.SnoopingProtection.Enabled",
+                            pref_enabled);
 }
 
 }  // namespace ash
diff --git a/ash/webui/camera_app_ui/resources/js/models/async_writer.ts b/ash/webui/camera_app_ui/resources/js/models/async_writer.ts
index 910c842..656268b 100644
--- a/ash/webui/camera_app_ui/resources/js/models/async_writer.ts
+++ b/ash/webui/camera_app_ui/resources/js/models/async_writer.ts
@@ -45,8 +45,10 @@
    */
   async seek(offset: number): Promise<void> {
     assert(!this.closed);
-    assert(this.seekable());
-    await this.queue.push(() => this.ops.seek(offset));
+    await this.queue.push(async () => {
+      assert(this.ops.seek !== null);
+      await this.ops.seek(offset);
+    });
   }
 
   /**
@@ -58,9 +60,11 @@
       return;
     }
     this.closed = true;
-    if (this.ops.close !== null) {
-      this.queue.push(() => this.ops.close());
-    }
+    this.queue.push(async () => {
+      if (this.ops.close !== null) {
+        await this.ops.close();
+      }
+    });
     await this.queue.flush();
   }
 
@@ -70,12 +74,12 @@
    * @return The combined writer.
    */
   static combine(...writers: AsyncWriter[]): AsyncWriter {
-    const write = async (blob) => {
+    const write = async (blob: Blob) => {
       await Promise.all(writers.map((writer) => writer.write(blob)));
     };
 
     const allSeekable = writers.every((writer) => writer.seekable());
-    const seekAll = async (offset) => {
+    const seekAll = async (offset: number) => {
       await Promise.all(writers.map((writer) => writer.seek(offset)));
     };
     const seek = allSeekable ? seekAll : null;
diff --git a/ash/webui/camera_app_ui/resources/js/models/barcode_worker.ts b/ash/webui/camera_app_ui/resources/js/models/barcode_worker.ts
index b961a28..ef83e20 100644
--- a/ash/webui/camera_app_ui/resources/js/models/barcode_worker.ts
+++ b/ash/webui/camera_app_ui/resources/js/models/barcode_worker.ts
@@ -8,14 +8,10 @@
  * A barcode worker to detect barcode from images.
  */
 class BarcodeWorker {
-  private readonly detector_ = new BarcodeDetector({formats: ['qr_code']});
+  private readonly detector = new BarcodeDetector({formats: ['qr_code']});
 
-  async detect(bitmap: ImageBitmap): Promise<string> {
-    const codes = await this.detector_.detect(bitmap);
-
-    if (codes.length === 0) {
-      return null;
-    }
+  async detect(bitmap: ImageBitmap): Promise<string|null> {
+    const codes = await this.detector.detect(bitmap);
 
     const cx = bitmap.width / 2;
     const cy = bitmap.height / 2;
@@ -26,16 +22,16 @@
       return Math.hypot(x - cx, y - cy);
     };
 
-    let bestCode = codes[0];
-    let minDistance = distanceToCenter(codes[0]);
-    for (let i = 1; i < codes.length; i++) {
-      const distance = distanceToCenter(codes[i]);
+    let minDistance = Infinity;
+    let bestCode: DetectedBarcode|null = null;
+    for (const code of codes) {
+      const distance = distanceToCenter(code);
       if (distance < minDistance) {
-        bestCode = codes[i];
+        bestCode = code;
         minDistance = distance;
       }
     }
-    return bestCode.rawValue;
+    return bestCode === null ? null : bestCode.rawValue;
   }
 }
 
diff --git a/base/allocator/partition_allocator/memory_reclaimer.cc b/base/allocator/partition_allocator/memory_reclaimer.cc
index 741e969..63819bf 100644
--- a/base/allocator/partition_allocator/memory_reclaimer.cc
+++ b/base/allocator/partition_allocator/memory_reclaimer.cc
@@ -23,7 +23,7 @@
 }
 
 void PartitionAllocMemoryReclaimer::RegisterPartition(
-    PartitionRoot<internal::ThreadSafe>* partition) {
+    PartitionRoot<>* partition) {
   internal::PartitionAutoLock lock(lock_);
   PA_DCHECK(partition);
   auto it_and_whether_inserted = partitions_.insert(partition);
diff --git a/base/allocator/partition_allocator/memory_reclaimer.h b/base/allocator/partition_allocator/memory_reclaimer.h
index 9816668..57fa689a 100644
--- a/base/allocator/partition_allocator/memory_reclaimer.h
+++ b/base/allocator/partition_allocator/memory_reclaimer.h
@@ -34,10 +34,10 @@
 
   // Internal. Do not use.
   // Registers a partition to be tracked by the reclaimer.
-  void RegisterPartition(PartitionRoot<internal::ThreadSafe>* partition);
+  void RegisterPartition(PartitionRoot<>* partition);
   // Internal. Do not use.
   // Unregisters a partition to be tracked by the reclaimer.
-  void UnregisterPartition(PartitionRoot<internal::ThreadSafe>* partition);
+  void UnregisterPartition(PartitionRoot<>* partition);
 
   // Triggers an explicit reclaim now to reclaim as much free memory as
   // possible. The API callers need to invoke this method periodically
@@ -62,7 +62,7 @@
   void ResetForTesting();
 
   internal::PartitionLock lock_;
-  std::set<PartitionRoot<internal::ThreadSafe>*> partitions_ GUARDED_BY(lock_);
+  std::set<PartitionRoot<>*> partitions_ GUARDED_BY(lock_);
 
   friend class NoDestructor<PartitionAllocMemoryReclaimer>;
   friend class PartitionAllocMemoryReclaimerTest;
diff --git a/base/allocator/partition_allocator/partition_alloc.h b/base/allocator/partition_allocator/partition_alloc.h
index 06626728..b7b2d48a 100644
--- a/base/allocator/partition_allocator/partition_alloc.h
+++ b/base/allocator/partition_allocator/partition_alloc.h
@@ -36,8 +36,6 @@
 }  // namespace internal
 
 using PartitionAllocator = internal::PartitionAllocator<internal::ThreadSafe>;
-using ThreadUnsafePartitionAllocator =
-    internal::PartitionAllocator<internal::NotThreadSafe>;
 
 }  // namespace base
 
diff --git a/base/allocator/partition_allocator/partition_alloc_forward.h b/base/allocator/partition_allocator/partition_alloc_forward.h
index 9e68961..db42efb 100644
--- a/base/allocator/partition_allocator/partition_alloc_forward.h
+++ b/base/allocator/partition_allocator/partition_alloc_forward.h
@@ -51,7 +51,6 @@
 struct SlotSpanMetadata;
 
 constexpr bool ThreadSafe = true;
-constexpr bool NotThreadSafe = false;
 
 #if (DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)) && \
     BUILDFLAG(USE_BACKUP_REF_PTR)
@@ -60,11 +59,10 @@
 
 }  // namespace internal
 
-template <bool thread_safe>
+template <bool thread_safe = true>
 struct PartitionRoot;
 
 using ThreadSafePartitionRoot = PartitionRoot<internal::ThreadSafe>;
-using ThreadUnsafePartitionRoot = PartitionRoot<internal::NotThreadSafe>;
 
 class PartitionStatsDumper;
 
diff --git a/base/allocator/partition_allocator/partition_bucket.cc b/base/allocator/partition_allocator/partition_bucket.cc
index 8fa6c53..02a8c264 100644
--- a/base/allocator/partition_allocator/partition_bucket.cc
+++ b/base/allocator/partition_allocator/partition_bucket.cc
@@ -251,7 +251,7 @@
       // Reserving memory from the GigaCage is actually not a syscall on 64 bit
       // platforms.
 #if !defined(PA_HAS_64_BITS_POINTERS)
-      ScopedSyscallTimer<thread_safe> timer{root};
+      ScopedSyscallTimer timer{root};
 #endif
       reservation_start = ReserveMemoryFromGigaCage(pool, 0, reservation_size);
     }
@@ -270,7 +270,7 @@
         reservation_start + PartitionPageSize() + padding_for_alignment;
 
     {
-      ScopedSyscallTimer<thread_safe> timer{root};
+      ScopedSyscallTimer timer{root};
       RecommitSystemPages(
           reinterpret_cast<void*>(reservation_start + SystemPageSize()),
 #if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT)
@@ -376,7 +376,7 @@
       }
 
       {
-        ScopedSyscallTimer<thread_safe> timer{root};
+        ScopedSyscallTimer timer{root};
 #if !defined(PA_HAS_64_BITS_POINTERS)
         AddressPoolManager::GetInstance()->MarkUnused(
             pool, reinterpret_cast<uintptr_t>(reservation_start),
@@ -626,7 +626,7 @@
   // guard page, except an "island" in the middle where we put page metadata and
   // also a tiny amount of extent metadata.
   {
-    ScopedSyscallTimer<thread_safe> timer{root};
+    ScopedSyscallTimer timer{root};
     RecommitSystemPages(
         reinterpret_cast<void*>(super_page + SystemPageSize()),
 #if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT)
@@ -691,7 +691,7 @@
   // could be not initialized yet.
   if (root->IsQuarantineEnabled()) {
     {
-      ScopedSyscallTimer<thread_safe> timer{root};
+      ScopedSyscallTimer timer{root};
       RecommitSystemPages(reinterpret_cast<void*>(state_bitmap),
                           state_bitmap_size_to_commit, PageReadWrite,
                           PageUpdatePermissions);
diff --git a/base/allocator/partition_allocator/partition_page.cc b/base/allocator/partition_allocator/partition_page.cc
index e9b6976..0bffa06 100644
--- a/base/allocator/partition_allocator/partition_page.cc
+++ b/base/allocator/partition_allocator/partition_page.cc
@@ -78,7 +78,7 @@
   // expected to be very rare though, and likely preferable to holding the lock
   // while releasing the address space.
   ScopedUnlockGuard unlock{root->lock_};
-  ScopedSyscallTimer<thread_safe> timer{root};
+  ScopedSyscallTimer timer{root};
   UnmapNow(reservation_start, reservation_size, root->ChoosePool());
 }
 
diff --git a/base/allocator/partition_allocator/partition_page.h b/base/allocator/partition_allocator/partition_page.h
index 3b130e9..2a46ca7 100644
--- a/base/allocator/partition_allocator/partition_page.h
+++ b/base/allocator/partition_allocator/partition_page.h
@@ -359,8 +359,6 @@
 
 static_assert(sizeof(PartitionPage<ThreadSafe>) == kPageMetadataSize,
               "PartitionPage must be able to fit in a metadata slot");
-static_assert(sizeof(PartitionPage<NotThreadSafe>) == kPageMetadataSize,
-              "PartitionPage must be able to fit in a metadata slot");
 
 // Certain functions rely on PartitionPage being either SlotSpanMetadata or
 // SubsequentPageMetadata, and therefore freely casting between each other.
@@ -368,11 +366,6 @@
 static_assert(offsetof(PartitionPage<ThreadSafe>, subsequent_page_metadata) ==
                   0,
               "");
-static_assert(offsetof(PartitionPage<NotThreadSafe>, slot_span_metadata) == 0,
-              "");
-static_assert(offsetof(PartitionPage<NotThreadSafe>,
-                       subsequent_page_metadata) == 0,
-              "");
 
 template <bool thread_safe>
 ALWAYS_INLINE PartitionPage<thread_safe>* PartitionSuperPageToMetadataArea(
diff --git a/base/allocator/partition_allocator/partition_root.cc b/base/allocator/partition_allocator/partition_root.cc
index 3c25895..e22a394 100644
--- a/base/allocator/partition_allocator/partition_root.cc
+++ b/base/allocator/partition_allocator/partition_root.cc
@@ -202,7 +202,7 @@
       uintptr_t slot_span_start =
           internal::SlotSpanMetadata<thread_safe>::ToSlotSpanStart(slot_span);
       uintptr_t committed_data_end = slot_span_start + utilized_slot_size;
-      ScopedSyscallTimer<thread_safe> timer{root};
+      ScopedSyscallTimer timer{root};
       DiscardSystemPages(reinterpret_cast<void*>(committed_data_end),
                          discardable_bytes);
     }
@@ -315,7 +315,7 @@
 
       PA_DCHECK(num_new_entries == num_slots - slot_span->num_allocated_slots);
       // Discard the memory.
-      ScopedSyscallTimer<thread_safe> timer{root};
+      ScopedSyscallTimer timer{root};
       DiscardSystemPages(reinterpret_cast<void*>(begin_addr),
                          unprovisioned_bytes);
     }
@@ -344,7 +344,7 @@
       size_t partial_slot_bytes = end_addr - begin_addr;
       discardable_bytes += partial_slot_bytes;
       if (discard) {
-        ScopedSyscallTimer<thread_safe> timer{root};
+        ScopedSyscallTimer timer{root};
         DiscardSystemPages(reinterpret_cast<void*>(begin_addr),
                            partial_slot_bytes);
       }
@@ -535,10 +535,6 @@
 template <bool thread_safe>
 void PartitionRoot<thread_safe>::Init(PartitionOptions opts) {
   {
-    // TODO(crbug.com/1277519): Should remove all traces of thread-unsafe roots,
-    // but until this is done, forbid them from being used.
-    PA_CHECK(thread_safe);
-
 #if BUILDFLAG(IS_APPLE)
     // Needed to statically bound page size, which is a runtime constant on
     // apple OSes.
diff --git a/base/allocator/partition_allocator/partition_root.h b/base/allocator/partition_allocator/partition_root.h
index 1490ba0..3f28f6f 100644
--- a/base/allocator/partition_allocator/partition_root.h
+++ b/base/allocator/partition_allocator/partition_root.h
@@ -162,35 +162,6 @@
   UseConfigurablePool use_configurable_pool;
 };
 
-namespace internal {
-
-template <bool thread_safe>
-class ScopedSyscallTimer {
- public:
-#if defined(PA_COUNT_SYSCALL_TIME)
-  explicit ScopedSyscallTimer(PartitionRoot<thread_safe>* root)
-      : root_(root), tick_(base::TimeTicks::Now()) {}
-
-  ~ScopedSyscallTimer() {
-    root_->syscall_count.fetch_add(1, std::memory_order_relaxed);
-
-    uint64_t elapsed_nanos = (base::TimeTicks::Now() - tick_).InNanoseconds();
-    root_->syscall_total_time_ns.fetch_add(elapsed_nanos,
-                                           std::memory_order_relaxed);
-  }
-
- private:
-  PartitionRoot<thread_safe>* root_;
-  const base::TimeTicks tick_;
-#else
-  explicit ScopedSyscallTimer(PartitionRoot<thread_safe>* root) {
-    root->syscall_count.fetch_add(1, std::memory_order_relaxed);
-  }
-#endif
-};
-
-}  // namespace internal
-
 // Never instantiate a PartitionRoot directly, instead use
 // PartitionAllocator.
 template <bool thread_safe>
@@ -743,6 +714,30 @@
 
 namespace internal {
 
+class ScopedSyscallTimer {
+ public:
+#if defined(PA_COUNT_SYSCALL_TIME)
+  explicit ScopedSyscallTimer(PartitionRoot<>* root)
+      : root_(root), tick_(base::TimeTicks::Now()) {}
+
+  ~ScopedSyscallTimer() {
+    root_->syscall_count.fetch_add(1, std::memory_order_relaxed);
+
+    uint64_t elapsed_nanos = (base::TimeTicks::Now() - tick_).InNanoseconds();
+    root_->syscall_total_time_ns.fetch_add(elapsed_nanos,
+                                           std::memory_order_relaxed);
+  }
+
+ private:
+  PartitionRoot<>* root_;
+  const base::TimeTicks tick_;
+#else
+  explicit ScopedSyscallTimer(PartitionRoot<>* root) {
+    root->syscall_count.fetch_add(1, std::memory_order_relaxed);
+  }
+#endif
+};
+
 // Gets the SlotSpanMetadata object of the slot span that contains |address|.
 // It's used with intention to do obtain the slot size.
 //
@@ -1264,13 +1259,9 @@
     SlotSpan* slot_span) {
   // TLS access can be expensive, do a cheap local check first.
   //
-  // Also the thread-unsafe variant doesn't have a use for a thread cache, so
-  // make it statically known to the compiler.
-  //
-  // LIKELY: performance-sensitive thread-safe partitions have a thread cache,
-  // direct-mapped allocations are uncommon.
-  if (thread_safe &&
-      LIKELY(with_thread_cache && !IsDirectMappedBucket(slot_span->bucket))) {
+  // LIKELY: performance-sensitive partitions have a thread cache, direct-mapped
+  // allocations are uncommon.
+  if (LIKELY(with_thread_cache && !IsDirectMappedBucket(slot_span->bucket))) {
     size_t bucket_index = slot_span->bucket - this->buckets;
     auto* thread_cache = internal::ThreadCache::Get();
     if (LIKELY(internal::ThreadCache::IsValid(thread_cache) &&
@@ -1358,7 +1349,7 @@
     uintptr_t address,
     size_t length,
     PageAccessibilityDisposition accessibility_disposition) {
-  internal::ScopedSyscallTimer<thread_safe> timer{this};
+  internal::ScopedSyscallTimer timer{this};
   DecommitSystemPages(reinterpret_cast<void*>(address), length,
                       accessibility_disposition);
   DecreaseCommittedPages(length);
@@ -1370,7 +1361,7 @@
     uintptr_t address,
     size_t length,
     PageAccessibilityDisposition accessibility_disposition) {
-  internal::ScopedSyscallTimer<thread_safe> timer{this};
+  internal::ScopedSyscallTimer timer{this};
 
   void* ptr = reinterpret_cast<void*>(address);
   bool ok = TryRecommitSystemPages(ptr, length, PageReadWriteTagged,
@@ -1390,7 +1381,7 @@
     uintptr_t address,
     size_t length,
     PageAccessibilityDisposition accessibility_disposition) {
-  internal::ScopedSyscallTimer<thread_safe> timer{this};
+  internal::ScopedSyscallTimer timer{this};
   void* ptr = reinterpret_cast<void*>(address);
   bool ok = TryRecommitSystemPages(ptr, length, PageReadWriteTagged,
                                    accessibility_disposition);
@@ -1538,16 +1529,11 @@
     PCScan::JoinScanIfNeeded();
   }
 
-  // !thread_safe => !with_thread_cache, but adding the condition allows the
-  // compiler to statically remove this branch for the thread-unsafe variant.
-  //
   // Don't use thread cache if higher order alignment is requested, because the
   // thread cache will not be able to satisfy it.
   //
-  // LIKELY: performance-sensitive partitions are either thread-unsafe or use
-  // the thread cache.
-  if (thread_safe &&
-      LIKELY(with_thread_cache && slot_span_alignment <= PartitionPageSize())) {
+  // LIKELY: performance-sensitive partitions use the thread cache.
+  if (LIKELY(with_thread_cache && slot_span_alignment <= PartitionPageSize())) {
     auto* tcache = internal::ThreadCache::Get();
     // LIKELY: Typically always true, except for the very first allocation of
     // this thread.
@@ -1843,7 +1829,6 @@
 }
 
 using ThreadSafePartitionRoot = PartitionRoot<internal::ThreadSafe>;
-using ThreadUnsafePartitionRoot = PartitionRoot<internal::NotThreadSafe>;
 
 static_assert(offsetof(ThreadSafePartitionRoot, lock_) ==
                   kPartitionCachelineSize,
diff --git a/base/allocator/partition_allocator/starscan/pcscan.h b/base/allocator/partition_allocator/starscan/pcscan.h
index 22d5063e..26131038 100644
--- a/base/allocator/partition_allocator/starscan/pcscan.h
+++ b/base/allocator/partition_allocator/starscan/pcscan.h
@@ -96,8 +96,6 @@
 
   // Registers a newly allocated super page for |root|.
   static void RegisterNewSuperPage(Root* root, uintptr_t super_page_base);
-  static void RegisterNewSuperPage(PartitionRoot<NotThreadSafe>* root,
-                                   uintptr_t super_page_base) {}
 
   ALWAYS_INLINE static void MoveToQuarantine(void* ptr,
                                              size_t usable_size,
diff --git a/base/allocator/partition_allocator/thread_cache.cc b/base/allocator/partition_allocator/thread_cache.cc
index 4f34e22..273c329 100644
--- a/base/allocator/partition_allocator/thread_cache.cc
+++ b/base/allocator/partition_allocator/thread_cache.cc
@@ -44,7 +44,7 @@
 namespace {
 // Since |g_thread_cache_key| is shared, make sure that no more than one
 // PartitionRoot can use it.
-static std::atomic<PartitionRoot<ThreadSafe>*> g_thread_cache_root;
+static std::atomic<PartitionRoot<>*> g_thread_cache_root;
 
 #if BUILDFLAG(IS_WIN)
 void OnDllProcessDetach() {
@@ -304,7 +304,7 @@
 }
 
 // static
-void ThreadCache::SwapForTesting(PartitionRoot<ThreadSafe>* root) {
+void ThreadCache::SwapForTesting(PartitionRoot<>* root) {
   auto* old_tcache = ThreadCache::Get();
   g_thread_cache_root.store(nullptr, std::memory_order_relaxed);
   if (old_tcache)
@@ -327,7 +327,7 @@
 }
 
 // static
-void ThreadCache::Init(PartitionRoot<ThreadSafe>* root) {
+void ThreadCache::Init(PartitionRoot<>* root) {
 #if BUILDFLAG(IS_NACL)
   IMMEDIATE_CRASH();
 #endif
@@ -339,7 +339,7 @@
   EnsureThreadSpecificDataInitialized();
 
   // Make sure that only one PartitionRoot wants a thread cache.
-  PartitionRoot<ThreadSafe>* expected = nullptr;
+  PartitionRoot<>* expected = nullptr;
   if (!g_thread_cache_root.compare_exchange_strong(expected, root,
                                                    std::memory_order_seq_cst,
                                                    std::memory_order_seq_cst)) {
@@ -355,8 +355,7 @@
 }
 
 // static
-void ThreadCache::SetGlobalLimits(PartitionRoot<ThreadSafe>* root,
-                                  float multiplier) {
+void ThreadCache::SetGlobalLimits(PartitionRoot<>* root, float multiplier) {
   size_t initial_value =
       static_cast<size_t>(kSmallBucketBaseCount) * multiplier;
 
@@ -448,7 +447,7 @@
   return tcache;
 }
 
-ThreadCache::ThreadCache(PartitionRoot<ThreadSafe>* root)
+ThreadCache::ThreadCache(PartitionRoot<>* root)
     : should_purge_(false),
       root_(root),
       thread_id_(PlatformThread::CurrentId()),
diff --git a/base/allocator/partition_allocator/thread_cache.h b/base/allocator/partition_allocator/thread_cache.h
index 554cc6a0..944650a 100644
--- a/base/allocator/partition_allocator/thread_cache.h
+++ b/base/allocator/partition_allocator/thread_cache.h
@@ -215,13 +215,12 @@
   // partition lock held.
   //
   // May only be called by a single PartitionRoot.
-  static void Init(PartitionRoot<ThreadSafe>* root);
-  static void Init(PartitionRoot<NotThreadSafe>* root) { IMMEDIATE_CRASH(); }
+  static void Init(PartitionRoot<>* root);
 
   static void DeleteForTesting(ThreadCache* tcache);
 
   // Deletes existing thread cache and creates a new one for |root|.
-  static void SwapForTesting(PartitionRoot<ThreadSafe>* root);
+  static void SwapForTesting(PartitionRoot<>* root);
 
   // Removes the tombstone marker that would be returned by Get() otherwise.
   static void RemoveTombstoneForTesting();
@@ -248,10 +247,7 @@
 
   // Create a new ThreadCache associated with |root|.
   // Must be called without the partition locked, as this may allocate.
-  static ThreadCache* Create(PartitionRoot<ThreadSafe>* root);
-  static ThreadCache* Create(PartitionRoot<NotThreadSafe>* root) {
-    IMMEDIATE_CRASH();
-  }
+  static ThreadCache* Create(PartitionRoot<>* root);
 
   ~ThreadCache();
 
@@ -331,7 +327,7 @@
   };
   static_assert(sizeof(Bucket) <= 2 * sizeof(void*), "Keep Bucket small.");
 
-  explicit ThreadCache(PartitionRoot<ThreadSafe>* root);
+  explicit ThreadCache(PartitionRoot<>* root);
   static void Delete(void* thread_cache_ptr);
   void PurgeInternal();
   // Fills a bucket from the central allocator.
@@ -342,8 +338,7 @@
   void ResetForTesting();
   // Releases the entire freelist starting at |head| to the root.
   void FreeAfter(PartitionFreelistEntry* head, size_t slot_size);
-  static void SetGlobalLimits(PartitionRoot<ThreadSafe>* root,
-                              float multiplier);
+  static void SetGlobalLimits(PartitionRoot<>* root, float multiplier);
 
 #if BUILDFLAG(IS_NACL)
   // The thread cache is never used with NaCl, but its compiler doesn't
@@ -388,7 +383,7 @@
   Bucket buckets_[kBucketCount];
 
   // Cold data below.
-  PartitionRoot<ThreadSafe>* const root_;
+  PartitionRoot<>* const root_;
   const PlatformThreadId thread_id_;
 #if DCHECK_IS_ON()
   bool is_in_thread_cache_ = false;
diff --git a/base/android/java/src/org/chromium/base/BuildInfo.java b/base/android/java/src/org/chromium/base/BuildInfo.java
index a835e05c2..d49e7f7 100644
--- a/base/android/java/src/org/chromium/base/BuildInfo.java
+++ b/base/android/java/src/org/chromium/base/BuildInfo.java
@@ -19,6 +19,8 @@
 import org.chromium.base.compat.ApiHelperForP;
 import org.chromium.build.BuildConfig;
 
+import java.util.Locale;
+
 /**
  * BuildInfo is a utility class providing easy access to {@link PackageInfo} information. This is
  * primarily of use for accessing package information from native code.
@@ -209,9 +211,27 @@
         return "eng".equals(Build.TYPE) || "userdebug".equals(Build.TYPE);
     }
 
+    /**
+     * Checks if the codename is a matching or higher version than the given build value.
+     * @param codename the requested build codename, e.g. {@code "O"} or {@code "OMR1"}
+     * @param buildCodename the value of {@link Build.VERSION#CODENAME}
+     *
+     * @return {@code true} if APIs from the requested codename are available in the build.
+     */
+    private static boolean isAtLeastPreReleaseCodename(String codename, String buildCodename) {
+        // Special case "REL", which means the build is not a pre-release build.
+        if ("REL".equals(buildCodename)) {
+            return false;
+        }
+
+        // Otherwise lexically compare them.  Return true if the build codename is equal to or
+        // greater than the requested codename.
+        return buildCodename.toUpperCase(Locale.ROOT).compareTo(codename) >= 0;
+    }
+
     // The markers Begin:BuildCompat and End:BuildCompat delimit code
     // that is autogenerated from Android sources.
-    // Begin:BuildCompat S
+    // Begin:BuildCompat S,T
 
     /**
      * Checks if the device is running on a pre-release version of Android S or a release version of
@@ -224,6 +244,21 @@
     }
 
     /**
+     * Checks if the device is running on a pre-release version of Android Tiramisu or a release
+     * version of Android Tiramisu or newer.
+     * <p>
+     * <strong>Note:</strong> When Android Tiramisu is finalized for release, this method will be
+     * removed and all calls must be replaced with {@code Build.VERSION.SDK_INT >=
+     * Build.VERSION_CODES.TIRAMISU}.
+     *
+     * @return {@code true} if T APIs are available for use, {@code false} otherwise
+     */
+    public static boolean isAtLeastT() {
+        return Build.VERSION.SDK_INT >= 32
+                && isAtLeastPreReleaseCodename("Tiramisu", Build.VERSION.CODENAME);
+    }
+
+    /**
      * Checks if the application targets at least released SDK S
      */
     public static boolean targetsAtLeastS() {
@@ -231,6 +266,14 @@
         return version >= Build.VERSION_CODES.S;
     }
 
+    /**
+     * Checks if the application targets pre-release SDK T
+     */
+    public static boolean targetsAtLeastT() {
+        int version = ContextUtils.getApplicationContext().getApplicationInfo().targetSdkVersion;
+        return isAtLeastT() && version == Build.VERSION_CODES.CUR_DEVELOPMENT;
+    }
+
     // End:BuildCompat
 
     public static void setFirebaseAppId(String id) {
diff --git a/build/fuchsia/test_runner.py b/build/fuchsia/test_runner.py
index 29dc33f..2ee90f1e 100755
--- a/build/fuchsia/test_runner.py
+++ b/build/fuchsia/test_runner.py
@@ -47,11 +47,15 @@
 
   def GetDevicePath(self, path):
     """Returns an absolute device-local variant of a path."""
-    return ''
+    raise NotImplementedError()
 
   def GetFile(self, glob, destination):
     """Places all files/directories matched by a glob into a destination."""
-    pass
+    raise NotImplementedError()
+
+  def GetCoverageProfiles(self, destination):
+    """Places all coverage files from the target into a destination."""
+    raise NotImplementedError()
 
 
 class TargetTestOutputs(TestOutputs):
@@ -77,10 +81,11 @@
                          for_package=self._package_name,
                          for_realms=self._test_realms)
 
-  def GetFileGlobal(self, glob, destination):
-    """Places all files/directories located in the global filesystem matched by
-    a glob into a destination."""
-    self._target.GetFile(self.GetDevicePath(glob), destination, None, None)
+  def GetCoverageProfiles(self, destination):
+    # Copy all the files in the profile directory. /* is used instead of
+    # recursively copying due to permission issues for the latter.
+    self._target.GetFile(self.GetDevicePath(TEST_LLVM_PROFILE_DIR + '/*'),
+                         destination, None, None)
 
 
 class CustomArtifactsTestOutputs(TestOutputs):
@@ -118,6 +123,14 @@
         os.path.join(self.GetOutputDirectory(), 'artifact-0', 'custom-0', glob),
         destination)
 
+  def GetCoverageProfiles(self, destination):
+    # Copy all the files in the profile directory.
+    # TODO(https://fxbug.dev/77634): Switch to ffx-based extraction once it is
+    # implemented.
+    self._target.GetFile(
+        '/tmp/test_manager:0/children/debug_data:0/data/' +
+        TEST_LLVM_PROFILE_DIR + '/*', destination)
+
 
 def MakeTestOutputs(component_version, target, package_name, test_realms):
   if component_version == '2':
@@ -233,16 +246,15 @@
 
   if args.component_version == "2":
     args.use_run_test_component = False
-    # TODO(crbug.com/1284141): Add code coverage support for v2 components.
-    assert not args.code_coverage
 
-  if args.code_coverage and not args.use_run_test_component:
+  if (args.code_coverage and args.component_version != "2"
+      and not args.use_run_test_component):
     if args.enable_test_server:
       # TODO(1254563): Tests that need access to the test server cannot be run
       # as test component under CFv1. Because code coverage requires it, force
       # the test to run as a test component. It is expected that test that tries
       # to use the external test server will fail.
-      args.use_run_test_component = False
+      args.use_run_test_component = True
     else:
       raise ValueError('Collecting code coverage info requires using '
                        'run-test-component.')
@@ -358,10 +370,7 @@
         test_server.Stop()
 
       if args.code_coverage:
-        # Copy all the files in the profile directory. /* is used instead
-        # of recursively copying due to permission issues for the latter.
-        test_outputs.GetFileGlobal(  # pylint: disable=no-member
-            TEST_LLVM_PROFILE_DIR + '/*', args.code_coverage_dir)
+        test_outputs.GetCoverageProfiles(args.code_coverage_dir)
 
       if args.test_launcher_summary_output:
         test_outputs.GetFile(TEST_RESULT_FILE,
diff --git a/cc/paint/oop_pixeltest.cc b/cc/paint/oop_pixeltest.cc
index 34bd340..5e9ee99 100644
--- a/cc/paint/oop_pixeltest.cc
+++ b/cc/paint/oop_pixeltest.cc
@@ -93,7 +93,7 @@
     gles2_context_provider_ =
         base::MakeRefCounted<viz::TestInProcessContextProvider>(
             /*enable_gles2_interface=*/true, /*support_locking=*/true,
-            viz::RasterInterfaceType::GPU);
+            viz::RasterInterfaceType::LEGACY_GPU);
     gpu::ContextResult result = gles2_context_provider_->BindToCurrentThread();
     DCHECK_EQ(result, gpu::ContextResult::kSuccess);
     const int gles2_max_texture_size =
@@ -119,8 +119,7 @@
     raster_context_provider_ =
         base::MakeRefCounted<viz::TestInProcessContextProvider>(
             /*enable_gles2_interface=*/false, /*support_locking=*/true,
-            viz::RasterInterfaceType::OOPR, &gr_shader_cache_,
-            &activity_flags_);
+            viz::RasterInterfaceType::GPU, &gr_shader_cache_, &activity_flags_);
     gpu::ContextResult result = raster_context_provider_->BindToCurrentThread();
     DCHECK_EQ(result, gpu::ContextResult::kSuccess);
     const int raster_max_texture_size =
diff --git a/cc/test/layer_tree_pixel_test.cc b/cc/test/layer_tree_pixel_test.cc
index 951c2b6..3fdc2959 100644
--- a/cc/test/layer_tree_pixel_test.cc
+++ b/cc/test/layer_tree_pixel_test.cc
@@ -79,7 +79,7 @@
     viz::RasterInterfaceType worker_ri_type;
     switch (raster_type()) {
       case TestRasterType::kGpu:
-        worker_ri_type = viz::RasterInterfaceType::OOPR;
+        worker_ri_type = viz::RasterInterfaceType::GPU;
         break;
       case TestRasterType::kOneCopy:
         worker_ri_type = viz::RasterInterfaceType::Software;
diff --git a/cc/tiles/gpu_image_decode_cache_perftest.cc b/cc/tiles/gpu_image_decode_cache_perftest.cc
index b018856..77b10ee3 100644
--- a/cc/tiles/gpu_image_decode_cache_perftest.cc
+++ b/cc/tiles/gpu_image_decode_cache_perftest.cc
@@ -35,7 +35,7 @@
   return SkM44::Scale(scale.width(), scale.height());
 }
 
-enum class TestMode { kGpu, kTransferCache, kSw };
+enum class TestMode { kGpu, kSw };
 
 class GpuImageDecodeCachePerfTest
     : public testing::Test,
@@ -64,23 +64,18 @@
   size_t MaxTextureSize() const {
     switch (GetParam()) {
       case TestMode::kGpu:
-      case TestMode::kTransferCache:
         return 4096;
       case TestMode::kSw:
         return 0;
     }
   }
 
-  bool UseTransferCache() const {
-    return GetParam() == TestMode::kTransferCache;
-  }
+  bool UseTransferCache() const { return GetParam() == TestMode::kGpu; }
 
   const char* ParamName() const {
     switch (GetParam()) {
       case TestMode::kGpu:
         return "GPU";
-      case TestMode::kTransferCache:
-        return "TransferCache";
       case TestMode::kSw:
         return "SW";
     }
@@ -90,8 +85,6 @@
     switch (mode) {
       case TestMode::kGpu:
         return viz::RasterInterfaceType::GPU;
-      case TestMode::kTransferCache:
-        return viz::RasterInterfaceType::OOPR;
       case TestMode::kSw:
         return viz::RasterInterfaceType::Software;
       default:
@@ -115,9 +108,7 @@
 
 INSTANTIATE_TEST_SUITE_P(P,
                          GpuImageDecodeCachePerfTest,
-                         testing::Values(TestMode::kGpu,
-                                         TestMode::kTransferCache,
-                                         TestMode::kSw));
+                         testing::Values(TestMode::kGpu, TestMode::kSw));
 
 TEST_P(GpuImageDecodeCachePerfTest, DecodeWithColorConversion) {
   timer_.Reset();
@@ -144,8 +135,7 @@
 using GpuImageDecodeCachePerfTestNoSw = GpuImageDecodeCachePerfTest;
 INSTANTIATE_TEST_SUITE_P(P,
                          GpuImageDecodeCachePerfTestNoSw,
-                         testing::Values(TestMode::kGpu,
-                                         TestMode::kTransferCache));
+                         testing::Values(TestMode::kGpu));
 
 TEST_P(GpuImageDecodeCachePerfTestNoSw, DecodeWithMips) {
   // Surface to render into.
@@ -165,15 +155,6 @@
 
     DecodedDrawImage decoded_image = cache_->GetDecodedImageForDraw(image);
 
-    if (GetParam() == TestMode::kGpu) {
-      SkSamplingOptions sampling(SkFilterMode::kLinear, SkMipmapMode::kLinear);
-      surface->getCanvas()->drawImageRect(
-          decoded_image.image().get(), SkRect::MakeWH(1024, 2048),
-          SkRect::MakeWH(614, 1229), sampling, nullptr,
-          SkCanvas::kStrict_SrcRectConstraint);
-      surface->flushAndSubmit();
-    }
-
     cache_->DrawWithImageFinished(image, decoded_image);
     timer_.NextLap();
   } while (!timer_.HasTimeLimitExpired());
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
index 7e18265..d24d8f1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
@@ -471,7 +471,7 @@
     public NativePage createNativePage(String url, NativePage candidatePage, Tab tab) {
         // Navigation comes from user pressing "Back to safety" on an interstitial so close the tab.
         // See crbug.com/1270695
-        if (url.equals(UrlConstants.NTP_URL) && tab.isShowingErrorPage()) {
+        if (UrlConstants.NTP_URL.equals(url) && tab.isShowingErrorPage()) {
             mNavigationDelegate.closeTab();
         }
         // Custom tab does not create native pages.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
index 7251c59c..21d2f9a5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -35,6 +35,7 @@
 import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings;
 import org.chromium.chrome.browser.sync.settings.ManageSyncSettings;
 import org.chromium.chrome.browser.usage_stats.UsageStatsConsentDialog;
+import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
 import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
 import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
 import org.chromium.components.browser_ui.settings.SettingsLauncher;
@@ -67,6 +68,7 @@
     private ManagedPreferenceDelegate mManagedPreferenceDelegate;
     private IncognitoLockSettings mIncognitoLockSettings;
     private ViewGroup mDialogContainer;
+    private BottomSheetController mBottomSheetController;
 
     @Override
     public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
@@ -93,8 +95,8 @@
         } else {
             // Display the privacy review dialog when the menu item is clicked.
             privacyReviewPreference.setOnPreferenceClickListener(preference -> {
-                PrivacyReviewDialog dialog =
-                        new PrivacyReviewDialog(getContext(), mDialogContainer);
+                PrivacyReviewDialog dialog = new PrivacyReviewDialog(
+                        getContext(), mDialogContainer, mBottomSheetController);
                 dialog.show();
                 return true;
             });
@@ -284,4 +286,8 @@
     public void setDialogContainer(ViewGroup dialogContainer) {
         mDialogContainer = dialogContainer;
     }
+
+    public void setBottomSheetController(BottomSheetController controller) {
+        mBottomSheetController = controller;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
index ebfa7e3..6e217a0e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
@@ -416,6 +416,7 @@
                             LaunchIntentDispatcher::createCustomTabActivityIntent);
         }
         if (fragment instanceof PrivacySettings) {
+            ((PrivacySettings) fragment).setBottomSheetController(mBottomSheetController);
             ((PrivacySettings) fragment).setDialogContainer(findViewById(R.id.dialog_container));
         }
     }
diff --git a/chrome/android/webapk/shell_apk/request_update_for_version.gni b/chrome/android/webapk/shell_apk/request_update_for_version.gni
index 96bb8aaf..7283fbe 100644
--- a/chrome/android/webapk/shell_apk/request_update_for_version.gni
+++ b/chrome/android/webapk/shell_apk/request_update_for_version.gni
@@ -6,4 +6,4 @@
 # if the WebAPK's ShellAPK version is less than
 # |request_update_for_shell_apk_version|. The version should be incremented
 # after a new ShellAPK has been uploaded to the WebAPK Minting Server.
-request_update_for_shell_apk_version = 144
+request_update_for_shell_apk_version = 146
diff --git a/chrome/app/resources/chromium_strings_hi.xtb b/chrome/app/resources/chromium_strings_hi.xtb
index 0293f52d..d2e5663d 100644
--- a/chrome/app/resources/chromium_strings_hi.xtb
+++ b/chrome/app/resources/chromium_strings_hi.xtb
@@ -14,6 +14,7 @@
 <translation id="1524282610922162960">क्रोमियम का टैब शेयर करें</translation>
 <translation id="1553461853655228091">क्रोमियम को आपके आस-पास की जगह का 3D मैप बनाने के लिए, कैमरा ऐक्सेस करने की अनुमति चाहिए</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{आपका एडमिन चाहता है कि आप अपडेट लागू करने के लिए क्रोमियम को फिर से लॉन्च करें}=1{आपका एडमिन चाहता है कि आप अपडेट लागू करने के लिए क्रोमियम को फिर से लॉन्च करें. आपकी गुप्त विंडो फिर से नहीं खुलेगी.}one{आपका एडमिन चाहता है कि आप अपडेट लागू करने के लिए क्रोमियम को फिर से लॉन्च करें. आपकी # गुप्त विंडो फिर से नहीं खुलेंगी.}other{आपका एडमिन चाहता है कि आप अपडेट लागू करने के लिए क्रोमियम को फिर से लॉन्च करें. आपकी # गुप्त विंडो फिर से नहीं खुलेंगी.}}</translation>
+<translation id="1625909126243026060">Chromium के निजता और सुरक्षा से जुड़े मुख्य कंट्रोल देखें</translation>
 <translation id="1708666629004767631">क्रोमियम का एक नया और सुरक्षित वर्शन उपलब्ध है.</translation>
 <translation id="1774152462503052664">क्रोमियम को पृष्ठभूमि में चलने दें</translation>
 <translation id="1779356040007214683">Chromium को ज़्यादा सुरक्षित बनाने के लिए, हमने ऐसे कुछ एक्सटेंशन अक्षम कर दिए हैं जो <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> में सूचीबद्ध नहीं हैं और आपकी जानकारी के बिना जोड़े गए हो सकते हैं.</translation>
@@ -117,6 +118,7 @@
 <translation id="459535195905078186">क्रोमियम ऐप्स</translation>
 <translation id="4621240073146040695">करीब अप टू डेट हो गया है! अपडेट करना पूरा करने के लिए क्रोमियम फिर से लॉन्च करें.</translation>
 <translation id="4665829708273112819">चेतावनी: Chromium, एक्सटेंशन को आपका ब्राउज़िंग इतिहास रिकॉर्ड करने से नहीं रोक सकता. गुप्त मोड में इस एक्सटेंशन को बंद करने के लिए, इस विकल्प से चुने हुए का निशान हटाएं.</translation>
+<translation id="4673151026126227699">अगर Chromium के इस्तेमाल से जुड़ी जानकारी देने वाली रिपोर्ट शेयर की जाती हैं, तो आपके देखे गए पेजों के यूआरएल उनमें शामिल होते हैं</translation>
 <translation id="4677944499843243528">ऐसा लगता है कि प्रोफ़ाइल का उपयोग अन्य क्रोमियम प्रोसेस (<ph name="PROCESS_ID" />) द्वारा किसी अन्य कंप्यूटर (<ph name="HOST_NAME" />) पर किया जा रहा है. क्रोमियम ने प्रोफ़ाइल को लॉक कर दिया है ताकि वह दूषित न हो. अगर आप पक्का हैं कि कोई अन्य प्रोसेस इस प्रोफ़ाइल का उपयोग नहीं कर रही हैं, तो आप प्रोफ़ाइल को अनलॉक कर सकते हैं और क्रोमियम को फिर से लॉन्च कर सकते हैं.</translation>
 <translation id="469338717132742108">क्रोमियम OS के लिए सहायता पाएं</translation>
 <translation id="4708774505295300557">इस कंप्यूटर पर पहले किसी अन्य व्यक्ति ने <ph name="ACCOUNT_EMAIL_LAST" /> के रूप में Chromium में साइन इन किया. अपनी जानकारी अलग रखने के लिए कृपया नया Chromium उपयोगकर्ता बनाएं.</translation>
@@ -238,6 +240,7 @@
 <translation id="7597596667193879455">आपके खाते में, बेहतर सुरक्षित ब्राउज़िंग की सुविधा चालू है. अब यह सुविधा Chromium में पाएं.</translation>
 <translation id="761356813943268536">Chromium आपके कैमरे और माइक्रोफ़ोन का उपयोग कर रहा है.</translation>
 <translation id="7617377681829253106">क्रोमियम पहले से बेहतर हो गया है</translation>
+<translation id="7682601070171973634">Chromium पर ऐसी नई सुविधाएं एक्सप्लोर की जा रही हैं जिनसे साइटें, उपयोगकर्ता का कम डेटा इस्तेमाल करके उन्हें पहले जैसा अनुभव दे सकती हैं</translation>
 <translation id="7686590090926151193">क्रोमियम आपका डिफ़ॉल्ट ब्राउज़र नहीं है</translation>
 <translation id="7689606757190482937">क्रोमियम को अपने सभी डिवाइस पर सिंक करें और मनमुताबिक बनाएं</translation>
 <translation id="7729447699958282447">क्रोमियम आपका डेटा समन्‍वयित नहीं कर सका क्‍योंकि समन्‍वयन आपके डोमेन के लिए उपलब्‍ध नहीं है.</translation>
diff --git a/chrome/app/resources/chromium_strings_mn.xtb b/chrome/app/resources/chromium_strings_mn.xtb
index 06763827..a9487f5 100644
--- a/chrome/app/resources/chromium_strings_mn.xtb
+++ b/chrome/app/resources/chromium_strings_mn.xtb
@@ -16,6 +16,7 @@
 <translation id="1524282610922162960">Chromium-н таб хуваалцах</translation>
 <translation id="1553461853655228091">Орчин тойрны тань 3D газрын зургийг үүсгэхийн тулд таны камерт хандах зөвшөөрөл Chromium-д шаардлагатай</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Шинэчлэлтийг хэрэгжүүлэхийн тулд Chromium-г дахин ачаалахыг таны администратор танаас шаардаж байна}=1{Шинэчлэлтийг хэрэгжүүлэхийн тулд Chromium-г дахин ачаалахыг таны администратор танаас шаардаж байна. Таны нууцлалтай цонхыг дахин нээхгүй.}other{Шинэчлэлтийг хэрэгжүүлэхийн тулд Chromium-г дахин ачаалахыг таны администратор танаас шаардаж байна. Таны # нууцлалтай цонхыг дахин нээхгүй.}}</translation>
+<translation id="1625909126243026060">Chromium-н нууцлал болон аюулгүй байдлын үндсэн хяналтуудыг шалгана уу</translation>
 <translation id="1708666629004767631">Chromium-ийн шинэ, илүү аюулгүй хувилбар боломжтой байна.</translation>
 <translation id="1774152462503052664">Chromium-ыг арын орчинд ажиллуулах</translation>
 <translation id="1779356040007214683">Chromium аюулгүй байдлыг нэмэгдүүлэхийн тулд бид <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />-ны жагсаалтад байхгүй бөгөөд танд мэдэгдэлгүйгээр нэмэгдсэн байж болзошгүй зарим өргөтгөлүүдийг идэвхгүй болгосон.</translation>
@@ -117,6 +118,7 @@
 <translation id="459535195905078186">Chromium App</translation>
 <translation id="4621240073146040695">Удахгүй шинэчилж дууслаа! Chromium-н шинэчлэлийг дуусгахын тулд дахин ачаалж эхлүүлнэ үү.</translation>
 <translation id="4665829708273112819">Анхааруулга: Chromium өргөтгөлүүдийг таны хөтчийн түүхийг бичихээс хамгаалж чадахгүй. Энэ өргөтгөлийг Нууцлалтай горимд идэвхгүй болгохын тулд энэ сонголтыг болиулна уу.</translation>
+<translation id="4673151026126227699">Хэрэв та мөн Chromium-н ашиглалтын тайланг хуваалцвал тэдгээр тайланд таны зочилсон URL багтана</translation>
 <translation id="4677944499843243528">Хувийн мэдээллийг (<ph name="HOST_NAME" />) өөр компьютер дээр өөр Chromium үйлдэлд (<ph name="PROCESS_ID" />) ашиглаж байна гэж харагдаж байна. Chromium-аас хувийн мэдээллийг түгжсэн байгаа учраас үүнийг өөр зүйлд ашиглах боломжгүй юм. Хэрэв та өөр ямар ч үйлдэлд энэ хувийн мэдээллийг ашиглахгүй байгаа гэдэгт та итгэлтэй байгаа бол хувийн мэдээллээ цоожилж Chromium-ыг дахин эхлүүлж болно.</translation>
 <translation id="469338717132742108">Chromium үйлдлийн системээс тусламж авах</translation>
 <translation id="4708774505295300557">Хэн нэгэн энэ компьютерт <ph name="ACCOUNT_EMAIL_LAST" /> бүртгэлээр Chromium-д нэвтэрсэн байна. Мэдээллээ тусад нь хадгалахын тулд Chromium-н шинэ хэрэглэгч үүсгэнэ үү.</translation>
@@ -236,6 +238,7 @@
 <translation id="7597596667193879455">Та бүртгэлдээ Сайжруулсан аюулгүй хөтчийг асаасан байна. Одоо үүнийг Chromium-д идэвхжүүлээрэй.</translation>
 <translation id="761356813943268536">Chromium нь таны камер болон микрофоныг ашиглаж байна.</translation>
 <translation id="7617377681829253106">Chromium сайжирлаа</translation>
+<translation id="7682601070171973634">Chromium нь сайтуудад таны өгөгдлийг бага хэмжээгээр ашиглах боломжийг олгодог шинэ боломжуудыг судалж байна</translation>
 <translation id="7686590090926151193">Chromium таны өгөгдмөл хөтөч биш юм</translation>
 <translation id="7689606757190482937">Төхөөрөмжүүддээ Chromium-г синк хийж, хувийн болгох</translation>
 <translation id="7729447699958282447">Таны домэйн хаяг өгөгдөл суурьлуулах боломжгүй байгаа тул Chromium-д таны өгөгдлийг оруулах боломжгүй байгаа болно.</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index c046622..33ecefbf 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> deel tans <ph name="ATTACHMENTS" /> met jou.}other{<ph name="DEVICE_NAME" /> deel tans <ph name="ATTACHMENTS" /> met jou.}}</translation>
 <translation id="3364986687961713424">Vanaf jou administrateur: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Gebruik óf Ctrl óf Alt</translation>
-<translation id="3367057768351048705">Werwe kan jou webkoekies net gebruik om jou blaai-aktiwiteit op hul eie werf te sien</translation>
 <translation id="3368922792935385530">Gekoppel</translation>
 <translation id="3369067987974711168">Wys meer handelinge vir hierdie poort</translation>
 <translation id="3369624026883419694">Los tans gasheer op …</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326">Aktiveer <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" /> sigbaar vir nabygeleë toestelle as <ph name="DEVICE_NAME" /> …</translation>
 <translation id="3981760180856053153">Ongeldige stoortipe is ingevoer.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Iets is fout en <ph name="DEVICE_OS" /> kon nie geïnstalleer word nie.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Besoek g.co/xxxxx vir meer hulp<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Stel jou blaaier op in 'n paar eenvoudige stappe</translation>
 <translation id="3983400541576569538">Data van sommige programme af kan verloor word</translation>
 <translation id="3983586614702900908">toestelle van 'n onbekende verskaffer</translation>
@@ -3889,9 +3886,6 @@
 <translation id="4992984395680162305">Hierdie toestelle is gekoppel deur 'n QR-kode te skandeer.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Voordat jy inskryf, moet jy die TPM skoonmaak sodat <ph name="DEVICE_OS" /> eienaarskap van die toestel kan oorneem.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Jy kan die TPM-toestel ook heeltemal afskakel. Jou data sal steeds veilig geberg word met sagteware-enkripsie, maar sekere sekuriteitkenmerke, soos sertifikate wat deur hardeware ondersteun word, sal gedeaktiveer word.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Jy kan jou TPM-instellings verander deur te herselflaai en die stelsel se BIOS/UEFI-instellings in te voer. Stappe wat op die toestelmodel gegrond is. Vir meer inligting, moet jy die <ph name="DEVICE_OS" />-dokumente op 'n ander toestel oopmaak voordat jy herselflaai: [URL-skakel]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Kon geen <ph name="VM_TYPE" />-VM'e kry nie}=1{1 <ph name="VM_TYPE" />-VM is gekry: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" />-VM'e is gekry: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Geen internetverbinding nie.</translation>
 <translation id="4998430619171209993">Aan</translation>
@@ -4009,7 +4003,6 @@
 <translation id="5127620150973591153">Veiligeverbinding-ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sinkronisering is af</translation>
 <translation id="5127881134400491887">Bestuur netwerkverbindings</translation>
-<translation id="5128774403617662387">Maak seker dat jy 'n rugsteun van jou data het voordat jy begin. As jy <ph name="DEVICE_OS" /> installeer, sal jou hardeskyf vervang word. Kom meer te wete by g.co/TBD.</translation>
 <translation id="512903556749061217">aangeheg</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profiel kon nie afgelaai word nie. Probeer asseblief later weer of kontak diensverskaffer vir hulp.</translation>
@@ -4526,7 +4519,6 @@
 <translation id="5659593005791499971">E-pos</translation>
 <translation id="5659833766619490117">Hierdie bladsy kon nie vertaal word nie</translation>
 <translation id="5662513737565158057">Verander hoe Linux-programme sal werk.</translation>
-<translation id="5667490069342183561">Google is nie vir enige verlies aan data verantwoordelik nie en <ph name="DEVICE_OS" /> sal dalk nie op ongesertifiseerde modelle werk nie. Kom meer te wete by g.co/TBD.</translation>
 <translation id="5667546120811588575">Stel tans Google Play op …</translation>
 <translation id="5668351004957198136">Misluk</translation>
 <translation id="56702779821643359">Deel lêers met mense rondom jou. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation>
@@ -5338,9 +5330,6 @@
 <translation id="6528179044667508675">Moenie Steur Nie</translation>
 <translation id="652948702951888897">Chrome-geskiedenis</translation>
 <translation id="6530186581263215931">Hierdie instellings word deur jou administrateur afgedwing</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Om die beste ervaring te bied, samel <ph name="DEVICE_OS" /> hardewaredata oor toestelle in en deel dit met Google om te bepaal watter opdaterings gelewer moet word. Jy het die opsie om Google toe te laat om hierdie data vir bykomende doeleindes te gebruik, soos steundienste en die verbetering van die <ph name="DEVICE_OS" />-ervaring en -diens.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Jy kan op hierdie toestel aanmeld en die CLOUDREADY_HARDWARE_INFO-afdeling in chrome://system besoek om die data te sien wat vir die filtrering van opdaterings na Google toe gestuur word, asook enige ander gevalle waar jy kies om data met Google te deel.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Besoek g.co/xxxxx vir meer besonderhede oor data wat <ph name="DEVICE_OS" /> met kan Google deel en hoe dit gebruik word.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Hou gevaarlike lêer</translation>
 <translation id="6532101170117367231">Stoor op Google Drive</translation>
 <translation id="6532106788206463496">Stoor veranderinge</translation>
@@ -6029,15 +6018,6 @@
 <translation id="7258192266780953209">Transformasies</translation>
 <translation id="7258225044283673131">Die progam reageer nie. Kies "Forseer toemaak" om die program toe te maak.</translation>
 <translation id="7262004276116528033">Hierdie aanmelddiens word deur <ph name="SAML_DOMAIN" /> gehou</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Probeer hierdie foutsporingstappe:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Maak seker dat jou toestel werkende interne berging bevat, soos 'n HDD, SSD of eMMC
-    <ph name="LIST_ITEM" />Maak seker dat jou internebergingtoestel groter as 16 GB is
-    <ph name="LIST_ITEM" />Kontroleer die verbinding na die interne berging, indien jy fisiek daarby kan ingaan
-    <ph name="LIST_ITEM" />Maak seker dat jy 'n gesertifiseerde model gebruik en raadpleeg installasienotas
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Besoek g.co/xxxxx vir meer inligting<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Kon nie die virtuele masjien installeer nie. Probeer asseblief weer, of kontak jou administrateur. Foutkode: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Hou aan om jou vinger op te lig om die verskillende dele van jou vingerafdruk by te voeg</translation>
 <translation id="7268127947535186412">Die toesteleienaar bestuur hierdie instelling.</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index ec605ecd..fe0dfd2 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -2321,7 +2321,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> <ph name="ATTACHMENTS" />ን ለእርስዎ እያጋሩ ነው።}one{<ph name="DEVICE_NAME" /> <ph name="ATTACHMENTS" />ን ለእርስዎ እያጋሩ ነው።}other{<ph name="DEVICE_NAME" /> <ph name="ATTACHMENTS" />ን ለእርስዎ እያጋሩ ነው።}}</translation>
 <translation id="3364986687961713424">ከእርስዎ አስተዳዳሪ፦ <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl ወይም Alt ይጠቀሙ</translation>
-<translation id="3367057768351048705">ጣቢያዎች የአሰሳ እንቅስቃሴዎን በራሳቸው ጣቢያ ላይ ለማየት ብቻ ኩኪዎችዎን ሊጠቀሙ ይችላሉ</translation>
 <translation id="3368922792935385530">ተያይዟል</translation>
 <translation id="3369067987974711168">ለዚህ ወደብ ተጨማሪ እርምጃዎችን አሳይ</translation>
 <translation id="3369624026883419694">ለአስተናጋጅ መፍትሄ በመፈለግ ላይ…</translation>
@@ -2962,8 +2961,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" />ን አንቃ</translation>
 <translation id="3981058120448670012">ለ<ph name="REMAINING_TIME" /> በአቅራቢያ ላሉ መሣሪያዎች እንደ <ph name="DEVICE_NAME" /> ሆኖ ይታያል...</translation>
 <translation id="3981760180856053153">ልክ ያልሆነ የማስቀመጥ አይነት ገብቷል።</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />የሆነ ችግር ተፈጥሯል፣ <ph name="DEVICE_OS" /> እንዲሁም ሊጫን አልቻለም።<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ለተጨማሪ እገዛ የሚከተለውን ይጎብኙ፦ g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">የእርስዎን አሳሽ በጥቂት ቀላል እርምጃዎችን ያቀናብሩ</translation>
 <translation id="3983400541576569538">ከአንዳንድ መተግበሪያዎች የተገኘ ውሂብ ሊጠፋ ይችላል</translation>
 <translation id="3983586614702900908">ያልታወቀ አቅራቢ መሣሪያዎች</translation>
@@ -3880,9 +3877,6 @@
 <translation id="4992984395680162305">እነዚህ መሣሪያዎች የQR ኮድ በመቃኘት ተገናኝተዋል።</translation>
 <translation id="4994474651455208930">ጣቢያዎች ለፕሮቶኮሎች ነባሪ ከዋኞች እንዲሆኑ እንዲጠይቁ ፍቀድ</translation>
 <translation id="4994754230098574403">በማዋቀር ላይ</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />ከመመዝገብዎ በፊት <ph name="DEVICE_OS" /> የመሣሪያውን ባለቤትነት መውሰድ እንዲችል TPMን ማጽዳት ይኖርብዎታል።<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />እንዲሁም የTPM መሣሪያውን ሙሉ በሙሉ ማጥፋት ይችላሉ። የእርስዎ ውሂብ አሁንም በሶፍትዌር ምስጠራ አማካኝነት ደህንነቱ በተጠበቀ ሁኔታ ይቀመጣል፣ ነገር ግን እንደ በሃርድዌር የሚደገፉ የዕውቅና ማረጋገጫዎች ያሉ የተወሰኑ የደህንነት ባህሪዎች ይሰናከላሉ።<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />ዳግም በማስነሳት እና የስርዓቱን BIOS/UEFI ቅንብሮችን በመግባት የTPM ቅንብሮችን መለወጥ ይችላሉ። ደረጃዎች በመሣሪያው ሞዴል ላይ በመመስረት ይለያያሉ። ለተጨማሪ መረጃ፣ ዳግም ከማስነሳትዎ በፊት የ<ph name="DEVICE_OS" /> ሰነድን በተለየ መሣሪያ ላይ ይክፈቱ፦[የዩአርኤል አገናኝ]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{ምንም <ph name="VM_TYPE" /> VMs አልተገኙም}=1{1 <ph name="VM_TYPE" /> ፕሮግራም ተገኝቷል፦ <ph name="VM_NAME_LIST" />}one{{NUM_VMS} <ph name="VM_TYPE" /> VMs ፕሮግራሞች ተገኝተዋል፦ <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> VMs ተገኝተዋል፦ <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">ምንም የበይነመረብ ግንኙነት የለም።</translation>
 <translation id="4998430619171209993">አብራ</translation>
@@ -4000,7 +3994,6 @@
 <translation id="5127620150973591153">ደህንነቱ የተጠበቀ የግንኙነት መታወቂያ፦ <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">አመሳስል ጠፍቷል</translation>
 <translation id="5127881134400491887">የአውታረ መረብ ግንኙነቶች አቀናብር</translation>
-<translation id="5128774403617662387">ከመጀመርዎ በፊት የውሂብዎ ምትኬ እንዳለዎት ያረጋግጡ። <ph name="DEVICE_OS" />ን መጫን የእርስዎን ደረቅ አንጻፊ ይደመስሳል። g.co/TBD ላይ የበለጠ ይረዱ።</translation>
 <translation id="512903556749061217">ተያያዟል</translation>
 <translation id="5130080518784460891">ኢቴን</translation>
 <translation id="5130675701626084557">መገለጫ ሊውረድ አይችልም። እባክዎ ቆይተው እንደገና ይሞክሩ ወይም ለእርዳታ አገልግሎት አቅራቢን ያነጋግሩ።</translation>
@@ -4516,7 +4509,6 @@
 <translation id="5659593005791499971">ኢሜይል</translation>
 <translation id="5659833766619490117">ይህ ገጽ ሊተረጎም አልቻለም</translation>
 <translation id="5662513737565158057">የLinux መተግበሪያዎች እንዴት እንደሚሰሩ ይቀይሩ።</translation>
-<translation id="5667490069342183561">Google ለማንኛውም የውሂብ መጥፋት ተጠያቂ አይደለም፣ እንዲሁም <ph name="DEVICE_OS" /> የእውቅና ማረጋገጫ በሌላቸው ሞዴሎች ላይ ላይሰራ ይችላል። g.co/TBD ላይ የበለጠ ይረዱ።</translation>
 <translation id="5667546120811588575">Google Playን በማዋቀር ላይ...</translation>
 <translation id="5668351004957198136">አልተሳካም</translation>
 <translation id="56702779821643359">ፋይሎችን በዙሪያዎ ላሉ ሰዎች ያጋሩ <ph name="LINK_BEGIN" />የበለጠ ለመረዳት<ph name="LINK_END" /></translation>
@@ -5328,9 +5320,6 @@
 <translation id="6528179044667508675">አትረብሽ</translation>
 <translation id="652948702951888897">የChrome ታሪክ</translation>
 <translation id="6530186581263215931">እነዚህ ቅንብሮች በአስተዳዳሪዎ ነው የሚፈጸሙት</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />ምርጡን ተሞክሮ ለማቅረብ <ph name="DEVICE_OS" /> ስለ መሳሪያዎች ሃርድዌር መረጃን ይሰበስባል እና የትኞቹ ዝመናዎች መቅረብ እንዳለባቸው ለማወቅ ለGoogle ያጋራል። እንደ አማራጭ፣ Google ይህን ውሂብ ለተጨማሪ ዓላማዎች እንደ ለ<ph name="DEVICE_OS" /> ልምድ እና አገልግሎት ድጋፍ እና ማሻሻያ እንዲጠቀም መፍቀድ ይችላሉ።<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ለGoogle ለዝማኔ ማጣሪያ የተላከውን መረጃ እንዲሁም ሌሎች መረጃዎችን ለGoogle ለማጋራት የመረጡላቸውን ሌሎች አጋጣሚዎች ለማየት በዚህ መሳሪያ ላይ ገብተው በchrome://system ላይ ያለውን የCLOUDREADY_HARDWARE_INFO ክፍል መጎብኘት ይችላሉ ።<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> ለGoogle ሊያጋራ ስለሚችለው ውሂብ እና እንዴት ጥቅም ላይ እንደሚውል የበለጠ ዝርዝር ለመግኘት g.co/xxxxxን ይጎብኙ<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">አደገኛ ፋይልን አስቀምጥ</translation>
 <translation id="6532101170117367231">ወደ Google Drive ያስቀምጡ</translation>
 <translation id="6532106788206463496">ለውጦችን አስቀምጥ</translation>
@@ -6019,15 +6008,6 @@
 <translation id="7258192266780953209">ዐብይ ለውጦች</translation>
 <translation id="7258225044283673131">መተግበሪያው ምላሽ እየሰጠ አይደለም። መተግበሪያውን ለመዝጋት «በግዳጅ ዝጋ»ን ይምረጡ።</translation>
 <translation id="7262004276116528033">ይህ የመለያ መግቢያ አገልግሎት በ<ph name="SAML_DOMAIN" /> የሚስተናገድ ነው</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />እነዚህን የመላ ፍለጋ ደረጃዎች ይሞክሩ፦
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />መሣሪያዎ እንደ HDD፣ SSD ወይም eMMC ያሉ ውስጣዊ ማህደረ ትውስታ የውስጥ ማከማቻ መያዙን ያረጋግጡ
-    <ph name="LIST_ITEM" />ውስጣዊ ማህደረ ትውስታ መሣሪያዎ ከ16 ጊባ የሚበልጥ መሆኑን ያረጋግጡ
-    <ph name="LIST_ITEM" />በአካል ተደራሽ ከሆነ ከውስጣዊ ማህደረ ትውስታው ጋር ያለውን ግንኙነት ይፈትሹ
-    <ph name="LIST_ITEM" />የዕውቅና ማረጋገጫ ያለው ሞዴል እየተጠቀሙ መሆኑን ያረጋግጡ እና የመጫኛ ማስታወሻዎችን ይፈትሹ
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ለተጨማሪ እገዛ ለማግኘት፣ የሚከተለውን ይጎብኙ፦g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">ምናባዊ ማሽኑን መጫን አልተቻለም። እባክዎ እንደገና ይሞክሩ፣ ወይም የእርስዎን አስተዳዳሪ ያነጋግሩ። የስሕተት ኮድ፦ <ph name="ERROR_CODE" />።</translation>
 <translation id="7267875682732693301">የተለያዩ የጣት አሻራዎን ክፍሎች ለማከል ጣትዎን ማንሳትቱና ማስቀመጥዎን ይቀጥሉ</translation>
 <translation id="7268127947535186412">ይህ ቅንብር በመሣሪያው ባለቤት የሚተዳደር ነው።</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index c771a35e..d307016 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -2318,7 +2318,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{يشارك جهاز <ph name="DEVICE_NAME" /> حاليًا عنصرًا واحدًا (<ph name="ATTACHMENTS" />) معك.}zero{يشارك جهاز <ph name="DEVICE_NAME" /> حاليًا <ph name="ATTACHMENTS" /> عنصر معك.}two{يشارك جهاز <ph name="DEVICE_NAME" /> حاليًا عنصرَين (<ph name="ATTACHMENTS" />) معك.}few{يشارك جهاز <ph name="DEVICE_NAME" /> حاليًا <ph name="ATTACHMENTS" /> عناصر معك.}many{يشارك جهاز <ph name="DEVICE_NAME" /> حاليًا <ph name="ATTACHMENTS" /> عنصرًا معك.}other{يشارك جهاز <ph name="DEVICE_NAME" /> حاليًا <ph name="ATTACHMENTS" /> عنصر معك.}}</translation>
 <translation id="3364986687961713424">من مُشرفك: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">‏يرجى استخدام مفتاح واحد فقط: Ctrl أو Alt.</translation>
-<translation id="3367057768351048705">لا يمكن للمواقع الإلكترونية استخدام ملفات تعريف الارتباط إلا للاطّلاع على نشاط التصفُّح على مواقعهم الإلكترونية.</translation>
 <translation id="3368922792935385530">متصل</translation>
 <translation id="3369067987974711168">عرض المزيد من الإجراءات لهذا المنفذ</translation>
 <translation id="3369624026883419694">إثبات هوية المضيف...</translation>
@@ -2956,8 +2955,6 @@
 <translation id="3979748722126423326">تفعيل <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">جهازك مرئي للأجهزة القريبة باسم <ph name="DEVICE_NAME" /> لمدة <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">نوع الحفظ الذي تم إدخاله غير صالح.</translation>
-<translation id="3981828803725658123">‏<ph name="BEGIN_PARAGRAPH1" />حدث خطأ وتعذَّر تثبيت نظام التشغيل <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />للحصول على مزيد من المساعدة، يُرجى الانتقال إلى g.co/xxxxx<ph name="END_PARAGRAPH2" />.</translation>
 <translation id="3982375475032951137">يمكنك إعداد المتصفِّح باتِّباع بضع خطوات بسيطة.</translation>
 <translation id="3983400541576569538">قد يتم فقد البيانات من بعض التطبيقات</translation>
 <translation id="3983586614702900908">أجهزة من مورد غير معروف</translation>
@@ -3876,9 +3873,6 @@
 <translation id="4992984395680162305">تم ربط هذه الأجهزة من خلال المسح الضوئي لرمز الاستجابة السريعة.</translation>
 <translation id="4994474651455208930">السماح للمواقع الإلكترونية بأن تطلب أن تصبح معالجات تلقائية للبروتوكولات</translation>
 <translation id="4994754230098574403">الإعداد</translation>
-<translation id="4995131849631312693">‏<ph name="BEGIN_PARAGRAPH1" />قبل التسجيل، عليك محو وحدة النظام الأساسي الموثوق به (TPM) لكي يتسنى لنظام التشغيل <ph name="DEVICE_OS" /> الحصول على ملكية الجهاز.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />يمكنك أيضًا إيقاف الجهاز الذي يتضمَّن وحدة TPM بالكامل. وستظل بياناتك مخزَّنة بشكل آمن من خلال التشفير البرمجي لها، إلا أنّ بعض ميزات الأمان مثل الشهادات المستنِدة إلى الأجهزة سيتم إيقافها.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />يمكنك تغيير إعدادات وحدة TPM من خلال إعادة التشغيل والدخول إلى إعدادات BIOS/UEFI للنظام، علمًا بأنّ الخطوات تختلف باختلاف طراز الجهاز. ولمزيد من المعلومات، افتح مستندات نظام التشغيل <ph name="DEVICE_OS" /> على جهاز منفصل قبل إعادة التشغيل: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{‏لم يتم العثور على أجهزة افتراضية (VM) من نوع <ph name="VM_TYPE" />.}=1{‏تم العثور على جهاز افتراضي (VM) واحد من نوع <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />.}two{‏تم العثور على جهازَين افتراضيّين (VM) ({NUM_VMS}) من نوع <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />.}few{‏تم العثور على {NUM_VMS} أجهزة افتراضية (VM) من نوع <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />.}many{‏تم العثور على {NUM_VMS} جهازًا افتراضيًا (VM) من نوع <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />.}other{‏تم العثور على {NUM_VMS} جهاز افتراضي (VM) من نوع <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />.}}</translation>
 <translation id="4997086284911172121">لا يتوفر اتصال بالإنترنت.</translation>
 <translation id="4998430619171209993">مفعّل</translation>
@@ -3996,7 +3990,6 @@
 <translation id="5127620150973591153">رمز إتمام الاتصال الآمن: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">المزامنة متوقفة.</translation>
 <translation id="5127881134400491887">إدارة اتصالات الشبكة</translation>
-<translation id="5128774403617662387">‏احرص قبل البدء على الاحتفاظ بنسخة احتياطية من بياناتك. سيؤدي تثبيت نظام التشغيل <ph name="DEVICE_OS" /> إلى استبدال جميع البيانات على محرّك الأقراص الثابتة. تعرّف على مزيد من المعلومات على الرابط g.co/TBD.</translation>
 <translation id="512903556749061217">متصل</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">تعذَّر تنزيل الملف الشخصي. يُرجى إعادة المحاولة لاحقًا أو التواصل مع مشغّل شبكة الجوّال للحصول على المساعدة.</translation>
@@ -4512,7 +4505,6 @@
 <translation id="5659593005791499971">البريد الإلكتروني</translation>
 <translation id="5659833766619490117">تعذَّرت ترجمة هذه الصفحة</translation>
 <translation id="5662513737565158057">‏تغيير طريقة عمل تطبيقات نظام التشغيل Linux</translation>
-<translation id="5667490069342183561">‏لا تتحمّل Google مسؤولية فقدان أي بيانات، كما أنّ نظام التشغيل <ph name="DEVICE_OS" /> قد لا يعمل على طُرُز الأجهزة غير المعتمَدة. تعرّف على مزيد من المعلومات على الرابط g.co/TBD.</translation>
 <translation id="5667546120811588575">‏جارٍ إعداد Google Play...</translation>
 <translation id="5668351004957198136">إخفاق</translation>
 <translation id="56702779821643359">شارِك الملفات مع الأشخاص من حولك. <ph name="LINK_BEGIN" />مزيد من المعلومات<ph name="LINK_END" /></translation>
@@ -5324,9 +5316,6 @@
 <translation id="6528179044667508675">عدم الإزعاج</translation>
 <translation id="652948702951888897">‏سجل Chrome</translation>
 <translation id="6530186581263215931">فرض مشرفك هذه الإعدادات</translation>
-<translation id="653031671361866334">‏<ph name="BEGIN_PARAGRAPH1" />لتوفير أفضل تجربة، يجمع نظام التشغيل <ph name="DEVICE_OS" /> بيانات الأجهزة ويشاركها مع Google لتحديد التحديثات التي يجب إطلاقها. اختياريًا، يمكنك السماح لشركة Google باستخدام هذه البيانات لأغراض إضافية مثل تقديم الدعم وإدخال تحسينات على التجربة والخدمات التي يقدمها نظام التشغيل <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />يمكنك تسجيل الدخول على هذا الجهاز وزيارة القسم CLOUDREADY_HARDWARE_INFO في chrome://system للاطّلاع على البيانات المُرسَلة إلى Google لفلترة التحديثات، بالإضافة إلى أي حالات أخرى تختار فيها مشاركة البيانات مع Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />وللاطّلاع على المزيد من التفاصيل حول البيانات التي قد يشاركها <ph name="DEVICE_OS" /> مع Google وطريقة استخدامها، يُرجى الانتقال إلى الرابط g.co/xxxxx<ph name="END_PARAGRAPH3" />.</translation>
 <translation id="6531282281159901044">الاحتفاظ بالملف الضار</translation>
 <translation id="6532101170117367231">‏حفظ في Google Drive</translation>
 <translation id="6532106788206463496">حفظ التغييرات</translation>
@@ -6016,15 +6005,6 @@
 <translation id="7258192266780953209">تحويل حالات الأحرف</translation>
 <translation id="7258225044283673131">التطبيق لا يستجيب. اختَر "فرض الإغلاق" لإغلاق التطبيق.</translation>
 <translation id="7262004276116528033">يستضيف <ph name="SAML_DOMAIN" /> خدمة تسجيل الدخول هذه.</translation>
-<translation id="7264564921322372728">‏<ph name="BEGIN_PARAGRAPH1" />جرِّب الخطوات التالية لتحديد المشاكل وحلّها:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />التأكّد من أنّ جهازك يحتوي على وحدة تخزين داخلية صالحة للعمل، مثل محرّك الأقراص الثابتة أو محرّك الأقراص ذي الحالة الصلبة أو بطاقة الوسائط المتعددة المضمنة (eMMC)
-    <ph name="LIST_ITEM" />التأكّد من أنّ سعة جهازك الذي يحتوي على وحدة تخزين داخلية تزيد عن 16 غيغابايت
-    <ph name="LIST_ITEM" />التحقّق من الاتصال بوحدة التخزين الداخلية إذا أمكن الوصول إلى هيكلها الملموس
-    <ph name="LIST_ITEM" />التأكّد من أنك تستخدم طرازًا معتمَدًا ومراجعة ملاحظات التثبيت
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />للحصول على مزيد من المساعدة، يُرجى الانتقال إلى g.co/xxxxx<ph name="END_PARAGRAPH2" />.</translation>
 <translation id="7267044199012331848">تعذّر تثبيت الآلة الافتراضية. يُرجى إعادة المحاولة أو التواصل مع المشرف. رمز الخطأ: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">يُرجى تكرار اللمس بالإصبع لإضافة الأجزاء المختلفة من بصمته.</translation>
 <translation id="7268127947535186412">يتولى إدارة هذا الإعداد مالك الجهاز.</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index b36af030..0cb3888 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -2324,7 +2324,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" />এ আপোনাৰ সৈতে <ph name="ATTACHMENTS" /> শ্বেয়াৰ কৰি আছে।}one{<ph name="DEVICE_NAME" />এ আপোনাৰ সৈতে <ph name="ATTACHMENTS" /> শ্বেয়াৰ কৰি আছে।}other{<ph name="DEVICE_NAME" />এ আপোনাৰ সৈতে <ph name="ATTACHMENTS" /> শ্বেয়াৰ কৰি আছে।}}</translation>
 <translation id="3364986687961713424">আপোনাৰ প্ৰশাসকৰ পৰা: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">হয় Ctrl নহয় Alt ব্যৱহাৰ কৰক</translation>
-<translation id="3367057768351048705">ছাইটে কেৱল নিজৰ ছাইটত আপোনাৰ ব্ৰাউজিঙৰ কাৰ্যকলাপ চাবলৈ আপোনাৰ কুকিসমূহ ব্যৱহাৰ কৰিব পাৰে</translation>
 <translation id="3368922792935385530">সংযোগ কৰা হ’ল</translation>
 <translation id="3369067987974711168">এই প’ৰ্টটোৰ বাবে অধিক কাৰ্য দেখুৱাওক</translation>
 <translation id="3369624026883419694">হ'ষ্টৰ সমস্যা সমাধান কৰি থকা হৈছে...</translation>
@@ -2964,8 +2963,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> সক্ষম কৰক</translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" />ৰ বাবে ওচৰ-পাজৰৰ ডিভাইচে <ph name="DEVICE_NAME" /> হিচাপে দেখা পাব...</translation>
 <translation id="3981760180856053153">ছেভৰ প্ৰকাৰ মান্য নহয়।</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />কিবা ভুল হৈছে আৰু <ph name="DEVICE_OS" /> ইনষ্টল কৰিব পৰা নগ’ল।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />অধিক সহায় পাবলৈ ইয়ালৈ যাওক: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">কেইটামান সহজ পদক্ষেপৰ দ্বাৰা আপোনাৰ ব্ৰাউজাৰ ছেট আপ কৰক</translation>
 <translation id="3983400541576569538">কিছুমান এপৰ ডেটা হেৰুৱাব পাৰে</translation>
 <translation id="3983586614702900908">কোনো অজ্ঞাত বিক্ৰেতাৰ পৰা পোৱা ডিভাইচ</translation>
@@ -3885,9 +3882,6 @@
 <translation id="4992984395680162305">এটা কিউআৰ ক’ড স্কেন কৰি এই ডিভাইচসমূহ লিংক কৰা হৈছে।</translation>
 <translation id="4994474651455208930">প্ৰ’ট’ক’লৰ বাবে ছাইটসমূহক ডিফ’ল্ট হেণ্ডলাৰ হ’বলৈ অনুমতি বিচাৰিবলৈ দিয়ক</translation>
 <translation id="4994754230098574403">ছেট আপ কৰি থকা হৈছে</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />পঞ্জীয়ন কৰাৰ আগতে আপুনি TPM আঁতৰাব লাগিব যাতে <ph name="DEVICE_OS" />এ ডিভাইচটোৰ মালিকীস্বত্ব ল’ব পাৰে।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />আপুনি TPM ডিভাইচটো সম্পূৰ্ণৰূপে অফ কৰিবও পাৰে। আপোনাৰ ডেটা তথাপি ছফ্টৱেৰ এনক্ৰিপশ্বনৰ সৈতে সুৰক্ষিতভাৱে ষ্ট’ৰ কৰা হ’ব, কিন্তু হাৰ্ডৱেৰ-সমৰ্থিত প্ৰমাণপত্ৰৰ দৰে নিৰ্দিষ্ট কিছুমান সুৰক্ষা সম্পৰ্কীয় সুবিধা অক্ষম কৰা হ’ব।<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />আপুনি ৰিবুট কৰি ছিষ্টেমৰ BIOS/UEFI ছেটিঙলৈ গৈ আপোনাৰ TPM ছেটিং সলনি কৰিব পাৰে। ডিভাইচৰ মডেল অনুসৰি পদক্ষেপসমূহ ভিন্ন হয়। অধিক তথ্যৰ বাবে আপুনি ৰিবুট কৰাৰ আগতে অন্য এটা ডিভাইচত <ph name="DEVICE_OS" />ৰ বিষয়ে থকা নথি খোলক: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{কোনো <ph name="VM_TYPE" /> VM বিচাৰি পোৱা নগ’ল}=1{১ টা <ph name="VM_TYPE" /> VM পোৱা গৈছে: <ph name="VM_NAME_LIST" />}one{{NUM_VMS} <ph name="VM_TYPE" /> VM পোৱা গৈছে: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> VM পোৱা গৈছে: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">ইণ্টাৰনেট সংযোগ নাই।</translation>
 <translation id="4998430619171209993">অন আছে</translation>
@@ -4005,7 +3999,6 @@
 <translation id="5127620150973591153">সুৰক্ষিত সংযোগৰ আইডি: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">ছিংক অফ কৰা আছে</translation>
 <translation id="5127881134400491887">নেটৱৰ্ক সংযোগ পৰিচালনা কৰক</translation>
-<translation id="5128774403617662387">আৰম্ভ কৰাৰ আগতে আপোনাৰ ওচৰত নিজৰ ডেটাৰ এটা বেকআপ থকাটো নিশ্চিত কৰক। <ph name="DEVICE_OS" /> ইনষ্টল কৰিলে আপোনাৰ হাৰ্ড ড্ৰাইভটো অ’ভাৰৰাইট কৰা হ’ব। g.co/TBDত অধিক জানক।</translation>
 <translation id="512903556749061217">সংলগ্ন কৰা হ’ল</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">প্ৰ’ফাইল ডাউনল’ড কৰিব পৰা নগ’ল। অনুগ্ৰহ কৰি পাছত পুনৰ চেষ্টা কৰক অথবা সহায়ৰ বাবে বাহকৰ সৈতে যোগাযোগ কৰক।</translation>
@@ -4521,7 +4514,6 @@
 <translation id="5659593005791499971">ইমেইল</translation>
 <translation id="5659833766619490117">এই পৃষ্ঠাটো অনুবাদ কৰিব পৰা নগ’ল</translation>
 <translation id="5662513737565158057">Linux এপ্‌সমূহে কেনেদৰে কাম কৰিব সেয়া সলনি কৰক।</translation>
-<translation id="5667490069342183561">যিকোনো ধৰণৰ ডেটা হেৰুওৱাৰ বাবে Google দায়বদ্ধ নহয় আৰু প্ৰমাণিত নোহোৱা মডেলত <ph name="DEVICE_OS" />এ কাম নকৰিবও পাৰে। g.co/TBDত অধিক জানক।</translation>
 <translation id="5667546120811588575">Google Play ছেট আপ কৰি থকা হৈছে...</translation>
 <translation id="5668351004957198136">বিফল</translation>
 <translation id="56702779821643359">আপোনাৰ ওচৰে-পাজৰে থকা লোকৰ সৈতে ফাইল শ্বেয়াৰ কৰক। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation>
@@ -5333,9 +5325,6 @@
 <translation id="6528179044667508675">অসুবিধা নিদিব</translation>
 <translation id="652948702951888897">Chromeৰ ইতিহাস</translation>
 <translation id="6530186581263215931">এই ছেটিংসমূহ আপোনাৰ প্ৰশাসকে বলৱৎ কৰিছে</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />শ্ৰেষ্ঠ অভিজ্ঞতাটো প্ৰদান কৰিবলৈ, <ph name="DEVICE_OS" />এ ডিভাইচৰ বিষয়ে হাৰ্ডৱেৰৰ ডেটা সংগ্ৰহ কৰে আৰু কোনটো আপডে’ট দিব লাগে সেয়া নিৰ্ধাৰণ কৰিবলৈ সেই ডেটা Googleৰ সৈতে শ্বেয়াৰ কৰে। বিকল্প হিচাপে, আপুনি Googleক অতিৰিক্ত উদ্দেশ্যসমূহৰ বাবে এই ডেটা ব্যৱহাৰ কৰিবলৈ অনুমতি দিব পাৰে, যেনে <ph name="DEVICE_OS" />ৰ অভিজ্ঞতা আৰু সেৱাৰ সহায়তা আৰু উন্নীতকৰণৰ বাবে।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />আপুনি ফিল্টাৰ আপডে’ট কৰিবলৈ Googleলৈ পঠিওৱা আৰু আপুনি Googleৰ সৈতে ডেটা শ্বেয়াৰ কৰিবলৈ সিদ্ধান্ত লোৱা অন্য যিকোনো নিদৰ্শনৰ ডেটাখিনি চাবলৈ এই ডিভাইচটোত লগ ইন কৰি chrome://systemৰ CLOUDREADY_HARDWARE_INFO শাখাটোলৈ যাব পাৰে।<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" />এ Googleৰ সৈতে শ্বেয়াৰ কৰা ডেটা আৰু সেয়া ব্যৱহাৰ কৰা হৈছে সেই বিষয়ে অধিক সবিশেষৰ বাবে g.co/xxxxxলৈ যাওক<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">বিপজ্জনক ফাইলটো ৰাখক</translation>
 <translation id="6532101170117367231">Google Driveত ছেভ কৰক</translation>
 <translation id="6532106788206463496">সালসলনিবোৰ ছেভ কৰক</translation>
@@ -6024,15 +6013,6 @@
 <translation id="7258192266780953209">ৰূপান্তৰণ</translation>
 <translation id="7258225044283673131">এপ্লিকেশ্বনটোৱে সঁহাৰি দিয়া নাই। এপ্‌টো বন্ধ কৰিবলৈ "জোৰকৈ বন্ধ কৰক" সুবিধাটো বাছনি কৰক।</translation>
 <translation id="7262004276116528033">এই ছাইন ইন কৰা সেৱাটো <ph name="SAML_DOMAIN" />এ হ’ষ্ট কৰিছে</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />সমস্যা সমাধানৰ এই পদক্ষেপকেইটা লৈ চাওক:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />আপোনাৰ ডিভাইচত কাৰ্যক্ষম অভ্যন্তৰীণ ষ্ট’ৰেজ, যেনে- HDD, SSD অথবা eMMC থকাটো নিশ্চিত কৰক
-    <ph name="LIST_ITEM" />আপোনাৰ অভ্যন্তৰীণ ষ্ট’ৰেজ ডিভাইচটো ১৬ জিবিতকৈ বেছি হয়নে নহয় চাওক
-    <ph name="LIST_ITEM" />অভ্যন্তৰীণ ষ্ট’ৰেজৰ সংযোগটো পৰীক্ষা কৰক, যদিহে সেইটো হাতেৰে ঢুকি পাব পাৰি
-    <ph name="LIST_ITEM" />আপুনি এটা প্ৰমাণিত মডেল ব্যৱহাৰ কৰি থকাটো নিশ্চিত কৰক আৰু ইনষ্টল কৰা বিষয়ক টোকা চাওক
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />অধিক সহায় পাবলৈ ইয়ালৈ যাওক: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">ভাৰ্ছুৱেল মেচিনটো ইনষ্টল কৰিব পৰা নগ’ল। অনুগ্ৰহ কৰি পুনৰ চেষ্টা কৰক অথবা আপোনাৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক। আসোঁৱাহ ক’ড: <ph name="ERROR_CODE" />।</translation>
 <translation id="7267875682732693301">আপোনাৰ ফিংগাৰপ্ৰিণ্টৰ সকলো অংশ যোগ দিয়া আঙুলিটো কেইবাবাৰো উঠোৱা নমোৱা কৰক</translation>
 <translation id="7268127947535186412">ডিভাইচৰ গৰাকীয়ে এই ছেটিংটো পৰিচালনা কৰে।</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index dde2ebab..7917512 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -2310,7 +2310,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> <ph name="ATTACHMENTS" /> qoşmasını sizinlə paylaşır.}other{<ph name="DEVICE_NAME" /> <ph name="ATTACHMENTS" /> qoşmasını sizinlə paylaşır.}}</translation>
 <translation id="3364986687961713424">Admininizdən: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl və ya Alt istifadə edin</translation>
-<translation id="3367057768351048705">Saytlar yalnız öz saytlarında axtarış fəaliyyətinizi görmək üçün kukilərinizdən istifadə edə bilər</translation>
 <translation id="3368922792935385530">Qoşuludur</translation>
 <translation id="3369067987974711168">Bu port üçün daha çox əməliyyatı göstərin</translation>
 <translation id="3369624026883419694">Host həll olunur...</translation>
@@ -2951,8 +2950,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> aktiv edin</translation>
 <translation id="3981058120448670012">Yaxınlıqdakı cihazlara <ph name="REMAINING_TIME" /> ərzində <ph name="DEVICE_NAME" /> olaraq görünəcək...</translation>
 <translation id="3981760180856053153">Yanlış qazanc növü girdi.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Xəta oldu <ph name="DEVICE_OS" /> quraşdırılmadı.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Əlavə yardım üçün g.co/xxxxx ünvanına daxil olun<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Bir neçə mərhələ ilə brauzeri quraşdırın</translation>
 <translation id="3983400541576569538">Bəzi tətbiqlərin datası silinə bilər</translation>
 <translation id="3983586614702900908">naməlum vendordan cihazlar</translation>
@@ -3869,9 +3866,6 @@
 <translation id="4992984395680162305">Bu cihazlar QR kodu skan etməklə əlaqələndirilib.</translation>
 <translation id="4994474651455208930">Saytlara defolt protokol icraçıları olmağa icazə verin</translation>
 <translation id="4994754230098574403">Ayarlanır</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Qeydiyyatdan keçmədən əvvəl, <ph name="DEVICE_OS" /> cihazın sahibi ola bilməsi üçün TPM'i silməlisiniz.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />TPM cihazını tamamilə deaktiv edə bilərsiniz. Datanız hələ də proqram şifrələməsi ilə etibarlı şəkildə saxlanacaq, ancaq avadanlıq dəstəkli sertifikatlar kimi müəyyən güvənlik funksiyaları deaktiv ediləcək.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Sistemi yenidən başladaraq və BIOS/UEFI ayarlarına daxil olaraq TPM ayarlarınızı dəyişə bilərsiniz. Adımlar cihaz modelinə görə dəyişir. Digər məlumatlar üçün yenidən başlatmazdan əvvəl ayrı bir cihazda <ph name="DEVICE_OS" /> sənədlərini açın: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> VM'i tapılmadı}=1{1 <ph name="VM_TYPE" /> VM'i tapıldı: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> VM'i tapıldı: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">İnternet bağlantısı yoxdur.</translation>
 <translation id="4998430619171209993">Aktiv</translation>
@@ -3989,7 +3983,6 @@
 <translation id="5127620150973591153">Təhlükəsiz bağlantı ID'si: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sinx deaktivdir</translation>
 <translation id="5127881134400491887">Şəbəkə bağlantılarını idarə edin</translation>
-<translation id="5128774403617662387">Başlamadan əvvəl, datanızın yedəkləndiyinə əmin olun. <ph name="DEVICE_OS" /> quraşdırıldıqda sərt diskinizdəki bütün data əvəzlənəcəkdir. Ətraflı məlumat: g.co/TBD.</translation>
 <translation id="512903556749061217">qoşuldu</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profili endirmək mümkün olmadı. Sonra yenidən cəhd edin və ya yardım üçün operator ilə əlaqə saxlayın.</translation>
@@ -4505,7 +4498,6 @@
 <translation id="5659593005791499971">E-poçt</translation>
 <translation id="5659833766619490117">Bu səhifə tərcümə edilə bilməz</translation>
 <translation id="5662513737565158057">Linux tətbiqlərinin necə işləyəcəyini dəyişin.</translation>
-<translation id="5667490069342183561">Google heç bir data itkisinə görə məsuliyyət daşımır və təsdiqlənməmiş modellərdə <ph name="DEVICE_OS" /> işləməyə bilər. Ətraflı məlumat: g.co/TBD.</translation>
 <translation id="5667546120811588575">Google Play quraşdırılır...</translation>
 <translation id="5668351004957198136">Alınmadı</translation>
 <translation id="56702779821643359">Faylları ətrafınızdakı insanlarla paylaşın. <ph name="LINK_BEGIN" />Ətraflı məlumat<ph name="LINK_END" /></translation>
@@ -5315,9 +5307,6 @@
 <translation id="6528179044667508675">Narahat etməyin</translation>
 <translation id="652948702951888897">Chrome tarixçəsi</translation>
 <translation id="6530186581263215931">Bu ayarlar administratorunuz tərəfindən tətbiq olunur</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Ən yaxşı təcrübəni təmin etmək üçün <ph name="DEVICE_OS" /> cihazlar haqqında avadanlıq datasını toplayır və hansı güncəlləmələrin təmin edilməli olduğunu müəyyən etmək üçün onları Google ilə paylaşır. İstəyə görə, Google'a bu datadan <ph name="DEVICE_OS" /> təcrübəsi və xidmətinə dəstək və təkmilləşdirmələr kimi əlavə məqsədlər üçün istifadə etməyə icazə verə bilərsiniz.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Bu cihaza daxil olaraq və chrome://system ünvanında CLOUDREADY_HARDWARE_INFO bölməsinə keçərək güncəlləmə filtrasiyası üçün Google'a göndərilən dataya, həmçinin Google ilə data paylaşmağı seçdiyiniz hər hansı digər hallara baxa bilərsiniz.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> tərəfindən Google ilə paylaşıla biləcək data və ondan necə istifadə edildiyi haqqında ətraflı məlumat üçün g.co/xxxxx ünvanına daxil olun<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Təhlükəli faylları saxlayın</translation>
 <translation id="6532101170117367231">Google Diskdə yadda saxlayın</translation>
 <translation id="6532106788206463496">Dəyişiklikləri yadda saxlayın</translation>
@@ -6006,15 +5995,6 @@
 <translation id="7258192266780953209">Transformasiya</translation>
 <translation id="7258225044283673131">Bu tətbiq cavab vermir. Tətbiqi bağlamaq üçün "Məcbur bağlayın" seçin.</translation>
 <translation id="7262004276116528033">Bu giriş xidməti <ph name="SAML_DOMAIN" /> tərəfindən dəstəklənir</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Bu nasazlıqların aradan qaldırılması addımlarını sınayın:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Cihazınızda HDD, SSD və ya eMMC kimi işləyən daxili yaddaş olduğuna əmin olun
-    <ph name="LIST_ITEM" />Daxili yaddaş cihazınızın 16 GB-dan böyük olduğuna əmin olun
-    <ph name="LIST_ITEM" />Mümkünsə, daxili yaddaşla bağlantını yoxlayın
-    <ph name="LIST_ITEM" />Sertifikatlı model istifadə etdiyinizə əmin olun və quraşdırma qeydlərini yoxlayın
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Yardım üçün bu ünvana daxil olun: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Virtual cihazı quraşdırmaq mümkün olmadı. Yenidən cəhd edin və ya administratorunuz ilə əlaqə saxlayın. Xəta kodu: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Barmaq izinizin fərqli hissələrini əlavə etmək üçün barmağınızı qaldırmağa davam edin</translation>
 <translation id="7268127947535186412">Bu ayarı cihazın sahibi idarə edir.</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index 3f11e132..2cd234b7 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -2314,7 +2314,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />).}one{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />).}few{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />).}many{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />).}other{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />).}}</translation>
 <translation id="3364986687961713424">Паведамленне ад адміністратара: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Выкарыстоўвайце або Ctrl, або Alt</translation>
-<translation id="3367057768351048705">Сайты могуць выкарыстоўваць файлы cookie для адсочвання вашых дзеянняў у браўзеры толькі на сваіх старонках</translation>
 <translation id="3368922792935385530">Падключана</translation>
 <translation id="3369067987974711168">Паказаць іншыя дзеянні для гэтага порта</translation>
 <translation id="3369624026883419694">Вызначэнне хоста...</translation>
@@ -2955,8 +2954,6 @@
 <translation id="3979748722126423326">Уключыць прыладу <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Прылады паблізу будуць бачыць назву "<ph name="DEVICE_NAME" />" на працягу <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Уведзены няправільны тып захавання.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Нешта пайшло не так. Не ўдалося ўсталяваць <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Дадатковую інфармацыю шукайце на сайце g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Наладзьце браўзер, выканаўшы некалькі простых крокаў</translation>
 <translation id="3983400541576569538">Даныя некаторых праграм могуць быць страчаны</translation>
 <translation id="3983586614702900908">прылады ад невядомага пастаўшчыка</translation>
@@ -3873,9 +3870,6 @@
 <translation id="4992984395680162305">Гэтыя прылады былі спалучаны шляхам сканіравання QR-кода</translation>
 <translation id="4994474651455208930">Дазволіць сайтам запытваць права быць стандартнымі апрацоўшчыкамі пратаколаў</translation>
 <translation id="4994754230098574403">Ідзе наладжванне</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Перад рэгістрацыяй неабходна ачысціць TPM, каб аперацыйная сістэма <ph name="DEVICE_OS" /> змагла атрымаць права ўласнасці на прыладу.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Таксама можна зусім выключыць TPM на прыладзе. Вашы даныя і далей будуць захоўвацца ў бяспецы дзякуючы выкарыстанню шыфравання праграмнага забеспячэння, але пэўныя функцыі бяспекі (напрыклад, забяспечаныя апаратнымі сродкамі сертыфікаты) будуць адключаны.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Змяніць налады TPM можна, выканаўшы перазагрузку і ўвайшоўшы ў налады BIOS/UEFI. Этапы могуць адрознівацца ў залежнасці ад мадэлі прылады. Каб атрымаць дадатковую інфармацыю, перад перазагрузкай адкрыйце дакументацыю <ph name="DEVICE_OS" /> на асобнай прыладзе: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Віртуальныя машыны <ph name="VM_TYPE" /> не знойдзены}=1{Знойдзена 1 віртуальная машына <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}one{Знойдзена {NUM_VMS} віртуальная машына <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}few{Знойдзена {NUM_VMS} віртуальныя машыны <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}many{Знойдзена {NUM_VMS} віртуальных машын <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Знойдзена {NUM_VMS} віртуальнай машыны <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Няма падключэння да інтэрнэту.</translation>
 <translation id="4998430619171209993">Уключана</translation>
@@ -3993,7 +3987,6 @@
 <translation id="5127620150973591153">Абаронены ідэнтыфікатар падключэння: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Сінхранізацыя выключана</translation>
 <translation id="5127881134400491887">Кіраваць падключэннямі да сеткі</translation>
-<translation id="5128774403617662387">Перад запускам упэўніцеся, што вашы даныя маюць рэзервовую копію. Пры ўсталяванні <ph name="DEVICE_OS" /> даныя на цвёрдым дыску будуць перазапісаны. Даведайцеся больш на старонцы g.co/TBD.</translation>
 <translation id="512903556749061217">далучана</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Не ўдалося спампаваць профіль. Паўтарыце спробу пазней або звярніцеся па дапамогу да аператара.</translation>
@@ -4509,7 +4502,6 @@
 <translation id="5659593005791499971">Адрас электроннай пошты</translation>
 <translation id="5659833766619490117">Не ўдалося перакласці старонку</translation>
 <translation id="5662513737565158057">Змяненне параметраў для праграм Linux.</translation>
-<translation id="5667490069342183561">Кампанія Google не нясе адказнасці за магчымую страту даных і не гарантуе, што <ph name="DEVICE_OS" /> будзе працаваць на несертыфікаваных мадэлях прылад. Даведайцеся больш на старонцы g.co/TBD.</translation>
 <translation id="5667546120811588575">Наладжваецца Google Play...</translation>
 <translation id="5668351004957198136">Збой</translation>
 <translation id="56702779821643359">Абагульвайце файлы з карыстальнікамі паблізу. <ph name="LINK_BEGIN" />Даведацца больш<ph name="LINK_END" /></translation>
@@ -5321,9 +5313,6 @@
 <translation id="6528179044667508675">Не турбаваць</translation>
 <translation id="652948702951888897">Гісторыя праглядаў Chrome</translation>
 <translation id="6530186581263215931">Гэтыя налады прымусова ўключаны адміністратарам</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Для зручнасці карыстальнікаў <ph name="DEVICE_OS" /> збірае даныя аб апаратным забеспячэнні прылад і абагульвае іх з Google, што дазваляе выяўляць, якія абнаўленні неабходна ўсталяваць. Вы таксама можаце дазволіць Google выкарыстоўваць гэтыя даныя і ў іншых мэтах, напрыклад, каб удасканальваць работу <ph name="DEVICE_OS" /> і аказваць карыстальнікам падтрымку.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Каб паглядзець, якія звесткі адпраўляюцца ў Google для фільтрацыі абнаўленняў і для якіх яшчэ мэт можна перадаваць нам даныя, увайдзіце ва ўліковы запіс на гэтай прыладзе і азнаёмцеся з раздзелам CLOUDREADY_HARDWARE_INFO на старонцы chrome://system.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Падрабязную інфармацыю пра даныя, якія <ph name="DEVICE_OS" /> можа абагульваць з Google, і іх выкарыстанне чытайце на старонцы g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Захаваць небяспечны файл</translation>
 <translation id="6532101170117367231">Захаваць на Google Дыск</translation>
 <translation id="6532106788206463496">Захаваць змены</translation>
@@ -6012,15 +6001,6 @@
 <translation id="7258192266780953209">Пераўтварэнні</translation>
 <translation id="7258225044283673131">Праграма не адказвае. Каб закрыць яе, націсніце "Прымусова закрыць".</translation>
 <translation id="7262004276116528033">Гэты сэрвіс уваходу размешчаны на дамене <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Паспрабуйце знайсці і выправіць непаладку наступным чынам:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />упэўніцеся, што прылада мае ўнутранае сховішча (напрыклад, HDD, SSD, або eMMC) і яно працуе;
-    <ph name="LIST_ITEM" />упэўніцеся, што аб'ём унутранага сховішча прылады не меншы за 16 ГБ;
-    <ph name="LIST_ITEM" />праверце падключэнне да ўнутранага сховішча, калі гэта магчыма зрабіць фізічна;
-    <ph name="LIST_ITEM" />упэўніцеся, што выкарыстоўваеце сертыфікаваную мадэль прылады, і азнаёмцеся з нататкамі па ўсталяванні.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Дадатковую інфармацыю шукайце на сайце: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Не ўдалося ўсталяваць віртуальную машыну. Паўтарыце спробу або звярніцеся да адміністратара. Код памылкі: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Дакраніцеся некалькі разоў, каб быў зняты ўвесь адбітак пальца</translation>
 <translation id="7268127947535186412">Гэта налада кіруецца ўладальнікам прылады.</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index 4d54bdc..04d395e 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -2323,7 +2323,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> споделя с вас <ph name="ATTACHMENTS" />.}other{<ph name="DEVICE_NAME" /> споделя с вас <ph name="ATTACHMENTS" />.}}</translation>
 <translation id="3364986687961713424">От администратора ви: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Използвайте или Ctrl, или Alt</translation>
-<translation id="3367057768351048705">Сайтовете могат да използват „бисквитките“ ви, за да следят активността ви при сърфиране в собствените си уеб страници</translation>
 <translation id="3368922792935385530">Има връзка</translation>
 <translation id="3369067987974711168">Показване на още действия за този порт</translation>
 <translation id="3369624026883419694">Получава се разрешение от хоста...</translation>
@@ -2965,8 +2964,6 @@
 <translation id="3979748722126423326">Активиране на <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Видимо като <ph name="DEVICE_NAME" /> за устройства в близост за <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Въведен е невалиден тип запазване.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Нещо се обърка и <ph name="DEVICE_OS" /> не се инсталира.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />За още помощ посетете g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Настройте браузъра си в няколко лесни стъпки</translation>
 <translation id="3983400541576569538">Данните от някои приложения може да бъдат заличени</translation>
 <translation id="3983586614702900908">устройства от неизвестен доставчик</translation>
@@ -3886,9 +3883,6 @@
 <translation id="4992984395680162305">Тези устройства бяха свързани чрез сканиране на QR код.</translation>
 <translation id="4994474651455208930">Разрешаване на питания от сайтове дали да са манипулаторите по подразбиране за протоколите</translation>
 <translation id="4994754230098574403">Настройва се</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Преди да се регистрирате, трябва да изчистите TPM, така че <ph name="DEVICE_OS" /> да може да поеме собствеността върху устройството.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Можете също изцяло да изключите устройството за TPM. Данните ви пак ще се съхраняват безопасно с помощта на софтуерно шифроване, но някои функции за сигурност, като сертификати с хардуерна поддръжка, ще бъдат деактивирани.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Можете да промените настройките за TPM, като рестартирате и влезете в системните настройки на BIOS/UEFI. Стъпките варират според модела на устройството. За повече информация отворете документацията на <ph name="DEVICE_OS" /> на друго устройство, преди да рестартирате: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Няма намерени виртуални машини от тип <ph name="VM_TYPE" />}=1{Намерена е 1 виртуална машина от тип <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Намерени са {NUM_VMS} виртуални машини от тип <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Няма връзка с интернет.</translation>
 <translation id="4998430619171209993">Включено</translation>
@@ -4006,7 +4000,6 @@
 <translation id="5127620150973591153">Идентификатор на защитената връзка: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Синхронизирането е изключено</translation>
 <translation id="5127881134400491887">Управление на мрежовите връзки</translation>
-<translation id="5128774403617662387">Преди да започнете, уверете се, че имате резервно копие на данните си. При инсталирането на <ph name="DEVICE_OS" /> твърдият ви диск ще бъде презаписан. Научете повече на адрес g.co/TBD.</translation>
 <translation id="512903556749061217">свързано</translation>
 <translation id="5130080518784460891">Eтен</translation>
 <translation id="5130675701626084557">Профилът не бе изтеглен. Моля, опитайте отново по-късно или се обърнете към оператора си за помощ.</translation>
@@ -4523,7 +4516,6 @@
 <translation id="5659593005791499971">Имейл</translation>
 <translation id="5659833766619490117">Тази страница не можа да бъде преведена</translation>
 <translation id="5662513737565158057">Променете начина на работа на приложенията за Linux.</translation>
-<translation id="5667490069342183561">Google не носи отговорност за евентуална загуба на данни. Възможно е <ph name="DEVICE_OS" /> да не работи на несертифицирани модели. Научете повече на адрес g.co/TBD.</translation>
 <translation id="5667546120811588575">Google Play се настройва...</translation>
 <translation id="5668351004957198136">Не отговаря на условията</translation>
 <translation id="56702779821643359">Споделяйте файлове с хора в района. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" /></translation>
@@ -5335,9 +5327,6 @@
 <translation id="6528179044667508675">Не безпокойте</translation>
 <translation id="652948702951888897">История в Chrome</translation>
 <translation id="6530186581263215931">Тези настройки са наложени от администратора ви</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />За да работи по най-добрия начин, <ph name="DEVICE_OS" /> събира данни за хардуера на устройствата и ги споделя с Google с цел определяне на подходящите актуализации. По избор можете да разрешите на Google да използва тези данни за други цели, като например поддръжка и подобрения на функциите и услугите на <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Имате възможност да влезете в профила си на това устройство и да посетите секцията CLOUDREADY_HARDWARE_INFO в chrome://system, за да видите данните, които се изпращат до Google за филтриране на актуализациите, както и другите данни, които сте избрали да споделите с Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />За повече подробности относно данните, които <ph name="DEVICE_OS" /> може да споделя с Google, и начините, по които се използват, посетете g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Запазване на опасния файл</translation>
 <translation id="6532101170117367231">Запазване в Google Диск</translation>
 <translation id="6532106788206463496">Запазване на промените</translation>
@@ -6026,15 +6015,6 @@
 <translation id="7258192266780953209">Трансформации</translation>
 <translation id="7258225044283673131">Приложението не реагира. Изберете „Принудително затваряне“, за да го затворите.</translation>
 <translation id="7262004276116528033">Тази услуга за вход се хоства от <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Изпробвайте следните стъпки за отстраняване на неизправности:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Проверете дали устройството ви съдържа работещо вътрешно хранилище, като твърд диск, SSD или eMMC.
-    <ph name="LIST_ITEM" />Проверете дали вътрешното ви устройство за съхранение е по-голямо от 16 ГБ.
-    <ph name="LIST_ITEM" />Проверете връзката към вътрешното хранилище, ако е достъпна физически.
-    <ph name="LIST_ITEM" />Проверете дали използвате сертифициран модел и вижте бележките за инсталиране.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />За повече помощ посетете g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Виртуалната машина не бе инсталирана. Моля, опитайте отново или се обърнете към администратора си. Код на грешката: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Продължавайте да вдигате пръста си, за да добавите различните части от отпечатъка си</translation>
 <translation id="7268127947535186412">Тази настройка се управлява от собственика на устройството.</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 555374f..bed6079 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> আপনার সাথে <ph name="ATTACHMENTS" /> শেয়ার করতে চাইছে।}one{<ph name="DEVICE_NAME" /> আপনার সাথে <ph name="ATTACHMENTS" /> শেয়ার করতে চাইছে।}other{<ph name="DEVICE_NAME" /> আপনার সাথে <ph name="ATTACHMENTS" /> শেয়ার করতে চাইছে।}}</translation>
 <translation id="3364986687961713424">আপনার অ্যাডমিনিস্ট্রেটরের মেসেজ: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl অথবা Alt ব্যবহার করুন</translation>
-<translation id="3367057768351048705">সাইট শুধুমাত্র আপনার কুকি ব্যবহার করতে পারে, যাতে তার সাইটে আপনার ব্রাউজিং অ্যাক্টিভিটি দেখা যায়</translation>
 <translation id="3368922792935385530">সংযুক্ত</translation>
 <translation id="3369067987974711168">এই পোর্টের জন্য আরও অ্যাকশন দেখুন</translation>
 <translation id="3369624026883419694">হোস্ট স্থির করা হচ্ছে...</translation>
@@ -2967,8 +2966,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> সক্ষম করুন</translation>
 <translation id="3981058120448670012">কাছাকাছি থাকা ডিভাইসগুলিতে, <ph name="REMAINING_TIME" />-এর জন্য <ph name="DEVICE_NAME" /> হিসেবে দেখা যাবে...</translation>
 <translation id="3981760180856053153">ভুল সেভ করার ধরণ লেখা হয়েছে৷</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />কিছু সমস্যা হয়েছে এবং <ph name="DEVICE_OS" /> ইনস্টল করা যায়নি।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />আরও সহায়তার জন্য, দেখুন: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">কয়েকটি সহজ ধাপে আপনার ব্রাউজার সেট-আপ করুন</translation>
 <translation id="3983400541576569538">কিছু অ্যাপের ডেটা মুছে যেতে পারে</translation>
 <translation id="3983586614702900908">একটি অজানা বিক্রেতা থেকে ডিভাইসগুলি</translation>
@@ -3888,9 +3885,6 @@
 <translation id="4992984395680162305">এই ডিভাইসগুলি একটি QR কোড স্ক্যান করে লিঙ্ক করা হয়েছিল।</translation>
 <translation id="4994474651455208930">সাইটগুলিকে প্রোটোকলের জন্য ডিফল্ট হ্যান্ডলার হওয়ার জন্য জিজ্ঞাসা করার অনুমতি দেয়</translation>
 <translation id="4994754230098574403">সেট-আপ করা হচ্ছে</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />এনরোল করার আগে TPM মুছতে হবে যাতে <ph name="DEVICE_OS" /> ডিভাইসের মালিকানা পেতে পারে।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />এছাড়াও আপনি সরাসরি TPM ডিভাইস সম্পূর্ণভাবে বন্ধ করতে পারেন। আপনার ডেটা সুরক্ষিতভাবে সফ্টওয়্যার এনক্রিপশন সহ সেভ করা হবে তবে হার্ডওয়্যার-ব্যাকড সার্টিফিকেটের মতো নির্দিষ্ট নিরাপত্তা ফিচার বন্ধ হয়ে যাবে।<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />সিস্টেম BIOS/UEFI সেটিংস এন্টার করে এবং রিবুট করার মাধ্যমে আপনার TPM সেটিং পরিবর্তন করতে পারবেন। ডিভাইস মডেলের উপর ভিত্তি করে ধাপ আলাদা হতে পারে। রিবুট করার আগে আরও তথ্যের জন্য, আলাদা ডিভাইসে <ph name="DEVICE_OS" /> ডকুমেন্টেশন খুলুন: [URL লিঙ্ক]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{কোনও <ph name="VM_TYPE" /> VM খুঁজে পাওয়া যায়নি}=1{1 <ph name="VM_TYPE" /> VM খুঁজে পাওয়া গেছে: <ph name="VM_NAME_LIST" />}one{{NUM_VMS} <ph name="VM_TYPE" /> VM খুঁজে পাওয়া গেছে: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> VM খুঁজে পাওয়া গেছে: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">কোনও ইন্টারনেট সংযোগ নেই।</translation>
 <translation id="4998430619171209993">চালু করা আছে</translation>
@@ -4008,7 +4002,6 @@
 <translation id="5127620150973591153">নিরাপদ কানেকশন আইডি: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">সিঙ্ক বন্ধ রয়েছে</translation>
 <translation id="5127881134400491887">নেটওয়ার্ক সংযোগগুলি পরিচালনা করুন</translation>
-<translation id="5128774403617662387">চালু করার আগে, আপনার ডেটার ব্যাক-আপ নেওয়া আছে কিনা তা নিশ্চিত করুন। <ph name="DEVICE_OS" /> ইনস্টল করলে আপনার হার্ড ড্রাইভে থাকা সব ডেটা মুছে যাবে। g.co/TBD থেকে আরও জানুন।</translation>
 <translation id="512903556749061217">সংযুক্ত</translation>
 <translation id="5130080518784460891">ইটেন</translation>
 <translation id="5130675701626084557">প্রোফাইল ডাউনলোড করা যায়নি। আবার চেষ্টা করুন অথবা সহায়তার জন্য পরিষেবা প্রদানকারীর সাথে যোগাযোগ করুন।</translation>
@@ -4525,7 +4518,6 @@
 <translation id="5659593005791499971">ইমেল আইডি</translation>
 <translation id="5659833766619490117">এই পৃষ্ঠাটির অনুবাদ করা যায়নি</translation>
 <translation id="5662513737565158057">কীভাবে Linux অ্যাপ কাজ করবে তা পরিবর্তন করুন।</translation>
-<translation id="5667490069342183561">কোনও ডেটা হারিয়ে যাওয়ার ক্ষেত্রে Google দায়বদ্ধ নয় এবং <ph name="DEVICE_OS" /> সার্টিফায়েড নয় এমন মডেলে কাজ নাও করতে পারে। g.co/TBD থেকে আরও জানুন।</translation>
 <translation id="5667546120811588575">Google Play সেট-আপ করা হচ্ছে...</translation>
 <translation id="5668351004957198136">ব্যর্থ হয়েছে</translation>
 <translation id="56702779821643359">আপনার আশেপাশের লোকজনের সাথে ফাইল শেয়ার করুন। <ph name="LINK_BEGIN" />আরও জানুন<ph name="LINK_END" /></translation>
@@ -5337,9 +5329,6 @@
 <translation id="6528179044667508675">বিরক্ত করবে না</translation>
 <translation id="652948702951888897">Chrome ইতিহাস</translation>
 <translation id="6530186581263215931">আপনার অ্যাডমিনিস্ট্রেটর এই সেটিংস প্রয়োগ করেন</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />আপনাকে সেরা অভিজ্ঞতা প্রদান করার জন্য, কোন কোন আপডেট ডেলিভার করা হবে তা নির্ধারণ করতে <ph name="DEVICE_OS" /> ডিভাইসের হার্ডওয়্যার সংক্রান্ত ডেটা সংগ্রহ করে এবং তা Google-এর সাথে শেয়ার করে। বিকল্প হিসেবে, <ph name="DEVICE_OS" /> ব্যবহারের অভিজ্ঞতা ও এর পরিষেবা সম্পর্কিত সহায়তা আরও উন্নত করার মতো অতিরিক্ত উদ্দেশ্যের জন্য Google-কে এই ডেটা ব্যবহার করার অনুমতি দিতে পারেন।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />আপডেট ফিল্টারিংয়ের জন্য Google-এ পাঠানো ডেটা দেখতে এবং Google-এর সাথে ডেটা শেয়ার করার জন্য আপনার বেছে নেওয়া অন্য কোনও উদাহরণ দেখতে, এই ডিভাইসে লগ-ইন করে Chrome://সিস্টেমের CLOUDREADY_HARDWARE_INFO বিভাগ দেখতে পারেন।<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" />, Google-এর সাথে কোন ডেটা শেয়ার করতে পারে এবং কীভাবে তা ব্যবহার করা হয় সেই বিষয়ে আরও বিবরণের জন্য g.co/xxxxx দেখুন<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">বিপজ্জনক ফাইল রাখুন</translation>
 <translation id="6532101170117367231">Google ড্রাইভে সেভ করুন</translation>
 <translation id="6532106788206463496">পরিবর্তন সেভ করুন</translation>
@@ -6028,15 +6017,6 @@
 <translation id="7258192266780953209">পরিবর্তন</translation>
 <translation id="7258225044283673131">অ্যাপ্লিকেশনটি কাজ করছে না। অ্যাপটি বন্ধ করতে "জোর করে বন্ধ করুন" বিকল্পটি বেছে নিন।</translation>
 <translation id="7262004276116528033">এই সাইন-ইন করা পরিষেবাটি <ph name="SAML_DOMAIN" /> দ্বারা হোস্ট করা হয়</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />এইসব সমস্যা সমাধানের ধাপ প্রয়োগ করে দেখুন:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />আপনার ডিভাইসে HDD, SSD, বা eMMC-এর মতো কাজ করছে এমন ইন্টার্নাল স্টোরেজ আছে তা নিশ্চিত করুন
-    <ph name="LIST_ITEM" />আপনার ইন্টার্নাল স্টোরেজ ডিভাইসে ১৬ জিবির বেশি জায়গা আছে কিনা চেক করে দেখে নিন
-    <ph name="LIST_ITEM" />সরাসরি অ্যাক্সেস করা গেলে, ইন্টার্নাল স্টোরেজের সাথে কানেকশন চেক করে দেখে নিন
-    <ph name="LIST_ITEM" />আপনি একটি সার্টিফায়েড মডেল ব্যবহার করছেন তা নিশ্চিত করুন এবং ইনস্টল নোট চেক করে দেখে নিন
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />আরও সহায়তার জন্য, দেখুন: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">ভার্চুয়াল মেশিন ইনস্টল করা যায়নি। আবার চেষ্টা করুন অথবা আপনার অ্যাডমিনের সাথে যোগাযোগ করুন। সমস্যার কোড: <ph name="ERROR_CODE" />।</translation>
 <translation id="7267875682732693301">আপনার আঙুলের ছাপের বিভিন্ন অংশ যোগ করার জন্য বারবার আঙুল তুলে আবার টাচ করতে থাকুন</translation>
 <translation id="7268127947535186412">ডিভাইসের মালিক এই সেটিংটি ম্যানেজ করেন।</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index ce73acb..9c61ad6 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -2325,7 +2325,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> dijeli <ph name="ATTACHMENTS" /> s vama.}one{<ph name="DEVICE_NAME" /> dijeli <ph name="ATTACHMENTS" /> s vama.}few{<ph name="DEVICE_NAME" /> dijeli <ph name="ATTACHMENTS" />s vama.}other{<ph name="DEVICE_NAME" /> dijeli <ph name="ATTACHMENTS" /> s vama.}}</translation>
 <translation id="3364986687961713424">Od vašeg administratora: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Koristite Ctrl ili Alt</translation>
-<translation id="3367057768351048705">Web lokacije mogu koristiti isključivo vaše kolačiće da vide vašu aktivnost pregledanja na svojoj web lokaciji</translation>
 <translation id="3368922792935385530">Povezano</translation>
 <translation id="3369067987974711168">Prikaz više radnji za ovaj priključak</translation>
 <translation id="3369624026883419694">Rješavanje problema s host računarom...</translation>
@@ -2966,8 +2965,6 @@
 <translation id="3979748722126423326">Omogući <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Vidljivo uređajima u blizini kao <ph name="DEVICE_NAME" /> u trajanju od <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Unesena je nevažeća vrsta arhiviranja.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Nešto nije uredu i instaliranje sistema <ph name="DEVICE_OS" /> nije uspjelo.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Da dobijete dodatnu pomoć, posjetite g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Postavite preglednik u nekoliko jednostavnih koraka</translation>
 <translation id="3983400541576569538">Podaci iz nekih aplikacija su možda izgubljeni</translation>
 <translation id="3983586614702900908">uređaji nepoznatog dobavljača</translation>
@@ -3887,9 +3884,6 @@
 <translation id="4992984395680162305">Ovi uređaji su povezani skeniranjem QR koda.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Prije prijave morate obrisati TPM da <ph name="DEVICE_OS" /> može preuzeti vlasništvo nad uređajem.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Možete i u potpunosti isključiti TPM uređaj. Vaši podaci će i dalje biti sigurno pohranjeni pomoću šifriranja softvera, ali određene sigurnosne funkcije kao što su certifikati s hardverskom podlogom će se onemogućiti.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Možete izmijeniti postavke TPM-a ponovnim pokretanjem i ulaskom u sistemske BIOS/UEFI postavke. Koraci se razlikuju ovisno o modelu uređaja. Da vidite više informacija, otvorite dokumentaciju za <ph name="DEVICE_OS" /> na drugom uređaju prije ponovnog pokretanja: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nijedan VM <ph name="VM_TYPE" /> nije pronađen}=1{Pronađen je 1 VM <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}one{Pronađen je {NUM_VMS} VM <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}few{Pronađena su {NUM_VMS} VM-a <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Pronađeno je {NUM_VMS} VM-ova <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Nema internetske veze.</translation>
 <translation id="4998430619171209993">Uključeno</translation>
@@ -4007,7 +4001,6 @@
 <translation id="5127620150973591153">ID sigurne veze: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sinkronizacija je isključena</translation>
 <translation id="5127881134400491887">Upravljanje mrežnim vezama</translation>
-<translation id="5128774403617662387">Prije nego počnete provjerite jeste li napravili sigurnosnu kopiju podataka. Ako instalirate <ph name="DEVICE_OS" />, zamijenit će se svi podaci na tvrdom disku. Saznajte više na g.co/TBD.</translation>
 <translation id="512903556749061217">povezano</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Preuzimanje profila nije uspjelo. Pokušajte ponovo kasnije ili za pomoć kontaktirajte mobilnog operatera.</translation>
@@ -4523,7 +4516,6 @@
 <translation id="5659593005791499971">E-pošta</translation>
 <translation id="5659833766619490117">Ova stranica nije prevedena</translation>
 <translation id="5662513737565158057">Promjena načina na koji će Linux aplikacije funkcionirati.</translation>
-<translation id="5667490069342183561">Google nije odgovoran za bilo kakve gubitke podataka i ne garantira da će <ph name="DEVICE_OS" /> funkcionirati na modelima koji nisu certificirani. Saznajte više na g.co/TBD.</translation>
 <translation id="5667546120811588575">Postavljanje Google Playa...</translation>
 <translation id="5668351004957198136">Neuspješno</translation>
 <translation id="56702779821643359">Dijelite fajlove s osobama u okruženju. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
@@ -5335,9 +5327,6 @@
 <translation id="6528179044667508675">Ne ometaj</translation>
 <translation id="652948702951888897">Historija Chromea</translation>
 <translation id="6530186581263215931">Ove postavke je primijenio vaš administrator</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Da vam pružimo najbolje iskustvo, <ph name="DEVICE_OS" /> prikuplja hardverske podatke o uređajima i dijeli ih s Googleom da se utvrdi koja ažuriranja treba isporučiti. Možete dozvoliti Googleu da koristi ove podatke u dodatne svrhe poput podrške i poboljšanja iskustva i usluge za <ph name="DEVICE_OS" /> (nije obavezno).<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Možete se prijaviti na ovaj uređaj i posjetiti odjeljak CLOUDREADY_HARDWARE_INFO na chrome://system da vidite podatke koji se šalju Googleu radi filtriranja ažuriranja, kao i bilo koje druge primjere gdje odaberete da dijelite podatke s Googleom.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Više detalja o podacima koje <ph name="DEVICE_OS" /> može dijeliti s Googleom i načinu njihovog korištenja potražite na g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Zadrži opasan fajl</translation>
 <translation id="6532101170117367231">Sačuvaj na Google Disk</translation>
 <translation id="6532106788206463496">Sačuvaj izmjene</translation>
@@ -6026,15 +6015,6 @@
 <translation id="7258192266780953209">Transformacije</translation>
 <translation id="7258225044283673131">Aplikacija ne reagira. Odaberite "Prisilno zatvori" da zatvorite aplikaciju.</translation>
 <translation id="7262004276116528033">Ovu uslugu prijavljivanja hostira <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Pokušajte s ovim koracima za rješavanje problema:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Provjerite sadržava li vaš uređaj funkcionalnu unutrašnju pohranu kao što je HDD, SSD ili eMMC.
-    <ph name="LIST_ITEM" />Provjerite je li prostor unutrašnje pohrane uređaja veći od 16GB.
-    <ph name="LIST_ITEM" />Provjerite vezu s unutrašnjom pohranom, ako je moguće fizički pristupiti.
-    <ph name="LIST_ITEM" />Vodite računa da koristite certificirani model i provjerite napomene za instaliranje.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Da dobijete dodatnu pomoć, posjetite g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Instaliranje virtuelnog računara nije uspjelo. Pokušajte ponovo ili kontaktirajte administratora. Kȏd greške: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Nastavite podizati prst da dodate različite dijelove otiska prsta</translation>
 <translation id="7268127947535186412">Ovom postavkom upravlja vlasnik uređaja.</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 56ed3990..c81d2e2a 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -2311,7 +2311,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> està compartint <ph name="ATTACHMENTS" /> amb tu.}other{<ph name="DEVICE_NAME" /> està compartint <ph name="ATTACHMENTS" /> amb tu.}}</translation>
 <translation id="3364986687961713424">De part de l'administrador: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Utilitza Ctrl o Alt</translation>
-<translation id="3367057768351048705">Els llocs web només poden fer servir les teves galetes per veure la teva activitat de navegació en aquests mateixos llocs web</translation>
 <translation id="3368922792935385530">Connectat</translation>
 <translation id="3369067987974711168">Mostra més accions per a aquest port</translation>
 <translation id="3369624026883419694">Resolent l'amfitrió...</translation>
@@ -2951,8 +2950,6 @@
 <translation id="3979748722126423326">Activa <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Visible com a <ph name="DEVICE_NAME" /> per als dispositius a prop durant <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Heu introduït un tipus de desament no vàlid.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />S'ha produït un error i no s'ha pogut instal·lar <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Per obtenir més ajuda, ves a g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Configura el navegador en uns quants passos molt senzills</translation>
 <translation id="3983400541576569538">És possible que es perdin les dades d'algunes aplicacions</translation>
 <translation id="3983586614702900908">dispositius d'un proveïdor desconegut</translation>
@@ -3871,9 +3868,6 @@
 <translation id="4992984395680162305">Aquests dispositius s'han vinculat escanejant un codi QR</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Abans d'inscriure't, has d'esborrar el TPM perquè <ph name="DEVICE_OS" /> pugui assumir la propietat del dispositiu.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />També pots desactivar el dispositiu TPM completament. Les teves dades s'emmagatzemaran de manera segura amb encriptació de programari, però algunes funcions de seguretat, com ara els certificats emmagatzemats en maquinari, es desactivaran.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Per canviar la configuració del TPM, reinicia el dispositiu i accedeix a la configuració de la BIOS/UEFI del sistema. Els passos varien en funció del model de dispositiu. Per obtenir més informació, obre la documentació de <ph name="DEVICE_OS" /> en un altre dispositiu abans de fer el reinici: [enllaç URL].<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{No s'ha trobat cap màquina virtual <ph name="VM_TYPE" />}=1{S'ha trobat una màquina virtual <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{S'han trobat {NUM_VMS} màquines virtuals <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">No hi ha connexió a Internet.</translation>
 <translation id="4998430619171209993">Activat</translation>
@@ -3991,7 +3985,6 @@
 <translation id="5127620150973591153">Identificador de connexió segura: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sincronització desactivada</translation>
 <translation id="5127881134400491887">Gestionar les connexions de xarxa</translation>
-<translation id="5128774403617662387">Abans de començar, assegura't que tinguis una còpia de seguretat de les teves dades. En instal·lar <ph name="DEVICE_OS" />, se sobreescriuran les dades de la unitat de disc dur. Obtén més informació a g.co/TBD.</translation>
 <translation id="512903556749061217">connectat</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">No s'ha pogut baixar el perfil. Torna-ho a provar més tard o contacta amb l'operador per obtenir ajuda.</translation>
@@ -4509,7 +4502,6 @@
 <translation id="5659593005791499971">Adreça electrònica</translation>
 <translation id="5659833766619490117">Aquesta pàgina no s'ha pogut traduir</translation>
 <translation id="5662513737565158057">Canvia com funcionaran les aplicacions de Linux.</translation>
-<translation id="5667490069342183561">Google no es fa responsable de cap pèrdua de dades i és possible que <ph name="DEVICE_OS" /> no funcioni en models no certificats. Obtén més informació a g.co/TBD.</translation>
 <translation id="5667546120811588575">S'està configurant Google Play...</translation>
 <translation id="5668351004957198136">No superat</translation>
 <translation id="56702779821643359">Comparteix fitxers amb les persones a prop teu. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation>
@@ -5321,9 +5313,6 @@
 <translation id="6528179044667508675">No molestis</translation>
 <translation id="652948702951888897">Historial de Chrome</translation>
 <translation id="6530186581263215931">L'administrador ha aplicat aquesta configuració</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Per oferir la millor experiència possible, <ph name="DEVICE_OS" /> recull dades de maquinari dels dispositius i les comparteix amb Google per determinar quines actualitzacions cal fer. De manera opcional, pots permetre que Google utilitzi aquestes dades per a finalitats addicionals, com ara oferir assistència i millores a l'experiència i el servei de <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Pots iniciar la sessió en aquest dispositiu i visitar la secció CLOUDREADY_HARDWARE_INFO a chrome://system per veure les dades que s'han enviat a Google per filtrar actualitzacions, així com qualsevol altra vegada que hagis triat compartir dades amb Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Per obtenir més detalls sobre les dades que <ph name="DEVICE_OS" /> pot compartir amb Google i com s'utilitzen, visita g.co/xxxxx.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Desa el fitxer perillós</translation>
 <translation id="6532101170117367231">Desa a Google Drive</translation>
 <translation id="6532106788206463496">Desa els canvis</translation>
@@ -6012,15 +6001,6 @@
 <translation id="7258192266780953209">Transformacions</translation>
 <translation id="7258225044283673131">L'aplicació no respon. Selecciona "Força el tancament" per tancar l'aplicació.</translation>
 <translation id="7262004276116528033">Aquest servei d'inici de sessió s'allotja a <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Prova aquests passos per resoldre el problema:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Assegura't que el dispositiu contingui un emmagatzematge intern que funcioni, com ara un HDD, SSD o eMMC.
-    <ph name="LIST_ITEM" />Comprova que el dispositiu d'emmagatzematge intern tingui més de 16 GB.
-    <ph name="LIST_ITEM" />Comprova la connexió a l'emmagatzematge intern, si s'hi pot accedir físicament.
-    <ph name="LIST_ITEM" />Assegura't que utilitzis un model certificat i consulta les notes d'instal·lació.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Per obtenir més ajuda, ves a g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">No s'ha pogut instal·lar la màquina virtual. Torna-ho a provar o contacta amb l'administrador. Codi d'error: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Continua aixecant el dit per afegir les diferents parts de l'empremta digital</translation>
 <translation id="7268127947535186412">El propietari del dispositiu gestiona aquesta opció de configuració.</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 2d4982a62..acb68ed 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -2313,7 +2313,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> s vámi sdílí <ph name="ATTACHMENTS" />.}few{<ph name="DEVICE_NAME" /> s vámi sdílí <ph name="ATTACHMENTS" />.}many{<ph name="DEVICE_NAME" /> s vámi sdílí <ph name="ATTACHMENTS" />.}other{<ph name="DEVICE_NAME" /> s vámi sdílí <ph name="ATTACHMENTS" />.}}</translation>
 <translation id="3364986687961713424">Od vašeho administrátora: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Použijte buď Ctrl, nebo Alt</translation>
-<translation id="3367057768351048705">Weby mohou pomocí souborů cookie sledovat pouze aktivitu prohlížení na svém vlastním webu</translation>
 <translation id="3368922792935385530">Připojeno</translation>
 <translation id="3369067987974711168">Zobrazit další akce pro tento port</translation>
 <translation id="3369624026883419694">Rozpoznávání hostitele...</translation>
@@ -2953,8 +2952,6 @@
 <translation id="3979748722126423326">Aktivovat <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Viditelné pro zařízení v okolí jako <ph name="DEVICE_NAME" /> po dobu <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Byl zadán neplatný typ uložení.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Něco se pokazilo a systém <ph name="DEVICE_OS" /> nebylo možné nainstalovat.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Další informace naleznete na adrese g.co/xxxxx<ph name="END_PARAGRAPH2" />.</translation>
 <translation id="3982375475032951137">Několika jednoduchými kroky si prohlížeč nastavte</translation>
 <translation id="3983400541576569538">Data z některých aplikací mohou být ztracena</translation>
 <translation id="3983586614702900908">zařízení od neznámého dodavatele</translation>
@@ -3873,9 +3870,6 @@
 <translation id="4992984395680162305">Tato zařízení byla propojena naskenováním QR kódu.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Před registrací je čip TPM potřeba vymazat, aby systém <ph name="DEVICE_OS" /> mohl převzít jeho vlastnictví.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Čip TPM můžete také úplně vypnout. Data se i nadále budou ukládat bezpečně pomocí softwarového šifrování, ale některé bezpečnostní funkce, jako jsou hardwarově chráněné certifikáty, budou deaktivovány.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Nastavení čipu TPM můžete změnit tak, že zařízení restartujete a přejdete do nastavení BIOS/UEFI systému. Postup se liší v závislosti na modelu zařízení. Pro další informace si před restartováním na jiném zařízení otevřete dokumentaci systému <ph name="DEVICE_OS" />: [odkaz na adresu URL]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nebyly nalezeny žádné virtuální počítače typu <ph name="VM_TYPE" />}=1{Byl nalezen 1 virtuální počítač typu <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}few{Byly nalezeny {NUM_VMS} virtuální počítače typu <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}many{Bylo nalezeno {NUM_VMS} virtuálního počítače typu <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Bylo nalezeno {NUM_VMS} virtuálních počítačů typu <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Nejste připojeni k internetu.</translation>
 <translation id="4998430619171209993">Zapnuto</translation>
@@ -3993,7 +3987,6 @@
 <translation id="5127620150973591153">ID bezpečného připojení: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Synchronizace je vypnuta</translation>
 <translation id="5127881134400491887">Správa síťových připojení</translation>
-<translation id="5128774403617662387">Před zahájením se ujistěte, zda máte zálohu dat. Při instalaci systému <ph name="DEVICE_OS" /> se pevný disk přepíše. Další informace naleznete na adrese g.co/TBD.</translation>
 <translation id="512903556749061217">připojeno</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profil se nepodařilo stáhnout. Zkuste to znovu později nebo požádejte o pomoc operátora.</translation>
@@ -4509,7 +4502,6 @@
 <translation id="5659593005791499971">E-mail</translation>
 <translation id="5659833766619490117">Tuto stránku se nepodařilo přeložit</translation>
 <translation id="5662513737565158057">Změna fungování linuxových aplikací.</translation>
-<translation id="5667490069342183561">Společnost Google není odpovědná za ztrátu dat a systém <ph name="DEVICE_OS" /> nemusí fungovat na necertifikovaných modelech. Další informace naleznete na adrese g.co/TBD.</translation>
 <translation id="5667546120811588575">Nastavování Google Play...</translation>
 <translation id="5668351004957198136">Neúspěch</translation>
 <translation id="56702779821643359">Sdílejte soubory s lidmi v okolí. <ph name="LINK_BEGIN" />Další informace<ph name="LINK_END" /></translation>
@@ -5321,9 +5313,6 @@
 <translation id="6528179044667508675">Nerušit</translation>
 <translation id="652948702951888897">Historie Chromu</translation>
 <translation id="6530186581263215931">Tato nastavení jsou vynucena administrátorem</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Za účelem poskytování nejlepšího uživatelského dojmu systém <ph name="DEVICE_OS" /> shromažďuje data o hardwaru zařízení a sdílí je s Googlem, aby bylo možné určit, které aktualizace se mají nainstalovat. Volitelně Googlu také můžete povolit používat tato data k dalším účelům, jako je vylepšování prostředí a služeb systému <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Data odeslaná do Googlu k filtrování aktualizací a všechny další případy, u kterých jste se rozhodli sdílet data s Googlem, můžete zobrazit tak, že se na tomto zařízení přihlásíte a na stránce chrome://system přejdete do sekce CLOUDREADY_HARDWARE_INFO.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Další informace o datech, které systém <ph name="DEVICE_OS" /> může sdílet s Googlem, a o tom, jak jsou používána, najdete na stránce g.co/xxxxx.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Ponechat nebezpečný soubor</translation>
 <translation id="6532101170117367231">Uložit na Disk Google</translation>
 <translation id="6532106788206463496">Uložit změny</translation>
@@ -6012,15 +6001,6 @@
 <translation id="7258192266780953209">Transformace</translation>
 <translation id="7258225044283673131">Aplikace neodpovídá. Chcete-li ji zavřít, vyberte Ukončit aplikaci.</translation>
 <translation id="7262004276116528033">Přihlašovací služba je hostována doménou <ph name="SAML_DOMAIN" />.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Zkuste problém odstranit pomocí následujících kroků:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Ujistěte se, zda zařízení obsahuje funkční úložné zařízení, například pevný disk, disk SSD nebo kartu eMMC.
-    <ph name="LIST_ITEM" />Zkontrolujte, zda má interní úložné zařízení větší kapacitu než 16 GB.
-    <ph name="LIST_ITEM" />Zkontrolujte připojení interního úložiště (pokud je fyzicky přístupné).
-    <ph name="LIST_ITEM" />Zkontrolujte, zda používáte certifikovaný model, a přečtěte si pokyny k instalaci.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Další informace naleznete na adrese g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Instalace virtuálního počítače se nezdařila. Zkuste to znovu, nebo kontaktujte administrátora. Kód chyby: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Opakovaně prst zvedněte, aby se zaznamenaly různé části otisku</translation>
 <translation id="7268127947535186412">Toto nastavení spravuje vlastník zařízení.</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 5469d09f..669d66d7 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -2328,7 +2328,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> deler <ph name="ATTACHMENTS" /> med dig.}one{<ph name="DEVICE_NAME" /> is sharing <ph name="ATTACHMENTS" /> with you.}other{<ph name="DEVICE_NAME" /> deler <ph name="ATTACHMENTS" /> med dig.}}</translation>
 <translation id="3364986687961713424">Fra din administrator: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Brug enten Ctrl eller Alt</translation>
-<translation id="3367057768351048705">Websites kan kun bruge dine cookies til at se din browseraktivitet på deres eget website</translation>
 <translation id="3368922792935385530">Tilsluttet</translation>
 <translation id="3369067987974711168">Se flere handlinger for denne port</translation>
 <translation id="3369624026883419694">Identificerer vært...</translation>
@@ -2969,8 +2968,6 @@
 <translation id="3979748722126423326">Aktivér <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Andre enheder i nærheden får vist navnet <ph name="DEVICE_NAME" /> i <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Den indtastede filtype er ugyldig.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Der opstod en fejl, og <ph name="DEVICE_OS" /> kunne ikke installeres.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Du kan få mere hjælp ved at gå til: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Konfigurer din browser ved et hjælp af et par enkle trin</translation>
 <translation id="3983400541576569538">Data fra visse apps går muligvis tabt</translation>
 <translation id="3983586614702900908">enheder fra en ukendt leverandør</translation>
@@ -3890,9 +3887,6 @@
 <translation id="4992984395680162305">Disse enheder blev tilknyttet ved at scanne en QR-kode.</translation>
 <translation id="4994474651455208930">Tillad, at websites beder om at håndtere protokoller som standard</translation>
 <translation id="4994754230098574403">Konfigurerer</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Før du tilmelder dig, skal du rydde TPM-enheden, så <ph name="DEVICE_OS" /> kan tage ejerskab over den.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Du kan også deaktivere TPM-enheden helt. Dine data gemmes fortsat sikkert med softwarekryptering, men visse sikkerhedsfunktioner som f.eks. hardwarebaserede certifikater deaktiveres.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Du kan ændre dine TPM-indstillinger ved at genstarte og gå til systemindstillingerne for BIOS/UEFI. Trinene varierer afhængigt af, hvilken enhedsmodel du bruger. Du kan få flere oplysninger ved at åbne dokumentationen til <ph name="DEVICE_OS" /> på en separat enhed, inden du genstarter: [webadresse]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Der blev ikke fundet nogen <ph name="VM_TYPE" />-VM'er}=1{Der blev fundet 1 <ph name="VM_TYPE" />-VM: <ph name="VM_NAME_LIST" />}one{Der blev fundet {NUM_VMS} <ph name="VM_TYPE" />-VM: <ph name="VM_NAME_LIST" />}other{Der blev fundet {NUM_VMS} <ph name="VM_TYPE" />-VM'er: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Der er ingen internetforbindelse.</translation>
 <translation id="4998430619171209993">Til</translation>
@@ -4010,7 +4004,6 @@
 <translation id="5127620150973591153">Id for sikker forbindelse: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Synkronisering er slået fra</translation>
 <translation id="5127881134400491887">Administrere netværksforbindelser</translation>
-<translation id="5128774403617662387">Før du går i gang, skal du sørge for, at du har sikkerhedskopieret dine data. Hvis du installerer <ph name="DEVICE_OS" />, overskrives din harddisk. Få flere oplysninger på g.co/TBD.</translation>
 <translation id="512903556749061217">tilknyttet</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profilen kunne ikke downloades. Prøv igen senere, eller kontakt dit mobilselskab for at få hjælp.</translation>
@@ -4526,7 +4519,6 @@
 <translation id="5659593005791499971">Mail</translation>
 <translation id="5659833766619490117">Denne side kunne ikke oversættes</translation>
 <translation id="5662513737565158057">Skift indstillingerne for, hvordan Linux-apps fungerer.</translation>
-<translation id="5667490069342183561">Google er ikke ansvarlig for eventuelle tab af data, og <ph name="DEVICE_OS" /> fungerer muligvis ikke på certificerede modeller. Få flere oplysninger på g.co/TBD.</translation>
 <translation id="5667546120811588575">Konfigurerer Google Play...</translation>
 <translation id="5668351004957198136">Ikke bestået</translation>
 <translation id="56702779821643359">Del filer med andre omkring dig. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" /></translation>
@@ -5338,9 +5330,6 @@
 <translation id="6528179044667508675">Forstyr ikke</translation>
 <translation id="652948702951888897">Chrome-historik</translation>
 <translation id="6530186581263215931">Disse indstillinger håndhæves af din administrator</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" /><ph name="DEVICE_OS" /> indsamler hardwaredata om enheder og deler dem med Google for at fastslå, hvilke opdateringer der skal leveres. Du kan vælge at give Google tilladelse til at bruge disse data til yderligere formål som f.eks. support til og forbedringer af <ph name="DEVICE_OS" />-oplevelsen og -tjenesten.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Du kan logge ind på denne enhed og gå til afsnittet CLOUDREADY_HARDWARE_INFO på chrome://system for at se de data, der er sendt til Google med henblik på filtrering af opdateringer, samt alle andre forekomster, hvor du har valgt at dele data med Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Du kan få flere oplysninger om, hvilke data <ph name="DEVICE_OS" /> kan dele med Google, og hvordan de anvendes, på g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Behold farlig fil</translation>
 <translation id="6532101170117367231">Gem på Google Drev</translation>
 <translation id="6532106788206463496">Gem ændringer</translation>
@@ -6029,15 +6018,6 @@
 <translation id="7258192266780953209">Transformationer</translation>
 <translation id="7258225044283673131">Appen svarer ikke. Vælg "Tving til at lukke" for at lukke appen.</translation>
 <translation id="7262004276116528033">Denne logintjeneste hostes af <ph name="SAML_DOMAIN" />.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Prøv disse fejlfindingstrin:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Sørg for, at din enhed har fungerende intern lagerplads, f.eks. HDD, SDD eller eMMC
-    <ph name="LIST_ITEM" />Tjek, at du har mindst 16 GB intern lagerplads på din enhed
-    <ph name="LIST_ITEM" />Tjek forbindelsen til den interne lagerplads, hvis det er fysisk muligt
-    <ph name="LIST_ITEM" />Sørg for, at du bruger en certificeret model, og tjek bemærkningerne vedrørende installation
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Du kan få mere hjælp ved at gå til: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Den virtuelle maskine kunne ikke installeres. Prøv igen, eller kontakt din administrator Fejlkode: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Bliv ved med at løfte fingeren for at få hele fingeraftrykket med</translation>
 <translation id="7268127947535186412">Denne indstilling administreres af enhedens ejer.</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 6ab457e..18346a9 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -2309,7 +2309,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> teilt <ph name="ATTACHMENTS" /> mit Ihnen.}other{<ph name="DEVICE_NAME" /> teilt <ph name="ATTACHMENTS" /> mit Ihnen.}}</translation>
 <translation id="3364986687961713424">Von Ihrem Administrator: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Verwenden Sie entweder Strg oder Alt</translation>
-<translation id="3367057768351048705">Websites können Ihre Cookies nur verwenden, um Ihre Browseraktivitäten auf der eigenen Website zu sehen</translation>
 <translation id="3368922792935385530">Verbunden</translation>
 <translation id="3369067987974711168">Mehr Aktionen für diesen Port anzeigen</translation>
 <translation id="3369624026883419694">Host auflösen...</translation>
@@ -2950,8 +2949,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> aktivieren</translation>
 <translation id="3981058120448670012">Für <ph name="REMAINING_TIME" /> als <ph name="DEVICE_NAME" /> für Geräte in der Nähe sichtbar…</translation>
 <translation id="3981760180856053153">Eingegebener Speichertyp ist ungültig.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Fehler – <ph name="DEVICE_OS" /> konnte nicht installiert werden.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Weitere Informationen finden Sie auf g.co/xxxxx.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Sie können Ihren Browser mit ein paar einfachen Schritten einrichten</translation>
 <translation id="3983400541576569538">Daten aus anderen Apps gehen unter Umständen verloren</translation>
 <translation id="3983586614702900908">Geräte von einem unbekannten Anbieter</translation>
@@ -3868,9 +3865,6 @@
 <translation id="4992984395680162305">Diese Geräte wurden durch das Scannen eines QR-Codes verknüpft.</translation>
 <translation id="4994474651455208930">Registrierung von Websites als Standard-Handler für Protokolle zulassen</translation>
 <translation id="4994754230098574403">Wird eingerichtet</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Vor der Registrierung müssen Sie das TPM löschen, damit <ph name="DEVICE_OS" /> Inhaber des Geräts werden kann.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Sie können das TPM auf dem Gerät auch vollständig deaktivieren. Ihre Daten sind auch danach mit Software-Verschlüsselung sicher gespeichert. Einige Sicherheitsfunktionen, wie hardwaregestützte Zertifikate, werden jedoch deaktiviert.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Sie können Ihre TPM-Einstellungen ändern, indem Sie einen Neustart ausführen und die BIOS/UEFI-Einstellungen des Systems eingeben. Je nach Gerätemodell können diese Schritte variieren. Wenn Sie weitere Informationen benötigen, können Sie vor dem Neustart die <ph name="DEVICE_OS" />-Dokumentation auf einem separaten Gerät öffnen: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Keine <ph name="VM_TYPE" />-VMs gefunden}=1{1 <ph name="VM_TYPE" />-VM gefunden: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" />-VMs gefunden: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Keine Internetverbindung.</translation>
 <translation id="4998430619171209993">An</translation>
@@ -3988,7 +3982,6 @@
 <translation id="5127620150973591153">ID der sicheren Verbindung: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Synchronisierung ist deaktiviert</translation>
 <translation id="5127881134400491887">Netzwerkverbindungen verwalten</translation>
-<translation id="5128774403617662387">Prüfen Sie vor der Installation, ob Sie eine Sicherung Ihrer Daten haben. Wenn Sie <ph name="DEVICE_OS" /> installieren, werden die Daten auf Ihrer Festplatte überschrieben. Weitere Informationen finden Sie unter g.co/TBD.</translation>
 <translation id="512903556749061217">angeschlossen</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Das Profil konnte nicht heruntergeladen werden. Bitte versuche es später noch einmal oder wende dich an deinen Mobilfunkanbieter.</translation>
@@ -4504,7 +4497,6 @@
 <translation id="5659593005791499971">E-Mail</translation>
 <translation id="5659833766619490117">Diese Seite konnte nicht übersetzt werden</translation>
 <translation id="5662513737565158057">Hier können Sie ändern, wie Linux-Apps ausgeführt werden.</translation>
-<translation id="5667490069342183561">Google übernimmt keine Verantwortung für Datenverluste und <ph name="DEVICE_OS" /> funktioniert möglicherweise nicht auf nicht zertifizierten Modellen. Weitere Informationen finden Sie unter g.co/TBD.</translation>
 <translation id="5667546120811588575">Google Play wird eingerichtet...</translation>
 <translation id="5668351004957198136">Nicht erfolgreich</translation>
 <translation id="56702779821643359">Sie können Dateien ganz einfach mit Menschen in der Nähe teilen. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation>
@@ -5316,9 +5308,6 @@
 <translation id="6528179044667508675">Nicht stören</translation>
 <translation id="652948702951888897">Chrome-Verlauf</translation>
 <translation id="6530186581263215931">Diese Einstellungen werden von Ihrem Administrator erzwungen</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Um eine optimale Nutzung zu ermöglichen, erhebt <ph name="DEVICE_OS" /> Hardwaredaten zu Geräten und teilt diese mit Google, um zu prüfen, welche Updates installiert werden sollten. Sie können außerdem zulassen, dass Google diese Daten zu Supportzwecken und zur Verbesserung von <ph name="DEVICE_OS" /> verwendet.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Sie können sich auf diesem Gerät anmelden und den Abschnitt „CLOUDREADY_HARDWARE_INFO“ unter chrome://system aufrufen, um zu sehen, welche Daten zum Filtern von Updates an Google gesendet werden und welche Daten Sie sonst noch mit Google teilen.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Weitere Informationen dazu, welche Daten <ph name="DEVICE_OS" /> mit Google teilen kann, finden Sie unter g.co/xxxxx.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Schädliche Datei beibehalten</translation>
 <translation id="6532101170117367231">In Google Drive speichern</translation>
 <translation id="6532106788206463496">Änderungen speichern</translation>
@@ -6007,15 +5996,6 @@
 <translation id="7258192266780953209">Transformationen</translation>
 <translation id="7258225044283673131">Die Anwendung reagiert nicht. Wählen Sie "Schließen erzwingen" aus, um die App zu beenden.</translation>
 <translation id="7262004276116528033">Dieser Anmeldedienst wird von <ph name="SAML_DOMAIN" /> gehostet.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Führen Sie diese Schritte zur Fehlerbehebung aus:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Achten Sie darauf, dass Ihr Gerät einen funktionierenden internen Speicher hat, z. B. eine HDD, SSD oder einen eMMC-Speicher
-    <ph name="LIST_ITEM" />Achten Sie darauf, dass der interne Speicher größer als 16 GB ist
-    <ph name="LIST_ITEM" />Prüfen Sie die Verbindung zum internen Speicher, sofern auf diesen zugegriffen werden kann
-    <ph name="LIST_ITEM" />Achten Sie darauf, dass Sie ein zertifiziertes Modell verwenden und sehen Sie sich die Installationshinweise an
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Weitere Informationen finden Sie unter g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Die virtuelle Maschine konnte nicht installiert werden. Versuchen Sie es noch einmal oder wenden Sie sich an Ihren Administrator. Fehlercode: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Legen Sie den Finger immer wieder in leicht geänderter Position auf, bis der Abdruck vollständig erfasst ist</translation>
 <translation id="7268127947535186412">Diese Einstellung wird vom Eigentümer des Geräts verwaltet.</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index b7270eff..ab99d3a 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{Η συσκευή <ph name="DEVICE_NAME" /> μοιράζεται μαζί σας <ph name="ATTACHMENTS" />.}other{Η συσκευή <ph name="DEVICE_NAME" /> μοιράζεται μαζί σας <ph name="ATTACHMENTS" />.}}</translation>
 <translation id="3364986687961713424">Από τον διαχειριστή σας: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Χρησιμοποιήστε το Ctrl ή το Alt</translation>
-<translation id="3367057768351048705">Κάθε ιστότοπος μπορεί να χρησιμοποιεί τα cookie σας για την προβολή της δραστηριότητας περιήγησής σας μόνο σε αυτόν τον συγκεκριμένο ιστότοπο.</translation>
 <translation id="3368922792935385530">Σε σύνδεση</translation>
 <translation id="3369067987974711168">Εμφάνιση περισσότερων ενεργειών για τη συγκεκριμένη θύρα</translation>
 <translation id="3369624026883419694">Ανάλυση της διεύθυνσης του κεντρικού υπολογιστή...</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326">Ενεργοποίηση <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Είναι ορατή σε κοντινές συσκευές με την ονομασία <ph name="DEVICE_NAME" /> για <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Καταχωρήθηκε μη έγκυρος τύπος αποθήκευσης.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Παρουσιάστηκε κάποιο πρόβλημα και δεν ήταν δυνατή η εγκατάσταση του <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Για περισσότερη βοήθεια, επισκεφτείτε τη διεύθυνση g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Ρυθμίστε το πρόγραμμα περιήγησης σε μερικά απλά βήματα</translation>
 <translation id="3983400541576569538">Τα δεδομένα από ορισμένες εφαρμογές μπορεί να χαθούν</translation>
 <translation id="3983586614702900908">συσκευές από έναν άγνωστο πάροχο υπηρεσιών</translation>
@@ -3889,9 +3886,6 @@
 <translation id="4992984395680162305">Αυτές οι συσκευές συνδέθηκαν με σάρωση κωδικού QR.</translation>
 <translation id="4994474651455208930">Να επιτρέπεται σε ιστότοπους να ζητούν να γίνονται προεπιλεγμένα προγράμματα χειρισμού για πρωτόκολλα</translation>
 <translation id="4994754230098574403">Γίνεται ρύθμιση</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Πριν εγγραφείτε, πρέπει να διαγράψετε το TPM, ώστε το <ph name="DEVICE_OS" /> να μπορεί να αναλάβει την ιδιοκτησία της συσκευής.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Μπορείτε επίσης να απενεργοποιήσετε εντελώς τη συσκευή TPM. Τα δεδομένα σας θα εξακολουθούν να αποθηκεύονται με ασφάλεια με κρυπτογράφηση λογισμικού, αλλά ορισμένες λειτουργίες ασφάλειας, όπως τα πιστοποιητικά με υποστήριξη εξοπλισμού, θα απενεργοποιηθούν.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Μπορείτε να αλλάξετε τις ρυθμίσεις TPM με επανεκκίνηση και είσοδο στις ρυθμίσεις BIOS/UEFI του συστήματος. Τα βήματα διαφέρουν ανάλογα με το μοντέλο της συσκευής. Για περισσότερες πληροφορίες, ανοίξτε την τεκμηρίωση του <ph name="DEVICE_OS" /> σε ξεχωριστή συσκευή πριν κάνετε επανεκκίνηση: [σύνδεσμος URL]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Δεν βρέθηκαν VM <ph name="VM_TYPE" />}=1{Βρέθηκε 1 VM <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Βρέθηκαν {NUM_VMS} VM <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Δεν υπάρχει σύνδεση στο διαδίκτυο.</translation>
 <translation id="4998430619171209993">Ενεργό</translation>
@@ -4009,7 +4003,6 @@
 <translation id="5127620150973591153">Αναγνωριστικό ασφαλούς σύνδεσης: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Ο συγχρονισμός είναι απενεργοποιημένος</translation>
 <translation id="5127881134400491887">Διαχείριση συνδέσεων δικτύου</translation>
-<translation id="5128774403617662387">Πριν ξεκινήσετε, βεβαιωθείτε ότι έχετε δημιουργήσει αντίγραφα ασφαλείας για τα δεδομένα σας. Η εγκατάσταση του <ph name="DEVICE_OS" /> θα αντικαταστήσει όλα τα δεδομένα στον σκληρό δίσκο σας. Μάθετε περισσότερα στη διεύθυνση g.co/TBD.</translation>
 <translation id="512903556749061217">συνδέθηκε</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Δεν ήταν δυνατή η λήψη του προφίλ. Δοκιμάστε ξανά αργότερα ή απευθυνθείτε στην εταιρεία κινητής τηλεφωνίας για βοήθεια.</translation>
@@ -4526,7 +4519,6 @@
 <translation id="5659593005791499971">Ηλεκτρονικό ταχυδρομείο</translation>
 <translation id="5659833766619490117">Δεν ήταν δυνατή η μετάφραση αυτής της σελίδας</translation>
 <translation id="5662513737565158057">Αλλαγή του τρόπου λειτουργίας των εφαρμογών Linux.</translation>
-<translation id="5667490069342183561">Η Google δεν φέρει καμία ευθύνη για τυχόν απώλεια δεδομένων και το <ph name="DEVICE_OS" /> ενδέχεται να μην λειτουργεί σε μη πιστοποιημένα μοντέλα. Μάθετε περισσότερα στη διεύθυνση g.co/TBD.</translation>
 <translation id="5667546120811588575">Ρύθμιση του Google Play…</translation>
 <translation id="5668351004957198136">Αποτυχία</translation>
 <translation id="56702779821643359">Μοιραστείτε αρχεία με άτομα γύρω σας. <ph name="LINK_BEGIN" />Μάθετε περισσότερα<ph name="LINK_END" /></translation>
@@ -5338,9 +5330,6 @@
 <translation id="6528179044667508675">Μην ενοχλείτε</translation>
 <translation id="652948702951888897">Ιστορικό Chrome</translation>
 <translation id="6530186581263215931">Αυτές οι ρυθμίσεις εφαρμόζονται από τον διαχειριστή σας</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Για να παρέχει την καλύτερη δυνατή εμπειρία, το <ph name="DEVICE_OS" /> συλλέγει δεδομένα εξοπλισμού σχετικά με συσκευές και τα κοινοποιεί στην Google για να προσδιορίσει ποιες ενημερώσεις πρέπει να διατεθούν. Προαιρετικά, μπορείτε να επιτρέψετε στην Google να χρησιμοποιεί αυτά τα δεδομένα για επιπλέον σκοπούς, όπως η παροχή υπηρεσιών υποστήριξης, καθώς και στο πλαίσιο της βελτίωσης της εμπειρίας και των υπηρεσιών που προσφέρει το <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Μπορείτε να συνδεθείτε σε αυτήν τη συσκευή και να επισκεφτείτε την ενότητα CLOUDREADY_HARDWARE_INFO στο chrome://system για να δείτε τα δεδομένα που αποστέλλονται στην Google για το φιλτράρισμα ενημερώσεων, καθώς και στο πλαίσιο άλλων περιστατικών όπου επιλέγετε να μοιραστείτε δεδομένα με την Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Για περισσότερες λεπτομέρειες σχετικά με τα δεδομένα που η συσκευή <ph name="DEVICE_OS" /> ενδέχεται να κοινοποιήσει στην Google και τον τρόπο χρήσης τους, επισκεφτείτε τη διεύθυνση g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Διατήρηση επικίνδυνου αρχείου</translation>
 <translation id="6532101170117367231">Αποθήκευση στο Google Drive</translation>
 <translation id="6532106788206463496">Αποθήκευση αλλαγών</translation>
@@ -6029,15 +6018,6 @@
 <translation id="7258192266780953209">Μετασχηματισμοί</translation>
 <translation id="7258225044283673131">Αυτή η εφαρμογή δεν αποκρίνεται. Για να κλείσετε την εφαρμογή, επιλέξτε Αναγκαστικό κλείσιμο.</translation>
 <translation id="7262004276116528033">Η υπηρεσία σύνδεσης φιλοξενείται από τον τομέα <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Δοκιμάστε αυτά τα βήματα αντιμετώπισης προβλημάτων:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Βεβαιωθείτε ότι η συσκευή σας περιέχει εσωτερικό αποθηκευτικό χώρο όπως HDD, SSD ή eMMC σε λειτουργία
-    <ph name="LIST_ITEM" />Ελέγξτε αν η εσωτερική συσκευή αποθηκευτικού χώρου είναι μεγαλύτερη από 16 GB
-    <ph name="LIST_ITEM" />Ελέγξτε τη σύνδεση στον εσωτερικό αποθηκευτικό χώρο, εάν είναι φυσικά προσβασιμός
-    <ph name="LIST_ITEM" />Βεβαιωθείτε ότι χρησιμοποιείτε ένα πιστοποιημένο μοντέλο και ελέγξτε τις σημειώσεις εγκατάστασης
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Για περισσότερη βοήθεια, επισκεφτείτε τη διεύθυνση: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Δεν ήταν δυνατή η εγκατάσταση του εικονικού μηχανήματος. Δοκιμάστε ξανά ή επικοινωνήστε με τον διαχειριστή σας. Κωδικός σφάλματος: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Συνεχίστε να ανασηκώνετε το δάχτυλό σας, για να προσθέσετε τα διάφορα τμήματα του δακτυλικού σας αποτυπώματος.</translation>
 <translation id="7268127947535186412">Η διαχείριση αυτής της ρύθμισης πραγματοποιείται από τον κάτοχο της συσκευής.</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index a03c7f9..b3703c65 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> is sharing <ph name="ATTACHMENTS" /> with you.}other{<ph name="DEVICE_NAME" /> is sharing <ph name="ATTACHMENTS" /> with you.}}</translation>
 <translation id="3364986687961713424">From your administrator: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Use either Ctrl or Alt</translation>
-<translation id="3367057768351048705">Sites can only use your cookies to see your browsing activity on their own site</translation>
 <translation id="3368922792935385530">Connected</translation>
 <translation id="3369067987974711168">Show more actions for this port</translation>
 <translation id="3369624026883419694">Resolving host...</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326">Enable <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Visible to nearby devices as <ph name="DEVICE_NAME" /> for <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Invalid save type entered.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Something went wrong and <ph name="DEVICE_OS" /> couldn’t be installed.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />For more help, visit: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Set up your browser in a few simple steps</translation>
 <translation id="3983400541576569538">Data from some apps may be lost</translation>
 <translation id="3983586614702900908">devices from an unknown vendor</translation>
@@ -3889,9 +3886,6 @@
 <translation id="4992984395680162305">These devices were linked by scanning a QR code.</translation>
 <translation id="4994474651455208930">Allow sites to ask to become default handlers for protocols</translation>
 <translation id="4994754230098574403">Setting up</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Before enrolling you need to clear the TPM so that <ph name="DEVICE_OS" /> can take ownership of the device.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />You can also turn off the TPM device entirely. Your data will still be stored safely with software encryption, but certain security features such as hardware-backed certificates will be disabled.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />You can change your TPM settings by rebooting and entering the system BIOS/UEFI settings. Steps vary based on the device model. For more info, open the <ph name="DEVICE_OS" /> documentation on a separate device before you reboot: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{No <ph name="VM_TYPE" /> VMs found}=1{1 <ph name="VM_TYPE" /> VM found: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> VMs found: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">No Internet connection.</translation>
 <translation id="4998430619171209993">On</translation>
@@ -4009,7 +4003,6 @@
 <translation id="5127620150973591153">Secure connection ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sync is off</translation>
 <translation id="5127881134400491887">Manage network connections</translation>
-<translation id="5128774403617662387">Before starting, make sure that you have a backup of your data. Installing <ph name="DEVICE_OS" /> will overwrite your hard drive. Learn more at g.co/TBD.</translation>
 <translation id="512903556749061217">attached</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profile could not be downloaded. Please try again later or contact operator for help.</translation>
@@ -4525,7 +4518,6 @@
 <translation id="5659593005791499971">Email</translation>
 <translation id="5659833766619490117">This page could not be translated</translation>
 <translation id="5662513737565158057">Change how Linux apps will work.</translation>
-<translation id="5667490069342183561">Google isn’t responsible for any data loss, and <ph name="DEVICE_OS" /> may not work on uncertified models. Learn more at g.co/TBD.</translation>
 <translation id="5667546120811588575">Setting up Google Play…</translation>
 <translation id="5668351004957198136">Fail</translation>
 <translation id="56702779821643359">Share files with people around you. <ph name="LINK_BEGIN" />Learn more<ph name="LINK_END" /></translation>
@@ -5337,9 +5329,6 @@
 <translation id="6528179044667508675">Do not disturb</translation>
 <translation id="652948702951888897">Chrome history</translation>
 <translation id="6530186581263215931">These settings are enforced by your administrator</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />To provide the best experience, <ph name="DEVICE_OS" /> collects hardware data about devices and shares it with Google to determine which updates should be delivered. Optionally, you can allow Google to use this data for additional purposes, like support and improvements to the <ph name="DEVICE_OS" /> experience and service.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />You can log in on this device and visit the CLOUDREADY_HARDWARE_INFO section in chrome://system to see the data sent to Google for update filtering, as well as any other instances where you choose to share data with Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />For more details on data that <ph name="DEVICE_OS" /> may share with Google, and how it is used, visit g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Keep dangerous file</translation>
 <translation id="6532101170117367231">Save to Google Drive</translation>
 <translation id="6532106788206463496">Save changes</translation>
@@ -6028,15 +6017,6 @@
 <translation id="7258192266780953209">Transformations</translation>
 <translation id="7258225044283673131">The application is not responding. Select 'Force close' to close the app.</translation>
 <translation id="7262004276116528033">This sign-in service is hosted by <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Try these troubleshooting steps:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Make sure that your device contains working internal storage such as a HDD, SSD or eMMC
-    <ph name="LIST_ITEM" />Check that your internal storage device is greater than 16 GB
-    <ph name="LIST_ITEM" />Check the connection to the internal storage, if physically accessible
-    <ph name="LIST_ITEM" />Make sure that you're using a certified model and check the install notes
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />For more help, visit: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Couldn't install the virtual machine. Please try again, or contact your administrator. Error code: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Keep lifting your finger to add the different parts of your fingerprint</translation>
 <translation id="7268127947535186412">This setting is managed by the device owner.</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 13d59be0..abe66a4 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -2309,7 +2309,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> quiere compartir <ph name="ATTACHMENTS" /> contigo.}other{<ph name="DEVICE_NAME" /> quiere compartir <ph name="ATTACHMENTS" /> contigo.}}</translation>
 <translation id="3364986687961713424">Mensaje de tu administrador: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Usar Ctrl o Alt</translation>
-<translation id="3367057768351048705">Los sitios solo pueden utilizar las cookies para ver la actividad de navegación que realices en ellos.</translation>
 <translation id="3368922792935385530">Conectado</translation>
 <translation id="3369067987974711168">Mostrar más acciones para este puerto</translation>
 <translation id="3369624026883419694">Resolviendo host...</translation>
@@ -2950,8 +2949,6 @@
 <translation id="3979748722126423326">Habilitar <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Visible como <ph name="DEVICE_NAME" /> para dispositivos cercanos durante <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Se ingresó un tipo de almacenaje no válido.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Hubo un problema y no se pudo instalar <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Puedes obtener ayuda adicional en g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Configura el navegador en pocos pasos sencillos</translation>
 <translation id="3983400541576569538">Es posible que se pierdan datos de algunas apps</translation>
 <translation id="3983586614702900908">dispositivos de un proveedor desconocido</translation>
@@ -3870,9 +3867,6 @@
 <translation id="4992984395680162305">Se escaneó un código QR para vincular estos dispositivos.</translation>
 <translation id="4994474651455208930">Permitir que los sitios web soliciten convertirse en controladores predeterminados de protocolos</translation>
 <translation id="4994754230098574403">Configurando</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Antes de la inscripción, debes borrar el TPM para que <ph name="DEVICE_OS" /> pueda apropiarse del dispositivo.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />También puedes desactivar el dispositivo TPM por completo. Tus datos seguirán almacenándose de forma segura con la encriptación por medio software, pero se inhabilitarán ciertas funciones de seguridad, como los certificados con copia de seguridad en hardware.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Para cambiar la configuración del TPM, debes reiniciar el sistema e ingresar la configuración de BIOS/UEFI. Los pasos varían según el modelo del dispositivo. Para obtener más información, abre la documentación de <ph name="DEVICE_OS" /> en otro dispositivo antes de reiniciar el sistema: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{No se encontraron VM de <ph name="VM_TYPE" />}=1{Se encontró 1 VM de <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Se encontraron {NUM_VMS} VM de <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">No hay conexión a Internet.</translation>
 <translation id="4998430619171209993">Sí</translation>
@@ -3990,7 +3984,6 @@
 <translation id="5127620150973591153">ID de conexión segura: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">La sincronización está desactivada.</translation>
 <translation id="5127881134400491887">Administrar conexiones de red</translation>
-<translation id="5128774403617662387">Antes de comenzar, asegúrate de tener una copia de seguridad de los datos. Cuando instales <ph name="DEVICE_OS" />, se reemplazarán todos los datos de tu disco duro. Obtén más información en g.co/TBD.</translation>
 <translation id="512903556749061217">conectado</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">No se pudo descargar el perfil. Inténtalo de nuevo más tarde o contacta al proveedor para obtener asistencia.</translation>
@@ -4506,7 +4499,6 @@
 <translation id="5659593005791499971">Correo</translation>
 <translation id="5659833766619490117">No se pudo traducir esta página</translation>
 <translation id="5662513737565158057">Cambia la manera en la que funcionan las apps de Linux.</translation>
-<translation id="5667490069342183561">Google no se hace responsable por la pérdida de datos, y es posible que <ph name="DEVICE_OS" /> no funcione en modelos no certificados. Obtén más información en g.co/TBD.</translation>
 <translation id="5667546120811588575">Configurando Google Play…</translation>
 <translation id="5668351004957198136">No se completó la acción</translation>
 <translation id="56702779821643359">Comparte archivos con personas que estén cerca de tu ubicación. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
@@ -5318,9 +5310,6 @@
 <translation id="6528179044667508675">No interrumpir</translation>
 <translation id="652948702951888897">Historial de Chrome</translation>
 <translation id="6530186581263215931">Tu administrador gestiona estas opciones de configuración.</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />A fin de proporcionar la mejor experiencia, <ph name="DEVICE_OS" /> recopila datos de hardware de los dispositivos y los comparte con Google para determinar qué actualizaciones hacer. De manera opcional, podrás permitir que Google utilice estos datos con otros fines, como la asistencia y mejoras en la experiencia y el servicio de <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Puedes acceder en este dispositivo y visitar la sección CLOUDREADY_HARDWARE_INFO en chrome://system a fin de ver los datos que se enviaron a Google para filtrar las actualizaciones, así como cualquier otra instancia en la que decidas compartir datos con Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Para obtener más detalles sobre los datos que <ph name="DEVICE_OS" /> puede compartir con Google y como se utilizan, visita g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Conservar archivo peligroso</translation>
 <translation id="6532101170117367231">Guardar en Google Drive</translation>
 <translation id="6532106788206463496">Guardar cambios</translation>
@@ -6009,15 +5998,6 @@
 <translation id="7258192266780953209">Transformaciones</translation>
 <translation id="7258225044283673131">La app no responde. Selecciona "Forzar cierre" para cerrar la app.</translation>
 <translation id="7262004276116528033">El servicio de acceso a la cuenta está alojado en <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Prueba los pasos que se indican a continuación para solucionar problemas:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Asegúrate de que tu dispositivo cuente con almacenamiento interno utilizable, como un disco HDD, SSD o eMMC.
-    <ph name="LIST_ITEM" />Verifica que el dispositivo de almacenamiento interno tenga una capacidad superior a 16 GB.
-    <ph name="LIST_ITEM" />Revisa la conexión al almacenamiento interno (si es posible el acceso físico).
-    <ph name="LIST_ITEM" />Asegúrate de utilizar un modelo certificado y revisa las instrucciones de instalación.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Para obtener más ayuda, visita: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">No se pudo instalar la máquina virtual. Inténtalo de nuevo o comunícate con el administrador. Código de error: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Sigue levantando el dedo para agregar diferentes partes de la huella dactilar.</translation>
 <translation id="7268127947535186412">Esta configuración la administra el propietario del dispositivo.</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index ed48911..d410e09e 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -2312,7 +2312,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> quiere compartir <ph name="ATTACHMENTS" /> contigo.}other{<ph name="DEVICE_NAME" /> quiere compartir <ph name="ATTACHMENTS" /> contigo.}}</translation>
 <translation id="3364986687961713424">De tu administrador: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Usa Ctrl o Alt</translation>
-<translation id="3367057768351048705">Los sitios solo pueden usar tus cookies para ver tu actividad de navegación en su propio sitio</translation>
 <translation id="3368922792935385530">Conectado</translation>
 <translation id="3369067987974711168">Mostrar más acciones para este puerto</translation>
 <translation id="3369624026883419694">Resolviendo host...</translation>
@@ -2952,8 +2951,6 @@
 <translation id="3979748722126423326">Habilitar <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Visible para los dispositivos cercanos con el nombre <ph name="DEVICE_NAME" /> durante <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Tipo de almacenamiento no válido</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Se ha producido un error y no se ha podido instalar <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Para obtener más ayuda, visita g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Configura tu navegador con unos sencillos pasos</translation>
 <translation id="3983400541576569538">Es posible que se hayan perdido datos de algunas aplicaciones</translation>
 <translation id="3983586614702900908">dispositivos de un proveedor desconocido</translation>
@@ -3872,9 +3869,6 @@
 <translation id="4992984395680162305">Estos dispositivos se han vinculado escaneando un código QR.</translation>
 <translation id="4994474651455208930">Permitir que los sitios se conviertan en controladores de protocolos predeterminados</translation>
 <translation id="4994754230098574403">Se está configurando</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Antes de registrarte, tienes que borrar el TPM para que <ph name="DEVICE_OS" /> pueda controlar el dispositivo.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />También puedes desactivar el TPM por completo. Tus datos seguirán almacenándose de forma segura con cifrado de software, pero algunas funciones de seguridad, como los certificados respaldados por hardware, se inhabilitarán.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Para cambiar la configuración del TPM, puedes reiniciar el dispositivo y acceder a los ajustes de BIOS/UEFI del sistema. Los pasos varían según el modelo del dispositivo. Para consultar más información, abre la documentación de <ph name="DEVICE_OS" /> en otro dispositivo antes de reiniciar: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{No se ha encontrado ninguna máquina virtual <ph name="VM_TYPE" />}=1{Se ha encontrado 1 máquina virtual <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Se han encontrado {NUM_VMS} máquinas virtuales <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Sin conexión a Internet.</translation>
 <translation id="4998430619171209993">Activado</translation>
@@ -3992,7 +3986,6 @@
 <translation id="5127620150973591153">Identificador de conexión segura: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">La sincronización está desactivada</translation>
 <translation id="5127881134400491887">Gestionar conexiones de red</translation>
-<translation id="5128774403617662387">Antes de empezar, comprueba que tengas una copia de seguridad de tus datos. Al instalar <ph name="DEVICE_OS" />, se sobrescribirán los datos de tu unidad de disco duro. Consulta más información en g.co/TBD.</translation>
 <translation id="512903556749061217">conectado</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">No se ha podido descargar el perfil. Vuelve a intentarlo más tarde o ponte en contacto con tu operador para obtener ayuda.</translation>
@@ -4508,7 +4501,6 @@
 <translation id="5659593005791499971">Correo</translation>
 <translation id="5659833766619490117">No se ha podido traducir la página</translation>
 <translation id="5662513737565158057">Cambia el funcionamiento de las aplicaciones de Linux.</translation>
-<translation id="5667490069342183561">Google no se responsabiliza de las pérdidas de datos. Es posible que <ph name="DEVICE_OS" /> no funcione en modelos no certificados. Consulta más información en g.co/TBD.</translation>
 <translation id="5667546120811588575">Configurando Google Play...</translation>
 <translation id="5668351004957198136">Error</translation>
 <translation id="56702779821643359">Comparte archivos con personas que estén cerca de ti. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
@@ -5320,9 +5312,6 @@
 <translation id="6528179044667508675">No molestar</translation>
 <translation id="652948702951888897">Historial de Chrome</translation>
 <translation id="6530186581263215931">El administrador aplica estas opciones</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Para que puedas disfrutar de la mejor experiencia, <ph name="DEVICE_OS" /> recoge datos de hardware de los dispositivos y los comparte con Google para determinar qué actualizaciones deben enviarse. Si quieres, puedes permitir que Google use estos datos con otros fines, como la asistencia y mejora de la experiencia y del servicio de <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Puedes iniciar sesión en este dispositivo y visitar la sección CLOUDREADY_HARDWARE_INFO de chrome://system para ver los datos enviados a Google con el fin de filtrar las actualizaciones, así como cualquier otra instancia en la que hayas elegido compartir datos con Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Para consultar más información sobre los datos que <ph name="DEVICE_OS" /> podría compartir con Google y cómo se usan, visita g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Conservar archivo peligroso</translation>
 <translation id="6532101170117367231">Guardar en Google Drive</translation>
 <translation id="6532106788206463496">Guardar cambios</translation>
@@ -6011,15 +6000,6 @@
 <translation id="7258192266780953209">Transformaciones</translation>
 <translation id="7258225044283673131">La aplicación no responde. Selecciona "Forzar cierre" para cerrar la aplicación.</translation>
 <translation id="7262004276116528033">Este servicio de inicio de sesión está alojado por <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Prueba estos pasos para solucionar el problema:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Asegúrate de que funcione el almacenamiento interno de tu dispositivo (puede ser HDD, SSD o eMMC).
-    <ph name="LIST_ITEM" />Comprueba que el almacenamiento interno de tu dispositivo tenga una capacidad superior a 16 GB.
-    <ph name="LIST_ITEM" />Revisa la conexión al almacenamiento interno (si puedes acceder físicamente).
-    <ph name="LIST_ITEM" />Asegúrate de que estés usando un modelo certificado y consulta las notas de instalación.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Para obtener más ayuda, visita g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">No se ha podido instalar la máquina virtual. Vuelve a intentarlo o ponte en contacto con el administrador. Código de error: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Sigue levantando el dedo para añadir diferentes partes de tu huella digital</translation>
 <translation id="7268127947535186412">Esta opción está gestionada por el propietario del dispositivo.</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 45de41b..c78ef14 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -2318,7 +2318,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> jagab teiega järgmist: <ph name="ATTACHMENTS" />.}other{<ph name="DEVICE_NAME" /> jagab teiega järgmist: <ph name="ATTACHMENTS" />.}}</translation>
 <translation id="3364986687961713424">Teie administraatorilt: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Kasutage klahvi Ctrl või Alt</translation>
-<translation id="3367057768351048705">Saidid võivad teie küpsisefaile kasutada vaid selleks, et vaadata teie sirvimistegevust samal saidil</translation>
 <translation id="3368922792935385530">Ühendatud</translation>
 <translation id="3369067987974711168">Kuva selle pordi jaoks rohkem tegevusi</translation>
 <translation id="3369624026883419694">Hosti lahendamine...</translation>
@@ -2959,8 +2958,6 @@
 <translation id="3979748722126423326">Luba <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Läheduses olevatele seadmetele nähtav nimega <ph name="DEVICE_NAME" /> (<ph name="REMAINING_TIME" />) …</translation>
 <translation id="3981760180856053153">Sisestati vale salvestamistüüp.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Midagi läks valesti ja operatsioonisüsteemi <ph name="DEVICE_OS" /> ei saanud installida.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Lisaabi saamiseks külastage saiti g.co/xxxxx<ph name="END_PARAGRAPH2" />.</translation>
 <translation id="3982375475032951137">Seadistage brauser vaid mõne lihtsa sammuga</translation>
 <translation id="3983400541576569538">Mõnede rakenduste andmed võivad kaotsi minna</translation>
 <translation id="3983586614702900908">tundmatu müüja seadmed</translation>
@@ -3879,9 +3876,6 @@
 <translation id="4992984395680162305">Need seadmed lingiti QR-koodi skannimise abil.</translation>
 <translation id="4994474651455208930">Luba saitidel küsida, kas hakata protokollide vaikimisi töötlejateks</translation>
 <translation id="4994754230098574403">Seadistamine</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Enne registreerumist peate kustutama TPM-i, et <ph name="DEVICE_OS" /> saaks endale seadme omandilise kuuluvuse.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Võite TPM-i seadme ka täielikult välja lülitada. Teie andmed salvestatakse turvaliselt tarkvara krüpteerimisega, kuid teatud turvafunktsioonid (nt riistvara toega sertifikaadid) keelatakse.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Saate oma TPM-i seadeid muuta, taaskäivitades seadme ja sisenedes süsteemi BIOS-i/UEFI seadetesse. Juhised erinevad olenevalt seadme mudelist. Lisateabe saamiseks avage enne taaskäivitamist <ph name="DEVICE_OS" /> dokumendid teises seadmes: [URL-i link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Üksuse <ph name="VM_TYPE" /> virtuaalmasinaid ei leitud}=1{Leiti 1 üksuse <ph name="VM_TYPE" /> virtuaalmasin: <ph name="VM_NAME_LIST" />}other{Leiti {NUM_VMS} üksuse <ph name="VM_TYPE" /> virtuaalmasinat: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Interneti-ühendus puudub.</translation>
 <translation id="4998430619171209993">Sees</translation>
@@ -3999,7 +3993,6 @@
 <translation id="5127620150973591153">Turvalise ühenduse ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sünkroonimine on välja lülitatud</translation>
 <translation id="5127881134400491887">Võrguühenduste haldamine</translation>
-<translation id="5128774403617662387">Enne alustamist veenduge, et teil oleks oma andmetest olemas varukoopia. Operatsioonisüsteemi <ph name="DEVICE_OS" /> installimisel kirjutatakse üle kõik teie kõvakettal olevad andmed. Lisateave: g.co/TBD.</translation>
 <translation id="512903556749061217">ühendatud</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profiili ei õnnestunud alla laadida. Proovige hiljem uuesti või võtke abi saamiseks ühendust operaatoriga.</translation>
@@ -4515,7 +4508,6 @@
 <translation id="5659593005791499971">E-post</translation>
 <translation id="5659833766619490117">Seda lehte ei õnnestunud tõlkida.</translation>
 <translation id="5662513737565158057">Muutke seda, kuidas Linuxi rakendused töötavad.</translation>
-<translation id="5667490069342183561">Google ei vastuta andmekao eest ja <ph name="DEVICE_OS" /> ei pruugi sertifitseerimata mudelitel toimida. Lisateave: g.co/TBD.</translation>
 <translation id="5667546120811588575">Google Play seadistamine …</translation>
 <translation id="5668351004957198136">Ebaõnnestus</translation>
 <translation id="56702779821643359">Jagage faile läheduses olevate inimestega. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation>
@@ -5327,9 +5319,6 @@
 <translation id="6528179044667508675">Mitte segada</translation>
 <translation id="652948702951888897">Chrome'i ajalugu</translation>
 <translation id="6530186581263215931">Need seaded jõustas administraator</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Parima kasutuskogemuse pakkumiseks kogub <ph name="DEVICE_OS" /> riistvaraandmeid seadmete kohta ja jagab neid Google'iga, et otsustada, milliseid värskendusi saata. Teil on võimalik lubada Google'il neid andmeid kasutada ka muudel eesmärkidel, nagu toe pakkumine ning operatsioonisüsteemi <ph name="DEVICE_OS" /> kasutuskogemuse ja teenuse täiustamine.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Võite selles seadmes sisse logida ja külastada lehel chrome://system jaotist CLOUDREADY_HARDWARE_INFO, et näha andmeid, mis saadetakse värskenduste filtreerimiseks Google'ile, aga ka muid olukordi, kus otsustate andmeid Google'iga jagada.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Lisateabe saamiseks andmete kohta, mida <ph name="DEVICE_OS" /> võib Google'iga jagada (ja kuidas neid kasutatakse), külastage saiti g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Säilita ohtlik fail</translation>
 <translation id="6532101170117367231">Salvesta rakendusse Google Drive</translation>
 <translation id="6532106788206463496">Salvesta muudatused</translation>
@@ -6018,15 +6007,6 @@
 <translation id="7258192266780953209">Teisendamised</translation>
 <translation id="7258225044283673131">Rakendus ei reageeri. Rakenduse sulgemiseks valige käsk „Sundpeata”.</translation>
 <translation id="7262004276116528033">Sisselogimisteenust hostib <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Proovige neid veaotsingu toiminguid.
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Veenduge, et teie seade sisaldaks toimivat sisemist salvestusruumi (näiteks HDD, SSD või eMMC).
-    <ph name="LIST_ITEM" />Kontrollige, et teil oleks sisemist salvestusruumi rohkem kui 16 GB.
-    <ph name="LIST_ITEM" />Võimaluse korral kontrollige, et sisemine salvestusruum oleks korralikult ühendatud.
-    <ph name="LIST_ITEM" />Veenduge, et kasutaksite sertifitseeritud mudelit ja kontrollige installimise märkusi.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Lisateabe saamiseks külastage aadressi g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Virtuaalmasinat ei õnnestunud installida. Proovige uuesti või võtke ühendust administraatoriga. Veakood: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Tõstke sõrme, et lisada sõrmejälje eri osad</translation>
 <translation id="7268127947535186412">Seadet haldab seadme omanik.</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index 9e0b7516..7548586 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -2311,7 +2311,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> partekatzen ari dira zurekin <ph name="DEVICE_NAME" /> gailuaren bidez.}other{<ph name="ATTACHMENTS" /> partekatzen ari dira zurekin <ph name="DEVICE_NAME" /> gailuaren bidez.}}</translation>
 <translation id="3364986687961713424">Zure administratzaileak hau dio: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Erabili Ktrl edo Alt</translation>
-<translation id="3367057768351048705">Webguneek haietan egiten dituzun arakatze-jarduerak ikusteko soilik erabil ditzakete cookieak</translation>
 <translation id="3368922792935385530">Konektatuta</translation>
 <translation id="3369067987974711168">Erakutsi ataka honekin egin ditzakezun ekintza gehiago</translation>
 <translation id="3369624026883419694">Ostalaria ebazten…</translation>
@@ -2952,8 +2951,6 @@
 <translation id="3979748722126423326">Gaitu <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Inguruko gailuek <ph name="DEVICE_NAME" /> gisa ikusiko dute denbora hau agortu arte: <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Gordetze motak ez du balio.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Arazo bat izan da eta ezin izan da instalatu <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Laguntza gehiago behar baduzu, joan g.co/xxxxx helbidera<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Konfiguratu arakatzailea urrats gutxi batzuetan</translation>
 <translation id="3983400541576569538">Baliteke aplikazio batzuetako datuak galtzea</translation>
 <translation id="3983586614702900908">saltzaile ezezagunaren gailuak</translation>
@@ -3872,9 +3869,6 @@
 <translation id="4992984395680162305">QR kode bat eskaneatuta lotu dira gailuak.</translation>
 <translation id="4994474651455208930">Baimendu webguneei protokoloen kudeatzaile lehenetsi bihurtzeko baimena eskatzea</translation>
 <translation id="4994754230098574403">Konfiguratzen</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Erregistratu aurretik, TPMa garbitu behar duzu, <ph name="DEVICE_OS" /> sistemak zure gailuaren jabetza eskura dezan.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />TPMa daukan gailua ere itzal dezakezu. Hala ere, datuak segurtasun osoz gordeko dira software-enkriptatzearen bidez, baina segurtasun-eginbide batzuk (adibidez, hardwarean gordetako ziurtagiriak) desgaitu egingo dira.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />TPMaren ezarpenak aldatzeko, berrabiarazi gailua eta idatzi sistemak darabilen BIOS edo UEFIaren ezarpenak. Urratsak gailuaren modeloaren araberakoak dira. Informazio gehiago lortzeko, gailua berrabiarazi aurretik, ireki <ph name="DEVICE_OS" /> sistemari buruzko dokumentazio hau beste gailu batean: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Ez da aurkitu <ph name="VM_TYPE" /> makina birtualik}=1{1 <ph name="VM_TYPE" /> makina birtual aurkitu da: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> makina birtual aurkitu dira: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Ez zaude konektatuta Internetera.</translation>
 <translation id="4998430619171209993">Aktibatuta</translation>
@@ -3992,7 +3986,6 @@
 <translation id="5127620150973591153">Konexio seguruaren IDa: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sinkronizazioa desaktibatuta dago</translation>
 <translation id="5127881134400491887">Kudeatu sareko konexioak</translation>
-<translation id="5128774403617662387">Hasi aurretik, ziurtatu datuen babeskopiak egin dituzula. <ph name="DEVICE_OS" /> instalatuz gero, disko gogorra gainidatziko da. Lortu informazio gehiago g.co/TBD helbidean.</translation>
 <translation id="512903556749061217">erantsita</translation>
 <translation id="5130080518784460891">ETEN markakoa</translation>
 <translation id="5130675701626084557">Ezin izan da deskargatu profila. Saiatu berriro geroago. Bestela, laguntza lortzeko, jarri operadorearekin harremanetan.</translation>
@@ -4508,7 +4501,6 @@
 <translation id="5659593005791499971">Helbide elektronikoa</translation>
 <translation id="5659833766619490117">Ezin izan da itzuli orria</translation>
 <translation id="5662513737565158057">Aldatu Linux-eko aplikazioen funtzionamendua.</translation>
-<translation id="5667490069342183561">Google-k ez du datu-galeren gaineko erantzukizunik, eta baliteke <ph name="DEVICE_OS" /> sistemak ziurtatu gabeko modeloetan ez funtzionatzea. Lortu informazio gehiago g.co/TBD helbidean.</translation>
 <translation id="5667546120811588575">Google Play konfiguratzen…</translation>
 <translation id="5668351004957198136">Ezin izan da egiaztatu</translation>
 <translation id="56702779821643359">Partekatu fitxategiak ingurukoekin. <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation>
@@ -5320,9 +5312,6 @@
 <translation id="6528179044667508675">Ez molestatu</translation>
 <translation id="652948702951888897">Chrome-ko historia</translation>
 <translation id="6530186581263215931">Administratzaileak gordearazten ditu ezarpen hauek</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Ahalik eta zerbitzurik onena eskaintzeko, gailuei buruzko hardware-datuak biltzen ditu <ph name="DEVICE_OS" /> sistemak, eta Google-rekin partekatzen ditu instalatu behar diren eguneratzeak zehazteko. Nahi baduzu, datuok beste helburu batzuetarako erabiltzeko baimena eman diezaiokezu Google-ri, hala nola laguntza-zerbitzua eskaintzeko, eta <ph name="DEVICE_OS" /> eta hark eskainitako zerbitzua hobetzeko.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Eguneratzeak iragazteko Google-ra zer datu bidaliko diren ikusteko, hasi saioa gailuan eta joan chrome://system agindua sakatzean bistaratzen den orriko CLOUDREADY_HARDWARE_INFO atalera. Datuak Google-rekin partekatzea zer beste kasutan aukeratu zenuen ere ikusiko duzu bertan.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> sistemak Google-rekin partekatzen dituen datuei eta datu horiek erabiltzeko moduari buruzko xehetasun gehiago lortzeko, joan g.co/xxxxx helbidera.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Gorde fitxategi arriskutsua</translation>
 <translation id="6532101170117367231">Gorde Google Drive-n</translation>
 <translation id="6532106788206463496">Gorde aldaketak</translation>
@@ -6011,15 +6000,6 @@
 <translation id="7258192266780953209">Eraldaketak</translation>
 <translation id="7258225044283673131">Aplikazioak ez du erantzuten. Ixteko, hautatu "Behartu ixtera".</translation>
 <translation id="7262004276116528033">Saioa hasteko zerbitzuaren ostalaria <ph name="SAML_DOMAIN" /> da</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Probatu urrats hauek egiten arazoa konpontzeko:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Ziurtatu gailuak ongi funtzionatzen duen barneko memoria bat duela (adibidez, HDD, SSD edo eMMC bat).
-    <ph name="LIST_ITEM" />Egiaztatu gailuaren barneko memoriak gutxienez 16 GB dituela.
-    <ph name="LIST_ITEM" />Egiaztatu barneko memoriarako konexioa behar bezala dabilela, hura fisikoki atzitzen ahal bada.
-    <ph name="LIST_ITEM" />Egiaztatu modelo ziurtatu bat darabilzula eta irakurri instalazio-oharrak.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Informazio gehiago lortzeko, joan g.co/xxxxx helbidera<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Ezin izan da instalatu makina birtuala. Saiatu berriro edo jarri harremanetan administratzailearekin. Errore-kodea: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Jarraitu hatza jasotzen hatz-markaren zati guztiak gehitzeko</translation>
 <translation id="7268127947535186412">Gailuaren jabeak kudeatzen du ezarpen hau.</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index b35ced8..b42ea5c 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -2324,7 +2324,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> درحال هم‌رسانی <ph name="ATTACHMENTS" /> با شما است.}one{<ph name="DEVICE_NAME" /> درحال هم‌رسانی <ph name="ATTACHMENTS" /> با شما است.}other{<ph name="DEVICE_NAME" /> درحال هم‌رسانی <ph name="ATTACHMENTS" /> با شما است.}}</translation>
 <translation id="3364986687961713424">ازطرف سرپرست: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">‏یا از Ctrl استفاده کنید یا از Alt</translation>
-<translation id="3367057768351048705">سایت‌ها فقط می‌توانند از کوکی‌هایتان برای دیدن فعالیت مرورتان در سایت خود استفاده کنند</translation>
 <translation id="3368922792935385530">متصل</translation>
 <translation id="3369067987974711168">نمایش کنش‌های بیشتر برای این درگاه</translation>
 <translation id="3369624026883419694">در حال تحلیل میزبان...</translation>
@@ -2965,8 +2964,6 @@
 <translation id="3979748722126423326">فعال کردن <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">نمایان برای دستگاه‌های اطراف با نام <ph name="DEVICE_NAME" /> به‌مدت <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">نوع ذخیره نامعتبری وارد شده است.</translation>
-<translation id="3981828803725658123">‏<ph name="BEGIN_PARAGRAPH1" />مشکلی پیش آمد و <ph name="DEVICE_OS" /> نصب نشد.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />برای راهنمایی بیشتر، به این نشانی بروید: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">راه‌اندازی مرورگر طی چند مرحله ساده</translation>
 <translation id="3983400541576569538">ممکن است داده‌های برخی برنامه‌ها از دست بروند</translation>
 <translation id="3983586614702900908">دستگاه‌های ارائه‌دهنده ناشناس</translation>
@@ -3886,9 +3883,6 @@
 <translation id="4992984395680162305">این دستگاه‌ها با اسکن کردن رمزینه پاسخ‌سریع پیوند شده‌اند.</translation>
 <translation id="4994474651455208930">سایت‌ها اجازه دارند درخواست کنند کنترل کننده پیش‌فرض برای پروتکل ها شوند</translation>
 <translation id="4994754230098574403">درحال راه‌اندازی</translation>
-<translation id="4995131849631312693">‏<ph name="BEGIN_PARAGRAPH1" />پیش‌از ثبت‌نام، باید TPM را پاک کنید تا <ph name="DEVICE_OS" /> بتواند مالک این دستگاه شود.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />همچنین می‌توانید دستگاه TPM را به‌طور کامل خاموش کنید. داده‌های شما همچنان بااستفاده از رمزگذاری نرم‌افزار به‌طور ایمن ذخیره می‌شود، اما برخی‌از ویژگی‌های امنیتی مثل گواهینامه‌های دارای پشتیبان سخت‌افزاری غیرفعال می‌شود.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />می‌توانید با راه‌اندازی مجدد سیستم و وارد شدن به تنظیمات BIOS/UEFI سیستم، تنظیمات TPM را تغییر دهید. مراحل بسته به مدل دستگاه متفاوت است. برای اطلاعات بیشتر، پیش‌از راه‌اندازی مجدد، اسناد <ph name="DEVICE_OS" /> را در دستگاه دیگری باز کنید: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{هیچ ماشین مجازی <ph name="VM_TYPE" /> پیدا نشد}=1{‏۱ ماشین مجازی <ph name="VM_TYPE" /> پیدا شد: <ph name="VM_NAME_LIST" />}one{‏{NUM_VMS} ماشین مجازی <ph name="VM_TYPE" /> پیدا شد: <ph name="VM_NAME_LIST" />}other{‏{NUM_VMS} ماشین مجازی <ph name="VM_TYPE" /> پیدا شد: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">اتصال اینترنت ندارید.</translation>
 <translation id="4998430619171209993">روشن</translation>
@@ -4006,7 +4000,6 @@
 <translation id="5127620150973591153">شناسه اتصال امن: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">همگام‌سازی خاموش است</translation>
 <translation id="5127881134400491887">مدیریت اتصالات شبکه</translation>
-<translation id="5128774403617662387">‏پیش‌از شروع، حتماً از داده‌هایتان پشتیبان‌گیری کنید. نصب <ph name="DEVICE_OS" /> داده‌های دیسک سخت را بازنویسی خواهد کرد. برای اطلاعات بیشتر، به g.co/TBD بروید.</translation>
 <translation id="512903556749061217">متصل</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">نمایه را نمی‌توان بارگیری کرد. لطفاً بعداً دوباره امتحان کنید یا برای راهنمایی با شرکت مخابراتی تماس بگیرید.</translation>
@@ -4522,7 +4515,6 @@
 <translation id="5659593005791499971">ایمیل</translation>
 <translation id="5659833766619490117">ترجمه این صفحه امکان‌پذیر نیست</translation>
 <translation id="5662513737565158057">‏نحوه کارکرد برنامه‌های Linux را تغییر دهید.</translation>
-<translation id="5667490069342183561">‏Google هیچ مسئولیتی درقبال ازدست رفتن داده ندارد، و <ph name="DEVICE_OS" /> ممکن است در مدل‌های تأییدنشده کار نکند. برای اطلاعات بیشتر، به g.co/TBD بروید.</translation>
 <translation id="5667546120811588575">‏درحال راه‌اندازی Google Play...</translation>
 <translation id="5668351004957198136">ناموفق</translation>
 <translation id="56702779821643359">هم‌رسانی فایل‌ها با افراد اطرافتان <ph name="LINK_BEGIN" />بیشتر بدانید<ph name="LINK_END" /></translation>
@@ -5334,9 +5326,6 @@
 <translation id="6528179044667508675">مزاحم نشوید</translation>
 <translation id="652948702951888897">‏سابقه Chrome</translation>
 <translation id="6530186581263215931">این تنظیمات توسط سرپرست سیستم شما اعمال شده است</translation>
-<translation id="653031671361866334">‏<ph name="BEGIN_PARAGRAPH1" />برای ارائه بهترین تجربه، <ph name="DEVICE_OS" /> داده‌های سخت‌افزار مربوط دستگاه‌ها را جمع‌آوری می‌کند و آن‌ها را با Google هم‌رسانی می‌کند تا مشخص شود چه به‌روزرسانی‌هایی باید ارائه شود. درصورت تمایل، می‌توانید به Google اجازه دهید از این داده‌ها برای اهداف تکمیلی مثل پشتیبانی و بهبود بخشیدن به سرویس و تجربه <ph name="DEVICE_OS" /> استفاده کند.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />می‌توانید به سیستم این دستگاه وارد شوید و به بخش CLOUDREADY_HARDWARE_INFO در Chrome بروید تا این موارد را ببینید: داده‌های ارسال‌شده به Google برای فیلتر کردن به‌روزرسانی و همچنین موارد دیگری که هم‌رسانی داده با Google را انتخاب می‌کنید.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />برای اطلاع جزئیات بیشتر درخصوص داده‌هایی ممکن است <ph name="DEVICE_OS" /> با Google هم‌رسانی کند و نحوه استفاده از آن‌ها، به g.co/xxxxx بروید<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">حفظ فایل خطرناک</translation>
 <translation id="6532101170117367231">‏‫ذخیره در Google Drive</translation>
 <translation id="6532106788206463496">ذخیره تغییرات</translation>
@@ -6025,15 +6014,6 @@
 <translation id="7258192266780953209">تبدیل‌ها</translation>
 <translation id="7258225044283673131">برنامه پاسخ نمی‌دهد. برای بستن برنامه، «بستن اجباری» را انتخاب کنید.</translation>
 <translation id="7262004276116528033">این خدمات ورود به سیستم توسط <ph name="SAML_DOMAIN" /> میزبانی شده است</translation>
-<translation id="7264564921322372728">‏<ph name="BEGIN_PARAGRAPH1" />این مراحل عیب‌یابی را دنبال کنید:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />مطمئن شوید دستگاهتان حاوی حافظه داخلی فعالی باشد، مانند حافظه HDD، ‏SSD، یا eMMC
-    <ph name="LIST_ITEM" />بررسی کنید حجم دستگاه حافظه داخلی بیشتر از ۱۶ گیگابایت باشد 
-    <ph name="LIST_ITEM" />اگر حافظه داخلی به‌صورت فیزیکی دردسترس است، اتصال به آن را بررسی کنید
-    <ph name="LIST_ITEM" />مطمئن شوید از مدل تأییدشده‌ای استفاده می‌کنید و نکات نصب را بررسی کنید
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />برای اطلاعات بیشتر، به این نشانی بروید: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">دستگاه مجازی نصب نشد. لطفاً دوباره امتحان کنید، یا با سرپرست تماس بگیرید. کد خطا: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">مدام انگشتتان را جابه‌جا کنید تا بخش‌های مختلف اثر انگشتتان را اضافه کنید</translation>
 <translation id="7268127947535186412">این تنظیم توسط مالک دستگاه مدیریت می‌شود.</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index ee1a1329..27a7a4b8 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -2326,7 +2326,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> jakaa <ph name="ATTACHMENTS" /> kanssasi.}other{<ph name="DEVICE_NAME" /> jakaa <ph name="ATTACHMENTS" /> kanssasi.}}</translation>
 <translation id="3364986687961713424">Järjestelmänvalvojalta: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Käytä joko Ctrl- tai Alt-näppäintä</translation>
-<translation id="3367057768351048705">Sivustot voivat nähdä selaustoimintaasi evästeiden kautta vain omalla sivustollaan</translation>
 <translation id="3368922792935385530">Yhdistetty</translation>
 <translation id="3369067987974711168">Näytä lisää tämän portin toimintoja</translation>
 <translation id="3369624026883419694">Jäsennetään palvelinta...</translation>
@@ -2964,8 +2963,6 @@
 <translation id="3979748722126423326">Ota käyttöön <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Näkyy lähellä oleville laitteille nimellä <ph name="DEVICE_NAME" /> <ph name="REMAINING_TIME" /> ajan…</translation>
 <translation id="3981760180856053153">Annoit virheellisen tallennustyypin.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Jotain meni pieleen, ja asennus ei onnistunut: <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Katso lisäohjeita osoitteesta g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Asenna selain parilla yksinkertaisella vaiheella</translation>
 <translation id="3983400541576569538">Joidenkin sovellusten data voi kadota</translation>
 <translation id="3983586614702900908">tuntemattoman myyjän laitteet</translation>
@@ -3885,9 +3882,6 @@
 <translation id="4992984395680162305">Laitteet on linkitetty skannaamalla QR-koodi.</translation>
 <translation id="4994474651455208930">Anna sivustojen ehdottaa protokollien oletuskäsittelypalveluiden määrittämistä</translation>
 <translation id="4994754230098574403">Määritetään</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Ennen rekisteröitymistä sinun on tyhjennettävä TPM, jotta <ph name="DEVICE_OS" /> voi aloittaa laitteen omistajana.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Voit myös laittaa TPM-laitteen kokonaan pois päältä. Datasi tallennetaan turvallisesti ohjelmistosalauksella, mutta jotkin suojausominaisuudet, esim. laitteelle varmuuskopioidut varmenteet, poistetaan käytöstä.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Voit muuttaa TPM-asetuksiasi käynnistämällä laitteen uudestaan ja lisäämällä järjestelmän BIOS/UEFI-asetukset. Ohjeet riippuvat laitteen mallista. Jos haluat lisätietoja, avaa dokumentaatio (<ph name="DEVICE_OS" />) eri laitteella ennen uudelleenkäynnistystä: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{VM:iä (<ph name="VM_TYPE" />) ei löytynyt}=1{1 VM (<ph name="VM_TYPE" />) löytyi: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} VM:ää (<ph name="VM_TYPE" />) löytyi: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Ei internetyhteyttä.</translation>
 <translation id="4998430619171209993">Päällä</translation>
@@ -4005,7 +3999,6 @@
 <translation id="5127620150973591153">Suojatun yhteyden tunnus: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Synkronointi on pois päältä</translation>
 <translation id="5127881134400491887">hallinnoida verkkoyhteyksiä</translation>
-<translation id="5128774403617662387">Varmista ennen aloittamista, että sinulla on varmuuskopio datastasi. Asentaminen (<ph name="DEVICE_OS" />) korvaa kiintolevysi sisällön. Lue lisää osoitteesta g.co/TBD.</translation>
 <translation id="512903556749061217">liitetty</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profiilia ei voitu ladata. Yritä uudelleen tai pyydä apua operaattorilta.</translation>
@@ -4521,7 +4514,6 @@
 <translation id="5659593005791499971">Sähköposti</translation>
 <translation id="5659833766619490117">Sivua ei voi kääntää</translation>
 <translation id="5662513737565158057">Muuta Linux-sovellusten toimintatapaa.</translation>
-<translation id="5667490069342183561">Google ei vastaa menetetystä datasta, ja <ph name="DEVICE_OS" /> ei välttämättä toimi sertifioimattomilla malleilla. Lue lisää osoitteesta g.co/TBD.</translation>
 <translation id="5667546120811588575">Määritetään Google Playta…</translation>
 <translation id="5668351004957198136">Hylätty</translation>
 <translation id="56702779821643359">Jaa tiedostoja lähellä oleville henkilöille. <ph name="LINK_BEGIN" />Lue lisää<ph name="LINK_END" /></translation>
@@ -5333,9 +5325,6 @@
 <translation id="6528179044667508675">Älä häiritse</translation>
 <translation id="652948702951888897">Chromen historia</translation>
 <translation id="6530186581263215931">Järjestelmänvalvojasi on ottanut nämä asetukset käyttöön</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" /><ph name="DEVICE_OS" /> kerää laitedataa ja jakaa sen Googlelle parhaan mahdollisen käyttökokemuksen tarjoamiseksi. Tämä auttaa selvittämään, millaisia päivityksiä tarvitaan. Voit halutessasi antaa Googlelle luvan käyttää dataa myös muihin tarkoituksiin, esim. käyttökokemuksen ja palvelun (<ph name="DEVICE_OS" />) tukemiseen ja kehittämiseen.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Näet Googlelle päivitysten suodattamista varten lähetetyn datan (ja kaiken muun Googlelle jakamasi datan) kirjautumalla laitteelle ja siirtymällä Chromen diagnostiikkatietojen (chrome://system) CLOUDREADY_HARDWARE_INFO-osioon.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Lisätietoja datasta, jota <ph name="DEVICE_OS" /> voi jakaa Googlelle, ja sen käytöstä saat osoitteesta g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Pidä haitallinen tiedosto</translation>
 <translation id="6532101170117367231">Tallenna Google Driveen</translation>
 <translation id="6532106788206463496">Tallenna muutokset</translation>
@@ -6024,15 +6013,6 @@
 <translation id="7258192266780953209">Muunnokset</translation>
 <translation id="7258225044283673131">Sovellus ei vastaa. Sulje sovellus valitsemalla Pakota sulkeutumaan.</translation>
 <translation id="7262004276116528033">Tätä kirjautumispalvelua ylläpitää <ph name="SAML_DOMAIN" />.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Kokeile näitä ratkaisuja:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Varmista, että laitteesi sisältää toimivan sisäisen tallennustilan, esim. HDD:n, SSD:n tai eMMC:n
-    <ph name="LIST_ITEM" />Tarkista, että sisäisen tallennuslaitteen tila on yli 16 Gt
-    <ph name="LIST_ITEM" />Tarkista yhteys sisäiseen tallennustilaan, jos pääset siihen fyysisesti käsiksi
-    <ph name="LIST_ITEM" />Varmista, että käytät sertifioitua mallia, ja tarkista asennusohjeet
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Katso lisäohjeita osoitteesta g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Virtuaalikoneen asentaminen ei onnistunut. Yritä uudelleen tai ota yhteyttä järjestelmänvalvojaan. Virhekoodi: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Kosketa tunnistinta toistuvasti, niin sormenjäljen eri osat lisätään</translation>
 <translation id="7268127947535186412">Laitteen omistaja ylläpitää tätä asetusta.</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 9d93588..9e76d84 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -2328,7 +2328,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{Nagbabahagi sa iyo ang <ph name="DEVICE_NAME" /> ng <ph name="ATTACHMENTS" />.}one{Nagbabahagi sa iyo ang <ph name="DEVICE_NAME" /> ng <ph name="ATTACHMENTS" />.}other{Nagbabahagi sa iyo ang <ph name="DEVICE_NAME" /> ng <ph name="ATTACHMENTS" />.}}</translation>
 <translation id="3364986687961713424">Mula sa iyong administrator: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Isa lang sa Ctrl o Alt ang gamitin</translation>
-<translation id="3367057768351048705">Magagamit lang ng mga site ang iyong cookies para makita ang aktibidad mo sa pag-browse sa sarili nilang site</translation>
 <translation id="3368922792935385530">Nakakonekta</translation>
 <translation id="3369067987974711168">Magpakita pa ng mga pagkilos para sa port na ito</translation>
 <translation id="3369624026883419694">Nilulutas ang host...</translation>
@@ -2969,8 +2968,6 @@
 <translation id="3979748722126423326">Paganahin ang <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Visible sa mga kalapit na device bilang <ph name="DEVICE_NAME" /> sa loob ng <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Di-wastong uri ng pag-save ang ipinasok.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Nagkaproblema at hindi ma-install ang <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Para sa higit pang tulong, bisitahin ang: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">I-set up ang iyong browser gamit ang ilang simpleng hakbang</translation>
 <translation id="3983400541576569538">Maaaring mawala ang data mula sa ilang app</translation>
 <translation id="3983586614702900908">mga device mula sa isang hindi kilalang vendor</translation>
@@ -3890,9 +3887,6 @@
 <translation id="4992984395680162305">Na-link ang mga device na ito sa pamamagitan ng pag-scan ng QR code.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Bago mag-enroll, kailangan mong i-clear ang TPM para ang <ph name="DEVICE_OS" /> na ang magmay-ari sa device.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Puwede mo ring tuluyang i-off ang TPM device. Ligtas na maso-store ang iyong data sa tulong ng pag-encrypt ng software, pero madi-disable ang ilang partikular na panseguridad na feature gaya ng mga hardware-backed na certificate.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Puwede mong baguhin ang mga setting ng iyong TPM sa pamamagitan ng pag-reboot at paglalagay ng mga setting ng BIOS/UEFI ng system. Nag-iiba ang mga hakbang batay sa modelo ng device. Para sa higit pang impormasyon, buksan ang dokumentasyon ng <ph name="DEVICE_OS" /> sa hiwalay na device bago ka mag-reboot: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Walang nahanap na VM na <ph name="VM_TYPE" />}=1{1 VM na <ph name="VM_TYPE" /> ang nahanap: <ph name="VM_NAME_LIST" />}one{{NUM_VMS} VM na <ph name="VM_TYPE" /> ang nahanap: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} na VM na <ph name="VM_TYPE" /> ang nahanap: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Walang koneksyon sa Internet.</translation>
 <translation id="4998430619171209993">Naka-on</translation>
@@ -4010,7 +4004,6 @@
 <translation id="5127620150973591153">Secure na connection ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Naka-off ang pag-sync</translation>
 <translation id="5127881134400491887">Pamahalaan ang mga koneksyon ng network</translation>
-<translation id="5128774403617662387">Bago magsimula, tiyaking mayroon kang backup ng iyong data. Kapag na-install ang <ph name="DEVICE_OS" />, mao-overwrite ang iyong hard drive. Matuto pa sa g.co/TBD.</translation>
 <translation id="512903556749061217">naka-attach</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Hindi ma-download ang profile. Pakisubukan ulit sa ibang pagkakataon o makipag-ugnayan sa carrier para sa tulong.</translation>
@@ -4526,7 +4519,6 @@
 <translation id="5659593005791499971">Email</translation>
 <translation id="5659833766619490117">Hindi maisalin ang page na ito</translation>
 <translation id="5662513737565158057">Baguhin kung paano gagana ang mga Linux app.</translation>
-<translation id="5667490069342183561">Hindi responsable ang Google para sa anumang pagkawala ng data, at posibleng hindi gumana ang <ph name="DEVICE_OS" /> sa mga hindi certified na modelo. Matuto pa sa g.co/TBD.</translation>
 <translation id="5667546120811588575">Sine-set up ang Google Play...</translation>
 <translation id="5668351004957198136">Hindi Pumasa</translation>
 <translation id="56702779821643359">Magbahagi ng mga file sa mga tao sa paligid mo. <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation>
@@ -5338,9 +5330,6 @@
 <translation id="6528179044667508675">Wag istorbohin</translation>
 <translation id="652948702951888897">History sa Chrome</translation>
 <translation id="6530186581263215931">Ipinapatupad ng iyong administrator ang mga setting na ito</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Para maibigay ang pinakamagandang karanasan, nangongolekta ang <ph name="DEVICE_OS" /> ng data ng hardware tungkol sa mga device at ibinabahagi ito sa Google para matukoy kung aling mga update ang dapat ihatid. Bilang opsyon, puwede mong payagan ang Google na gamitin ang data na ito para sa mga karagdagang layunin tulad ng suporta at mga pagpapahusay sa karanasan sa at serbisyo ng <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Puwede kang mag-log in sa device na ito at bisitahin ang seksyong CLOUDREADY_HARDWARE_INFO sa chrome://system para makita ang data na ipinadala sa Google para sa pag-filter ng update, pati na ang anupamang sitwasyon kung saan pinili mong magbahagi ng data sa Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Para sa higit pang detalye tungkol sa data na posibleng ibahagi ng <ph name="DEVICE_OS" /> sa Google, at sa kung paano ito ginagamit, bisitahin ang g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Panatilihin ang mapanganib na file</translation>
 <translation id="6532101170117367231">I-save sa Google Drive</translation>
 <translation id="6532106788206463496">I-save ang mga pagbabago</translation>
@@ -6029,15 +6018,6 @@
 <translation id="7258192266780953209">Mga Pagbabago</translation>
 <translation id="7258225044283673131">Hindi tumutugon ang application. Piliin ang "Puwersahang isara" para isara ang app.</translation>
 <translation id="7262004276116528033">Hino-host ng <ph name="SAML_DOMAIN" /> ang serbisyo sa pag-sign in</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Subukan ang mga hakbang na ito sa pag-troubleshoot:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Tiyaking may gumaganang internal storage ang iyong device gaya ng HDD, SSD, o eMMC
-    <ph name="LIST_ITEM" />Tingnan kung mas malaki sa 16GB ang internal storage device mo
-    <ph name="LIST_ITEM" />Tingnan ang koneksyon sa internal storage, kung pisikal itong maa-access
-    <ph name="LIST_ITEM" />Tiyaking gumagamit ka ng certified na modelo at tingnan ang mga tala sa pag-install
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Para sa higit pang tulong, bisitahin ang: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Hindi ma-install ang virtual machine. Pakisubukan ulit, o makipag-ugnayan sa iyong administrator. Code ng error: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Iangat nang iangat ang iyong daliri para idagdag ang iba't ibang bahagi ng fingerprint mo</translation>
 <translation id="7268127947535186412">Pinapamahalaan ang setting na ito ng may-ari ng device.</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 2f3bee93..6db882a 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -2314,7 +2314,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{L'appareil <ph name="DEVICE_NAME" /> partage <ph name="ATTACHMENTS" /> avec vous.}one{L'appareil <ph name="DEVICE_NAME" /> partage <ph name="ATTACHMENTS" /> avec vous.}other{L'appareil <ph name="DEVICE_NAME" /> partage <ph name="ATTACHMENTS" /> avec vous.}}</translation>
 <translation id="3364986687961713424">De votre administrateur : <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Utilisez la touche Ctrl ou Alt</translation>
-<translation id="3367057768351048705">Les sites peuvent uniquement utiliser vos témoins pour connaître votre activité de navigation sur leur propre site</translation>
 <translation id="3368922792935385530">Connecté</translation>
 <translation id="3369067987974711168">Afficher plus d'actions pour ce port</translation>
 <translation id="3369624026883419694">Résolution de l'hôte en cours...</translation>
@@ -2955,8 +2954,6 @@
 <translation id="3979748722126423326">Activer <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Visible aux appareils à proximité en tant que <ph name="DEVICE_NAME" /> pendant <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Format d'enregistrement incorrect.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Un problème est survenu, et <ph name="DEVICE_OS" /> n'a pas pu être installé.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Pour obtenir de l'aide supplémentaire, consultez la page suivante : g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Configurez votre navigateur en quelques étapes simples</translation>
 <translation id="3983400541576569538">Les données de certaines applications pourraient être perdues</translation>
 <translation id="3983586614702900908">appareils d'un fournisseur inconnu</translation>
@@ -3875,9 +3872,6 @@
 <translation id="4992984395680162305">Ces appareils ont été associés par la numérisation d'un code QR.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Avant de vous inscrire, vous devez effacer le TPM de manière à ce que <ph name="DEVICE_OS" /> puisse prendre en charge l'appareil.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Vous pouvez également désactiver entièrement l'appareil TPM. Vos données continueront d'être stockées en toute sécurité grâce au chiffrement logiciel, mais certaines fonctionnalités de sécurité, comme les certificats soutenus par du matériel, seront désactivées.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Vous pouvez modifier vos paramètres TPM en redémarrant l'appareil et en accédant aux paramètres BIOS/UEFI du système. Les étapes varient en fonction du modèle de l'appareil. Pour en savoir plus, ouvrez la documentation de <ph name="DEVICE_OS" /> sur un autre appareil avant de redémarrer l'appareil : [lien]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Aucune MV <ph name="VM_TYPE" /> trouvée}=1{1 MV <ph name="VM_TYPE" /> trouvée : <ph name="VM_NAME_LIST" />}one{{NUM_VMS} MV <ph name="VM_TYPE" /> trouvée : <ph name="VM_NAME_LIST" />}other{{NUM_VMS} MV <ph name="VM_TYPE" /> trouvées : <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Aucune connexion Internet.</translation>
 <translation id="4998430619171209993">Activé</translation>
@@ -3995,7 +3989,6 @@
 <translation id="5127620150973591153">Identifiant de connexion sécurisé : <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">La synchronisation est désactivée</translation>
 <translation id="5127881134400491887">Gérer les connexions réseau</translation>
-<translation id="5128774403617662387">Avant de commencer, assurez-vous d'avoir une sauvegarde de vos données. L'installation de <ph name="DEVICE_OS" /> écrasera les données présentes sur votre disque dur. Apprenez-en plus à la page g.co/TBD.</translation>
 <translation id="512903556749061217">connecté</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Impossible de télécharger le profil. Veuillez réessayer plus tard ou communiquer avec votre fournisseur de services pour obtenir de l'aide.</translation>
@@ -4511,7 +4504,6 @@
 <translation id="5659593005791499971">Courriel</translation>
 <translation id="5659833766619490117">Impossible de traduire cette page</translation>
 <translation id="5662513737565158057">Modifiez la manière dont les applications Linux vont fonctionner.</translation>
-<translation id="5667490069342183561">Google n'est pas responsable de toute perte de données, et <ph name="DEVICE_OS" /> peut ne pas fonctionner sur les modèles non certifiés. Apprenez-en plus à la page g.co/TBD.</translation>
 <translation id="5667546120811588575">Configuration de Google Play en cours…</translation>
 <translation id="5668351004957198136">Échec</translation>
 <translation id="56702779821643359">Partagez des fichiers avec des gens à proximité. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
@@ -5323,9 +5315,6 @@
 <translation id="6528179044667508675">Ne pas déranger</translation>
 <translation id="652948702951888897">Historique de Google Chrome</translation>
 <translation id="6530186581263215931">Ces paramètres sont imposés par votre administrateur</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Pour que vous profitiez d'une expérience optimale, <ph name="DEVICE_OS" /> collecte des données matérielles relatives aux appareils et les partage avec Google dans le but de déterminer quelles mises à jour doivent être fournies. Si vous le souhaitez, vous pouvez autoriser Google à utiliser ces données à d'autres fins, comme l'assistance et l'amélioration de l'expérience et du service proposés par <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Vous pouvez vous connecter sur cet appareil et consulter la section CLOUDREADY_HARDWARE_INFO dans chrome://system pour découvrir les données envoyées à Google dans le but de filtrer les mises à jour ainsi que toutes les autres instances où vous choisissez de partager des données avec Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Pour en savoir plus à propos des données que <ph name="DEVICE_OS" /> peut partager avec Google et comment elles sont utilisées, consultez la page g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Conserver le fichier dangereux</translation>
 <translation id="6532101170117367231">Enregistrer dans Google Disque</translation>
 <translation id="6532106788206463496">Enregistrer les modifications</translation>
@@ -6014,15 +6003,6 @@
 <translation id="7258192266780953209">Transformations</translation>
 <translation id="7258225044283673131">L'application ne répond pas. Sélectionnez « Forcer la fermeture » pour fermer l'application.</translation>
 <translation id="7262004276116528033">Le service de connexion est hébergé par <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Essayez les étapes de dépannage suivantes :
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Assurez-vous que votre appareil dispose d'une mémoire interne fonctionnelle, comme un disque dur, un disque SSD ou une carte eMMC.
-    <ph name="LIST_ITEM" />Vérifiez que votre appareil de stockage interne dispose de plus de 16 Go d'espace de stockage.
-    <ph name="LIST_ITEM" />Vérifiez la connexion au stockage interne, s'il est physiquement accessible.
-    <ph name="LIST_ITEM" />Assurez-vous que vous utilisez un modèle certifié et vérifiez les instructions d'installation.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Pour obtenir de l'aide supplémentaire, visitez la page suivante : g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Impossible d'installer la machine virtuelle. Veuillez essayer de nouveau ou bien communiquez avec votre administrateur. Code d'erreur : <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Déplacez légèrement votre doigt lorsque vous le relevez pour ajouter toutes les parties de votre empreinte digitale</translation>
 <translation id="7268127947535186412">Ce paramètre est géré par le propriétaire de l'appareil.</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index bc536fe0..86077227 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -2313,7 +2313,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> essaie de partager <ph name="ATTACHMENTS" /> avec vous.}one{<ph name="DEVICE_NAME" /> essaie de partager <ph name="ATTACHMENTS" /> avec vous.}other{<ph name="DEVICE_NAME" /> essaie de partager <ph name="ATTACHMENTS" /> avec vous.}}</translation>
 <translation id="3364986687961713424">Message de votre administrateur : <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Utilisez soit Ctrl, soit Alt</translation>
-<translation id="3367057768351048705">Les sites ne peuvent utiliser vos cookies que pour voir votre activité de navigation sur ces sites</translation>
 <translation id="3368922792935385530">Connecté</translation>
 <translation id="3369067987974711168">Afficher plus d'actions pour ce port</translation>
 <translation id="3369624026883419694">Résolution de l'hôte...</translation>
@@ -2954,8 +2953,6 @@
 <translation id="3979748722126423326">Activer <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Visible par les appareils à proximité sous le nom <ph name="DEVICE_NAME" /> pendant <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Le type d'enregistrement indiqué est incorrect.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Un problème est survenu. <ph name="DEVICE_OS" /> n'a pas pu être installé.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Pour obtenir de l'aide, rendez-vous sur g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Configurez votre navigateur en quelques étapes faciles</translation>
 <translation id="3983400541576569538">Il se peut que les données de certaines applications soient perdues</translation>
 <translation id="3983586614702900908">appareils d'un fournisseur inconnu</translation>
@@ -3874,9 +3871,6 @@
 <translation id="4992984395680162305">Ces appareils ont été associés à l'aide d'un code QR.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Avant l'enregistrement, vous devez effacer le TPM pour que <ph name="DEVICE_OS" /> puisse prendre possession de l'appareil.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Vous pouvez aussi désactiver entièrement le TPM de l'appareil. Vos données seront quand même stockées de façon sécurisée via un chiffrement logiciel, mais certaines fonctionnalités de sécurité, comme les certificats matériels, seront désactivés.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Vous pouvez modifier vos paramètres TPM en redémarrant et en accédant aux paramètres BIOS/UEFI du système. La procédure varie selon le modèle de l'appareil. Pour en savoir plus, lisez la documentation <ph name="DEVICE_OS" /> sur un autre appareil avant de redémarrer : [URL]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Aucune VM <ph name="VM_TYPE" /> trouvée}=1{1 VM <ph name="VM_TYPE" /> trouvée : <ph name="VM_NAME_LIST" />}one{{NUM_VMS} VM <ph name="VM_TYPE" /> trouvée : <ph name="VM_NAME_LIST" />}other{{NUM_VMS} VM <ph name="VM_TYPE" /> trouvées : <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Aucune connexion Internet.</translation>
 <translation id="4998430619171209993">Activé</translation>
@@ -3994,7 +3988,6 @@
 <translation id="5127620150973591153">Code de connexion sécurisée : <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">La synchronisation est désactivée.</translation>
 <translation id="5127881134400491887">Gérer les connexions réseau</translation>
-<translation id="5128774403617662387">Avant de commencer, vérifiez que vous avez une copie de sauvegarde de vos données. L'installation de <ph name="DEVICE_OS" /> va écraser les données de votre disque dur. En savoir plus : g.co/TBD.</translation>
 <translation id="512903556749061217">connecté</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Impossible de télécharger le profil. Réessayez plus tard ou demandez de l'aide à votre opérateur.</translation>
@@ -4511,7 +4504,6 @@
 <translation id="5659593005791499971">E-mail</translation>
 <translation id="5659833766619490117">Impossible de traduire cette page</translation>
 <translation id="5662513737565158057">Modifier le fonctionnement des applications Linux.</translation>
-<translation id="5667490069342183561">Google n'est pas responsable des pertes de données. <ph name="DEVICE_OS" /> peut ne pas fonctionner sur les modèles non certifiés. En savoir plus : g.co/TBD.</translation>
 <translation id="5667546120811588575">Configuration de Google Play…</translation>
 <translation id="5668351004957198136">Échec</translation>
 <translation id="56702779821643359">Partagez des fichiers avec des personnes à proximité. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
@@ -5323,9 +5315,6 @@
 <translation id="6528179044667508675">Ne pas déranger</translation>
 <translation id="652948702951888897">Historique Chrome</translation>
 <translation id="6530186581263215931">Ces paramètres sont appliqués par votre administrateur</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Pour vous offrir une expérience optimale et les mises à jour appropriées, <ph name="DEVICE_OS" /> collecte les données matérielles liées à vos appareils et les partage avec Google. Vous pouvez éventuellement autoriser Google à utiliser ces données à d'autres fins, par exemple pour l'assistance et les améliorations à apporter à <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Pour voir quelles données sont envoyées à Google afin de recevoir les bonnes mises à jour, et pour consulter la liste des autres cas où vous acceptez de les partager avec Google, vous pouvez vous connecter sur cet appareil et lire la section CLOUDREADY_HARDWARE_INFO dans chrome://system.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Pour en savoir plus sur les données que <ph name="DEVICE_OS" /> peut partager avec Google et sur leur utilisation, accédez à g.co/xxxxx.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Conserver le fichier dangereux</translation>
 <translation id="6532101170117367231">Enregistrer sur Google Drive</translation>
 <translation id="6532106788206463496">Enregistrer les modifications</translation>
@@ -6014,15 +6003,6 @@
 <translation id="7258192266780953209">Transformations</translation>
 <translation id="7258225044283673131">L'application ne répond pas. Sélectionnez "Forcer la fermeture" pour la fermer.</translation>
 <translation id="7262004276116528033">Ce service de connexion est hébergé par <ph name="SAML_DOMAIN" />.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Suivez ces étapes de dépannage :
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Vérifiez que votre appareil contient une mémoire de stockage interne (ex. : HDD, SSD ou eMMC) qui fonctionne
-    <ph name="LIST_ITEM" />Vérifiez qu'elle est supérieure à 16 Go
-    <ph name="LIST_ITEM" />Vérifiez sa connexion (si accessible physiquement)
-    <ph name="LIST_ITEM" />Vérifiez que vous utilisez un modèle certifié et lisez les notes d'installation
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Pour obtenir de l'aide, rendez-vous sur g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Impossible d'installer la machine virtuelle. Veuillez réessayer ou contacter votre administrateur. Code d'erreur : <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Répétez cette opération pour ajouter les différentes parties de votre empreinte</translation>
 <translation id="7268127947535186412">Ce paramètre est géré par le propriétaire de l'appareil.</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index 8d25e81..31cc824 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -2310,7 +2310,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> está compartindo <ph name="ATTACHMENTS" /> contigo.}other{<ph name="DEVICE_NAME" /> está compartindo <ph name="ATTACHMENTS" /> contigo.}}</translation>
 <translation id="3364986687961713424">Do teu administrador: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Utiliza a tecla Ctrl ou Alt</translation>
-<translation id="3367057768351048705">Os distintos sitios só poden utilizar as túas cookies para consultar a actividade de navegación que levaches a cabo no seu propio sitio</translation>
 <translation id="3368922792935385530">Conectada</translation>
 <translation id="3369067987974711168">Ver máis accións para este porto</translation>
 <translation id="3369624026883419694">Resolvendo servidor...</translation>
@@ -2951,8 +2950,6 @@
 <translation id="3979748722126423326">Activar <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Visible como <ph name="DEVICE_NAME" /> para os dispositivos próximos durante <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Introduciuse un tipo de almacenamento non válido.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Produciuse un erro e <ph name="DEVICE_OS" /> non puido instalarse.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Para obter máis axuda, visita g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Configura o navegador nuns poucos pasos sinxelos</translation>
 <translation id="3983400541576569538">Pódense perder os datos dalgunhas aplicacións</translation>
 <translation id="3983586614702900908">dispositivos dun provedor descoñecido</translation>
@@ -3871,9 +3868,6 @@
 <translation id="4992984395680162305">Estes dispositivos vinculáronse escaneando un código QR.</translation>
 <translation id="4994474651455208930">Permitir que os sitios soliciten converterse en controladores predeterminados de protocolos</translation>
 <translation id="4994754230098574403">Configurando</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Antes de inscribirte, debes borrar o TPM para que <ph name="DEVICE_OS" /> poida facerse cargo do dispositivo.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Tamén podes desactivar completamente o dispositivo do TPM. Os teus datos seguiranse almacenando de forma segura coa encriptación de software, pero desactivaranse certas funcións de seguranza, como os certificados almacenados en hardware.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Podes cambiar a configuración do TPM reiniciando o dispositivo e accedendo á configuración de BIOS/UEFI do sistema. Os pasos varían segundo o modelo do dispositivo. Para obter máis información, abre a documentación de <ph name="DEVICE_OS" /> nun dispositivo independente antes de proceder co reinicio: [ligazón URL]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Non se atopou ningunha máquina virtual de <ph name="VM_TYPE" />}=1{Atopouse 1 máquina virtual de <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Atopáronse {NUM_VMS} máquinas virtuais de <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Non hai conexión a Internet.</translation>
 <translation id="4998430619171209993">Si</translation>
@@ -3991,7 +3985,6 @@
 <translation id="5127620150973591153">Código de conexión segura: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">A sincronización está desactivada</translation>
 <translation id="5127881134400491887">Xestionar conexións de rede</translation>
-<translation id="5128774403617662387">Antes de comezar, asegúrate de ter unha copia de seguranza dos teus datos. Ao instalar <ph name="DEVICE_OS" /> sobrescribirase a información da unidade de disco duro. Obtén máis información en g.co/TBD.</translation>
 <translation id="512903556749061217">conectado</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Non se puido descargar o perfil. Téntao de novo máis tarde ou ponte en contacto co operador para obter axuda.</translation>
@@ -4507,7 +4500,6 @@
 <translation id="5659593005791499971">Correo electrónico</translation>
 <translation id="5659833766619490117">Non se puido traducir esta páxina</translation>
 <translation id="5662513737565158057">Cambia o funcionamento das aplicacións de Linux.</translation>
-<translation id="5667490069342183561">Google non é responsable das perdas de datos que poidan producirse. Ademais, pode que <ph name="DEVICE_OS" /> non funcione en modelos que non estean aprobados. Obtén máis información en g.co/TBD.</translation>
 <translation id="5667546120811588575">Configurando Google Play...</translation>
 <translation id="5668351004957198136">Produciuse un erro</translation>
 <translation id="56702779821643359">Comparte ficheiros coas persoas que te rodean. <ph name="LINK_BEGIN" />Máis información<ph name="LINK_END" /></translation>
@@ -5319,9 +5311,6 @@
 <translation id="6528179044667508675">Non molestar</translation>
 <translation id="652948702951888897">Historial de Chrome</translation>
 <translation id="6530186581263215931">O teu administrador aplica estas opcións de configuración</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Para ofrecerche a mellor experiencia posible, <ph name="DEVICE_OS" /> recompila datos de hardware sobre os dispositivos e compárteos con Google a fin de determinar as actualizacións necesarias. De maneira opcional, podes permitir que Google utilice estes datos con outros fins, como prestar asistencia e incorporar melloras á experiencia e aos servizos de <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Podes iniciar sesión neste dispositivo e visitar a sección CLOUDREADY_HARDWARE_INFO en chrome://system para consultar os datos que se lle envían a Google co obxectivo de filtrar as actualizacións, así como noutros casos nos que decides compartir información con Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Se queres obter máis información sobre os datos que pode compartir <ph name="DEVICE_OS" /> con Google e o uso que se lles dá, visita g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Conservar ficheiro perigoso</translation>
 <translation id="6532101170117367231">Gardar en Google Drive</translation>
 <translation id="6532106788206463496">Gardar cambios</translation>
@@ -6010,15 +5999,6 @@
 <translation id="7258192266780953209">Transformacións</translation>
 <translation id="7258225044283673131">A aplicación non responde. Para pechala, selecciona Forzar peche.</translation>
 <translation id="7262004276116528033">Este servizo de inicio de sesión está aloxado por <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Proba estes pasos para tentar solucionar o problema:
-<ph name="BEGIN_LIST" />
-<ph name="LIST_ITEM" />Asegúrate de que o teu dispositivo conteña unha unidade de almacenamento interno operativa (por exemplo, unha unidade de disco duro, unha SSD ou unha eMMC).
-<ph name="LIST_ITEM" />Comproba que o teu dispositivo de almacenamento interno teña unha capacidade superior a 16 GB.
-<ph name="LIST_ITEM" />Comproba a conexión á unidade de almacenamento interno, no caso de que teñas acceso físico a ela.
-<ph name="LIST_ITEM" />Asegúrate de estar utilizando un modelo aprobado e consulta as notas de instalación.
-<ph name="END_LIST" />
-<ph name="END_PARAGRAPH1" />
-<ph name="BEGIN_PARAGRAPH2" />Para obter máis axuda, visita g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Non se puido instalar a máquina virtual. Téntao de novo ou ponte en contacto co teu administrador. Código de erro: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Continúa levantando o dedo para engadir as diferentes partes da túa impresión dixital</translation>
 <translation id="7268127947535186412">O propietario do dispositivo xestiona esta opción de configuración.</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index 5d46b34..7efe473 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -2310,7 +2310,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> તમારી સાથે <ph name="ATTACHMENTS" /> શેર કરી રહ્યું છે.}one{<ph name="DEVICE_NAME" /> તમારી સાથે <ph name="ATTACHMENTS" /> શેર કરી રહ્યું છે.}other{<ph name="DEVICE_NAME" /> તમારી સાથે <ph name="ATTACHMENTS" /> શેર કરી રહ્યું છે.}}</translation>
 <translation id="3364986687961713424">તમારા વ્યવસ્થાપક તરફથી: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl અથવા Altનો ઉપયોગ કરો</translation>
-<translation id="3367057768351048705">અલગ-અલગ સાઇટ પોતપોતાની સાઇટ પરની તમારી બ્રાઉઝિંગ પ્રવૃત્તિ જોવા માટે માત્ર તમારી કુકીનો ઉપયોગ કરી શકશે</translation>
 <translation id="3368922792935385530">કનેક્ટેડ</translation>
 <translation id="3369067987974711168">આ પોર્ટ માટે વધુ ક્રિયાઓ બતાવો</translation>
 <translation id="3369624026883419694">હોસ્ટને રીસોલ્વ કરી રહ્યું છે...</translation>
@@ -2951,8 +2950,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> ચાલુ કરો</translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" /> સુધી નજીકના ડિવાઇસ <ph name="DEVICE_NAME" /> તરીકે દેખાશે...</translation>
 <translation id="3981760180856053153">અમાન્ય સાચવો પ્રકાર દાખલ થયો છે.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />કંઈક ખોટું થયું અને <ph name="DEVICE_OS" /> ઇન્સ્ટૉલ કરી શકાયું નથી.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />વધુ સહાય માટે, અહીં મુલાકાત લો: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">કેટલાક સરળ પગલાંમાં તમારા બ્રાઉઝરને સેટઅપ કરો</translation>
 <translation id="3983400541576569538">કેટલીક ઍપમાંથી ડેટા ગુમાવશો</translation>
 <translation id="3983586614702900908">અજાણ્યા વિક્રેતા પાસેથી ઉપકરણો</translation>
@@ -3871,9 +3868,6 @@
 <translation id="4992984395680162305">QR કોડ સ્કૅન કરીને આ ડિવાઇસ લિંક કરવામાં આવ્યા હતા.</translation>
 <translation id="4994474651455208930">પ્રોટોકૉલ માટે ડિફૉલ્ટ હૅન્ડલર બનવા માટે સાઇટને પૂછવાની મંજૂરી આપો</translation>
 <translation id="4994754230098574403">સેટ કરી રહ્યા છીએ</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />નોંધણી કરતા પહેલાં તમારે TPM સાફ કરવું જરૂરી છે, જેથી <ph name="DEVICE_OS" /> ડિવાઇસ પર માલિકીનો અધિકાર પ્રાપ્ત કરી શકે.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />તમે TPM ડિવાઇસ સંપૂર્ણપણે બંધ પણ કરી શકો છો. આમ છતાં તમારો ડેટા સૉફ્ટવેર એન્ક્રિપ્શન વડે સલામત રીતે સ્ટોર કરવામાં આવશે, પરંતુ સુરક્ષિત સ્ટોરેજ ધરાવતા હાર્ડવેર સંબંધિત પ્રમાણપત્રો જેવી અમુક ચોક્કસ સુરક્ષા સુવિધાઓ બંધ કરવામાં આવશે.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />તમે તમારા TPM સેટિંગ રીબૂટ કરીને અને સિસ્ટમ BIOS/UEFI સેટિંગ દાખલ કરીને તેમાં ફેરફાર કરી શકો છો. ડિવાઇસના મૉડલ અનુસાર આ પગલાં અલગ-અલગ હોઈ શકે છે. વધુ માહિતી માટે, તમે રીબૂટ કરો એ પહેલાં અલગ ડિવાઇસ પર <ph name="DEVICE_OS" /> દસ્તાવેજ ખોલો: [URL લિંક]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{કોઈ <ph name="VM_TYPE" /> VMs મળ્યું નથી}=1{1 <ph name="VM_TYPE" /> VM મળ્યું: <ph name="VM_NAME_LIST" />}one{{NUM_VMS} <ph name="VM_TYPE" /> VMs મળ્યું: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> VMs મળ્યા: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">કોઈ ઇન્ટરનેટ કનેક્શન નથી.</translation>
 <translation id="4998430619171209993">ચાલુ</translation>
@@ -3991,7 +3985,6 @@
 <translation id="5127620150973591153">સુરક્ષિત કનેક્શન ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">સમન્વયન બંધ છે</translation>
 <translation id="5127881134400491887">નેટવર્ક કનેક્શન્સનું સંચાલન કરો</translation>
-<translation id="5128774403617662387">શરૂ કરતા પહેલાં, ખાતરી કરો કે તમારી પાસે તમારા ડેટાનું બૅકઅપ ઉપલબ્ધ છે. <ph name="DEVICE_OS" />ને ઇન્સ્ટૉલ કરવાથી, તમારી હાર્ડ ડ્રાઇવ ઓવરરાઇટ થઈ જશે. g.co/TBD પરથી વધુ જાણો.</translation>
 <translation id="512903556749061217">જોડાયેલું</translation>
 <translation id="5130080518784460891">ઇટેન</translation>
 <translation id="5130675701626084557">પ્રોફાઇલ ડાઉનલોડ કરી શકાઈ નથી. કૃપા કરીને થોડા સમય પછી ફરી પ્રયાસ કરો અથવા સહાય માટે મોબાઇલ ઑપરેટરનો સંપર્ક કરો.</translation>
@@ -4508,7 +4501,6 @@
 <translation id="5659593005791499971">ઇમેઇલ</translation>
 <translation id="5659833766619490117">આ પેજનો અનુવાદ કરી શકાયો નથી</translation>
 <translation id="5662513737565158057">Linux ઍપની કાર્ય કરવાની રીત બદલો.</translation>
-<translation id="5667490069342183561">કોઈપણ પ્રકારના ડેટાના નુકસાન બદલ Google જવાબદાર નથી અને અપ્રમાણિત હોય એવા મૉડલ પર <ph name="DEVICE_OS" /> કદાચ કામ કરશે નહીં. g.co/TBD પરથી વધુ જાણો.</translation>
 <translation id="5667546120811588575">Google Play સેટ કરી રહ્યાં છીએ...</translation>
 <translation id="5668351004957198136">ચેક કરવામાં નિષ્ફળ રહ્યાં</translation>
 <translation id="56702779821643359">તમારી આસપાસના લોકો સાથે ફાઇલો શેર કરો. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation>
@@ -5321,9 +5313,6 @@
 <translation id="6528179044667508675">ખલેલ પાડશો નહિ</translation>
 <translation id="652948702951888897">Chrome ઇતિહાસ</translation>
 <translation id="6530186581263215931">આ સેટિંગ તમારા વ્યવસ્થાપક દ્વારા લાગુ કરવામાં આવ્યા છે</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />શ્રેષ્ઠ અનુભવ પ્રદાન કરવા માટે, <ph name="DEVICE_OS" /> ડિવાઇસ વિશેનો હાર્ડવેર ડેટા એકત્રિત કરે છે અને કઈ અપડેટ ડિલિવર કરવી જોઈએ તે નક્કી કરવા માટે તેને Google સાથે શેર કરે છે. વૈકલ્પિક રીતે, તમે <ph name="DEVICE_OS" />માંનો અનુભવ અને સેવા સંબંધિત સપોર્ટ અને સુધારણાઓ જેવા વધારાના હેતુઓ માટે Googleને આ ડેટાનો ઉપયોગ કરવાની મંજૂરી આપી શકો છો.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />અપડેટ ફિલ્ટરિંગ માટે Googleને મોકલવામાં આવેલો ડેટા તેમજ તમે Google સાથે ડેટા શેર કરવાનું પસંદ કરો છો તે કોઈપણ અન્ય ઉદાહરણો જોવા માટે, તમે આ ડિવાઇસ પર લૉગ ઇન કરી શકો છો અને chrome://system વિભાગમાં CLOUDREADY_HARDWARE_INFO વિભાગની મુલાકાત લઈ શકો છો.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" />, Google સાથે કયો ડેટા શેર કરી શકે છે અને તેનો ઉપયોગ કેવી રીતે કરવામાં આવે છે, તેના વિશે વધુ વિગતો જાણવા g.co/xxxxxની મુલાકાત લો<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">જોખમી ફાઇલ રાખો</translation>
 <translation id="6532101170117367231">Google ડ્રાઇવ પર સાચવો</translation>
 <translation id="6532106788206463496">ફેરફારો સાચવો</translation>
@@ -6012,15 +6001,6 @@
 <translation id="7258192266780953209">રૂપાંતરણો</translation>
 <translation id="7258225044283673131">ઍપ્લિકેશન ચાલી રહી નથી. ઍપ બંધ કરવા માટે "ફરજિયાત બંધ" પસંદ કરો.</translation>
 <translation id="7262004276116528033">આ સાઇન-ઇન સેવા <ph name="SAML_DOMAIN" /> દ્વારા હોસ્ટ થયેલી છે.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />સમસ્યા નિવારણ કરવાના આ પગલાં અજમાવી જુઓ:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />તમારા ડિવાઇસમાં HDD, SSD અથવા eMMC જેવા કામ કરતા આંતરિક સ્ટોરેજ શામેલ હોવાની ખાતરી કરો
-    <ph name="LIST_ITEM" />તમારા આંતરિક સ્ટોરેજ ડિવાઇસમાં 16GB કરતાં વધુ સ્પેસ છે, તે ચેક કરો
-    <ph name="LIST_ITEM" />જો પ્રત્યક્ષ રીતે ઍક્સેસિબલ હોય, તો આંતરિક સ્ટોરેજ સાથેનું કનેક્શન ચેક કરો
-    <ph name="LIST_ITEM" />તમે પ્રમાણિત મૉડલનો ઉપયોગ કરી રહ્યાં છો તેની ખાતરી કરો અને ઇન્સ્ટૉલ નોંધ ચેક કરો
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />વધુ સહાય માટે, અહીં મુલાકાત લો: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">વર્ચ્યુઅલ મશીન ઇન્સ્ટૉલ કરી શક્યાં નહીં. કૃપા કરીને ફરી પ્રયાસ કરો અથવા તમારા વ્યવસ્થાપકનો સંપર્ક કરો. ભૂલનો કોડ: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">તમારી ફિંગરપ્રિન્ટના વિવિધ ભાગ ઉમેરવા માટે તમારી આંગળી ઉપાડતા રહો</translation>
 <translation id="7268127947535186412">આ સેટિંગને ડિવાઇસના માલિક દ્વારા મેનેજ કરવામાં આવે છે.</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index a745a11..5d7e3f0 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -977,6 +977,7 @@
 <translation id="1965624977906726414">कोई विशेष अनुमति नहीं है.</translation>
 <translation id="1969654639948595766">WebRTC लेख लॉग (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation>
 <translation id="1970368523891847084">आप वीडियो मोड में हैं</translation>
+<translation id="1972325230031091483">आपको ज़्यादा तेज़ी से ब्राउज़ करने का अनुभव मिलता है, क्योंकि कॉन्टेंट आपके हाल ही में देखे गए वेब पेज के हिसाब से लोड होता है</translation>
 <translation id="197288927597451399">रखें</translation>
 <translation id="1973763416111613016"><ph name="FILE_NAME" /> को सुरक्षित तरीके से डाउनलोड नहीं किया जा सकता. डाउनलोड बार वाले हिस्से पर जाने के लिए Shift+F6 दबाएं.</translation>
 <translation id="1974043046396539880">CRL वितरण बिंदु</translation>
@@ -1201,6 +1202,7 @@
 <translation id="2191754378957563929">चालू है</translation>
 <translation id="2192505247865591433">द्वारा:</translation>
 <translation id="2193365732679659387">विश्‍वास सेटिंग</translation>
+<translation id="2194856509914051091">इन बातों का ध्यान रखें</translation>
 <translation id="2195331105963583686">आप उस समय के बाद भी, इस <ph name="DEVICE_TYPE" /> का इस्तेमाल कर पाएंगे. हालांकि, इसमें अपने आप होने वाले सॉफ़्टवेयर और सुरक्षा अपडेट नहीं मिलेंगे</translation>
 <translation id="2195729137168608510">ईमेल सुरक्षा</translation>
 <translation id="2198625180564913276">प्रोफ़ाइल जोड़ी जा रही है. इसमें कुछ मिनट लग सकते हैं.</translation>
@@ -1345,6 +1347,7 @@
 <translation id="2326931316514688470">और ऐप्लिकेशन रीलोड करें</translation>
 <translation id="2327492829706409234">ऐप्लिकेशन चालू करें</translation>
 <translation id="2328561734797404498"><ph name="APP_NAME" /> का इस्तेमाल करने के लिए, कृपया अपने डिवाइस को रीस्टार्ट करें.</translation>
+<translation id="2328636661627946415">गुप्त मोड में ब्राउज़ करने पर साइटें, कुकी का इस्तेमाल सिर्फ़ अपनी साइट पर आपकी ब्राउज़िंग गतिविधि देखने के लिए कर सकती हैं. गुप्त मोड वाला सेशन खत्म होने पर कुकी अपने-आप मिट जाती हैं.</translation>
 <translation id="2329597144923131178">अपने सभी डिवाइस पर बुकमार्क, इतिहास, पासवर्ड और दूसरी तरह की सेटिंग पाने के लिए साइन इन करें</translation>
 <translation id="2332131598580221120">स्टोर में देखें</translation>
 <translation id="2332192922827071008">'प्राथमिकताएं' खोलें</translation>
@@ -2327,7 +2330,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> आपके साथ <ph name="ATTACHMENTS" /> शेयर कर रहा है.}one{<ph name="DEVICE_NAME" /> आपके साथ <ph name="ATTACHMENTS" /> शेयर कर रहा है.}other{<ph name="DEVICE_NAME" /> आपके साथ <ph name="ATTACHMENTS" /> शेयर कर रहा है.}}</translation>
 <translation id="3364986687961713424">आपके एडमिन से: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl या फिर Alt का इस्तेमाल करें</translation>
-<translation id="3367057768351048705">साइटें सिर्फ़ आपकी कुकी का इस्तेमाल कर सकती हैं, ताकि वे अपनी साइटों पर आपकी ब्राउज़िंग गतिविधि देख सकें</translation>
 <translation id="3368922792935385530">कनेक्ट है</translation>
 <translation id="3369067987974711168">इस पोर्ट की और कार्रवाइयां दिखाएं</translation>
 <translation id="3369624026883419694">होस्ट को परिष्कृत कर रहा है...</translation>
@@ -2395,7 +2397,7 @@
 <translation id="3429160811076349561">ट्रायल की सुविधाएं बंद हैं</translation>
 <translation id="3429271624041785769">वेब कॉन्टेंट की भाषाएं</translation>
 <translation id="3429275422858276529">बाद में इस पेज को आसानी से पाने के लिए इसे बुकमार्क करें</translation>
-<translation id="343115368966109153">क्या आपको <ph name="FILE_NAME" /> को डाउनलोड करना है? इस डिवाइस को इस्तेमाल करने वाला हर व्यक्ति इसे देख सकता है.</translation>
+<translation id="343115368966109153"><ph name="FILE_NAME" /> डाउनलोड करें? इस डिवाइस को इस्तेमाल करने वाला हर व्यक्ति इसे देख सकता है.</translation>
 <translation id="3432227430032737297">दिखाई गईं सभी कुकी निकालें</translation>
 <translation id="3432762828853624962">शेयर किए गए वर्कर</translation>
 <translation id="3433621910545056227">ओह!  सिस्टम डिवाइस इंस्टॉलेशन-समय विशेषता लॉक स्थापित नहीं कर पाया.</translation>
@@ -2657,6 +2659,7 @@
 <translation id="3694027410380121301">'पिछला टैब' चुनें</translation>
 <translation id="369489984217678710">पासवर्ड और दूसरे साइन-इन डेटा</translation>
 <translation id="369522892592566391">{NUM_FILES,plural, =0{सुरक्षा जांच पूरी हो गई. आपका डेटा अपलोड कर दिया जाएगा.}=1{सुरक्षा जांच पूरी हो गई. आपकी फ़ाइल अपलोड कर दी जाएगी.}one{सुरक्षा जांच पूरी हो गई. आपकी फ़ाइलें अपलोड कर दी जाएंगी.}other{सुरक्षा जांच पूरी हो गईं. आपकी फ़ाइलें अपलोड कर दी जाएंगी.}}</translation>
+<translation id="3698471669415859717">आपने इस कंट्रोल से जुड़ी पूरी जानकारी देख ली है</translation>
 <translation id="3699624789011381381">ईमेल पता</translation>
 <translation id="3699920817649120894">सिंक करना और मनमुताबिक बनाना बंद करें?</translation>
 <translation id="3700888195348409686">पेश है (<ph name="PAGE_ORIGIN" />)</translation>
@@ -2962,13 +2965,12 @@
 <translation id="3975565978598857337">दिए गए क्षेत्र के लिए सर्वर से संपर्क नहीं हो पाया</translation>
 <translation id="3976108569178263973">कोई भी प्रिंटर उपलब्ध नहीं है</translation>
 <translation id="397703832102027365">अंतिम रूप दिया जा रहा है...</translation>
+<translation id="3977145907578671392">ऐसा हो सकता है कि ये सुविधाएं गुप्त मोड में कुछ साइटों पर काम न करें</translation>
 <translation id="3977886311744775419">इस नेटवर्क प्रकार पर अपडेट अपने आप डाउनलोड नहीं होते, लेकिन आप मैन्युअल रूप से अपडेट के लिए देख सकते हैं.</translation>
 <translation id="3979395879372752341">नया एक्सटेंशन जोड़ा गया (<ph name="EXTENSION_NAME" />)</translation>
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> चालू करें</translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" /> तक आस-पास के डिवाइस को <ph name="DEVICE_NAME" /> के तौर पर दिखेगा...</translation>
 <translation id="3981760180856053153">सेव करने का गलत तरीका दर्ज किया गया.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />कोई गड़बड़ी हुई है और <ph name="DEVICE_OS" /> इंस्टॉल नहीं किया जा सका.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ज़्यादा मदद के लिए, इस पर जाएं: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">कुछ आसान चरणों में अपना ब्राउज़र सेट करें</translation>
 <translation id="3983400541576569538">शायद कुछ ऐप्लिकेशन का डेटा खो गया है</translation>
 <translation id="3983586614702900908">किसी अज्ञात विक्रेता के डिवाइस</translation>
@@ -3888,9 +3890,6 @@
 <translation id="4992984395680162305">ये डिवाइस, एक क्यूआर कोड स्कैन करके जोड़े गए हैं.</translation>
 <translation id="4994474651455208930">साइटों को प्रोटोकॉल के लिए सामान्य हैंडलर बनने के लिए पूछने की अनुमति दें</translation>
 <translation id="4994754230098574403">सेट अप किया जा रहा है</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />नाम दर्ज करने से पहले, आपको TPM हटाना होगा, ताकि <ph name="DEVICE_OS" /> को डिवाइस का मालिकाना हक़ मिल सके.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />आप TPM डिवाइस को पूरी तरह बंद भी कर सकते हैं. आपका डेटा, सॉफ़्टवेयर एन्क्रिप्ट (सुरक्षित) करने के तरीके की मदद से सुरक्षित सेव कर लिया जाएगा. हालांकि, हार्डवेयर-बैक्ड सर्टिफ़िकेट जैसी सुरक्षा से जुड़ी सुविधाएं बंद कर दी जाएंगी.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />आप अपनी TPM सेटिंग बदल सकते हैं. इसके लिए, आपको सेटिंग को फिर से चालू करके, सिस्टम BIOS/UEFI सेटिंग डालनी होगी. डिवाइस मॉडल के आधार पर तरीके अलग-अलग हो सकते हैं. ज़्यादा जानकारी के लिए, फिर से चालू करने से पहले, <ph name="DEVICE_OS" /> दस्तावेज़ को किसी अलग डिवाइस पर खोलें: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> का कोई वीएम नहीं मिला}=1{<ph name="VM_TYPE" /> का 1 वीएम मिला: <ph name="VM_NAME_LIST" />}one{<ph name="VM_TYPE" /> का {NUM_VMS} वीएम मिला: <ph name="VM_NAME_LIST" />}other{<ph name="VM_TYPE" /> के {NUM_VMS} वीएम मिले: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">कोई इंटरनेट कनेक्शन नहीं.</translation>
 <translation id="4998430619171209993">चालू है</translation>
@@ -3911,6 +3910,7 @@
 <translation id="5018207570537526145">एक्सटेंशन की वेबसाइट खोलें</translation>
 <translation id="5018526990965779848">इस्तेमाल और गड़बड़ी की जानकारी से जुड़ा डेटा भेजें. Google को गड़बड़ी की जानकारी, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने-आप भेजकर, अपने Android अनुभव को बेहतर बनाने में मदद करें. यह सिस्टम और ऐप्लिकेशन की स्थिरता बढ़ाने और दूसरे सुधार करने में मदद करेगा. इकट्ठा किया गया कुछ डेटा, Google ऐप्लिकेशन और पार्टनर की भी मदद करेगा. जैसे, Android डेवलपर. अगर आपकी दूसरी 'वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा आपके Google खाते में सेव किया जा सकता है.</translation>
 <translation id="5021750053540820849">अब तक अपडेट नहीं किया गया</translation>
+<translation id="5024511550058813796">सिंक किए हुए सभी डिवाइसों पर आपकी खोज का इतिहास मौजूद होगा, ताकि जो काम किया जा रहा था उसे जारी रखा जा सके</translation>
 <translation id="5026492829171796515">Google खाता जोड़ने के लिए साइन इन करें</translation>
 <translation id="5026806129670917316">वाई-फ़ाई चालू करें</translation>
 <translation id="5026874946691314267">इसे दोबारा न दिखाएं</translation>
@@ -4008,7 +4008,6 @@
 <translation id="5127620150973591153">सुरक्षित कनेक्शन आईडी: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">समन्वयन बंद है</translation>
 <translation id="5127881134400491887">नेटवर्क कनेक्शन प्रबंधित करें</translation>
-<translation id="5128774403617662387">शुरू करने से पहले, पक्का करें कि आपने डेटा का बैक अप ले लिया है. <ph name="DEVICE_OS" /> इंस्टॉल करने से, आपकी हार्ड ड्राइव का सारा पुराना डेटा मिट जाएगा. g.co/TBD पर जाकर ज़्यादा जानें.</translation>
 <translation id="512903556749061217">अनुलग्न</translation>
 <translation id="5130080518784460891">ईटेन</translation>
 <translation id="5130675701626084557">प्रोफ़ाइल को डाउनलोड नहीं किया जा सका. कृपया बाद में कोशिश करें या मदद के लिए, मोबाइल और इंटरनेट सेवा देने वाली कंपनी से संपर्क करें.</translation>
@@ -4432,6 +4431,7 @@
 <translation id="5571066253365925590">ब्लूटूथ सक्षम किया गया</translation>
 <translation id="5571092938913434726">ग्लोबल मीडिया कंट्रोल</translation>
 <translation id="5571832155627049070">अपनी प्रोफ़ाइल को पसंद के मुताबिक बनाएं</translation>
+<translation id="5572648434713976849">आपको पता बार में बेहतर सुझाव मिलेंगे</translation>
 <translation id="5572851009514199876">कृपया Chrome शुरू करके उसमें साइन इन करें ताकि Chrome देख सके कि क्या आपके पास यह साइट एक्सेस करने की अनुमति है.</translation>
 <translation id="5575473780076478375">गुप्‍त एक्सटेंशन: <ph name="EXTENSION_NAME" /></translation>
 <translation id="5575528586625653441">डेमो रजिस्ट्रेशन अनुरोध में कोई परेशानी हुई.</translation>
@@ -4524,7 +4524,6 @@
 <translation id="5659593005791499971">ईमेल</translation>
 <translation id="5659833766619490117">इस पेज का अनुवाद नहीं किया जा सका</translation>
 <translation id="5662513737565158057">Linux ऐप्लिकेशन के काम करने का तरीका बदलें.</translation>
-<translation id="5667490069342183561">किसी भी तरह के डेटा का नुकसान होने पर, Google ज़िम्मेदार नहीं होगा. हो सकता है कि <ph name="DEVICE_OS" />, ऐसे मॉडल पर काम न करे जो सर्टिफ़ाइड नहीं हैं. g.co/TBD पर जाकर ज़्यादा जानें.</translation>
 <translation id="5667546120811588575">Google Play सेट अप किया जा रहा है...</translation>
 <translation id="5668351004957198136">हमें पता नहीं चला कि सॉफ़्टवेयर चलाने के लिए क्या ज़रूरी है</translation>
 <translation id="56702779821643359">अपने आस-पास मौजूद लोगों के साथ फ़ाइलें शेयर करें. <ph name="LINK_BEGIN" />ज़्यादा जानें<ph name="LINK_END" /></translation>
@@ -4902,6 +4901,7 @@
 <translation id="6072442788591997866">इस डिवाइस पर <ph name="APP_NAME" /> को अनुमति नहीं है. अपने एडमिन से संपर्क करें. गड़बड़ी कोड: <ph name="ERROR_CODE" />.</translation>
 <translation id="6073451960410192870">रिकॉर्डिंग बंद करें</translation>
 <translation id="6073903501322152803">सुलभता सुविधाएं जोड़ें</translation>
+<translation id="6075418785668063462">निजता से जुड़ी गाइड देखें</translation>
 <translation id="6075731018162044558">ओह!  सिस्टम इस डिवाइस के लिए, लंबे समय तक चलने वाला एक API (एपीआई) एक्सेस टोकन नहीं पा सका.</translation>
 <translation id="6075907793831890935"><ph name="HOSTNAME" /> नामक डिवाइस से डेटा का लेन-देन करें</translation>
 <translation id="6076175485108489240">जगह की जानकारी का इस्तेमाल करें. जगह की जानकारी देखने की मंज़ूरी वाले ऐप्लिकेशन और सेवाओं को अपने डिवाइस की जगह की जानकारी का इस्तेमाल करने दें. Google, जगह की जानकारी को ज़्यादा बेहतर बनाने और उससे जुड़ी सेवाओं में सुधार करने के लिए समय-समय पर जगह की जानकारी का डेटा इकट्ठा कर सकता है. साथ ही, वह आपकी पहचान ज़ाहिर किए बिना इस डेटा का इस्तेमाल भी कर सकता है. <ph name="BEGIN_LINK1" />ज़्यादा जानें<ph name="END_LINK1" /></translation>
@@ -5336,9 +5336,6 @@
 <translation id="6528179044667508675">परेशान न करें</translation>
 <translation id="652948702951888897">Chrome इतिहास</translation>
 <translation id="6530186581263215931">ये सेटिंग आपके एडमिन ने लागू की हैं</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />सबसे बेहतर अनुभव देने के लिए, <ph name="DEVICE_OS" /> डिवाइसों के बारे में हार्डवेयर डेटा इकट्ठा करता है. इसके बाद, यह तय करने के लिए कि कौनसा अपडेट डिलीवर होना चाहिए, इस डेटा को Google के साथ शेयर किया जाता है. विकल्प के तौर पर, Google को यह डेटा इस्तेमाल करने की अनुमति, <ph name="DEVICE_OS" /> में सुधार और सहायता करने जैसे अतिरिक्त उद्देश्यों के लिए भी मिल सकती है.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />इस डिवाइस पर लॉग इन करके, chrome://system के CLOUDREADY_HARDWARE_INFO सेक्शन में जाकर, वह डेटा देखा जा सकता है जो फ़िल्टर करने से जुड़ी शर्तों को अपडेट करने के लिए Google को भेजा जाता है. इसके अलावा, उन उदाहरणों को भी देखा जा सकता है जिसके लिए Google के साथ डेटा शेयर किया गया हो.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />इस बारे में ज़्यादा जानने के लिए कि <ph name="DEVICE_OS" /> ने Google के साथ कौनसा डेटा शेयर किया है और उसका कैसे इस्तेमाल किया जाएगा, g.co/xxxxx पर जाएं<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">खतरनाक फ़ाइल रखें</translation>
 <translation id="6532101170117367231">Google डिस्क में सेव करें</translation>
 <translation id="6532106788206463496">बदलाव सेव करें</translation>
@@ -5414,6 +5411,7 @@
 <translation id="6602937173026466876">अपने प्रिंटर ऐक्सेस करें</translation>
 <translation id="6602956230557165253">नेविगेट करने के लिए बाईं और दाईं 'तीर का निशान' वाली कुंजियों का इस्तेमाल करें.</translation>
 <translation id="6602998402703530379"><ph name="DEVICE_COUNT" /> में से <ph name="DEVICE_INDEX" /> डिवाइस, <ph name="DEVICE_NAME" />, वीडियो कैमरा.</translation>
+<translation id="6603185457265641428">चुनें कि इतिहास को सिंक करना है या नहीं</translation>
 <translation id="6605847144724004692">किसी भी उपयोगकर्ता ने अभी तक रेट नहीं किया है.</translation>
 <translation id="6606671997164410857">ऐसा लगता है कि आपने पहले ही किसी दूसरे डिवाइस पर Google Assistant को सेट अप कर लिया है. 'स्क्रीन पर दिखने वाला कॉन्टेंट इस्तेमाल करें' चालू करके, Assistant से ज़्यादा फ़ायदे पाएं.</translation>
 <translation id="6607831829715835317">ज़्यादा टू&amp;ल</translation>
@@ -5452,6 +5450,7 @@
 <translation id="6644846457769259194">आपका डिवाइस अपडेट हो रहा है (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="6645437135153136856">चुना गया 'Google क्लाउड प्रिंट' डिवाइस अब काम नहीं करता है. <ph name="BR" /> अपने कंप्यूटर की सिस्टम सेटिंग में जाकर प्रिंटर सेटअप करके देखें.</translation>
 <translation id="6647228709620733774">Netscape प्रमाणन प्राधिकरण खण्डन यूआरएल</translation>
+<translation id="6647441008198474441">इस बात का अंदाज़ा लगाने के लिए कि आपको कौन-कौनसी साइटें पसंद हैं, Google को आपके देखे गए पेजों के यूआरएल भेजे जाते हैं</translation>
 <translation id="6648911618876616409">एक ज़रूरी अपडेट इंस्टॉल होने के लिए तैयार है. शुरू करने के लिए साइन इन करें.</translation>
 <translation id="6649018507441623493">बस एक सेकंड...</translation>
 <translation id="6650234781371031356"><ph name="WEBSITE" /> के लिए आपका पासवर्ड इस डिवाइस और आपके Google खाते में सेव हो गया है. आप इनमें से किसे मिटाना चाहते हैं?</translation>
@@ -5762,6 +5761,7 @@
 <translation id="6972887130317925583">हैक या चोरी हुआ पासवर्ड बदल दिया गया है. आप जब चाहें, <ph name="SETTINGS" /> में जाकर अपने पासवर्ड की जांच कर सकते हैं.</translation>
 <translation id="697312151395002334">पॉप-अप भेजने और दूसरे वेबलिंक पर भेजने वाले यूआरएल का इस्तेमाल करने की अनुमति है</translation>
 <translation id="6973611239564315524">Debian 10 (Buster) के लिए एक अपग्रेड उपलब्ध है</translation>
+<translation id="69739764870135975">अगर Google आपका डिफ़ॉल्ट सर्च इंजन भी है, तो आपको बेहतर और कॉन्टेक्स्ट के हिसाब से सुझाव मिलेंगे</translation>
 <translation id="6974609594866392343">ऑफ़लाइन डेमो मोड</translation>
 <translation id="697508444536771064">Linux को शट डाउन करें</translation>
 <translation id="6977739184256564679"><ph name="DEVICE_COUNT" /> में से <ph name="DEVICE_INDEX" /> डिवाइस, <ph name="DEVICE_NAME" />, टैबलेट.</translation>
@@ -6003,6 +6003,7 @@
 <translation id="7239108166256782787"><ph name="DEVICE_NAME" /> ने ट्रांसफ़र रद्द कर दिया</translation>
 <translation id="7240339475467890413">नए हॉटस्पॉट से कनेक्ट करें?</translation>
 <translation id="7241389281993241388">क्लाइंट प्रमाणपत्र लेकर आने के लिए, कृपया <ph name="TOKEN_NAME" /> में साइन इन करें.</translation>
+<translation id="7241763419756062043">अपनी खोज और ब्राउज़िंग की क्वालिटी चुनें</translation>
 <translation id="7243632151880336635">साफ़ करें और प्रस्थान करें</translation>
 <translation id="7243784282103630670">Linux को अपग्रेड नहीं किया जा सका. हम आपके बैक अप का इस्तेमाल करके कंटेनर को पहले जैसा करेंगे.</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (श्रेष्ठ)</translation>
@@ -6027,15 +6028,6 @@
 <translation id="7258192266780953209">ट्रांसफ़र्मेशन</translation>
 <translation id="7258225044283673131">ऐप्लिकेशन काम नहीं कर रहा है. ऐप्लिकेशन को बंद करने के लिए "ज़बरदस्ती बंद करें" चुनें.</translation>
 <translation id="7262004276116528033">यह साइन इन सेवा <ph name="SAML_DOMAIN" /> की मदद से होस्‍ट की गई है</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />समस्या हल करने का यह तरीका आज़माएं:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />पक्का करें कि आपके डिवाइस में एचडीडी, एसएसडी या ईएमएमसी जैसे स्टोरेज मौजूद हों
-    <ph name="LIST_ITEM" />जांचें कि आपके डिवाइस का स्टोरेज 16GB से ज़्यादा है या नहीं
-    <ph name="LIST_ITEM" />अगर ऐक्सेस कर सकें, तो डिवाइस के स्टोरेज का कनेक्शन जांचें
-    <ph name="LIST_ITEM" />पक्का करें कि सर्टिफ़ाइड मॉडल का इस्तेमाल किया जा रहा हो और इंस्टॉल करते समय दिखाए जाने वाले नोट की जांच करें
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ज़्यादा मदद के लिए इस पर जाएं: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">वर्चुअल मशीन को इंस्टॉल नहीं किया जा सका. कृपया फिर से कोशिश करें या अपने एडमिन से संपर्क करें. गड़बड़ी कोड: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">अपने फ़िंगरप्रिंट के अलग-अलग हिस्सों को कैप्चर करने के लिए, अपनी उंगली को उठाते रहें</translation>
 <translation id="7268127947535186412">डिवाइस के मालिक इस सेटिंग का प्रबंधन करते हैं.</translation>
@@ -6117,6 +6109,7 @@
 <translation id="7360233684753165754"><ph name="PRINTER_NAME" /> पर <ph name="PAGE_NUMBER" /> पेज हैं</translation>
 <translation id="7361297102842600584"><ph name="PLUGIN_NAME" /> चलाने के लिए राइट-क्लिक करें</translation>
 <translation id="7362387053578559123">साइटें, ब्लूटूथ डिवाइसों से कनेक्ट करने की अनुमति मांग सकती हैं</translation>
+<translation id="7363349185727752629">आपकी निजता के विकल्पों की गाइड</translation>
 <translation id="7364591875953874521">डेटा को ऐक्सेस करने का अनुरोध किया गया</translation>
 <translation id="7364745943115323529">कास्‍ट करें...</translation>
 <translation id="7364796246159120393">फ़ाइल चुनें</translation>
@@ -6668,6 +6661,7 @@
 <translation id="7885253890047913815">हाल ही के गंतव्य</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{एक आइटम}one{# आइटम}other{# आइटम}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
+<translation id="7887174313503389866">गाइड की मदद से, निजता और सुरक्षा से जुड़े मुख्य कंट्रोल के बारे में जानकारी पाएं. ज़्यादा विकल्पों के लिए, हर एक सेटिंग पर जाएं.</translation>
 <translation id="7887334752153342268">डुप्लीकेट</translation>
 <translation id="7887864092952184874">ब्लूटूथ माउस युग्मित किया गया</translation>
 <translation id="7889371445710865055">लिखी जाने वाली भाषा बदलना</translation>
@@ -7211,6 +7205,7 @@
 <translation id="8457451314607652708">बुकमार्क आयात करें</translation>
 <translation id="8458341576712814616">शॉर्टकट</translation>
 <translation id="8458627787104127436">सभी यूआरएल (<ph name="URL_COUNT" />) नई विंडो में खोलें</translation>
+<translation id="8460448946170646641">निजता और सुरक्षा से जुड़े मुख्य कंट्रोल देखें</translation>
 <translation id="8460490661223303637">मेमोरी बचाने के लिए, Chrome ने कुछ कॉन्टेंट हटा दिया है</translation>
 <translation id="8460932807646981183">सर्च इंजन और साइट खोज को मैनेज करें</translation>
 <translation id="84613761564611563">नेटवर्क कॉन्फ़िगर यूज़र इंटरफ़ेस (यूआई) का अनुरोध किया गया, कृृपया प्रतीक्षा करें...</translation>
@@ -7533,6 +7528,7 @@
 <translation id="8798099450830957504">सामान्य</translation>
 <translation id="8800004011501252845">इसके लिए गंतव्य दिखा रहा है:</translation>
 <translation id="8800034312320686233">साइट काम नहीं कर रही है?</translation>
+<translation id="8803526663383843427">यह सुविधा चालू होने पर</translation>
 <translation id="8803953437405899238">एक क्लिक में नया टैब खोलें</translation>
 <translation id="8804999695258552249">{NUM_TABS,plural, =1{टैब को किसी और विंडो पर ले जाएं}one{टैब को किसी और विंडो पर ले जाएं}other{टैब को किसी और विंडो पर ले जाएं}}</translation>
 <translation id="8805140816472474147">सिंक शुरू करने के लिए सिंक सेटिंग की पुष्टि करें.</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 63c67c4..5675e9ea 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -2315,7 +2315,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> dijeli <ph name="ATTACHMENTS" /> s vama.}one{<ph name="DEVICE_NAME" /> dijeli <ph name="ATTACHMENTS" /> s vama.}few{<ph name="DEVICE_NAME" /> dijeli <ph name="ATTACHMENTS" /> s vama.}other{<ph name="DEVICE_NAME" /> dijeli <ph name="ATTACHMENTS" /> s vama.}}</translation>
 <translation id="3364986687961713424">Od vašeg administratora: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Upotrijebite Ctrl ili Alt</translation>
-<translation id="3367057768351048705">Pojedina web-lokacija može upotrebljavati vaše kolačiće samo za uvid u vašu aktivnost pregledavanja na toj web-lokaciji</translation>
 <translation id="3368922792935385530">Spojeno</translation>
 <translation id="3369067987974711168">Prikaži više radnji za ovaj priključak</translation>
 <translation id="3369624026883419694">Traženje domaćina...</translation>
@@ -2956,8 +2955,6 @@
 <translation id="3979748722126423326">Omogući <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Vidljiv uređajima u blizini pod nazivom <ph name="DEVICE_NAME" /> <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Unesena je nevažeća vrsta spremanja.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Došlo je do pogreške i <ph name="DEVICE_OS" /> nije se instalirao.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ako vam je potrebna dodatna pomoć, posjetite g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Postavite preglednik u nekoliko jednostavnih koraka</translation>
 <translation id="3983400541576569538">Podaci iz nekih aplikacija možda su izgubljeni</translation>
 <translation id="3983586614702900908">uređaji nepoznatog dobavljača</translation>
@@ -3876,9 +3873,6 @@
 <translation id="4992984395680162305">Uređaji su povezani skeniranjem QR koda.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Prije prijave trebate izbrisati TPM kako bi <ph name="DEVICE_OS" /> mogao preuzeti uređaj.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Možete i posve isključiti TPM uređaj. Vaši će se podaci i dalje sigurno pohranjivati uz softversko šifriranje, no određene sigurnosne značajke kao što su hardverski certifikati bit će onemogućene.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Postavke TPM-a možete promijeniti tako da ponovo pokrenete uređaj i uđete u postavke sustava za BIOS/UEFI. Postupak ovisi o modelu uređaja. Za više informacija otvorite dokumentaciju za <ph name="DEVICE_OS" /> na nekom drugom uređaju prije ponovnog pokretanja: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nije pronađen nijedan <ph name="VM_TYPE" /> VM}=1{Pronađen je jedan <ph name="VM_TYPE" /> VM: <ph name="VM_NAME_LIST" />}one{Pronađen je {NUM_VMS} <ph name="VM_TYPE" /> VM: <ph name="VM_NAME_LIST" />}few{Pronađena su {NUM_VMS} <ph name="VM_TYPE" /> VM-a: <ph name="VM_NAME_LIST" />}other{Pronađeno je {NUM_VMS} <ph name="VM_TYPE" /> VM-ova: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Nema internetske veze.</translation>
 <translation id="4998430619171209993">Uključeno</translation>
@@ -3996,7 +3990,6 @@
 <translation id="5127620150973591153">ID sigurne veze: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sinkronizacija je isključena</translation>
 <translation id="5127881134400491887">upravljati mrežnim vezama</translation>
-<translation id="5128774403617662387">Prije nego što počnete, izradite sigurnosnu kopiju podataka. Instaliranjem OS-a <ph name="DEVICE_OS" /> prebrisat će se vaš tvrdi disk. Saznajte više na stranici g.co/TBD.</translation>
 <translation id="512903556749061217">povezano</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profil se nije mogao preuzeti. Pokušajte ponovo kasnije ili tražite pomoć od mobilnog operatera.</translation>
@@ -4512,7 +4505,6 @@
 <translation id="5659593005791499971">e-pošta</translation>
 <translation id="5659833766619490117">Stranicu nije moguće prevesti</translation>
 <translation id="5662513737565158057">Promijenite način rada Linux aplikacija.</translation>
-<translation id="5667490069342183561">Google nije odgovoran ni za kakav gubitak podataka i <ph name="DEVICE_OS" /> možda neće funkcionirati na necertificiranim modelima. Saznajte više na stranici g.co/TBD.</translation>
 <translation id="5667546120811588575">Postavljanje Google Playa...</translation>
 <translation id="5668351004957198136">Pad</translation>
 <translation id="56702779821643359">Dijelite datoteke s ljudima u blizini. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
@@ -5324,9 +5316,6 @@
 <translation id="6528179044667508675">Ne ometaj</translation>
 <translation id="652948702951888897">Chromeova povijest</translation>
 <translation id="6530186581263215931">Te je postavke nametnuo vaš administrator</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Kako bi vam se omogućio najbolji doživljaj, sustav <ph name="DEVICE_OS" /> prikuplja hardverske podatke o uređajima i dijeli ih s Googleom kako bi odredio koja će ažuriranja provesti. Googleu možete i dopustiti upotrebu tih podataka u dodatne svrhe kao što su podrška za sustav <ph name="DEVICE_OS" /> i njegova poboljšanja te za usluge.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Možete se prijaviti na ovom uređaju i posjetiti odjeljak CLOUDREADY_HARDWARE_INFO u chrome://system da biste vidjeli koji se podaci šalju Googleu radi filtriranja ažuriranja te druge situacije u kojima odaberete dijeliti podatke s Googleom.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Za više pojedinosti o podacima koje sustav <ph name="DEVICE_OS" /> može dijeliti s Googleom te način njihovog korištenja posjetite stranicu g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Zadrži opasnu datoteku</translation>
 <translation id="6532101170117367231">Spremi na Google disk</translation>
 <translation id="6532106788206463496">Spremi izmjene</translation>
@@ -6015,15 +6004,6 @@
 <translation id="7258192266780953209">Transformacije</translation>
 <translation id="7258225044283673131">Aplikacija ne reagira. Odaberite "Prisilno zatvori" da biste zatvorili tu aplikaciju.</translation>
 <translation id="7262004276116528033">Tu uslugu prijave hostira <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Isprobajte ove upute za rješavanje problema:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Provjerite sadrži li vaš uređaj funkcionalnu internu pohranu kao što je HDD, SSD ili eMMC.
-    <ph name="LIST_ITEM" />Provjerite je li uređaj za internu pohranu veći od 16 GB.
-    <ph name="LIST_ITEM" />Provjerite vezu s internom pohranom, ako je fizički dostupna.
-    <ph name="LIST_ITEM" />Provjerite koristite li certificirani model i provjerite napomene o instaliranju.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ako vam je potrebna dodatna pomoć, posjetite g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Instalacija virtualnog računala nije uspjela. Pokušajte ponovo ili se obratite administratoru. Kôd pogreške: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Nastavite podizati prst da biste dodali različite dijelove otiska prsta</translation>
 <translation id="7268127947535186412">Tom postavkom upravlja vlasnik uređaja.</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index ae924389..af79c31 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -2325,7 +2325,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> <ph name="ATTACHMENTS" /> Önnel való megosztására készül.}other{<ph name="DEVICE_NAME" /> <ph name="ATTACHMENTS" /> Önnel való megosztására készül.}}</translation>
 <translation id="3364986687961713424">A rendszergazdától: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Vagy a Ctrl vagy az Alt billentyűt használja</translation>
-<translation id="3367057768351048705">A webhelyek használhatnak cookie-kat arra, hogy megfigyeljék az Ön saját webhelyükön végzett böngészési tevékenységeit</translation>
 <translation id="3368922792935385530">Kapcsolódva</translation>
 <translation id="3369067987974711168">A porttal kapcsolatos további műveletek megjelenítése</translation>
 <translation id="3369624026883419694">Szerver azonosítása folyamatban...</translation>
@@ -2965,8 +2964,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> engedélyezése</translation>
 <translation id="3981058120448670012">Ennyi ideig látható a közeli eszközök számára <ph name="DEVICE_NAME" /> néven: <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">A megadott mentéstípus érvénytelen.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Hiba történt, és nem sikerült telepíteni a következő rendszert: <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />További segítségért keresse fel a g.co/xxxxx webhelyet.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Néhány egyszerű lépésben beállíthatja böngészőjét</translation>
 <translation id="3983400541576569538">Egyes alkalmazások adatai elveszhetnek</translation>
 <translation id="3983586614702900908">ismeretlen szolgáltatótól származó eszközök</translation>
@@ -3886,9 +3883,6 @@
 <translation id="4992984395680162305">Ezek az eszközök QR-kód beolvasásával lettek összekapcsolva.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />A regisztráció előtt ki kell ürítenie a TPM-et, hogy a(z) <ph name="DEVICE_OS" /> tulajdonba vehesse az eszközt.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Arra is lehetősége van, hogy teljesen kikapcsolja a TPM-eszközt. Adatait biztonságosan, szoftveres titkosítással tárolja a rendszer, de bizonyos biztonsági funkciók (például a hardveresen támogatott tanúsítványok) letiltásra kerülnek.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />TPM-beállításait a rendszert újraindítva, majd a BIOS-/UEFI-beállításokba belépve módosíthatja. A lépések eszközmodellenként eltérők lehetnek. További információért az újraindítás előtt nyissa meg a(z) <ph name="DEVICE_OS" /> dokumentációját másik eszközön: [URL link].<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nem található <ph name="VM_TYPE" /> típusú VM}=1{1 <ph name="VM_TYPE" /> típusú VM található: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> típusú VM található: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Nincs internetkapcsolat.</translation>
 <translation id="4998430619171209993">Be</translation>
@@ -4006,7 +4000,6 @@
 <translation id="5127620150973591153">A biztonságos kapcsolat azonosítója: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Szinkronizálás kikapcsolva</translation>
 <translation id="5127881134400491887">Hálózati kapcsolatok kezelése</translation>
-<translation id="5128774403617662387">A telepítés megkezdése előtt gondoskodjon adatai biztonsági mentéséről. A(z) <ph name="DEVICE_OS" /> telepítése felülírja a merevlemezen tárolt adatokat. További információ: g.co/TBD.</translation>
 <translation id="512903556749061217">csatlakoztatva</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Nem sikerült a profil letöltése. Próbálja újra később, vagy forduljon segítségért a szolgáltatóhoz.</translation>
@@ -4524,7 +4517,6 @@
 <translation id="5659593005791499971">E-mail</translation>
 <translation id="5659833766619490117">Nem sikerült lefordítani az oldalt</translation>
 <translation id="5662513737565158057">A linuxos alkalmazások működésének módosítása.</translation>
-<translation id="5667490069342183561">A Google nem vállal felelősséget az adatvesztésért. Előfordulhat, hogy a(z) <ph name="DEVICE_OS" /> nem működik tanúsítvánnyal nem rendelkező modelleken. További információ: g.co/TBD.</translation>
 <translation id="5667546120811588575">A Google Play beállítása…</translation>
 <translation id="5668351004957198136">Sikertelen</translation>
 <translation id="56702779821643359">Megoszthat fájlokat az Önt körülvevő emberekkel. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation>
@@ -5336,9 +5328,6 @@
 <translation id="6528179044667508675">Ne zavarj</translation>
 <translation id="652948702951888897">Chrome-előzmények</translation>
 <translation id="6530186581263215931">Ezeket a beállításokat a rendszergazda kötelezővé tette</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />A legjobb felhasználói élmény biztosítása érdekében a <ph name="DEVICE_OS" /> hardveradatokat gyűjt az eszközökről, majd megosztja az adatokat a Google-lal, hogy meghatározhatók legyenek a szükséges frissítések. Önnek arra is lehetősége van, hogy engedélyezze a Google-nak az adatok egyéb célból való felhasználását (pl. a <ph name="DEVICE_OS" /> által nyújtott felhasználói élmény és szolgáltatás támogatása és fejlesztése érdekében).<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ha bejelentkezik az eszközön, megtekintheti a CLOUDREADY_HARDWARE_INFO szakaszt a chrome://system oldalon, ahol láthatja azokat az adatokat, amelyeket a frissítésszűrés érdekében és egyéb olyan alkalmakkor küld el a rendszer a Google-nak, amikor Ön úgy dönt, hogy adatokat oszt meg vele.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />A következő oldalon további információkhoz juthat azokról az adatokról, amelyeket a <ph name="DEVICE_OS" /> megoszthat a Google-lal, valamint az adatok felhasználásának részleteiről: g.co/xxxxx.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Veszélyes fájl megtartása</translation>
 <translation id="6532101170117367231">Mentés a Google Drive-ba</translation>
 <translation id="6532106788206463496">Módosítások mentése</translation>
@@ -6027,15 +6016,6 @@
 <translation id="7258192266780953209">Transzformációk</translation>
 <translation id="7258225044283673131">Az alkalmazás nem válaszol. A bezárásához válassza a „Bezárás most” gombot.</translation>
 <translation id="7262004276116528033">Ezt a bejelentkezési szolgáltatást a(z) <ph name="SAML_DOMAIN" /> biztosítja</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />A problémamegoldáshoz próbálkozzon a következő lépésekkel:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Győződjön meg róla, hogy eszközének van működőképes belső tárhelye (pl. HDD, SSD vagy eMMC).
-    <ph name="LIST_ITEM" />Ellenőrizze, hogy az eszköz belső tárhelyének mérete legalább 16 GB-e.
-    <ph name="LIST_ITEM" />Ha fizikailag hozzáférhető, ellenőrizze a belső tárhellyel fennálló összeköttetést.
-    <ph name="LIST_ITEM" />Győződjön meg róla, hogy tanúsítvánnyal rendelkező modellt használ, és tekintse át a telepítésre vonatkozó megjegyzéseket.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ha további segítségre van szüksége, látogasson el a következő oldalra: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Nem sikerült a virtuális gép telepítése. Próbálja újra, vagy forduljon rendszergazdájához. Hibakód: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Emelgesse az ujját az ujjlenyomat különböző részeinek hozzáadásához</translation>
 <translation id="7268127947535186412">Ezt a beállítást az eszköz tulajdonosa kezeli.</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index 1138219..ae03b4ec 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -2313,7 +2313,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> սարքը ձեզ է ուղարկում <ph name="ATTACHMENTS" />։}one{<ph name="DEVICE_NAME" /> սարքը ձեզ է ուղարկում <ph name="ATTACHMENTS" />։}other{<ph name="DEVICE_NAME" /> սարքը ձեզ է ուղարկում <ph name="ATTACHMENTS" />։}}</translation>
 <translation id="3364986687961713424">Ձեր ադմինիստրատորից. «<ph name="ADMIN_MESSAGE" />»</translation>
 <translation id="3365598184818502391">Օգտագործեք Ctrl կամ Alt</translation>
-<translation id="3367057768351048705">Կայքերը կարող են օգտագործել քուքիներ՝ միայն իրենց կայքերում ձեր գործողությունները հետագծելու համար։</translation>
 <translation id="3368922792935385530">Միացված է</translation>
 <translation id="3369067987974711168">Ցույց տալ ավելի շատ գործողություններ այս միացքի համար</translation>
 <translation id="3369624026883419694">Խնամորդի վերլուծում…</translation>
@@ -2954,8 +2953,6 @@
 <translation id="3979748722126423326">Միացնել <ph name="NETWORKDEVICE" />-ը</translation>
 <translation id="3981058120448670012">Մոտակա սարքերին տեսանելի է «<ph name="DEVICE_NAME" />» անունով <ph name="REMAINING_TIME" /> շարունակ…</translation>
 <translation id="3981760180856053153">Մուտքագրված է պահման սխալ տեսակ:</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Սխալի պատճառով չհաջողվեց տեղադրել <ph name="DEVICE_OS" />-ը։<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Լրացուցիչ օգնության համար այցելեք g.co/xxxxx էջ<ph name="END_PARAGRAPH2" />։</translation>
 <translation id="3982375475032951137">Կարգավորեք դիտարկիչը մի քանի պարզ քայլով</translation>
 <translation id="3983400541576569538">Որոշ հավելվածների տվյալներ կարող են կորել</translation>
 <translation id="3983586614702900908">սարքեր անհայտ վաճառողից</translation>
@@ -3875,9 +3872,6 @@
 <translation id="4992984395680162305">Այս սարքերը կապվել են QR կոդի սկանավորման միջոցով։</translation>
 <translation id="4994474651455208930">Թույլ տալ կայքերի գրանցումը որպես հաղորդակարգերի կանխադրված մշակիչներ</translation>
 <translation id="4994754230098574403">Կարգավորում</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Գրանցվելուց առաջ անհրաժեշտ է մաքրել TPM-ը, որպեսզի <ph name="DEVICE_OS" />-ը կարողանա կառավարել սարքը։<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Դուք կարող եք նաև TPM սարքն ամբողջությամբ անջատել։ Ձեր տվյալները ապահով կերպով կպահվեն ծրագրի գաղտնագրման միջոցով, սակայն անվտանգության որոշ գործառույթներ, օրինակ՝ սարքակազմի հավաստագրերը, կանջատվեն։<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Դուք կարող եք փոխել ձեր TPM-ի կարգավորումները՝ վերաբեռնելով համակարգը և մտնելով BIOS/UEFI-ի կարգավորումներ։ Կախված սարքի մոդելից՝ քայլերը կարող են տարբեր լինել։ Նախքան վերաբեռնելը կարող եք ծանոթանալ <ph name="DEVICE_OS" />-ի փաստաթղթերին՝ բացելով դրանք առանձին սարքում՝ [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> վիրտուալ մեքենաներ չեն գտնվել}=1{Գտնվել է 1 <ph name="VM_TYPE" /> վիրտուալ մեքենա՝ <ph name="VM_NAME_LIST" />}one{Գտնվել է {NUM_VMS} <ph name="VM_TYPE" /> վիրտուալ մեքենա՝ <ph name="VM_NAME_LIST" />}other{Գտնվել է {NUM_VMS} <ph name="VM_TYPE" /> վիրտուալ մեքենա՝ <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Կապ չկա</translation>
 <translation id="4998430619171209993">Միացված է</translation>
@@ -3995,7 +3989,6 @@
 <translation id="5127620150973591153">Անվտանգ միացման կոդ՝ <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Համաժամացումն անջատված է</translation>
 <translation id="5127881134400491887">Կառավարել ցանցի միացումները</translation>
-<translation id="5128774403617662387">Սկսելուց առաջ համոզվեք, որ ձեր տվյալները պահուստավորված են։ <ph name="DEVICE_OS" />-ը տեղադրելու դեպքում կոշտ սկավառակում առկա բոլոր տվյալները կվրագրվեն։ Իմացեք ավելին g.co/TBD էջում։</translation>
 <translation id="512903556749061217">կցված</translation>
 <translation id="5130080518784460891">Էտեն</translation>
 <translation id="5130675701626084557">Չհաջողվեց ներբեռնել պրոֆիլը։ Փորձեք մի փոքր ուշ կամ օգնության համար կապվեք օպերատորի հետ։</translation>
@@ -4513,7 +4506,6 @@
 <translation id="5659593005791499971">Էլփոստ</translation>
 <translation id="5659833766619490117">Չհաջողվեց թարգմանել այս էջը</translation>
 <translation id="5662513737565158057">Փոխեք Լինուքսի հավելվածների աշխատանքի հետ կապված կարգավորումները։</translation>
-<translation id="5667490069342183561">Google-ը պատասխանատվություն չի կրում տվյալների կորստի համար, իսկ <ph name="DEVICE_OS" />-ը կարող է չաշխատել չստուգված մոդելների վրա։ Իմացեք ավելին g.co/TBD էջում։</translation>
 <translation id="5667546120811588575">Google Play-ի կարգավորում...</translation>
 <translation id="5668351004957198136">Ստուգումը չի հաջողվել</translation>
 <translation id="56702779821643359">Կիսվեք ֆայլերով մոտակայքում գտնվող մարդկանց հետ։ <ph name="LINK_BEGIN" />Իմանալ ավելին<ph name="LINK_END" /></translation>
@@ -5325,9 +5317,6 @@
 <translation id="6528179044667508675">Չանհանգստացնել</translation>
 <translation id="652948702951888897">Chrome-ի պատմություն</translation>
 <translation id="6530186581263215931">Այս կարգավորումները պարտադրված են ձեր ադմինիստրատորի կողմից</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Լավագույն որակն ապահովելու համար <ph name="DEVICE_OS" />-ը հավաքում է սարքակազմի տվյալները և տրամադրում Google-ին, որն այդ տվյալների հիման վրա որոշում է, թե ինչ թարմացումներ է անհրաժեշտ տրամադրել։ Ցանկության դեպքում կարող եք նաև թույլատրել Google-ին օգտագործել այս տվյալներն այլ նպատակներով, օրինակ՝ <ph name="DEVICE_OS" />-ի աշխատանքի և սպասարկման որակը բարձրացնելու համար։<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Մտեք հաշիվ այս սարքում, անցեք chrome://system էջ և բացեք CLOUDREADY_HARDWARE_INFO բաժինը՝ տեսնելու, թե ինչ տվյալներ եք ուղարկում Google-ին, որպեսզի դրանց հիման վրա թարմացումներ ստանաք, և թե ինչ այլ նպատակներով կարող եք տվյալներ փոխանցել Google-ին։<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Եթե ուզում եք ավելին իմանալ, թե <ph name="DEVICE_OS" />-ն ինչ տվյալներ կարող է տրամադրել Google-ին, և ինչպես են դրանք օգտագործվում, այցելեք g.co/xxxxx էջ։<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Պահել վտանգավոր ֆայլը</translation>
 <translation id="6532101170117367231">Պահել Google Drive-ում</translation>
 <translation id="6532106788206463496">Պահել փոփոխությունները</translation>
@@ -6016,15 +6005,6 @@
 <translation id="7258192266780953209">Փոխակերպումներ</translation>
 <translation id="7258225044283673131">Հավելվածը չի արձագանքում: Ընտրեք «Ստիպողաբար փակել» տարբերակը:</translation>
 <translation id="7262004276116528033">Մուտքի ծառայությունը տրամադրում է <ph name="SAML_DOMAIN" />-ը</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Փորձեք կատարել անսարքությունների վերացման հետևյալ քայլերը․
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Համոզվեք, որ ձեր սարքն ունի աշխատող ներքին հիշողություն (HDD, SSD կամ eMMC)։
-    <ph name="LIST_ITEM" />Համոզվեք, որ ներքին հիշողության ծավալն առնվազն 16 ԳԲ է։
-    <ph name="LIST_ITEM" />Ստուգեք ներքին հիշողության հետ կապը՝ համոզվելու, որ այն ֆիզիկապես հասանելի է։
-    <ph name="LIST_ITEM" />Համոզվեք, որ օգտագործում եք հավաստագրված մոդել և ստուգեք տեղադրման նշումները։
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Լրացուցիչ օգնության համար այցելեք g.co/xxxxx էջ<ph name="END_PARAGRAPH2" />։</translation>
 <translation id="7267044199012331848">Չհաջողվեց տեղադրել վիրտուալ մեքենան։ Փորձեք նորից կամ դիմեք ձեր ադմինիստրատորին։ Սխալի կոդը՝ <ph name="ERROR_CODE" />։</translation>
 <translation id="7267875682732693301">Փոքր-ինչ տեղաշարժեք մատը՝ մատնահետքի տարբեր հատվածներ ավելացնելու համար</translation>
 <translation id="7268127947535186412">Այս կարգավորումը կառավարվում է սարքի սեփականատիրոջ կողմից:</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 798ed79c..15c1b6a 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> akan membagikan <ph name="ATTACHMENTS" /> kepada Anda.}other{<ph name="DEVICE_NAME" /> akan membagikan <ph name="ATTACHMENTS" /> kepada Anda.}}</translation>
 <translation id="3364986687961713424">Dari administrator Anda: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Gunakan Ctrl atau Alt</translation>
-<translation id="3367057768351048705">Situs hanya dapat menggunakan cookie untuk melihat aktivitas penjelajahan Anda di situs itu sendiri</translation>
 <translation id="3368922792935385530">Terhubung</translation>
 <translation id="3369067987974711168">Tampilkan tindakan lain untuk port ini</translation>
 <translation id="3369624026883419694">Mengontak host...</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326">Aktifkan <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Dapat dilihat oleh perangkat di sekitar sebagai <ph name="DEVICE_NAME" /> selama <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Jenis penyimpanan yang dimasukkan tidak valid.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Terjadi error dan <ph name="DEVICE_OS" /> tidak dapat diinstal.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Untuk mendapatkan bantuan lebih lanjut, buka: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Siapkan browser Anda dalam beberapa langkah mudah</translation>
 <translation id="3983400541576569538">Data dari beberapa aplikasi mungkin akan hilang</translation>
 <translation id="3983586614702900908">perangkat dari vendor tak dikenal</translation>
@@ -3889,9 +3886,6 @@
 <translation id="4992984395680162305">Perangkat ini ditautkan dengan memindai kode QR.</translation>
 <translation id="4994474651455208930">Izinkan situs meminta untuk menjadi penangan default bagi protokol</translation>
 <translation id="4994754230098574403">Menyiapkan</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Sebelum mendaftar, Anda perlu menghapus TPM agar <ph name="DEVICE_OS" /> dapat mengambil alih kepemilikan perangkat.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Anda juga dapat sepenuhnya menonaktifkan TPM di perangkat. Data Anda akan tetap disimpan secara aman dengan enkripsi software, tetapi fitur keamanan tertentu seperti sertifikat yang didukung hardware akan dinonaktifkan.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Anda dapat mengubah setelan TPM dengan memulai ulang dan masuk ke setelan BIOS/UEFI sistem. Langkah-langkah dapat berbeda bergantung pada model perangkat. Untuk info selengkapnya, buka dokumentasi <ph name="DEVICE_OS" /> di perangkat lain sebelum Anda memulai ulang: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Tidak ada VM <ph name="VM_TYPE" /> yang ditemukan}=1{1 VM <ph name="VM_TYPE" /> ditemukan: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} VM <ph name="VM_TYPE" /> ditemukan: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Tidak ada koneksi internet.</translation>
 <translation id="4998430619171209993">Aktif</translation>
@@ -4009,7 +4003,6 @@
 <translation id="5127620150973591153">ID koneksi aman: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sinkronisasi nonaktif</translation>
 <translation id="5127881134400491887">Mengelola koneksi jaringan</translation>
-<translation id="5128774403617662387">Sebelum memulai, pastikan Anda sudah mencadangkan data Anda. Menginstal <ph name="DEVICE_OS" /> akan menimpa semua data di hard drive. Pelajari lebih lanjut di g.co/TBD.</translation>
 <translation id="512903556749061217">terpasang</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profil tidak dapat didownload. Coba lagi nanti atau hubungi operator untuk mendapatkan bantuan.</translation>
@@ -4525,7 +4518,6 @@
 <translation id="5659593005791499971">Email</translation>
 <translation id="5659833766619490117">Halaman ini tidak dapat diterjemahkan</translation>
 <translation id="5662513737565158057">Mengubah cara kerja aplikasi Linux.</translation>
-<translation id="5667490069342183561">Google tidak bertanggung jawab atas hilangnya data apa pun, dan <ph name="DEVICE_OS" /> mungkin tidak akan berfungsi di model yang tidak tersertifikasi. Pelajari lebih lanjut di g.co/TBD.</translation>
 <translation id="5667546120811588575">Menyiapkan Google Play...</translation>
 <translation id="5668351004957198136">Gagal</translation>
 <translation id="56702779821643359">Bagikan file kepada pengguna di sekitar Anda. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation>
@@ -5337,9 +5329,6 @@
 <translation id="6528179044667508675">Jangan ganggu</translation>
 <translation id="652948702951888897">Histori Chrome</translation>
 <translation id="6530186581263215931">Setelan ini diberlakukan oleh administrator</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Untuk memberikan pengalaman terbaik, <ph name="DEVICE_OS" /> mengumpulkan data hardware tentang perangkat dan membagikannya kepada Google untuk menentukan update mana yang harus diberikan. Secara opsional, Anda dapat mengizinkan Google menggunakan data ini untuk tujuan tambahan seperti dukungan dan peningkatan pada pengalaman dan layanan <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Anda dapat login di perangkat ini dan membuka bagian CLOUDREADY_HARDWARE_INFO di chrome://system guna melihat data yang dikirim ke Google untuk pemfilteran update, serta situasi lain ketika Anda memilih untuk membagikan data kepada Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Untuk detail selengkapnya terkait data yang mungkin dibagikan <ph name="DEVICE_OS" /> kepada Google dan cara data tersebut digunakan, buka g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Simpan file berbahaya</translation>
 <translation id="6532101170117367231">Simpan ke Google Drive</translation>
 <translation id="6532106788206463496">Simpan perubahan</translation>
@@ -6028,15 +6017,6 @@
 <translation id="7258192266780953209">Transformasi</translation>
 <translation id="7258225044283673131">Aplikasi tidak merespons. Pilih "Tutup paksa" untuk menutup aplikasi.</translation>
 <translation id="7262004276116528033">Layanan masuk ini dihosting oleh <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Coba langkah pemecahan masalah berikut:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Pastikan perangkat memiliki penyimpanan internal yang berfungsi seperti HDD, SSD, atau eMMC
-    <ph name="LIST_ITEM" />Pastikan penyimpanan internal perangkat Anda lebih besar dari 16 GB
-    <ph name="LIST_ITEM" />Periksa koneksi ke penyimpanan internal, jika dapat diakses secara fisik
-    <ph name="LIST_ITEM" />Pastikan Anda menggunakan model yang tersertifikasi dan periksa catatan penginstalannya
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Untuk mendapatkan bantuan lebih lanjut, buka: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Tidak dapat menginstal mesin virtual. Coba lagi atau hubungi administrator Anda. Kode error: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Angkat dan sentuhkan jari secara berulang untuk menambahkan bagian lain dari sidik jari Anda</translation>
 <translation id="7268127947535186412">Setelan ini dikelola oleh pemilik perangkat.</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index 825d184..37535b87 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> deilir <ph name="ATTACHMENTS" /> með þér.}one{<ph name="DEVICE_NAME" /> deilir <ph name="ATTACHMENTS" /> með þér.}other{<ph name="DEVICE_NAME" /> deilir <ph name="ATTACHMENTS" /> með þér.}}</translation>
 <translation id="3364986687961713424">Frá kerfisstjóra: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Notaðu annaðhvort Ctrl eða Alt</translation>
-<translation id="3367057768351048705">Vefsvæði geta einungis notað fótspor frá þér til að sjá vafranotkun þína á umræddu vefsvæði</translation>
 <translation id="3368922792935385530">Tengt</translation>
 <translation id="3369067987974711168">Sýna fleiri aðgerðir fyrir þessa gátt</translation>
 <translation id="3369624026883419694">Leysir úr hýsli...</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326">Gera <ph name="NETWORKDEVICE" /> virkt</translation>
 <translation id="3981058120448670012">Sýnilegt nálægum tækjum sem <ph name="DEVICE_NAME" /> í <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Ógild tegund vistunar færð inn.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Eitthvað fór úrskeiðis og ekki tókst að setja upp <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Frekari aðstoð má finna á: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Settu upp vafrann í nokkrum einföldum skrefum</translation>
 <translation id="3983400541576569538">Gögn einhverra forrita kunna að hafa glatast</translation>
 <translation id="3983586614702900908">tæki frá óþekktum framleiðanda</translation>
@@ -3889,9 +3886,6 @@
 <translation id="4992984395680162305">Þessi tæki voru tengd með því að skanna QR-kóða.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Áður en þú skráir þig þarftu að hreinsa TPM til að <ph name="DEVICE_OS" /> geti orðið eigandi tækisins.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Þú getur einnig slökkt alveg á TPM-tækinu. Gögnin þín verða áfram geymd með öruggum hætti með hugbúnaðardulkóðun en tilteknir öryggiseiginleikar verða óvirkir, t.d. vottorð sem byggjast á vélbúnaði.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Þú getur breytt TPM-stillingum með því að endurræsa og opna kerfisstillingarnar í BIOS/UEFI. Skrefin eru breytileg og fara eftir gerð tækisins. Þú getur fengið frekari upplýsingar í fylgiskjölum <ph name="DEVICE_OS" /> í öðru tæki áður en þú endurræsir: [vefslóð tengils]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Engar <ph name="VM_TYPE" /> sýndarvélar fundust}=1{1 <ph name="VM_TYPE" /> sýndarvél fannst: <ph name="VM_NAME_LIST" />}one{{NUM_VMS} <ph name="VM_TYPE" /> sýndarvél fannst: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> sýndarvélar fundust: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Engin tenging við internetið.</translation>
 <translation id="4998430619171209993">Kveikt</translation>
@@ -4009,7 +4003,6 @@
 <translation id="5127620150973591153">Auðkenni öruggrar tengingar: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Slökkt er á samstillingu</translation>
 <translation id="5127881134400491887">Stjórna nettengingum</translation>
-<translation id="5128774403617662387">Gakktu úr skugga um að afrita gögnin þín áður en þú hefst handa. Uppsetning <ph name="DEVICE_OS" /> skrifar yfir öll gögn á harða diskinum. Frekari upplýsingar er að finna á g.co/TBD.</translation>
 <translation id="512903556749061217">tengt</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Ekki var hægt að sækja prófíl. Reyndu aftur síðar eða leitaðu aðstoðar hjá símafyrirtækinu.</translation>
@@ -4525,7 +4518,6 @@
 <translation id="5659593005791499971">Netfang</translation>
 <translation id="5659833766619490117">Ekki var hægt að þýða þessa síðu</translation>
 <translation id="5662513737565158057">Breytir því hvernig Linux-forrit virka.</translation>
-<translation id="5667490069342183561">Google ber enga ábyrgð á gagnatapi af nokkrum toga og <ph name="DEVICE_OS" /> virkar hugsanlega ekki í óvottuðum tækjum. Frekari upplýsingar er að finna á g.co/TBD.</translation>
 <translation id="5667546120811588575">Setur Google Play upp...</translation>
 <translation id="5668351004957198136">Mistókst</translation>
 <translation id="56702779821643359">Deildu skrám með fólki í kringum þig. <ph name="LINK_BEGIN" />Frekari upplýsingar<ph name="LINK_END" /></translation>
@@ -5337,9 +5329,6 @@
 <translation id="6528179044667508675">Ónáðið ekki</translation>
 <translation id="652948702951888897">Chrome ferill</translation>
 <translation id="6530186581263215931">Kerfisstjórinn valdi þessar stillingar</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" /> <ph name="DEVICE_OS" /> safnar vélbúnaðargögnum um tæki og deilir þeim með Google til að ákvarða hvaða uppfærslur skuli sækja. Þetta er gert til að bjóða upp á bestu mögulegu upplifunina. Þú getur einnig leyft Google að nota þessi gögn í öðrum tilgangi eins og til að veita aðstoð og bæta upplifun og þjónustu <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Þú getur skráð þig inn á þetta tæki og opnað hlutann CLOUDREADY_HARDWARE_INFO í chrome://system til að skoða gögnin sem eru send Google til uppfærslusíunar auk annarra tilvika þegar þú kýst að deila gögnum með Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Frekari upplýsingar um gögn sem <ph name="DEVICE_OS" /> kann að deila með Google og um það hvernig gögnin eru notuð er að finna á g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Halda hættulegri skrá</translation>
 <translation id="6532101170117367231">Vista í Google Drive</translation>
 <translation id="6532106788206463496">Vista breytingar</translation>
@@ -6028,15 +6017,6 @@
 <translation id="7258192266780953209">Umbreytingar</translation>
 <translation id="7258225044283673131">Forritið svarar ekki. Veldu „Þvinga fram lokun“ til að loka forritinu.</translation>
 <translation id="7262004276116528033">Þessi innskráningarþjónusta er hýst af <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Reyndu að leysa vandann á eftirfarandi máta:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Gakktu úr skugga um að tækið innihaldi virka, innbyggða geymslu eins og HDD, SSD eða eMMC
-    <ph name="LIST_ITEM" />Gakktu úr skugga um að innbyggða geymslan rúmi meira en 16 GB
-    <ph name="LIST_ITEM" />Athugaðu tenginguna við innri geymsluna, ef hún er aðgengileg
-    <ph name="LIST_ITEM" />Gakktu úr skugga um að vottuð útgáfa sé notuð og skoðaðu leiðbeiningar um uppsetningu
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Frekari aðstoð er að finna á: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Ekki tókst að setja upp sýndarvélina. Reyndu aftur eða hafðu samband við kerfisstjórann þinn. Villukóði: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Lyftu fingrinum endurtekið til að bæta við mismunandi hlutum fingrafarsins</translation>
 <translation id="7268127947535186412">Eigandi tækisins stjórnar þessari stillingu.</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 9ee54f5..e28c59c 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -2313,7 +2313,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{Il dispositivo <ph name="DEVICE_NAME" /> sta cercando di condividere <ph name="ATTACHMENTS" /> con te.}one{<ph name="DEVICE_NAME" /> is sharing <ph name="ATTACHMENTS" /> with you.}other{Il dispositivo <ph name="DEVICE_NAME" /> sta cercando di condividere <ph name="ATTACHMENTS" /> con te.}}</translation>
 <translation id="3364986687961713424">Dal tuo amministratore: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Usa il tasto CTRL o ALT</translation>
-<translation id="3367057768351048705">I siti possono utilizzare i tuoi cookie solo per vedere la tua attività di navigazione sul proprio sito</translation>
 <translation id="3368922792935385530">Connesso</translation>
 <translation id="3369067987974711168">Mostra altre azioni per questa porta</translation>
 <translation id="3369624026883419694">Risoluzione host in corso...</translation>
@@ -2954,8 +2953,6 @@
 <translation id="3979748722126423326">Abilita <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Visibile ai dispositivi nelle vicinanze con il nome <ph name="DEVICE_NAME" /> per <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">È stato inserito un tipo non valido per il salvataggio.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Si è verificato un errore. Impossibile installare <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Per ulteriore assistenza, visita il sito g.co/xxxxx.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Configura il browser con pochi e semplici passaggi</translation>
 <translation id="3983400541576569538">I dati provenienti da alcune app potrebbero essere persi</translation>
 <translation id="3983586614702900908">dispositivi di un fornitore sconosciuto</translation>
@@ -3874,9 +3871,6 @@
 <translation id="4992984395680162305">Questi dispositivi sono stati collegati scansionando un codice QR.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Prima di registrarti devi cancellare i dati del dispositivo TPM, così <ph name="DEVICE_OS" /> può assumere la proprietà del dispositivo.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Puoi anche disattivare completamente il dispositivo TPM. I tuoi dati rimarranno comunque memorizzati in modo sicuro tramite la crittografia software, ma alcune funzionalità di sicurezza, come i certificati basati sull'hardware, verranno disattivate.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Puoi modificare le tue impostazioni TPM riavviando il sistema e accedendo alle impostazioni BIOS/UEFI. I passaggi variano in base al modello del dispositivo. Per maggiori informazioni, apri la documentazione di <ph name="DEVICE_OS" /> su un altro dispositivo prima di riavviare: [URL link].<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nessuna VM <ph name="VM_TYPE" /> trovata}=1{1 VM <ph name="VM_TYPE" /> trovata: <ph name="VM_NAME_LIST" />}one{{NUM_VMS} VM <ph name="VM_TYPE" /> trovata: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} VM <ph name="VM_TYPE" /> trovate: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Nessuna connessione Internet.</translation>
 <translation id="4998430619171209993">On</translation>
@@ -3994,7 +3988,6 @@
 <translation id="5127620150973591153">ID connessione sicura: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">La sincronizzazione è disattivata</translation>
 <translation id="5127881134400491887">Gestione di connessioni di rete</translation>
-<translation id="5128774403617662387">Prima di iniziare, assicurati di avere una copia di backup dei tuoi dati. L'installazione di <ph name="DEVICE_OS" /> comporterà la sovrascrittura del disco rigido. Scopri di più all'indirizzo g.co/TBD.</translation>
 <translation id="512903556749061217">collegato</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Impossibile scaricare il profilo. Riprova più tardi oppure contatta l'operatore per ricevere assistenza.</translation>
@@ -4510,7 +4503,6 @@
 <translation id="5659593005791499971">Email</translation>
 <translation id="5659833766619490117">Impossibile tradurre questa pagina</translation>
 <translation id="5662513737565158057">Cambia il funzionamento delle app Linux.</translation>
-<translation id="5667490069342183561">Google non è responsabile di alcuna perdita di dati e <ph name="DEVICE_OS" /> potrebbe non funzionare su modelli non certificati. Scopri di più all'indirizzo g.co/TBD.</translation>
 <translation id="5667546120811588575">Configurazione di Google Play...</translation>
 <translation id="5668351004957198136">Controllo non superato</translation>
 <translation id="56702779821643359">Condividi file con persone nelle vicinanze. <ph name="LINK_BEGIN" />Scopri di più<ph name="LINK_END" /></translation>
@@ -5322,9 +5314,6 @@
 <translation id="6528179044667508675">Non disturbare</translation>
 <translation id="652948702951888897">Cronologia di Chrome</translation>
 <translation id="6530186581263215931">Queste impostazioni sono applicate dall'amministratore</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Per garantire un'esperienza ottimale, <ph name="DEVICE_OS" /> raccoglie i dati relativi all'hardware dei dispositivi e li condivide con Google per stabilire quali aggiornamenti devono essere recapitati. Se vuoi, puoi consentire a Google di usare questi dati per ulteriori scopi quali il supporto e i miglioramenti dell'assistenza e dell'esperienza relative a <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Puoi accedere su questo dispositivo e visitare la sezione CLOUDREADY_HARDWARE_INFO in chrome://system per visualizzare i dati inviati a Google per il filtro degli aggiornamenti, nonché eventuali altri casi in cui decidi di condividere dati con Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Visita la pagina g.co/xxxxx per avere ulteriori informazioni sui dati che <ph name="DEVICE_OS" /> potrebbe condividere con Google e sulle relative modalità di utilizzo.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Conserva il file pericoloso</translation>
 <translation id="6532101170117367231">Salva in Google Drive</translation>
 <translation id="6532106788206463496">Salva modifiche</translation>
@@ -6013,15 +6002,6 @@
 <translation id="7258192266780953209">Trasformazioni</translation>
 <translation id="7258225044283673131">L'applicazione non risponde. Seleziona "Termina" per chiudere l'app.</translation>
 <translation id="7262004276116528033">Questo servizio di accesso è in hosting su <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Prova a svolgere i seguenti passaggi per la risoluzione dei problemi:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Assicurati che il tuo dispositivo contenga una memoria interna funzionante, ad esempio HDD, SSD o eMMC
-    <ph name="LIST_ITEM" />Verifica che le dimensioni della memoria interna del dispositivo siano superiori a 16 GB
-    <ph name="LIST_ITEM" />Controlla la connessione alla memoria interna, se è fisicamente accessibile
-    <ph name="LIST_ITEM" />Assicurati di usare un dispositivo certificato e controlla le relative note di installazione
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Per ulteriore assistenza, visita il sito g.co/xxxxx.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Impossibile installare la macchina virtuale. Riprova o contatta l'amministratore. Codice di errore: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Solleva ripetutamente il dito per aggiungere le varie parti dell'impronta</translation>
 <translation id="7268127947535186412">Questa impostazione è gestita dal proprietario del dispositivo.</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index 84c68e6..28879227 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> משתף איתך <ph name="ATTACHMENTS" />.}two{<ph name="DEVICE_NAME" /> משתף איתך <ph name="ATTACHMENTS" />.}many{<ph name="DEVICE_NAME" /> משתף איתך <ph name="ATTACHMENTS" />.}other{<ph name="DEVICE_NAME" /> משתף איתך <ph name="ATTACHMENTS" />.}}</translation>
 <translation id="3364986687961713424">ממנהל המערכת שלך: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">‏צריך להשתמש ב-Ctrl או ב-Alt</translation>
-<translation id="3367057768351048705">‏אתרים יכולים להשתמש בקובצי ה-cookie רק כדי לראות את פעילות הגלישה בהם, ולא באתרים אחרים</translation>
 <translation id="3368922792935385530">מחובר</translation>
 <translation id="3369067987974711168">הצגת פעולות נוספות בנוגע ליציאה הזאת</translation>
 <translation id="3369624026883419694">המערכת מבררת את כתובת השרת המארח...</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326">יש להפעיל <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">המכשיר גלוי למכשירים בקרבת מקום בתור <ph name="DEVICE_NAME" /> למשך <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">הוזן סוג שמירה לא חוקי.</translation>
-<translation id="3981828803725658123">‏<ph name="BEGIN_PARAGRAPH1" />משהו השתבש ולא ניתן היה להתקין את <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />עזרה נוספת זמינה בכתובת: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">אפשר להגדיר את הדפדפן בכמה שלבים פשוטים</translation>
 <translation id="3983400541576569538">ייתכן אובדן של נתונים מכמה אפליקציות</translation>
 <translation id="3983586614702900908">מכשירים מספק לא ידוע</translation>
@@ -3889,9 +3886,6 @@
 <translation id="4992984395680162305">‏נוצר קישור של המכשירים האלה על ידי סריקה של קוד QR.</translation>
 <translation id="4994474651455208930">התרה לאתרים לבקש להפוך למטפלי ברירת המחדל עבור פרוטוקולים</translation>
 <translation id="4994754230098574403">בתהליך הגדרה</translation>
-<translation id="4995131849631312693">‏<ph name="BEGIN_PARAGRAPH1" />לפני ההרשמה צריך לנקות את ה-TPM‏ כדי שמערכת <ph name="DEVICE_OS" /> תוכל לתבוע בעלות על המכשיר.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />אפשר גם לכבות לגמרי את מכשיר ה-TPM. הנתונים שלך עדיין יישמרו באופן מאובטח באמצעות הצפנת תוכנה, אבל חלק מתכונות האבטחה, כמו אישורים בגיבוי חומרה, יושבתו.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />אפשר לשנות את הגדרות ה-TPM על ידי הפעלה מחדש וכניסה להגדרות ה-BIOS/UEFI של המערכת. השלבים משתנים בהתאם לדגם של המכשיר. למידע נוסף, עליך לפתוח את התיעוד לגבי <ph name="DEVICE_OS" /> במכשיר אחר לפני ההפעלה מחדש: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{‏לא נמצאו מכונות VM מסוג <ph name="VM_TYPE" />}=1{‏נמצאה מכונת VM אחת מסוג <ph name="VM_TYPE" />: ‏<ph name="VM_NAME_LIST" />}two{‏נמצאו {NUM_VMS} מכונות VM מסוג <ph name="VM_TYPE" />: ‏<ph name="VM_NAME_LIST" />}many{‏נמצאו {NUM_VMS} מכונות VM מסוג <ph name="VM_TYPE" />: ‏<ph name="VM_NAME_LIST" />}other{‏נמצאו {NUM_VMS} מכונות VM מסוג <ph name="VM_TYPE" />: ‏<ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">אין חיבור לאינטרנט.</translation>
 <translation id="4998430619171209993">מופעל</translation>
@@ -4009,7 +4003,6 @@
 <translation id="5127620150973591153">מזהה חיבור בטוח: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">סנכרון כבוי</translation>
 <translation id="5127881134400491887">ניהול חיבורי רשת</translation>
-<translation id="5128774403617662387">‏לפני שמתחילים, צריך לוודא שיש גיבוי של הנתונים. התקנת <ph name="DEVICE_OS" /> תחליף את כל הנתונים שבכונן הקשיח שלך. מידע נוסף זמין בכתובת g.co/TBD.</translation>
 <translation id="512903556749061217">מחובר</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">לא ניתן היה להוריד את הפרופיל. יש לנסות שוב מאוחר יותר או לפנות לספק לקבלת עזרה.</translation>
@@ -4525,7 +4518,6 @@
 <translation id="5659593005791499971">אימייל</translation>
 <translation id="5659833766619490117">לא ניתן היה לתרגם את הדף הזה</translation>
 <translation id="5662513737565158057">‏שינוי אופן הפעולה של אפליקציות Linux.</translation>
-<translation id="5667490069342183561">‏Google לא אחראית לאובדן נתונים, וייתכן שמערכת <ph name="DEVICE_OS" /> לא תפעל בדגמים שלא אושרו. מידע נוסף זמין בכתובת g.co/TBD.</translation>
 <translation id="5667546120811588575">‏הגדרת Google Play מתבצעת...</translation>
 <translation id="5668351004957198136">כישלון</translation>
 <translation id="56702779821643359">שיתוף קבצים עם משתמשים בסביבה. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation>
@@ -5337,9 +5329,6 @@
 <translation id="6528179044667508675">נא לא להפריע</translation>
 <translation id="652948702951888897">‏היסטוריה של Chrome</translation>
 <translation id="6530186581263215931">את ההגדרות האלה אוכף מנהל המערכת</translation>
-<translation id="653031671361866334">‏<ph name="BEGIN_PARAGRAPH1" />כדי לספק את החוויה הטובה ביותר, נעשה איסוף נתוני חומרה בנוגע למכשירים על ידי <ph name="DEVICE_OS" /> והם משותפים עם Google כדי לקבוע אילו עדכונים צריך לשלוח. לחלופין, אפשר לתת ל-Google הרשאה להשתמש בנתונים האלה למטרות נוספות כמו תמיכה ושיפורים בחווייה ובשירותים של <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />אפשר להתחבר לחשבון במכשיר הזה ולעבור אל הקטע CLOUDREADY_HARDWARE_INFO בכתובת chrome://system כדי לראות את הנתונים שנשלחים אל Google לסינון עדכונים, וגם לכל מופע אחר שבו בחרת לשתף נתונים עם Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />למידע נוסף על הנתונים שעשויים להיות משותפים עם Google על ידי <ph name="DEVICE_OS" /> והאופן שבו נעשה בהם שימוש, עברו לכתובת visit g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">השארת הקובץ המסוכן</translation>
 <translation id="6532101170117367231">‏שמירה ב-Google Drive</translation>
 <translation id="6532106788206463496">שמירת השינויים</translation>
@@ -6028,15 +6017,6 @@
 <translation id="7258192266780953209">טרנספורמציות</translation>
 <translation id="7258225044283673131">האפליקציה לא מגיבה. כדי לסגור את האפליקציה, יש לבחור באפשרות "אילוץ סגירה".</translation>
 <translation id="7262004276116528033">שירות הכניסה הזה מתארח ב-<ph name="SAML_DOMAIN" />.</translation>
-<translation id="7264564921322372728">‏<ph name="BEGIN_PARAGRAPH1" />מומלץ לפעול לפי השלבים הבאים לפתרון הבעיה:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />מוודאים שבמכשיר יש אחסון פנימי פעיל כמו HDD,‏ SSD או eMMC.
-    <ph name="LIST_ITEM" />בודקים שמכשיר האחסון הפנימי מכיל יותר מ-16GB.
-    <ph name="LIST_ITEM" />בודקים את החיבור לאחסון הפנימי (אם הוא נגיש פיזית).
-    <ph name="LIST_ITEM" />מוודאים שנעשה שימוש בדגם שקיבל אישור, ובודקים את נתוני ההתקנה.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />עזרה נוספת זמינה בכתובת: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">לא ניתן להתקין את המכונה הווירטואלית. אפשר לנסות שוב או ליצור קשר עם מנהל המערכת. קוד שגיאה: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">יש להרים את האצבע ולגעת בחיישן עם חלקים שונים של האצבע כדי להוסיף טביעת אצבע מלאה</translation>
 <translation id="7268127947535186412">ההגדרה הזו מנוהלת על ידי הבעלים של המכשיר.</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 545c568..ed99dc4 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -2309,7 +2309,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> が <ph name="ATTACHMENTS" />を共有しています。}other{<ph name="DEVICE_NAME" /> が <ph name="ATTACHMENTS" />を共有しています。}}</translation>
 <translation id="3364986687961713424">管理者からのメッセージ: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl キーまたは Alt キーのいずれかを使用してください</translation>
-<translation id="3367057768351048705">サイトは、あなたの Cookie を使用して、そのサイトでのあなたの閲覧アクティビティのみを確認できます</translation>
 <translation id="3368922792935385530">接続済み</translation>
 <translation id="3369067987974711168">このポートのその他の操作を表示</translation>
 <translation id="3369624026883419694">ホストを解決しています...</translation>
@@ -2950,7 +2949,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> を有効にする</translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" />間、付近のデバイスに「<ph name="DEVICE_NAME" />」として表示されます...</translation>
 <translation id="3981760180856053153">入力された保存形式が無効です。</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />エラーが発生したため、<ph name="DEVICE_OS" /> をインストールできませんでした。<ph name="END_PARAGRAPH1" /><ph name="BEGIN_PARAGRAPH2" />詳しくは、g.co/xxxxx をご覧ください<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">簡単な手順でブラウザを設定できます</translation>
 <translation id="3983400541576569538">一部のアプリのデータは失われる可能性があります</translation>
 <translation id="3983586614702900908">不明なベンダーのデバイス</translation>
@@ -3865,7 +3863,6 @@
 <translation id="4992984395680162305">次のデバイスは、QR コードのスキャンによりリンクされています。</translation>
 <translation id="4994474651455208930">プロトコルのデフォルト ハンドラへのサイトの登録要求を許可する</translation>
 <translation id="4994754230098574403">設定しています</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />登録する前に、<ph name="DEVICE_OS" /> がデバイスのオーナー権限を取得できるよう TPM を消去する必要があります。<ph name="END_PARAGRAPH1" /><ph name="BEGIN_PARAGRAPH2" />デバイスの TPM を完全にオフにすることもできます。データは、ソフトウェアによる暗号化で引き続き安全に保存されますが、ハードウェア式証明書など、特定のセキュリティ機能は無効になります。<ph name="END_PARAGRAPH2" /><ph name="BEGIN_PARAGRAPH3" />TPM の設定を変更するには、再起動してシステム BIOS / UEFI の設定に入ってください。手順はデバイスモデルに応じて異なります。詳しくは、再起動する前に別のデバイスで <ph name="DEVICE_OS" /> のドキュメントをご確認ください: [URL リンク]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> VM は見つかりませんでした}=1{1 件の <ph name="VM_TYPE" /> VM が見つかりました: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} 件の <ph name="VM_TYPE" /> VM が見つかりました: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">インターネットに接続されていません。</translation>
 <translation id="4998430619171209993">オン</translation>
@@ -3983,7 +3980,6 @@
 <translation id="5127620150973591153">安全な接続 ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">同期は無効です</translation>
 <translation id="5127881134400491887">ネットワーク接続の管理</translation>
-<translation id="5128774403617662387">開始する前に、データがバックアップされていることを確認してください。<ph name="DEVICE_OS" /> をインストールすると、ハードドライブは上書きされます。詳しくは、g.co/TBD をご覧ください。</translation>
 <translation id="512903556749061217">接続</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">プロファイルをダウンロードできませんでした。しばらくしてからもう一度試すか、携帯通信会社にお問い合わせください。</translation>
@@ -4494,7 +4490,6 @@
 <translation id="5659593005791499971">メール</translation>
 <translation id="5659833766619490117">このページを翻訳できませんでした</translation>
 <translation id="5662513737565158057">Linux アプリの動作を変更します。</translation>
-<translation id="5667490069342183561">Google はデータの消失について一切の責任を負いません。<ph name="DEVICE_OS" /> は未認定のモデルでは動作しない可能性があります。詳しくは、g.co/TBD をご覧ください。</translation>
 <translation id="5667546120811588575">Google Play を設定しています...</translation>
 <translation id="5668351004957198136">不合格</translation>
 <translation id="56702779821643359">近くのユーザーとファイルを共有できます。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation>
@@ -5303,9 +5298,6 @@
 <translation id="6528179044667508675">サイレント</translation>
 <translation id="652948702951888897">Chrome 履歴</translation>
 <translation id="6530186581263215931">管理者が行った設定です</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />利便性を高めるため、<ph name="DEVICE_OS" /> ではデバイスのハードウェア データを収集し、Google と共有して、適切なアップデートを確認します。さらに、サポートや <ph name="DEVICE_OS" /> の利便性やサービスの改善といった追加の目的で Google がこのデータを使用することを許可できます。<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />アップデートの確認時のほか、追加の目的で Google とのデータの共有を許可した場合に、Google に送信されるデータについては、このデバイスにログインして、chrome://system の「CLOUDREADY_HARDWARE_INFO」の欄でご確認いただけます。<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> が Google と共有するデータおよびその使用方法について詳しくは、g.co/xxxxx をご覧ください。<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">危険なファイルを保存</translation>
 <translation id="6532101170117367231">Google ドライブに保存</translation>
 <translation id="6532106788206463496">変更を保存</translation>
@@ -5992,15 +5984,6 @@
 <translation id="7258192266780953209">変換</translation>
 <translation id="7258225044283673131">アプリケーションから応答がありません。終了するには [強制終了] を選択してください。</translation>
 <translation id="7262004276116528033">このログイン サービスは <ph name="SAML_DOMAIN" /> でホストされています</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />次の解決方法をお試しください。
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />デバイスに有効な内部ストレージ(HDD、SSD、eMMC など)が含まれていることを確認します
-    <ph name="LIST_ITEM" />内部ストレージ デバイスが 16 GB 以上であることを確認します
-    <ph name="LIST_ITEM" />物理的にアクセス可能な場合は、内部ストレージへの接続を確認します
-    <ph name="LIST_ITEM" />認定モデルを使用していることを確認し、インストールに関する注意事項を確認します
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />詳しくは、g.co/xxxxx をご覧ください<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">仮想マシンをインストールできませんでした。もう一度お試しいただくか、管理者にお問い合わせください。エラーコード: <ph name="ERROR_CODE" />。</translation>
 <translation id="7267875682732693301">指を何度か離して、あらゆる角度から指紋を登録します</translation>
 <translation id="7268127947535186412">この設定はデバイスの所有者が管理しています。</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 09531ea..98adac0 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -2312,7 +2312,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" />-ის მიერ თქვენთან ზიარდება <ph name="ATTACHMENTS" />.}other{<ph name="DEVICE_NAME" />-ის მიერ თქვენთან ზიარდება <ph name="ATTACHMENTS" />.}}</translation>
 <translation id="3364986687961713424">თქვენი ადმინისტრატორისგან: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">გამოიყენეთ Ctrl ან Alt</translation>
-<translation id="3367057768351048705">საიტებს შეუძლიათ ქუქი-ჩანაწერების გამოყენება თქვენ მიერ მათი საიტის დათვალიერების აქტივობის სანახავად</translation>
 <translation id="3368922792935385530">დაკავშირებული</translation>
 <translation id="3369067987974711168">ამ პორტთან დაკავშირებული სხვა მოქმედებების ჩვენება</translation>
 <translation id="3369624026883419694">ჰოსტის გადაწყვეტა…</translation>
@@ -2953,8 +2952,6 @@
 <translation id="3979748722126423326">ჩართეთ <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">ახლომდებარე მოწყობილობებზე ხილულია, როგორც <ph name="DEVICE_NAME" /> (დარჩენილია <ph name="REMAINING_TIME" />)...</translation>
 <translation id="3981760180856053153">შეყვანილია შენახვის არასწორი ტიპი.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" /><ph name="DEVICE_OS" /> ვერ დაინსტალირდა შეფერხების გამო.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />დამატებითი დახმარებისთვის ეწვიეთ მისამართს g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">დააყენეთ თქვენი ბრაუზერი რამდენიმე მარტივი ეტაპის გავლით</translation>
 <translation id="3983400541576569538">შეიძლება ზოგიერთი აპის მონაცემები დაიკარგა</translation>
 <translation id="3983586614702900908">მოწყობილობები უცნობი ვენდორისაგან</translation>
@@ -3873,9 +3870,6 @@
 <translation id="4992984395680162305">ამ მოწყობილობების მიბმა QR კოდის სკანირებით მოხდა.</translation>
 <translation id="4994474651455208930">საიტების მხრიდან ამა თუ იმ პროტოკოლის ნაგულისხმევ დამმუშავებლად მათი დაყენების მოთხოვნის დაშვება</translation>
 <translation id="4994754230098574403">მიმდინარეობს დაყენება</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />რეგისტრაციამდე უნდა გაიაროთ TPM-ის შემოწმება, რომ <ph name="DEVICE_OS" /> მოწყობილობის მფლობელი გახდეს.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />სურვილისამებრ, TPM მოწყობილობის მთლიანად გამორთვა შეგიძლიათ. თქვენი მონაცემები უსაფრთხოდ შეინახება პროგრამული უზრუნველყოფის დაშიფვრის მეშვეობით, თუმცა უსაფრთხოების ზოგიერთი ფუნქცია, როგორიცაა აპარატურით უზრუნველყოფილი სერტიფიკატები, გაითიშება.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />თქვენი TPM პარამეტრების შესაცვლელად გადატვირთეთ მოწყობილობა და შედით სისტემის BIOS/UEFI პარამეტრებში. მოქმედებათა მიმდევრობა განსხვავდება მოწყობილობის მოდელის მიხედვით. დამატებითი ინფორმაციისთვის მოწყობილობის გადატვირთვამდე გაეცანით <ph name="DEVICE_OS" />-ის დოკუმენტაციას სხვა მოწყობილობიდან: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> ტიპის ვირტუალური მოწყობილობები არ იძებნება}=1{ნაპოვნია <ph name="VM_TYPE" /> ტიპის 1 ვირტუალური მოწყობილობა: <ph name="VM_NAME_LIST" />}other{ნაპოვნია <ph name="VM_TYPE" /> ტიპის {NUM_VMS} ვირტუალური მოწყობილობა: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">ინტერნეტთან კავშირი არ არის.</translation>
 <translation id="4998430619171209993">ჩართული</translation>
@@ -3993,7 +3987,6 @@
 <translation id="5127620150973591153">დაცული კავშირის ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">სინქრონიზაცია გამორთულია</translation>
 <translation id="5127881134400491887">ქსელური კავშირების მართვა</translation>
-<translation id="5128774403617662387">დაწყებამდე დარწმუნდით, რომ თქვენი მონაცემების სარეზერვო ასლი გაქვთ შექმნილი. <ph name="DEVICE_OS" />-ის ინსტალაციის შემთხვევაში, თქვენი მყარი დისკი გადაიწერება. დამატებითი ინფორმაცია ხელმისაწვდომია მისამართზე g.co/TBD.</translation>
 <translation id="512903556749061217">მიმაგრებულია</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">პროფილი ვერ ჩამოიტვირთა. ცადეთ მოგვიანებით, ან დაუკავშირდით ოპერატორს დახმარებისთვის.</translation>
@@ -4509,7 +4502,6 @@
 <translation id="5659593005791499971">ელფოსტა</translation>
 <translation id="5659833766619490117">ეს გვერდი ვერ ითარგმნა</translation>
 <translation id="5662513737565158057">შეცვალეთ Linux აპების მუშაობის პრინციპი.</translation>
-<translation id="5667490069342183561">Google პასუხს არ აგებს მონაცემთა დაკარგვაზე, ხოლო <ph name="DEVICE_OS" /> შეიძლება არ მუშაობდეს არასერტიფიცირებულ მოდელებზე. დამატებითი ინფორმაცია ხელმისაწვდომია მისამართზე g.co/TBD.</translation>
 <translation id="5667546120811588575">მიმდინარეობს Google Play-ს დაყენება...</translation>
 <translation id="5668351004957198136">მარცხით დასრულდა</translation>
 <translation id="56702779821643359">გაუზიარეთ ფაილები თქვენ გარშემო მყოფ ადამიანებს. <ph name="LINK_BEGIN" />შეიტყვეთ მეტი<ph name="LINK_END" /></translation>
@@ -5321,9 +5313,6 @@
 <translation id="6528179044667508675">არ შემაწუხოთ</translation>
 <translation id="652948702951888897">Chrome ისტორია</translation>
 <translation id="6530186581263215931">ეს პარამეტრები იძულებით არის გააქტიურებული თქვენი ადმინისტრატორის მიერ</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />საუკეთესო ფუნქციების უზრუნველყოფის მიზნით, <ph name="DEVICE_OS" /> აგროვებს მოწყობილობების აპარატურის მონაცემებს და უზიარებს მათ Google-ს, სათანადო განახლებების დასადგენად. სურვილისამებრ, შეგიძლიათ საშუალება მისცეთ Google-ს, გამოიყენოს აღნიშნული მონაცემები სხვა მიზნებითაც, მაგალითად, <ph name="DEVICE_OS" />-თან დაკავშირებული მხარდაჭერის, ფუნქციების და მომსახურების გაუმჯობესების მიზნით.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Google-ისთვის განახლებების გაფილტვრის მიზნით (ასევე, თქვენ არჩეული სხვა მიზნებისთვის) გაგზავნილი მონაცემების სანახავად შედით თქვენს ანგარიშში ამ მოწყობილობაზე და გადადით chrome://system-ის სექციაზე „CLOUDREADY_HARDWARE_INFO“.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />დეტალური ინფორმაცია იმ მონაცემების შესახებ, რომელთა გაზიარებაც <ph name="DEVICE_OS" />-ს შეუძლია Google-ისთვის, ასევე, აღნიშნული მონაცემების გამოყენების შესახებ, ხელმისაწვდომია მისამართზე g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">სახიფათო ფაილის შენარჩუნება</translation>
 <translation id="6532101170117367231">შენახვა Google Drive-ზე</translation>
 <translation id="6532106788206463496">ცვლილებების შენახვა</translation>
@@ -6012,15 +6001,6 @@
 <translation id="7258192266780953209">ტრანსფორმაციები</translation>
 <translation id="7258225044283673131">აპლიკაცია არ რეაგირებს. მის დასახურად აირჩიეთ „იძულებით დახურვა“.</translation>
 <translation id="7262004276116528033">შესვლის ამ მომსახურების ჰოსტინგს უზრუნველყოფს <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />დეფექტების აღმოფხვრისთვის ცადეთ შემდეგი:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />დარწმუნდით, რომ თქვენს მოწყობილობაში არის მუშა შიდა მეხსიერება, როგორიცაა, მაგალითად, HDD, SSD ან eMMC
-    <ph name="LIST_ITEM" />შეამოწმეთ, რომ თქვენი შიდა მეხსიერების მოწყობილობის მოცულობა აღემატება 16 გბაიტს
-    <ph name="LIST_ITEM" />შეამოწმეთ კავშირი შიდა მეხსიერებასთან, თუ ის ფიზიკურად ხელმისაწვდომია
-    <ph name="LIST_ITEM" />დარწმუნდით, რომ სერტიფიცირებულ მოდელს იყენებთ და შეამოწმეთ შენიშვნები ინსტალაციასთან დაკავშირებით
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />დამატებითი დახმარებისთვის ეწვიეთ მისამართს g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">ვირტუალური მოწყობილობის ინსტალაცია ვერ მოხერხდა. ცადეთ ხელახლა ან დაუკავშირდით ადმინისტრატორს. შეცდომის კოდი: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">რამდენჯერმე აიღეთ თითი სენსორიდან და ისევ შეახეთ, რომ თქვენი თითის ანაბეჭდის ყველა ნაწილი დაემატოს</translation>
 <translation id="7268127947535186412">ამ პარამეტრს მართავს მოწყობილობის მფლობელი.</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index e9123689..082404df 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -2308,7 +2308,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> сізге <ph name="ATTACHMENTS" /> жіберіп жатыр.}other{<ph name="DEVICE_NAME" /> сізге <ph name="ATTACHMENTS" /> жіберіп жатыр.}}</translation>
 <translation id="3364986687961713424">Әкімшіден: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl не Alt пернесі пайдаланылуы керек</translation>
-<translation id="3367057768351048705">Сайттар cookie файлдарыңызды тек өз сайттарындағы браузерді қолдану мәліметіңізді көру үшін қолдана алады.</translation>
 <translation id="3368922792935385530">Қосылған</translation>
 <translation id="3369067987974711168">Осы порт үшін басқа да әрекеттерді көрсету</translation>
 <translation id="3369624026883419694">Хост анықталуда…</translation>
@@ -2949,8 +2948,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> қосу</translation>
 <translation id="3981058120448670012">Маңайдағы құрылғыларға <ph name="DEVICE_NAME" /> ретінде көріну уақыты: <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Жарамсыз сақтау түрі енгізілді.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Бірдеңе дұрыс болмады. <ph name="DEVICE_OS" /> орнатылмады.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Қосымша анықтама үшін g.co/xxxxx бетіне өтіңіз.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Браузерді бірнеше қарапайым қадаммен реттеңіз</translation>
 <translation id="3983400541576569538">Кейбір қолданбалардың деректері жойылуы мүмкін</translation>
 <translation id="3983586614702900908">белгісіз жеткізушінің құрылғылары</translation>
@@ -3869,9 +3866,6 @@
 <translation id="4992984395680162305">Бұл құрылғылар QR кодын сканерлеу арқылы байланыстырылған.</translation>
 <translation id="4994474651455208930">Сайттардың протоколдар үшін әдепкі өңдегіш болуды сұрауына рұқсат беру</translation>
 <translation id="4994754230098574403">Реттелуде</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Тіркелуден бұрын TPM-ді тазартуыңыз керек, сонда <ph name="DEVICE_OS" /> құрылғыға меншік құқығын ала алады.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />TPM құрылғысын толығымен өшіріп тастауға да болады. Деректеріңіз бағдарламалық құрал шифрлауымен қауіпсіз түрде сақтала береді, бірақ жабдық қолдауының сертификаттары сияқты кейбір қауіпсіздік функциялары өшіріледі.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Өшіріп қосып, жүйенің BIOS/UEFI параметрлеріне кіру арқылы TPM параметрлерін өзгерте аласыз. Орындалатын қадамдар құрылғы моделіне байланысты әртүрлі болады. Толығырақ ақпарат алу үшін өшіріп қоспас бұрын басқа құрылғыда <ph name="DEVICE_OS" /> құжаттамасын ашып алыңыз: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{"<ph name="VM_TYPE" />" виртуалды машиналары табылмады.}=1{1 "<ph name="VM_TYPE" />" виртуалды машинасы табылды: <ph name="VM_NAME_LIST" />.}other{{NUM_VMS} "<ph name="VM_TYPE" />" виртуалды машинасы табылды: <ph name="VM_NAME_LIST" />.}}</translation>
 <translation id="4997086284911172121">Интернет байланысы жоқ.</translation>
 <translation id="4998430619171209993">Қосулы</translation>
@@ -3989,7 +3983,6 @@
 <translation id="5127620150973591153">Қауіпсіз байланыс коды: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Синхрондау өшірулі</translation>
 <translation id="5127881134400491887">Желі қосылымдарын басқару</translation>
-<translation id="5128774403617662387">Кіріспес бұрын деректердің сақтық көшірмесі барына көз жеткізіңіз. <ph name="DEVICE_OS" /> орнатылғанда, қатты диск қайта жазылады. Толығырақ: g.co/TBD.</translation>
 <translation id="512903556749061217">тіркелген</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Профиль жүктеп алынбады. Кейінірек қайталап көріңіз немесе оператордың көмегіне жүгініңіз.</translation>
@@ -4505,7 +4498,6 @@
 <translation id="5659593005791499971">Электрондық пошта</translation>
 <translation id="5659833766619490117">Бет аударылмады</translation>
 <translation id="5662513737565158057">Linux қолданбаларының жұмыс істеу жолын өзгертіңіз.</translation>
-<translation id="5667490069342183561">Google қандай да бір деректің жоғалуына жауап бермейді, ал <ph name="DEVICE_OS" /> жүйесі сертификатталмаған модельдерде жұмыс істемеуі мүмкін. Толығырақ: g.co/TBD.</translation>
 <translation id="5667546120811588575">Google Play орнатылуда...</translation>
 <translation id="5668351004957198136">Тексеруден өтпеді</translation>
 <translation id="56702779821643359">Файлдарды айналадағы адамдармен бөлісіңіз. <ph name="LINK_BEGIN" />Толығырақ<ph name="LINK_END" /></translation>
@@ -5317,9 +5309,6 @@
 <translation id="6528179044667508675">Мазаламау</translation>
 <translation id="652948702951888897">Chrome тарихы</translation>
 <translation id="6530186581263215931">Бұл параметрлерді әкімші орнатқан.</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Мүмкіндігінше барынша тиімді пайдалану үшін <ph name="DEVICE_OS" /> құрылғылар туралы жабдық деректерін жинайды және ұсынылатын жаңа нұсқаны анықтау үшін оны Google-мен бөліседі. Сонымен қатар <ph name="DEVICE_OS" /> мүмкіндігі мен қызметіне қолдау көрсету сияқты мақсаттар үшін Google-ға осы деректерді пайдалануға рұқсат бере аласыз.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Осы құрылғыға кіріп, сүзуді жаңарту үшін Google-ға жіберілген деректі, сонымен қатар Google-мен бөліскіңіз келетін кез келген іс-шараларды Chrome браузері арқылы CLOUDREADY_HARDWARE_INFO бөлімінен көре аласыз.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> жүйесінің Google-мен бөлісетін дерегі және оның қалай пайдаланылатыны туралы толық ақпаратты g.co/xxxxx бетінен қараңыз.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Қауіпті файлды сақтау</translation>
 <translation id="6532101170117367231">Google Drive жадына сақтау</translation>
 <translation id="6532106788206463496">Өзгертулерді сақтау</translation>
@@ -6008,15 +5997,6 @@
 <translation id="7258192266780953209">Түрлендіру</translation>
 <translation id="7258225044283673131">Қолданба жауап бермейді. Оны жабу үшін "Қолмен жабу" опциясын таңдаңыз.</translation>
 <translation id="7262004276116528033">Бұл кіру қызметі <ph name="SAML_DOMAIN" /> доменінде орналасқан</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Ақауларды жою үшін осы қадамдарды орындап көріңіз:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Құрылғыңыздың HDD, SSD немесе eMMC сияқты жұмыс істейтін ішкі жады барын тексеріңіз.
-    <ph name="LIST_ITEM" />Ішкі жад құрылғысының көлемі 16 ГБ-тан асатынына көз жеткізіңіз.
-    <ph name="LIST_ITEM" />Қолмен ұстап тексеру мүмкін болса, ішкі жадқа жалғанған жерді қарап шығыңыз.
-    <ph name="LIST_ITEM" />Сертификатталған модельді қолданып отырғаныңызға көз жеткізіп, орнату жөніндегі ескертпелерді тексеріңіз.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Қосымша анықтама үшін g.co/xxxxx бетіне өтіңіз.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Виртуалды құрылғы орнатылмады. Әрекетті қайталаңыз немесе әкімшіге хабарласыңыз. Қате коды: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Саусақ ізінің басқа бөліктерін енгізу үшін саусағыңызды көтеріп тұрыңыз.</translation>
 <translation id="7268127947535186412">Бұл параметрді құрылғы иесі басқарады.</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 5b88e83..7617c5be9 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> កំពុង​ចែករំលែក <ph name="ATTACHMENTS" /> ជាមួយ​អ្នក។}other{<ph name="DEVICE_NAME" /> កំពុង​ចែករំលែក <ph name="ATTACHMENTS" /> ជាមួយ​អ្នក។}}</translation>
 <translation id="3364986687961713424">ពី​អ្នកគ្រប់គ្រង​របស់អ្នក៖ <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">ប្រើ Ctrl ឬ Alt</translation>
-<translation id="3367057768351048705">គេហទំព័រអាចត្រឹមតែប្រើខូគីរបស់អ្នក ដើម្បីមើលសកម្មភាពរុករកតាមអ៊ីនធឺណិតរបស់អ្នកនៅលើគេហទំព័ររបស់ពួកគេប៉ុណ្ណោះ</translation>
 <translation id="3368922792935385530">បានភ្ជាប់</translation>
 <translation id="3369067987974711168">បង្ហាញ​សកម្មភាពច្រើនទៀត​សម្រាប់​ច្រកនេះ</translation>
 <translation id="3369624026883419694">កំពុងដោះស្រាយឧបករណ៍ចែករំលែកបណ្តាញ...</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326">បើកដំណើរការ <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">អាចឱ្យឧបករណ៍នៅជិតមើលឃើញជា <ph name="DEVICE_NAME" /> រយៈពេល <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">ប្រភេទការរក្សាទុកមិនត្រឹមត្រូវបានបញ្ចូល។</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />មានអ្វីមួយខុសប្រក្រតី និងមិនអាចដំឡើង <ph name="DEVICE_OS" /> បានទេ។<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ដើម្បីទទួលបាន​ជំនួយបន្ថែម សូមចូល​ទៅកាន់៖ g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">រៀបចំ​កម្មវិធីរុករកតាមអ៊ីនធឺណិតរបស់អ្នកដោយអនុវត្តតាមជំហានសាមញ្ញមួយចំនួន</translation>
 <translation id="3983400541576569538">ទិន្នន័យពីកម្មវិធី​មួយចំនួនអាច​នឹងបាត់បង់</translation>
 <translation id="3983586614702900908">ឧបករណ៍ពីអ្នកលក់មិនស្គាល់</translation>
@@ -3889,9 +3886,6 @@
 <translation id="4992984395680162305">ឧបករណ៍​ទាំងនេះ​ត្រូវបានភ្ជាប់​ដោយស្កេន​កូដ QR។</translation>
 <translation id="4994474651455208930">អនុញ្ញាតឲ្យគេហទំព័រសួរដើម្បីឲ្យក្លាយទៅជាឧបករណ៍ដោះស្រាយប្រូតូកូលលំនាំដើម</translation>
 <translation id="4994754230098574403">កំពុង​រៀបចំ</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />មុនពេលចុះឈ្មោះ អ្នកត្រូវសម្អាត TPM ជាមុនសិន ដើម្បីអាចឱ្យ <ph name="DEVICE_OS" /> មានកម្មសិទ្ធិលើឧបករណ៍។<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />អ្នកក៏អាចបិទឧបករណ៍ TPM ទាំងស្រុងបានផងដែរ។ ទិន្នន័យរបស់អ្នកនឹងនៅតែត្រូវបានរក្សាទុកយ៉ាងមានសុវត្ថិភាពដោយប្រើការ​អ៊ីនគ្រីបកម្មវិធីដដែល ប៉ុន្តែមុខងារសុវត្ថិភាពមួយចំនួនដូចជា វិញ្ញាបនបត្រដែលអ៊ីនគ្រីបដោយប្រើហាតវែរនឹងត្រូវបិទ។<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />អ្នកអាចផ្លាស់ប្ដូរការកំណត់ TPM របស់អ្នកដោយចាប់ផ្ដើមឡើងវិញ និងចូលការកំណត់ BIOS/UEFI ប្រព័ន្ធ។ ជំហានមានភាពខុសគ្នាផ្អែកលើម៉ូដែលឧបករណ៍។ ដើម្បីទទួលបានព័ត៌មានបន្ថែម សូមបើកឯកសារ <ph name="DEVICE_OS" /> នៅលើឧបករណ៍ដាច់ដោយឡែក មុនពេលអ្នកចាប់​ផ្ដើម​ឡើង​វិញ៖ [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{រកមិនឃើញ VM <ph name="VM_TYPE" /> ទេ}=1{បានរកឃើញ VM <ph name="VM_TYPE" /> 1៖ <ph name="VM_NAME_LIST" />}other{បានរកឃើញ VM <ph name="VM_TYPE" /> {NUM_VMS}៖ <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">មិនមាន​ការតភ្ជាប់​អ៊ីនធឺណិត​ទេ។</translation>
 <translation id="4998430619171209993">បើក</translation>
@@ -4009,7 +4003,6 @@
 <translation id="5127620150973591153">លេខសម្គាល់​ការតភ្ជាប់ដែលមានសុវត្ថិភាព៖ <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">សមកម្មបានបិទ</translation>
 <translation id="5127881134400491887">គ្រប់គ្រងការភ្ជាប់បណ្តាញ</translation>
-<translation id="5128774403617662387">មុនពេលចាប់ផ្ដើម សូមប្រាកដថា អ្នកមានការបម្រុងទុកទិន្នន័យរបស់អ្នក។ ការដំឡើង <ph name="DEVICE_OS" /> នឹងលុបពីលើថាស​រឹងរបស់អ្នក។ ស្វែងយល់បន្ថែម​តាមរយៈ៖ g.co/TBD។</translation>
 <translation id="512903556749061217">បានភ្ជាប់</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">មិនអាចទាញយកកម្រងព័ត៌មានបានទេ។ សូម​ព្យាយាម​ម្ដង​ទៀត​នៅ​ពេល​ក្រោយ ឬទាក់ទងក្រុមហ៊ុន​សេវាទូរសព្ទ ដើម្បីទទួលបានជំនួយ។</translation>
@@ -4526,7 +4519,6 @@
 <translation id="5659593005791499971">អ៊ីម៉េល</translation>
 <translation id="5659833766619490117">មិនអាច​បកប្រែ​ទំព័រនេះ​បានទេ</translation>
 <translation id="5662513737565158057">ផ្លាស់ប្ដូរ​របៀបដែលកម្មវិធី Linux នឹងដំណើរការ។</translation>
-<translation id="5667490069342183561">Google មិនទទួលខុសត្រូវចំពោះការបាត់បង់ទិន្នន័យទាំងឡាយឡើយ ហើយ <ph name="DEVICE_OS" /> អាចនឹងមិនដំណើរការនៅលើម៉ូដែលគ្មានការទទួលស្គាល់ទេ។ ស្វែងយល់បន្ថែម​តាមរយៈ៖ g.co/TBD។</translation>
 <translation id="5667546120811588575">កំពុង​រៀបចំ Google Play...</translation>
 <translation id="5668351004957198136">បរាជ័យ</translation>
 <translation id="56702779821643359">ចែករំលែកឯកសារ​ជាមួយ​មនុស្សនៅជុំវិញអ្នក។ <ph name="LINK_BEGIN" />ស្វែងយល់បន្ថែម<ph name="LINK_END" /></translation>
@@ -5338,9 +5330,6 @@
 <translation id="6528179044667508675">ហាមរំខាន</translation>
 <translation id="652948702951888897">ប្រវត្តិ Chrome</translation>
 <translation id="6530186581263215931">ការកំណត់ទាំងនេះ​ត្រូវបានអនុវត្តដោយ​អ្នកគ្រប់គ្រងរបស់អ្នក</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />ដើម្បីផ្ដល់នូវ​បទពិសោធន៍ប្រើប្រាស់​ដ៏ល្អបំផុត <ph name="DEVICE_OS" /> ប្រមូលទិន្នន័យហាតវែរ​អំពីឧបករណ៍ ហើយចែករំលែកទិន្នន័យនោះជាមួយ Google ដើម្បីកំណត់ថាតើ​កំណែថ្មីៗ​ណាខ្លះ​ដែលគួរផ្ដល់ជូន។ ជាជម្រើស អ្នកអាច​អនុញ្ញាតឱ្យ Google ប្រើទិន្នន័យនេះ​សម្រាប់គោលបំណងបន្ថែម​ដូចជា ជំនួយ និងការកែលម្អ​សេវាកម្មនិងបទពិសោធន៍​ប្រើប្រាស់ <ph name="DEVICE_OS" />។<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />អ្នកអាច​ចូល​នៅលើ​ឧបករណ៍នេះ រួចចូលទៅកាន់​ផ្នែក CLOUDREADY_HARDWARE_INFO នៅក្នុង chrome://system ដើម្បីមើលទិន្នន័យ​ដែល​ផ្ញើទៅ Google សម្រាប់​ត្រងកំណែថ្មី ក៏ដូចជា​ករណី​ផ្សេងទៀត​ដែលអ្នកជ្រើសរើស​ចែករំលែក​ទិន្នន័យ​ជាមួយ Google ផងដែរ។<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />ដើម្បីទទួលបាន​ព័ត៌មានលម្អិតបន្ថែម​ពាក់ព័ន្ធនឹង​ទិន្នន័យ​ដែល <ph name="DEVICE_OS" /> អាចចែករំលែក​ជាមួយ Google និងរបៀបដែលវាត្រូវបាន​ប្រើប្រាស់ សូមចូល​ទៅកាន់ g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">រក្សាឯកសារគ្រោះថ្នាក់</translation>
 <translation id="6532101170117367231">រក្សាទុក​ក្នុង Google ថាស</translation>
 <translation id="6532106788206463496">រក្សាទុក​ការ​ផ្លាស់ប្ដូរ</translation>
@@ -6029,15 +6018,6 @@
 <translation id="7258192266780953209">ការបំប្លែង</translation>
 <translation id="7258225044283673131">កម្មវិធី​មិនដំណើរ​ការទេ។ សូមជ្រើសរើស "បង្ខំឱ្យបិទ" ដើម្បីបិទ​កម្មវិធី។</translation>
 <translation id="7262004276116528033">សេវាកម្មចូលនេះត្រូវបានបង្ហោះដោយ <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />សាកល្បងជំហានដោះស្រាយបញ្ហាទាំងនេះ៖
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />ត្រូវប្រាកដថា ឧបករណ៍របស់អ្នកមានទំហំផ្ទុក​ខាង​ក្នុងដែលដំណើរការដូចជា HDD, SSD ឬ eMMC
-    <ph name="LIST_ITEM" />ពិនិត្យមើលថា ឧបករណ៍ទំហំផ្ទុកខាងក្នុងរបស់អ្នកធំជាង 16GB
-    <ph name="LIST_ITEM" />ពិនិត្យមើលការតភ្ជាប់ជាមួយទំហំផ្ទុកខាងក្នុង ប្រសិនបើអាចចូលមើលជាលក្ខណៈរូបវន្តបាន
-    <ph name="LIST_ITEM" />ត្រូវប្រាកដថា អ្នកកំពុងប្រើម៉ូដែល ដែលមានការទទួលស្គាល់ និងពិនិត្យមើលកំណត់សម្គាល់នៃការដំឡើង
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ដើម្បីទទួលបានជំនួយបន្ថែម សូមចូលទៅកាន់ g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">មិនអាច​ដំឡើង​ម៉ាស៊ីន​និម្មិត​បានទេ​។ សូម​ព្យាយាម​ម្ដងទៀត ឬ​ទាក់ទង​អ្នកគ្រប់គ្រង​របស់អ្នក​។ លេខ​កូដ​បញ្ហា៖ <ph name="ERROR_CODE" />។</translation>
 <translation id="7267875682732693301">បន្តលើកម្រាមដៃឡើង ដើម្បីបញ្ចូលផ្នែកផ្សេងទៀតនៃស្នាមម្រាមដៃរបស់អ្នក</translation>
 <translation id="7268127947535186412">ការកំណត់នេះត្រូវបានគ្រប់គ្រងដោយម្ចាស់ឧបករណ៍។</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index 54a4122..d5b6c3d4 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -2319,7 +2319,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ಸಾಧನವು ನಿಮ್ಮೊಂದಿಗೆ <ph name="ATTACHMENTS" /> ಹಂಚಿಕೊಳ್ಳುತ್ತಿದೆ.}one{<ph name="DEVICE_NAME" /> ಸಾಧನವು ನಿಮ್ಮೊಂದಿಗೆ <ph name="ATTACHMENTS" /> ಹಂಚಿಕೊಳ್ಳುತ್ತಿದೆ.}other{<ph name="DEVICE_NAME" /> ಸಾಧನವು ನಿಮ್ಮೊಂದಿಗೆ <ph name="ATTACHMENTS" /> ಹಂಚಿಕೊಳ್ಳುತ್ತಿದೆ.}}</translation>
 <translation id="3364986687961713424">ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಂದ: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl ಅಥವಾ Alt ಬಳಸಿ</translation>
-<translation id="3367057768351048705">ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಚಟುವಟಿಕೆಯನ್ನು ತಮ್ಮದೇ ಸೈಟ್‌ನಲ್ಲಿ ನೋಡಲು ಸೈಟ್‌ಗಳು ನಿಮ್ಮ ಕುಕೀಗಳನ್ನು ಮಾತ್ರ ಬಳಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ</translation>
 <translation id="3368922792935385530">ಕನೆಕ್ಟ್ ಆಗಿದೆ</translation>
 <translation id="3369067987974711168">ಈ ಪೋರ್ಟ್‌ಗೆ ಸಂಬಂಧಿಸಿದ ಇನ್ನಷ್ಟು ಕ್ರಮಗಳನ್ನು ತೋರಿಸಿ</translation>
 <translation id="3369624026883419694">ಹಾಸ್ಟ್ ಅನ್ನು ನಿವಾರಿಸಲಾಗುತ್ತಿದೆ...</translation>
@@ -2961,8 +2960,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> ಸಕ್ರಿಯಗೊಳಿಸು</translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" /> ಅವಧಿಗಾಗಿ ಸಮೀಪದಲ್ಲಿರುವ ಸಾಧನಗಳಿಗೆ <ph name="DEVICE_NAME" /> ಆಗಿ ಗೋಚರಿಸುತ್ತದೆ...</translation>
 <translation id="3981760180856053153">ಅಮಾನ್ಯವಾದ ಉಳಿಸು ಪ್ರಕಾರವನ್ನು ನಮೂದಿಸಲಾಗಿದೆ.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />ಏನೋ ತಪ್ಪಾಗಿದೆ ಹಾಗೂ <ph name="DEVICE_OS" /> ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.<ph name="END_PARAGRAPH1" />
-    ಹೆಚ್ಚಿನ ಸಹಾಯಕ್ಕಾಗಿ <ph name="BEGIN_PARAGRAPH2" />g.co/xxxxx<ph name="END_PARAGRAPH2" /> ಗೆ ಭೇಟಿ ನೀಡಿ</translation>
 <translation id="3982375475032951137">ಕೆಲವೇ ಸರಳ ಹಂತಗಳಲ್ಲಿ ನಿಮ್ಮ ಬ್ರೌಸರ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿ</translation>
 <translation id="3983400541576569538">ಕೆಲವು ಆ್ಯಪ್‌ಗಳ ಡೇಟಾ ನಷ್ಟವಾಗಬಹುದು</translation>
 <translation id="3983586614702900908">ಅಪರಿಚಿತ ಮಾರಾಟಗಾರರಿಂದ ಸಾಧನಗಳು</translation>
@@ -3882,9 +3879,6 @@
 <translation id="4992984395680162305">ಈ ಸಾಧನಗಳನ್ನು QR ಕೋಡ್ ಸ್ಕ್ಯಾನ್ ಮಾಡುವ ಮೂಲಕ ಲಿಂಕ್ ಮಾಡಲಾಗಿದೆ.</translation>
 <translation id="4994474651455208930">ಪ್ರೊಟೋಕಾಲ್‌ಗಳಿಗಾಗಿ ಡಿಫಾಲ್ಟ್ ಹ್ಯಾಂಡ್ಲರ್‌‌ಗಳಾಗಲು ಸೈಟ್‌ಗಳನ್ನು ಅನುಮತಿಸಿ</translation>
 <translation id="4994754230098574403">ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />ನೋಂದಾಯಿಸುವ ಮೊದಲು ನೀವು TPM ಅನ್ನು ತೆರವುಗೊಳಿಸಬೇಕು, ಆದ್ದರಿಂದ ಸಾಧನದ ಮಾಲೀಕತ್ವವನ್ನು <ph name="DEVICE_OS" /> ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ನೀವು TPM ಸಾಧನವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಆಫ್ ಮಾಡಬಹುದು. ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಇನ್ನೂ ಸಾಫ್ಟ್‌ವೇರ್ ಎನ್‌ಕ್ರಿಪ್ಶನ್‌ನ ಮೂಲಕ ಸುರಕ್ಷಿತವಾಗಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಹಾರ್ಡ್‌ವೇರ್ ಬೆಂಬಲಿತ ಪ್ರಮಾಣಪತ್ರಗಳಂತಹ ಕೆಲವು ಭದ್ರತಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />ರೀಬೂಟ್ ಮಾಡುವ ಮೂಲಕ ಮತ್ತು ಸಿಸ್ಟಂ BIOS/UEFI ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನಮೂದಿಸುವ ಮೂಲಕ ನಿಮ್ಮ TPM ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನೀವು ಬದಲಾಯಿಸಬಹುದು. ಸಾಧನದ ಮಾದರಿಯನ್ನು ಆಧರಿಸಿ ಹಂತಗಳು ಬದಲಾಗುತ್ತವೆ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನೀವು ರೀಬೂಟ್ ಮಾಡುವ ಮೊದಲು <ph name="DEVICE_OS" /> ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಅನ್ನು ಪ್ರತ್ಯೇಕ ಸಾಧನದಲ್ಲಿ ತೆರೆಯಿರಿ: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{ಯಾವುದೇ <ph name="VM_TYPE" /> VM ಗಳು ಕಂಡುಬಂದಿಲ್ಲ}=1{1 <ph name="VM_TYPE" /> VM ಕಂಡುಬಂದಿದೆ: <ph name="VM_NAME_LIST" />}one{{NUM_VMS} <ph name="VM_TYPE" /> VM ಗಳು ಕಂಡುಬಂದಿವೆ: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> VM ಗಳು ಕಂಡುಬಂದಿವೆ: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವಿಲ್ಲ.</translation>
 <translation id="4998430619171209993">ಆನ್‌</translation>
@@ -4002,7 +3996,6 @@
 <translation id="5127620150973591153">ಭದ್ರತಾ ಸಂಪರ್ಕ ಐಡಿ: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">ಸಿಂಕ್‌ ಆಫ್‌ ಆಗಿದೆ</translation>
 <translation id="5127881134400491887">ನೆಟ್‌ವರ್ಕ್‌ ಸಂಪರ್ಕಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
-<translation id="5128774403617662387">ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, ನಿಮ್ಮ ಡೇಟಾದ ಬ್ಯಾಕಪ್ ನಿಮ್ಮ ಬಳಿ ಇದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. <ph name="DEVICE_OS" /> ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವುದರಿಂದ ನಿಮ್ಮ ಹಾರ್ಡ್ ಡ್ರೈವ್‌ನಲ್ಲಿ ಓವರ್‌ವ್ರೈಟ್ ಮಾಡುತ್ತದೆ. g.co/TBD ನಲ್ಲಿ ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ.</translation>
 <translation id="512903556749061217">ಲಗತ್ತಿಸಲಾಗಿದೆ</translation>
 <translation id="5130080518784460891">ಈಟೆನ್</translation>
 <translation id="5130675701626084557">ಪ್ರೊಫೈಲ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ ಸಹಾಯಕ್ಕಾಗಿ ವಾಹಕವನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
@@ -4519,7 +4512,6 @@
 <translation id="5659593005791499971">ಇಮೇಲ್</translation>
 <translation id="5659833766619490117">ಈ ಪುಟವನ್ನು ಅನುವಾದಿಸಲಾಗುವುದಿಲ್ಲ</translation>
 <translation id="5662513737565158057">Linux ಆ್ಯಪ್‌ಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸಬೇಕು ಎಂಬುದನ್ನು ಬದಲಾಯಿಸಿ.</translation>
-<translation id="5667490069342183561">ಯಾವುದೇ ಡೇಟಾ ನಷ್ಟಕ್ಕೆ Google ಜವಾಬ್ದಾರನಾಗಿರುವುದಿಲ್ಲ ಮತ್ತು ಪ್ರಮಾಣೀಕರಿಸದ ಮಾದರಿಗಳಲ್ಲಿ <ph name="DEVICE_OS" /> ಕೆಲಸ ಮಾಡದಿರಬಹುದು. g.co/TBD ನಲ್ಲಿ ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ.</translation>
 <translation id="5667546120811588575">Google Play ಅನ್ನು ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="5668351004957198136">ವಿಫಲ</translation>
 <translation id="56702779821643359">ನಿಮ್ಮ ಸುತ್ತಲಿನ ಜನರ ಜೊತೆಗೆ ಫೈಲ್‌ಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಿ. <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="LINK_END" /></translation>
@@ -5331,9 +5323,6 @@
 <translation id="6528179044667508675">ಅಡಚಣೆ ಮಾಡಬೇಡಿ</translation>
 <translation id="652948702951888897">Chrome ಇತಿಹಾಸ</translation>
 <translation id="6530186581263215931">ಈ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಜಾರಿಗೊಳಿಸಿದ್ದಾರೆ</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />ಅತ್ಯುತ್ತಮ ಅನುಭವವನ್ನು ಒದಗಿಸಲು, <ph name="DEVICE_OS" /> ಸಾಧನಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಹಾರ್ಡ್‌ವೇರ್‌ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ಯಾವೆಲ್ಲ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಒದಗಿಸಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಆ ಡೇಟಾವನ್ನು Google ಜೊತೆ ಹಂಚಿಕೊಳ್ಳುತ್ತದೆ. ಐಚ್ಛಿಕವಾಗಿ, <ph name="DEVICE_OS" /> ನ ಅನುಭವ ಮತ್ತು ಸೇವೆಯನ್ನು ಸುಧಾರಿಸುವ ಮತ್ತು ಬೆಂಬಲಿಸುವಂತಹ ಹೆಚ್ಚುವರಿ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಈ ಡೇಟಾವನ್ನು ಬಳಸಲು ನೀವು Google ಗೆ ಅನುಮತಿಸಬಹುದು.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ಅಪ್‌ಡೇಟ್ ಫಿಲ್ಟರ್ ಮಾಡುವಿಕೆಗಾಗಿ Google ಗೆ ಕಳುಹಿಸಲಾಗಿರುವ ಡೇಟಾವನ್ನು ನೋಡಲು, ಅಷ್ಟೇ ಅಲ್ಲದೇ ನೀವು Google ಜೊತೆ ಡೇಟಾ ಹಂಚಿಕೊಳ್ಳುವ ಆಯ್ಕೆಯನ್ನು ಮಾಡಿದ ಯಾವುದೇ ಇತರ ಸನ್ನಿವೇಶಗಳನ್ನು ನೋಡಲು ನೀವು ಈ ಸಾಧನದಲ್ಲಿ ಲಾಗ್‌ ಇನ್‌ ಮಾಡಿ, CLOUDREADY_HARDWARE_INFO ವಿಭಾಗಕ್ಕೆ ಭೇಟಿ ನೀಡಬಹುದು.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> Google ಜೊತೆ ಹಂಚಿಕೊಳ್ಳಬಹುದಾದ ಡೇಟಾದ ಕುರಿತು ಮತ್ತು ಅದನ್ನು ಹೇಗೆ ಬಳಸಲಾಗುತ್ತದೆ ಎಂಬುದರ ಕುರಿತು ಇನ್ನಷ್ಟು ಮಾಹಿತಿಗಾಗಿ g.co/xxxxx ಗೆ ಭೇಟಿ ನೀಡಿ<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">ಅಪಾಯಕಾರಿ ಫೈಲ್ ಇರಿಸು</translation>
 <translation id="6532101170117367231">Google ಡ್ರೈವ್‌ನಲ್ಲಿ ಉಳಿಸಿ</translation>
 <translation id="6532106788206463496">ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಿ</translation>
@@ -6023,15 +6012,6 @@
 <translation id="7258192266780953209">ಪರಿವರ್ತನೆಗಳು</translation>
 <translation id="7258225044283673131">ಅಪ್ಲಿಕೇಶನ್ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತಿಲ್ಲ. ಆ್ಯಪ್ ಅನ್ನು ಮುಚ್ಚಲು "ಬಲವಂತವಾಗಿ ಮುಚ್ಚಿ" ಆಯ್ಕೆಮಾಡಿ.</translation>
 <translation id="7262004276116528033">ಈ ಸೈನ್ ಇನ್ ಸೇವೆಯನ್ನು <ph name="SAML_DOMAIN" /> ಮೂಲಕ ಹೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />ಈ ಕೆಳಗಿನ ಸಮಸ್ಯೆ ನಿವಾರಣೆ ಹಂತಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿ:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />ನಿಮ್ಮ ಸಾಧನವು HDD, SSD, ಅಥವಾ eMMC ನಂತಹ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಆಂತರಿಕ ಸಂಗ್ರಹಣೆ ಹೊಂದಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ
-    <ph name="LIST_ITEM" />ನಿಮ್ಮ ಆಂತರಿಕ ಸಂಗ್ರಹಣೆ ಸಾಧನವು 16GB ಗಿಂತ ಹೆಚ್ಚಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ
-    <ph name="LIST_ITEM" />ದೈಹಿಕವಾಗಿ ಪ್ರವೇಶಿಸಬಹುದಾದರೆ, ಆಂತರಿಕ ಸಂಗ್ರಹಣೆಗೆ ಇರುವ ಕನೆಕ್ಷನ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ
-    <ph name="LIST_ITEM" />ನೀವು ಪ್ರಮಾಣೀಕೃತ ಮಾದರಿಯನ್ನು ಬಳಸುತ್ತಿರುವಿರಾ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ಇನ್‌ಸ್ಟಾಲ್ ಟಿಪ್ಪಣಿಗಳನ್ನು ಪರಿಶೀಲಿಸಿ
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ಹೆಚ್ಚಿನ ಸಹಾಯಕ್ಕಾಗಿ ಇಲ್ಲಿಗೆ ಭೇಟಿ ನೀಡಿ: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ. ದೋಷ ಕೋಡ್: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">ನಿಮ್ಮ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್‌ನ ವಿವಿಧ ಭಾಗಗಳನ್ನು ಸೇರಿಸಲು ನಿಮ್ಮ ಬೆರಳನ್ನು ಎತ್ತುತ್ತಲಿರಿ</translation>
 <translation id="7268127947535186412">ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಾಧನದ ಮಾಲೀಕರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ.</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 7edb86c..13e27382 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" />에서 <ph name="ATTACHMENTS" />을(를) 공유 중입니다.}other{<ph name="DEVICE_NAME" />에서 <ph name="ATTACHMENTS" />을(를) 공유 중입니다.}}</translation>
 <translation id="3364986687961713424">관리자의 메시지: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl 또는 Alt 키 중에 하나만 사용하세요</translation>
-<translation id="3367057768351048705">사이트는 사용자의 사이트 내 탐색 활동을 보기 위해서만 쿠키를 사용할 수 있습니다.</translation>
 <translation id="3368922792935385530">연결됨</translation>
 <translation id="3369067987974711168">이 포트에 관한 작업 더보기</translation>
 <translation id="3369624026883419694">호스트 알아내는 중...</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> 사용</translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" /> 동안 주변 기기에 <ph name="DEVICE_NAME" />(으)로 표시됩니다.</translation>
 <translation id="3981760180856053153">잘못된 저장 유형을 입력했습니다.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />문제가 발생하여 <ph name="DEVICE_OS" />을 설치할 수 없습니다.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />도움이 필요한 경우 g.co/xxxxx 페이지를 참고하세요<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">몇 단계 만에 간단하게 브라우저를 설정하세요.</translation>
 <translation id="3983400541576569538">일부 앱 데이터가 사라질 수 있습니다.</translation>
 <translation id="3983586614702900908">알 수 없는 공급업체의 기기</translation>
@@ -3886,9 +3883,6 @@
 <translation id="4992984395680162305">기기가 QR 코드 스캔을 통해 연결되었습니다.</translation>
 <translation id="4994474651455208930">사이트에서 프로토콜 기본 핸들러로 사용할지 여부를 묻도록 허용</translation>
 <translation id="4994754230098574403">설정 중입니다.</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />등록하기 전에 <ph name="DEVICE_OS" />에서 기기 소유권을 가질 수 있도록 TPM을 삭제해야 합니다.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />TPM 기기를 완전히 끌 수도 있습니다. 데이터는 소프트웨어 암호화를 통해 계속 안전하게 저장되지만 하드웨어 지원 인증서와 같은 특정 보안 기능은 중지됩니다.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />재부팅하고 시스템 BIOS/UEFI 설정을 입력하여 TPM 설정을 변경할 수 있습니다. 기기 모델에 따라 설정을 변경하는 단계가 다를 수 있습니다. 자세한 내용은 재부팅하기 전에 별도의 기기에서 <ph name="DEVICE_OS" /> 문서를 여세요. [URL 링크]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> VM 없음}=1{<ph name="VM_TYPE" /> VM 1개 발견됨: <ph name="VM_NAME_LIST" />}other{<ph name="VM_TYPE" /> VM {NUM_VMS}개 발견됨: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">인터넷에 연결되지 않았습니다.</translation>
 <translation id="4998430619171209993">사용</translation>
@@ -4006,7 +4000,6 @@
 <translation id="5127620150973591153">보안 연결 ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">동기화 사용 안함</translation>
 <translation id="5127881134400491887">네트워크 연결 관리</translation>
-<translation id="5128774403617662387">시작하기 전에 데이터 백업이 있는지 확인하세요. <ph name="DEVICE_OS" />을 설치하면 하드 드라이브가 덮어쓰기됩니다. g.co/TBD에서 자세히 알아보세요.</translation>
 <translation id="512903556749061217">첨부됨</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">프로필을 다운로드할 수 없습니다. 나중에 다시 시도하거나 이동통신사에 문의하세요.</translation>
@@ -4522,7 +4515,6 @@
 <translation id="5659593005791499971">이메일</translation>
 <translation id="5659833766619490117">페이지를 번역할 수 없음</translation>
 <translation id="5662513737565158057">Linux 앱의 작동방식을 변경합니다.</translation>
-<translation id="5667490069342183561">Google에서는 데이터 손실에 대해 책임지지 않으며 <ph name="DEVICE_OS" />은 인증되지 않은 모델에서는 작동하지 않을 수 있습니다. g.co/TBD에서 자세히 알아보세요.</translation>
 <translation id="5667546120811588575">Google Play 설정 중...</translation>
 <translation id="5668351004957198136">실패</translation>
 <translation id="56702779821643359">주변의 사람들과 파일을 공유하세요. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
@@ -5334,9 +5326,6 @@
 <translation id="6528179044667508675">방해 금지 모드</translation>
 <translation id="652948702951888897">Chrome 방문 기록</translation>
 <translation id="6530186581263215931">이 설정은 관리자가 시행합니다.</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />최상의 사용자 경험을 제공하기 위해 <ph name="DEVICE_OS" />에서는 어떤 업데이트가 전송되어야 하는지 결정하고자 기기의 하드웨어 데이터를 수집하여 Google과 공유합니다. <ph name="DEVICE_OS" /> 사용자 경험과 서비스 지원 개선이라는 추가적인 목적을 위해 사용자가 Google에서 이 데이터를 사용하도록 허용할 수도 있습니다.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />이 기기에 로그인한 후 chrome://system의 CLOUDREADY_HARDWARE_INFO 섹션으로 이동하면 업데이트 필터링을 사용하여 Google에 전송되는 데이터를 확인할 수 있으며, Google과 데이터를 공유하도록 선택한 다른 항목도 살펴볼 수 있습니다.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" />에서 Google과 공유할 수 있는 데이터와 데이터가 사용되는 방식에 관해 자세히 알아보려면 g.co/xxxxx 페이지로 이동하세요.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">위험한 파일 보관</translation>
 <translation id="6532101170117367231">Google Drive에 저장</translation>
 <translation id="6532106788206463496">변경사항 저장</translation>
@@ -6025,15 +6014,6 @@
 <translation id="7258192266780953209">Transformations(변환)</translation>
 <translation id="7258225044283673131">애플리케이션이 응답하지 않습니다. '강제 종료'를 선택하여 앱을 닫으세요.</translation>
 <translation id="7262004276116528033">이 로그인 서비스는 <ph name="SAML_DOMAIN" />에서 호스팅됩니다.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />다음 문제 해결 단계를 시도해 보세요.
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />기기에 HDD, SSD 또는 eMMC와 같은 내부 저장소가 설치되어 있고 정상 작동하는지 확인하세요.
-    <ph name="LIST_ITEM" />내부 저장소가 16GB 이상인지 확인하세요.
-    <ph name="LIST_ITEM" />내부 저장소 연결을 물리적으로 확인할 수 있으면 점검하세요.
-    <ph name="LIST_ITEM" />인증된 모델을 사용하고 있는지 확인하고 설치 노트를 확인하세요.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />도움이 필요한 경우 g.co/xxxxx 페이지를 참고하세요.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">가상 머신을 설치할 수 없습니다. 다시 시도하거나 관리자에게 문의하세요. 오류 코드: <ph name="ERROR_CODE" /></translation>
 <translation id="7267875682732693301">손가락을 뗀 후 다시 터치하여 지문의 다른 부분을 추가하세요.</translation>
 <translation id="7268127947535186412">기기 소유자가 관리하는 설정입니다.</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index 9d1b572..f87770f 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> сиз менен <ph name="ATTACHMENTS" /> бөлүшүүдө}other{<ph name="DEVICE_NAME" /> сиз менен <ph name="ATTACHMENTS" /> бөлүшүүдө}}</translation>
 <translation id="3364986687961713424">Администраторуңуздан билдирүү: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Же Ctrl, же Alt колдонулсун</translation>
-<translation id="3367057768351048705">Сайттар cookie файлдары аркылуу гана сайтында көрүлгөн барактарды көрө алышат</translation>
 <translation id="3368922792935385530">Туташты</translation>
 <translation id="3369067987974711168">Бул оюкчага тиешелүү башка аракеттерди көрүү</translation>
 <translation id="3369624026883419694">Хост чечилүүдө…</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> иштетүү</translation>
 <translation id="3981058120448670012">Жакын жердеги түзмөктөргө <ph name="DEVICE_NAME" /> катары <ph name="REMAINING_TIME" /> көрүнүп турат...</translation>
 <translation id="3981760180856053153">Жараксыз сактоо түрү киргизилди.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Бир жерден ката кетип, <ph name="DEVICE_OS" /> орнотулган жок.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Жардам алуу үчүн g.co/xxxxx бөлүмүнө өтүңүз<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Бир нече жөнөкөй кадамдарды аткарып, серепчиңизди жөндөп алыңыз</translation>
 <translation id="3983400541576569538">Айрым колдонмолордогу дайындар жоголуп кетиши мүмкүн</translation>
 <translation id="3983586614702900908">белгисиз жөнөтүүчүнүн түзмөктөрү</translation>
@@ -3889,9 +3886,6 @@
 <translation id="4992984395680162305">Бул түзмөктөр QR кодун скандоо аркылуу туташтырылды.</translation>
 <translation id="4994474651455208930">Сайттарга протоколдорду демейки шартта сурап туруп орнотууга уруксат берүү</translation>
 <translation id="4994754230098574403">Орнотулууда</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Катталуудан мурун <ph name="DEVICE_OS" /> түзмөктү ээлей ала тургандай кылып TPM түзмөгүн тазалашыңыз керек.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ошондой эле, TPM түзмөгүн толугу менен өчүрө аласыз. Дайын-даректериңиз программалык шифрлөө менен коопсуз сакталат, бирок аппараттык камсыздоо колдоого алган тастыктамалар сыяктуу айрым коопсуздук функциялары өчөт.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />TPM параметрлериңизди өзгөртүү үчүн түзмөктү өчүрүп-күйгүзүп, тутумдун BIOS/UEFI параметрлерине кириңиз. Кадамдар түзмөктүн үлгүсүнө жараша айырмаланат. Кеңири маалымат алуу үчүн өчүрүп-күйгүзүүдөн мурун <ph name="DEVICE_OS" /> документтерин өзүнчө түзмөктө ачыңыз: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> виртуалдык машиналары табылган жок}=1{1 <ph name="VM_TYPE" /> виртуалдык машинасы табылды: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> виртуалдык машинасы табылды: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Интернет жок.</translation>
 <translation id="4998430619171209993">Күйүк</translation>
@@ -4009,7 +4003,6 @@
 <translation id="5127620150973591153">Коопсуз байланыш идентификатору: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Шайкештештирүү өчүк</translation>
 <translation id="5127881134400491887">Тармак туташууларын башкаруу</translation>
-<translation id="5128774403617662387">Баштоодон мурун дайын-даректериңиздин камдык көчүрмөсүн сактап койгонуңузду текшериңиз. <ph name="DEVICE_OS" /> тутумун орнотсоңуз, катуу дискиңиз кайрадан жазылат. Кеңири маалымат: g.co/TBD.</translation>
 <translation id="512903556749061217">тиркелген</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Профиль жүктөлүп алынган жок. Кийинчерээк кайталаңыз же жардам алуу үчүн байланыш операторуна кайрылыңыз.</translation>
@@ -4525,7 +4518,6 @@
 <translation id="5659593005791499971">Электрондук почта</translation>
 <translation id="5659833766619490117">Бул барак которулбай койду</translation>
 <translation id="5662513737565158057">Linux колдонмолору кантип иштерин өзгөртүңүз.</translation>
-<translation id="5667490069342183561">Google дайын-даректердин жоголушуна жоопкерчилик тартпайт, ошондой эле <ph name="DEVICE_OS" /> тастыкталбаган түзмөктөрдө иштебеши мүмкүн. Кеңири маалымат: g.co/TBD.</translation>
 <translation id="5667546120811588575">Google Play жөндөлүүдө…</translation>
 <translation id="5668351004957198136">Ийгиликсиз</translation>
 <translation id="56702779821643359">Файлдарды айланаңыздагы адамдар менен бөлүшүңүз. <ph name="LINK_BEGIN" />Кеңири маалымат<ph name="LINK_END" /></translation>
@@ -5337,9 +5329,6 @@
 <translation id="6528179044667508675">Тынчымды алба</translation>
 <translation id="652948702951888897">Chrome таржымалы</translation>
 <translation id="6530186581263215931">Бул жөндөөлөрдү администраторуңуз күчүнө киргизген</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Мыкты иштеши үчүн <ph name="DEVICE_OS" /> аппараттык камсыздоодогу түзмөктөр тууралуу маалыматты чогултуп, аны Google менен бөлүшүп, кандай жаңыртуулар керек экенин аныктап турат. Кааласаңыз, Google'га мындай маалыматты <ph name="DEVICE_OS" /> тутумунун иштешин жана кызматты жакшыртуу жана колдоо көрсөтүү сыяктуу кошумча максаттар үчүн колдонууга уруксат берсеңиз болот.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Жаңыртууларды чыпкалоо максатында Google'га жөнөтүлгөн маалыматты көрүү, ошондой эле Google менен маалымат бөлүшкүңүз келген башка учурларда бул түзмөктөн кирип, chrome://system сайтындагы CLOUDREADY_HARDWARE_INFO бөлүмүнө баш багыңыз.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> Google менен кайсы маалыматты бөлүшө турганын жана ал кандайча колдонула турганын билүү үчүн төмөнкү жерге өтүңүз: g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Бул коркунучтуу файл сакталсын</translation>
 <translation id="6532101170117367231">Google Drive'да сактоо</translation>
 <translation id="6532106788206463496">Өзгөрүүлөрдү сактоо</translation>
@@ -6028,15 +6017,6 @@
 <translation id="7258192266780953209">Трансформациялар</translation>
 <translation id="7258225044283673131">Колдонмо жооп бербей жатат. Аны жабуу үчүн "Мажбурлап токтотуу" баскычын басыңыз.</translation>
 <translation id="7262004276116528033">Кирүү кызматы <ph name="SAML_DOMAIN" /> доменинде жайгашкан</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Төмөнкү бузулууларды аныктап оңдоо кадамдарын аткарып көрүңүз:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Түзмөгүңүздө HDD, SSD же eMMC сыяктуу ички сактагыч (иштей турган) бар экенин текшериңиз
-    <ph name="LIST_ITEM" />Ички сактагыч түзмөктүн өлчөмү 16 Гб жогору болушу керек
-    <ph name="LIST_ITEM" />Физикалык жактан жеткиликтүү болсо, ички сактагычка туташууну текшериңиз
-    <ph name="LIST_ITEM" />Тастыктамасы бар үлгүнү колдонуп жатканыңызды текшерип, орнотуу боюнча эскертмелерди карап чыгыңыз
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Көбүрөөк жардам алуу үчүн төмөнкү баракка өтүңүз: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Виртуалдык машина орнотулган жок. Кайталап көрүңүз же администраторго кайрылыңыз. Ката коду: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Манжаңызды толугу менен скандоо үчүн акырындык менен жылдырыңыз</translation>
 <translation id="7268127947535186412">Бул жөндөөнү түзмөктүн ээси башкарууда.</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index c1d61f3..91643e4 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -2324,7 +2324,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ກຳລັງແບ່ງປັນ <ph name="ATTACHMENTS" /> ກັບທ່ານ.}other{<ph name="DEVICE_NAME" /> ກຳລັງແບ່ງປັນ <ph name="ATTACHMENTS" /> ກັບທ່ານ.}}</translation>
 <translation id="3364986687961713424">ຈາກຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">ໃຊ້ Ctrl ຫຼື Alt</translation>
-<translation id="3367057768351048705">ເວັບໄຊຕ່າງໆສາມາດໃຊ້ຄຸກກີ້ຂອງທ່ານເພື່ອເບິ່ງການເຄື່ອນໄຫວການທ່ອງເວັບຂອງທ່ານຢູ່ເວັບໄຊຂອງພວກມັນເອງໄດ້ເທົ່ານັ້ນ</translation>
 <translation id="3368922792935385530">ເຊື່ອມ​ຕໍ່​ແລ້ວ</translation>
 <translation id="3369067987974711168">ສະແດງຄຳສັ່ງເພີ່ມເຕີມສຳລັບຜອດນີ້</translation>
 <translation id="3369624026883419694">ກໍາລັງແກ້ໄຂ​ແມ່​ຂ່າຍ...</translation>
@@ -2965,8 +2964,6 @@
 <translation id="3979748722126423326">ເປີດໃຊ້ງານ <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">ເບິ່ງເຫັນຕໍ່ກັບອຸປະກອນທີ່ຢູ່ໃກ້ຄຽງເປັນ <ph name="DEVICE_NAME" /> ສຳລັບ <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">ປະເພດບັນທຶກທີ່ໃຊ້ບໍ່ໄດ້ປ້ອນ​ເຂົ້າ​ແລ້ວ.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />ມີບາງຢ່າງຜິດພາດເກີດຂຶ້ນ ແລະ ບໍ່ສາມາດຕິດຕັ້ງ <ph name="DEVICE_OS" /> ໄດ້.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ສຳລັບຄວາມຊ່ວຍເຫຼືອເພີ່ມເຕີມ, ກະລຸນາເຂົ້າໄປ: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">ຕັ້ງຄ່າໂປຣແກຣມທ່ອງເວັບຂອງທ່ານໃນສອງສາມຂັ້ນຕອນ</translation>
 <translation id="3983400541576569538">ຂໍ້ມູນຈາກບາງແອັບອາດຈະສູນເສຍ</translation>
 <translation id="3983586614702900908">ອຸ​ປະ​ກອນ​ຈາກ​ຜູ້​ຂາຍ​ທີ່​ບໍ່​ຮູ້​ຈັກ</translation>
@@ -3886,9 +3883,6 @@
 <translation id="4992984395680162305">ອຸປະກອນເຫຼົ່ານີ້ຖືກລິ້ງໂດຍການສະແກນລະຫັດ QR.</translation>
 <translation id="4994474651455208930">ອະນຸຍາດໃຫ້ເວັບໄຊຮ້ອງຂໍເປັນຕົວຈັດການເລີ່ມຕົ້ນສຳລັບໂປຣໂຕຄໍ</translation>
 <translation id="4994754230098574403">ກໍາລັງຕັ້ງຄ່າ</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />ກ່ອນການລົງທະບຽນທ່ານຈະຕ້ອງລຶບລ້າງ TPM ກ່ອນເພື່ອໃຫ້ <ph name="DEVICE_OS" /> ສາມາດຮັບຄວາມເປັນເຈົ້າຂອງອຸປະກອນໄດ້.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ທ່ານສາມາດປິດອຸປະກອນ TPM ທັງໝົດໄດ້ນຳ. ຂໍ້ມູນຂອງທ່ານຈະຖືກຈັດເກັບໄວ້ຢ່າງປອດໄພດ້ວຍການເຂົ້າລະຫັດຊອບແວ, ແຕ່ຄຸນສົມບັດຄວາມປອດໄພບາງຢ່າງ ເຊັ່ນ: ໃບຮັບຮອງທີ່ໃຊ້ຮາດແວຈະຖືກປິດການນຳໃຊ້ໄວ້.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />ທ່ານສາມາດປ່ຽນການຕັ້ງຄ່າ TPM ຂອງທ່ານໄດ້ໂດຍການປິດເປີດໃໝ່ແລ້ວເຂົ້າໄປການຕັ້ງຄ່າ BIOS/UEFI ຂອງລະບົບ. ຂັ້ນຕອນຕ່າງໆແມ່ນແຕກຕ່າງກັນໄປຂຶ້ນກັບໂມເດວຂອງອຸປະກອນ. ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ໃຫ້ເປີດເອກະສານ <ph name="DEVICE_OS" /> ຢູ່ອຸປະກອນແຍກຕ່າງຫາກກ່ອນທີ່ທ່ານຈະປິດເປີດໃໝ່: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{ບໍ່ພົບ VM <ph name="VM_TYPE" />}=1{ພົບ 1 VM <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{ພົບ {NUM_VMS} VM <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">ບໍ່ມີການເຊື່ອມຕໍ່ອິນເຕີເນັດ.</translation>
 <translation id="4998430619171209993">ເປີດ</translation>
@@ -4006,7 +4000,6 @@
 <translation id="5127620150973591153">ໄອດີການເຊື່ອມຕໍ່ທີ່ປອດໄພ: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">ຊິງ​ຄ໌​ປິດ</translation>
 <translation id="5127881134400491887">ຈັດການເລື່ອງການ​ເຊື່ອມ​ຕໍ່​ເຄືອ​ຂ່າຍ</translation>
-<translation id="5128774403617662387">ກ່ອນການເລີ່ມຕົ້ນ, ໃຫ້ກວດສອບວ່າທ່ານໄດ້ສຳຮອງຂໍ້ມູນຂອງທ່ານໄວ້ແລ້ວ. ການຕິດຕັ້ງ <ph name="DEVICE_OS" /> ຈະຂຽນທັບຂໍ້ມູນໃນຮາດໄດຣຟ໌ຂອງທ່ານ. ສຶກສາເພີ່ມເຕີມຢູ່ g.co/TBD.</translation>
 <translation id="512903556749061217">ຄັດຕິດແລ້ວ</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">ບໍ່ສາມາດດາວໂຫຼດໂປຣໄຟລ໌ໄດ້. ກະລຸນາລອງໃໝ່ໃນພາຍຫຼັງ ຫຼື ຕິດຕໍ່ຜູ້ໃຫ້ບໍລິການເພື່ອຂໍຄວາມຊ່ວຍເຫຼືອ.</translation>
@@ -4521,7 +4514,6 @@
 <translation id="5659593005791499971">ອີເມວ</translation>
 <translation id="5659833766619490117">ບໍ່ສາມາດແປໜ້ານີ້ໄດ້</translation>
 <translation id="5662513737565158057">ປ່ຽນວ່າຈະໃຫ້ແອັບ Linux ເຮັດວຽກແນວໃດ.</translation>
-<translation id="5667490069342183561">Google ບໍ່ຮັບຜິດຊອບຕໍ່ການສູນເສຍຂໍ້ມູນໃດກໍຕາມ ແລະ <ph name="DEVICE_OS" /> ອາດບໍ່ເຮັດວຽກຢູ່ໂມເດວທີ່ບໍ່ໄດ້ຮັບການຮັບຮອງ. ສຶກສາເພີ່ມເຕີມຢູ່ g.co/TBD.</translation>
 <translation id="5667546120811588575">ກຳລັງຕັ້ງຄ່າ Google Play...</translation>
 <translation id="5668351004957198136">ບໍ່ສຳເລັດ</translation>
 <translation id="56702779821643359">ແບ່ງປັນໄຟລ໌ກັບຄົນອ້ອມຂ້າງທ່ານ. <ph name="LINK_BEGIN" />ສຶກສາເພີ່ມເຕີມ<ph name="LINK_END" /></translation>
@@ -5333,9 +5325,6 @@
 <translation id="6528179044667508675">ຢ່າລົບ​ກວນ</translation>
 <translation id="652948702951888897">ປະຫວັດ Chrome</translation>
 <translation id="6530186581263215931">ການຕັ້ງຄ່າເຫຼົ່ານີ້ຖືກບັງຄັບໃຊ້ໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />ເພື່ອມອບປະສົບການທີ່ດີທີ່ສຸດ, <ph name="DEVICE_OS" /> ຈະມີການເກັບກຳຂໍ້ມູນຮາດແວກ່ຽວກັບອຸປະກອນຕ່າງໆ ແລະ ແບ່ງປັນມັນໃຫ້ກັບ Google ເພື່ອກວດສອບວ່າຄວນຈັດສົ່ງອັບເດດອັນໃດ. ຫຼືຖ້າບໍ່ດັ່ງນັ້ນ, ທ່ານສາມາດອະນຸຍາດໃຫ້ Google ໃຊ້ຂໍ້ມູນນີ້ເພື່ອຈຸດປະສົງເພີ່ມເຕີມໄດ້ ເຊັ່ນ: ການສະໜັບສະໜຸນ ແລະ ການປັບປຸງປະສົບການ ແລະ ບໍລິການຂອງ <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ທ່ານສາມາດເຂົ້າສູ່ລະບົບຢູ່ອຸປະກອນນີ້ ແລະ ເຂົ້າໄປພາກສ່ວນ CLOUDREADY_HARDWARE_INFO ໃນ chrome://system ເພື່ອເບິ່ງຂໍ້ມູນທີ່ສົ່ງໄປໃຫ້ Google ສຳລັບການກັ່ນຕອງອັບເດດໄດ້, ຮວມທັງກໍລະນີອື່ນທີ່ທ່ານເລືອກແບ່ງປັນຂໍ້ມູນໃຫ້ກັບ Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />ສຳລັບລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບຂໍ້ມູນທີ່ <ph name="DEVICE_OS" /> ອາດແບ່ງປັນໃຫ້ກັບ Google ແລະ ວິທີທີ່ມັນຖືກໃຊ້ ກະລຸນາເຂົ້າໄປ visit g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">ຮັກສາໄຟລ໌ອັນຕະລາຍໄວ້</translation>
 <translation id="6532101170117367231">ບັນທຶກໄວ້ໃນ Google Drive</translation>
 <translation id="6532106788206463496">ບັນທຶກການປ່ຽນແປງ</translation>
@@ -6024,15 +6013,6 @@
 <translation id="7258192266780953209">ການປ່ຽນແປງ</translation>
 <translation id="7258225044283673131">ແອັບພລິເຄຊັນບໍ່ຕອບສະໜອງ. ເລືອກ "ບັງຄັບປິດ" ເພື່ອປິດແອັບ.</translation>
 <translation id="7262004276116528033">ບໍລິການເຂົ້າສູ່ລະບົບນີ້ຖືກຝາກໄວ້ໂດຍ <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />ລອງເຮັດຂັ້ນຕອນການແກ້ໄຂບັນຫາເຫຼົ່ານີ້:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />ກວດສອບວ່າອຸປະກອນຂອງທ່ານມີບ່ອນຈັດເກັບຂໍ້ມູນພາຍໃນທີ່ໃຊ້ໄດ້ ເຊັ່ນ: HDD, SSD ຫຼື eMMC
-    <ph name="LIST_ITEM" />ກວດສອບວ່າບ່ອນຈັດເກັບຂໍ້ມູນພາຍໃນຂອງທ່ານມີຂະໜາດເກີນ 16GB
-    <ph name="LIST_ITEM" />ກວດສອບການເຊື່ອມຕໍ່ຫາບ່ອນຈັດເກັບຂໍ້ມູນພາຍໃນ, ຫາກວ່າສາມາດເຂົ້າເຖິງໄດ້ທາງກາຍະພາບ
-    <ph name="LIST_ITEM" />ກວດສອບວ່າທ່ານກຳລັງໃຊ້ໂມເດວທີ່ໄດ້ຮັບການຮັບຮອງ ແລະ ກວດສອບບັນທຶກການຕິດຕັ້ງ
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ສຳລັບການຊ່ວຍເຫຼືອເພີ່ມເຕີມ, ກະລຸນາເຂົ້າໄປ: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">ບໍ່ສາມາດຕິດຕັ້ງເຄື່ອງສະເໝືອນໄດ້. ກະລຸນາລອງໃໝ່ ຫຼື ຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ. ລະຫັດຂໍ້ຜິດພາດ: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">ຍົກນິ້ວຂອງທ່ານຂຶ້ນເພື່ອເພີ່ມສ່ວນຕ່າງໆຂອງລາຍນິ້ວມືທ່ານ</translation>
 <translation id="7268127947535186412">ການຕັ້ງຄ່ານີ້ຈັດການໂດຍເຈົ້າຂອງອຸປະກອນ.</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index cc9c36b9..eed3b38 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -2330,7 +2330,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{„<ph name="DEVICE_NAME" />“ įrenginys bendrina su jumis turinį (<ph name="ATTACHMENTS" />).}one{„<ph name="DEVICE_NAME" />“ įrenginys bendrina su jumis turinį (<ph name="ATTACHMENTS" />).}few{„<ph name="DEVICE_NAME" />“ įrenginys bendrina su jumis turinį (<ph name="ATTACHMENTS" />).}many{„<ph name="DEVICE_NAME" />“ įrenginys bendrina su jumis turinį (<ph name="ATTACHMENTS" />).}other{„<ph name="DEVICE_NAME" />“ įrenginys bendrina su jumis turinį (<ph name="ATTACHMENTS" />).}}</translation>
 <translation id="3364986687961713424">Iš administratoriaus: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Naudokite „Ctrl“ arba „Alt“</translation>
-<translation id="3367057768351048705">Svetainės slapukai gali būti naudojami tik siekiant peržiūrėti naršymo veiklą toje svetainėje</translation>
 <translation id="3368922792935385530">Prijungta</translation>
 <translation id="3369067987974711168">Rodyti daugiau šio prievado veiksmų</translation>
 <translation id="3369624026883419694">Ieškoma pagrindinio serverio...</translation>
@@ -2971,8 +2970,6 @@
 <translation id="3979748722126423326">Įgalinti <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" /> matoma netoliese esantiems įrenginiams kaip „<ph name="DEVICE_NAME" />“ įrenginys...</translation>
 <translation id="3981760180856053153">Įvestas neteisingas išsaugojimo tipas.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Įvyko klaida, todėl nepavyko įdiegti „<ph name="DEVICE_OS" />“.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Jei reikia daugiau pagalbos, apsilankykite adresu g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Nustatykite naršyklę atlikdami kelis paprastus veiksmus</translation>
 <translation id="3983400541576569538">Galite prarasti kai kurių programų duomenis</translation>
 <translation id="3983586614702900908">nežinomų tiekėjų įrenginiai</translation>
@@ -3892,9 +3889,6 @@
 <translation id="4992984395680162305">Šie įrenginiai buvo susieti nuskaičius QR kodą.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Prieš užsiregistruodami turite išvalyti TPM, kad „<ph name="DEVICE_OS" />“ galėtų perimti įrenginio nuosavybės teisę.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Taip pat galite visiškai išjungti TPM įrenginį. Jūsų duomenys bus saugiai saugomi naudojant programinės įrangos šifruotę, bet tam tikros saugos funkcijos (pvz., aparatinės įrangos palaikomi sertifikatai) bus išjungtos.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Galite pakeisti TPM nustatymus iš naujo paleidę sistemą ir atidarę jos BIOS / UEFI nustatymus. Veiksmai gali skirtis atsižvelgiant į įrenginio modelį. Jei reikia daugiau informacijos, atidarykite „<ph name="DEVICE_OS" />“ dokumentus kitame įrenginyje prieš iš naujo paleisdami sistemą: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nerasta jokių „<ph name="VM_TYPE" />“ virtualių įrenginių}=1{Rastas 1 „<ph name="VM_TYPE" />“ virtualus įrenginys: <ph name="VM_NAME_LIST" />}one{Rastas {NUM_VMS} „<ph name="VM_TYPE" />“ virtualus įrenginys: <ph name="VM_NAME_LIST" />}few{Rastas {NUM_VMS} „<ph name="VM_TYPE" />“ virtualūs įrenginiai: <ph name="VM_NAME_LIST" />}many{Rastas {NUM_VMS} „<ph name="VM_TYPE" />“ virtualaus įrenginio: <ph name="VM_NAME_LIST" />}other{Rastas {NUM_VMS} „<ph name="VM_TYPE" />“ virtualių įrenginių: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Nėra interneto ryšio.</translation>
 <translation id="4998430619171209993">Įjungta</translation>
@@ -4012,7 +4006,6 @@
 <translation id="5127620150973591153">Saugaus ryšio ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sinchronizavimas išjungtas</translation>
 <translation id="5127881134400491887">Valdyti tinklo ryšius</translation>
-<translation id="5128774403617662387">Prieš pradėdami patikrinkite, ar turite atsarginę duomenų kopiją. Įdiegiant „<ph name="DEVICE_OS" />“ bus perrašytas standusis diskas. Sužinokite daugiau adresu g.co/TBD.</translation>
 <translation id="512903556749061217">prijungtas</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Nepavyko atsisiųsti profilio. Vėliau bandykite dar kartą arba kreipkitės pagalbos į operatorių.</translation>
@@ -4529,7 +4522,6 @@
 <translation id="5659593005791499971">El. paštas</translation>
 <translation id="5659833766619490117">Nepavyko išversti šio puslapio</translation>
 <translation id="5662513737565158057">Keiskite „Linux“ programų veikimą.</translation>
-<translation id="5667490069342183561">„Google“ neatsako už jokius prarastus duomenis ir „<ph name="DEVICE_OS" />“ gali neveikti nesertifikuotuose modeliuose. Sužinokite daugiau adresu g.co/TBD.</translation>
 <translation id="5667546120811588575">Nustatoma „Google Play“...</translation>
 <translation id="5668351004957198136">Nepavyko</translation>
 <translation id="56702779821643359">Bendrinkite failus su žmonėmis, esančiais netoliese. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
@@ -5341,9 +5333,6 @@
 <translation id="6528179044667508675">Netrukdyti</translation>
 <translation id="652948702951888897">„Chrome“ istorija</translation>
 <translation id="6530186581263215931">Šiuos nustatymus įgalina jūsų administratorius</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Siekiant užtikrinti geriausią veikimą, „<ph name="DEVICE_OS" />“ renka įrenginių aparatinės įrangos duomenis ir juos bendrina su „Google“, kad būtų nustatyta, kurie naujiniai reikalingi. Pasirinktinai galite leisti sistemai „Google“ šiuos duomenis naudoti papildomiems tikslams, pvz., siekiant užtikrinti „<ph name="DEVICE_OS" />“ funkcijų ir paslaugų palaikymą bei tobulinimą.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Prisijunkite šiame įrenginyje ir apsilankykite chrome://system skiltyje CLOUDREADY_HARDWARE_INFO, jei norite sužinoti, kokie duomenys siunčiami sistemai „Google“ naujinių filtravimo tikslams, taip pat kitais atvejais, kai duomenis bendrinate su „Google“.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Daugiau informacijos apie tai, kokius duomenis „<ph name="DEVICE_OS" />“ gali bendrinti su „Google“ ir kaip jie naudojami, rasite apsilankę g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Palikti pavojingą failą</translation>
 <translation id="6532101170117367231">Išsaugoti „Google“ diske</translation>
 <translation id="6532106788206463496">Išsaugoti pakeitimus</translation>
@@ -6032,15 +6021,6 @@
 <translation id="7258192266780953209">Transformacijos</translation>
 <translation id="7258225044283673131">Programa nereaguoja. Pasirinkite „Priverstinai uždaryti“, kad uždarytumėte programą.</translation>
 <translation id="7262004276116528033">Ši prisijungimo paslauga priglobiama <ph name="SAML_DOMAIN" />.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Išbandykite toliau nurodytus trikčių šalinimo veiksmus.
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Įsitikinkite, kad jūsų įrenginyje yra veikianti vidinė atmintis, pvz., HDD, SSD arba „eMMC“
-    <ph name="LIST_ITEM" />Patikrinkite, ar jūsų įrenginio vidinė atmintis yra didesnė nei 16 GB
-    <ph name="LIST_ITEM" />Patikrinkite ryšį su vidine atmintimi, jei ji prieinama fiziškai
-    <ph name="LIST_ITEM" />Įsitikinkite, kad naudojate sertifikuotą modelį, ir patikrinkite diegimo pastabas
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Jei reikia daugiau pagalbos, apsilankykite: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Nepavyko įdiegti virtualiojo įrenginio. Bandykite dar kartą arba susisiekite su administratoriumi. Klaidos kodas: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Kelis kartus patraukite ir vėl pridėkite pirštą, kad būtų užfiksuotos skirtingos piršto atspaudo dalys</translation>
 <translation id="7268127947535186412">Šį nustatymą valdo įrenginio savininkas.</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 8973d71..b6d77c17 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -2314,7 +2314,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> kopīgo ar jums saturu (<ph name="ATTACHMENTS" />).}zero{<ph name="DEVICE_NAME" /> kopīgo ar jums saturu (<ph name="ATTACHMENTS" />).}one{<ph name="DEVICE_NAME" /> kopīgo ar jums saturu (<ph name="ATTACHMENTS" />).}other{<ph name="DEVICE_NAME" /> kopīgo ar jums saturu (<ph name="ATTACHMENTS" />).}}</translation>
 <translation id="3364986687961713424">Ziņojums no administratora: “<ph name="ADMIN_MESSAGE" />”</translation>
 <translation id="3365598184818502391">Izmantojiet taustiņu Ctrl vai Alt</translation>
-<translation id="3367057768351048705">Vietnes var izmantot jūsu sīkfailus, tikai lai skatītu jūsu pārlūkošanas darbības savā vietnē</translation>
 <translation id="3368922792935385530">pievienots</translation>
 <translation id="3369067987974711168">Rādīt citas darbības ar šo portu</translation>
 <translation id="3369624026883419694">Risina saimniekdatoru...</translation>
@@ -2955,8 +2954,6 @@
 <translation id="3979748722126423326">Iespējot <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Ierīce (<ph name="DEVICE_NAME" />) būs redzama citām tuvumā esošajām ierīcēm šādu laika posmu: <ph name="REMAINING_TIME" /></translation>
 <translation id="3981760180856053153">Ievadīts nederīgs saglabāšanas tips.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Radās problēma un operētājsistēmu <ph name="DEVICE_OS" /> nevarēja instalēt.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Papildu palīdzību skatiet vietnē g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Iestatiet pārlūku, veicot dažas vienkāršas darbības</translation>
 <translation id="3983400541576569538">No dažām programmām vāktie dati var tikt zaudēti</translation>
 <translation id="3983586614702900908">ierīces, ko piedāvā nezināms ražotājs</translation>
@@ -3875,9 +3872,6 @@
 <translation id="4992984395680162305">Šīs ierīces tika saistītas, skenējot ātrās atbildes kodu.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Pirms reģistrēšanās jums ir jānotīra uzticamas platformas moduļa (Trusted Platform Module — TPM) dati, lai operētājsistēma <ph name="DEVICE_OS" /> varētu pārņemt ierīces īpašumtiesības.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Varat arī izslēgt TPM ierīci. Jūsu dati tiks glabāti drošībā, izmantojot programmatūru šifrēšanu, taču noteiktas drošības funkcijas (piemēram, sertifikātu dublikātu glabāšana aparatūrā) tiks atspējotas.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />TPM iestatījumus varat mainīt, veicot atkārtotu palaišanu un atverot sistēmas BIOS/UEFI iestatījumus. Veicamās darbības dažādās ierīcēs var atšķirties. Lai pirms atkārtotas palaišanas skatītu plašāku informāciju, citā ierīcē atveriet <ph name="DEVICE_OS" /> dokumentāciju: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Netika atrasta neviena <ph name="VM_TYPE" /> virtuālā mašīna}=1{Tika atrasta viena <ph name="VM_TYPE" /> virtuālā mašīna: <ph name="VM_NAME_LIST" />}zero{Tika atrastas {NUM_VMS} <ph name="VM_TYPE" /> virtuālās mašīnas: <ph name="VM_NAME_LIST" />}one{Tika atrasta {NUM_VMS} <ph name="VM_TYPE" /> virtuālā mašīna: <ph name="VM_NAME_LIST" />}other{Tika atrastas {NUM_VMS} <ph name="VM_TYPE" /> virtuālās mašīnas: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Nav interneta savienojuma.</translation>
 <translation id="4998430619171209993">Ieslēgts</translation>
@@ -3995,7 +3989,6 @@
 <translation id="5127620150973591153">Droša savienojuma ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sinhronizācija izslēgta</translation>
 <translation id="5127881134400491887">Pārvaldīt tīkla savienojumus</translation>
-<translation id="5128774403617662387">Pirms darba sākšanas dublējiet savus datus. Instalējot operētājsistēmu <ph name="DEVICE_OS" />, dati cietajā diskā tiks pārrakstīti. Plašāka informācija ir pieejama vietnē g.co/TBD.</translation>
 <translation id="512903556749061217">pievienota</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profilu nevarēja lejupielādēt. Lūdzu, vēlāk mēģiniet vēlreiz vai sazinieties ar mobilo sakaru operatoru, lai saņemtu palīdzību.</translation>
@@ -4511,7 +4504,6 @@
 <translation id="5659593005791499971">E-pasts</translation>
 <translation id="5659833766619490117">Šo lapu nevarēja pārtulkot</translation>
 <translation id="5662513737565158057">Mainiet Linux lietotņu darbības principus.</translation>
-<translation id="5667490069342183561">Uzņēmums Google nav atbildīgs par datu zudumiem, un nesertificētos modeļos operētājsistēma <ph name="DEVICE_OS" /> var nedarboties. Plašāka informācija ir pieejama vietnē g.co/TBD.</translation>
 <translation id="5667546120811588575">Notiek Google Play iestatīšana...</translation>
 <translation id="5668351004957198136">Pārbaude neizdevās</translation>
 <translation id="56702779821643359">Kopīgojiet failus ar tuvumā esošām personām. <ph name="LINK_BEGIN" />Uzziniet vairāk<ph name="LINK_END" />.</translation>
@@ -5323,9 +5315,6 @@
 <translation id="6528179044667508675">Netraucēt</translation>
 <translation id="652948702951888897">Chrome vēsture</translation>
 <translation id="6530186581263215931">Šos iestatījumus ir noteicis administrators</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Lai nodrošinātu vislabāko pieredzi, operētājsistēmā <ph name="DEVICE_OS" /> tiek vākti aparatūras dati par ierīcēm, un tie tiek kopīgoti ar uzņēmumu Google, lai noteiktu, kādus atjauninājumus piegādāt. Varat arī atļaut uzņēmumam Google izmantot šos datus citiem mērķiem, piemēram, operētājsistēmas <ph name="DEVICE_OS" /> saskarnes un pakalpojuma atbalstam un uzlabojumiem.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Varat pieteikties šajā ierīcē un skatīt sadaļu CLOUDREADY_HARDWARE_INFO vietnē chrome://system, lai uzzinātu, kādi dati tiek sūtīti uzņēmumam Google atjauninājumu filtrēšanai, kā arī uzzinātu par citiem gadījumiem, kad izvēlaties kopīgot datus ar uzņēmumu Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Plašāku informāciju par datiem, ko <ph name="DEVICE_OS" /> var kopīgot ar uzņēmumu Google, un to izmantošanu skatiet vietnē g.co/xxxxx.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Paturēt bīstamo failu</translation>
 <translation id="6532101170117367231">Saglabāt Google diskā</translation>
 <translation id="6532106788206463496">Saglabāt izmaiņas</translation>
@@ -6014,15 +6003,6 @@
 <translation id="7258192266780953209">Pārveidošana</translation>
 <translation id="7258225044283673131">Šī lietojumprogramma nereaģē. Lai aizvērtu lietotni, atlasiet vienumu “Aizvērt piespiedu kārtā”.</translation>
 <translation id="7262004276116528033">Šo pierakstīšanās pakalpojumu nodrošina <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Veiciet tālāk norādītās darbības problēmas novēršanai.
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Gādājiet, lai ierīcē būtu derīga iekšējā krātuve, piemēram, cietais disks, SSD disks vai iegultā atmiņas karte (eMMC)
-    <ph name="LIST_ITEM" />Pārbaudiet, vai brīvā vieta iekšējās krātuves ierīcē sasniedz vismaz 16 GB
-    <ph name="LIST_ITEM" />Pārbaudiet savienojumu ar iekšējo krātuvi, ja tas ir fiziski pieejams
-    <ph name="LIST_ITEM" />Noteikti izmantojiet sertificētu modeli un izlasiet instalēšanas piezīmes
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Papildu palīdzību skatiet vietnē g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Nevarēja instalēt virtuālo mašīnu. Lūdzu, mēģiniet vēlreiz vai sazinieties ar administratoru. Kļūdas kods: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Atkārtoti uzlieciet pirkstu, lai pievienotu dažādas pirksta nospieduma daļas.</translation>
 <translation id="7268127947535186412">Šo iestatījumu pārvalda ierīces īpašnieks.</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index 1a885585..e76ef75 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -2328,7 +2328,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> споделува <ph name="ATTACHMENTS" /> со вас.}one{<ph name="DEVICE_NAME" /> споделува <ph name="ATTACHMENTS" /> со вас.}other{<ph name="DEVICE_NAME" /> споделува <ph name="ATTACHMENTS" /> со вас.}}</translation>
 <translation id="3364986687961713424">Од администраторот: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Користете Ctrl или Alt</translation>
-<translation id="3367057768351048705">Сајтовите може да ги користат колачињата само за да ја гледаат вашата активност од прелистувањето на сопствениот сајт</translation>
 <translation id="3368922792935385530">Поврзано</translation>
 <translation id="3369067987974711168">Прикажи повеќе дејства за портава</translation>
 <translation id="3369624026883419694">Разрешување домаќин...</translation>
@@ -2969,8 +2968,6 @@
 <translation id="3979748722126423326">Овозможи <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Видлив за уреди во близина како <ph name="DEVICE_NAME" /> уште <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Внесен е неважечки тип за зачувување.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Нешто тргна наопаку и <ph name="DEVICE_OS" /> не можеше да се инсталира.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ако ви треба уште помош, одете на: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Поставете го прелистувачот во неколку едноставни чекори</translation>
 <translation id="3983400541576569538">Податоците од некои апликации може да се изгубат</translation>
 <translation id="3983586614702900908">уреди од непознат продавач</translation>
@@ -3890,9 +3887,6 @@
 <translation id="4992984395680162305">Уредиве беа поврзани со скенирање QR-код.</translation>
 <translation id="4994474651455208930">Дозволи им на сајтовите да прашуваат за да станат стандардни ракувачи на протоколи</translation>
 <translation id="4994754230098574403">Се поставува</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Пред да се регистрирате, треба да го избришете TPM за да може <ph name="DEVICE_OS" /> да ја преземе сопственоста на уредот.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Може и комплетно да го исклучите TPM-уредот. Вашите податоци ќе бидат безбедно складирани со софтверско шифрирање, но одредени безбедносни функции, како што се сертификатите поддржани од хардверот, ќе се оневозможат.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Може да ги промените вашите поставки за TPM со рестартирање и влегување во системските поставки BIOS/UEFI. Чекорите може да се разликуваат во зависност од моделот на уредот. За повеќе информации, отворете ја документацијата за <ph name="DEVICE_OS" /> на посебен уред пред рестартирањето: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Не се најдени виртуелни машини од типот <ph name="VM_TYPE" />}=1{Најдена е една виртуелна машина од типот <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}one{Најдени се {NUM_VMS} виртуелна машина од типот <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Најдени се {NUM_VMS} виртуелни машини од типот <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Нема интернет-врска.</translation>
 <translation id="4998430619171209993">Вклучено</translation>
@@ -4010,7 +4004,6 @@
 <translation id="5127620150973591153">ID на безбедна врска: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Синхронизацијата е исклучена</translation>
 <translation id="5127881134400491887">Управувај со мрежни поврзувања</translation>
-<translation id="5128774403617662387">Пред да започнете, уверете се дека имате направено бекап на вашите податоци. Инсталирањето на <ph name="DEVICE_OS" /> ќе го презапише вашиот хард диск. Дознајте повеќе на g.co/TBD.</translation>
 <translation id="512903556749061217">прикачен</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Не можеше да се преземе профилот. Обидете се повторно подоцна или контактирајте со операторот за помош.</translation>
@@ -4526,7 +4519,6 @@
 <translation id="5659593005791499971">Е-пошта</translation>
 <translation id="5659833766619490117">Страницава не може да се преведе</translation>
 <translation id="5662513737565158057">Променете го начинот на работа на апликациите на Linux.</translation>
-<translation id="5667490069342183561">Google не одговара за никаква загуба на податоците, а <ph name="DEVICE_OS" /> можеби нема да работи на несертифицирани уреди. Дознајте повеќе на g.co/TBD.</translation>
 <translation id="5667546120811588575">Се поставува Google Play…</translation>
 <translation id="5668351004957198136">Неуспешна проверка</translation>
 <translation id="56702779821643359">Споделувајте датотеки со луѓето околу вас. <ph name="LINK_BEGIN" />Дознајте повеќе<ph name="LINK_END" /></translation>
@@ -5338,9 +5330,6 @@
 <translation id="6528179044667508675">Не вознем.</translation>
 <translation id="652948702951888897">Историја на Chrome</translation>
 <translation id="6530186581263215931">Овие поставки ги наметнува вашиот администратор</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />За да го обезбеди најдоброто доживување, <ph name="DEVICE_OS" /> прибира хардверски податоци за уредите и ги споделува со Google за да одреди кои ажурирања треба да се достават. По избор, може да му дозволите на Google да ги користи податоциве за дополнителни цели како поддршка и подобрувања на доживувањето со <ph name="DEVICE_OS" /> и неговата услуга.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Може да се најавите на уредов и да одите во делот CLOUDREADY_HARDWARE_INFO во chrome://system за да ги видите податоците што се испраќаат во Google за филтрирање ажурирања, како и други примероци каде што ќе изберете да ги споделувате податоците со Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />За повеќе детали за податоците што <ph name="DEVICE_OS" /> може да ги споделува со Google и начинот на кои тие се користат, одете на g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Задржи ја опасната датотека</translation>
 <translation id="6532101170117367231">Зачувај во Google Drive</translation>
 <translation id="6532106788206463496">Зачувај ги промените</translation>
@@ -6029,15 +6018,6 @@
 <translation id="7258192266780953209">Трансформации</translation>
 <translation id="7258225044283673131">Апликацијата не одговара. Изберете „Затвори присилно“ за да ја затворите.</translation>
 <translation id="7262004276116528033">Хост на услугата за најавување е <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Пробајте ги овие чекори за решавање проблеми:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Уверете се дека уредот содржи исправна внатрешна меморија како HDD, SSD или eMMC
-    <ph name="LIST_ITEM" />Проверете дали внатрешната меморија на вашиот уред е поголема од 16 GB
-    <ph name="LIST_ITEM" />Проверете го поврзувањето со внатрешната меморија, ако може физички да пристапите до неа
-    <ph name="LIST_ITEM" />Уверете се дека користите сертифициран модел и проверете ги белешките за инсталирање
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ако ви треба уште помош, одете на: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Не може да се инсталира виртуелната машина. Обидете се повторно или контактирајте со администраторот. Код за грешка: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Подигнувајте го прстот за да ги додадете различните делови од отпечатокот</translation>
 <translation id="7268127947535186412">Со поставката управува сопственикот на уредот.</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 5bca607..441c424 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -2311,7 +2311,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> നിങ്ങളുമായി <ph name="ATTACHMENTS" /> പങ്കിടുന്നു.}other{<ph name="DEVICE_NAME" /> നിങ്ങളുമായി <ph name="ATTACHMENTS" /> പങ്കിടുന്നു.}}</translation>
 <translation id="3364986687961713424">നിങ്ങളുടെ അഡ്‌മിനിൽ നിന്ന്: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl അല്ലെങ്കിൽ Alt ഉപയോഗിക്കുക</translation>
-<translation id="3367057768351048705">സൈറ്റുകൾക്ക് അവരുടെ സ്വന്തം സൈറ്റിലെ നിങ്ങളുടെ ബ്രൗസിംഗ് ആക്റ്റിവിറ്റി കാണാൻ മാത്രമേ നിങ്ങളുടെ കുക്കികൾ ഉപയോഗിക്കാനാകൂ</translation>
 <translation id="3368922792935385530">കണക്റ്റുചെയ്തു</translation>
 <translation id="3369067987974711168">ഈ പോർട്ടിനുള്ള കൂടുതൽ പ്രവർത്തനങ്ങൾ കാണിക്കുക</translation>
 <translation id="3369624026883419694">റിസോള്‍വിംഗ് ഹോസ്റ്റ്...</translation>
@@ -2951,8 +2950,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" /> നേരത്തേക്ക് <ph name="DEVICE_NAME" /> എന്ന പേരിൽ സമീപത്തുള്ള ഉപകരണങ്ങൾക്ക് ദൃശ്യമാകുന്നു...</translation>
 <translation id="3981760180856053153">അസാധുവായ സംരക്ഷിക്കല്‍ തരം നല്‍കി.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />എന്തോ കുഴപ്പമുണ്ടായതിനാൽ <ph name="DEVICE_OS" /> ഇൻസ്റ്റാൾ ചെയ്യാനായില്ല.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />കൂടുതൽ സഹായത്തിന് സന്ദർശിക്കുക: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">ലളിതമായ ഏതാനും ഘട്ടങ്ങളിലൂടെ ബ്രൗസർ സജ്ജീകരിക്കുക</translation>
 <translation id="3983400541576569538">ചില ആപ്പുകളിൽ നിന്നുള്ള ഡാറ്റ നഷ്‌ടപ്പെട്ടേക്കാം</translation>
 <translation id="3983586614702900908">അജ്ഞാത വെണ്ടറിൽ നിന്നുള്ള ഉപകരണങ്ങൾ</translation>
@@ -3871,9 +3868,6 @@
 <translation id="4992984395680162305">ഈ ഉപകരണങ്ങൾ QR കോഡ് സ്‌കാൻ ചെയ്ത് ലിങ്ക് ചെയ്തവയാണ്.</translation>
 <translation id="4994474651455208930">പ്രോട്ടോകോളുകളുടെ ഡിഫോൾട്ടായ കൈകാര്യം ചെയ്യുന്ന സംവിധാനമായി മാറാനുള്ള അനുവാദം ചോദിക്കാൻ സൈറ്റുകളെ അനുവദിക്കുന്നു</translation>
 <translation id="4994754230098574403">സജ്ജീകരിക്കുന്നു</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" /><ph name="DEVICE_OS" /> എന്നതിന് ഈ ഉപകരണത്തിന്റെ ഉടമസ്ഥത ഏറ്റെടുക്കാൻ, എൻറോൾ ചെയ്യുന്നതിന് മുമ്പ് TPM മായ്ക്കേണ്ടതുണ്ട്.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />നിങ്ങൾക്ക് TPM ഉപകരണം പൂർണ്ണമായും ഓഫാക്കാനുമാകും. സോഫ്‌റ്റ്‌വെയർ എൻക്രിപ്ഷൻ ഉപയോഗിച്ച് നിങ്ങളുടെ ഡാറ്റ സുരക്ഷിതമായി സംഭരിക്കും, എന്നാൽ ഹാർഡ്‌വെയർ പിന്തുണയുള്ള സർട്ടിഫിക്കറ്റുകൾ പോലുള്ള ചില സുരക്ഷാ ഫീച്ചറുകൾ പ്രവർത്തനരഹിതമായിരിക്കും.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />റീബൂട്ട് ചെയ്ത ശേഷം സിസ്റ്റം BIOS/UEFI ക്രമീകരണം നൽകുന്നതിലൂടെ നിങ്ങളുടെ TPM ക്രമീകരണം മാറ്റാം. ഉപകരണ മോഡൽ അനുസരിച്ച് ഘട്ടങ്ങൾ വ്യത്യാസപ്പെടാം. കൂടുതൽ വിവരങ്ങൾക്ക്, റീബൂട്ട് ചെയ്യുന്നതിന് മുമ്പ് മറ്റൊരു ഉപകരണത്തിൽ <ph name="DEVICE_OS" /> ഡോക്യുമെന്റേഷൻ തുറക്കുക: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> VM-കൾ ഒന്നും കണ്ടെത്തിയില്ല}=1{ഒരു <ph name="VM_TYPE" /> VM കണ്ടെത്തി: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> VM-കൾ കണ്ടെത്തി: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">ഇന്റർനെറ്റ് കണക്ഷൻ ഇല്ല.</translation>
 <translation id="4998430619171209993">ഓണാണ്</translation>
@@ -3991,7 +3985,6 @@
 <translation id="5127620150973591153">സുരക്ഷിത കണക്ഷൻ ഐഡി: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">സമന്വയം ഓഫാണ്</translation>
 <translation id="5127881134400491887">നെറ്റ്‌വർക്ക് കണക്ഷനുകൾ നിയന്ത്രിക്കുക</translation>
-<translation id="5128774403617662387">ആരംഭിക്കും മുമ്പ് നിങ്ങളുടെ ഡാറ്റ ബാക്കപ്പെടുത്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക. <ph name="DEVICE_OS" /> ഇൻസ്റ്റാൾ ചെയ്യുന്നത് നിങ്ങളുടെ ഹാർഡ് ഡ്രൈവ് ഓവർറൈറ്റ് ചെയ്യും. g.co/TBD -ൽ കൂടുതലറിയുക.</translation>
 <translation id="512903556749061217">അറ്റാച്ചുചെയ്‌തു</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">പ്രൊഫൈൽ ഡൗൺലോഡ് ചെയ്യാനായില്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക അല്ലെങ്കിൽ സഹായത്തിനായി സേവനദാതാവിനെ ബന്ധപ്പെടുക.</translation>
@@ -4507,7 +4500,6 @@
 <translation id="5659593005791499971">ഇമെയില്‍</translation>
 <translation id="5659833766619490117">ഈ പേജ് വിവർത്തനം ചെയ്യാനായില്ല</translation>
 <translation id="5662513737565158057">Linux ആപ്പുകളുടെ പ്രവർത്തനരീതി മാറ്റുക.</translation>
-<translation id="5667490069342183561">ഏതെങ്കിലും തരത്തിലുള്ള ഡാറ്റാ നഷ്‌ടത്തിന് Google ഉത്തരവാദിയായിരിക്കില്ല, അംഗീകൃതമല്ലാത്ത മോഡലുകളിൽ <ph name="DEVICE_OS" /> പ്രവർത്തിച്ചേക്കില്ല. g.co/TBD -ൽ കൂടുതലറിയുക.</translation>
 <translation id="5667546120811588575">Google Play സജ്ജമാക്കുന്നു...</translation>
 <translation id="5668351004957198136">പരാജയപ്പെട്ടു</translation>
 <translation id="56702779821643359">നിങ്ങൾക്ക് ചുറ്റുമുള്ള ആളുകളുമായി ഫയലുകൾ പങ്കിടുക. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation>
@@ -5321,9 +5313,6 @@
 <translation id="6528179044667508675">ശല്യപ്പെടുത്തരുത്</translation>
 <translation id="652948702951888897">Chrome ചരിത്രം</translation>
 <translation id="6530186581263215931">ഈ ക്രമീകരണം നടപ്പിലാക്കുന്നത് നിങ്ങളുടെ അഡ്‌മിനിസ്‌ട്രേറ്ററാണ്</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />ഏറ്റവും മികച്ച അനുഭവം ലഭ്യമാക്കാൻ, ഉപകരണങ്ങളുടെ ഹാർഡ്‌വെയർ ഡാറ്റ <ph name="DEVICE_OS" /> ശേഖരിക്കുകയും ലഭ്യമാക്കേണ്ട അപ്ഡേറ്റുകൾ കണ്ടെത്താൻ അത് Google-മായി പങ്കിടുകയും ചെയ്യുന്നു. <ph name="DEVICE_OS" /> അനുഭവത്തിനും സേവനത്തിനും പിന്തുണ നൽകുന്നതും മെച്ചപ്പെടുത്തലുകൾ വരുത്തുന്നതും പോലുള്ള അധിക ആവശ്യങ്ങൾക്ക് ഈ ഡാറ്റ ഉപയോഗിക്കാൻ Google-നെ അനുവദിക്കുന്നത് ഓപ്ഷണലായി തിരഞ്ഞെടുക്കാനാകും.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />അപ്ഡേറ്റ് ഫിൽട്ടറിംഗ് പ്രക്രിയയ്ക്കായി Google-ലേക്ക് അയയ്ക്കുന്ന ഡാറ്റയും നിങ്ങൾ Google-മായി ഡാറ്റ പങ്കിടാൻ തിരഞ്ഞെടുത്തിട്ടുള്ള മറ്റ് സന്ദർഭങ്ങളും കാണാൻ, ഈ ഉപകരണത്തിൽ ലോഗിൻ ചെയ്ത് chrome://system -ലെ CLOUDREADY_HARDWARE_INFO വിഭാഗം സന്ദർശിക്കുക.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> Google-മായി ഡാറ്റ പങ്കിടുന്നതിനെയും അതിന്റെ ഉപയോഗത്തെയും കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക് g.co/xxxxx സന്ദർശിക്കുക<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">അപകടകരമായ ഫയൽ സൂക്ഷിക്കുക</translation>
 <translation id="6532101170117367231">Google ഡ്രൈവിൽ സംരക്ഷിക്കൂ</translation>
 <translation id="6532106788206463496">മാറ്റങ്ങൾ സംരക്ഷിക്കുക</translation>
@@ -6012,15 +6001,6 @@
 <translation id="7258192266780953209">പരിവർത്തനങ്ങൾ</translation>
 <translation id="7258225044283673131">ആപ്പ് പ്രതികരിക്കുന്നില്ല. ആപ്പ് അടയ്ക്കാൻ, "നിർബന്ധിതമായി അടയ്ക്കുക" തിരഞ്ഞെടുക്കുക.</translation>
 <translation id="7262004276116528033">ഈ സൈൻ ഇൻ സേവനം ഹോസ്റ്റ് ചെയ്‌തിരിക്കുന്നത് <ph name="SAML_DOMAIN" /> ആണ്.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />ഈ ട്രബിൾഷൂട്ടിംഗ് ഘട്ടങ്ങൾ പരീക്ഷിക്കുക:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />നിങ്ങളുടെ ഉപകരണത്തിൽ HDD, SSD, eMMC എന്നിവ പോലുള്ള പ്രവർത്തനക്ഷമമായ ഇന്റേണൽ സ്റ്റോറേജ് ഉണ്ടെന്ന് ഉറപ്പാക്കുക
-    <ph name="LIST_ITEM" />നിങ്ങളുടെ ഉപകരണത്തിലെ ഇന്റേണൽ സ്റ്റോറേജിന് 16GB-യിൽ കൂടുതൽ വലുപ്പമുണ്ടോയെന്ന് പരിശോധിക്കുക
-    <ph name="LIST_ITEM" />നിങ്ങൾക്ക് നേരിട്ട് പരിശോധിക്കാനാകുമെങ്കിൽ, ഇന്റേണൽ സ്റ്റോറേജിലേക്കുള്ള കണക്ഷൻ പരിശോധിക്കുക
-    <ph name="LIST_ITEM" />ഒരു അംഗീകൃത മോഡലാണ് നിങ്ങൾ ഉപയോഗിക്കുന്നതെന്ന് ഉറപ്പ് വരുത്തി, അതിന്റെ ഇൻസ്റ്റാൾ നിർദ്ദേശങ്ങൾ പരിശോധിക്കുക
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />കൂടുതൽ സഹായത്തിന് സന്ദർശിക്കുക: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">വെർച്വൽ മെഷീൻ ഇൻസ്‍റ്റാൾ ചെയ്യാനായില്ല. വീണ്ടും ശ്രമിക്കുക അല്ലെങ്കിൽ നിങ്ങളുടെ അഡ്‍മിനെ ബന്ധപ്പെടുക. പിശക് കോഡ്: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">നിങ്ങളുടെ ഫിംഗർപ്രിന്റിന്റെ വ്യത്യസ്ത ഭാഗങ്ങൾ ചേർക്കുന്നതിന് നിങ്ങളുടെ വിരൽ ഉയർത്തിക്കൊണ്ടിരിക്കുക</translation>
 <translation id="7268127947535186412">ഉപകരണ ഉടമയാണ് ഈ ക്രമീകരണം മാനേജ് ചെയ്യുന്നത്.</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index 4b64801..5c189e3 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -972,6 +972,7 @@
 <translation id="1965624977906726414">Ямар ч тусгай зөвшөөрөл байхгүй.</translation>
 <translation id="1969654639948595766">WebRTC текст лог (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation>
 <translation id="1970368523891847084">Видео горимыг оруулсан</translation>
+<translation id="1972325230031091483">Контентыг таны одоогийн веб хуудасны зочилсон байдалд тулгуурлан идэвхтэй ачаалсан тул та илүү хурдан үзнэ</translation>
 <translation id="197288927597451399">Хадгал</translation>
 <translation id="1973763416111613016"><ph name="FILE_NAME" />-г аюулгүй татах боломжгүй. Татаж авсан файл хадгалах эсвэл нээх хэсэг рүү шилжихийн тулд Shift+F6-г дарна уу.</translation>
 <translation id="1974043046396539880">CRL Түгээх цэг</translation>
@@ -1196,6 +1197,7 @@
 <translation id="2191754378957563929">Асаалттай</translation>
 <translation id="2192505247865591433">Хэнээс:</translation>
 <translation id="2193365732679659387">Итгэмжлэх тохиргоо</translation>
+<translation id="2194856509914051091">Анхаарч үзэх зүйлс</translation>
 <translation id="2195331105963583686">Та энэ <ph name="DEVICE_TYPE" />-г ийм хугацааны дараа ашиглах боломжтой хэвээр байх боловч энэ нь программ хангамж болон аюулгүй байдлын автомат шинэчлэлтийг авах боломжгүй байна.</translation>
 <translation id="2195729137168608510">И-мэйл хамгаалалт</translation>
 <translation id="2198625180564913276">Профайл нэмж байна. Үүнд хэдэн минут шаардлагатай байж магадгүй.</translation>
@@ -1340,6 +1342,7 @@
 <translation id="2326931316514688470">Аппыг дахин ачаалла</translation>
 <translation id="2327492829706409234">Аппликейшнийг идэвхжүүл</translation>
 <translation id="2328561734797404498"><ph name="APP_NAME" />-г ашиглахын тулд төхөөрөмжөө дахин эхлүүлнэ үү.</translation>
+<translation id="2328636661627946415">Таныг Нууцлалын горимд байх үед сайтууд зөвхөн өөрийн сайт дээрх хөтчийн үйл ажиллагааг харахын тулд күүки ашиглах боломжтой. Нууцлалтай харилцан үйлдлийн төгсгөлд күүкиг устгана.</translation>
 <translation id="2329597144923131178">Өөрийн төхөөрөмж дээрх хавчуурга, түүх, бусад тохиргоог авахын тулд нэвтэрнэ үү.</translation>
 <translation id="2332131598580221120">Дэлгүүрт харах</translation>
 <translation id="2332192922827071008">Тохиргоог нээх</translation>
@@ -2323,7 +2326,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> <ph name="ATTACHMENTS" />-г тантай хуваалцаж байна.}other{<ph name="DEVICE_NAME" /> <ph name="ATTACHMENTS" />-г тантай хуваалцаж байна.}}</translation>
 <translation id="3364986687961713424">Таны администратораас: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl эсвэл Alt-г ашиглана уу</translation>
-<translation id="3367057768351048705">Сайтууд нь зөвхөн өөрийн сайт дээрх таны хөтчийн үйл ажиллагааг харахын тулд күүкиг тань ашиглах боломжтой</translation>
 <translation id="3368922792935385530">Холбогдсон</translation>
 <translation id="3369067987974711168">Энэ портын бусад үйлдлийг харуулах</translation>
 <translation id="3369624026883419694">Толгой компьютерийг шийдвэрлэж байна...</translation>
@@ -2653,6 +2655,7 @@
 <translation id="3694027410380121301">Өмнөх цонхыг сонгох</translation>
 <translation id="369489984217678710">Нууц үг ба бусад нэвтрэх өгөгдөл</translation>
 <translation id="369522892592566391">{NUM_FILES,plural, =0{Аюулгүй байдлын шалгалт дууссан. Таны өгөгдлийг байршуулна.}=1{Аюулгүй байдлын шалгалт дууссан. Таны файлыг байршуулна.}other{Аюулгүй байдлын шалгалт дууссан. Таны файлуудыг байршуулна.}}</translation>
+<translation id="3698471669415859717">Шалгаж дууслаа</translation>
 <translation id="3699624789011381381">И-мэйл хаяг</translation>
 <translation id="3699920817649120894">Синк болон хувийн тохируулгыг унтраах уу?</translation>
 <translation id="3700888195348409686">Үзүүлэх (<ph name="PAGE_ORIGIN" />)</translation>
@@ -2958,13 +2961,12 @@
 <translation id="3975565978598857337">Домэйнээр серверт холбогдох амжилтгүй боллоо</translation>
 <translation id="3976108569178263973">Боломжтой хэвлэгч алга байна.</translation>
 <translation id="397703832102027365">Дуусгаж байна...</translation>
+<translation id="3977145907578671392">Зарим сайт дээр онцлог Нууцлалтай горимд ажиллахгүй байж болзошгүй</translation>
 <translation id="3977886311744775419">Автомат шинэчлэлтийг сүлжээний энэ төрөл дээр татаж авдаггүй боловч та шинэчлэлтийг гар аргаар шалгаж болно.</translation>
 <translation id="3979395879372752341">Шинэ өргөтгөл нэмсэн ( <ph name="EXTENSION_NAME" /> )</translation>
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" />-ыг идэвхжүүл</translation>
 <translation id="3981058120448670012">Ойролцоох төхөөрөмжүүдэд <ph name="REMAINING_TIME" />-н турш <ph name="DEVICE_NAME" />-р харагдана...</translation>
 <translation id="3981760180856053153">Хадгалах хүчингүй төрөл орсон байна.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Алдаа гарсан бөгөөд <ph name="DEVICE_OS" />-г суулгаж чадсангүй.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Илүү их тусламж авах бол дараахад зочилно уу: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Хөтчөө энгийн хэдэн алхмаар тохируулна уу</translation>
 <translation id="3983400541576569538">Зарим аппын өгөгдөл устаж болзошгүй</translation>
 <translation id="3983586614702900908">Үл таних vendor-н төхөөрөмж</translation>
@@ -3884,9 +3886,6 @@
 <translation id="4992984395680162305">Эдгээр төхөөрөмжийг QR код скан хийж холбосон.</translation>
 <translation id="4994474651455208930">Сайтыг протоколын өгөгдмөл хариуцагч байхыг зөвшөөрөх</translation>
 <translation id="4994754230098574403">Тохируулж байна</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Бүртгүүлэхээсээ өмнө та TPM-г цэвэрлэх шаардлагатай бөгөөд ингэснээр <ph name="DEVICE_OS" /> нь төхөөрөмжийн өмчлөлийг авах боломжтой.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Та мөн TPM төхөөрөмжийг бүхэлд нь унтраах боломжтой. Таны өгөгдлийг программ хангамжийн шифрлэлтээр аюулгүйгээр хадгалсаар байх хэдий ч техник хангамжаар баталгаажсан сертификатууд зэрэг аюулгүй байдлын тодорхой онцлогуудыг идэвхгүй болгоно.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Та TPM-н тохиргоогоо системийн BIOS/UEFI-н тохиргоог дахин асааж, оруулснаар өөрчлөх боломжтой. Алхмууд нь төхөөрөмжийн загварт тулгуурлан ялгаатай байна. Нэмэлт мэдээлэл авах бол та дахин асаахаасаа өмнө <ph name="DEVICE_OS" />-н баримт бичгийг тусдаа төхөөрөмж дээр нээнэ үү: [URL-н холбоос]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Ямар ч <ph name="VM_TYPE" /> VM олдсонгүй}=1{1 <ph name="VM_TYPE" /> VM олдсон: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> VM олдсон: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Интернет холболт алга.</translation>
 <translation id="4998430619171209993">Асаалттай</translation>
@@ -3907,6 +3906,7 @@
 <translation id="5018207570537526145">Өргөтгөлийн вебсайтыг нээх</translation>
 <translation id="5018526990965779848">Ашиглалт болон оношилгооны өгөгдлийг илгээнэ үү. Оношилгоо, төхөөрөмж болон аппын ашиглалтын өгөгдлийг Google-д автоматаар илгээж, таны Android-н хэрэглээг сайжруулахад тусална уу. Энэ нь систем, аппын тогтвортой байдал болон бусад зүйлийг сайжруулахад тусална. Хуримтлуулсан зарим өгөгдөл нь Google-н аппууд болон Android хөгжүүлэгч зэрэг түншүүдэд мөн тусална. Хэрэв таны Веб, аппын нэмэлт үйл ажиллагааны тохиргоо асаалттай байвал энэ өгөгдлийг таны Google Бүртгэлд хадгалж болзошгүй.</translation>
 <translation id="5021750053540820849">Хараахан шинэчлэгдээгүй</translation>
+<translation id="5024511550058813796">Таны бүх синк хийсэн төхөөрөмж дээр таны түүхийг хадгална. Ингэснээр та хийж байсан зүйлээ үргэлжлүүлэх боломжтой</translation>
 <translation id="5026492829171796515">Google бүртгэл нэмэхийн тулд нэвтэрнэ үү</translation>
 <translation id="5026806129670917316">Wi-Fi асаах</translation>
 <translation id="5026874946691314267">Үүнийг дахиж бүү харуул</translation>
@@ -4004,7 +4004,6 @@
 <translation id="5127620150973591153">Аюулгүй холболтын ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Тохиргоог унтраасан байна</translation>
 <translation id="5127881134400491887">Сүлжээний холболтууд зохицуулах</translation>
-<translation id="5128774403617662387">Эхлэхээсээ өмнө өгөгдлөө нөөцөлсөн эсэхээ шалгана уу. <ph name="DEVICE_OS" />-г суулгаснаар таны хатуу дискийг дарж бичнэ. Та g.co/TBD дээрээс нэмэлт мэдээлэл авна уу.</translation>
 <translation id="512903556749061217">Хавсаргасан</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Профайлыг татаж чадсангүй. Дараа дахин оролдох эсвэл тусламж авахын тулд оператор компанитай холбогдоно уу.</translation>
@@ -4428,6 +4427,7 @@
 <translation id="5571066253365925590">Bluetooth идэвхжсэн байна</translation>
 <translation id="5571092938913434726">Глобал медиа хяналт</translation>
 <translation id="5571832155627049070">Профайлаа өөрчлөх</translation>
+<translation id="5572648434713976849">Та хаяг оруулах хэсэгт сайжруулсан зөвлөмжүүд авна</translation>
 <translation id="5572851009514199876">Chrome-г эхлүүлж, нэвтэрснээр Chrome таныг энэ сайтад хандах эрхтэй эсэхийг шалгах болно.</translation>
 <translation id="5575473780076478375">Нууцлалтай өргөтгөл: <ph name="EXTENSION_NAME" /></translation>
 <translation id="5575528586625653441">Демо бүртгэлийн хүсэлтэд алдаа гарлаа.</translation>
@@ -4521,7 +4521,6 @@
 <translation id="5659593005791499971">И-мэйл хаяг</translation>
 <translation id="5659833766619490117">Энэ хуудсыг орчуулж чадсангүй</translation>
 <translation id="5662513737565158057">Linux аппууд хэрхэн ажиллахыг өөрчилнө үү.</translation>
-<translation id="5667490069342183561">Google аливаа өгөгдлийн алдагдлыг хариуцахгүй бөгөөд <ph name="DEVICE_OS" /> нь баталгаажаагүй загварууд дээр ажиллахгүй байж магадгүй. Та g.co/TBD дээрээс нэмэлт мэдээлэл авна уу.</translation>
 <translation id="5667546120811588575">Google Play-г тохируулж байна...</translation>
 <translation id="5668351004957198136">Амжилтгүй</translation>
 <translation id="56702779821643359">Эргэн тойрныхоо хүмүүстэй файл хуваалцаарай. <ph name="LINK_BEGIN" />Нэмэлт мэдээлэл авах<ph name="LINK_END" /></translation>
@@ -4898,6 +4897,7 @@
 <translation id="6072442788591997866"><ph name="APP_NAME" />-г энэ төхөөрөмжид зөвшөөрдөггүй. Администратортайгаа холбогдоно уу. Алдааны код: <ph name="ERROR_CODE" />.</translation>
 <translation id="6073451960410192870">Бичихийг зогсоох</translation>
 <translation id="6073903501322152803">Хандалтын онцлогийг нэмэх</translation>
+<translation id="6075418785668063462">Нууцлалын гарын авлагыг аваарай</translation>
 <translation id="6075731018162044558">Өө! Систем нь энэ төхөөрөмжид урт хугацааны API нэвтрэх түлхүүрийг олж авч чадсангүй.</translation>
 <translation id="6075907793831890935"><ph name="HOSTNAME" /> нэртэй төхөөрөмж ашиглан мэдээлэл солилцоорой</translation>
 <translation id="6076175485108489240">Байршлыг ашиглана уу. Байршлын зөвшөөрөлтэй аппууд болон үйлчилгээнүүдэд төхөөрөмжийнхөө байршлыг ашиглахыг зөвшөөрнө үү. Google байршлын нарийвчлал болон байршилд суурилсан үйлчилгээнүүдийг сайжруулах зорилгоор байршлын өгөгдлийг үе үе цуглуулж, энэ өгөгдлийг нэргүй байдлаар ашиглаж болзошгүй. <ph name="BEGIN_LINK1" />Нэмэлт мэдээлэл авах<ph name="END_LINK1" /></translation>
@@ -5332,9 +5332,6 @@
 <translation id="6528179044667508675">Бүү саад бол</translation>
 <translation id="652948702951888897">Chrome-н түүх</translation>
 <translation id="6530186581263215931">Эдгээр тохиргоог таны админ идэвхжүүлсэн байна</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Хамгийн сайн туршлагыг олгохын тулд <ph name="DEVICE_OS" /> нь төхөөрөмжийн талаарх техник хангамжийн өгөгдлийг цуглуулж, үүнийг аль шинэчлэлтүүдийг хүргэхийг тодорхойлохын тулд Google-тэй хуваалцана. Сонголтоор та Google-д энэ өгөгдлийг <ph name="DEVICE_OS" />-н туршлага болон үйлчилгээний тусламж, сайжруулалт зэрэг нэмэлт зорилгоор ашиглахыг зөвшөөрөх боломжтой.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Та энэ төхөөрөмж дээр нэвтэрч, chrome://system дэх CLOUDREADY_HARDWARE_INFO хэсэгт зочлон шинэчлэлтийг шүүх зорилгоор Google рүү илгээсэн өгөгдөл түүнчлэн таны Google-тэй өгөгдөл хуваалцахаар сонгосон бусад аливаа инстансыг харах боломжтой.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" />-н Google-тэй хуваалцаж болох өгөгдөл болон үүнийг хэрхэн ашигладаг талаарх нэмэлт мэдээллийг g.co/xxxxx дээрээс авна уу<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Аюултай файлыг хадгалах</translation>
 <translation id="6532101170117367231">Google Драйвд хадгалах</translation>
 <translation id="6532106788206463496">Өөрчлөлтийг хадгалах</translation>
@@ -5410,6 +5407,7 @@
 <translation id="6602937173026466876">Хэвлэгчдээ хандах</translation>
 <translation id="6602956230557165253">Навигац хийхийн тулд зүүн, баруун сумтай түлхүүрүүдийг ашиглах.</translation>
 <translation id="6602998402703530379"><ph name="DEVICE_COUNT" />-с <ph name="DEVICE_INDEX" /> төхөөрөмж, <ph name="DEVICE_NAME" />, Видео камер.</translation>
+<translation id="6603185457265641428">Түүхийг синк хийх эсэхээ сонгоно уу</translation>
 <translation id="6605847144724004692">Одоогоор ямар ч хэрэглэгч үнэлээгүй байна.</translation>
 <translation id="6606671997164410857">Та өөр төхөөрөмжид Google Туслахыг аль хэдийн тохируулсан бололтой. Энэ төхөөрөмж дээр Дэлгэцийн хам сэдвийг асааснаар Туслахаа илүү сайн ашиглаарай.</translation>
 <translation id="6607831829715835317">Илүү их хэрэгслүүд</translation>
@@ -5448,6 +5446,7 @@
 <translation id="6644846457769259194">Таны төхөөрөмжийг шинэчилж байна (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="6645437135153136856">Сонгосон Google Клоуд Хэвлэгч төхөөрөмжийг цаашид дэмжихгүй. <ph name="BR" /> Компьютерийнхээ системийн тохиргоонд хэвлэгчийг тохируулж үзнэ үү.</translation>
 <translation id="6647228709620733774">Netscape Certification Authority Revocation URL</translation>
+<translation id="6647441008198474441">Таны зочилсон URL-г Google рүү илгээж, дараа нь ямар сайтад зочилж болохыг таамаглах болно</translation>
 <translation id="6648911618876616409">Шаардлагатай шинэчлэлтийг суулгахад бэлэн байна. Эхлүүлэхийн тулд нэвтэрнэ үү.</translation>
 <translation id="6649018507441623493">Түр хүлээнэ үү…</translation>
 <translation id="6650234781371031356">Таны <ph name="WEBSITE" />-н нууц үгийг энэ төхөөрөмж болон таны Google Бүртгэлд хадгалсан. Та алийг нь устгахыг хүсэж байна вэ?</translation>
@@ -5758,6 +5757,7 @@
 <translation id="6972887130317925583">Алдагдсан нууц үгийг амжилттай өөрчиллөө. Нууц үгнүүдээ <ph name="SETTINGS" />-с хүссэн үедээ шалгана уу.</translation>
 <translation id="697312151395002334">Попап илгээх болон дахин чиглүүлэлт ашиглахыг зөвшөөрсөн</translation>
 <translation id="6973611239564315524">Debian 10 (Buster) руу дэвшүүлэх боломжтой байна</translation>
+<translation id="69739764870135975">Хэрэв Google нь таны өгөгдмөл хайлтын систем бол та хам сэдэвтэй холбоотой илүү сайн зөвлөмжүүдийг харах болно</translation>
 <translation id="6974609594866392343">Офлайн туршилтын горим</translation>
 <translation id="697508444536771064">Linux-г унтраах</translation>
 <translation id="6977739184256564679"><ph name="DEVICE_COUNT" />-с <ph name="DEVICE_INDEX" /> төхөөрөмж, <ph name="DEVICE_NAME" />, Таблет.</translation>
@@ -5999,6 +5999,7 @@
 <translation id="7239108166256782787"><ph name="DEVICE_NAME" /> шилжүүлгийг цуцалсан</translation>
 <translation id="7240339475467890413">Шинэ сүлжээний цэгт холбогдох уу?</translation>
 <translation id="7241389281993241388">Хэрэглэгчийн гэрчилгээг оруулах зорилгоор <ph name="TOKEN_NAME" />-д нэвтрэнэ үү.</translation>
+<translation id="7241763419756062043">Хайлт болон хайлтын чанараа сонгоно уу</translation>
 <translation id="7243632151880336635">Цэвэрлээд гарах</translation>
 <translation id="7243784282103630670">Linux-г дэвшүүлэхэд алдаа гарлаа. Бид таны нөөцлөлтийг ашиглан контейнерыг сэргээх болно.</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Шилдэг)</translation>
@@ -6023,15 +6024,6 @@
 <translation id="7258192266780953209">Хувиргалт</translation>
 <translation id="7258225044283673131">Хэрэглээний программ хариу өгөхгүй байна. Аппыг хаахын тулд "Хүчээр хаах"-г сонгоно уу.</translation>
 <translation id="7262004276116528033">Энэ нэвтрэх үйлчилгээг <ph name="SAML_DOMAIN" />-с хост хийсэн</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Эдгээр асуудал шийдэх алхмыг туршиж үзнэ үү:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Таны төхөөрөмжид HDD, SSD эсвэл eMMC зэрэг ажиллагаатай дотоод сан байгаа эсэхийг шалгана уу
-    <ph name="LIST_ITEM" />Таны дотоод сангийн төхөөрөмж 16ГБ-аас илүү их зайтай эсэхийг шалгана уу
-    <ph name="LIST_ITEM" />Хэрэв биетээр хандах боломжтой бол дотоод сангийнхаа холболтыг шалгана уу
-    <ph name="LIST_ITEM" />Та баталгаажсан загвар ашиглаж байгаа эсэх болон суулгах тэмдэглэлийг шалгана уу
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Илүү их тусламж хэрэгтэй бол дараахад зочилно уу: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Виртуал машиныг суулгаж чадсангүй. Дахин оролдож үзнэ үү, эсвэл админтайгаа холбогдоно уу. Алдааны код: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Хурууныхаа хээг бүрэн гаргахын тулд хуруугаа хөндийрүүлсэн хэвээр байлгана уу</translation>
 <translation id="7268127947535186412">Энэ тохиргоог төхөөрөмжийн эзэмшигч удирддаг.</translation>
@@ -6113,6 +6105,7 @@
 <translation id="7360233684753165754"><ph name="PAGE_NUMBER" /> хуудсыг <ph name="PRINTER_NAME" />-р</translation>
 <translation id="7361297102842600584"><ph name="PLUGIN_NAME" />-г ажиллуулахын тулд барууныг дарна уу</translation>
 <translation id="7362387053578559123">Сайтууд Bluetooth төхөөрөмжүүдэд холбогдохыг хүсэх боломжтой</translation>
+<translation id="7363349185727752629">Таны нууцлалын сонголтуудын гарын авлага</translation>
 <translation id="7364591875953874521">Хандах хүсэлт тавьсан</translation>
 <translation id="7364745943115323529">Дамжуулах...</translation>
 <translation id="7364796246159120393">Файлаа сонгоно уу</translation>
@@ -6664,6 +6657,7 @@
 <translation id="7885253890047913815">Хамгийн сүүлд ашигласан</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{1 зүйл}other{# зүйл}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
+<translation id="7887174313503389866">Нууцлал болон аюулгүй байдлын үндсэн хяналтын талаар хөтөчтэй аялалд хамрагдаарай. Нэмэлт сонголтуудыг харахын тулд хувийн тохиргоо руу очно уу.</translation>
 <translation id="7887334752153342268">Хувилах</translation>
 <translation id="7887864092952184874">Bluetooth хулганыг тохирууллаа</translation>
 <translation id="7889371445710865055">Дуу хоолойгоор бичих хэлийг өөрчлөх</translation>
@@ -7205,6 +7199,7 @@
 <translation id="8457451314607652708">Хавчуургыг татаж авчрах</translation>
 <translation id="8458341576712814616">Товчлол</translation>
 <translation id="8458627787104127436">Бүгдийг (<ph name="URL_COUNT" />) шинэ цонхонд нээх</translation>
+<translation id="8460448946170646641">Нууцлал болон аюулгүй байдлын үндсэн хяналтуудыг шалгана уу</translation>
 <translation id="8460490661223303637">Дурсамж хадгалахын тулд Chrome зарим контентыг хассан</translation>
 <translation id="8460932807646981183">Хайлтын систем болон сайтын хайлтыг удирдах</translation>
 <translation id="84613761564611563">Сүлжээг тохируулах UI-н хүсэлт гаргасан тул түр хүлээнэ үү...</translation>
@@ -7524,6 +7519,7 @@
 <translation id="8798099450830957504">Гэрээ үл биелүүлэх</translation>
 <translation id="8800004011501252845">Товлосон чиглэлийг харуулах</translation>
 <translation id="8800034312320686233">Сайт ажиллахгүй байна уу?</translation>
+<translation id="8803526663383843427">Асаалттай байх үед</translation>
 <translation id="8803953437405899238">Нэг товшилтоор шинэ таб үүсгэх</translation>
 <translation id="8804999695258552249">{NUM_TABS,plural, =1{Табыг өөр цонх руу зөөх}other{Табуудыг өөр цонх руу зөөх}}</translation>
 <translation id="8805140816472474147">Синкийг эхлүүлэхийн тулд синкийн тохиргоог баталгаажуулна уу.</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index 63e52378f..67cadf43 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -2326,7 +2326,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> तुमच्यासोबत <ph name="ATTACHMENTS" /> शेअर करत आहे.}other{<ph name="DEVICE_NAME" /> तुमच्यासोबत <ph name="ATTACHMENTS" /> शेअर करत आहे.}}</translation>
 <translation id="3364986687961713424">तुमच्या अ‍ॅडमिनिस्ट्रेटरकडून: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">एकतर Ctrl किंवा Alt वापरा</translation>
-<translation id="3367057768351048705">साइट फक्त तुमच्या कुकीचा वापर त्यांच्या स्वतःच्या साइटवरील तुमची ब्राउझिंग अ‍ॅक्टिव्हिटी पाहण्यासाठी करू शकतात</translation>
 <translation id="3368922792935385530">कनेक्ट केले</translation>
 <translation id="3369067987974711168">या पोर्टसाठीच्या आणखी क्रिया दाखवा</translation>
 <translation id="3369624026883419694">होस्टचे निराकरण करीत आहे...</translation>
@@ -2967,8 +2966,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> सुरू करा</translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" /> साठी <ph name="DEVICE_NAME" /> म्हणून जवळपासच्या डिव्हाइसना दृश्यमान...</translation>
 <translation id="3981760180856053153">अवैध सेव्ह प्रकार एंटर केले.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />काहीतरी चूक झाली आणि <ph name="DEVICE_OS" /> इंस्टॉल करता आले नाही.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />अधिक माहितीसाठी पुढील लिंकला भेट द्या: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">तुमचा ब्राउझर काही सोप्या पायऱ्यांमध्ये सेट करा</translation>
 <translation id="3983400541576569538">काही अ‍ॅप्समधून डेटा गमावू शकतो</translation>
 <translation id="3983586614702900908">अज्ञात विक्रेत्याकडील डिव्हाइसेस</translation>
@@ -3886,9 +3883,6 @@
 <translation id="4992984395680162305">ही डिव्हाइस QR कोड स्कॅन करून लिंक केली आहेत.</translation>
 <translation id="4994474651455208930">प्रोटोकॉलसाठी डीफॉल्ट हँडलर होण्यासाठी साइटना विचारण्याची परवानगी द्या</translation>
 <translation id="4994754230098574403">सेट अप करीत आहे</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />नोंदणी करण्यापूर्वी, तुम्ही TPM साफ करणे आवश्यक असेल जेणेकरून, <ph name="DEVICE_OS" /> हे डिव्हाइसची मालकी घेऊ शकते.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />तुम्ही TPM डिव्हाइस पूर्णपणेदेखील बंद करू शकता. तुमचा डेटा तरीही सॉफ्टवेअर एंक्रिप्शनसह सुरक्षितरीत्या स्टोअर केला जाईल, पण हार्डवेअर-बॅक्ड सर्टिफिकेट यांसारखी विशिष्ट सुरक्षितता वैशिष्‍ट्ये बंद केली जातील.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />तुम्ही रीबूट करून किंवा सिस्टीमची BIOS/UEFI सेटिंग्ज एंटर करून तुमची TPM सेटिंग्ज बदलू शकता. डिव्हाइसच्या मॉडेलनुसार पायऱ्या बदलतात. अधिक माहितीसाठी, तुम्ही रीबूट करण्यापूर्वी, दुसऱ्या डिव्हाइसवर <ph name="DEVICE_OS" /> दस्तऐवज उघडा: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{No <ph name="VM_TYPE" /> VMs found}=1{एक <ph name="VM_TYPE" /> VM आढळला: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> VM आढळले: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">इंटरनेट कनेक्‍शन नाही.</translation>
 <translation id="4998430619171209993">सुरू</translation>
@@ -4006,7 +4000,6 @@
 <translation id="5127620150973591153">सुरक्षित कनेक्शन आयडी: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">सिंक बंद आहे</translation>
 <translation id="5127881134400491887">नेटवर्क कनेक्शन व्यवस्थापित करा</translation>
-<translation id="5128774403617662387">सुरुवात करण्यापूर्वी, तुम्ही तुमच्या सर्व डेटाचा बॅकअप घेतला आहे याची खात्री करा. <ph name="DEVICE_OS" /> इंस्टॉल केल्याने, तुमची हार्ड ड्राइव्ह ओव्हरराइट होईल. g.co/TBD येथे अधिक जाणून घ्या.</translation>
 <translation id="512903556749061217">संलग्न केले</translation>
 <translation id="5130080518784460891">इटेन</translation>
 <translation id="5130675701626084557">प्रोफाइल डाउनलोड करता आली नाही. कृपया नंतर पुन्हा प्रयत्न करा किंवा मदतीसाठी वाहकाशी संपर्क साधा.</translation>
@@ -4522,7 +4515,6 @@
 <translation id="5659593005791499971">ई-मेल</translation>
 <translation id="5659833766619490117">या पेजचे भाषांतर करता आले नाही</translation>
 <translation id="5662513737565158057">Linux ॲप्स कशी काम करतील ते बदला.</translation>
-<translation id="5667490069342183561">कोणत्याही डेटाच्या नुकसानासाठी Google जबाबदार नाही आणि <ph name="DEVICE_OS" /> हे अप्रमाणित मॉडेलवर काम करू शकत नाही. g.co/TBD येथे अधिक जाणून घ्या.</translation>
 <translation id="5667546120811588575">Google Play सेट अप करत आहे...</translation>
 <translation id="5668351004957198136">पूर्ण न झालेली</translation>
 <translation id="56702779821643359">तुमच्या आसपासच्या लोकांसोबत फाइल शेअर करा. <ph name="LINK_BEGIN" />अधिक जाणून घ्या<ph name="LINK_END" /></translation>
@@ -5335,9 +5327,6 @@
 <translation id="6528179044667508675">व्यत्यय आणू नका</translation>
 <translation id="652948702951888897">Chrome इतिहास</translation>
 <translation id="6530186581263215931">या सेटिंग्जची अंमलबजावणी तुमच्या ॲडमिनिस्ट्रेटरकडून होते</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />सर्वोत्तम अनुभव पुरवण्यासाठी, <ph name="DEVICE_OS" /> हे डिव्हाइसविषयी हार्डवेअर डेटा गोळा करते आणि कोणती अपडेट डिलिव्हर केली पाहिजेत हे निर्धारित करण्यासाठी ते तो Google सोबत शेअर करते. याव्यतिरिक्त, तुम्ही <ph name="DEVICE_OS" /> मधील अनुभव आणि सेवा यांच्याशी संबंधित सपोर्ट आणि सुधारणा यांसारख्या अतिरिक्त उद्देशांसाठी Google ला हा डेटा वापरण्याची अनुमती देऊ शकता.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />फिल्टर करण्याचे पर्याय अपडेट करण्यासाठी Google ला पाठवलेला डेटा तसेच असे कोणतेही प्रसंग ज्यात तुम्ही Google सोबत डेटा शेअर करण्याचे निवडले होते हे पाहण्याकरिता तुम्ही या डिव्हाइसवर लॉग इन करू शकता आणि chrome://system मधील CLOUDREADY_HARDWARE_INFO विभागाला भेट देऊ शकता.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> हे Google सोबत शेअर करू शकते असा डेटा आणि तो कसा वापरला जातो याविषयीच्या अधिक तपशिलांसाठी g.co/xxxxx ला भेट द्या<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">धोकादायक फाईल ठेवा</translation>
 <translation id="6532101170117367231">Google ड्राइव्ह मध्ये सेव्ह करा</translation>
 <translation id="6532106788206463496">बदल सेव्ह करा</translation>
@@ -6026,15 +6015,6 @@
 <translation id="7258192266780953209">परिवर्तने</translation>
 <translation id="7258225044283673131">ॲप्लिकेशन प्रतिसाद देत नाही. अ‍ॅप बंद करण्यासाठी "सक्तीने बंद करा" निवडा.</translation>
 <translation id="7262004276116528033">ही साइन-इन सेवा <ph name="SAML_DOMAIN" /> द्वारे होस्ट केली जाते</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />या ट्रबलशूटिंग पायऱ्या वापरून पहा:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />तुमच्या डिव्हाइसमध्ये HDD, SSD किंवा eMMC यांसारख्या काम करत असलेल्या अंतर्गत स्टोरेजचा समावेश असल्याची खात्री करा
-    <ph name="LIST_ITEM" />तुमचे अंतर्गत स्टोरेज डिव्हाइस १६GB पेक्षा मोठे आहे हे तपासा
-    <ph name="LIST_ITEM" />प्रत्यक्षरीत्या ॲक्सेस करण्यायोग्य असल्यास, अंतर्गत स्टोरेजचे कनेक्शन तपासा
-    <ph name="LIST_ITEM" />तुम्ही प्रमाणित मॉडेल वापरत असल्याची खात्री करा आणि इंस्टॉल नोट तपासा
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />अधिक मदतीसाठी, पुढील लिंकला भेट द्या: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">व्हर्च्युअल मशीन इंस्टॉल करता आले नाही. कृपया पुन्हा प्रयत्न करा किंवा तुमच्या अ‍ॅडमिनिस्ट्रेटरशी संपर्क साधा. एरर कोड: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">तुमच्‍या फिंगरप्रिंटचे वेगवेगळे भाग जोडण्यासाठी तुमचे बोट उचलत राहा</translation>
 <translation id="7268127947535186412">हे सेटिंग डिव्हाइसच्या मालकाद्वारे व्यवस्थापित केले जाते.</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 42a401d..a45c070 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> sedang berkongsi <ph name="ATTACHMENTS" /> dengan anda.}other{<ph name="DEVICE_NAME" /> sedang berkongsi <ph name="ATTACHMENTS" /> dengan anda.}}</translation>
 <translation id="3364986687961713424">Daripada pentadbir anda: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Gunakan sama ada Ctrl atau Alt</translation>
-<translation id="3367057768351048705">Laman hanya boleh menggunakan kuki anda untuk melihat aktiviti penyemakan imbas anda pada laman mereka sendiri</translation>
 <translation id="3368922792935385530">Disambungkan</translation>
 <translation id="3369067987974711168">Tunjukkan pelbagai lagi tindakan untuk port ini</translation>
 <translation id="3369624026883419694">Menyelesaikan hos...</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326">Dayakan <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Kelihatan kepada peranti yang berdekatan sebagai <ph name="DEVICE_NAME" /> selama <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Jenis menyimpan yang dimasukkan tidak sah.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Kesilapan telah berlaku dan <ph name="DEVICE_OS" /> tidak dapat dipasang.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Untuk mendapatkan bantuan lanjut, lawati: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Sediakan penyemak imbas anda melalui beberapa langkah mudah</translation>
 <translation id="3983400541576569538">Data daripada sesetengah apl mungkin hilang</translation>
 <translation id="3983586614702900908">peranti daripada vendor yang tidak diketahui</translation>
@@ -3889,9 +3886,6 @@
 <translation id="4992984395680162305">Peranti ini dipautkan dengan mengimbas kod QR.</translation>
 <translation id="4994474651455208930">Membenarkan tapak untuk meminta menjadi pengendali lalai untuk protokol</translation>
 <translation id="4994754230098574403">Menyediakan</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Sebelum mendaftar, anda perlu mengosongkan TPM agar <ph name="DEVICE_OS" /> dapat mengambil alih peranti ini.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Anda juga boleh mematikan peranti TPM sepenuhnya. Data anda masih akan disimpan dengan selamat dengan penyulitan perisian, tetapi ciri keselamatan tertentu seperti sijil yang disokong perkakasan akan dilumpuhkan.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Anda boleh menukar tetapan TPM anda dengan mengebut semula dan memasukkan tetapan BIOS/UEFI sistem. Langkah berbeza-beza berdasarkan model peranti. Untuk mendapatkan maklumat lanjut, buka dokumentasi <ph name="DEVICE_OS" /> pada peranti lain sebelum mengebut semula: [pautan URL]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Tiada VM <ph name="VM_TYPE" /> ditemukan}=1{1 VM <ph name="VM_TYPE" /> ditemukan: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} VM <ph name="VM_TYPE" /> ditemukan: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Tiada sambungan Internet.</translation>
 <translation id="4998430619171209993">Hidupkan</translation>
@@ -4009,7 +4003,6 @@
 <translation id="5127620150973591153">ID sambungan selamat: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Penyegerakan dimatikan</translation>
 <translation id="5127881134400491887">Urus sambungan rangkaian</translation>
-<translation id="5128774403617662387">Sebelum memulakan, pastikan anda mempunyai sandaran data anda. Pemasangan <ph name="DEVICE_OS" /> akan menulis ganti pemacu keras anda. Ketahui lebih lanjut di g.co/TBD.</translation>
 <translation id="512903556749061217">dipasang</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profil tidak dapat dimuat turun. Sila cuba sebentar lagi atau hubungi pembawa untuk mendapatkan bantuan.</translation>
@@ -4525,7 +4518,6 @@
 <translation id="5659593005791499971">E-mel</translation>
 <translation id="5659833766619490117">Halaman ini tidak dapat diterjemahkan</translation>
 <translation id="5662513737565158057">Tukar cara apl Linux berfungsi.</translation>
-<translation id="5667490069342183561">Google tidak bertanggungjawab atas sebarang kehilangan data dan <ph name="DEVICE_OS" /> mungkin tidak berfungsi pada model yang tidak diperakui. Ketahui lebih lanjut di g.co/TBD.</translation>
 <translation id="5667546120811588575">Menyediakan Google Play...</translation>
 <translation id="5668351004957198136">Gagal</translation>
 <translation id="56702779821643359">Kongsikan fail dengan orang di sekeliling anda. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation>
@@ -5337,9 +5329,6 @@
 <translation id="6528179044667508675">Jangan ganggu</translation>
 <translation id="652948702951888897">Sejarah Chrome</translation>
 <translation id="6530186581263215931">Tetapan ini dikuatkuasakan oleh pentadbir anda</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Untuk memberikan pengalaman terbaik, <ph name="DEVICE_OS" /> mengumpul data perkakasan tentang peranti dan berkongsinya dengan Google untuk menentukan kemaskinian yang seharusnya dihantar. Secara pilihan, anda boleh membenarkan Google menggunakan data ini untuk tujuan tambahan seperti sokongan dan peningkatan pada pengalaman dan perkhidmatan <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Anda boleh log masuk pada peranti ini dan melawati bahagian CLOUDREADY_HARDWARE_INFO dalam chrome://system untuk melihat data yang dihantar kepada Google untuk penapisan kemaskinian, serta sebarang keadaan lain yang anda pilih untuk berkongsi data dengan Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Untuk mendapatkan butiran lanjut tentang data yang <ph name="DEVICE_OS" /> boleh berkongsi dengan Google dan cara data itu digunakan, lawati g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Simpan fail berbahaya</translation>
 <translation id="6532101170117367231">Simpan ke Google Drive</translation>
 <translation id="6532106788206463496">Simpan perubahan</translation>
@@ -6028,15 +6017,6 @@
 <translation id="7258192266780953209">Perubahan</translation>
 <translation id="7258225044283673131">Aplikasi tidak memberikan respons. Pilih "Paksa tutup" untuk menutup apl.</translation>
 <translation id="7262004276116528033">Perkhidmatan log masuk ini dihoskan oleh <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Cuba langkah penyelesaian masalah berikut:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Pastikan peranti anda mengandungi storan dalaman yang berfungsi seperti HDD, SSD atau eMMC
-    <ph name="LIST_ITEM" />Pastikan peranti storan dalaman anda lebih besar daripada 16GB
-    <ph name="LIST_ITEM" />Periksa sambungan kepada storan dalaman, jika dapat diakses secara fizikal
-    <ph name="LIST_ITEM" />Pastikan anda menggunakan model yang diperakui dan semak nota pemasangan
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Untuk mendapatkan bantuan lanjut, lawati: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Tidak dapat memasang mesin maya. Sila cuba lagi atau hubungi pentadbir anda. Kod ralat: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Angkat jari berulang kali untuk menambahkan beberapa bahagian cap jari anda</translation>
 <translation id="7268127947535186412">Tetapan ini diurus oleh pemilik peranti.</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index 3f4e9dc..2124423 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -2325,7 +2325,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ကို <ph name="DEVICE_NAME" /> က သင်နှင့် မျှဝေနေသည်။}other{<ph name="ATTACHMENTS" /> ကို <ph name="DEVICE_NAME" /> က သင်နှင့် မျှဝေနေသည်။}}</translation>
 <translation id="3364986687961713424">သင်၏ စီမံခန့်ခွဲသူထံမှ- <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl သို့မဟုတ် Alt သုံးရန်</translation>
-<translation id="3367057768351048705">ဝဘ်ဆိုက်များသည် ၎င်းတို့ပေါ်ရှိ သင်၏ကြည့်ရှုခြင်းများကို မြင်ရရန်အတွက်သာ သင့်ကွတ်ကီးများကို သုံးနိုင်သည်</translation>
 <translation id="3368922792935385530">ချိတ်ဆက်ထားပြီ</translation>
 <translation id="3369067987974711168">ဤပို့တ်အတွက် နောက်ထပ်လုပ်ဆောင်ချက်များ ပိုပြပါ</translation>
 <translation id="3369624026883419694">အိမ်ရှင်ကို ဖြေရှင်းနေ...</translation>
@@ -2965,8 +2964,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> ကို ဖွင့်ထားရန်</translation>
 <translation id="3981058120448670012">အနီးရှိစက်များက <ph name="DEVICE_NAME" /> အဖြစ် <ph name="REMAINING_TIME" /> ကြာ မြင်နိုင်သည်...</translation>
 <translation id="3981760180856053153">ဝင်ခဲ့သည့် သိမ်းဆည်းမှု ပုံစံ မမှန်ပါ။</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />တစ်ခုခုမှားသွားပြီး <ph name="DEVICE_OS" /> ကို မထည့်သွင်းနိုင်ပါ။<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />နောက်ထပ်အကူအညီလိုလျှင် ဤသို့ဝင်ကြည့်ပါ- g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">ရိုးရှင်းသည့်အဆင့်အနည်းငယ် ပြုလုပ်ရုံဖြင့် သင်၏ဘရောင်ဇာကို စနစ်ထည့်သွင်းပါ</translation>
 <translation id="3983400541576569538">အက်ပ်အချို့မှ ဒေတာများ ပျောက်သွားနိုင်သည်</translation>
 <translation id="3983586614702900908">အမည်မသိ ပစ္စည်းရောင်းသူထံမှ စက်ပစ္စည်းများ</translation>
@@ -3886,9 +3883,6 @@
 <translation id="4992984395680162305">ဤစက်များကို QR ကုဒ် စကင်ဖတ်ခြင်းဖြင့် ချိတ်ဆက်ထားသည်။</translation>
 <translation id="4994474651455208930">လုပ်ထုံးလုပ်နည်းများအား မူရင်းစီမံသူများအဖြစ် ဆိုက်များကို တောင်းဆိုခွင့်ပြုပါ</translation>
 <translation id="4994754230098574403">စနစ်ထည့်သွင်းနေပါသည်</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" /><ph name="DEVICE_OS" /> က စက်၏ပိုင်ဆိုင်မှုကို ရယူနိုင်ရန်အတွက် စာရင်းမသွင်းမီ TPM ကို ရှင်းရန်လိုအပ်သည်။<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />TPM စက်ကိုလည်း အပြီးပိတ်ထားနိုင်သည်။ ဆော့ဖ်ဝဲအသွင်ဝှက်ခြင်းဖြင့် သင်၏ဒေတာကို လုံခြုံစွာသိမ်းထားနိုင်သေးသည်။ သို့သော်လည်း ကွန်ပျူတာဆိုင်ရာ စက်ပစ္စည်းအခြေပြု အသိအမှတ်ပြုလက်မှတ်များကဲ့သို့ လုံခြုံရေးဝန်ဆောင်မှုအချို့ကို ပိတ်လိုက်ပါမည်။<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />ပြန်လည်စတင်ခြင်းနှင့် စနစ် BIOS/UEFI ဆက်တင်များ ထည့်ခြင်းဖြင့် သင်၏ TPM ဆက်တင်များကို ပြောင်းနိုင်သည်။ စက်မော်ဒယ်အပေါ်အခြေခံပြီး အဆင့်များကွဲပြားသည်။ နောက်ထပ်အချက်အလက်များအတွက် ပြန်လည်မစတင်မီ သီးခြားစက်တစ်လုံးပေါ်တွင် <ph name="DEVICE_OS" /> မှတ်တမ်းကို ဖွင့်ပါ- [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> VM မရှိပါ}=1{<ph name="VM_TYPE" /> VM 1 ခု တွေ့သည်-<ph name="VM_NAME_LIST" />}other{<ph name="VM_TYPE" /> VM {NUM_VMS} ခု တွေ့သည်- <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">အင်တာနက် ချိတ်ဆက်မှု မရှိပါ။</translation>
 <translation id="4998430619171209993">ဖွင့်ထားသည်</translation>
@@ -4006,7 +4000,6 @@
 <translation id="5127620150973591153">လုံခြုံသော ချိတ်ဆက်မှု ID−<ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">စင့် ပိတ်ထား၏</translation>
 <translation id="5127881134400491887">ကွန်ရက် ချိတ်ဆက်မှုများကို စီမံကွပ်ကဲရန်</translation>
-<translation id="5128774403617662387">မစတင်မီ သင့်ဒေတာကို အရန်သိမ်းထားကြောင်း သေချာပါစေ။ <ph name="DEVICE_OS" /> ထည့်သွင်းခြင်းသည် သင့်ဟတ်ဒရိုက်ဗ်ကို အစားထိုးပါမည်။ g.co/TBD တွင် ပိုမိုလေ့လာပါ။</translation>
 <translation id="512903556749061217">တွဲဆက်ထားသော</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">ပရိုဖိုင်ကို ဒေါင်းလုဒ်လုပ်၍မရပါ။ နောက်မှ ထပ်စမ်းကြည့်ပါ (သို့) အကူအညီအတွက် ဝန်ဆောင်မှုပေးသူကို ဆက်သွယ်ပါ။</translation>
@@ -4523,7 +4516,6 @@
 <translation id="5659593005791499971">အီးမေးလ်</translation>
 <translation id="5659833766619490117">ဤစာမျက်နှာကို ဘာသာပြန်၍ မရပါ</translation>
 <translation id="5662513737565158057">Linux အက်ပ်များ အလုပ်လုပ်ပုံကို ပြောင်းရန်။</translation>
-<translation id="5667490069342183561">မည်သည့်ဒေတာဆုံးရှုံးမှုအတွက်မျှ Google တွင် တာဝန်မရှိပါ။ ထို့ပြင် အသိအမှတ်မပြုထားသော မော်ဒယ်များတွင် <ph name="DEVICE_OS" /> အလုပ် လုပ်နိုင်မည်မဟုတ်ပါ။ g.co/TBD တွင် ပိုမိုလေ့လာပါ။</translation>
 <translation id="5667546120811588575">Google Play ကို စနစ်ထည့်သွင်းနေသည်...</translation>
 <translation id="5668351004957198136">မအောင်မြင်ပါ</translation>
 <translation id="56702779821643359">သင့်အနီးရှိလူများအား ဖိုင်များကို မျှဝေပါ။ <ph name="LINK_BEGIN" />ပိုမိုလေ့လာရန်<ph name="LINK_END" /></translation>
@@ -5332,9 +5324,6 @@
 <translation id="6528179044667508675">မနှောင့်ယှက်ရ</translation>
 <translation id="652948702951888897">Chrome မှတ်တမ်း</translation>
 <translation id="6530186581263215931">ဤဆက်တင်များကို သင်၏စီမံခန့်ခွဲသူက ချမှတ်ထားခြင်းဖြစ်သည်</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />အကောင်းဆုံးအတွေ့အကြုံကို ပေးနိုင်ရန်အတွက် ပေးရမည့် အပ်ဒိတ်များကို ဆုံးဖြတ်နိုင်ရန် <ph name="DEVICE_OS" /> သည် စက်များအကြောင်း ကွန်ပျူတာဆိုင်ရာ စက်ပစ္စည်းဒေတာကို စုစည်းပြီး Google နှင့်မျှဝေသည်။ <ph name="DEVICE_OS" /> ၏အတွေ့အကြုံနှင့် ဝန်ဆောင်မှုကို ပံ့ပိုးခြင်းနှင့် တိုးတက်စေခြင်းကဲ့သို့ ထပ်ဆောင်း ရည်ရွယ်ချက်များအတွက် ဤဒေတာကို Google အားသုံးခွင့်ပြုနိုင်သည်။<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ဤစက်တွင် လက်မှတ်ထိုးဝင်ပြီး chrome://system ရှိ CLOUDREADY_HARDWARE_INFO ကဏ္ဍသို့ဝင်ကာ အပ်ဒိတ်စစ်ထုတ်ခြင်းအတွက် Google သို့ပို့ထားသော ဒေတာကို ကြည့်နိုင်သကဲ့သို့ သင် Google နှင့်မျှဝေရန် ရွေးချယ်သော ဒေတာများဆိုင်ရာ အခြားဖြစ်ရပ်များကိုလည်း ဝင်ကြည့်နိုင်သည်။<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> က Google နှင့်မျှဝေသော ဒေတာအသေးစိတ်နှင့် ၎င်းတို့အသုံးပြုပုံကို g.co/xxxxx တွင် ဝင်ကြည့်နိုင်သည်<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">အန္တရာယ်ရှိသည့်ဖိုင်ကို သိမ်းရန်</translation>
 <translation id="6532101170117367231">Google Drive သို့ သိမ်းရန်</translation>
 <translation id="6532106788206463496">ပြင်ဆင်မှုများကို သိမ်းရန်</translation>
@@ -6023,15 +6012,6 @@
 <translation id="7258192266780953209">ပြောင်းလဲမှုများ</translation>
 <translation id="7258225044283673131">ဤအပလီကေးရှင်းက တုံ့ပြန်မှုမရှိပါ။ အက်ပ်ကိုပိတ်ရန် "မဖြစ်မနေပိတ်ရန်" ကို ရွေးပါ။</translation>
 <translation id="7262004276116528033">ဤ လက်မှတ်ထိုး ဝင်ရေး ဝန်ဆောင်မှုကို <ph name="SAML_DOMAIN" />မှ စီမံပေးပါသည်</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />ဤပြဿနာရှာဖွေဖြေရှင်းခြင်း အဆင့်များကို စမ်းကြည့်ပါ-
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />HDD၊ SSD (သို့) eMMC ကဲ့သို့ ကောင်းမွန်သော စက်အတွင်းသိမ်းဆည်းရန်နေရာများရှိကြောင်း သေချာပါစေ
-    <ph name="LIST_ITEM" />သင့်စက်အတွင်းသိမ်းဆည်းရန်နေရာသည် 16GB ထက် ပို၊ မပိုစစ်ဆေးပါ
-    <ph name="LIST_ITEM" />ကိုင်တွယ်ကြည့်နိုင်ပါက စက်အတွင်းသိမ်းဆည်းရန်နေရာသို့ ချိတ်ဆက်မှုကို စစ်ဆေးပါ
-    <ph name="LIST_ITEM" />အသိအမှတ်ပြုထားသောမော်ဒယ်ကို အသုံးပြုနေကြောင်း သေချာစေပြီး ထည့်သွင်းပုံမှတ်စုများကို စစ်ဆေးပါ
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />နောက်ထပ်အကူအညီလိုလျှင် ဤသို့ဝင်ကြည့်ပါ- g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">ပကတိအသွင်စက်ကို ထည့်သွင်း၍မရပါ။ ထပ်စမ်းကြည့်ပါ သို့မဟုတ် သင့်စီမံခန့်ခွဲသူထံ ဆက်သွယ်ပါ။ အမှားကုဒ်- <ph name="ERROR_CODE" />။</translation>
 <translation id="7267875682732693301">လက်ဗွေ၏ အစိတ်အပိုင်းအမျိုးမျိုးကို ထည့်ရန်အတွက် သင့်လက်ချောင်းကို အကြိမ်ကြိမ်ပြန်ကြွပါ</translation>
 <translation id="7268127947535186412">ဤဆက်တင်ကို စက်ပစ္စည်း၏ပိုင်ရှင်က စီမံခန့်ခွဲသည်။</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index 2383c7d..253e23a 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -2310,7 +2310,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ले तपाईंसँग <ph name="ATTACHMENTS" /> सेयर गर्ने प्रयास गर्दै छ।}other{<ph name="DEVICE_NAME" /> ले तपाईंसँग <ph name="ATTACHMENTS" /> सेयर गर्ने प्रयास गर्दै छ।}}</translation>
 <translation id="3364986687961713424">तपाईंका प्रशासकको सन्देश: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl वा Alt मध्ये कुनै एक प्रयोग गर्नुहोस्</translation>
-<translation id="3367057768351048705">साइटहरूले तपाईंले ती साइटमा गर्नुभएका गतिविधिहरू हेर्ने प्रयोजनका लागि मात्र तपाईंका कुकीहरू प्रयोग गर्न सक्छन्</translation>
 <translation id="3368922792935385530">जडित</translation>
 <translation id="3369067987974711168">यो पोर्टका हकमा गर्न सकिने थप कारबाहीहरू देखाउनुहोस्</translation>
 <translation id="3369624026883419694">होस्ट समाधान गर्दै...</translation>
@@ -2950,8 +2949,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> लाई सक्षम बनाउनुहोस्</translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" /> सम्म नजिकैका यन्त्रहरूमा <ph name="DEVICE_NAME" /> का रूपमा देखिने...</translation>
 <translation id="3981760180856053153">अवैध बचत प्रकार प्रविष्ट भयो।</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />केही चिज गडबड भएका कारण <ph name="DEVICE_OS" /> इन्स्टल गर्न सकिएन।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />तपाईं यस सम्बन्धमा थप मद्दत प्राप्त गर्न चाहनुहुन्छ भने g.co/xxxxx मा जानुहोस्<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">केही सरल चरणमार्फत आफ्नो ब्राउजर सेटअप गर्नुहोस्</translation>
 <translation id="3983400541576569538">केही अनुप्रयोगहरूका डेटा हराउन सक्छन्</translation>
 <translation id="3983586614702900908">एक अज्ञात विक्रेता देखि उपकरणहरू</translation>
@@ -3870,9 +3867,6 @@
 <translation id="4992984395680162305">यी डिभाइसहरू QR कोड स्क्यान गरेर लिंक गरिएको हो।</translation>
 <translation id="4994474651455208930">साइटहरूलाई प्रोटोकलहरूका डिफल्ट ह्यान्डलरहरू बन्ने अनुरोध गर्ने अनुमति दिनुहोस्</translation>
 <translation id="4994754230098574403">सेटअप गरिँदैछ</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" /><ph name="DEVICE_OS" /> ले यो डिभाइसको स्वामित्व लिन सकोस् भन्नाका खातिर तपाईंले TPM मा भएको सबै डेटा मेटाएपछि मात्र तपाईं यो डिभाइस दर्ता गर्न सक्नुहुन्छ।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />तपाईं डिभाइसमा भएको TPM नै अफ गर्न पनि सक्नुहुन्छ। तपाईंले TPM अफ गरे पनि तपाईंको डेटा सफ्टवेयरमार्फत इन्क्रिप्सन गरी सुरक्षित रूपमा भण्डारण गरिने छ। तर हार्डवेयरमा आधारित प्रमाणपत्रलगायतका सुरक्षासम्बन्धी केही निश्चित सुविधाहरू भने अफ गरिने छन्।<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />तपाईं यो डिभाइस रिबुट गरी सिस्टमको BIOS/UEFI सेटिङमा गएर TPM सम्बन्धी सेटिङ परिवर्तन गर्न सक्नुहुन्छ। तपाईंले पूरा गर्नु पर्ने चरणहरू डिभाइसको मोडेलका आधारमा फरक हुन्छन्। तपाईं थप जानकारी प्राप्त गर्न चाहनुहुन्छ भने यो डिभाइस रिबुट गर्नुअघि कुनै अर्को डिभाइसमा <ph name="DEVICE_OS" /> सम्बन्धी निम्न डकुमेन्ट खोलेर पढ्नुहोस्: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> को कुनै पनि VM भेटिएन}=1{<ph name="VM_TYPE" /> को एउटा VM भेटियो: <ph name="VM_NAME_LIST" />}other{<ph name="VM_TYPE" /> का {NUM_VMS} वटा VM भेटिए: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">कुनै पनि इन्टरनेट जडान छैन।</translation>
 <translation id="4998430619171209993">सक्रिय छ</translation>
@@ -3990,7 +3984,6 @@
 <translation id="5127620150973591153">सुरक्षित कनेक्सन ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">सिंक अफ छ</translation>
 <translation id="5127881134400491887">नेटवर्क जडानहरू व्यवस्थित गर्नुहोस्</translation>
-<translation id="5128774403617662387">सुरु गर्नुअघि आफ्नो डेटा ब्याकअप गर्न नभुल्नुहोस्। तपाईंले <ph name="DEVICE_OS" /> इन्स्टल गर्नुभयो भने तपाईंको हार्ड ड्राइभमा भएका सबै डेटा ओभरराइट हुने छन्। तपाईं यस सम्बन्धमा थप जान्न चाहनुहुन्छ भने g.co/TBD मा जानुहोस्।</translation>
 <translation id="512903556749061217">संलग्न</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">प्रोफाइल डाउनलोड गर्न सकिएन। कृपया पछि फेरि प्रयास गर्नुहोस् वा मद्दत प्राप्त गर्न सेवा प्रदायकमा सम्पर्क गर्नुहोस्।</translation>
@@ -4506,7 +4499,6 @@
 <translation id="5659593005791499971">इमेल</translation>
 <translation id="5659833766619490117">यस पृष्ठलाई अनुवाद गर्न सकिएन</translation>
 <translation id="5662513737565158057">Linux एपहरूले काम गर्ने तरिका परिवर्तन गर्नुहोस्।</translation>
-<translation id="5667490069342183561">कुनै पनि डेटा गुमेका खण्डमा Google जिम्मेवार हुने छैन र <ph name="DEVICE_OS" /> ले प्रमाणित नगरिएका मोडेलहरूमा काम नगर्न सक्छ। तपाईं यस सम्बन्धमा थप जान्न चाहनुहुन्छ भने g.co/TBD मा जानुहोस्।</translation>
 <translation id="5667546120811588575">Google Play सेटअप गरिँदै छ…</translation>
 <translation id="5668351004957198136">सफ्टवेयर चलाउनका निम्ति आवश्यक पर्ने जाँच पूरा गर्न सकिएन</translation>
 <translation id="56702779821643359">आफू वरपरका मान्छेहरूसँग फाइल सेयर गर्नुहोस्। <ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation>
@@ -5317,9 +5309,6 @@
 <translation id="6528179044667508675">बाधा नगर्नुहोस्</translation>
 <translation id="652948702951888897">Chrome को इतिहास</translation>
 <translation id="6530186581263215931">यी सेटिङहरू तपाईंका प्रशासकले लागू गर्नुहुन्छ</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" /><ph name="DEVICE_OS" /> ले तपाईंलाई उत्कृष्ट सुविधाहरू प्रदान गर्न तपाईंका डिभाइसहरूमा भएको हार्डवेयरसम्बन्धी डेटा सङ्कलन गर्छ र तपाईंको डिभाइसमा कुन अपडेट पठाउने भन्ने कुरा निर्धारण गर्ने प्रयोजनका लागि सो डेटा Google मा पठाउँछ। साथै, तपाईं ग्राहक सेवा प्रदान गर्ने र <ph name="DEVICE_OS" /> को सेवा तथा सुविधाहरूमा सुधार गर्नेलगायतका अतिरिक्त प्रयोजनहरूका लागि Google लाई सो डेटा प्रयोग गर्ने अनुमति दिन सक्नुहुन्छ।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />तपाईं अपडेट फिल्टर गर्ने प्रयोजनका लागि Google मा पठाइएको डेटा हेर्न चाहनुहुन्छ भने तपाईं यो डिभाइसमा लग इन गरी chrome://system मा रहेको CLOUDREADY_HARDWARE_INFO खण्डमा जान सक्नुहुन्छ। साथै, तपाईं उक्त खण्डमा गएर आफूले Google मा स्वेच्छाले पठाएका डेटा पनि हेर्न सक्नुहुन्छ।<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />तपाईं <ph name="DEVICE_OS" /> ले Google मा पठाउन सक्ने डेटा र सो डेटा प्रयोग गरिने तरिकाका बारेमा थप जान्न चाहनुहुन्छ भने g.co/xxxxx मा जानुहोस्<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">खतरनाक फाइल राख्नुहोस्</translation>
 <translation id="6532101170117367231">Google ड्राइभमा सेभ गर्नुहोस्</translation>
 <translation id="6532106788206463496">परिवर्तनहरू सुरक्षित गर्ने</translation>
@@ -6008,15 +5997,6 @@
 <translation id="7258192266780953209">रूपान्तरणहरू</translation>
 <translation id="7258225044283673131">यो एपले प्रतिक्रिया जनाइरहेको छैन। एप बन्द गर्न "बलपूर्वक बन्द गर्नुहोस्" चयन गर्नुहोस्।</translation>
 <translation id="7262004276116528033">यो साइन इन सेवा <ph name="SAML_DOMAIN" /> द्वारा होस्ट गरिन्छ</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />समस्या निवारण गर्ने निम्न चरणहरू पूरा गरी हेर्नुहोस्:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />तपाईंको डिभाइसमा HDD, SSD वा eMMC जस्ता सक्रिय इन्टर्नल मेमोरी छ भन्ने कुरा सुनिश्चित गर्नुहोस्
-    <ph name="LIST_ITEM" />तपाईंको डिभाइसमा १६ जि.बि. भन्दा बढी इन्टर्नल मेमोरी छ भन्ने कुरा सुनिश्चित गर्नुहोस्
-    <ph name="LIST_ITEM" />इन्टर्नल मेमोरी हातले सजिलै चलाउन मिल्छ भने सो इन्टर्नल मेमोरी राम्रोसँग जोडिएको छ कि छैन भन्ने कुरा जाँच्नुहोस्
-    <ph name="LIST_ITEM" />प्रमाणित मोडेल प्रयोग गर्नुहोस् र इन्स्टल गर्ने तरिकासम्बन्धी निर्देशनहरू हेर्नुहोस्
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />तपाईंलाई थप मद्दत चाहिन्छ भने g.co/xxxxx मा जानुहोस्<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">भर्चुअल मेसिन इन्स्टल गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस् वा आफ्ना एड्मिनसँग सम्पर्क गर्नुहोस्। त्रुटिको कोड: <ph name="ERROR_CODE" />।</translation>
 <translation id="7267875682732693301">आफ्नो फिंगरप्रिन्टका विभिन्न भागहरू समावेश गर्न आफ्नो औँला उठाउँदै राख्दै गर्नुहोस्</translation>
 <translation id="7268127947535186412">डिभाइसका मालिक यो सेटिङको व्यवस्थापन गर्नुहुन्छ।</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 7421dce..3414436 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -2311,7 +2311,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> deelt <ph name="ATTACHMENTS" /> met jou.}other{<ph name="DEVICE_NAME" /> deelt <ph name="ATTACHMENTS" /> met jou.}}</translation>
 <translation id="3364986687961713424">Van je beheerder: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Gebruik Ctrl of Alt</translation>
-<translation id="3367057768351048705">Sites kunnen je cookies alleen gebruiken om je browse-activiteit op hun eigen site te bekijken</translation>
 <translation id="3368922792935385530">Verbonden</translation>
 <translation id="3369067987974711168">Meer acties voor deze poort bekijken</translation>
 <translation id="3369624026883419694">Host vaststellen</translation>
@@ -2952,8 +2951,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> aanzetten</translation>
 <translation id="3981058120448670012">Nog <ph name="REMAINING_TIME" /> zichtbaar als <ph name="DEVICE_NAME" /> voor apparaten in de buurt…</translation>
 <translation id="3981760180856053153">Ongeldig opslagtype opgegeven.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Er is iets misgegaan en <ph name="DEVICE_OS" /> kan niet worden geïnstalleerd.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ga naar g.co/xxxxx voor meer hulp<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Stel je browser in een paar eenvoudige stappen in</translation>
 <translation id="3983400541576569538">Gegevens van sommige apps kunnen verloren gaan</translation>
 <translation id="3983586614702900908">apparaten van een onbekende leverancier</translation>
@@ -3870,9 +3867,6 @@
 <translation id="4992984395680162305">Deze apparaten zijn gekoppeld door een QR-code te scannen.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Voordat je je inschrijft, moet je de TPM wissen, zodat <ph name="DEVICE_OS" /> eigenaar van het apparaat kan worden.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Je kunt de TPM op het apparaat ook helemaal uitzetten. Je gegevens worden nog steeds beveiligd opgeslagen met softwareversleuteling, maar bepaalde beveiligingsfuncties zoals certificaten met hardwareondersteuning worden uitgezet.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Je kunt je TPM-instellingen wijzigen door opnieuw op te starten en naar de systeem-BIOS/UEFI-instellingen te gaan. De stappen hiervoor variëren op basis van het apparaatmodel. Open voor meer informatie de <ph name="DEVICE_OS" />-documentatie op een afzonderlijk apparaat voordat je opnieuw opstart: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Geen <ph name="VM_TYPE" />-VM's gevonden}=1{1 <ph name="VM_TYPE" />-VM gevonden: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" />-VM's gevonden: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Geen internetverbinding.</translation>
 <translation id="4998430619171209993">Aan</translation>
@@ -3990,7 +3984,6 @@
 <translation id="5127620150973591153">Beveiligde verbindings-ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Synchronisatie staat uit</translation>
 <translation id="5127881134400491887">Netwerkverbindingen beheren</translation>
-<translation id="5128774403617662387">Check voordat je begint of je een back-up van je gegevens hebt. Als je <ph name="DEVICE_OS" /> installeert, wordt je harde schijf overschreven. Ga voor meer informatie naar g.co/TBD.</translation>
 <translation id="512903556749061217">aangesloten</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Het profiel kan niet worden gedownload. Probeer het later opnieuw of neem contact op met je provider voor hulp.</translation>
@@ -4506,7 +4499,6 @@
 <translation id="5659593005791499971">E-mail</translation>
 <translation id="5659833766619490117">Deze pagina kan niet worden vertaald</translation>
 <translation id="5662513737565158057">Wijzigen hoe Linux-apps werken.</translation>
-<translation id="5667490069342183561">Google is niet verantwoordelijk voor verlies van gegevens. <ph name="DEVICE_OS" /> werkt misschien niet op niet-gecertificeerde modellen. Ga voor meer informatie naar g.co/TBD.</translation>
 <translation id="5667546120811588575">Google Play instellen...</translation>
 <translation id="5668351004957198136">Mislukt</translation>
 <translation id="56702779821643359">Deel bestanden met mensen om je heen. <ph name="LINK_BEGIN" />Meer informatie<ph name="LINK_END" /></translation>
@@ -5318,9 +5310,6 @@
 <translation id="6528179044667508675">Niet storen</translation>
 <translation id="652948702951888897">Chrome-geschiedenis</translation>
 <translation id="6530186581263215931">Deze instellingen worden door je beheerder afgedwongen</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" /><ph name="DEVICE_OS" /> verzamelt hardwaregegevens over apparaten en deelt deze met Google om te bepalen welke updates moeten worden geleverd. Zo kan de best mogelijke functionaliteit worden geboden. Je kunt desgewenst ook toestaan dat Google deze gegevens gebruikt voor aanvullende doeleinden, zoals support en verbeteringen voor de functionaliteit en service van <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Je kunt inloggen bij dit apparaat en naar het gedeelte CLOUDREADY_HARDWARE_INFO in chrome://system gaan om te zien welke gegevens naar Google worden gestuurd om updates te filteren, evenals andere instanties waarin je ervoor kiest gegevens met Google te delen.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Ga naar g.co/xxxxx voor meer informatie over de gegevens die <ph name="DEVICE_OS" /> kan delen met Google en hoe deze worden gebruikt.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Gevaarlijk bestand behouden</translation>
 <translation id="6532101170117367231">Opslaan in Google Drive</translation>
 <translation id="6532106788206463496">Wijzigingen opslaan</translation>
@@ -6009,15 +5998,6 @@
 <translation id="7258192266780953209">Transformaties</translation>
 <translation id="7258225044283673131">De app reageert niet. Selecteer 'Nu sluiten' om de app te sluiten.</translation>
 <translation id="7262004276116528033">Deze inlogservice wordt gehost door <ph name="SAML_DOMAIN" />.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Probeer de volgende stappen om het probleem op te lossen:
-<ph name="BEGIN_LIST" />
-<ph name="LIST_ITEM" />Zorg dat je apparaat werkende interne opslag bevat, zoals een HDD, SSD of eMMC.
-<ph name="LIST_ITEM" />Check of je interne opslagapparaat groter is dan 16 GB.
-<ph name="LIST_ITEM" />Check de verbinding met de interne opslag als deze fysiek toegankelijk is.
-<ph name="LIST_ITEM" />Zorg dat je een gecertificeerd model gebruikt en check de installatieopmerkingen.
-<ph name="END_LIST" />
-<ph name="END_PARAGRAPH1" />
-<ph name="BEGIN_PARAGRAPH2" />Ga voor meer hulp naar: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Kan de virtuele machine niet installeren. Probeer het opnieuw of neem contact op met je beheerder. Foutcode: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Raak de sensor meerdere keren aan om de verschillende delen van je vingerafdruk toe te voegen.</translation>
 <translation id="7268127947535186412">Deze instelling wordt beheerd door de eigenaar van het apparaat.</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 9230740..6dc57cb 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -2321,7 +2321,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> deler <ph name="ATTACHMENTS" /> med deg.}other{<ph name="DEVICE_NAME" /> deler <ph name="ATTACHMENTS" /> med deg.}}</translation>
 <translation id="3364986687961713424">Fra administratoren din: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Bruk enten Ctrl eller Alt</translation>
-<translation id="3367057768351048705">Nettsteder kan bare bruke informasjonskapslene dine til å se surfeaktiviteten din på sitt eget nettsted</translation>
 <translation id="3368922792935385530">Tilkoblet</translation>
 <translation id="3369067987974711168">Vis flere handlinger for denne porten</translation>
 <translation id="3369624026883419694">Slår opp vertsnavn …</translation>
@@ -2960,8 +2959,6 @@
 <translation id="3979748722126423326">Aktivér <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Vises som <ph name="DEVICE_NAME" /> for enheter i nærheten i <ph name="REMAINING_TIME" /> …</translation>
 <translation id="3981760180856053153">Ugyldig lagringstype angitt.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Noe gikk galt, og <ph name="DEVICE_OS" /> kunne ikke installeres.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />For å få mer hjelp, gå til g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Konfigurer nettleseren din med noen få enkle trinn</translation>
 <translation id="3983400541576569538">Data fra noen apper kan gå tapt</translation>
 <translation id="3983586614702900908">enheter fra en ukjent leverandør</translation>
@@ -3880,9 +3877,6 @@
 <translation id="4992984395680162305">Disse enhetene er tilknyttet via skanning av QR-kode.</translation>
 <translation id="4994474651455208930">Tillat at nettsteder kan be om å bli standard behandlere for protokoller</translation>
 <translation id="4994754230098574403">Konfigurerer</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Før du registrerer deg, må du tømme TPM-enheten, slik at <ph name="DEVICE_OS" /> kan få eierskap over enheten.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Du kan også slå TPM-enheten helt av. Dataene dine blir fremdeles lagret trygt med programvarekryptering, men visse sikkerhetsfunksjoner, som maskinvarebaserte sertifikater, blir deaktivert.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Du kan endre TPM-innstillingene ved å starte systemet på nytt og gå inn i BIOS-/UEFI-innstillingene. Fremgangsmåten for dette varierer etter hvilken enhetsmodell du har. For å få mer informasjon, åpne <ph name="DEVICE_OS" />-dokumentasjonen på en annen enhet før du starter systemet på nytt: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Fant ingen <ph name="VM_TYPE" />-VM-er}=1{Fant 1 <ph name="VM_TYPE" />-VM: <ph name="VM_NAME_LIST" />}other{Fant {NUM_VMS} <ph name="VM_TYPE" />-VM-er: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Ingen internettilkobling.</translation>
 <translation id="4998430619171209993">På</translation>
@@ -4000,7 +3994,6 @@
 <translation id="5127620150973591153">ID for sikker tilkobling: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Synkronisering er slått av</translation>
 <translation id="5127881134400491887">administrere nettverkstilkoblinger</translation>
-<translation id="5128774403617662387">Før du begynner, må du forsikre deg om at du har en sikkerhetskopi av dataene dine. Når <ph name="DEVICE_OS" /> installeres, blir harddisken din overskrevet. Du kan finne ut mer på g.co/TBD.</translation>
 <translation id="512903556749061217">vedlagt</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profilen kunne ikke lastes ned. Prøv på nytt senere, eller kontakt operatøren for å få hjelp.</translation>
@@ -4515,7 +4508,6 @@
 <translation id="5659593005791499971">E-post</translation>
 <translation id="5659833766619490117">Siden kunne ikke oversettes</translation>
 <translation id="5662513737565158057">Endre måten Linux-apper fungerer på.</translation>
-<translation id="5667490069342183561">Google tar intet ansvar for tap av data, og det kan hende at <ph name="DEVICE_OS" /> ikke virker på usertifiserte modeller. Du kan finne ut mer på g.co/TBD.</translation>
 <translation id="5667546120811588575">Konfigurerer Google Play …</translation>
 <translation id="5668351004957198136">Ikke bestått</translation>
 <translation id="56702779821643359">Del filer med personer rundt deg. <ph name="LINK_BEGIN" />Finn ut mer<ph name="LINK_END" /></translation>
@@ -5327,9 +5319,6 @@
 <translation id="6528179044667508675">Ikke forstyrr</translation>
 <translation id="652948702951888897">Chrome-logg</translation>
 <translation id="6530186581263215931">Disse innstillingene håndheves av administratoren din</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />For å gi deg den beste opplevelsen samler <ph name="DEVICE_OS" /> inn maskinvaredata om enheter og deler dem med Google for å fastslå hvilke oppdateringer som skal leveres. Du kan velge å la Google bruke disse dataene for tilleggsformål, som støtte og forbedringer i <ph name="DEVICE_OS" />-opplevelsen og -tjenesten.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Du kan logge på denne enheten og gå til delen CLOUDREADY_HARDWARE_INFO i chrome://system for å se dataene som sendes til Google for filtrering av oppdateringer og i andre sammenhenger hvor du velger å dele data med Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />For å finne mer informasjon om hvilke data <ph name="DEVICE_OS" /> kan dele med Google, og hvordan de brukes, gå til g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Behold den farlige filen</translation>
 <translation id="6532101170117367231">Lagre i Google Disk</translation>
 <translation id="6532106788206463496">Lagre endringene</translation>
@@ -6018,15 +6007,6 @@
 <translation id="7258192266780953209">Transformasjoner</translation>
 <translation id="7258225044283673131">Appen svarer ikke. Velg «Tving avslutning» for å lukke appen.</translation>
 <translation id="7262004276116528033">Verten for denne påloggingstjenesten er <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Prøv denne fremgangsmåten for feilsøking:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Forsikre deg om at enheten har fungerende intern lagring, f.eks. HDD, SSD eller eMMC
-    <ph name="LIST_ITEM" />Sjekk at den interne lagringsenheten er større enn 16 GB
-    <ph name="LIST_ITEM" />Kontrollér tilkoblingen til den interne lagringsenheten, hvis denne er fysisk tilgjengelig
-    <ph name="LIST_ITEM" />Forsikre deg om at du bruker en sertifisert modell, og sjekk installasjonsmerknadene
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />For å få mer hjelp, gå til g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Kunne ikke installere den virtuelle maskinen. Prøv på nytt, eller kontakt administratoren din. Feilkode: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Løft fingeren gjentatte ganger for å legge til de forskjellige delene av fingeravtrykket ditt</translation>
 <translation id="7268127947535186412">Denne innstillingen administreres av enhetseieren.</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index b303064..dce03e4 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -2310,7 +2310,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ଆପଣଙ୍କ ସହ <ph name="ATTACHMENTS" /> ସେୟାର୍ କରୁଛି।}other{<ph name="DEVICE_NAME" /> ଆପଣଙ୍କ ସହ <ph name="ATTACHMENTS" /> ସେୟାର୍ କରୁଛି।}}</translation>
 <translation id="3364986687961713424">ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ଠାରୁ: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl କିମ୍ବା Alt ବ୍ୟବହାର କରନ୍ତୁ</translation>
-<translation id="3367057768351048705">କେବଳ ସେମାନଙ୍କ ନିଜ ସାଇଟରେ ଆପଣଙ୍କ ବ୍ରାଉଜିଂ କାର୍ଯ୍ୟକଳାପକୁ ଦେଖିବା ପାଇଁ, ସାଇଟଗୁଡ଼ିକ ଆପଣଙ୍କ କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ</translation>
 <translation id="3368922792935385530">ସଂଯୁକ୍ତ ହୋଇଛି</translation>
 <translation id="3369067987974711168">ଏହି ପୋର୍ଟ ପାଇଁ ଅଧିକ କାର୍ଯ୍ୟ ଦେଖାନ୍ତୁ</translation>
 <translation id="3369624026883419694">ପ୍ରାୟୋଜକ ସ୍ଥିର କରୁଛି...</translation>
@@ -2950,8 +2949,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" />କୁ ସକ୍ଷମ କରନ୍ତୁ</translation>
 <translation id="3981058120448670012">ନିକଟର ଡିଭାଇସଗୁଡ଼ିକୁ<ph name="REMAINING_TIME" /> ପାଇଁ <ph name="DEVICE_NAME" /> ଭାବରେ ଦୃଶ୍ୟମାନ ହୁଏ...</translation>
 <translation id="3981760180856053153">ସେଭ୍‍ କରିବାର ଅବୈଧ ପଦ୍ଧତି ଲେଖାଯାଇଛି।</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />କିଛି ତ୍ରୁଟି ହୋଇଛି ଏବଂ <ph name="DEVICE_OS" />କୁ ଇନଷ୍ଟଲ କରାଯାଇପାରିଲା ନାହିଁ।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ଅଧିକ ସାହାଯ୍ୟ ପାଇଁ, ଭିଜିଟ କରନ୍ତୁ: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">କିଛି ସହଜ ଷ୍ଟେପ୍‌ଗୁଡ଼ିକରେ ଆପଣଙ୍କର ବ୍ରାଉଜର୍‌ ସେଟ୍‌ ଅପ୍‌ କରନ୍ତୁ</translation>
 <translation id="3983400541576569538">କିଛି ଆପ୍ସର ଡାଟା ହଜିଯାଇପାରେ</translation>
 <translation id="3983586614702900908">କୌଣସି ଅଜଣା ବିକ୍ରେତାଙ୍କ ଠାରୁ ଡିଭାଇସ୍‌</translation>
@@ -3871,9 +3868,6 @@
 <translation id="4992984395680162305">ଏକ QR କୋଡ ସ୍କାନ କରି ଏହି ଡିଭାଇସଗୁଡ଼ିକୁ ଲିଙ୍କ କରାଯାଇଥିଲା।</translation>
 <translation id="4994474651455208930">ସାଇଟ୍‍ଗୁଡ଼ିକୁ ପ୍ରୋଟୋକଲ୍ ପାଇଁ ଡିଫଲ୍ଟ ହ୍ୟାଣ୍ଡଲର୍ ହେବା ପାଇଁ ପଚାରିବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ</translation>
 <translation id="4994754230098574403">ସେଟ‍ଅପ୍ ହେଉଛି</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />ପଞ୍ଜିକରଣ କରିବା ପୂର୍ବରୁ ଆପଣ TPMକୁ ଖାଲି କରିବା ଆବଶ୍ୟକ ଯାହା ଫଳରେ ଡିଭାଇସର ମାଲିକାନା <ph name="DEVICE_OS" /> ନେଇପାରିବ।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ଆପଣ TPM ଡିଭାଇସକୁ ସମ୍ପୂର୍ଣ୍ଣ ଭାବେ ମଧ୍ୟ ବନ୍ଦ କରିପାରିବେ। ସଫ୍ଟୱେର ଏନକ୍ରିପସନ ସହ ଆପଣଙ୍କ ଡାଟା ଏବେ ବି ସୁରକ୍ଷିତ ଭାବେ ଷ୍ଟୋର ହେବ, କିନ୍ତୁ ହାର୍ଡୱେର-ସମର୍ଥିତ ସାର୍ଟିଫିକେଟ ପରି ନିର୍ଦ୍ଦିଷ୍ଟ ସୁରକ୍ଷା ଫିଚରଗୁଡ଼ିକ ଅକ୍ଷମ ହୋଇଯିବ।<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />ରିବୁଟ କରି ଏବଂ ସିଷ୍ଟମ BIOS/UEFI ସେଟିଂସ ଲେଖି ଆପଣ ଆପଣଙ୍କ TPM ସେଟିଂସକୁ ପରିବର୍ତ୍ତନ କରିପାରିବେ। ଡିଭାଇସର ମଡେଲ ଆଧାରରେ ଷ୍ଟେପଗୁଡ଼ିକ ଭିନ୍ନ ହୋଇଥାଏ। ଅଧିକ ସୂଚନା ପାଇଁ, ଆପଣ ରିବୁଟ କରିବା ପୂର୍ବରୁ ଏକ ଅଲଗା ଡିଭାଇସରେ <ph name="DEVICE_OS" />ର ଡକ୍ୟୁମେଣ୍ଟେସନକୁ ଖୋଲନ୍ତୁ: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{କୌଣସି <ph name="VM_TYPE" /> VM ମିଳିଲା ନାହିଁ}=1{1ଟି <ph name="VM_TYPE" /> VM ମିଳିଲା: <ph name="VM_NAME_LIST" />}other{{NUM_VMS}ଟି <ph name="VM_TYPE" /> VM ମିଳିଲା: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">କୌଣସି ଇଣ୍ଟର୍ନେଟ୍ ସଂଯୋଗ ନାହିଁ</translation>
 <translation id="4998430619171209993">ଚାଲୁ ଅଛି</translation>
@@ -3991,7 +3985,6 @@
 <translation id="5127620150973591153">ସୁରକ୍ଷିତ ସଂଯୋଗ ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">ସିଙ୍କ୍‌ ବନ୍ଦ ଅଛି</translation>
 <translation id="5127881134400491887">ନେଟ୍‌ୱର୍କ ସଂଯୋଗଗୁଡ଼ିକ ପରିଚାଳିତ କରନ୍ତୁ</translation>
-<translation id="5128774403617662387">ଆରମ୍ଭ କରିବା ପୂର୍ବରୁ, ଆପଣଙ୍କ ପାଖରେ ଆପଣଙ୍କ ଡାଟାର ଏକ ବ୍ୟାକଅପ ଅଛି ବୋଲି ସୁନିଶ୍ଚିତ କରନ୍ତୁ। <ph name="DEVICE_OS" /> ଇନଷ୍ଟଲ କଲେ ଆପଣଙ୍କ ହାର୍ଡ ଡ୍ରାଇଭରେ ଥିବା ସମସ୍ତ ଡାଟା ଓଭରରାଇଟ ହୋଇଯିବ। g.co/TBDରେ ଅଧିକ ଜାଣନ୍ତୁ।</translation>
 <translation id="512903556749061217">ସଂଯୁକ୍ତ ହୋଇଛି</translation>
 <translation id="5130080518784460891">ଇଟେନ୍</translation>
 <translation id="5130675701626084557">ପ୍ରୋଫାଇଲକୁ ଡାଉନଲୋଡ୍ କରାଯାଇପାରିବ ନାହିଁ। ଦୟାକରି ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ କିମ୍ବା ସହାୟତା ପାଇଁ କ୍ୟାରିଅରଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation>
@@ -4507,7 +4500,6 @@
 <translation id="5659593005791499971">ଇମେଲ୍</translation>
 <translation id="5659833766619490117">ଏହି ପୃଷ୍ଠାଟିକୁ ଅନୁବାଦ କରାଯାଇପାରିବ ନାହିଁ</translation>
 <translation id="5662513737565158057">Linux ଆପ୍ସ କିପରି କାମ କରିବ ତାହା ବଦଳାନ୍ତୁ।</translation>
-<translation id="5667490069342183561">କୌଣସି ଡାଟା ନଷ୍ଟ ପାଇଁ Google ଦାୟୀ ନୁହେଁ ଏବଂ <ph name="DEVICE_OS" /> ସ୍ୱୀକୃତିପ୍ରାପ୍ତ ହୋଇନଥିବା ମଡେଲଗୁଡ଼ିକରେ କାମ କରିନପାରେ। g.co/TBDରେ ଅଧିକ ଜାଣନ୍ତୁ।</translation>
 <translation id="5667546120811588575">Google Play ସେଟ୍‍ଅପ୍ କରାଯାଉଛି...</translation>
 <translation id="5668351004957198136">ବିଫଳ</translation>
 <translation id="56702779821643359">ଆପଣଙ୍କ ଆଖପାଖରେ ଥିବା ଲୋକମାନଙ୍କ ସହ ଫାଇଲଗୁଡ଼ିକ ସେୟାର୍ କରନ୍ତୁ। <ph name="LINK_BEGIN" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="LINK_END" /></translation>
@@ -5320,9 +5312,6 @@
 <translation id="6528179044667508675">ବିରକ୍ତ କରନାହିଁ</translation>
 <translation id="652948702951888897">Chrome ଇତିବୃତ୍ତି</translation>
 <translation id="6530186581263215931">ଆପଣଙ୍କ ବ୍ୟବସ୍ଥାପକଙ୍କ ଦ୍ୱାରା ଏହି ସେଟିଂସ୍‌ ବାଧ୍ୟତାମୂଳକ ଭାବେ ଲାଗୁ କରାଯାଇଛି</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />ସର୍ବୋତ୍ତମ ଅନୁଭୂତି ପ୍ରଦାନ କରିବାକୁ, <ph name="DEVICE_OS" /> ଡିଭାଇସଗୁଡ଼ିକ ବିଷୟରେ ହାର୍ଡୱେର ଡାଟା ସଂଗ୍ରହ କରେ ଏବଂ କେଉଁ ଅପଡେଟଗୁଡ଼ିକୁ ଡେଲିଭର କରିବା ଉଚିତ ତାହା ସ୍ଥିର କରିବା ପାଇଁ ଏହାକୁ Google ସହ ସେୟାର କରେ। ବୈକଳ୍ପିକ ଭାବେ, <ph name="DEVICE_OS" />ର ଅନୁଭୂତି ଏବଂ ସେବାରେ ସହାୟତା ଓ ଉନ୍ନତି କରିବା ପରି ଅତିରିକ୍ତ ଉଦ୍ଦେଶ୍ୟରେ ଏହି ଡାଟାକୁ ବ୍ୟବହାର କରିବା ପାଇଁ ଆପଣ Googleକୁ ଅନୁମତି ଦେଇପାରିବେ।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ଫିଲ୍ଟର ଅପଡେଟ କରିବା ଏବଂ Google ସହ ଡାଟା ସେୟାର କରିବାକୁ ଆପଣ ବାଛିଥିବା ଅନ୍ୟ ଇନଷ୍ଟାନ୍ସଗୁଡ଼ିକ ପାଇଁ Googleକୁ ପଠାଯାଇଥିବା ଡାଟା ଦେଖିବାକୁ ଆପଣ ଏହି ଡିଭାଇସରେ ଲଗ ଇନ କରି chrome://systemରେ ଥିବା CLOUDREADY_HARDWARE_INFO ବିଭାଗକୁ ଭିଜିଟ କରିପାରିବେ।<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Google ସହ କେଉଁ ଡାଟାକୁ <ph name="DEVICE_OS" /> ସେୟାର କରିପାରେ ଏବଂ ଏହାକୁ କିପରି ବ୍ୟବହାର କରାଯାଏ ସେ ବିଷୟରେ ଅଧିକ ବିବରଣୀ ପାଇଁ g.co/xxxxxକୁ ଭିଜିଟ କରନ୍ତୁ<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">ବିପଜ୍ଜନକ ଫାଇଲ୍‌କୁ ରଖନ୍ତୁ</translation>
 <translation id="6532101170117367231">Google Driveରେ ସେଭ୍ କରନ୍ତୁ</translation>
 <translation id="6532106788206463496">ପରିବର୍ତ୍ତନଗୁଡିକୁ ସେଭ୍ କରନ୍ତୁ</translation>
@@ -6012,15 +6001,6 @@
 <translation id="7258192266780953209">ରୂପାନ୍ତରଣଗୁଡ଼ିକ</translation>
 <translation id="7258225044283673131">ଆପ୍ଲିକେସନ୍‍ଟି ପ୍ରତିକ୍ରିୟା କରୁନାହିଁ। ଆପ୍‍କୁ ବନ୍ଦ କରିବା ପାଇଁ "ବଳପୂର୍ବକ ବନ୍ଦ କରନ୍ତୁ"କୁ ଚୟନ କରନ୍ତୁ।</translation>
 <translation id="7262004276116528033">ଏହି ସାଇନ୍ ଇନ୍ ସର୍ଭର୍ <ph name="SAML_DOMAIN" /> ଦ୍ଵାରା ହୋଷ୍ଟ କରାଯାଇଛି</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />ଏହି ଟ୍ରବୁଲସୁଟିଂ ଷ୍ଟେପଗୁଡ଼ିକୁ ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ:
-<ph name="BEGIN_LIST" />
-<ph name="LIST_ITEM" />ଆପଣଙ୍କ ଡିଭାଇସରେ ଏକ HDD, SSD କିମ୍ବା eMMC ପରି ୱାର୍କିଂ ଇଣ୍ଟର୍ନଲ ଷ୍ଟୋରେଜ ଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ
-<ph name="LIST_ITEM" />ଆପଣଙ୍କ ଇଣ୍ଟର୍ନଲ ଷ୍ଟୋରେଜ ଡିଭାଇସରେ 16GBରୁ ଅଧିକ ସ୍ପେସ ଅଛି ବୋଲି ଯାଞ୍ଚ କରନ୍ତୁ
-<ph name="LIST_ITEM" />ଯଦି ଫିଜିକାଲୀ ଆକ୍ସେସ ଯୋଗ୍ୟ ହୋଇଥାଏ, ତେବେ ଇଣ୍ଟର୍ନଲ ଷ୍ଟୋରେଜ ସହ ସଂଯୋଗ ଯାଞ୍ଚ କରନ୍ତୁ
-<ph name="LIST_ITEM" />ଆପଣ ଏକ ସ୍ୱୀକୃତିପ୍ରାପ୍ତ ମଡେଲ ବ୍ୟବହାର କରୁଛନ୍ତି ବୋଲି ସୁନିଶ୍ଚିତ କରି ଇନଷ୍ଟଲ ନୋଟଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରନ୍ତୁ
-<ph name="END_LIST" />
-<ph name="END_PARAGRAPH1" />
-<ph name="BEGIN_PARAGRAPH2" />ଅଧିକ ସାହାଯ୍ୟ ପାଇଁ, ଭିଜିଟ କରନ୍ତୁ: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">ଭର୍ଚୁଆଲ୍ ମେସିନ୍ ଇନଷ୍ଟଲ୍ କରାଯାଇପାରିଲା ନାହିଁ। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ କିମ୍ବା ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ସହିତ ଯୋଗାଯୋଗ କରନ୍ତୁ। ତ୍ରୁଟି କୋଡ୍: <ph name="ERROR_CODE" />।</translation>
 <translation id="7267875682732693301">ଆପଣଙ୍କ ଟିପଚିହ୍ନର ବିଭିନ୍ନ ଅଂଶକୁ ଯୋଗ କରିବା ପାଇଁ ଆଙ୍ଗୁଠିକୁ ଉଠାଉଥାନ୍ତୁ</translation>
 <translation id="7268127947535186412">ଡିଭାଇସ୍ ମାଲିକଙ୍କ ଦ୍ୱାରା ଏହି ସେଟିଂ ପରିଚାଳନା କରାଯାଉଛି।</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index dd1b7726..e3bd7ff4 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ਵੱਲੋਂ ਤੁਹਾਡੇ ਨਾਲ <ph name="ATTACHMENTS" /> ਨੂੰ ਸਾਂਝਾ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।}one{<ph name="DEVICE_NAME" /> ਵੱਲੋਂ ਤੁਹਾਡੇ ਨਾਲ <ph name="ATTACHMENTS" /> ਨੂੰ ਸਾਂਝਾ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।}other{<ph name="DEVICE_NAME" /> ਵੱਲੋਂ ਤੁਹਾਡੇ ਨਾਲ <ph name="ATTACHMENTS" /> ਨੂੰ ਸਾਂਝਾ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।}}</translation>
 <translation id="3364986687961713424">ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">ਜਾਂ ਤਾਂ Ctrl ਜਾਂ Alt ਦੀ ਵਰਤੋਂ ਕਰੋ</translation>
-<translation id="3367057768351048705">ਸਾਈਟਾਂ ਆਪਣੀ ਸਾਈਟ 'ਤੇ ਤੁਹਾਡੀ ਬ੍ਰਾਊਜ਼ਿੰਗ ਸਰਗਰਮੀ ਦੇਖਣ ਲਈ ਸਿਰਫ਼ ਤੁਹਾਡੀਆਂ ਕੁਕੀਜ਼ ਵਰਤ ਸਕਦੀਆਂ ਹਨ</translation>
 <translation id="3368922792935385530">ਕਨੈਕਟ ਕੀਤਾ</translation>
 <translation id="3369067987974711168">ਇਸ ਪੋਰਟ ਲਈ ਹੋਰ ਕਾਰਵਾਈਆਂ ਦਿਖਾਓ</translation>
 <translation id="3369624026883419694">ਹੋਸਟ ਨੂੰ ਹੱਲ ਕਰ ਰਿਹਾ ਹੈ ...</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> ਨੂੰ ਚਾਲੂ ਕਰੋ</translation>
 <translation id="3981058120448670012">ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸਾਂ ਨੂੰ <ph name="REMAINING_TIME" /> ਲਈ <ph name="DEVICE_NAME" /> ਵਜੋਂ ਦਿਖਣਯੋਗ...</translation>
 <translation id="3981760180856053153">ਅਵੈਧ ਰੱਖਿਅਤ ਕਿਸਮ ਦਾਖਲ ਕੀਤੀ ਗਈ।</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />ਕੁਝ ਗਲਤ ਹੋ ਗਿਆ ਅਤੇ <ph name="DEVICE_OS" /> ਨੂੰ ਸਥਾਪਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।<ph name="END_PARAGRAPH1" />
-    ਹੋਰ ਮਦਦ ਲਈ, <ph name="BEGIN_PARAGRAPH2" />g.co/xxxxx<ph name="END_PARAGRAPH2" /> 'ਤੇ ਜਾਓ</translation>
 <translation id="3982375475032951137">ਕੁਝ ਸਧਾਰਨ ਪੜਾਵਾਂ ਨਾਲ ਆਪਣੇ ਬ੍ਰਾਊਜ਼ਰ ਦਾ ਸੈੱਟਅੱਪ ਕਰੋ</translation>
 <translation id="3983400541576569538">ਸ਼ਾਇਦ ਕੁਝ ਐਪਾਂ ਦਾ ਡਾਟਾ ਗੁਆਚ ਗਿਆ</translation>
 <translation id="3983586614702900908">ਇੱਕ ਅਗਿਆਤ ਵੈਂਡਰ ਦੀਆਂ ਡਿਵਾਈਸਾਂ</translation>
@@ -3889,9 +3886,6 @@
 <translation id="4992984395680162305">ਇਨ੍ਹਾਂ ਡੀਵਾਈਸਾਂ ਨੂੰ QR ਕੋਡ ਸਕੈਨ ਕਰ ਕੇ ਲਿੰਕ ਕੀਤਾ ਗਿਆ ਸੀ।</translation>
 <translation id="4994474651455208930">ਸਾਈਟਾਂ ਨੂੰ ਪ੍ਰੋਟੋਕੋਲਾਂ ਲਈ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਹੈਂਡਲਰ ਬਣਨ ਲਈ ਪੁੱਛਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ</translation>
 <translation id="4994754230098574403">ਸਥਾਪਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />ਦਰਜ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤੁਹਾਨੂੰ TPM ਨੂੰ ਕਲੀਅਰ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਜੋ <ph name="DEVICE_OS" /> ਡੀਵਾਈਸ ਦੀ ਮਲਕੀਅਤ ਲੈ ਸਕੇ।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ਤੁਸੀਂ TPM ਡੀਵਾਈਸ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬੰਦ ਵੀ ਕਰ ਸਕਦੇ ਹੋ। ਤੁਹਾਡਾ ਡਾਟਾ ਸਾਫ਼ਟਵੇਅਰ ਇਨਕ੍ਰਿਪਸ਼ਨ ਦੇ ਨਾਲ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਸਟੋਰ ਕੀਤਾ ਜਾਵੇਗਾ, ਪਰ ਕੁਝ ਸੁਰੱਖਿਆ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ, ਜਿਵੇਂ ਕਿ ਹਾਰਡਵੇਅਰ-ਸਮਰਥਿਤ ਪ੍ਰਮਾਣ-ਪੱਤਰਾਂ, ਨੂੰ ਬੰਦ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ।<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />ਤੁਸੀਂ ਰੀਬੂਟ ਕਰ ਕੇ ਅਤੇ ਸਿਸਟਮ BIOS/UEFI ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਦਾਖਲ ਹੋ ਕੇ ਆਪਣੀਆਂ TPM ਸੈਟਿੰਗਾਂ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹੋ। ਡੀਵਾਈਸ ਮਾਡਲ ਦੇ ਆਧਾਰ 'ਤੇ ਪੜਾਅ ਵੱਖੋ-ਵੱਖਰੇ ਹੋ ਸਕਦੇ ਹਨ। ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਰੀਬੂਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ <ph name="DEVICE_OS" /> ਸੰਬੰਧੀ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਕਿਸੇ ਵੱਖਰੇ ਡੀਵਾਈਸ 'ਤੇ ਖੋਲ੍ਹੋ: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{ਕੋਈ <ph name="VM_TYPE" /> VM ਨਹੀਂ ਮਿਲਿਆ}=1{1 <ph name="VM_TYPE" /> VM ਮਿਲਿਆ: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> VM ਮਿਲੇ: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">ਕੋਈ ਇੰਟਰਨੈੱਟ ਕਨੈਕਸ਼ਨ ਨਹੀਂ ਹੈ।</translation>
 <translation id="4998430619171209993">ਚਾਲੂ</translation>
@@ -4009,7 +4003,6 @@
 <translation id="5127620150973591153">ਸੁਰੱਖਿਅਤ ਕਨੈਕਸ਼ਨ ਆਈਡੀ: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">ਸਿੰਕ ਬੰਦ ਹੈ</translation>
 <translation id="5127881134400491887">ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation>
-<translation id="5128774403617662387">ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਆਪਣੇ ਡਾਟੇ ਦਾ ਬੈਕਅੱਪ ਹੈ। <ph name="DEVICE_OS" /> ਨੂੰ ਸਥਾਪਤ ਕਰਨ ਨਾਲ ਤੁਹਾਡੀ ਹਾਰਡ ਡਰਾਈਵ ਦਾ ਡਾਟਾ ਓਵਰਰਾਈਟ ਹੋ ਜਾਵੇਗਾ। g.co/TBD 'ਤੇ ਹੋਰ ਜਾਣੋ।</translation>
 <translation id="512903556749061217">ਅਟੈਚ ਕੀਤੀ</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">ਪ੍ਰੋਫਾਈਲ ਡਾਊਨਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜਾਂ ਮਦਦ ਲਈ ਕੈਰੀਅਰ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।</translation>
@@ -4525,7 +4518,6 @@
 <translation id="5659593005791499971">ਈਮੇਲ</translation>
 <translation id="5659833766619490117">ਇਸ ਪੰਨੇ ਦਾ ਅਨੁਵਾਦ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ</translation>
 <translation id="5662513737565158057">Linux ਐਪਾਂ ਦੇ ਕੰਮ ਕਰਨ ਦਾ ਤਰੀਕਾ ਬਦਲੋ।</translation>
-<translation id="5667490069342183561">Google ਕਿਸੇ ਵੀ ਤਰ੍ਹਾਂ ਦੇ ਡਾਟੇ ਦੇ ਨੁਕਸਾਨ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹੈ ਅਤੇ ਅਪ੍ਰਮਾਣਿਤ ਮਾਡਲਾਂ 'ਤੇ ਸ਼ਾਇਦ <ph name="DEVICE_OS" /> ਕੰਮ ਨਾ ਕਰੇ। g.co/TBD 'ਤੇ ਹੋਰ ਜਾਣੋ।</translation>
 <translation id="5667546120811588575">Google Play ਸੈੱਟਅੱਪ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...</translation>
 <translation id="5668351004957198136">ਅਸਫਲ</translation>
 <translation id="56702779821643359">ਆਪਣੇ ਆਲੇ-ਦੁਆਲੇ ਦੇ ਲੋਕਾਂ ਨਾਲ ਫ਼ਾਈਲਾਂ ਨੂੰ ਸਾਂਝਾ ਕਰੋ। <ph name="LINK_BEGIN" />ਹੋਰ ਜਾਣੋ<ph name="LINK_END" /></translation>
@@ -5337,9 +5329,6 @@
 <translation id="6528179044667508675">ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ</translation>
 <translation id="652948702951888897">Chrome ਇਤਿਹਾਸ</translation>
 <translation id="6530186581263215931">ਇਹ ਸੈਟਿੰਗਾਂ ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਲਾਗੂ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />ਬਿਹਤਰੀਨ ਅਨੁਭਵ ਮੁਹੱਈਆ ਕਰਵਾਉਣ ਲਈ, <ph name="DEVICE_OS" /> ਡੀਵਾਈਸਾਂ ਬਾਰੇ ਹਾਰਡਵੇਅਰ ਡਾਟਾ ਇਕੱਤਰ ਕਰਦਾ ਹੈ ਅਤੇ ਇਹ ਨਿਰਧਾਰਿਤ ਕਰਨ ਲਈ Google ਨਾਲ ਸਾਂਝਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਕਿ ਕਿਹੜੇ ਅੱਪਡੇਟ ਡਿਲੀਵਰ ਕੀਤੇ ਜਾਣੇ ਚਾਹੀਦੇ ਹਨ। ਵਿਕਲਪਿਕ ਤੌਰ 'ਤੇ, ਤੁਸੀਂ Google ਨੂੰ <ph name="DEVICE_OS" /> ਅਨੁਭਵ ਅਤੇ ਸੇਵਾ ਵਿੱਚ ਸਹਾਇਤਾ ਅਤੇ ਸੁਧਾਰਾਂ ਵਰਗੇ ਵਧੀਕ ਉਦੇਸ਼ਾਂ ਲਈ ਇਸ ਡਾਟੇ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇ ਸਕਦੇ ਹੋ।<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਤੁਸੀਂ ਲੌਗ-ਇਨ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ Google ਨੂੰ ਅੱਪਡੇਟ ਫਿਲਟਰਿੰਗ ਲਈ ਭੇਜੇ ਗਏ ਡਾਟੇ ਅਤੇ ਇਸਦੇ ਨਾਲ ਹੀ ਕੋਈ ਹੋਰ ਕਿਰਿਆ ਜਿੱਥੇ ਤੁਸੀਂ Google ਨਾਲ ਡਾਟੇ ਨੂੰ ਸਾਂਝਾ ਕਰਨ ਦੀ ਚੋਣ ਕਰਦੇ ਹੋ, ਨੂੰ ਦੇਖਣ ਲਈ chrome://system ਵਿੱਚ CLOUDREADY_HARDWARE_INFO ਸੈਕਸ਼ਨ 'ਤੇ ਜਾਓ।<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> ਵੱਲੋਂ Google ਨਾਲ ਡਾਟਾ ਸਾਂਝਾ ਕੀਤੇ ਜਾਣ ਬਾਰੇ ਅਤੇ ਇਸਦੀ ਵਰਤੋਂ ਦੇ ਤਰੀਕਿਆਂ ਬਾਰੇ ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ g.co/xxxxx 'ਤੇ ਜਾਓ<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">ਖਤਰਨਾਕ ਫ਼ਾਈਲ ਨੂੰ ਰੱਖੋ</translation>
 <translation id="6532101170117367231">'Google ਡਰਾਈਵ' ਵਿੱਚ ਰੱਖਿਅਤ ਕਰੋ</translation>
 <translation id="6532106788206463496">ਬਦਲਾਅ ਰੱਖਿਅਤ ਕਰੋ</translation>
@@ -6029,15 +6018,6 @@
 <translation id="7258192266780953209">ਰੁਪਾਂਤਰਣ</translation>
 <translation id="7258225044283673131">ਇਹ ਐਪਲੀਕੇਸ਼ਨ ਪ੍ਰਤੀਕਿਰਿਆ ਨਹੀਂ ਦੇ ਰਹੀ ਹੈ। ਐਪ ਬੰਦ ਕਰਨ ਲਈ "ਜ਼ਬਰਦਸਤੀ ਬੰਦ ਕਰੋ" ਨੂੰ ਚੁਣੋ।</translation>
 <translation id="7262004276116528033">ਇਹ ਸਾਈਨ-ਇਨ ਸੇਵਾ <ph name="SAML_DOMAIN" /> ਵੱਲੋਂ ਹੋਸਟ ਕੀਤੀ ਜਾਂਦੀ ਹੈ</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />ਸਮੱਸਿਆ-ਨਿਪਟਾਰਾ ਸੰਬੰਧੀ ਇਨ੍ਹਾਂ ਪੜਾਵਾਂ ਨੂੰ ਅਜ਼ਮਾਓ:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਵਿੱਚ ਕੰਮ ਕਰਦੀ ਅੰਦਰੂਨੀ ਸਟੋਰੇਜ ਹੈ, ਜਿਵੇਂ ਕਿ HDD, SSD ਅਤੇ eMMC
-    <ph name="LIST_ITEM" />ਜਾਂਚ ਕਰੋ ਕਿ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀ ਅੰਦਰੂਨੀ ਸਟੋਰੇਜ 16GB ਤੋਂ ਵੱਧ ਹੈ
-    <ph name="LIST_ITEM" />ਜੇ ਭੌਤਿਕ ਤੌਰ 'ਤੇ ਪਹੁੰਚਯੋਗ ਹੋਵੇ, ਤਾਂ ਅੰਦਰੂਨੀ ਸਟੋਰੇਜ ਨਾਲ ਕਨੈਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰੋ
-    <ph name="LIST_ITEM" />ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਇੱਕ ਪ੍ਰਮਾਣਿਤ ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ ਅਤੇ ਇਸਦੇ ਸਥਾਪਨਾ ਨੋਟਾਂ ਦੀ ਜਾਂਚ ਕਰੋ
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ਹੋਰ ਮਦਦ ਲਈ: g.co/xxxxx 'ਤੇ ਜਾਓ<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">ਆਭਾਸੀ ਮਸ਼ੀਨ ਨੂੰ ਸਥਾਪਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜਾਂ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ। ਗੜਬੜ ਕੋਡ: <ph name="ERROR_CODE" />।</translation>
 <translation id="7267875682732693301">ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੇ ਵੱਖ-ਵੱਖ ਭਾਗਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਆਪਣੀ ਉਂਗਲ ਨੂੰ ਰੱਖਣਾ-ਚੁੱਕਣਾ ਜਾਰੀ ਰੱਖੋ</translation>
 <translation id="7268127947535186412">ਇਸ ਸੈਟਿੰਗ ਦਾ ਪ੍ਰਬੰਧਨ ਡੀਵਾਈਸ ਦਾ ਮਾਲਕ ਕਰਦਾ ਹੈ।</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 01920c9..de759af 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -2309,7 +2309,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> udostępnia Ci <ph name="ATTACHMENTS" />.}few{<ph name="DEVICE_NAME" /> udostępnia Ci <ph name="ATTACHMENTS" />.}many{<ph name="DEVICE_NAME" /> udostępnia Ci <ph name="ATTACHMENTS" />.}other{<ph name="DEVICE_NAME" /> udostępnia Ci <ph name="ATTACHMENTS" />.}}</translation>
 <translation id="3364986687961713424">Od administratora: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Użyj klawisza Ctrl lub Alt</translation>
-<translation id="3367057768351048705">Witryny mogą używać plików cookie tylko do śledzenia Twojej aktywności związanej z przeglądaniem tych witryn</translation>
 <translation id="3368922792935385530">Połączone</translation>
 <translation id="3369067987974711168">Pokaż więcej działań dla tego portu</translation>
 <translation id="3369624026883419694">Łączę z hostem...</translation>
@@ -2950,8 +2949,6 @@
 <translation id="3979748722126423326">Włącz: <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Urządzenie będzie widoczne dla urządzeń w pobliżu pod nazwą <ph name="DEVICE_NAME" /> przez <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Wprowadzono nieprawidłowy typ zapisu.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Wystąpił problem i nie udało się zainstalować systemu operacyjnego <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Aby dowiedzieć się więcej, wejdź na: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Skonfiguruj przeglądarkę w kilku prostych krokach</translation>
 <translation id="3983400541576569538">Dane z niektórych aplikacji mogą zostać utracone</translation>
 <translation id="3983586614702900908">urządzenia od nieznanego dostawcy</translation>
@@ -3870,9 +3867,6 @@
 <translation id="4992984395680162305">Te urządzenia zostały połączone przez zeskanowanie kodu QR.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Przed rejestracją musisz wyczyścić TPM, aby system operacyjny <ph name="DEVICE_OS" /> mógł uzyskać prawo własności do tego urządzenia.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Możesz też całkowicie wyłączyć urządzenie TPM. Twoje dane będą przechowywane bezpiecznie (zaszyfrowane programowo), ale niektóre funkcje, np. certyfikaty obsługiwane sprzętowo, będą wyłączone.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Możesz zmienić ustawienia TPM. Aby to zrobić, uruchom urządzenie ponownie i otwórz ustawienia BIOS/UEFI. Czynności, które trzeba wykonać, mogą się różnić w zależności od urządzenia. Aby dowiedzieć się więcej, przed ponownym uruchomieniem otwórz dokumentację systemu operacyjnego <ph name="DEVICE_OS" /> na innym urządzeniu: [link URL]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nie znaleziono maszyn wirtualnych typu <ph name="VM_TYPE" />}=1{Znaleziono 1 maszynę wirtualną typu <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}few{Znaleziono {NUM_VMS} maszyny wirtualne typu <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}many{Znaleziono {NUM_VMS} maszyn wirtualnych typu <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Znaleziono {NUM_VMS} maszyny wirtualnej typu <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Brak połączenia z internetem.</translation>
 <translation id="4998430619171209993">Włączono</translation>
@@ -3990,7 +3984,6 @@
 <translation id="5127620150973591153">Identyfikator bezpiecznego połączenia: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Synchronizacja jest wyłączona</translation>
 <translation id="5127881134400491887">Zarządzanie połączeniami sieciowymi</translation>
-<translation id="5128774403617662387">Przed rozpoczęciem instalacji sprawdź, czy masz kopię zapasową danych. Instalacja systemu operacyjnego <ph name="DEVICE_OS" /> spowoduje zastąpienie danych na dysku twardym. Więcej informacji znajdziesz na g.co/TBD.</translation>
 <translation id="512903556749061217">podłączone</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Nie udało się pobrać profilu. Spróbuj ponownie później lub skontaktuj się z operatorem, aby uzyskać pomoc.</translation>
@@ -4505,7 +4498,6 @@
 <translation id="5659593005791499971">E-mail</translation>
 <translation id="5659833766619490117">Nie udało się przetłumaczyć tej strony</translation>
 <translation id="5662513737565158057">Możesz zmienić sposób działania aplikacji na Linuksa.</translation>
-<translation id="5667490069342183561">Google nie ponosi odpowiedzialności za utratę danych. System operacyjny <ph name="DEVICE_OS" /> może nie działać na urządzeniach bez certyfikatu. Więcej informacji znajdziesz na g.co/TBD.</translation>
 <translation id="5667546120811588575">Konfiguruję Google Play…</translation>
 <translation id="5668351004957198136">Niepowodzenie</translation>
 <translation id="56702779821643359">Udostępniaj pliki osobom w pobliżu. <ph name="LINK_BEGIN" />Więcej informacji<ph name="LINK_END" /></translation>
@@ -5317,9 +5309,6 @@
 <translation id="6528179044667508675">Nie przeszkadzać</translation>
 <translation id="652948702951888897">Historia Chrome</translation>
 <translation id="6530186581263215931">Te ustawienia są wymuszone przez administratora</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Aby zapewnić jak najlepsze działanie systemu, <ph name="DEVICE_OS" /> zbiera dane sprzętowe urządzeń i nam je udostępnia, a my na tej podstawie określamy, które aktualizacje należy dostarczyć. Opcjonalnie możesz pozwolić Google na szersze wykorzystanie tych danych, np. w celu ulepszania systemu <ph name="DEVICE_OS" /> i udostępniania dotyczącej go pomocy.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Aby zobaczyć dane wysyłane do Google i używane do filtrowania aktualizacji, a także wszelkie inne przypadki wyrażenia przez Ciebie zgody na udostępnianie danych firmie Google, możesz zalogować się na tym urządzeniu i otworzyć sekcję CLOUDREADY_HARDWARE_INFO na stronie chrome://system<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Aby dowiedzieć się więcej o tym, jakie dane system <ph name="DEVICE_OS" /> może udostępniać Google i jak są one wykorzystywane, wejdź na g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Zachowaj niebezpieczny plik</translation>
 <translation id="6532101170117367231">Zapisz na Dysku Google</translation>
 <translation id="6532106788206463496">Zapisz zmiany</translation>
@@ -6008,15 +5997,6 @@
 <translation id="7258192266780953209">Transformacje</translation>
 <translation id="7258225044283673131">Aplikacja nie odpowiada. Aby ją zamknąć, wybierz „Wymuś zamknięcie”.</translation>
 <translation id="7262004276116528033">Ta usługa logowania pochodzi z domeny <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Spróbuj rozwiązać problem w ten sposób:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Sprawdź, czy Twoje urządzenie ma działającą pamięć wewnętrzną, np. HDD, SSD lub eMMC.
-    <ph name="LIST_ITEM" />Upewnij się, że pojemność pamięci wewnętrznej przekracza 16 GB.
-    <ph name="LIST_ITEM" />Jeśli to możliwe, sprawdź połączenie z urządzeniem pamięci wewnętrznej.
-    <ph name="LIST_ITEM" />Upewnij się, że używasz urządzenia certyfikowanego i zapoznaj się z informacjami dotyczącymi instalacji.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Aby uzyskać dalszą pomoc, wejdź na stronę: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Nie udało się zainstalować maszyny wirtualnej. Spróbuj jeszcze raz lub skontaktuj się z administratorem. Kod błędu: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Unoś palec, by odcisk był dokładniejszy</translation>
 <translation id="7268127947535186412">Tym ustawieniem zarządza właściciel urządzenia.</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index b8f82f1..45efea1 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -2329,7 +2329,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> está compartilhando <ph name="ATTACHMENTS" /> com você.}one{<ph name="DEVICE_NAME" /> está compartilhando <ph name="ATTACHMENTS" /> com você.}other{<ph name="DEVICE_NAME" /> está compartilhando <ph name="ATTACHMENTS" /> com você.}}</translation>
 <translation id="3364986687961713424">Do seu administrador: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Use Ctrl ou Alt</translation>
-<translation id="3367057768351048705">Os sites só podem usar os cookies para ver sua atividade de navegação na própria página</translation>
 <translation id="3368922792935385530">Conectado</translation>
 <translation id="3369067987974711168">Exibir mais ações para esta porta</translation>
 <translation id="3369624026883419694">Resolvendo host...</translation>
@@ -2970,8 +2969,6 @@
 <translation id="3979748722126423326">Ativar <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Visível para dispositivos próximos como <ph name="DEVICE_NAME" /> por <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Tipo de salvamento inválido digitado.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Ocorreu um erro na instalação do <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Para receber mais ajuda, acesse: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Configure seu navegador com algumas etapas simples</translation>
 <translation id="3983400541576569538">Os dados de alguns apps podem ter sido perdidos</translation>
 <translation id="3983586614702900908">dispositivos de um fornecedor desconhecido</translation>
@@ -3891,9 +3888,6 @@
 <translation id="4992984395680162305">Estes dispositivos foram vinculados após a leitura de um código QR.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Antes de fazer o registro, limpe o TPM para que o <ph name="DEVICE_OS" /> possa assumir a propriedade do dispositivo.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Você também pode desligar o TPM totalmente no dispositivo. Seus dados ainda serão armazenados com segurança e criptografia de software, mas alguns recursos de proteção, como certificados de hardware, serão desativados.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Para mudar as configurações do TPM, reinicie o sistema e acesse as configurações de BIOS/UEFI. As etapas variam de acordo com o modelo do dispositivo. Para ver mais informações, abra a documentação do <ph name="DEVICE_OS" /> em um dispositivo diferente antes de reiniciar: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nenhuma VM <ph name="VM_TYPE" /> encontrada}=1{1 VM <ph name="VM_TYPE" /> encontrada: <ph name="VM_NAME_LIST" />}one{{NUM_VMS} VM <ph name="VM_TYPE" /> encontrada: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} VMs <ph name="VM_TYPE" /> encontradas: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Sem conexão com a Internet.</translation>
 <translation id="4998430619171209993">Ativado</translation>
@@ -4011,7 +4005,6 @@
 <translation id="5127620150973591153">Código da conexão segura: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sincronização desativada</translation>
 <translation id="5127881134400491887">Gerenciar conexões de rede</translation>
-<translation id="5128774403617662387">Antes de começar, confira se você fez o backup dos dados. A instalação do <ph name="DEVICE_OS" /> limpará todo o disco rígido. Saiba mais em g.co/TBD.</translation>
 <translation id="512903556749061217">conectado</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Não foi possível fazer o download do perfil. Tente novamente mais tarde ou entre em contato com a operadora para conseguir ajuda.</translation>
@@ -4528,7 +4521,6 @@
 <translation id="5659593005791499971">E-mail</translation>
 <translation id="5659833766619490117">Não foi possível traduzir esta página</translation>
 <translation id="5662513737565158057">Mude o funcionamento dos apps Linux.</translation>
-<translation id="5667490069342183561">O Google não se responsabiliza pela perda de dados e o <ph name="DEVICE_OS" /> pode não funcionar em modelos não certificados. Saiba mais em g.co/TBD.</translation>
 <translation id="5667546120811588575">Configurando o Google Play…</translation>
 <translation id="5668351004957198136">Reprovado</translation>
 <translation id="56702779821643359">Compartilhe arquivos com pessoas perto de você. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
@@ -5340,9 +5332,6 @@
 <translation id="6528179044667508675">Não perturbe</translation>
 <translation id="652948702951888897">Histórico do Chrome</translation>
 <translation id="6530186581263215931">Estas configurações são aplicadas pelo administrador</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Para oferecer a melhor experiência possível, o <ph name="DEVICE_OS" /> coleta dados de hardware sobre dispositivos e os compartilha com o Google para determinar o que será atualizado. Você pode permitir que o Google use esses dados para outros fins, como suporte e melhorias da experiência e do serviço do <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Faça login neste dispositivo e acesse CLOUDREADY_HARDWARE_INFO em chrome://system para ver os dados enviados ao Google para filtragem de atualizações, assim como qualquer outra instância em que você escolheu compartilhar dados com o Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Para ver mais detalhes sobre dados que o <ph name="DEVICE_OS" /> pode compartilhar com o Google e como eles são usados, acesse g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Manter arquivo perigoso</translation>
 <translation id="6532101170117367231">Salvar no Google Drive</translation>
 <translation id="6532106788206463496">Salvar alterações</translation>
@@ -6031,15 +6020,6 @@
 <translation id="7258192266780953209">Transformações</translation>
 <translation id="7258225044283673131">O aplicativo não está respondendo. Selecione "Forçar fechamento" para fechar o app.</translation>
 <translation id="7262004276116528033">Este serviço de login é hospedado por <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Siga estas etapas de solução de problemas:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Confira se o dispositivo possui armazenamento interno funcional, como HDD, SSD ou eMMC.
-    <ph name="LIST_ITEM" />Confira se o armazenamento interno do dispositivo é de pelo menos 16 GB.
-    <ph name="LIST_ITEM" />Confira a conexão ao armazenamento interno se for possível a acessar fisicamente.
-    <ph name="LIST_ITEM" />Confira se você está usando um modelo certificado e verifique as notas de instalação.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Para receber mais ajuda, acesse: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Não foi possível instalar a máquina virtual. Tente novamente ou entre em contato com o administrador. Código do erro: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Repita o processo de tocar e levantar o dedo para registrar todas as partes da sua impressão digital</translation>
 <translation id="7268127947535186412">Esta configuração é gerenciada pelo proprietário do dispositivo.</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index f2321566..6afe1a1 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -2314,7 +2314,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> está a partilhar <ph name="ATTACHMENTS" /> consigo.}one{<ph name="DEVICE_NAME" /> is sharing <ph name="ATTACHMENTS" /> with you.}other{<ph name="DEVICE_NAME" /> está a partilhar <ph name="ATTACHMENTS" /> consigo.}}</translation>
 <translation id="3364986687961713424">Do seu administrador: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Utilize Ctrl ou Alt.</translation>
-<translation id="3367057768351048705">Os sites apenas podem utilizar os seus cookies para ver a sua atividade de navegação no respetivo site</translation>
 <translation id="3368922792935385530">Ligado</translation>
 <translation id="3369067987974711168">Mostrar mais ações para esta porta</translation>
 <translation id="3369624026883419694">A resolver anfitrião...</translation>
@@ -2955,8 +2954,6 @@
 <translation id="3979748722126423326">Ativar <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Visível para dispositivos próximos como <ph name="DEVICE_NAME" /> durante <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Introduzido tipo de gravação inválido.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Algo correu mal e não foi possível instalar o <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Para obter mais ajuda, visite: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Configure o navegador em alguns passos simples.</translation>
 <translation id="3983400541576569538">Os dados de algumas aplicações podem ser perdidos.</translation>
 <translation id="3983586614702900908">dispositivos de um fornecedor desconhecido</translation>
@@ -3875,9 +3872,6 @@
 <translation id="4992984395680162305">Estes dispositivos foram associados através da leitura de um código QR.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Antes de se inscrever, tem de limpar o TPM para que o <ph name="DEVICE_OS" /> possa assumir a propriedade do dispositivo.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Também pode desativar completamente o dispositivo TPM. Os seus dados continuarão a ser armazenados em segurança com encriptação de software, mas determinadas funcionalidades de segurança, como certificados suportados por hardware, serão desativadas.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Pode alterar as definições do TPM ao reiniciar e introduzir as definições do sistema BIOS/UEFI. Os passos variam consoante o modelo do dispositivo. Para mais informações, abra a documentação do <ph name="DEVICE_OS" /> num dispositivo separado antes de reiniciar: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nenhuma VM <ph name="VM_TYPE" /> encontrada}=1{1 VM <ph name="VM_TYPE" /> encontrada: <ph name="VM_NAME_LIST" />}one{{NUM_VMS} VM(s) <ph name="VM_TYPE" /> encontrada(s): <ph name="VM_NAME_LIST" />}other{{NUM_VMS} VMs <ph name="VM_TYPE" /> encontradas: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Sem ligação à Internet.</translation>
 <translation id="4998430619171209993">Ativado</translation>
@@ -3995,7 +3989,6 @@
 <translation id="5127620150973591153">ID de ligação segura: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">A sincronização está desativada</translation>
 <translation id="5127881134400491887">Gerir ligações de rede</translation>
-<translation id="5128774403617662387">Antes de iniciar, certifique-se de que tem uma cópia de segurança dos dados. A instalação do <ph name="DEVICE_OS" /> substitui o seu disco rígido. Saiba mais em g.co/TBD.</translation>
 <translation id="512903556749061217">ligação estabelecida</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Não foi possível transferir o perfil. Tente novamente mais tarde ou contacte o operador para obter ajuda.</translation>
@@ -4512,7 +4505,6 @@
 <translation id="5659593005791499971">Email</translation>
 <translation id="5659833766619490117">Não foi possível traduzir esta página</translation>
 <translation id="5662513737565158057">Altere a forma como as apps para Linux irão funcionar.</translation>
-<translation id="5667490069342183561">A Google não é responsável por qualquer perda de dados e o <ph name="DEVICE_OS" /> pode não funcionar em modelos não certificados. Saiba mais em g.co/TBD.</translation>
 <translation id="5667546120811588575">A configurar o Google Play...</translation>
 <translation id="5668351004957198136">Reprovado</translation>
 <translation id="56702779821643359">Partilhe ficheiros com pessoas perto de si. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
@@ -5324,9 +5316,6 @@
 <translation id="6528179044667508675">Não incomodar</translation>
 <translation id="652948702951888897">Histórico do Chrome</translation>
 <translation id="6530186581263215931">Estas definições são aplicadas pelo seu administrador</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Para proporcionar a melhor experiência, o dispositivo <ph name="DEVICE_OS" /> recolhe dados de hardware acerca dos dispositivos e partilha-os com a Google para determinar que atualizações devem ser fornecidas. Opcionalmente, pode permitir que a Google utilize estes dados para fins adicionais, como o apoio técnico e melhorias ao serviço e experiência do dispositivo <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Pode iniciar sessão neste dispositivo e visitar a secção CLOUDREADY_HARDWARE_INFO em chrome://system para ver os dados enviados para a Google para atualizar a filtragem, bem como outras instâncias onde opta por partilhar dados com a Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Para obter mais detalhes sobre os dados que o dispositivo <ph name="DEVICE_OS" /> pode partilhar com a Google e como são utilizados, visite g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Manter ficheiro perigoso</translation>
 <translation id="6532101170117367231">Guardar no Google Drive</translation>
 <translation id="6532106788206463496">Guardar alterações</translation>
@@ -6015,15 +6004,6 @@
 <translation id="7258192266780953209">Transformações</translation>
 <translation id="7258225044283673131">A aplicação não está a responder. Selecione "Forçar fecho" para fechar a aplicação.</translation>
 <translation id="7262004276116528033">Este serviço de início de sessão é alojado por <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Experimente estes passos de resolução de problemas:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Certifique-se de que o dispositivo contém uma memória de armazenamento interno funcional como HDD, SSD ou eMMC
-    <ph name="LIST_ITEM" />Verifique se a memória de armazenamento interno no dispositivo é superior a 16 GB
-    <ph name="LIST_ITEM" />Verifique a ligação à memória de armazenamento interno, se estiver fisicamente acessível
-    <ph name="LIST_ITEM" />Certifique-se de que está a utilizar um modelo certificado e verifique as notas de instalação
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Para obter mais ajuda, visite: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Não foi possível instalar a máquina virtual. Tente novamente ou contacte o administrador. Código de erro: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Vá levantando o dedo para adicionar as diferentes partes da sua impressão digital.</translation>
 <translation id="7268127947535186412">Esta definição é gerida pelo proprietário do dispositivo.</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index b9933bd..6d7552b 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -2313,7 +2313,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> îți distribuie <ph name="ATTACHMENTS" />.}few{<ph name="DEVICE_NAME" /> îți distribuie <ph name="ATTACHMENTS" />.}other{<ph name="DEVICE_NAME" /> îți distribuie <ph name="ATTACHMENTS" />.}}</translation>
 <translation id="3364986687961713424">De la administrator: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Folosește Ctrl sau Alt</translation>
-<translation id="3367057768351048705">Site-urile pot folosi cookie-uri numai pentru a-ți vedea activitatea de navigare pe site-ul respectiv</translation>
 <translation id="3368922792935385530">Conectat</translation>
 <translation id="3369067987974711168">Afișează mai multe acțiuni pentru port</translation>
 <translation id="3369624026883419694">Se rezolvă gazda...</translation>
@@ -2954,8 +2953,6 @@
 <translation id="3979748722126423326">Activează <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Vizibil pentru dispozitivele din apropiere ca <ph name="DEVICE_NAME" /> timp de <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">A fost introdus un tip de salvare nevalid.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />A apărut o problemă și <ph name="DEVICE_OS" /> nu s-a putut instala.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Pentru ajutor suplimentar, accesează g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Configurează browserul în câțiva pași simpli</translation>
 <translation id="3983400541576569538">Datele de la unele aplicații se pot pierde</translation>
 <translation id="3983586614702900908">dispozitive de la producător necunoscut</translation>
@@ -3874,9 +3871,6 @@
 <translation id="4992984395680162305">Aceste dispozitive au fost asociate prin scanarea unui cod QR.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Înainte să te înregistrezi, trebuie să ștergi TPM pentru ca <ph name="DEVICE_OS" /> să preia controlul asupra dispozitivului.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Poți și să dezactivezi complet dispozitivul TPM. Datele tale vor fi stocate în siguranță prin criptarea software-ului, dar anumite funcții de securitate, cum ar fi certificatele stocate pe hardware, vor fi dezactivate.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Poți modifica setările TPM prin repornirea sistemului și accesarea setărilor BIOS / UEFI. Pașii variază în funcție de modelul dispozitivului. Pentru mai multe informații, deschide documentația <ph name="DEVICE_OS" /> pe alt dispozitiv înainte de repornire: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nu s-a găsit nicio mașină virtuală <ph name="VM_TYPE" />}=1{S-a găsit o mașină virtuală <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}few{S-au găsit {NUM_VMS} mașini virtuale <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{S-au găsit {NUM_VMS} de mașini virtuale <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Nu există conexiune la internet.</translation>
 <translation id="4998430619171209993">Activat</translation>
@@ -3994,7 +3988,6 @@
 <translation id="5127620150973591153">ID-ul conexiunii securizate: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sincronizarea este dezactivată</translation>
 <translation id="5127881134400491887">Gestionează conexiunile de rețea</translation>
-<translation id="5128774403617662387">Înainte de a începe, asigură-te că ai făcut backup pentru date. Instalarea <ph name="DEVICE_OS" /> va înlocui datele de pe hard disk. Află mai multe la g.co/TBD.</translation>
 <translation id="512903556749061217">conectat</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profilul nu a putut fi descărcat. Încearcă din nou mai târziu sau contactează operatorul pentru ajutor.</translation>
@@ -4510,7 +4503,6 @@
 <translation id="5659593005791499971">Adresă de e-mail</translation>
 <translation id="5659833766619490117">Pagina nu a putut fi tradusă</translation>
 <translation id="5662513737565158057">Schimbă modul în care vor funcționa aplicațiile din Linux.</translation>
-<translation id="5667490069342183561">Google nu răspunde pentru pierderea datelor și <ph name="DEVICE_OS" /> poate să nu funcționeze cu modele care nu sunt certificate. Află mai multe la g.co/TBD.</translation>
 <translation id="5667546120811588575">Se configurează Google Play...</translation>
 <translation id="5668351004957198136">Nu a reușit</translation>
 <translation id="56702779821643359">Trimite fișiere persoanelor din jur. <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation>
@@ -5322,9 +5314,6 @@
 <translation id="6528179044667508675">Nu deranja</translation>
 <translation id="652948702951888897">Istoricul Chrome</translation>
 <translation id="6530186581263215931">Aceste setări sunt impuse de administrator</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Pentru a asigura o experiență optimă, <ph name="DEVICE_OS" /> colectează date despre hardware de la dispozitive și le trimite la Google pentru a stabili ce actualizări vor fi livrate. Opțional, poți permite ca Google să folosească aceste date și în alte scopuri, cum ar fi asistență și îmbunătățiri ale experienței și serviciului <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Conectează-te pe acest dispozitiv și accesează secțiunea CLOUDREADY_HARDWARE_INFO de pe chrome://system pentru a vedea datele trimise la Google pentru filtrarea actualizărilor, precum și alte situații în care poți alege să trimiți date la Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Pentru detalii suplimentare despre datele pe care <ph name="DEVICE_OS" /> le poate trimite la Google și cum sunt folosite acestea, accesează g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Păstrează fișierul periculos</translation>
 <translation id="6532101170117367231">Salvați în Google Drive</translation>
 <translation id="6532106788206463496">Salvează modificările</translation>
@@ -6013,15 +6002,6 @@
 <translation id="7258192266780953209">Transformări</translation>
 <translation id="7258225044283673131">Aplicația nu răspunde. Selectează „Închide forțat” pentru a închide aplicația.</translation>
 <translation id="7262004276116528033">Acest serviciu de conectare este găzduit de <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Încearcă următorii pași pentru remedierea problemelor:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />asigură-te că dispozitivul conține o unitate de memorie internă funcțională, de exemplu, HDD, SSD sau eMMC;
-    <ph name="LIST_ITEM" />asigură-te că dispozitivul de memorie internă are un spațiu liber de cel puțin 16 GB;
-    <ph name="LIST_ITEM" />verifică starea conexiunii la dispozitivul de memorie internă, dacă este accesibil fizic;
-    <ph name="LIST_ITEM" />asigură-te că folosești un model certificat și consultă notele de instalare.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Pentru ajutor suplimentar, accesează g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Nu s-a putut instala mașina virtuală. Încearcă din nou sau contactează administratorul. Cod de eroare: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Ridică degetul și atinge din nou pentru a adăuga toate părțile amprentei</translation>
 <translation id="7268127947535186412">Setarea este gestionată de proprietarul dispozitivului.</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 8c18b19..40d690e 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -2313,7 +2313,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{Устройство "<ph name="DEVICE_NAME" />" отправляет вам <ph name="ATTACHMENTS" />.}one{Устройство "<ph name="DEVICE_NAME" />" отправляет вам <ph name="ATTACHMENTS" />.}few{Устройство "<ph name="DEVICE_NAME" />" отправляет вам <ph name="ATTACHMENTS" />.}many{Устройство "<ph name="DEVICE_NAME" />" отправляет вам <ph name="ATTACHMENTS" />.}other{Устройство "<ph name="DEVICE_NAME" />" отправляет вам <ph name="ATTACHMENTS" />.}}</translation>
 <translation id="3364986687961713424">Сообщение от администратора: "<ph name="ADMIN_MESSAGE" />"</translation>
 <translation id="3365598184818502391">Необходимо использовать Ctrl или Alt</translation>
-<translation id="3367057768351048705">С помощью файлов cookie сайт может только определять, какие действия вы совершали на нем.</translation>
 <translation id="3368922792935385530">Подключено</translation>
 <translation id="3369067987974711168">Показать ещё действия для этого порта</translation>
 <translation id="3369624026883419694">Определение хоста...</translation>
@@ -2954,8 +2953,6 @@
 <translation id="3979748722126423326">Включить <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Отображается под названием "<ph name="DEVICE_NAME" />" для других устройств поблизости в течение <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Введен недействительный тип сохранения.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Произошла ошибка. Не удалось установить <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Узнайте больше на странице g.co/xxxxx.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Настройте браузер за несколько простых шагов.</translation>
 <translation id="3983400541576569538">Возможно, данные некоторых приложений были потеряны.</translation>
 <translation id="3983586614702900908">устройства от неизвестного поставщика</translation>
@@ -3874,9 +3871,6 @@
 <translation id="4992984395680162305">Эти устройства связаны с помощью QR-кода.</translation>
 <translation id="4994474651455208930">Разрешить запрашивать установку обработчиков протоколов для сайтов по умолчанию</translation>
 <translation id="4994754230098574403">Настройка</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Перед регистрацией нужно очистить TPM, чтобы операционная система <ph name="DEVICE_OS" /> могла управлять устройством.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Вы также можете полностью отключить TPM на устройстве. В этом случае данные по-прежнему будут программно шифроваться во время хранения, но некоторые функции безопасности, например аппаратные сертификаты, станут недоступны.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Параметры TPM можно изменить в настройках BIOS/UEFI во время перезагрузки системы. Конкретные действия зависят от модели. Чтобы узнать больше, изучите документацию <ph name="DEVICE_OS" />: [URL link].<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Виртуальные машины "<ph name="VM_TYPE" />" не найдены}=1{Найдена 1 ВМ "<ph name="VM_TYPE" />": <ph name="VM_NAME_LIST" />}one{Найдена {NUM_VMS} ВМ "<ph name="VM_TYPE" />": <ph name="VM_NAME_LIST" />}few{Найдены {NUM_VMS} ВМ "<ph name="VM_TYPE" />": <ph name="VM_NAME_LIST" />}many{Найдено {NUM_VMS} ВМ "<ph name="VM_TYPE" />": <ph name="VM_NAME_LIST" />}other{Найдено {NUM_VMS} ВМ "<ph name="VM_TYPE" />": <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Нет подключения к Интернету.</translation>
 <translation id="4998430619171209993">Включено</translation>
@@ -3994,7 +3988,6 @@
 <translation id="5127620150973591153">Код безопасного подключения: <ph name="TOKEN" />.</translation>
 <translation id="5127805178023152808">Синхронизация выключена</translation>
 <translation id="5127881134400491887">Управление сетевыми подключениями</translation>
-<translation id="5128774403617662387">Прежде всего обязательно создайте резервную копию данных. При установке <ph name="DEVICE_OS" /> вся информация на жестком диске будет перезаписана. Подробные сведения доступны на странице g.co/TBD.</translation>
 <translation id="512903556749061217">подключено</translation>
 <translation id="5130080518784460891">Этен</translation>
 <translation id="5130675701626084557">Не удалось скачать профиль. Повторите попытку позже или обратитесь к оператору связи.</translation>
@@ -4510,7 +4503,6 @@
 <translation id="5659593005791499971">Эл. почта</translation>
 <translation id="5659833766619490117">Не удалось перевести страницу</translation>
 <translation id="5662513737565158057">Измените параметры работы приложений для Linux.</translation>
-<translation id="5667490069342183561">Google не несет ответственности за потерю данных. Операционная система <ph name="DEVICE_OS" /> может не работать на несертифицированных моделях устройств. Подробная информация доступна на странице g.co/TBD.</translation>
 <translation id="5667546120811588575">Настройка Google Play…</translation>
 <translation id="5668351004957198136">Сбой</translation>
 <translation id="56702779821643359">Делитесь файлами с пользователями поблизости. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation>
@@ -5322,9 +5314,6 @@
 <translation id="6528179044667508675">Не беспокоить</translation>
 <translation id="652948702951888897">История Chrome</translation>
 <translation id="6530186581263215931">Эти настройки определяются администратором</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Для удобства пользователей <ph name="DEVICE_OS" /> собирает данные об аппаратном обеспечении устройств и передает эту информацию компании Google, чтобы определять подходящие обновления. Вы также можете разрешить Google использовать эти данные в других целях, например для улучшения <ph name="DEVICE_OS" /> и предоставления поддержки.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Чтобы посмотреть, какие сведения отправляются в Google для фильтрации обновлений и для каких ещё целей можно передавать нам данные, войдите в аккаунт на этом устройстве и изучите раздел CLOUDREADY_HARDWARE_INFO на странице chrome://system.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Чтобы узнать больше о том, какую информацию <ph name="DEVICE_OS" /> может отправлять в Google и как она будет использоваться, перейдите на страницу g.co/xxxxx.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Сохранить</translation>
 <translation id="6532101170117367231">Сохранить на Google Диске</translation>
 <translation id="6532106788206463496">Сохранить</translation>
@@ -6013,15 +6002,6 @@
 <translation id="7258192266780953209">Преобразование</translation>
 <translation id="7258225044283673131">Приложение не отвечает. Чтобы выйти из него, нажмите "Закрыть принудительно".</translation>
 <translation id="7262004276116528033">Сервис входа размещен в домене <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Следуйте приведенным ниже инструкциям.
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Убедитесь, что устройство имеет исправное внутреннее хранилище, например HDD, SSD или eMMC.
-    <ph name="LIST_ITEM" />Убедитесь, что емкость этого хранилища превышает 16 ГБ.
-    <ph name="LIST_ITEM" />Проверьте подключение к нему, если это физически возможно.
-    <ph name="LIST_ITEM" />Убедитесь, что вы используете сертифицированную модель, и прочитайте примечания к установке.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Более подробная информация доступна на странице g.co/xxxxx.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Не удалось установить виртуальную машину. Повторите попытку или обратитесь к администратору. Код ошибки: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Немного перемещайте палец, чтобы отсканировать его полностью.</translation>
 <translation id="7268127947535186412">Этим параметром управляет владелец устройства.</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index 3656b2d02..81a3282 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -2315,7 +2315,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ඔබ සමඟ <ph name="ATTACHMENTS" /> බෙදා ගනියි.}one{<ph name="DEVICE_NAME" /> ඔබ සමඟ <ph name="ATTACHMENTS" /> බෙදා ගනියි.}other{<ph name="DEVICE_NAME" /> ඔබ සමඟ <ph name="ATTACHMENTS" /> බෙදා ගනියි.}}</translation>
 <translation id="3364986687961713424">ඔබේ පරිපාලක වෙතින්: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl හෝ Alt භාවිතා කරන්න</translation>
-<translation id="3367057768351048705">ඔවුන්ගේම අඩවියේ ඔබගේ බ්‍රවුස් කිරීමේ ක්‍රියාකාරකම බැලීමට අඩවිවලට ඔබගේ කුකි භාවිත කිරීමට පමණක් හැකිය.</translation>
 <translation id="3368922792935385530">සම්බන්ධ කළ</translation>
 <translation id="3369067987974711168">මෙම තොට සඳහා තවත් ක්‍රියා පෙන්වන්න</translation>
 <translation id="3369624026883419694">සත්කාරක විසඳමින්...</translation>
@@ -2957,8 +2956,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> සක්‍රීය කරන්න</translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" /> සඳහා අවට උපාංගවලට <ph name="DEVICE_NAME" /> ලෙස දෘශ්‍යමාන වන්න...</translation>
 <translation id="3981760180856053153">වැරදි සුරැකුම් වර්ගයක් ඇතුළත් කර ඇත.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />යම් දෙයක් වැරදුණ අතර <ph name="DEVICE_OS" /> ස්ථාපනය කළ නොහැකි විය.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />වැඩිදුර උදව් සඳහා, මෙතැනට පිවිසෙන්න: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">සරල පියවර කිහිපයකින් ඔබේ බ්‍රවුසරය සකසන්න</translation>
 <translation id="3983400541576569538">සමහර යෙදුම්වලින් ලැබෙන දත්ත අහිමි විය හැක</translation>
 <translation id="3983586614702900908">නොදන්නා නිශ්පාදකයකුගේ උපාංග</translation>
@@ -3877,9 +3874,6 @@
 <translation id="4992984395680162305">QR කේතයක් ස්කෑන් කිරීම මගින් මෙම උපාංග සම්බන්ධ කර ඇත.</translation>
 <translation id="4994474651455208930">නාමාවලි සඳහා වන පෙරනිමි හසුරු බවට පත් වීමට විමසීම සඳහා අඩවිවලට ඉඩ දෙන්න</translation>
 <translation id="4994754230098574403">පිහිටුවමින්...</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />ලියාපදිංචි කිරීමට පෙර ඔබ TPM හිස් කිරීම අවශ්‍යයි, එවිට <ph name="DEVICE_OS" /> හට ඔබගේ උපාංගයෙහි හිමිකාරත්වය ලබා ගත හැකිය.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ඔබට TPM උපාංගය මුළුමනින්ම ක්‍රියාවිරහිත කිරීමටද හැකිය. මෘදුකාංග සංකේතනය සමඟ ඔබගේ දත්ත තවම සුරක්ෂිතව ගබඩා කරනු ඇති නමුත් දෘඪාංග බලගැන්වීම සහිත සහතික වැනි නිශ්චිත ආරක්ෂක විශේෂාංග අබල කරනු ඇත.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />ඔබට ඔබගේ TPM සැකසීම් පද්ධති BIOS/UEFI සැකසීම් නැවත පණ ගැන්වීමෙන් සහ ඇතුළු කිරීමෙන් වෙනස් කළ හැකිය. උපාංග මාදිලිය මත පදනම්ව පියවර වෙනස් වේ. වැඩිදුර තතු සඳහා, <ph name="DEVICE_OS" /> ලේඛනය ඔබ නැවත පණ ගැන්වීමට පෙර වෙනම උපාංගයක විවෘත කරන්න: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> VM හමු නොවීය}=1{<ph name="VM_TYPE" /> VM 1ක් හමු විය: <ph name="VM_NAME_LIST" />}one{<ph name="VM_TYPE" /> VM {NUM_VMS}ක් හමු විය: <ph name="VM_NAME_LIST" />}other{<ph name="VM_TYPE" /> VM {NUM_VMS}ක් හමු විය: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">අන්තර්ජාල සබැඳුමක් නැත.</translation>
 <translation id="4998430619171209993">ක්‍රියාත්මකයි</translation>
@@ -3997,7 +3991,6 @@
 <translation id="5127620150973591153">ආරක්ෂිත සම්බන්ධතා ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">සමමුහුර්තකරණය අක්‍රියයි</translation>
 <translation id="5127881134400491887">ජාල සබඳතා පාලනය</translation>
-<translation id="5128774403617662387">ආරම්භ කිරීමට පෙර, ඔබට ඔබගේ දත්තවල උපස්ථයක් ඇති බව සහතික කර ගන්න. <ph name="DEVICE_OS" /> ස්ථාපනය කිරීම ඔබගේ දෘඪ තැටිය උඩින් ලියනු ඇත. g.co/TBD හිදී තව දැන ගන්න.</translation>
 <translation id="512903556749061217">ඈඳී ඇත</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">පැතිකඩ බාගැනීමට නොහැකි විය. කරුණාකර පසුව නැවත උත්සාහ කරන්න හෝ උදව් සඳහා වාහක අමතන්න.</translation>
@@ -4514,7 +4507,6 @@
 <translation id="5659593005791499971">ඊතැපෑල</translation>
 <translation id="5659833766619490117">මෙම පිටුව පරිවර්තනය කළ නොහැකි විය</translation>
 <translation id="5662513737565158057">ලිනක්ස් යෙදුම් ක්‍රියා කරන ආකාරය වෙනස් කරන්න.</translation>
-<translation id="5667490069342183561">Google කිනම් හෝ දත්ත අහිමි වීමකට වග නොකියන අතර, <ph name="DEVICE_OS" /> සහතික නොකළ මාදිලිවල ක්‍රියා නොකළ හැකිය. g.co/TBD හිදී තව දැන ගන්න.</translation>
 <translation id="5667546120811588575">Google Play පිහිටුවමින්...</translation>
 <translation id="5668351004957198136">අසාර්ථකයි</translation>
 <translation id="56702779821643359">ඔබ අවට සිටින පුද්ගලයින් සමඟ ගොනු බෙදා ගන්න. <ph name="LINK_BEGIN" />තව දැන ගන්න<ph name="LINK_END" /></translation>
@@ -5324,9 +5316,6 @@
 <translation id="6528179044667508675">බාධා නොකරන්න</translation>
 <translation id="652948702951888897">Chrome ඉතිහාසය</translation>
 <translation id="6530186581263215931">මෙම සැකසුම් ඔබේ පරිපාලක විසින් බලාත්මක කොට ඇත.</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />හොඳම අත්දැකීම ලබා දීමට, <ph name="DEVICE_OS" /> උපාංග පිළිබඳ දෘඪාංග දත්ත රැස් කර, කුමන යාවත්කාලීන ලබා දිය යුතුද යන්න නිර්ණය කිරීමට Google සමඟ බෙදා ගනී. විකල්ප වශයෙන්, ඔබට සහාය සහ <ph name="DEVICE_OS" /> අත්දැකීම සහ සේවාව වැඩිදියුණු කිරීම් වැනි අමතර අරමුණු සඳහා මෙම දත්ත භාවිත කිරීමට Google හට ඉඩ දිය හැකිය.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />යාවත්කාලීන පෙරහන සඳහා Google වෙත යවන ලද දත්ත මෙන්ම, ඔබ Google සමඟ දත්ත බෙදා ගැනීමට තෝරා ගන්නා වෙනත් ඕනෑම නිදර්ශන බැලීමට ඔබට මෙම උපාංගයට පුරා chrome://system හි CLOUDREADY_HARDWARE_INFO කොටස වෙත පිවිසිය හැකිය.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> Google සමග බෙදා ගත හැකි දත්ත, සහ එය භාවිත කරන ආකාරය පිළිබඳ වැඩි විස්තර සඳහා, g.co/xxxxx වෙත යන්න<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">අනතුරුදායක ගොනුව තබා ගන්න</translation>
 <translation id="6532101170117367231">Google Drive වෙත සුරකින්න</translation>
 <translation id="6532106788206463496">වෙනස්කම් සුරකින්න</translation>
@@ -6015,15 +6004,6 @@
 <translation id="7258192266780953209">පරිණාමන</translation>
 <translation id="7258225044283673131">යෙදුම ප්‍රතිචාර නොදක්වයි. යෙදුම වැසීමට "බලෙන් වසන්න" තෝරන්න.</translation>
 <translation id="7262004276116528033">පුරනය වීමේ සේවාව <ph name="SAML_DOMAIN" /> වෙතින් සත්කාර කරනු ලැබේ</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />මෙම දෝෂාවේක්ෂණ පියවර උත්සාහ කරන්න:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />ඔබගේ උපාංගයෙහි HDD, SSD හෝ eMMC යනාදි ක්‍රියාකාරි අභ්‍යන්තර ගබඩාවක් අඩංගු බව සහතික කරන්න
-    <ph name="LIST_ITEM" />ඔබගේ අභ්‍යන්තර ගබඩාව 16GBට වඩා වැඩිදැයි පරීක්ෂා කරන්න
-    <ph name="LIST_ITEM" />භෞතිකව ප්‍රවේශ විය හැකි නම්, අභ්‍යන්තර ගබඩාවට සම්බන්ධතාව පරීක්ෂා කරන්න
-    <ph name="LIST_ITEM" />ඔබ සහතික ලත් මාදිලියක් භාවිත කරන බව සහතික කර ගන්න සහ ස්ථාපන සටහන් පරීක්ෂා කරන්න
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />වැඩිදුර උදව් සඳහා, මෙතැනට පිවිසෙන්න: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">අතත්‍ය යන්ත්‍රය ස්ථාපන කළ නොහැකි විය. නැවත උත්සාහ කරන්න, නැති නම් ඔබේ පරිපාලකයා සම්බන්ධ කර ගන්න. දෝෂ කේතය: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">ඔබගේ ඇඟිලි සලකුණෙහි විවිධ කොටස් එක් කිරීමට ඔබගේ ඇඟිල්ල ඔසවා තබා ගන්න</translation>
 <translation id="7268127947535186412">මෙම සැකසීම උපාංග හිමිකරු විසින් කළමනා කෙරේ.</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index bdc0a33..8035678 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -2314,7 +2314,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> s vami zdieľa <ph name="ATTACHMENTS" />.}few{<ph name="DEVICE_NAME" /> s vami zdieľa <ph name="ATTACHMENTS" />.}many{<ph name="DEVICE_NAME" /> s vami zdieľa <ph name="ATTACHMENTS" />.}other{<ph name="DEVICE_NAME" /> s vami zdieľa <ph name="ATTACHMENTS" />.}}</translation>
 <translation id="3364986687961713424">Od správcu: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Použite Ctrl alebo Alt</translation>
-<translation id="3367057768351048705">Weby môžu pomocou vašich súborov cookie zobrazovať iba vašu aktivitu prehliadania na nich</translation>
 <translation id="3368922792935385530">Pripojené</translation>
 <translation id="3369067987974711168">Zobraziť ďalšie akcie pre tento port</translation>
 <translation id="3369624026883419694">Rozpoznávanie hostiteľa...</translation>
@@ -2955,8 +2954,6 @@
 <translation id="3979748722126423326">Povoliť <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Zariadeniam v okolí sa na <ph name="REMAINING_TIME" /> zobrazuje ako <ph name="DEVICE_NAME" />...</translation>
 <translation id="3981760180856053153">Zadali ste neplatný typ uloženia.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Vyskytol sa problém a <ph name="DEVICE_OS" /> sa nepodarilo nainštalovať.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ďalšiu pomoc získate na g.co/xxxxx<ph name="END_PARAGRAPH2" />.</translation>
 <translation id="3982375475032951137">Nastavte si prehliadač niekoľkými jednoduchými krokmi</translation>
 <translation id="3983400541576569538">Údaje z určitých aplikácií sa môžu stratiť</translation>
 <translation id="3983586614702900908">zariadenia od neznámeho dodávateľa</translation>
@@ -3875,9 +3872,6 @@
 <translation id="4992984395680162305">Tieto zariadenia boli prepojené naskenovaním QR kódu.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Než sa zaregistrujete, musíte vymazať TPM, aby mohol kontrolu nad týmto zariadením prevziať operačný systém <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Zariadenie TPM môžete tiež úplne vypnúť. Vaše údaje budú naďalej bezpečne ukladané pomocou softvérového šifrovania, ale určité bezpečnostné funkcie (ako certifikáty zálohované hardvérom) budú deaktivované.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Nastavenia TPM môžete zmeniť reštartovaním a prejdením do nastavení systému BIOS/UEFI. Postup sa v rôznych modeloch zariadení líši. Ďalšie informácie si môžete prečítať ešte pred reštartovaním v dokumentácii k operačnému systému <ph name="DEVICE_OS" /> v inom zariadení: [odkaz na webovú adresu]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nebol nájdený žiadny virtuálny počítač <ph name="VM_TYPE" />}=1{1 <ph name="VM_TYPE" /> VM found: <ph name="VM_NAME_LIST" />}few{Boli nájdené {NUM_VMS} virtuálne počítače <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}many{{NUM_VMS} <ph name="VM_TYPE" /> VMs found: <ph name="VM_NAME_LIST" />}other{Bolo nájdených {NUM_VMS} virtuálnych počítačov <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Žiadne internetové pripojenie.</translation>
 <translation id="4998430619171209993">Zapnuté</translation>
@@ -3995,7 +3989,6 @@
 <translation id="5127620150973591153">Bezpečný spojovací kód: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Synchronizácia je vypnutá</translation>
 <translation id="5127881134400491887">Spravovať sieťové pripojenia</translation>
-<translation id="5128774403617662387">Pred začatím sa uistite, že máte zálohu údajov. Inštaláciou operačného systému <ph name="DEVICE_OS" /> prepíšete pevný disk. Viac sa dozviete na g.co/TBD.</translation>
 <translation id="512903556749061217">pripojené</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profil sa nedal stiahnuť. Skúste to neskôr alebo požiadajte o pomoc operátora.</translation>
@@ -4511,7 +4504,6 @@
 <translation id="5659593005791499971">E-mail</translation>
 <translation id="5659833766619490117">Túto stránku sa nepodarilo preložiť</translation>
 <translation id="5662513737565158057">Zmeňte, ako budú aplikácie pre Linux fungovať.</translation>
-<translation id="5667490069342183561">Google nezodpovedá za stratu údajov. <ph name="DEVICE_OS" /> nemusí fungovať v necertifikovaných modeloch. Viac sa dozviete na g.co/TBD.</translation>
 <translation id="5667546120811588575">Nastavuje sa služba Google Play...</translation>
 <translation id="5668351004957198136">Nepodarilo sa</translation>
 <translation id="56702779821643359">Zdieľanie súborov s ľuďmi okolo vás. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation>
@@ -5323,9 +5315,6 @@
 <translation id="6528179044667508675">Nerušiť</translation>
 <translation id="652948702951888897">História Chromu</translation>
 <translation id="6530186581263215931">Tieto nastavenia sú vynútené správcom</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />V rámci poskytovania toho najlepšieho prostredia zariadenie <ph name="DEVICE_OS" /> zhromažďuje údaje o hardvéri zariadení a zdieľa ich s Googlom, aby bolo možné určiť, ktoré aktualizácie majú byť doručené. Voliteľne môžete Googlu povoliť používanie týchto údajov na ďalšie účely, napríklad na podporu a zlepšovanie prostredia a služieb zariadenia <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />V tomto zariadení sa môžete prihlásiť a prejsť do sekcie CLOUDREADY_HARDWARE_INFO na chrome://system, kde nájdete údaje odoslané Googlu na filtrovanie aktualizácií, ako aj ďalšie prípady, kedy ste povolili zdieľanie údajov s Googlom.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Viac o údajoch, ktoré zariadenie <ph name="DEVICE_OS" /> môže zdieľať s Googlom, a o tom, ako sú používané, nájdete na g.co/xxxxx.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Ponechať nebezpečný súbor</translation>
 <translation id="6532101170117367231">Uložiť do služby Disk Google</translation>
 <translation id="6532106788206463496">Uložiť zmeny</translation>
@@ -6014,15 +6003,6 @@
 <translation id="7258192266780953209">Transformácie</translation>
 <translation id="7258225044283673131">Aplikácia nereaguje. Zavrite ju výberom možnosti Vynútiť zavretie.</translation>
 <translation id="7262004276116528033">Túto prihlasovaciu službu hostí doména <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Vyskúšajte tieto kroky na riešenie problémov:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Uistite sa, že v zariadení máte fungujúce interné úložisko, ako je HDD, SSD alebo eMMC.
-    <ph name="LIST_ITEM" />Skontrolujte, či je interné úložisko väčšie ako 16 GB.
-    <ph name="LIST_ITEM" />Skontrolujte pripojenie k internému úložisku (ak je fyzicky k dispozícii).
-    <ph name="LIST_ITEM" />Uistite sa, že používate certifikovaný model a prezrite si poznámky k inštalácii.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ďalšiu pomoc získate na g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Virtuálny počítač sa nepodarilo nainštalovať. Skúste to znova alebo kontaktujte správcu. Kód chyby: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Zdvíhajte prst, aby ste pridali všetky odlišné časti odtlačku</translation>
 <translation id="7268127947535186412">Toto nastavenie spravuje vlastník zariadenia.</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 78ff0a6..940ab57 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -2330,7 +2330,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{Naprava <ph name="DEVICE_NAME" /> z vami deli priloge (<ph name="ATTACHMENTS" />).}one{Naprava <ph name="DEVICE_NAME" /> z vami deli priloge (<ph name="ATTACHMENTS" />).}two{Naprava <ph name="DEVICE_NAME" /> z vami deli priloge (<ph name="ATTACHMENTS" />).}few{Naprava <ph name="DEVICE_NAME" /> z vami deli priloge (<ph name="ATTACHMENTS" />).}other{Naprava <ph name="DEVICE_NAME" /> z vami deli priloge (<ph name="ATTACHMENTS" />).}}</translation>
 <translation id="3364986687961713424">Od skrbnika: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Uporabite Ctrl ali Alt</translation>
-<translation id="3367057768351048705">Spletna mesta smejo uporabljati piškotke samo za ogled dejavnosti brskanja na danem spletnem mestu.</translation>
 <translation id="3368922792935385530">Povezano</translation>
 <translation id="3369067987974711168">Pokaži več dejanj za ta vrata</translation>
 <translation id="3369624026883419694">Razrešujem gostitelja ...</translation>
@@ -2971,8 +2970,6 @@
 <translation id="3979748722126423326">Omogoči <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Vidna napravam v bližini kot <ph name="DEVICE_NAME" /> <ph name="REMAINING_TIME" /> …</translation>
 <translation id="3981760180856053153">Vrsta shranjevanje, ki ste jo vnesli, ni veljavna.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Prišlo je do napake. Sistema <ph name="DEVICE_OS" /> ni bilo mogoče namestiti.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Če potrebujete dodatno pomoč, obiščite g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Nastavite brskalnik v nekaj preprostih korakih</translation>
 <translation id="3983400541576569538">Morda boste izgubili podatke iz nekaterih aplikacij</translation>
 <translation id="3983586614702900908">naprave neznanega prodajalca</translation>
@@ -3892,9 +3889,6 @@
 <translation id="4992984395680162305">Naprave so bile povezane z optičnim branjem kode QR.</translation>
 <translation id="4994474651455208930">Dovoli spletnim mestom, da zahtevajo, da postanejo privzete rutine za obravnavo protokolov</translation>
 <translation id="4994754230098574403">Nastavljanje</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Pred včlanitvijo morate počistiti modul TPM, tako da bo lahko program <ph name="DEVICE_OS" /> prevzel lastništvo naprave.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Napravo TPM lahko tudi v celoti izklopite. Vaši podatki bodo še vedno varno shranjeni s šifriranjem programske opreme, vendar bodo onemogočene nekatere varnostne funkcije, kot so potrdila, podprta s strojno opremo.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Nastavitve TPM lahko spremenite tako, da napravo znova zaženete in odprete nastavitve za sistemski BIOS/UEFI. Postopek se razlikuje glede na model naprave. Če želite več informacij, odprite dokumentacijo za <ph name="DEVICE_OS" />v ločeni napravi, prede znova zaženete: [Povezava URL]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Najden ni bil noben navidezni računalnik <ph name="VM_TYPE" />.}=1{Najden je bil 1 navidezni računalnik <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />.}one{Najden je bil {NUM_VMS} navidezni računalnik <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />.}two{Najdena sta bila {NUM_VMS} navideznega računalnika <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />.}few{Najdeno so bili {NUM_VMS} navidezni računalniki <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />.}other{Najdenih je bilo {NUM_VMS} navideznih računalnikov <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />.}}</translation>
 <translation id="4997086284911172121">Ni internetne povezave.</translation>
 <translation id="4998430619171209993">Vklopljeno</translation>
@@ -4012,7 +4006,6 @@
 <translation id="5127620150973591153">ID varne povezave: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sinhroniziranje je izklopljeno</translation>
 <translation id="5127881134400491887">Upravljanje omrežnih povezav</translation>
-<translation id="5128774403617662387">Preden začnete, morate varnostno kopirati podatke. Z namestitvijo sistema <ph name="DEVICE_OS" /> bodo prepisani vsi podatki na trdem disku. Več o tem: g.co/TBD.</translation>
 <translation id="512903556749061217">priključena</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profila ni bilo mogoče prenesti. Poskusite znova pozneje ali se obrnite na ponudnika za pomoč.</translation>
@@ -4530,7 +4523,6 @@
 <translation id="5659593005791499971">E-pošta</translation>
 <translation id="5659833766619490117">Te strani ni bilo mogoče prevesti</translation>
 <translation id="5662513737565158057">Spremenite način delovanja aplikacij za Linux.</translation>
-<translation id="5667490069342183561">Google ni odgovoren za kakršno koli izgubo podatkov, sistem <ph name="DEVICE_OS" /> pa morda ne bo deloval v nepotrjenih modelih naprav. Več o tem: g.co/TBD.</translation>
 <translation id="5667546120811588575">Nastavljanje Googla Play ...</translation>
 <translation id="5668351004957198136">Neuspešno</translation>
 <translation id="56702779821643359">Deljenje datotek z ljudmi v bližini. <ph name="LINK_BEGIN" />Več o tem<ph name="LINK_END" /></translation>
@@ -5342,9 +5334,6 @@
 <translation id="6528179044667508675">Ne moti</translation>
 <translation id="652948702951888897">Zgodovina v Chromu</translation>
 <translation id="6530186581263215931">Te nastavitve je uveljavil skrbnik</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Zaradi omogočanja najboljše izkušnje operacijski sistem <ph name="DEVICE_OS" /> zbira podatke o strojni opremi naprav in jih deli z Googlom zaradi določanja, katere posodobitve naj vam zagotovi. Izbirno lahko dovolite Googlu, da te podatke uporablja za dodatne namene, kot so podpora in izboljšanje izkušnje sistema <ph name="DEVICE_OS" /> ter njegovih storitev.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Prijavite se lahko v to napravo in obiščete razdelek CLOUDREADY_HARDWARE_INFO na chrome://system, kjer si ogledate podatke, poslane Googlu zaradi filtriranja posodobitev, in druge primere, v katerih ste izbrali deljenje podatkov z Googlom.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Če želite več podrobnosti o podatki, ki jih <ph name="DEVICE_OS" /> morda deli z Googlom in kako se ti uporabljajo, obiščite g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Obdrži nevarno datoteko</translation>
 <translation id="6532101170117367231">Shrani v Google Drive</translation>
 <translation id="6532106788206463496">Shrani spremembe</translation>
@@ -6033,15 +6022,6 @@
 <translation id="7258192266780953209">Pretvorbe</translation>
 <translation id="7258225044283673131">Aplikacija se ne odziva. Če želite zapreti aplikacijo, izberite »Vsili zapiranje«.</translation>
 <translation id="7262004276116528033">Prijavno storitev gosti <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Poskusite te postopke za odpravljanje težav:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Preverite, ali ima naprava delujoč notranji pomnilnik, denimo trdi disk, SSD ali kartico eMMC.
-    <ph name="LIST_ITEM" />Preverite, ali je notranji pomnilnik večji od 16 GB.
-    <ph name="LIST_ITEM" />Preverite fizično dostopnost povezave do notranjega pomnilnika.
-    <ph name="LIST_ITEM" />Preverite, ali uporabljate potrjen model in preverite opombe glede namestitve.
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Če potrebujete dodatno pomoč, obiščite g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Navideznega računalnika ni bilo mogoče namestiti. Poskusite znova ali se obrnite na skrbnika. Koda napake: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Še naprej privzdigujte prst, da dodate različne dele prstnega odtisa.</translation>
 <translation id="7268127947535186412">To nastavitev upravlja lastnik naprave.</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index 07688ca9..bb6bb748 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -2309,7 +2309,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> po ndan <ph name="ATTACHMENTS" /> me ty.}other{<ph name="DEVICE_NAME" /> po ndan <ph name="ATTACHMENTS" /> me ty.}}</translation>
 <translation id="3364986687961713424">Nga administratori yt: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Përdor ose Ctrl, ose Alt</translation>
-<translation id="3367057768351048705">Sajtet mund t'i përdorin kukit e tua vetëm për të parë aktivitetin tënd të shfletimit në sajtin e tyre</translation>
 <translation id="3368922792935385530">Lidhur</translation>
 <translation id="3369067987974711168">Shfaq më shumë veprime për këtë portë</translation>
 <translation id="3369624026883419694">Po zgjidh strehuesin...</translation>
@@ -2950,8 +2949,6 @@
 <translation id="3979748722126423326">Aktivizo <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">I dukshëm për pajisjet në afërsi si <ph name="DEVICE_NAME" /> për <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Është futur lloj i pasaktë ruajtjeje.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Ndodhi një gabim dhe <ph name="DEVICE_OS" /> nuk mund të instalohej.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Për më shumë ndihmë, vizito: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Konfiguroje shfletuesin në disa hapa të thjeshtë</translation>
 <translation id="3983400541576569538">Të dhënat nga disa aplikacione mund të humbasin</translation>
 <translation id="3983586614702900908">pajisjet nga një shitës i panjohur</translation>
@@ -3870,9 +3867,6 @@
 <translation id="4992984395680162305">Këto pajisje janë lidhur duke skanuar një kod QR.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Përpara se të regjistrohesh, ti duhet të pastrosh TPM-në në mënyrë që <ph name="DEVICE_OS" /> të marrë në zotërim pajisjen.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Gjithashtu, ti mund ta çaktivizosh plotësisht pajisjen TPM. Të dhënat e tua do të ruhen në mënyrë të sigurt me enkriptimin e softuerit, por veçori të caktuara të sigurisë, si p.sh. certifikatat e mbështetura nga hardueri, do të çaktivizohen.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Mund t'i ndryshosh cilësimet e tua të TPM duke rindezur dhe futur cilësimet BIOS/UEFI të sistemit. Hapat ndryshojnë në varësi të modelit të pajisjes. Për më shumë informacion, hap dokumentacionin e <ph name="DEVICE_OS" /> në një pajisje të veçantë, përpara se të rindezësh: [lidhja e URL-së]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nuk u gjetën VM <ph name="VM_TYPE" />}=1{U gjet 1 VM <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{U gjetën {NUM_VMS} VM <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Nuk ka lidhje me internetin.</translation>
 <translation id="4998430619171209993">Aktiv</translation>
@@ -3990,7 +3984,6 @@
 <translation id="5127620150973591153">ID-ja e lidhjes së sigurt: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sinkronizimi është joaktiv</translation>
 <translation id="5127881134400491887">Menaxho lidhjet e rrjetit</translation>
-<translation id="5128774403617662387">Përpara se të fillosh, sigurohu që të kesh rezervuar të dhënat e tua. Instalimi i <ph name="DEVICE_OS" /> do të mbishkruajë diskun e ngurtë. Mëso më shumë në g.co/TBD.</translation>
 <translation id="512903556749061217">e lidhur</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profili nuk mund të shkarkohej. Provo përsëri më vonë ose kontakto me operatorin celular për ndihmë.</translation>
@@ -4506,7 +4499,6 @@
 <translation id="5659593005791499971">Mail-i</translation>
 <translation id="5659833766619490117">Kjo faqe nuk mund të përkthehej</translation>
 <translation id="5662513737565158057">Ndrysho se si do të funksionojnë aplikacionet e Linux.</translation>
-<translation id="5667490069342183561">Google nuk mban përgjegjësi për humbjet e të dhënave dhe <ph name="DEVICE_OS" /> mund të mos funksionojë në modele të pacertifikuara. Mëso më shumë në g.co/TBD.</translation>
 <translation id="5667546120811588575">Po konfiguron Google Play...</translation>
 <translation id="5668351004957198136">Dështim</translation>
 <translation id="56702779821643359">Ndaj skedarë me personat rreth teje. <ph name="LINK_BEGIN" />Mëso më shumë<ph name="LINK_END" /></translation>
@@ -5318,9 +5310,6 @@
 <translation id="6528179044667508675">Mos shqetëso</translation>
 <translation id="652948702951888897">Historiku i Chrome</translation>
 <translation id="6530186581263215931">Këto cilësime janë të detyruara nga administratori</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Për të ofruar përvojën më të mirë, <ph name="DEVICE_OS" /> mbledh të dhënat e harduerit rreth pajisjeve dhe i ndan ato me Google për të përcaktuar se cilat përditësime duhet të dërgohen. Ndryshe, mund të lejosh që Google t'i përdorë këto të dhëna për qëllime shtesë, si p.sh. për të mbështetur dhe përmirësuar përvojën dhe shërbimin e <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Mund të identifikohesh në këtë pajisje dhe të vizitosh seksionin CLOUDREADY_HARDWARE_INFO në chrome://system për të parë të dhënat e dërguara te Google për filtrimin e përditësuar, si dhe çdo rast tjetër ku ti zgjedh të ndash të dhënat me Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Për më shumë detaje rreth të dhënave që <ph name="DEVICE_OS" /> me Google dhe si përdoren ato, vizito g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Mbaje skedarin e rrezikshëm</translation>
 <translation id="6532101170117367231">Ruaj në "Diskun e Google"</translation>
 <translation id="6532106788206463496">Ruaj ndryshimet</translation>
@@ -6009,15 +5998,6 @@
 <translation id="7258192266780953209">Transformimet</translation>
 <translation id="7258225044283673131">Aplikacioni nuk përgjigjet. Zgjidh "Ndalo me forcë" për ta mbyllur aplikacionin.</translation>
 <translation id="7262004276116528033">Ky shërbim identifikimi strehohet nga <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Provo këto hapa të zgjidhjes së problemeve:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Sigurohu që pajisja jote të ketë një hapësirë ruajtëse të brendshme funksionale, si p.sh. një HDD, SSD ose eMMC
-    <ph name="LIST_ITEM" />Kontrollo që pajisja jote e hapësirës ruajtëse të brendshme të jetë më e madhe se 16 GB
-    <ph name="LIST_ITEM" />Kontrollo lidhjen me hapësirën ruajtëse të brendshme, nëse mund të kesh qasje fizikisht
-    <ph name="LIST_ITEM" />Sigurohu që po përdor një model të certifikuar dhe kontrollo shënimet e instalimit
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Për më shumë ndihmë, vizito: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Pajisja virtuale nuk mund të instalohej. Provo përsëri ose kontakto me administratorin. Kodi i gabimit: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Vazhdo ta ngresh gishtin për të shtuar pjesë të ndryshme të gjurmës së gishtit</translation>
 <translation id="7268127947535186412">Ky cilësim menaxhohet nga zotëruesi i pajisjes.</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index cee92d8b..78779cc 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -2311,7 +2311,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> deli sa vama (<ph name="ATTACHMENTS" />).}one{<ph name="DEVICE_NAME" /> deli sa vama (<ph name="ATTACHMENTS" />).}few{<ph name="DEVICE_NAME" /> deli <ph name="ATTACHMENTS" /> sa vama.}other{<ph name="DEVICE_NAME" /> deli <ph name="ATTACHMENTS" /> sa vama.}}</translation>
 <translation id="3364986687961713424">Od administratora: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Koristite Ctrl ili Alt</translation>
-<translation id="3367057768351048705">Sajtovi mogu da koriste kolačiće da bi videli vaše aktivnosti pregledanja samo na vlastitom sajtu</translation>
 <translation id="3368922792935385530">Povezan</translation>
 <translation id="3369067987974711168">Prikaži još radnji za ovaj port</translation>
 <translation id="3369624026883419694">Određuje se host...</translation>
@@ -2952,8 +2951,6 @@
 <translation id="3979748722126423326">Omogući <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Vidljivo uređajima u blizini kao <ph name="DEVICE_NAME" /> <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Unet je nevažeći tip za čuvanje.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Došlo je do greške i instaliranje sistema <ph name="DEVICE_OS" /> nije uspelo.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Dodatu pomoć potražite na: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Podesite pregledač u nekoliko jednostavnih koraka</translation>
 <translation id="3983400541576569538">Podaci iz nekih aplikacija su možda izgubljeni</translation>
 <translation id="3983586614702900908">uređaji nepoznatog prodavca</translation>
@@ -3872,9 +3869,6 @@
 <translation id="4992984395680162305">Ovi uređaji su povezani skeniranjem QR koda.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Pre nego što se registrujete, treba da obrišete TPM da bi <ph name="DEVICE_OS" /> mogao da preuzme vlasništvo na uređajem.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Možete i u potpunosti da isključite TPM uređaj. Vaši podaci će se i dalje bezbedno čuvati pomoću softverskog šifrovanja, ali određene bezbednosne funkcije, poput hardverskih sertifikata, biće onemogućene.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Podešavanja TPM-a možete da promenite restartovanjem i unosom BIOS/UEFI podešavanja. Koraci se razlikuju u zavisnosti od modela uređaja. Da biste pronašli više informacija, otvorite dokumentaciju za <ph name="DEVICE_OS" /> na posebnom uređaju pre restartovanja: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nije pronađena nijedna virtuelna mašina <ph name="VM_TYPE" />}=1{Pronađena je 1 virtuelna mašina<ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}one{Pronađena je{NUM_VMS} virtuelna mašina<ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}few{Pronađene su{NUM_VMS} virtuelne mašine<ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Pronađeno je{NUM_VMS} virtuelnih mašina<ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Nema internet veze.</translation>
 <translation id="4998430619171209993">Uključeno</translation>
@@ -3992,7 +3986,6 @@
 <translation id="5127620150973591153">ID bezbedne veze: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sinhronizacija je isključena</translation>
 <translation id="5127881134400491887">Upravljanje mrežnim vezama</translation>
-<translation id="5128774403617662387">Pre nego što počnete, uverite se da ste napravili rezervnu kopiju podataka. Instaliranjem sistema <ph name="DEVICE_OS" /> zameniće se podaci na hard-disku. Saznajte više na g.co/TBD.</translation>
 <translation id="512903556749061217">priključeno</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Preuzimanje profila nije uspelo. Probajte ponovo kasnije ili zatražite pomoć od mobilnog operatera.</translation>
@@ -4508,7 +4501,6 @@
 <translation id="5659593005791499971">Imejl</translation>
 <translation id="5659833766619490117">Prevođenje ove stranice nije uspelo</translation>
 <translation id="5662513737565158057">Promenite način na koji Linux aplikacije rade.</translation>
-<translation id="5667490069342183561">Google nije odgovoran ni za kakav gubitak podataka i <ph name="DEVICE_OS" /> možda neće raditi na modelima bez sertifikata. Saznajte više na g.co/TBD.</translation>
 <translation id="5667546120811588575">Google Play se podešava…</translation>
 <translation id="5668351004957198136">Nismo prošli</translation>
 <translation id="56702779821643359">Delite fajlove sa ljudima u blizini. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
@@ -5320,9 +5312,6 @@
 <translation id="6528179044667508675">Ne uznemiravaj</translation>
 <translation id="652948702951888897">Istorija Chrome-a</translation>
 <translation id="6530186581263215931">Administrator primenjuje ova podešavanja</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Da bi pružio najbolji doživljaj, <ph name="DEVICE_OS" /> prikuplja podatke o hardveru sa uređaja i deli ih sa Google-om da bi utvrdio koja ažuriranja treba da pruži. Možete opcionalno da dozvolite Google-u da koristi te podatke u dodatne svrhe poput podrške i poboljšanja za <ph name="DEVICE_OS" /> doživljaj i uslugu.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Možete da se prijavite na ovom uređaju i posetite odeljak CLOUDREADY_HARDWARE_INFO na chrome://system da biste videli podatke koji se šalju Google-u radi filtriranja ažuriranja, kao i sve druge slučajeve u kojima odlučujete da delite podatke sa Google-om.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Više detalja o podacima koje <ph name="DEVICE_OS" /> može da deli sa Google-om, kao i o tome kako se oni koriste, potražite na g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Zadrži opasnu datoteku</translation>
 <translation id="6532101170117367231">Čuvanje na Google disku</translation>
 <translation id="6532106788206463496">Sačuvaj promene</translation>
@@ -6011,15 +6000,6 @@
 <translation id="7258192266780953209">Transformacije</translation>
 <translation id="7258225044283673131">Aplikacija ne reaguje. Izaberite „Prinudno zatvori“ da biste zatvorili aplikaciju.</translation>
 <translation id="7262004276116528033">Ovu uslugu prijavljivanja hostuje <ph name="SAML_DOMAIN" />.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Isprobajte ove korake za rešavanje problema:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Uverite se da uređaj ima ispravnu internu memoriju, kao što je HDD, SSD ili eMMC
-    <ph name="LIST_ITEM" />Proverite da li je interna memorija veća od 16GB
-    <ph name="LIST_ITEM" />Proverite vezu sa internom memorijom ako je fizički dostupna
-    <ph name="LIST_ITEM" />Uverite se da koristite sertifikovan model i pregledajte napomene o instaliranju
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Pomoć potražite na: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Instaliranje virtuelne mašine nije uspelo. Probajte ponovo ili se obratite administratoru. Kôd greške: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Nastavite da podižete prst da biste dodali različite delove otiska prsta</translation>
 <translation id="7268127947535186412">Ovim podešavanjem upravlja vlasnik uređaja.</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index e683ccc0..49acb9c 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -2311,7 +2311,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> дели са вама (<ph name="ATTACHMENTS" />).}one{<ph name="DEVICE_NAME" /> дели са вама (<ph name="ATTACHMENTS" />).}few{<ph name="DEVICE_NAME" /> дели <ph name="ATTACHMENTS" /> са вама.}other{<ph name="DEVICE_NAME" /> дели <ph name="ATTACHMENTS" /> са вама.}}</translation>
 <translation id="3364986687961713424">Од администратора: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Користите Ctrl или Alt</translation>
-<translation id="3367057768351048705">Сајтови могу да користе колачиће да би видели ваше активности прегледања само на властитом сајту</translation>
 <translation id="3368922792935385530">Повезан</translation>
 <translation id="3369067987974711168">Прикажи још радњи за овај порт</translation>
 <translation id="3369624026883419694">Одређује се хост...</translation>
@@ -2952,8 +2951,6 @@
 <translation id="3979748722126423326">Омогући <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Видљиво уређајима у близини као <ph name="DEVICE_NAME" /> <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Унет је неважећи тип за чување.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Дошло је до грешке и инсталирање система <ph name="DEVICE_OS" /> није успело.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Додату помоћ потражите на: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Подесите прегледач у неколико једноставних корака</translation>
 <translation id="3983400541576569538">Подаци из неких апликација су можда изгубљени</translation>
 <translation id="3983586614702900908">уређаји непознатог продавца</translation>
@@ -3872,9 +3869,6 @@
 <translation id="4992984395680162305">Ови уређаји су повезани скенирањем QR кода.</translation>
 <translation id="4994474651455208930">Дозволи сајтовима да захтевају да постану подразумевани обрађивачи протокола</translation>
 <translation id="4994754230098574403">Подешава се</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Пре него што се региструјете, треба да обришете TPM да би <ph name="DEVICE_OS" /> могао да преузме власништво на уређајем.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Можете и у потпуности да искључите TPM уређај. Ваши подаци ће се и даље безбедно чувати помоћу софтверског шифровања, али одређене безбедносне функције, попут хардверских сертификата, биће онемогућене.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Подешавања TPM-а можете да промените рестартовањем и уносом BIOS/UEFI подешавања. Кораци се разликују у зависности од модела уређаја. Да бисте пронашли више информација, отворите документацију за <ph name="DEVICE_OS" /> на посебном уређају пре рестартовања: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Није пронађена ниједна виртуелна машина <ph name="VM_TYPE" />}=1{Пронађена је 1 виртуелна машина<ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}one{Пронађена је{NUM_VMS} виртуелна машина<ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}few{Пронађене су{NUM_VMS} виртуелне машине<ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Пронађено је{NUM_VMS} виртуелних машина<ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Нема интернет везе.</translation>
 <translation id="4998430619171209993">Укључено</translation>
@@ -3992,7 +3986,6 @@
 <translation id="5127620150973591153">ИД безбедне везе: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Синхронизација је искључена</translation>
 <translation id="5127881134400491887">Управљање мрежним везама</translation>
-<translation id="5128774403617662387">Пре него што почнете, уверите се да сте направили резервну копију података. Инсталирањем система <ph name="DEVICE_OS" /> замениће се подаци на хард-диску. Сазнајте више на g.co/TBD.</translation>
 <translation id="512903556749061217">прикључено</translation>
 <translation id="5130080518784460891">Етен</translation>
 <translation id="5130675701626084557">Преузимање профила није успело. Пробајте поново касније или затражите помоћ од мобилног оператера.</translation>
@@ -4508,7 +4501,6 @@
 <translation id="5659593005791499971">Имејл</translation>
 <translation id="5659833766619490117">Превођење ове странице није успело</translation>
 <translation id="5662513737565158057">Промените начин на који Linux апликације раде.</translation>
-<translation id="5667490069342183561">Google није одговоран ни за какав губитак података и <ph name="DEVICE_OS" /> можда неће радити на моделима без сертификата. Сазнајте више на g.co/TBD.</translation>
 <translation id="5667546120811588575">Google Play се подешава…</translation>
 <translation id="5668351004957198136">Нисмо прошли</translation>
 <translation id="56702779821643359">Делите фајлове са људима у близини. <ph name="LINK_BEGIN" />Сазнајте више<ph name="LINK_END" /></translation>
@@ -5320,9 +5312,6 @@
 <translation id="6528179044667508675">Не узнемиравај</translation>
 <translation id="652948702951888897">Историја Chrome-а</translation>
 <translation id="6530186581263215931">Администратор примењује ова подешавања</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Да би пружио најбољи доживљај, <ph name="DEVICE_OS" /> прикупља податке о хардверу са уређаја и дели их са Google-ом да би утврдио која ажурирања треба да пружи. Можете опционално да дозволите Google-у да користи те податке у додатне сврхе попут подршке и побољшања за <ph name="DEVICE_OS" /> доживљај и услугу.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Можете да се пријавите на овом уређају и посетите одељак CLOUDREADY_HARDWARE_INFO на chrome://system да бисте видели податке који се шаљу Google-у ради филтрирања ажурирања, као и све друге случајеве у којима одлучујете да делите податке са Google-ом.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Више детаља о подацима које <ph name="DEVICE_OS" /> може да дели са Google-ом, као и о томе како се они користе, потражите на g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Задржи опасну датотеку</translation>
 <translation id="6532101170117367231">Чување на Google диску</translation>
 <translation id="6532106788206463496">Сачувај промене</translation>
@@ -6011,15 +6000,6 @@
 <translation id="7258192266780953209">Трансформације</translation>
 <translation id="7258225044283673131">Апликација не реагује. Изаберите „Принудно затвори“ да бисте затворили апликацију.</translation>
 <translation id="7262004276116528033">Ову услугу пријављивања хостује <ph name="SAML_DOMAIN" />.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Испробајте ове кораке за решавање проблема:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Уверите се да уређај има исправну интерну меморију, као што је HDD, SSD или eMMC
-    <ph name="LIST_ITEM" />Проверите да ли је интерна меморија већа од 16GB
-    <ph name="LIST_ITEM" />Проверите везу са интерном меморијом ако је физички доступна
-    <ph name="LIST_ITEM" />Уверите се да користите сертификован модел и прегледајте напомене о инсталирању
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Помоћ потражите на: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Инсталирање виртуелне машине није успело. Пробајте поново или се обратите администратору. Кôд грешке: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Наставите да подижете прст да бисте додали различите делове отиска прста</translation>
 <translation id="7268127947535186412">Овим подешавањем управља власник уређаја.</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 53ce6f7..fd1b60e 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> delar <ph name="ATTACHMENTS" /> med dig.}other{<ph name="DEVICE_NAME" /> delar <ph name="ATTACHMENTS" /> med dig.}}</translation>
 <translation id="3364986687961713424">Från administratören: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Använd Ctrl eller Alt</translation>
-<translation id="3367057768351048705">Webbplatser får endast se din webbaktivitet på den aktuella webbplatsen med hjälp av cookies</translation>
 <translation id="3368922792935385530">Ansluten</translation>
 <translation id="3369067987974711168">Visa fler åtgärder för den här porten</translation>
 <translation id="3369624026883419694">Tolkar värden...</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326">Aktivera <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Enheter i närheten kan se <ph name="DEVICE_NAME" /> i <ph name="REMAINING_TIME" /> …</translation>
 <translation id="3981760180856053153">Du har angett en ogiltig typ att spara.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Något gick fel och <ph name="DEVICE_OS" /> kunde inte installeras.<ph name="END_PARAGRAPH1" />
-    Besök <ph name="BEGIN_PARAGRAPH2" />g.co/xxxxx<ph name="END_PARAGRAPH2" /> om du vill ha mer hjälp.</translation>
 <translation id="3982375475032951137">Konfigurera webbläsaren med några enkla steg</translation>
 <translation id="3983400541576569538">Data från vissa appar kanske inte sparas</translation>
 <translation id="3983586614702900908">enheter från en okänd leverantör</translation>
@@ -3889,9 +3886,6 @@
 <translation id="4992984395680162305">Dessa enheter länkades genom att skanna en QR-kod.</translation>
 <translation id="4994474651455208930">Tillåt att webbplatser begär att bli standardhanterare för protokoll</translation>
 <translation id="4994754230098574403">Konfigurerar</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Innan du registrerar dig måste du rensa TPM så att <ph name="DEVICE_OS" /> kan ta ägarskap över enheten.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Du kan även stänga av TPM-enheten helt. Din data lagras fortfarande säkert med mjukvarukryptering, men vissa säkerhetsfunktioner, till exempel maskinvarustödda certifikat, inaktiveras.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Du kan ändra TPM-ändringarna genom att starta om och öppna systeminställningarna för BIOS/UEFI. Stegen varierar beroende på enhetsmodellen. Du hittar mer information genom att öppna dokumentationen för <ph name="DEVICE_OS" /> på en separat enhet innan du startar om: [webbadresslänk]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Ingen virtuell maskin av typen <ph name="VM_TYPE" /> hittades}=1{En virtuell maskin av typen <ph name="VM_TYPE" /> hittades: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} virtuella maskiner av typen <ph name="VM_TYPE" /> hittades: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Ingen internetanslutning</translation>
 <translation id="4998430619171209993">På</translation>
@@ -4009,7 +4003,6 @@
 <translation id="5127620150973591153">Id för säker anslutning: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Synkronisering är av</translation>
 <translation id="5127881134400491887">Hantera nätverksanslutningar</translation>
-<translation id="5128774403617662387">Kontrollera att du har en säkerhetskopia av din data innan du börjar. All data på hårddisken skrivs över när du installerar <ph name="DEVICE_OS" />. Läs mer på g.co/TBD.</translation>
 <translation id="512903556749061217">ansluten</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Det gick inte att ladda ned profilen. Försök igen eller kontakta operatören om du behöver hjälp.</translation>
@@ -4525,7 +4518,6 @@
 <translation id="5659593005791499971">E-post</translation>
 <translation id="5659833766619490117">Det gick inte att översätta sidan</translation>
 <translation id="5662513737565158057">Ändra hur Linux-appar fungerar.</translation>
-<translation id="5667490069342183561">Google ansvarar inte för dataförlust, och det kan hända att <ph name="DEVICE_OS" /> inte fungerar på ocertifierade modeller. Läs mer på g.co/TBD.</translation>
 <translation id="5667546120811588575">Google Play konfigureras …</translation>
 <translation id="5668351004957198136">Ej godkänd</translation>
 <translation id="56702779821643359">Dela filer med andra i närheten. <ph name="LINK_BEGIN" />Läs mer<ph name="LINK_END" /></translation>
@@ -5337,9 +5329,6 @@
 <translation id="6528179044667508675">Stör ej</translation>
 <translation id="652948702951888897">Chrome-historik</translation>
 <translation id="6530186581263215931">Administratören har låst inställningarna</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />För att bli så bra som möjligt samlar <ph name="DEVICE_OS" /> in maskinvarudata om enheter och delar den med Google för att avgöra vilka uppdateringar som bör levereras. Du kan välja att ge Google tillåtelse att använda denna data för ytterligare syften, som support och förbättringar kring upplevelsen och tjänsten relaterade till <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Du kan logga in på den här enheten och besöka avsnittet CLOUDREADY_HARDWARE_INFO i chrome://system för att se vilken data som skickas till Google för uppdatering av filter, samt alla andra situationer där du väljer att dela data med Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Om du vill läsa mer om vilken data <ph name="DEVICE_OS" /> kan dela med Google och om hur den delas besöker du g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Behåll den farliga filen</translation>
 <translation id="6532101170117367231">Spara på Google Drive</translation>
 <translation id="6532106788206463496">Spara ändringarna</translation>
@@ -6028,15 +6017,6 @@
 <translation id="7258192266780953209">Transformationer</translation>
 <translation id="7258225044283673131">Appen svarar inte. Stäng appen med Tvångsavsluta.</translation>
 <translation id="7262004276116528033">Inloggningstjänsten tillhandahålls av <ph name="SAML_DOMAIN" />.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Testa felsökningsåtgärderna nedan:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Se till att enheten har ett fungerande internt lagringsutrymme, som HDD, SSD eller eMMC
-    <ph name="LIST_ITEM" />Kontrollera att lagringsenheten är större än 16 GB
-    <ph name="LIST_ITEM" />Kontrollera anslutningen till det interna lagringsutrymmet om detta är fysiskt tillgängligt
-    <ph name="LIST_ITEM" />Se till att du använder en certifierad modell och läs installationsanteckningarna
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Besök g.co/xxxxx om du vill ha mer hjälp<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Det gick inte att installera den virtuella maskinen. Försök igen eller kontakta administratören. Felkod: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Lyft fingret flera gånger för att lägga till hela fingeravtrycket</translation>
 <translation id="7268127947535186412">Den här inställningen hanteras av enhetens ägare.</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index d9ddd49..a13d54f 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -2323,7 +2323,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> inashiriki <ph name="ATTACHMENTS" /> nawe.}other{<ph name="DEVICE_NAME" /> inashiriki <ph name="ATTACHMENTS" /> nawe.}}</translation>
 <translation id="3364986687961713424">Kutoka kwa msimamizi wako: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Tumia Ctrl au Alt</translation>
-<translation id="3367057768351048705">Tovuti zinaweza tu kutumia vidakuzi vyako kuona shughuli zako za kuvinjari kwenye tovuti hizo</translation>
 <translation id="3368922792935385530">Umeunganishwa</translation>
 <translation id="3369067987974711168">Onyesha vitendo zaidi vya mlango huu</translation>
 <translation id="3369624026883419694">Inatafuta seva pangishi...</translation>
@@ -2964,8 +2963,6 @@
 <translation id="3979748722126423326">Washa <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Kinaonekana kwa vifaa vilivyo karibu kama <ph name="DEVICE_NAME" /> kwa <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Aina batili ya kuhifadhi imeingizwa.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Hitilafu fulani imetokea na <ph name="DEVICE_OS" /> haijasakinishwa.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ili upate usaidizi zaidi, tembelea: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Weka mipangilio ya kivinjari chako kwa hatua chache rahisi</translation>
 <translation id="3983400541576569538">Data kutoka baadhi ya programu inaweza kupotea</translation>
 <translation id="3983586614702900908">vifaa kutoka kwa mchuuzi asiyejulikana</translation>
@@ -3883,9 +3880,6 @@
 <translation id="4992984395680162305">Vifaa hivi viliunganishwa kwa kuchanganua msimbo wa QR.</translation>
 <translation id="4994474651455208930">Ruhusu tovuti kutuma ombi la kuwa vidhibiti chaguomsingi vya itifaki</translation>
 <translation id="4994754230098574403">Inaweka mipangilio</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Kabla ya kuandikisha, unahitaji kuondoa TPM ili <ph name="DEVICE_OS" /> ichukue umiliki wa kifaa.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Unaweza pia kuzima TPM kabisa kwenye kifaa. Data yako itaendelea kuhifadhiwa kwa usalama kwa kutumia mbinu ya kusimba programu kwa njia fiche, lakini vipengele fulani vya usalama kama vile vyeti vilivyohifadhiwa kwenye maunzi vitazimwa.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Unaweza kubadilisha mipangilio yako ya TPM kwa kuwasha kifaa tena na kuweka mipangilio ya mfumo ya BIOS/UEFI. Hatua hizo zinatofautiana kulingana na muundo wa kifaa. Kwa maelezo zaidi, fungua hati za <ph name="DEVICE_OS" /> kwenye kifaa tofauti kabla ya kuwasha kifaa tena: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Hakuna mashine pepe za <ph name="VM_TYPE" /> zilizopatikana}=1{Mashine pepe moja ya <ph name="VM_TYPE" /> imepatikana: <ph name="VM_NAME_LIST" />}other{Mashine pepe {NUM_VMS} za <ph name="VM_TYPE" /> zimepatikana: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Hakuna muunganisho wa Intaneti.</translation>
 <translation id="4998430619171209993">Imewashwa</translation>
@@ -4003,7 +3997,6 @@
 <translation id="5127620150973591153">Nambari salama ya kuunganisha: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Usawazishaji umezimwa</translation>
 <translation id="5127881134400491887">Dhibiti miunganisho ya mtandao</translation>
-<translation id="5128774403617662387">Kabla hujaanza, hakikisha kwamba una hifadhi ya nakala ya data yako. Hatua ya kusakinisha <ph name="DEVICE_OS" /> itafuta data yote iliyo kwenye diski yako kuu. Pata maelezo zaidi katika g.co/TBD.</translation>
 <translation id="512903556749061217">kimeambatishwa</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Imeshindwa kupakua wasifu. Tafadhali jaribu tena baadaye au uwasiliane na mtoa huduma wako ili upate usaidizi.</translation>
@@ -4519,7 +4512,6 @@
 <translation id="5659593005791499971">Barua pepe</translation>
 <translation id="5659833766619490117">Imeshindwa kutafsiri ukurasa huu</translation>
 <translation id="5662513737565158057">Badilisha jinsi programu za Linux zitafanya kazi.</translation>
-<translation id="5667490069342183561">Google haiwajibikii data yoyote unayopoteza na huenda <ph name="DEVICE_OS" /> isifanye kazi kwenye miundo ambayo haijathibitishwa. Pata maelezo zaidi katika g.co/TBD.</translation>
 <translation id="5667546120811588575">Inaweka mipangilio ya Google Play...</translation>
 <translation id="5668351004957198136">Tumeshindwa</translation>
 <translation id="56702779821643359">Shiriki faili na watu walio karibu nawe. <ph name="LINK_BEGIN" />Pata maelezo zaidi<ph name="LINK_END" /></translation>
@@ -5331,9 +5323,6 @@
 <translation id="6528179044667508675">Usinisumbue</translation>
 <translation id="652948702951888897">Historia ya Chrome</translation>
 <translation id="6530186581263215931">Mipangilio hii inatekelezwa na msimamizi wako</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Ili kukupa hali bora zaidi ya utumiaji, <ph name="DEVICE_OS" /> hukusanya data ya maunzi kuhusu vifaa na kuishiriki na Google ili kubainisha masasisho yanayofaa kutolewa. Ukipenda, unaweza kuruhusu Google itumie data hii kwa madhumuni ya ziada kama vile kuimarisha na kuboresha huduma na hali ya utumiaji wa <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Unaweza kuingia katika akaunti kwenye kifaa hiki kisha utembelee sehemu ya CLOUDREADY_HARDWARE_INFO katika chrome://system ili uone data inayotumwa kwa Google kwa ajili ya kuchuja masasisho, pamoja na matukio yoyote mengine ambapo unaweza kuchagua kushiriki data na Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Kwa maelezo zaidi kuhusu data ambayo <ph name="DEVICE_OS" /> inaweza kushiriki na Google na jinsi data hiyo inavyotumika, tembelea g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Hifadhi faili hatari</translation>
 <translation id="6532101170117367231">Hifadhi katika Hifadhi ya Google</translation>
 <translation id="6532106788206463496">Hifadhi mabadiliko</translation>
@@ -6022,15 +6011,6 @@
 <translation id="7258192266780953209">Ugeuzaji</translation>
 <translation id="7258225044283673131">Programu haifanyi kazi. Chagua "Lazimisha kufunga" ili ufunge programu.</translation>
 <translation id="7262004276116528033">Huduma hii ya kuingia katika akaunti inatolewa na <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Jaribu hatua hizi za utatuzi:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Hakikisha kifaa chako kina hifadhi ya mfumo inayofanya kazi kama vile HDD, SSD au eMMC
-    <ph name="LIST_ITEM" />Hakikisha kwamba kifaa chako cha hifadhi ya mfumo kina nafasi inayozidi GB 16
-    <ph name="LIST_ITEM" />Kagua muunganisho wa kifaa cha hifadhi ya mfumo, ikiwa unaweza kukifikia moja kwa moja
-    <ph name="LIST_ITEM" />Hakikisha unatumia muundo uliothibitishwa na uangalie madokezo ya usakinishaji
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Kwa usaidizi zaidi, tembelea: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Imeshindwa kusakinisha mashine pepe. Tafadhali jaribu tena au uwasiliane na msimamizi wako. Msimbo wa hitilafu: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Endelea kuinua kidole chako ili uweke sehemu tofauti za alama ya kidole chako</translation>
 <translation id="7268127947535186412">Mipangilio hii inadhibitiwa na mmiliki wa kifaa.</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index a8136b2..04ffe807 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> உங்களுடன் <ph name="ATTACHMENTS" /> ஐப் பகிர்கிறது.}other{<ph name="DEVICE_NAME" /> உங்களுடன் <ph name="ATTACHMENTS" /> ஐப் பகிர்கிறது.}}</translation>
 <translation id="3364986687961713424">உங்கள் நிர்வாகியிடமிருந்து: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">கன்ட்ரோல் அல்லது ஆல்ட் விசையைப் பயன்படுத்தவும்</translation>
-<translation id="3367057768351048705">நீங்கள் பார்க்கும் தளத்தில் உங்கள் உலாவல் செயல்பாட்டை அறிந்துகொள்வதற்காக மட்டுமே உங்கள் குக்கீகளை அந்தத் தளத்தால் பயன்படுத்த முடியும்</translation>
 <translation id="3368922792935385530">இணைக்கப்பட்டது</translation>
 <translation id="3369067987974711168">இந்தப் போர்ட்டிற்கான கூடுதல் செயல்களைக் காட்டு</translation>
 <translation id="3369624026883419694">ஹோஸ்ட்டைக் கண்டறிகிறது...</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> ஐ இயக்கு</translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" />க்கு <ph name="DEVICE_NAME" /> என்ற பெயரில் அருகிலுள்ள சாதனங்களுக்குக் காட்டப்படும்...</translation>
 <translation id="3981760180856053153">செல்லாத சேமிப்பு வகை உள்ளிடப்பட்டது.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />ஏதோ தவறாகிவிட்டதால் <ph name="DEVICE_OS" /> ஐ நிறுவ முடியவில்லை.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />மேலும் உதவிக்கு, பின்வரும் தளத்தைப் பார்க்கவும்: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">உங்கள் உலாவியை ஒரு சில எளிய படிகளில் அமைக்கலாம்</translation>
 <translation id="3983400541576569538">சில ஆப்ஸின் தரவு அழிக்கப்படலாம்</translation>
 <translation id="3983586614702900908">அறியப்படாத விற்பனையாளரிடமிருந்து சாதனங்கள்</translation>
@@ -3889,9 +3886,6 @@
 <translation id="4992984395680162305">QR குறியீட்டை ஸ்கேன் செய்ததன் மூலம் இந்தச் சாதனங்கள் இணைக்கப்பட்டன.</translation>
 <translation id="4994474651455208930">நெறிமுறைகளுக்கு இயல்புநிலை ஹேண்ட்லர்களாக இருக்கும்படி கேட்க தளங்களை அனுமதி</translation>
 <translation id="4994754230098574403">அமைக்கிறது</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />சாதனத்தின் உரிமையை <ph name="DEVICE_OS" /> எடுத்துக்கொள்ள வசதியாக, பதிவுசெய்வதற்கு முன்பு TPMமை நீங்கள் அழிக்க வேண்டும்.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />TPM சாதனத்தை முழுவதுமாகவும் முடக்கலாம். மென்பொருள் என்க்ரிப்ஷன் மூலம் உங்கள் தரவு பாதுகாப்பாகச் சேமிக்கப்படும். ஆனால், வன்பொருள்-காப்புப் பிரதியெடுக்கப்பட்ட சான்றிதழ்கள் போன்ற சில பாதுகாப்பு அம்சங்கள் முடக்கப்படும்.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />சிஸ்டத்தை மறுதொடக்கம் செய்தும் BIOS/UEFI அமைப்புகளுக்குச் சென்றும் TPM அமைப்புகளை மாற்றலாம். சாதனத்தின் மாடலைப் பொறுத்து படிகள் வேறுபடக்கூடும். மேலும் தகவலுக்கு, மறுதொடக்கம் செய்வதற்கு முன்பு <ph name="DEVICE_OS" /> ஆவணத்தை வேறொரு சாதனத்தில் திறக்கவும்: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> VMகள் எதுவும் இல்லை}=1{ஒரு <ph name="VM_TYPE" /> VM உள்ளது: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> VMகள் உள்ளன: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">இணைய இணைப்பு இல்லை.</translation>
 <translation id="4998430619171209993">ஆன் செய்யப்பட்டுள்ளது</translation>
@@ -4009,7 +4003,6 @@
 <translation id="5127620150973591153">பாதுகாப்பான இணைப்பு ஐடி: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">ஒத்திசைவு முடக்கத்தில்</translation>
 <translation id="5127881134400491887">நெட்வொர்க் இணைப்புகளை நிர்வகி</translation>
-<translation id="5128774403617662387">தொடங்கும் முன், தரவு காப்புப் பிரதி எடுக்கப்பட்டிருப்பதை உறுதிசெய்துகொள்ளவும். <ph name="DEVICE_OS" /> ஐ நிறுவினால் உங்கள் ஹார்டு டிரைவில் உள்ளவை மாற்றியமைக்கப்படும். g.co/TBD தளத்தில் மேலும் அறிக.</translation>
 <translation id="512903556749061217">இணைக்கப்பட்டது</translation>
 <translation id="5130080518784460891">ஈடென்</translation>
 <translation id="5130675701626084557">சுயவிவரத்தைப் பதிவிறக்க முடியவில்லை. பிறகு முயலவும் அல்லது உதவிக்கு மொபைல் நிறுவனத்தைத் தொடர்புகொள்ளவும்.</translation>
@@ -4526,7 +4519,6 @@
 <translation id="5659593005791499971">மின்னஞ்சல்</translation>
 <translation id="5659833766619490117">இந்தப் பக்கத்தை மொழிபெயர்க்க முடியவில்லை</translation>
 <translation id="5662513737565158057">Linux ஆப்ஸ் வேலை செய்யும் விதத்தை மாற்றுங்கள்.</translation>
-<translation id="5667490069342183561">தரவு இழப்பிற்கு Google பொறுப்பாகாது. சான்றளிக்கப்படாத மாடல்களில் <ph name="DEVICE_OS" /> வேலை செய்யாமல் போகலாம். g.co/TBD தளத்தில் மேலும் அறிக.</translation>
 <translation id="5667546120811588575">Google Playஐ அமைக்கிறது...</translation>
 <translation id="5668351004957198136">சரிபார்க்க முடியவில்லை</translation>
 <translation id="56702779821643359">உங்களுக்கு அருகிலுள்ளவர்களுடன் ஃபைல்களைப் பகிருங்கள். <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation>
@@ -5338,9 +5330,6 @@
 <translation id="6528179044667508675">தொந்தரவு செய்யாதே</translation>
 <translation id="652948702951888897">Chrome வரலாறு</translation>
 <translation id="6530186581263215931">இந்த அமைப்புகள் உங்கள் நிர்வாகியால் அமலாக்கப்படுகின்றன</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />சிறந்த அனுபவத்தை வழங்கும் வகையில் சாதனங்கள் குறித்த வன்பொருள் தரவை <ph name="DEVICE_OS" /> சேகரித்து, அவற்றை Googleளுடன் பகிரும். இதன்மூலம், தேவையான புதுப்பிப்புகள் உங்களுக்குக் கிடைக்கும். நீங்கள் விரும்பினால், <ph name="DEVICE_OS" /> உபயோகம் மற்றும் சேவை தொடர்பான உதவி, மேம்பாடுகள் போன்ற கூடுதல் நோக்கங்களுக்காக இந்தத் தரவை Google பயன்படுத்த நீங்கள் அனுமதிக்கலாம்.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />புதுப்பிப்புகளை வடிகட்டுவதற்காகவும், Googleளுடன் தரவைப் பகிர நீங்கள் அனுமதித்த வேறு எந்தக் காரணங்கள் தொடர்பாகவும் Googleளுக்கு அனுப்பப்பட்ட தரவை அறிந்துகொள்ள, இந்தச் சாதனத்தில் உள்நுழைந்து chrome://system என்பதில் உள்ள CLOUDREADY_HARDWARE_INFO பிரிவுக்குச் செல்லவும்.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Googleளுடன் <ph name="DEVICE_OS" /> பகிரக்கூடிய தரவையும் அது எப்படிப் பயன்படுத்தப்படுகிறது என்பதையும் பற்றிய கூடுதல் விவரங்களுக்கு g.co/xxxxx தளத்திற்குச் செல்லவும்<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">ஆபத்தான ஃபைலை வைத்திரு</translation>
 <translation id="6532101170117367231">Google Driveவில் சேமி</translation>
 <translation id="6532106788206463496">மாற்றங்களைச் சேமி</translation>
@@ -6029,15 +6018,6 @@
 <translation id="7258192266780953209">மாற்றங்கள்</translation>
 <translation id="7258225044283673131">ஆப்ஸ் செயல்படவில்லை. ஆப்ஸை மூட "உடனே மூடு" என்பதைத் தேர்ந்தெடுங்கள்.</translation>
 <translation id="7262004276116528033">உள்நுழைவுச் சாதனத்தை <ph name="SAML_DOMAIN" /> ஹோஸ்ட் செய்கிறது</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />பின்வரும் பிழையறிந்து திருத்தும் படிகளை முயலவும்:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />HDD, SSD, eMMC போன்ற இயங்கும் நிலையில் உள்ள அகச் சேமிப்பகம் இருப்பதை உறுதிசெய்துகொள்ளவும்
-    <ph name="LIST_ITEM" />அகச் சேமிப்பகச் சாதனம் 16 ஜி.பை.க்கும் அதிகமாக உள்ளதா எனச் சரிபார்க்கவும்
-    <ph name="LIST_ITEM" />அகச் சேமிப்பகம் சரியாக இணைக்கப்பட்டுள்ளதா எனப் பார்க்கவும்
-    <ph name="LIST_ITEM" />சான்றளிக்கப்பட்ட மாடலைப் பயன்படுத்துகிறீர்கள் என்பதை உறுதிசெய்வதோடு நிறுவல் குறிப்புகளையும் பார்க்கவும்
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />மேலும் உதவிக்கு, பின்வரும் தளத்தைப் பார்க்கவும்: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">விர்ச்சுவல் மெஷினை நிறுவ முடியவில்லை. மீண்டும் முயலவும் அல்லது உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும். பிழைக் குறியீடு: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">கைரேகையின் வெவ்வேறு பகுதிகளைச் சேர்க்க, விரலை எடுத்து எடுத்து வைக்கவும்</translation>
 <translation id="7268127947535186412">இந்த அமைப்பைச் சாதனத்தின் உரிமையாளர் நிர்வகிக்கிறார்.</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index a9862ae5..21e5e1ac 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -2326,7 +2326,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> మీతో <ph name="ATTACHMENTS" />ని షేర్ చేస్తోంది.}other{<ph name="DEVICE_NAME" /> మీతో <ph name="ATTACHMENTS" />ని షేర్ చేస్తోంది.}}</translation>
 <translation id="3364986687961713424">మీ నిర్వాహకుడి నుండి: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl లేదా Altను ఉపయోగించండి</translation>
-<translation id="3367057768351048705">సైట్‌లు, వాటి స్వంత సైట్‌లో మాత్రమే మీ బ్రౌజింగ్ యాక్టివిటీని చూడడానికి మీ కుక్కీలను ఉపయోగించగలవు</translation>
 <translation id="3368922792935385530">కనెక్ట్ అయింది</translation>
 <translation id="3369067987974711168">ఈ పోర్ట్ కోసం మరిన్ని చర్యలను చూపించు</translation>
 <translation id="3369624026883419694">హోస్ట్‌ను పరిష్కరిస్తోంది...</translation>
@@ -2967,8 +2966,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" />ను ప్రారంభించు</translation>
 <translation id="3981058120448670012">సమీపంలోని పరికరాలకు <ph name="REMAINING_TIME" /> పాటు <ph name="DEVICE_NAME" />గా కనిపిస్తుంది...</translation>
 <translation id="3981760180856053153">చెల్లని సేవ్ రకం ఎంటర్ చేయబడింది.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />ఏదో తప్పు జరిగినందున <ph name="DEVICE_OS" />‌ను ఇన్‌స్టాల్ చేయడం సాధ్యపడలేదు.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />మరింత సహాయం కోసం, ఈ సైట్‌ను సందర్శించండి: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">సులువైన కొద్ది దశలతో మీ బ్రౌజర్‌ని సెటప్ చేయండి</translation>
 <translation id="3983400541576569538">కొన్ని యాప్‌ల డేటాని కోల్పోవచ్చు</translation>
 <translation id="3983586614702900908">తెలియని విక్రేత అందించిన పరికరాలు</translation>
@@ -3888,9 +3885,6 @@
 <translation id="4992984395680162305">QR కోడ్‌ను స్కాన్ చేయడం ద్వారా ఈ పరికరాలు లింక్ చేయబడ్డాయి.</translation>
 <translation id="4994474651455208930">ప్రోటోకాల్స్‌కు డిఫాల్ట్ హ్యాండ్లర్‌లుగా కావడం కోసం అడగటానికి సైట్‌లను అనుమతించండి</translation>
 <translation id="4994754230098574403">సెటప్ చేస్తోంది</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />ఎన్‌రోల్ చేసే ముందు, మీరు TPMను క్లియర్ చేయాల్సి ఉంటుంది, తద్వారా <ph name="DEVICE_OS" /> పరికర యాజమాన్య హక్కును తీసుకోవచ్చు.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />మీరు TPM పరికరాన్ని మొత్తానికి కూడా ఆఫ్ చేయవచ్చు. మీ డేటా, సాఫ్ట్‌వేర్ ఎన్‌క్రిప్షన్ ద్వారా భద్రంగా స్టోర్ చేయబడుతుంది, కానీ హార్డ్‌వేర్ సపోర్ట్‌ను కలిగి ఉన్న సర్టిఫికెట్‌ల వంటి కొన్ని సెక్యూరిటీ ఫీచర్‌లు డిజేబుల్ చేయబడతాయి.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />సిస్టమ్ BIOS/UEFI సెట్టింగ్‌లను రీబూట్ చేయడం, ఇంకా ఎంటర్ చేయడం ద్వారా మీరు మీ TPM సెట్టింగ్‌లను మార్చవచ్చు. పరికర మోడల్‌ను బట్టి దశలు మారుతూ ఉంటాయి. మరింత సమాచారం కోసం, మీరు రీబూట్ చేసే ముందు <ph name="DEVICE_OS" /> డాక్యుమెంటేషన్‌ను వేరొక పరికరంలో తెరవండి: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> వర్చువల్ మెషీన్‌లు ఏవీ కనుగొనబడలేదు}=1{1 <ph name="VM_TYPE" /> వర్చువల్ మెషీన్‌ కనుగొనబడింది: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> వర్చువల్ మెషీన్‌లు కనుగొనబడ్డాయి: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">ఇంటర్నెట్ కనెక్షన్ లేదు.</translation>
 <translation id="4998430619171209993">ఆన్‌లో ఉంది</translation>
@@ -4008,7 +4002,6 @@
 <translation id="5127620150973591153">సురక్షిత కనెక్షన్ ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">సింక్‌ ఆఫ్‌లో ఉంది</translation>
 <translation id="5127881134400491887">నెట్‌వర్క్ కనెక్షన్‌లను నిర్వహించండి</translation>
-<translation id="5128774403617662387">ప్రారంభించడానికి ముందు, మీరు మీ డేటాను బ్యాకప్ చేశారని నిర్ధారించుకోండి. <ph name="DEVICE_OS" />‌ను ఇన్‌స్టాల్ చేయడం వలన మీ హార్డ్ డ్రైవ్ ఓవర్‌రైట్ అవుతుంది. g.co/TBD‌లో మరింత తెలుసుకోండి.</translation>
 <translation id="512903556749061217">జోడించబడింది</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">ప్రొఫైల్‌ను డౌన్‌లోడ్ చేయడం సాధ్యపడలేదు. దయచేసి తర్వాత మళ్లీ ట్రై చేయండి లేదా సహాయం కోసం క్యారియర్‌ను కాంటాక్ట్ చేయండి.</translation>
@@ -4524,7 +4517,6 @@
 <translation id="5659593005791499971">ఈమెయిల్‌</translation>
 <translation id="5659833766619490117">ఈ పేజీని అనువదించడం సాధ్యపడలేదు</translation>
 <translation id="5662513737565158057">Linux యాప్‌లు పనిచేసే తీరును మార్చండి.</translation>
-<translation id="5667490069342183561">ఏదైనా డేటా కోల్పోతే దానికి Google ఎటువంటి బాధ్యత వహించదు, అలాగే <ph name="DEVICE_OS" /> సర్టిఫై చేయబడని మోడల్‌లలో పని చేయకపోవచ్చు. g.co/TBD‌లో మరింత తెలుసుకోండి.</translation>
 <translation id="5667546120811588575">Google Play సెటప్ చేస్తోంది...</translation>
 <translation id="5668351004957198136">విఫలమైంది</translation>
 <translation id="56702779821643359">మీ చుట్టూ ఉన్న వ్యక్తులతో ఫైళ్లను షేర్ చేయండి. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation>
@@ -5336,9 +5328,6 @@
 <translation id="6528179044667508675">అంతరాయం వద్దు</translation>
 <translation id="652948702951888897">Chrome చరిత్ర</translation>
 <translation id="6530186581263215931">ఈ సెట్టింగ్‌లు మీ నిర్వాహకుడి ద్వారా అమలు చేయబడ్డాయి</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />అత్యుత్తమ అనుభవం అందించడానికి, పరికరాలకు సంబంధించిన హార్డ్‌వేర్ డేటాను <ph name="DEVICE_OS" /> సేకరిస్తుంది, అలాగే ఏ అప్‌డేట్‌లను డెలివరీ చేయాలో నిర్ణయించడం కోసం Googleకు దీనిని షేర్ చేస్తుంది. ఆప్షనల్‌గా, <ph name="DEVICE_OS" /> అనుభవం, సర్వీస్‌కు సపోర్ట్, మెరుగుదలల వంటి అదనపు ప్రయోజనాల కోసం ఈ డేటాను Google వినియోగించేందుకు మీరు అనుమతించవచ్చు.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />అప్‌డేట్‌లను ఫిల్టర్ చేయడానికి Googleకు పంపిన డేటాను, అలాగే మీరు Googleతో డేటాను షేర్ చేయడానికి ఎంచుకున్న ఏ ఇతర సందర్భాలను అయినా చూడటానికి ఈ పరికరంలో లాగిన్ చేసి, chrome://systemలోని CLOUDREADY_HARDWARE_INFO విభాగాన్ని సందర్శించండి.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> Googleతో షేర్ చేసే డేటా గురించి, అలాగే ఆ డేటా ఎలా ఉపయోగించబడుతుంది అనే దానికి సంబంధించిన మరిన్ని వివరాల కోసం, g.co/xxxxxను సందర్శించండి<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">అపాయకరమైన ఫైల్‌ను అలాగే ఉంచు</translation>
 <translation id="6532101170117367231">Google డిస్క్‌‌కు సేవ్ చేయండి</translation>
 <translation id="6532106788206463496">మార్పులను సేవ్ చేయి</translation>
@@ -6027,15 +6016,6 @@
 <translation id="7258192266780953209">పరివర్తనాలు</translation>
 <translation id="7258225044283673131">అప్లికేషన్ స్పందించడం లేదు. యాప్‌ను మూసివేయడానికి "బలవంతంగా మూసివేయి" ఎంచుకోండి.</translation>
 <translation id="7262004276116528033">ఈ సైన్-ఇన్ సేవను <ph name="SAML_DOMAIN" /> హోస్ట్ చేస్తోంది</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />ఈ పరిష్కార ప్రక్రియ దశలను ట్రై చేసి చూడండి:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />మీ పరికరం HDD, SSD లేదా eMMC వంటి యాక్టివ్‌గా ఉన్న అంతర్గత స్టోరేజ్‌ను కలిగి ఉందని నిర్ధారించుకోండి
-    <ph name="LIST_ITEM" />మీ అంతర్గత స్టోరేజ్ పరికరం 16GB కంటే ఎక్కువ స్టోరేజ్‌ను కలిగి ఉందో లేదో చెక్ చేయండి
-    <ph name="LIST_ITEM" />భౌతికంగా యాక్సెస్ చేయడానికి వీలుంటే, అంతర్గత స్టోరేజ్ కనెక్షన్‌ను చెక్ చేయండి
-    <ph name="LIST_ITEM" />మీరు సర్టిఫైడ్ మోడల్‌ను ఉపయోగిస్తున్నారని నిర్ధారించుకుని, ఇన్‌స్టాలేషన్‌కు సంబంధించిన గమనికలను చెక్ చేయండి
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />మరింత సహాయం కోసం, ఈ సైట్‌ను సందర్శించండి: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">వర్చువల్ మెషిన్‌ను ఇన్‌స్టాల్ చేయడం సాధ్యపడలేదు. దయచేసి మళ్ళీ ప్రయత్నించండి లేదా మీ నిర్వాహకుడిని సంప్రదించండి. ఎర్రర్ కోడ్: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">మీ వేలిముద్ర కోసం వివిధ భాగాలను జోడించడానికి మీ వేలిని పైకి ఎత్తుతూ ఉండండి</translation>
 <translation id="7268127947535186412">ఈ సెట్టింగ్‌ను పరికరం యజమాని నిర్వహిస్తున్నారు.</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 34d27a9..5c56993 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -2311,7 +2311,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> กำลังแชร์ <ph name="ATTACHMENTS" />กับคุณ}other{<ph name="DEVICE_NAME" /> กำลังแชร์ <ph name="ATTACHMENTS" />กับคุณ}}</translation>
 <translation id="3364986687961713424">จากผู้ดูแลระบบ: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">ใช้ Ctrl หรือ Alt อย่างใดอย่างหนึ่ง</translation>
-<translation id="3367057768351048705">เว็บไซต์สามารถใช้คุกกี้เพื่อดูกิจกรรมการท่องเว็บของคุณเฉพาะในเว็บไซต์นั้นๆ</translation>
 <translation id="3368922792935385530">เชื่อมต่อแล้ว</translation>
 <translation id="3369067987974711168">แสดงการทำงานเพิ่มเติมสำหรับพอร์ตนี้</translation>
 <translation id="3369624026883419694">กำลังแปลงโฮสต์...</translation>
@@ -2952,8 +2951,6 @@
 <translation id="3979748722126423326">เปิดการใช้งาน <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">แสดงต่ออุปกรณ์ใกล้เคียงด้วยชื่อ <ph name="DEVICE_NAME" /> เป็นเวลา <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">ประเภทการบันทึกที่ป้อนไม่ถูกต้อง</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />เกิดข้อผิดพลาดขึ้นจึงติดตั้ง <ph name="DEVICE_OS" /> ไม่ได้<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ดูความช่วยเหลือเพิ่มเติมได้ที่ g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">ตั้งค่าเบราว์เซอร์ได้ง่ายๆ ในไม่กี่ขั้นตอน</translation>
 <translation id="3983400541576569538">ข้อมูลจากแอปบางแอปอาจสูญหายไป</translation>
 <translation id="3983586614702900908">อุปกรณ์จากผู้ขายที่ไม่รู้จัก</translation>
@@ -3872,9 +3869,6 @@
 <translation id="4992984395680162305">อุปกรณ์เหล่านี้ลิงก์ด้วยการสแกนคิวอาร์โค้ด</translation>
 <translation id="4994474651455208930">อนุญาตให้ไซต์แจ้งขอเป็นตัวจัดการเริ่มต้นสำหรับโปรโตคอล</translation>
 <translation id="4994754230098574403">กำลังตั้งค่า</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />ก่อนลงทะเบียน คุณต้องล้างข้อมูลใน TPM เพื่อให้ <ph name="DEVICE_OS" /> เข้าเป็นเจ้าของอุปกรณ์ได้<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />คุณอาจปิดอุปกรณ์ TPM ไปเลยก็ได้เช่นกัน ระบบจะยังคงจัดเก็บข้อมูลของคุณไว้อย่างปลอดภัยด้วยการเข้ารหัสซอฟต์แวร์ แต่ฟีเจอร์ความปลอดภัยบางอย่าง เช่น ใบรับรองที่สนับสนุนด้วยฮาร์ดแวร์จะถูกปิดใช้<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />คุณเปลี่ยนการตั้งค่า TPM ได้ด้วยการรีบูตและเข้าสู่การตั้งค่า BIOS/UEFI ของระบบ โดยขั้นตอนจะแตกต่างกันไปในอุปกรณ์แต่ละรุ่น สำหรับข้อมูลเพิ่มเติม โปรดเปิดเอกสารประกอบเกี่ยวกับ <ph name="DEVICE_OS" /> ที่ลิงก์ [URL link] ในอุปกรณ์อีกเครื่องหนึ่งก่อนที่จะรีบูต<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{ไม่พบ VM <ph name="VM_TYPE" />}=1{พบ VM <ph name="VM_TYPE" /> 1 รายการ: <ph name="VM_NAME_LIST" />}other{พบ VM <ph name="VM_TYPE" /> {NUM_VMS} รายการ: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">ไม่มีการเชื่อมต่ออินเทอร์เน็ต</translation>
 <translation id="4998430619171209993">เปิด</translation>
@@ -3992,7 +3986,6 @@
 <translation id="5127620150973591153">รหัสการเชื่อมต่อที่ปลอดภัย: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">การซิงค์ปิดอยู่</translation>
 <translation id="5127881134400491887">จัดการการเชื่อมต่อเครือข่าย</translation>
-<translation id="5128774403617662387">ตรวจสอบว่าคุณได้สำรองข้อมูลไว้แล้วก่อนที่จะเริ่ม การติดตั้ง <ph name="DEVICE_OS" /> จะเขียนทับข้อมูลในฮาร์ดไดรฟ์ ดูข้อมูลเพิ่มเติมที่ g.co/TBD</translation>
 <translation id="512903556749061217">ที่แนบมา</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">ดาวน์โหลดโปรไฟล์ไม่ได้ โปรดลองอีกครั้งภายหลังหรือติดต่อผู้ให้บริการเพื่อรับความช่วยเหลือ</translation>
@@ -4508,7 +4501,6 @@
 <translation id="5659593005791499971">อีเมล</translation>
 <translation id="5659833766619490117">แปลหน้านี้ไม่ได้</translation>
 <translation id="5662513737565158057">เปลี่ยนลักษณะที่แอป Linux จะทำงาน</translation>
-<translation id="5667490069342183561">Google ไม่รับผิดชอบต่อการสูญเสียข้อมูลใดๆ และ <ph name="DEVICE_OS" /> อาจใช้ไม่ได้กับรุ่นที่ไม่ผ่านการรับรอง ดูข้อมูลเพิ่มเติมที่ g.co/TBD</translation>
 <translation id="5667546120811588575">กำลังตั้งค่า Google Play...</translation>
 <translation id="5668351004957198136">ไม่ผ่าน</translation>
 <translation id="56702779821643359">แชร์ไฟล์กับผู้คนรอบตัวคุณ <ph name="LINK_BEGIN" />ดูข้อมูลเพิ่มเติม<ph name="LINK_END" /></translation>
@@ -5320,9 +5312,6 @@
 <translation id="6528179044667508675">ห้ามรบกวน</translation>
 <translation id="652948702951888897">ประวัติการเข้าชมใน Chrome</translation>
 <translation id="6530186581263215931">ผู้ดูแลระบบกำหนดให้ใช้การตั้งค่าเหล่านี้</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />เพื่อมอบประสบการณ์ที่ดีที่สุด <ph name="DEVICE_OS" /> จะรวบรวมข้อมูลฮาร์ดแวร์เกี่ยวกับอุปกรณ์และแชร์กับ Google เพื่อพิจารณาอัปเดตที่ควรส่ง นอกจากนี้ คุณสามารถอนุญาตให้ Google ใช้ข้อมูลนี้เพื่อวัตถุประสงค์อื่นๆ เพิ่มเติม เช่น การสนับสนุนและการปรับปรุงด้าน<ph name="DEVICE_OS" />ประสบการณ์และบริการ<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />คุณลงชื่อเข้าสู่ระบบในอุปกรณ์เครื่องนี้และไปที่ส่วน CLOUDREADY_HARDWARE_INFO ใน chrome://system เพื่อดูข้อมูลที่ส่งไปยัง Google เพื่อกรองอัปเดต รวมถึงสถานการณ์ใดๆ ที่คุณเลือกแชร์ข้อมูลกับ Google<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />ดูรายละเอียดเพิ่มเติมเกี่ยวกับข้อมูลที่ <ph name="DEVICE_OS" /> อาจแชร์กับ Google และวิธีนำข้อมูลไปใช้ได้ที่ g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">เก็บไฟล์อันตรายไว้</translation>
 <translation id="6532101170117367231">บันทึกไปยัง Google ไดรฟ์</translation>
 <translation id="6532106788206463496">บันทึกการเปลี่ยนแปลง</translation>
@@ -6011,15 +6000,6 @@
 <translation id="7258192266780953209">Transformations</translation>
 <translation id="7258225044283673131">แอปพลิเคชันไม่ตอบสนอง เลือก "บังคับปิด" เพื่อปิดแอป</translation>
 <translation id="7262004276116528033">บริการลงชื่อเข้าใช้นี้โฮสต์โดย <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />ลองทำตามขั้นตอนการแก้ปัญหาเหล่านี้
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />ตรวจสอบว่าอุปกรณ์มีที่จัดเก็บข้อมูลภายในที่ใช้งานได้ เช่น HDD, SSD หรือ eMMC
-    <ph name="LIST_ITEM" />ตรวจสอบว่าอุปกรณ์ที่ใช้เป็นที่จัดเก็บข้อมูลภายในมีขนาดใหญ่กว่า 16 GB
-    <ph name="LIST_ITEM" />ตรวจสอบการเชื่อมต่อกับที่จัดเก็บข้อมูลภายในด้วยสายตา หากทำได้
-    <ph name="LIST_ITEM" />ตรวจสอบว่าคุณใช้รุ่นที่ผ่านการรับรองและตรวจสอบบันทึกการติดตั้ง
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />ดูความช่วยเหลือเพิ่มเติมได้ที่ g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">ติดตั้งเครื่องเสมือนไม่ได้ โปรดลองอีกครั้งหรือติดต่อผู้ดูแลระบบ รหัสข้อผิดพลาด: <ph name="ERROR_CODE" /></translation>
 <translation id="7267875682732693301">ยกนิ้วมือเรื่อยๆ เพื่อเพิ่มส่วนอื่นๆ ของลายนิ้วมือ</translation>
 <translation id="7268127947535186412">เจ้าของอุปกรณ์เป็นผู้จัดการการตั้งค่านี้</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 67f5e00f..9fc2bd40 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -2310,7 +2310,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> sizinle <ph name="ATTACHMENTS" /> paylaşıyor.}other{<ph name="DEVICE_NAME" /> sizinle <ph name="ATTACHMENTS" /> paylaşıyor.}}</translation>
 <translation id="3364986687961713424">Yöneticinizden: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl veya Alt tuşlarından birini kullanın</translation>
-<translation id="3367057768351048705">Siteler, çerezlerinizi yalnızca kendi sitelerindeki tarama etkinliğinizi görmek için kullanabilir</translation>
 <translation id="3368922792935385530">Bağlı</translation>
 <translation id="3369067987974711168">Bu bağlantı noktası için daha fazla işlem göster</translation>
 <translation id="3369624026883419694">Ana bilgisayar çözümleniyor...</translation>
@@ -2951,8 +2950,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> ağ cihazını etkinleştir</translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" /> boyunca yakındaki cihazlara <ph name="DEVICE_NAME" /> olarak gösterilecek...</translation>
 <translation id="3981760180856053153">Geçersiz kayıt türü girildi.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Bir sorun oluştuğu için <ph name="DEVICE_OS" /> yüklenemedi.<ph name="END_PARAGRAPH1" />
-    Daha fazla yardım için <ph name="BEGIN_PARAGRAPH2" />g.co/xxxxx<ph name="END_PARAGRAPH2" /> sayfasını ziyaret edin.</translation>
 <translation id="3982375475032951137">Tarayıcınızı birkaç basit adımda kurun</translation>
 <translation id="3983400541576569538">Bazı uygulamalara ait veriler kaybolabilir</translation>
 <translation id="3983586614702900908">bilinmeyen bir tedarikçi firmanın cihazları</translation>
@@ -3871,9 +3868,6 @@
 <translation id="4992984395680162305">Bu cihazlar QR kodu tarayarak bağlandı.</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" /><ph name="DEVICE_OS" /> işletim sisteminin, cihazın sahipliğini alabilmesi için kaydolmadan önce TPM'yi temizlemeniz gerekir.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />TPM cihazını tamamen de kapatabilirsiniz. Verileriniz yazılım şifreleme ile güvenli bir şekilde depolanmaya devam eder ancak donanım destekli sertifikalar gibi bazı güvenlik özellikleri devre dışı bırakılır.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Yeniden başlatıp sistem BIOS/UEFI ayarlarını girerek TPM ayarlarınızı değiştirebilirsiniz. Uygulanacak adımlar cihaz modeline göre değişir. Daha fazla bilgi için yeniden başlatma işleminden önce <ph name="DEVICE_OS" /> dokümanlarını ayrı bir cihazda açın: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> sanal makinesi bulunamadı}=1{1 <ph name="VM_TYPE" /> sanal makinesi bulundu: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} <ph name="VM_TYPE" /> sanal makinesi bulundu: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">İnternet bağlantısı yok.</translation>
 <translation id="4998430619171209993">Açık</translation>
@@ -3991,7 +3985,6 @@
 <translation id="5127620150973591153">Güvenli bağlantı kimliği: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Senkronizasyon kapalı</translation>
 <translation id="5127881134400491887">Ağ bağlantılarını yönetme</translation>
-<translation id="5128774403617662387">Başlamadan önce verilerinizi yedeklemeyi unutmayın. <ph name="DEVICE_OS" /> yüklenirken sabit diskinizin üzerine yazılır. Daha fazla bilgiyi g.co/TBD sayfasında bulabilirsiniz.</translation>
 <translation id="512903556749061217">eklendi</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profil indirilemedi. Lütfen daha sonra tekrar deneyin veya yardım için operatörle iletişim kurun.</translation>
@@ -4508,7 +4501,6 @@
 <translation id="5659593005791499971">E-posta</translation>
 <translation id="5659833766619490117">Bu sayfa çevrilemedi</translation>
 <translation id="5662513737565158057">Linux uygulamalarının çalışma şeklini değiştirin.</translation>
-<translation id="5667490069342183561">Google, hiçbir veri kaybından sorumlu değildir ve <ph name="DEVICE_OS" />, sertifikasız modellerde çalışmayabilir. Daha fazla bilgiyi g.co/TBD sayfasında bulabilirsiniz.</translation>
 <translation id="5667546120811588575">Google Play kuruluyor...</translation>
 <translation id="5668351004957198136">Başarısız</translation>
 <translation id="56702779821643359">Çevrenizdeki kişilerle dosya paylaşın. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation>
@@ -5320,9 +5312,6 @@
 <translation id="6528179044667508675">Rahatsız etme</translation>
 <translation id="652948702951888897">Chrome geçmişi</translation>
 <translation id="6530186581263215931">Bu ayarlar yöneticiniz tarafınızdan uygulanıyor</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" /><ph name="DEVICE_OS" />, hangi güncellemenin sağlanması gerektiğini belirlemek için cihazlarla ilgili donanım verilerini toplayıp Google'la paylaşarak en iyi deneyimi sağlamayı amaçlar. İsterseniz Google'ın bu verileri <ph name="DEVICE_OS" /> deneyimini ve hizmetini destekleyip iyileştirmesi gibi ek amaçlar için kullanmasına izin verebilirsiniz.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Bu cihazda giriş yapıp chrome://system adresindeki CLOUDREADY_HARDWARE_INFO bölümünü ziyaret ederek güncelleme filtrelemesi için Google'a gönderilen verileri ve Google ile veri paylaşmayı seçtiğiniz diğer örnekleri görebilirsiniz.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> işletim sisteminin Google ile paylaşabileceği veriler ve bu verilerin nasıl kullanıldığıyla ilgili daha fazla bilgi için g.co/xxxxx adresini ziyaret edebilirsiniz<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Tehlikeli dosyayı tut</translation>
 <translation id="6532101170117367231">Google Drive'a Kaydet</translation>
 <translation id="6532106788206463496">Değişiklikleri kaydet</translation>
@@ -6011,15 +6000,6 @@
 <translation id="7258192266780953209">Dönüşümler</translation>
 <translation id="7258225044283673131">Uygulama yanıt vermiyor. Uygulamayı kapatmak için "Uygulamayı kapat"ı seçin.</translation>
 <translation id="7262004276116528033">Bu oturum açma hizmeti, <ph name="SAML_DOMAIN" /> tarafından barındırılıyor.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Aşağıdaki sorun giderme adımlarını deneyin:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Cihazınızda HDD, SSD veya eMMC gibi çalışan bir dahili depolama olduğundan emin olun
-    <ph name="LIST_ITEM" />Dahili depolama cihazınızda 16 GB'ın üzerinde alan olup olmadığını kontrol edin
-    <ph name="LIST_ITEM" />Fiziksel olarak erişilebilir durumdaysa dahili depolamaya olan bağlantıyı kontrol edin
-    <ph name="LIST_ITEM" />Sertifikalı bir model kullandığınızdan emin olup modelin yükleme notlarını kontrol edin
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Daha fazla yardım almak için g.co/xxxxx adresini ziyaret edin<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Sanal makine yüklenemedi. Lütfen tekrar deneyin veya yöneticinizle iletişime geçin. Hata kodu: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Parmak izinizin tüm farklı noktalarını eklemek için parmağınızı kaldırıp dokundurmaya devam edin</translation>
 <translation id="7268127947535186412">Bu ayar, cihazın sahibi tarafından yönetilir.</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index e5e864a..af383de 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -2330,7 +2330,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{Пристрій <ph name="DEVICE_NAME" /> надсилає вам <ph name="ATTACHMENTS" />.}one{Пристрій <ph name="DEVICE_NAME" /> надсилає вам <ph name="ATTACHMENTS" />.}few{Пристрій <ph name="DEVICE_NAME" /> надсилає вам <ph name="ATTACHMENTS" />.}many{Пристрій <ph name="DEVICE_NAME" /> надсилає вам <ph name="ATTACHMENTS" />.}other{Пристрій <ph name="DEVICE_NAME" /> надсилає вам <ph name="ATTACHMENTS" />.}}</translation>
 <translation id="3364986687961713424">Від вашого адміністратора: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Використовуйте Ctrl або Alt</translation>
-<translation id="3367057768351048705">Сайти можуть використовувати файли cookie лише для перегляду ваших дій у веб-переглядачі на самих цих сайтах</translation>
 <translation id="3368922792935385530">Підключено</translation>
 <translation id="3369067987974711168">Показати більше дій для цього порту</translation>
 <translation id="3369624026883419694">-...</translation>
@@ -2971,8 +2970,6 @@
 <translation id="3979748722126423326">Увімкнути <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Пристрої поблизу бачитимуть назву "<ph name="DEVICE_NAME" />" упродовж <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">Введено недійсний тип збереження.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Сталася помилка. Не вдалося встановити <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Щоб дізнатися більше, перейдіть на сторінку g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Налаштуйте веб-переглядач, виконавши прості дії</translation>
 <translation id="3983400541576569538">Дані з деяких додатків може бути втрачено</translation>
 <translation id="3983586614702900908">пристрої від невідомого постачальника</translation>
@@ -3892,9 +3889,6 @@
 <translation id="4992984395680162305">Ці пристрої підключено за допомогою QR-коду.</translation>
 <translation id="4994474651455208930">Дозволити сайтам запитувати встановлення обробників протоколів за умовчанням.</translation>
 <translation id="4994754230098574403">Налаштування</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Перед реєстрацією потрібно очистити TPM, щоб ОС <ph name="DEVICE_OS" /> змогла керувати пристроєм.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ви також можете повністю вимкнути пристрій із модулем TPM. Ваші дані залишатимуться захищеними завдяки шифруванню програмного забезпечення, але певні функції безпеки (наприклад, сертифікати апаратного забезпечення) буде вимкнено.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Ви можете змінити параметри TPM. Для цього перезапустіть систему й увійдіть у налаштування BIOS/UEFI. Ці кроки можуть відрізнятися залежно від моделі пристрою. Щоб дізнатися більше, відкрийте документацію ОС <ph name="DEVICE_OS" /> на окремому пристрої, перш ніж перезапустити систему: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Віртуальну машину <ph name="VM_TYPE" /> не знайдено}=1{Знайдено 1 віртуальну машину <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}one{Знайдено {NUM_VMS} віртуальну машину <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}few{Знайдено {NUM_VMS} віртуальні машини <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}many{Знайдено {NUM_VMS} віртуальних машин <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Знайдено {NUM_VMS} віртуальної машини <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Немає з’єднання з Інтернетом.</translation>
 <translation id="4998430619171209993">Увімкнено</translation>
@@ -4012,7 +4006,6 @@
 <translation id="5127620150973591153">Ідентифікатор безпечного з'єднання: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Синхронізацію вимкнено</translation>
 <translation id="5127881134400491887">Керувати мережевими з’єднаннями</translation>
-<translation id="5128774403617662387">Перш ніж почати, переконайтеся, що ви створили резервну копію даних. Під час встановлення ОС <ph name="DEVICE_OS" /> буде перезаписано всі дані жорсткого диска. Докладніше: g.co/TBD.</translation>
 <translation id="512903556749061217">підключено</translation>
 <translation id="5130080518784460891">Етен</translation>
 <translation id="5130675701626084557">Не вдалося завантажити профіль. Повторіть спробу пізніше або зв'яжіться з оператором.</translation>
@@ -4528,7 +4521,6 @@
 <translation id="5659593005791499971">Ел. пошта</translation>
 <translation id="5659833766619490117">Цю сторінку неможливо перекласти</translation>
 <translation id="5662513737565158057">Налаштуйте роботу додатків Linux.</translation>
-<translation id="5667490069342183561">Компанія Google не несе відповідальності за втрату даних і не гарантує, що ОС <ph name="DEVICE_OS" /> працюватиме на несертифікованих моделях. Докладніше: g.co/TBD.</translation>
 <translation id="5667546120811588575">Налаштування Google Play…</translation>
 <translation id="5668351004957198136">Перевірку не пройдено</translation>
 <translation id="56702779821643359">Діліться файлами з людьми поруч. <ph name="LINK_BEGIN" />Докладніше<ph name="LINK_END" /></translation>
@@ -5340,9 +5332,6 @@
 <translation id="6528179044667508675">Не турбувати</translation>
 <translation id="652948702951888897">Історія Chrome</translation>
 <translation id="6530186581263215931">Ці налаштування застосовує адміністратор</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Щоб забезпечити найвищу якість роботи, <ph name="DEVICE_OS" /> збирає дані про пристрій і надає їх компанії Google, яка потім надає оновлення. Також ви можете дозволити компанії Google застосовувати ці дані в інших цілях, наприклад, щоб покращити використання й обслуговування пристрою "<ph name="DEVICE_OS" />".<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Щоб побачити, які дані ви надсилаєте для оновлення пристрою, а також якщо виникнуть інші запитання, пов’язані з наданням доступу до своїх даних компанії Google, перейдіть у розділ CLOUDREADY_HARDWARE_INFO в chrome://system.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Щоб дізнатися більше про те, які дані <ph name="DEVICE_OS" /> може надавати компанії Google і як вони використовуються, перейдіть у розділ g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Завантажити небезпечний файл</translation>
 <translation id="6532101170117367231">Зберегти на Google Диску</translation>
 <translation id="6532106788206463496">Зберегти зміни</translation>
@@ -6031,15 +6020,6 @@
 <translation id="7258192266780953209">Перетворення</translation>
 <translation id="7258225044283673131">Додаток не відповідає. Щоб закрити його, виберіть опцію "Примусово закрити".</translation>
 <translation id="7262004276116528033">Ця служба входу в обліковий запис зареєстрована в домені <ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Для вирішення проблеми виконайте подані нижче дії.
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Переконайтеся, що на пристрої є робоча внутрішня пам’ять, наприклад HDD-диск, SSD-диск або eMMC
-    <ph name="LIST_ITEM" />Переконайтеся, що внутрішня пам’ять пристрою більша ніж 16 ГБ
-    <ph name="LIST_ITEM" />Перевірте підключення до внутрішньої пам’яті, якщо це фізично можливо
-    <ph name="LIST_ITEM" />Переконайтеся, що ви використовуєте сертифіковану модель, і перегляньте примітки щодо встановлення
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Щоб дізнатися більше, перейдіть на сторінку g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Не вдалося встановити віртуальну машину. Повторіть спробу або зв'яжіться з адміністратором. Код помилки: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Піднімайте й знов опускайте палець, щоб повністю відсканувати відбиток</translation>
 <translation id="7268127947535186412">Цим налаштуванням керує власник пристрою.</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index d8e4aa3..7b1de27c 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -2311,7 +2311,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> آپ کے ساتھ <ph name="ATTACHMENTS" /> کا اشتراک کر رہا ہے۔}other{<ph name="DEVICE_NAME" /> آپ کے ساتھ <ph name="ATTACHMENTS" /> کا اشتراک کر رہا ہے۔}}</translation>
 <translation id="3364986687961713424">آپ کے منتظم کی جانب سے: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">‏Ctrl یا Alt کا استعمال کریں</translation>
-<translation id="3367057768351048705">سائٹس صرف آپ کی کوکیز کو از خود سائٹ پر آپ کی براؤزنگ سرگرمی دیکھنے کیلئے استعمال کر سکتی ہیں</translation>
 <translation id="3368922792935385530">منسلک</translation>
 <translation id="3369067987974711168">اس پورٹ کے ليے مزید کارروائیاں دکھائیں</translation>
 <translation id="3369624026883419694">میزبان کو حل کیا جا رہا ہے…</translation>
@@ -2952,8 +2951,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> کو فعال کریں</translation>
 <translation id="3981058120448670012"><ph name="REMAINING_TIME" /> کے لئے <ph name="DEVICE_NAME" /> کے بطور قریبی آلات کے لئے مرئی ہے...</translation>
 <translation id="3981760180856053153">محفوظ کرنے کی غلط قسم درج کی گئی۔</translation>
-<translation id="3981828803725658123">‏<ph name="BEGIN_PARAGRAPH1" />کچھ غلط ہو گیا اور <ph name="DEVICE_OS" /> انسٹال نہیں کیا جا سکا۔<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />مزید مدد کے ليے، ملاحظہ کریں: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">اپنے براؤزر کو چند آسان مراحل میں سیٹ کریں</translation>
 <translation id="3983400541576569538">کچھ ایپس کا ڈیٹا غائب ہو سکتا ہے</translation>
 <translation id="3983586614702900908">ایک نامعلوم وینڈر کی جانب سے آلات</translation>
@@ -3872,9 +3869,6 @@
 <translation id="4992984395680162305">‏ان آلات کو QR کوڈ اسکین کر کے لنک کیا گیا۔</translation>
 <translation id="4994474651455208930">سائٹس کو پروٹوکولز کیلئے ڈیفالٹ ہینڈلرز بننے کیلئے پوچھنے کی اجازت دیں</translation>
 <translation id="4994754230098574403">ترتیب دیا جا رہا ہے</translation>
-<translation id="4995131849631312693">‏<ph name="BEGIN_PARAGRAPH1" />اندراج کرنے سے پہلے آپ کو TPM صاف کرنے کی ضرورت ہے تاکہ <ph name="DEVICE_OS" /> آلے کی ملکیت لے سکے۔<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />آپ TPM آلے کو مکمل طور پر آف بھی کر سکتے ہیں۔ آپ کا ڈیٹا اب بھی سافٹ ویئر مرموز کاری کے ساتھ محفوظ طریقے سے اسٹور کیا جائے گا لیکن کچھ حفاظتی خصوصیات جیسے ہارڈ ویئر کے ذریعے تعاون یافتہ سرٹیفیکیٹس غیر فعال ہو جائیں گے۔<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />آپ سسٹم کی BIOS/UEFI ترتیبات کو ریبوٹ کر کے اور درج کر کے اپنی TPM کی ترتیبات کو تبدیل کرسکتے ہیں۔ آلے کے ماڈل کی بنیاد پر اقدامات مختلف ہوتے ہیں۔ مزید معلومات کیلئے، ریبوٹ کرنے سے پہلے <ph name="DEVICE_OS" /> دستاویزات کو ایک علیحدہ آلے پر کھولیں: [URL کا لنک]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{‏کوئی <ph name="VM_TYPE" /> VMs نہیں ملی}=1{‏1 <ph name="VM_TYPE" /> VM ملی: <ph name="VM_NAME_LIST" />}other{‏{NUM_VMS} <ph name="VM_TYPE" /> VMs مل گئیں: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">کوئی انٹرنیٹ کنکشن نہیں ہے۔</translation>
 <translation id="4998430619171209993">آن</translation>
@@ -3992,7 +3986,6 @@
 <translation id="5127620150973591153">‏محفوظ کنکشن ID: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">‏Sync آف ہے</translation>
 <translation id="5127881134400491887">نیٹ ورک کنکشنز کا نظم کریں</translation>
-<translation id="5128774403617662387">‏شروع کرنے سے پہلے ، یقینی بنائیں کہ آپ کے پاس اپنے ڈیٹا کا بیک اپ ہے۔ <ph name="DEVICE_OS" /> کو انسٹال کرنے سے آپ کی ہارڈ ڈرائیو اوور رائٹ ہو جائے گی۔ g.co/TBD پر مزید جانیں۔</translation>
 <translation id="512903556749061217">منسلک</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">پروفائل ڈاؤن لوڈ نہیں کی جا سکی۔ براہ کرم بعد میں دوبارہ کوشش کریں یا مدد کے لئے کیرئیر سے رابطہ کریں۔</translation>
@@ -4507,7 +4500,6 @@
 <translation id="5659593005791499971">ای میل</translation>
 <translation id="5659833766619490117">اس صفحہ کا ترجمہ نہیں کیا جا سکا</translation>
 <translation id="5662513737565158057">‏Linux ایپس کے کام کرنے کا طریقہ تبدیل کریں۔</translation>
-<translation id="5667490069342183561">‏Google کسی بھی ڈیٹا سے محروم ہونے کا ذمہ دار نہیں ہے اور ممکن ہے <ph name="DEVICE_OS" /> غیر تصدیق شدہ ماڈلز پر کام نہ کرے۔ g.co/TBD پر مزید جانیں۔</translation>
 <translation id="5667546120811588575">‏Google Play کو سیٹ کیا جا رہا ہے...</translation>
 <translation id="5668351004957198136">ناکام</translation>
 <translation id="56702779821643359">اپنے آس پاس کے لوگوں کے ساتھ فائلز کا اشتراک کریں۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation>
@@ -5319,9 +5311,6 @@
 <translation id="6528179044667508675">ڈسٹرب نہ کریں</translation>
 <translation id="652948702951888897">‏Chrome کی سرگزشت</translation>
 <translation id="6530186581263215931">یہ ترتیبات آپ کے منتظم کے ذریعہ نافذ کی جاتی ہیں</translation>
-<translation id="653031671361866334">‏<ph name="BEGIN_PARAGRAPH1" />بہترین تجربہ فراہم کرنے کے لیے، <ph name="DEVICE_OS" /> آلات کے بارے میں ہارڈویئر ڈیٹا اکٹھا کرتا ہے اور Google کے ساتھ اس کا اشتراک کرتا ہے تاکہ یہ تعین کیا جا سکے کہ کون سی اپ ڈیٹس ڈیلیور کی جائیں۔ اختیاری طور پر، آپ Google کو یہ ڈیٹا اضافی مقاصد کے لیے استعمال کرنے کی اجازت دے سکتے ہیں جیسے کہ سپورٹ اور <ph name="DEVICE_OS" /> کے تجربے اور سروس میں بہتری۔<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />آپ اس آلہ پر لاگ ان کر سکتے ہیں اور chrome://system میں CLOUDREADY_HARDWARE_INFO سیکشن ملاحظہ کر سکتے ہیں تاکہ اپ ڈیٹ فلٹرنگ کے لیے Google کو بھیجے گئے ڈیٹا کو دیکھیں، ساتھ ہی ایسی کوئی دوسری مثالیں جہاں آپ Google کے ساتھ ڈیٹا کا اشتراک کرنے کا انتخاب کرتے ہیں۔<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />ڈیٹا کے بارے میں مزید تفصیلات کیلئے <ph name="DEVICE_OS" /> Google کے ساتھ اشتراک کر سکتا ہے، اور اس کے استعمال کے طریقے کیلئے g.co/xxxxx ملاحظہ کریں<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">خطرناک فائل رکھیں</translation>
 <translation id="6532101170117367231">‏Google Drive میں محفوظ کریں</translation>
 <translation id="6532106788206463496">تبدیلیاں محفوظ کریں</translation>
@@ -6010,15 +5999,6 @@
 <translation id="7258192266780953209">تبدیلیاں</translation>
 <translation id="7258225044283673131">ایپلیکیشن جواب نہیں دے رہی ہے۔ ایپ بند کرنے کیلئے، "زبردستی بند کریں" منتخب کریں۔</translation>
 <translation id="7262004276116528033">اس سائن ان سروس کی میزبانی <ph name="SAML_DOMAIN" />  کرتا ہے</translation>
-<translation id="7264564921322372728">‏<ph name="BEGIN_PARAGRAPH1" />ان ٹربل شوٹنگ اقدامات کو آزمائیں:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />یقینی بنائیں کہ آپ کے آلے میں داخلی اسٹوریج کام کر رہی ہے، جیسے HDD، ‏SSD یا eMMC
-    <ph name="LIST_ITEM" />چیک کریں کہ آپ کے آلے میں داخلی اسٹوریج 16GB سے زیادہ ہے
-    <ph name="LIST_ITEM" />اندرونی اسٹوریج سے کنکشن چیک کریں اگر اس کی طبعی لحاظ سے رسائی حاصل کی جا سکتی ہے
-    <ph name="LIST_ITEM" />یقینی بنائیں کہ آپ ایک تصدیق شدہ ماڈل استعمال کر رہے ہیں اور انسٹال کی نوٹس چیک کریں
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />مزید مدد کیلئے، ملاحظہ کریں: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">ورچوئل مشین کو انسٹال نہیں کیا جا سکا۔ براہ کرم دوبارہ کوشش کریں، یا اپنے منتظم سے رابطہ کریں۔ خرابی کا کوڈ: <ph name="ERROR_CODE" />۔</translation>
 <translation id="7267875682732693301">اپنے فنگر پرنٹ کے مختلف حصوں کو شامل کرنے کیلئے اپنی انگلی کو اٹھاتے رہیں</translation>
 <translation id="7268127947535186412">یہ ترتیب آلہ کے مالک کے زیر انتظام ہے۔</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index 6542297..691895547 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -2314,7 +2314,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> sizga <ph name="ATTACHMENTS" /> yubormoqda.}other{<ph name="DEVICE_NAME" /> sizga <ph name="ATTACHMENTS" /> yubormoqda.}}</translation>
 <translation id="3364986687961713424">Administratordan: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl yoki Alt tugmasini bosing</translation>
-<translation id="3367057768351048705">Saytlar cookie fayllarni faqatgina u saytni kezish vaqtingizda koʻradi</translation>
 <translation id="3368922792935385530">Ulangan</translation>
 <translation id="3369067987974711168">Bu port uchun boshqa amallar</translation>
 <translation id="3369624026883419694">Host aniqlanmoqda...</translation>
@@ -2955,8 +2954,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" />‘ni yoqish</translation>
 <translation id="3981058120448670012">Boshqalarga <ph name="REMAINING_TIME" /> vaqtda <ph name="DEVICE_NAME" /> sifatida koʻrinadi...</translation>
 <translation id="3981760180856053153">Saqlash uchun yaroqsiz format kiritildi</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Qandaydir xatolik yuz berdi. <ph name="DEVICE_OS" /> tizimini oʻrnatish imkonsiz.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Yordam olish uchun g.co/xxxxx sahifasiga tashrif buyuring.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Brauzerni oddiy bir nechta qadam bilan sozlang</translation>
 <translation id="3983400541576569538">Ayrim ilova maʼlumotlari tozalanishi mumkin</translation>
 <translation id="3983586614702900908">noma’lum ishlab chiqaruvchining qurilmalari</translation>
@@ -3876,9 +3873,6 @@
 <translation id="4992984395680162305">Bu qurilmalar QR kodni skanerlash orqali ulangan.</translation>
 <translation id="4994474651455208930">Protokollarga ishlov beruvchilarni o‘rnatish so‘rovlariga ruxsat berish</translation>
 <translation id="4994754230098574403">Sozlanmoqda</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" /><ph name="DEVICE_OS" /> qurilmaga egalik qilishi uchun roʻyxatdan oʻtishdan oldin TPM tozalanishi kerak.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Bundan tashqari, TPM qurilmasini butunlay oʻchirib qoʻyishingiz mumkin. Maʼlumotlaringiz dasturiy shifrlash yordamida xavfsiz saqlanadi, lekin ayrim xavfsizlik funksiyalari, masalan, qurilma bilan ishlaydigan sertifikatlar oʻchiriladi. <ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Qayta ishga tushirish va BIOS/UEFI tizim sozlamalariga kirish orqali TPM sozlamalarini oʻzgartirish mumkin. Bosqichlar qurilma modeliga qarab oʻzgaradi. Batafsil axborot olish uchun qayta ishga tushirishdan oldin boshqa qurilmada <ph name="DEVICE_OS" /> hujjatlarini oching: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{<ph name="VM_TYPE" /> virtual mashinalari topilmadi}=1{1 ta <ph name="VM_TYPE" /> VM topildi: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} ta <ph name="VM_TYPE" /> VM topildi: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Internet aloqasi yo‘q.</translation>
 <translation id="4998430619171209993">Yoniq</translation>
@@ -3996,7 +3990,6 @@
 <translation id="5127620150973591153">Xavfsiz ulanish identifikatori: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Sinxronizatsiya o‘chiq</translation>
 <translation id="5127881134400491887">Tarmoq ulanishlari boshqaruvi</translation>
-<translation id="5128774403617662387">Boshlashdan oldin maʼlumotlaringizni zaxiralang. <ph name="DEVICE_OS" /> oʻrnatilsa, qattiq diskdagi barcha maʼlumotlar tozalanadi. Batafsil: g.co/TBD.</translation>
 <translation id="512903556749061217">biriktirilgan</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Profilni yuklab olinmadi. Keyinroq qayta urining yoki yordam olish uchun aloqa operatoriga murojaat qiling.</translation>
@@ -4512,7 +4505,6 @@
 <translation id="5659593005791499971">Email</translation>
 <translation id="5659833766619490117">Bu sahifa tarjima qilinmadi</translation>
 <translation id="5662513737565158057">Linux ilovalari qanday ishlashini sozlash.</translation>
-<translation id="5667490069342183561">Google maʼlumotlar yoʻqolish uchun javobgar emas va <ph name="DEVICE_OS" /> sertifikatlanmagan modellarda ishlamasligi mumkin. Batafsil: g.co/TBD.</translation>
 <translation id="5667546120811588575">Google Play sozlanmoqda</translation>
 <translation id="5668351004957198136">Muvaffaqiyatsiz</translation>
 <translation id="56702779821643359">Atrofdagi odamlarga fayllarni ulashing. <ph name="LINK_BEGIN" />Batafsil<ph name="LINK_END" /></translation>
@@ -5324,9 +5316,6 @@
 <translation id="6528179044667508675">Bezovta qilinmasin</translation>
 <translation id="652948702951888897">Chrome tarixi</translation>
 <translation id="6530186581263215931">Bu sozlalamalar administrator tomonidan belgilanadi</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Xizmat sifatini oshirish uchun <ph name="DEVICE_OS" /> qurilmaga oid maʼlumotlarni jamlaydi va qanday yangilanishni taqdim qilishni aniqlashi uchun ularni Googlega yuboradi. Istasangiz, Googlega bu maʼlumotlardan boshqa maqsadlarda, masalan, <ph name="DEVICE_OS" /> ishlashi va xizmat sifatini oshirish<ph name="END_PARAGRAPH1" /> uchun foydalanishiga ruxsat berishingiz mumkin.
-    <ph name="BEGIN_PARAGRAPH2" />Bu qurilmaga kirishingiz va chrome://system sahifasidagi CLOUDREADY_HARDWARE_INFO qismiga tashrif buyurib, yangilanishni filtrlash uchun Googlega yuborilgan maʼlumotlarni, shuningdek, Googlega ulashilgan boshqa holatlarni ham koʻrishingiz mumkin.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> maʼlumotlarini Googlega ulashish va ulardan qanday maqsadlarda foydalanishi haqida batafsil axborot olish uchun g.co/xxxxx saytiga tashrif buyuring<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Xavfli fayl yuklab olinsin</translation>
 <translation id="6532101170117367231">Google Drive omboriga saqlash</translation>
 <translation id="6532106788206463496">Oʻzgarishlarni saqlash</translation>
@@ -6016,15 +6005,6 @@
 <translation id="7258192266780953209">Tranfsofrmatsiyalar</translation>
 <translation id="7258225044283673131">Ilova javob bermayapti. Ilovani “Majburiy toʻxtatish” orqali yoping.</translation>
 <translation id="7262004276116528033">Tizimga kirish xizmati <ph name="SAML_DOMAIN" /> domenida joylashgan.</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Quyidagi usullar orqali muammoni hal qilishga urining:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Qurilmangizda ishlaydigan tashqi xotira HDD, SSD yoki eMMC boʻlishi kerak
-    <ph name="LIST_ITEM" />Tashqi xotira 16 GB dan katta boʻlishi kerak
-    <ph name="LIST_ITEM" />Imkoni boʻlsa, tashqi xotiraga ulanishni tekshiring
-    <ph name="LIST_ITEM" />Sertifikatlagan modeldan foydalanishingiz va oʻrnatishga oid qaydlar bilan tanishishingiz kerak
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Batafsil axborot uchun: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Virtual mashina oʻrnatilmadi Qayta urining yoki administratorga murojaat qiling. Xatolik kodi: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Barmoq izingizni butunlay skanerlash uchun uni biroz suring</translation>
 <translation id="7268127947535186412">Bu sozlamani qurilma egasi boshqaradi.</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index e8b9cb1..2db57b94 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -2327,7 +2327,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> đang chia sẻ <ph name="ATTACHMENTS" /> với bạn.}other{<ph name="DEVICE_NAME" /> đang chia sẻ <ph name="ATTACHMENTS" /> với bạn.}}</translation>
 <translation id="3364986687961713424">Thông báo của quản trị viên: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Sử dụng phím Ctrl hoặc Alt</translation>
-<translation id="3367057768351048705">Các trang web chỉ có thể dùng cookie để xem hoạt động duyệt web của bạn trên trang web của riêng họ</translation>
 <translation id="3368922792935385530">Đã kết nối</translation>
 <translation id="3369067987974711168">Hiện thêm thao tác đối với cổng này</translation>
 <translation id="3369624026883419694">Đang phân giải máy chủ...</translation>
@@ -2968,8 +2967,6 @@
 <translation id="3979748722126423326">Bật <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Hiển thị với các thiết bị ở gần dưới tên <ph name="DEVICE_NAME" /> trong <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Loại lưu không hợp lệ được nhập.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Đã xảy ra lỗi và không thể cài đặt <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Để được trợ giúp thêm, hãy truy cập: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">Thiết lập trình duyệt qua một số bước đơn giản</translation>
 <translation id="3983400541576569538">Dữ liệu của một số ứng dụng có thể sẽ mất</translation>
 <translation id="3983586614702900908">thiết bị từ nhà cung cấp không xác định</translation>
@@ -3781,7 +3778,7 @@
 <translation id="4878653975845355462">Quản trị viên đã tắt các nền tùy chỉnh</translation>
 <translation id="4878718769565915065">Không thêm được vân tay vào khóa bảo mật này</translation>
 <translation id="4879491255372875719">Tự động (mặc định)</translation>
-<translation id="4880827082731008257">Lịch sử tìm kiếm</translation>
+<translation id="4880827082731008257">Nhật ký tìm kiếm</translation>
 <translation id="4881685975363383806">Không nhắc tôi vào lần tới</translation>
 <translation id="4881695831933465202">Mở</translation>
 <translation id="4882312758060467256">Có quyền truy cập vào trang web này</translation>
@@ -3889,9 +3886,6 @@
 <translation id="4992984395680162305">Các thiết bị này được liên kết bằng cách quét mã QR</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="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Trước khi đăng ký, bạn cần xóa TPM để <ph name="DEVICE_OS" /> có thể nắm quyền điều khiển thiết bị.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Bạn cũng có thể tắt hoàn toàn đơn vị xử lý TPM trên thiết bị. Dữ liệu của bạn sẽ vẫn được lưu trữ an toàn bằng tính năng mã hóa phần mềm, nhưng một số tính năng bảo mật nhất định như chứng chỉ dựa trên phần cứng sẽ bị vô hiệu hóa.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Bạn có thể thay đổi chế độ cài đặt TPM bằng cách khởi động lại và vào phần cài đặt BIOS/UEFI của hệ thống. Các bước thực hiện khác nhau tùy theo kiểu thiết bị. Để biết thêm thông tin, hãy mở tài liệu <ph name="DEVICE_OS" /> trên một thiết bị khác trước khi bạn khởi động lại: [URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Không tìm thấy máy ảo <ph name="VM_TYPE" />}=1{Đã tìm thấy 1 máy ảo <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Đã tìm thấy {NUM_VMS} máy ảo <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Không có kết nối Internet.</translation>
 <translation id="4998430619171209993">Đang bật</translation>
@@ -4009,7 +4003,6 @@
 <translation id="5127620150973591153">Mã kết nối bảo mật: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Tính năng đồng bộ hóa đang tắt</translation>
 <translation id="5127881134400491887">Quản lý kết nối mạng</translation>
-<translation id="5128774403617662387">Trước khi bắt đầu, hãy đảm bảo rằng bạn có một bản sao lưu dữ liệu của mình. Quá trình cài đặt <ph name="DEVICE_OS" /> sẽ ghi đè lên ổ đĩa cứng của bạn. Tìm hiểu thêm tại g.co/TBD.</translation>
 <translation id="512903556749061217">được đính kèm</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">Không thể tải hồ sơ xuống. Vui lòng thử lại sau hoặc liên hệ với nhà mạng để được trợ giúp.</translation>
@@ -4525,7 +4518,6 @@
 <translation id="5659593005791499971">Email</translation>
 <translation id="5659833766619490117">Không thể dịch trang này</translation>
 <translation id="5662513737565158057">Thay đổi cách hoạt động của ứng dụng Linux.</translation>
-<translation id="5667490069342183561">Google không chịu trách nhiệm về mọi dữ liệu mất mát và <ph name="DEVICE_OS" /> có thể không hoạt động trên các kiểu thiết bị chưa được chứng nhận. Tìm hiểu thêm tại g.co/TBD.</translation>
 <translation id="5667546120811588575">Đang thiết lập Google Play...</translation>
 <translation id="5668351004957198136">Không đạt</translation>
 <translation id="56702779821643359">Chia sẻ tệp với những người xung quanh bạn. <ph name="LINK_BEGIN" />Tìm hiểu thêm<ph name="LINK_END" /></translation>
@@ -5337,9 +5329,6 @@
 <translation id="6528179044667508675">Ko làm phiền</translation>
 <translation id="652948702951888897">Lịch sử Chrome</translation>
 <translation id="6530186581263215931">Các tùy chọn cài đặt này được quản trị viên của bạn yêu cầu buộc phải tuân theo</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Để mang lại trải nghiệm tốt nhất, <ph name="DEVICE_OS" /> sẽ thu thập dữ liệu phần cứng của thiết bị và chia sẻ dữ liệu đó với Google để xác định bản cập nhật nào sẽ được phân phối. Bạn có thể tuỳ ý cho phép Google dùng dữ liệu này cho các mục đích bổ sung như hỗ trợ và cải thiện trải nghiệm cùng chất lượng dịch vụ của <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Bạn có thể đăng nhập trên thiết bị này và truy cập vào mục CLOUDREADY_HARDWARE_INFO trong chrome://system để xem dữ liệu được gửi tới Google cho bộ lọc cập nhật, cũng như bất kỳ trường hợp nào khác mà bạn chọn chia sẻ dữ liệu với Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Để biết thêm thông tin chi tiết về dữ liệu mà <ph name="DEVICE_OS" /> có thể chia sẻ với Google và cách dữ liệu đó được sử dụng, hãy truy cập g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Giữ tệp nguy hiểm</translation>
 <translation id="6532101170117367231">Lưu vào Google Drive</translation>
 <translation id="6532106788206463496">Lưu thay đổi</translation>
@@ -6028,15 +6017,6 @@
 <translation id="7258192266780953209">Chuyển đổi</translation>
 <translation id="7258225044283673131">Ứng dụng không phản hồi. Hãy chọn "Buộc đóng" để đóng ứng dụng.</translation>
 <translation id="7262004276116528033">Dịch vụ đăng nhập này do <ph name="SAML_DOMAIN" /> lưu trữ</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Hãy thử các bước khắc phục sự cố sau:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Đảm bảo rằng thiết bị của bạn có bộ nhớ trong đang hoạt động như ổ đĩa cứng HDD, SSD (ổ đĩa thể rắn) hoặc eMMC
-    <ph name="LIST_ITEM" />Kiểm tra xem bộ nhớ trong thiết bị của bạn có lớn hơn 16GB không
-    <ph name="LIST_ITEM" />Kiểm tra kết nối với bộ nhớ trong, nếu có thể tiếp cận trực tiếp
-    <ph name="LIST_ITEM" />Đảm bảo rằng bạn đang dùng kiểu thiết bị được chứng nhận và kiểm tra ghi chú cài đặt
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Để được trợ giúp thêm, hãy truy cập: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Không cài đặt được máy ảo này. Hãy thử lại hoặc liên hệ với quản trị viên. Mã lỗi: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Tiếp tục nhấc ngón tay để thêm các phần khác của vân tay</translation>
 <translation id="7268127947535186412">Tùy chọn cài đặt này do chủ sở hữu thiết bị quản lý.</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 38665f7..c6a5b9b 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -2308,7 +2308,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{“<ph name="DEVICE_NAME" />”与您分享了 <ph name="ATTACHMENTS" />。}other{“<ph name="DEVICE_NAME" />”与您分享了 <ph name="ATTACHMENTS" />。}}</translation>
 <translation id="3364986687961713424">来自您的管理员:<ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">使用 Ctrl 键或 Alt 键</translation>
-<translation id="3367057768351048705">网站只能使用 Cookie 查看您在他们自己网站上的浏览活动</translation>
 <translation id="3368922792935385530">已连接</translation>
 <translation id="3369067987974711168">显示可对此端口执行的更多操作</translation>
 <translation id="3369624026883419694">正在解析主机...</translation>
@@ -2948,8 +2947,6 @@
 <translation id="3979748722126423326">启用<ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">向附近的设备显示为“<ph name="DEVICE_NAME" />”,剩余时间为 <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">输入的保存类型无效。</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />出了点问题,无法安装 <ph name="DEVICE_OS" />。<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />如需更多帮助,请访问:g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">只需执行几个简单的步骤,即可完成浏览器设置</translation>
 <translation id="3983400541576569538">某些应用中的数据可能会丢失</translation>
 <translation id="3983586614702900908">来自未知供应商的设备</translation>
@@ -3868,9 +3865,6 @@
 <translation id="4992984395680162305">这些设备是通过扫描二维码关联的。</translation>
 <translation id="4994474651455208930">允许网站要求成为协议的默认处理程序</translation>
 <translation id="4994754230098574403">正在设置</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />注册之前,您需要清除 TPM,以使 <ph name="DEVICE_OS" /> 拥有对设备的所有权。<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />您还可彻底关闭 TPM 设备。您的数据仍会通过软件加密技术得到妥善存储,但某些安全功能(例如由硬件支持的证书)将被停用。<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />若要更改您的 TPM 设置,请重新启动并进入系统 BIOS/UEFI 设置。具体步骤因设备型号而异。如需了解详情,请于重新启动之前在另外一部设备上打开 <ph name="DEVICE_OS" /> 2.0 文档:[网址链接]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{找不到 <ph name="VM_TYPE" /> 虚拟机}=1{找到了 1 个 <ph name="VM_TYPE" /> 虚拟机:<ph name="VM_NAME_LIST" />}other{找到了 {NUM_VMS} 个 <ph name="VM_TYPE" /> 虚拟机:<ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">未连接到互联网。</translation>
 <translation id="4998430619171209993">已开启</translation>
@@ -3988,7 +3982,6 @@
 <translation id="5127620150973591153">安全配对号码:<ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">同步功能已关闭</translation>
 <translation id="5127881134400491887">管理网络连接</translation>
-<translation id="5128774403617662387">在开始之前,请确保已备份数据。安装 <ph name="DEVICE_OS" /> 会覆盖您的硬盘。如需了解详情,请访问 g.co/TBD。</translation>
 <translation id="512903556749061217">已连接</translation>
 <translation id="5130080518784460891">Eten</translation>
 <translation id="5130675701626084557">无法下载配置文件。请稍后再试,或向运营商求助。</translation>
@@ -4504,7 +4497,6 @@
 <translation id="5659593005791499971">电子邮件</translation>
 <translation id="5659833766619490117">无法翻译此网页</translation>
 <translation id="5662513737565158057">更改 Linux 应用的运行方式。</translation>
-<translation id="5667490069342183561">Google 不对任何数据损失承担责任,<ph name="DEVICE_OS" /> 在未经认证的型号上可能无法正常运行。如需了解详情,请访问 g.co/TBD。</translation>
 <translation id="5667546120811588575">正在设置 Google Play…</translation>
 <translation id="5668351004957198136">失败</translation>
 <translation id="56702779821643359">与附近的人分享文件。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation>
@@ -5316,9 +5308,6 @@
 <translation id="6528179044667508675">请勿打扰</translation>
 <translation id="652948702951888897">Chrome 历史记录</translation>
 <translation id="6530186581263215931">这些设置是由您的管理员强制指定的</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />为了提供最佳体验,<ph name="DEVICE_OS" /> 会收集与设备有关的硬件数据并将其分享给 Google 以确定应提供哪些更新。您也可允许 Google 将这些数据用于其他用途,例如提供支持以及改进 <ph name="DEVICE_OS" /> 体验和服务。<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />您可在此设备上登录,然后访问 chrome://system 中的 CLOUDREADY_HARDWARE_INFO 部分,以查看向 Google 发送的用于更新过滤机制的数据,以及您选择与 Google 分享数据的所有其他情形。<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />如需详细了解 <ph name="DEVICE_OS" /> 可能会与 Google 分享的数据及其使用方式,请访问 g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">保留危险文件</translation>
 <translation id="6532101170117367231">保存到 Google 云端硬盘</translation>
 <translation id="6532106788206463496">保存更改</translation>
@@ -6007,15 +5996,6 @@
 <translation id="7258192266780953209">转换</translation>
 <translation id="7258225044283673131">此应用无响应。请选择“强制关闭”以关闭此应用。</translation>
 <translation id="7262004276116528033">此登录服务由 <ph name="SAML_DOMAIN" /> 托管</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />请尝试执行以下问题排查步骤:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />确保您的设备包含正常运行的内部存储设备,例如 HDD、SSD 或 eMMC
-    <ph name="LIST_ITEM" />确认您的内部存储设备的空间大于 16GB
-    <ph name="LIST_ITEM" />检查与内部存储设备的连接(如果确实可以查看)
-    <ph name="LIST_ITEM" />确保您使用的是经过认证的型号并查看安装说明
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />如需更多帮助,请访问 g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">无法安装此虚拟机。请重试,或与您的管理员联系。错误代码:<ph name="ERROR_CODE" />。</translation>
 <translation id="7267875682732693301">不时地移开手指,以便传感器更完整地记录您的指纹</translation>
 <translation id="7268127947535186412">此设置由设备所有者管理。</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 6db9e42..75ad93e 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -2326,7 +2326,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{「<ph name="DEVICE_NAME" />」現在與您分享 <ph name="ATTACHMENTS" />。}other{「<ph name="DEVICE_NAME" />」現在與您分享 <ph name="ATTACHMENTS" />。}}</translation>
 <translation id="3364986687961713424">來自管理員的訊息:<ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">使用 Ctrl 或 Alt 鍵</translation>
-<translation id="3367057768351048705">網站只能使用 Cookie 查看您在該網站的瀏覽活動</translation>
 <translation id="3368922792935385530">已連線</translation>
 <translation id="3369067987974711168">顯示呢個連接埠嘅更多操作</translation>
 <translation id="3369624026883419694">正在解析主機…</translation>
@@ -2967,8 +2966,6 @@
 <translation id="3979748722126423326">啟用 <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">以「<ph name="DEVICE_NAME" />」向附近的裝置顯示 <ph name="REMAINING_TIME" />…</translation>
 <translation id="3981760180856053153">輸入的儲存類型無效。</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />發生問題,系統無法安裝 <ph name="DEVICE_OS" />。<ph name="END_PARAGRAPH1" />
-    如需詳細說明,請瀏覽:<ph name="BEGIN_PARAGRAPH2" />g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">只需幾個簡單步驟,便可以完成瀏覽器設定</translation>
 <translation id="3983400541576569538">部分應用程式的資料可能會遺失</translation>
 <translation id="3983586614702900908">來自未知供應商的裝置</translation>
@@ -3888,10 +3885,6 @@
 <translation id="4992984395680162305">這些是透過掃瞄 QR 碼所連結的裝置</translation>
 <translation id="4994474651455208930">允許網站要求成為通訊協定的預設處理常式</translation>
 <translation id="4994754230098574403">正在設定</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />在註冊裝置前,您需要清除 TPM,<ph name="DEVICE_OS" /> 才能取得裝置的擁有權。<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />您亦可完全關閉 TPM 裝置。系統仍會透過軟件加密功能安全儲存您的資料,但會停用硬件支援憑證等特定安全性功能。<ph name="END_PARAGRAPH2" />
-    
-<ph name="BEGIN_PARAGRAPH3" />如要變更 TPM 設定,請重新啟動並進入系統的 BIOS/UEFI 設定。操作步驟根據裝置型號而有所不同。如需更多資料,請在重新啟動前使用其他裝置開啟 <ph name="DEVICE_OS" /> 文件:[URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{找不到 <ph name="VM_TYPE" /> 虛擬機器}=1{已找到 <ph name="VM_TYPE" /> 個 <ph name="VM_NAME_LIST" /> 虛擬機器:}other{已找到 {NUM_VMS} 個 <ph name="VM_TYPE" /> 虛擬機器:<ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">沒有互聯網連線。</translation>
 <translation id="4998430619171209993">開啟</translation>
@@ -4009,7 +4002,6 @@
 <translation id="5127620150973591153">安全連線 ID:<ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">同步處理已停用</translation>
 <translation id="5127881134400491887">管理網絡連線</translation>
-<translation id="5128774403617662387">開始操作前,請確認資料已備份。安裝 <ph name="DEVICE_OS" /> 會覆寫硬碟的資料。詳情請參閱:g.co/TBD。</translation>
 <translation id="512903556749061217">已附加</translation>
 <translation id="5130080518784460891">倚天</translation>
 <translation id="5130675701626084557">無法下載設定檔。請稍候再試,或向流動網絡供應商尋求協助。</translation>
@@ -4525,7 +4517,6 @@
 <translation id="5659593005791499971">電郵</translation>
 <translation id="5659833766619490117">無法翻譯此網頁的內容</translation>
 <translation id="5662513737565158057">變更 Linux 應用程式的運作方式。</translation>
-<translation id="5667490069342183561">Google 對任何資料遺失概不負責,而且 <ph name="DEVICE_OS" /> 可能不適用於未通過認證的型號。詳情請參閱:g.co/TBD。</translation>
 <translation id="5667546120811588575">正在設定 Google Play…</translation>
 <translation id="5668351004957198136">未通過</translation>
 <translation id="56702779821643359">與附近的人分享檔案。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
@@ -5337,9 +5328,6 @@
 <translation id="6528179044667508675">請勿騷擾</translation>
 <translation id="652948702951888897">Chrome 記錄</translation>
 <translation id="6530186581263215931">這些設定由管理員執行</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />為提供最佳體驗,<ph name="DEVICE_OS" /> 會收集有關裝置的硬件資料並與 Google 分享,以判斷要提供哪些更新內容。您可選擇是否允許 Google 將這些資料用於其他用途,例如支援和改善 <ph name="DEVICE_OS" /> 體驗和服務。<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />您可在此裝置上登入並前往 chrome://system 中的 CLOUDREADY_HARDWARE_INFO 部分,以查看傳送至 Google 進行更新篩選的資料,以及其他您選擇與 Google 分享資料的情況。<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />如要進一步瞭解 <ph name="DEVICE_OS" /> 可能與 Google 分享的資料,以及這些資料的用途,請前往 g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">保留不安全的檔案</translation>
 <translation id="6532101170117367231">儲存至 Google 雲端硬碟</translation>
 <translation id="6532106788206463496">儲存變更</translation>
@@ -6028,15 +6016,6 @@
 <translation id="7258192266780953209">變形</translation>
 <translation id="7258225044283673131">應用程式沒有回應。選取「強制關閉」即可關閉應用程式。</translation>
 <translation id="7262004276116528033">此登入服務是由 <ph name="SAML_DOMAIN" /> 代管</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />請嘗試執行以下解決疑難步驟:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />確保裝置含有可用的內部儲存空間,例如 HDD、SSD 或 eMMC
-    <ph name="LIST_ITEM" />確認裝置內部儲存空間大於 16 GB
-    <ph name="LIST_ITEM" />檢查內部儲存空間的連接狀態 (如果支援實體存取方式)
-    <ph name="LIST_ITEM" />務必使用通過認證的型號,並查看安裝注意事項
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />如需詳細說明,請前往:g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">無法安裝虛擬機器。請再試一次,或聯絡您的管理員。錯誤代碼:<ph name="ERROR_CODE" />。</translation>
 <translation id="7267875682732693301">覆按壓指紋感應器,以建立完整的指紋檔案</translation>
 <translation id="7268127947535186412">此設定由裝置擁有者管理。</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 4f39c5b..ea0d9fb 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -2312,7 +2312,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{「<ph name="DEVICE_NAME" />」與你分享了 <ph name="ATTACHMENTS" />。}other{「<ph name="DEVICE_NAME" />」與你分享了 <ph name="ATTACHMENTS" />。}}</translation>
 <translation id="3364986687961713424">來自系統管理員的訊息:<ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">請擇一使用 Ctrl 或 Alt 鍵</translation>
-<translation id="3367057768351048705">網站只能使用 Cookie 查看你在該網站上的瀏覽活動</translation>
 <translation id="3368922792935385530">已連線</translation>
 <translation id="3369067987974711168">顯示這個連接埠的更多動作</translation>
 <translation id="3369624026883419694">正在解析主機...</translation>
@@ -2952,8 +2951,6 @@
 <translation id="3979748722126423326">啟用 <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">以「<ph name="DEVICE_NAME" />」的名稱向附近的裝置顯示 <ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">輸入的儲存類型無效。</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />發生錯誤,無法安裝 <ph name="DEVICE_OS" />。<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />如需詳細說明,請前往:g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3982375475032951137">只要簡單幾個步驟就能完成瀏覽器設定</translation>
 <translation id="3983400541576569538">某些應用程式的資料可能會遺失</translation>
 <translation id="3983586614702900908">製造商不明的裝置</translation>
@@ -3872,9 +3869,6 @@
 <translation id="4992984395680162305">這些是透過掃描 QR 圖碼所連結的裝置</translation>
 <translation id="4994474651455208930">允許網站要求成為通訊協定的預設處理常式</translation>
 <translation id="4994754230098574403">設定中</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />進行註冊前,你必須清除 TPM,<ph name="DEVICE_OS" /> 才能取得裝置的擁有權。<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />你也可以完全關閉 TPM 裝置。系統仍會透過軟體加密功能安全儲存你的資料,但會停用硬體支援憑證等特定安全性功能。<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />只要重新啟動並進入系統 BIOS/UEFI 設定,即可變更 TPM 設定。操作步驟會因裝置型號而有所不同。如需更多資訊,請在重新啟動前使用其他裝置開啟 <ph name="DEVICE_OS" /> 說明文件:[URL link]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{找不到任何「<ph name="VM_TYPE" />」VM}=1{已找到 1 個「<ph name="VM_TYPE" />」VM:<ph name="VM_NAME_LIST" />}other{已找到 {NUM_VMS} 個「<ph name="VM_TYPE" />」VM:<ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">沒有網際網路連線。</translation>
 <translation id="4998430619171209993">開啟</translation>
@@ -3992,7 +3986,6 @@
 <translation id="5127620150973591153">安全連線 ID:<ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">同步功能已停用</translation>
 <translation id="5127881134400491887">管理網路連線</translation>
-<translation id="5128774403617662387">開始操作前,請確認資料已備份。安裝 <ph name="DEVICE_OS" /> 會覆寫硬碟的資料。如要瞭解詳情,請前往 g.co/TBD。</translation>
 <translation id="512903556749061217">已附加</translation>
 <translation id="5130080518784460891">倚天</translation>
 <translation id="5130675701626084557">無法載入設定檔。請稍後再試,或向電信業者尋求協助。</translation>
@@ -4508,7 +4501,6 @@
 <translation id="5659593005791499971">電子郵件</translation>
 <translation id="5659833766619490117">無法翻譯這個網頁的內容</translation>
 <translation id="5662513737565158057">變更 Linux 應用程式的運作方式。</translation>
-<translation id="5667490069342183561">Google 不會對任何遺失的資料負責,而且 <ph name="DEVICE_OS" /> 可能不適用於未通過核准的型號。如要瞭解詳情,請前往 g.co/TBD。</translation>
 <translation id="5667546120811588575">正在設定 Google Play...</translation>
 <translation id="5668351004957198136">未通過</translation>
 <translation id="56702779821643359">與周遭的人分享檔案。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
@@ -5320,9 +5312,6 @@
 <translation id="6528179044667508675">請勿打擾</translation>
 <translation id="652948702951888897">Chrome 歷史記錄</translation>
 <translation id="6530186581263215931">這些是系統管理員強制套用的設定</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />為了提供最佳服務體驗,<ph name="DEVICE_OS" /> 會收集有關裝置的硬體資料並提供給 Google,以判斷要提供哪些更新內容。您可以選擇是否允許 Google 將這些資料用於其他用途,例如支援作業以及改善 <ph name="DEVICE_OS" /> 的使用體驗與服務。<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />您可以登入這部裝置,並造訪 chrome://system 查看 CLOUDREADY_HARDWARE_INFO 部分,瞭解傳送給 Google 供篩選更新項目的資料,以及您選擇將資料提供給 Google 的任何其他情況。<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />如要進一步瞭解 <ph name="DEVICE_OS" /> 可能會將哪些資料提供給 Google,以及這些資料的用途,請造訪 g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">保留不安全的檔案</translation>
 <translation id="6532101170117367231">儲存至 Google 雲端硬碟</translation>
 <translation id="6532106788206463496">儲存變更</translation>
@@ -6011,15 +6000,6 @@
 <translation id="7258192266780953209">轉換</translation>
 <translation id="7258225044283673131">應用程式沒有回應。選取「強制關閉」即可關閉應用程式。</translation>
 <translation id="7262004276116528033">這是由 <ph name="SAML_DOMAIN" /> 代管的登入服務。</translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />請試試下列疑難排解步驟:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />確保裝置含有可用的內部儲存空間,例如 HDD、SSD 或 eMMC
-    <ph name="LIST_ITEM" />確認裝置內部儲存空間的容量大於 16 GB
-    <ph name="LIST_ITEM" />檢查內部儲存空間的連接狀態 (如果支援實體存取方式)
-    <ph name="LIST_ITEM" />務必使用通過認證的型號,並查看安裝注意事項
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />如需詳細說明,請前往:g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">無法安裝虛擬機器。請再試一次,或是與系統管理員聯絡。錯誤代碼:<ph name="ERROR_CODE" />。</translation>
 <translation id="7267875682732693301">重複按壓指紋感應器,建立完整的指紋檔案</translation>
 <translation id="7268127947535186412">這項設定受到裝置管理員控管。</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index 7bb87c1..f98abe3 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -2326,7 +2326,6 @@
 <translation id="3361421571228286637">{COUNT,plural, =1{I-<ph name="DEVICE_NAME" /> yabelana nawe nge-<ph name="ATTACHMENTS" />.}one{I-<ph name="DEVICE_NAME" /> yabelana nawe nge-<ph name="ATTACHMENTS" />.}other{I-<ph name="DEVICE_NAME" /> yabelana nawe nge-<ph name="ATTACHMENTS" />.}}</translation>
 <translation id="3364986687961713424">Kuvela kumlawuli wakho: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Sebenzisa noma u-Ctrl noma u-Alt</translation>
-<translation id="3367057768351048705">Amasayithi angasebenzisa amakhukhi akho kuphela ukuze abone umsebenzi wakho wokuphequlula kusayithi lawo</translation>
 <translation id="3368922792935385530">Ixhunyiwe</translation>
 <translation id="3369067987974711168">Bonisa izenzo eziningi kule mbobo</translation>
 <translation id="3369624026883419694">Ixazulula umsingathi...</translation>
@@ -2966,8 +2965,6 @@
 <translation id="3979748722126423326">Nika amandla i-<ph name="NETWORKDEVICE" /></translation>
 <translation id="3981058120448670012">Kubonakala kumadivayisi aseduze njenge-<ph name="DEVICE_NAME" /> kokungu-<ph name="REMAINING_TIME" />...</translation>
 <translation id="3981760180856053153">Kufakwe uhlobo olungavumelekile lokulondoloza.</translation>
-<translation id="3981828803725658123"><ph name="BEGIN_PARAGRAPH1" />Okuthile akuhambanga kahle futhi i-<ph name="DEVICE_OS" /> ayikwazanga ukufakwa.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Mayelana nosizo olwengeziwe, vakashela: g.co/xxxxx<ph name="END_PARAGRAPH2" />.</translation>
 <translation id="3982375475032951137">Setha isiphequluli sakho ngezinyathelo ezilula ezimbalwa</translation>
 <translation id="3983400541576569538">Idatha esuka kwezinye izinhlelo zokusebenza ingalahleka</translation>
 <translation id="3983586614702900908">amadivayisi kusuka kumthengisi ongaziwa</translation>
@@ -3887,9 +3884,6 @@
 <translation id="4992984395680162305">Lamadivayisi alinkwe ngokuskena ikhodi ye-QR.</translation>
 <translation id="4994474651455208930">Vumela amasayithi ukuthi acele ukuba ababambi abazenzakalelayo bamaphrothokholi</translation>
 <translation id="4994754230098574403">Iyasetha</translation>
-<translation id="4995131849631312693"><ph name="BEGIN_PARAGRAPH1" />Ngaphambi kokubhalisa kudingeka usule i-TPM ukuze i-<ph name="DEVICE_OS" /> ithathe ubunikazi bedivayisi.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ungavala nedivayisi ye-TPM ngokuphelele. Idatha yakho isazogcinwa ngokuphepha ngokubethelwa kwesofthiwe, kodwa izakhi ezithile zokuphepha ezifana nezitifiketi ezisekelwa ngezingxenyekazi zekhompyutha zizokhutshazwa.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Ungaguqula amasethingi akho we-TPM ngokuqalisa kabusha bese ufaka amasethingi we-BIOS/UEFI. Izinyathelo ziyahluka ngokwemodeli yedivayisi. Mayelana nolwazi olubanzi, vula amadokhumenti we-<ph name="DEVICE_OS" /> kudivayisi ehlukile ngaphambi kokuthi uqalise kabusha: [ilinki ye-URL]<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4996851818599058005">{NUM_VMS,plural, =0{Awekho ama-VMs we-<ph name="VM_TYPE" /> atholakele}=1{Kutholakale i-<ph name="VM_TYPE" /> VM eyodwa: <ph name="VM_NAME_LIST" />}one{Kutholakale ama-VMs angu-{NUM_VMS} <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}other{Kutholakale ama-VMs angu-{NUM_VMS} <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation>
 <translation id="4997086284911172121">Akukho ukuxhumeka kwe-inthanethi.</translation>
 <translation id="4998430619171209993">Vuliwe</translation>
@@ -4007,7 +4001,6 @@
 <translation id="5127620150973591153">I-ID yoxumo oluphephile: <ph name="TOKEN" /></translation>
 <translation id="5127805178023152808">Ukuvumelanisa kuvaliwe</translation>
 <translation id="5127881134400491887">Phatha ukuxhumeka kwenethiwekhi</translation>
-<translation id="5128774403617662387">Ngaphambi kokuqalisa, qiniseka ukuthi unesipele sedatha yakho. Ukufaka i-<ph name="DEVICE_OS" /> kuzokubhala ngaphezulu i-hard drive yakho. Funda kabanzi ku-g.co/TBD.</translation>
 <translation id="512903556749061217">ishunyekiwe</translation>
 <translation id="5130080518784460891">I-Eten</translation>
 <translation id="5130675701626084557">Iphrofayela alikwazanga ukulandwa. Sicela uzame futhi kamuva noma uxhumane nenkampani yenethiwekhi mayelana nosizo.</translation>
@@ -4526,7 +4519,6 @@
 <translation id="5659593005791499971">I-imeyili</translation>
 <translation id="5659833766619490117">Leli khasi alikwazanga ukuhunyushwa</translation>
 <translation id="5662513737565158057">Shintsha indlela izinhlelo zokusebenza ze-Linux ezisebenza ngayo.</translation>
-<translation id="5667490069342183561">I-Google ayinasibopho sokulahleka kwedatha, futhi i-<ph name="DEVICE_OS" /> kungenzeka ingasebenzi kumamodeli angaqinisekisiwe. Funda kabanzi ku-g.co/TBD.</translation>
 <translation id="5667546120811588575">Isetha i-Google Play...</translation>
 <translation id="5668351004957198136">Ukuhluleka</translation>
 <translation id="56702779821643359">Yabelana ngamafayela nabantu abaseduze nawe. <ph name="LINK_BEGIN" />Funda kabanzi<ph name="LINK_END" /></translation>
@@ -5338,9 +5330,6 @@
 <translation id="6528179044667508675">Ungaphazamisi</translation>
 <translation id="652948702951888897">Umlando we-Chrome</translation>
 <translation id="6530186581263215931">Lezi zilungiselelo ziphoqwa ngumlawuli wakho</translation>
-<translation id="653031671361866334"><ph name="BEGIN_PARAGRAPH1" />Ukuhlinzeka ngomuzwa ohamba phambili, i-<ph name="DEVICE_OS" /> iqoqa idatha yezingxenyekazi zekhompyutha mayelana namadivayisi futhi yabelane ngayo ne-Google ukuze inqume ukuthi yiziphi izibuyekezo okufanele zidilivwe. Ongakukhetha, ungavumela i-Google ukuthi isebenzise le datha ngezinjongo ezengeziwe njengosekelo nokuthuthukiswa kwe-<ph name="DEVICE_OS" /> umuzwa nesevisi.<ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Ungangena ngemvume kule divayisi futhi uvakashele esigabeni se-CLOUDREADY_HARDWARE_INFO ku-chrome://system ukuze ubone idatha ethunyelwe ku-Google ukuze ihlungwe isibuyekezo, kanye nanoma yiziphi ezinye izimo lapho ukhetha ukwabelana ngedatha ne-Google.<ph name="END_PARAGRAPH2" />
-    <ph name="BEGIN_PARAGRAPH3" />Mayelana nemininingwane eminingi ngedatha i-<ph name="DEVICE_OS" /> ingabelana ne-Google, nokuthi isetshenziswa kanjani vakashela ku-g.co/xxxxx<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6531282281159901044">Gcina ifayela eliyingozi</translation>
 <translation id="6532101170117367231">Londoloza ku-Google Drayivu</translation>
 <translation id="6532106788206463496">Londoloza ushintsho</translation>
@@ -6029,15 +6018,6 @@
 <translation id="7258192266780953209">Ukuguqulwa</translation>
 <translation id="7258225044283673131">Uhlelo lokusebenza aluphenduli. Khetha okuthi "Phoqa ukuvala" ukuze uvale uhlelo lokusebenza.</translation>
 <translation id="7262004276116528033">Le sevisi yokungena ngemvume isingathwa yi-<ph name="SAML_DOMAIN" /></translation>
-<translation id="7264564921322372728"><ph name="BEGIN_PARAGRAPH1" />Zama lezi zinyathelo zokuxazulula inkinga:
-    <ph name="BEGIN_LIST" />
-    <ph name="LIST_ITEM" />Qiniseka ukuthi idivayisi yakho iqukethe isitoreji sangaphakathi esisebenzayo njenge-HDD, SSD, noma i-eMMC
-    <ph name="LIST_ITEM" />Hlola ukuthi ingabe isitoreji sakho sangaphakathi sikhulu kune-16GB
-    <ph name="LIST_ITEM" />Hlola ukuxhumeka kokugcina kwangaphakathi, uma kufinyeleleka ngokomzimba
-    <ph name="LIST_ITEM" />Qiniseka ukuthi usebenzisa imodeli eqinisekisiwe bese uhlola amanothi wokufaka
-    <ph name="END_LIST" />
-    <ph name="END_PARAGRAPH1" />
-    <ph name="BEGIN_PARAGRAPH2" />Mayelana nosizo olwengeziwe, vakashela: g.co/xxxxx<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7267044199012331848">Ayikwazanga ukufaka umshini ngokubuka Sicela uzame futhi, noma xhumana nomlawuli wakho. Ikhodi yephutha: <ph name="ERROR_CODE" />.</translation>
 <translation id="7267875682732693301">Qhubeka nokuphakamisa umunwe wakho ukuze ungeze izingxenye ezahlukahlukene zezigxiviso zeminwe zakho</translation>
 <translation id="7268127947535186412">Lesi silungiselelo siphethwe umnikazi wedivayisi.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hi.xtb b/chrome/app/resources/google_chrome_strings_hi.xtb
index a0521dc..21ba42ce 100644
--- a/chrome/app/resources/google_chrome_strings_hi.xtb
+++ b/chrome/app/resources/google_chrome_strings_hi.xtb
@@ -86,6 +86,7 @@
 <translation id="2926952073016206995">Chrome को इस साइट के लिए, कैमरा ऐक्सेस करने की अनुमति चाहिए</translation>
 <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="303514781271618814">Chrome पर ऐसी नई सुविधाएं एक्सप्लोर की जा रही हैं जिनसे साइटें, उपयोगकर्ता का कम डेटा इस्तेमाल करके उन्हें पहले जैसा अनुभव दे सकती हैं</translation>
 <translation id="3037838751736561277">Google Chrome पृष्ठभूमि मोड में है.</translation>
 <translation id="3059710691562604940">सुरक्षित ब्राउज़िंग की सुविधा बंद है. Chrome इसे चालू करने का सुझाव देता है.</translation>
 <translation id="3065168410429928842">Chrome टैब</translation>
@@ -157,6 +158,7 @@
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
 <translation id="4771048833395599659">यह फ़ाइल खतरनाक हो सकती है, इसलिए Chrome ने इसे रोक दिया है.</translation>
 <translation id="479167709087336770">इसमें स्पेलिंग जाँचने वाली उसी सुविधा का इस्तेमाल होता है जिसका इस्तेमाल 'Google सर्च' में किया जाता है. आप ब्राउज़र में जो भी लेख लिखते हैं उसे Google को भेजा जाता है. आप 'सेटिंग' में जाकर इसे कभी भी बदल सकते हैं.</translation>
+<translation id="4873783916118289636">Chrome के निजता और सुरक्षा से जुड़े मुख्य कंट्रोल देखें</translation>
 <translation id="4891791193823137474">Google Chrome को पृष्ठभूमि में चलने दें</translation>
 <translation id="4895437082222824641">नए Chrome &amp;टैब में लिंक खोलें</translation>
 <translation id="4953650215774548573">Google Chrome को अपने डिफ़ॉल्ट ब्राउज़र के रूप में सेट करना</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mn.xtb b/chrome/app/resources/google_chrome_strings_mn.xtb
index 42fe1e3..ed6577d 100644
--- a/chrome/app/resources/google_chrome_strings_mn.xtb
+++ b/chrome/app/resources/google_chrome_strings_mn.xtb
@@ -90,6 +90,7 @@
 <translation id="2926952073016206995">Chrome-д энэ сайтын камерын зөвшөөрөл шаардлагатай</translation>
 <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="303514781271618814">Chrome нь сайтуудад таны өгөгдлийг бага хэмжээгээр ашиглах боломжийг олгодог шинэ боломжуудыг судалж байна</translation>
 <translation id="3037838751736561277">Google Chrome нь суурь горимд байна.</translation>
 <translation id="3059710691562604940">Аюулгүй үзэх онцлог унтраалттай байна. Chrome түүнийг асаахыг зөвлөж байна.</translation>
 <translation id="3065168410429928842">Chrome-н таб</translation>
@@ -161,6 +162,7 @@
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
 <translation id="4771048833395599659">Энэ файл аюултай байж болзошгүй тул Chrome блоклосон байна.</translation>
 <translation id="479167709087336770">Энэ нь Google хайлтад ашигладаг зөв бичгийн ижил алдаа шалгагчийг ашигладаг. Таны хөтчид бичсэн текстийг Google-д илгээдэг. Та энэ ажиллах төлөвийг хүссэн үедээ тохиргоонд өөрчилж болно</translation>
+<translation id="4873783916118289636">Chrome-н нууцлал болон аюулгүй байдлын үндсэн хяналтуудыг шалгана уу</translation>
 <translation id="4891791193823137474">Google Chrome-ыг энэ дэвсгэр дээр ажиллуулна уу</translation>
 <translation id="4895437082222824641">Холбоосыг шинэ Chrome-н табад нээх</translation>
 <translation id="4953650215774548573">Google Chrome-ыг өөрийн анхдагч веб хөтөч болгон тохируулна уу</translation>
diff --git a/chrome/browser/android/chrome_startup_flags.cc b/chrome/browser/android/chrome_startup_flags.cc
index bb9d0604..88117eee 100644
--- a/chrome/browser/android/chrome_startup_flags.cc
+++ b/chrome/browser/android/chrome_startup_flags.cc
@@ -17,28 +17,9 @@
 #include "components/dom_distiller/core/dom_distiller_switches.h"
 #include "media/base/media_switches.h"
 
-namespace {
-
-void SetCommandLineSwitch(const std::string& switch_string) {
-  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
-  if (!command_line->HasSwitch(switch_string))
-    command_line->AppendSwitch(switch_string);
-}
-
-void SetCommandLineSwitchASCII(const std::string& switch_string,
-                               const std::string& value) {
-  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
-  if (!command_line->HasSwitch(switch_string))
-    command_line->AppendSwitchASCII(switch_string, value);
-}
-
-}  // namespace
-
 void SetChromeSpecificCommandLineFlags() {
-  // Disable syncing favicons on low end devices.
-  if (base::SysInfo::IsLowEndDevice())
-    SetCommandLineSwitchASCII(switches::kDisableSyncTypes, "Favicon Images");
-
   // Enable DOM Distiller backend.
-  SetCommandLineSwitch(switches::kEnableDomDistiller);
+  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+  if (!command_line->HasSwitch(switches::kEnableDomDistiller))
+    command_line->AppendSwitch(switches::kEnableDomDistiller);
 }
diff --git a/chrome/browser/ash/arc/auth/arc_auth_service.cc b/chrome/browser/ash/arc/auth/arc_auth_service.cc
index f87754c..904de28e 100644
--- a/chrome/browser/ash/arc/auth/arc_auth_service.cc
+++ b/chrome/browser/ash/arc/auth/arc_auth_service.cc
@@ -882,14 +882,35 @@
 void ArcAuthService::CompleteAccountsPushToArc(
     bool filter_primary_account,
     const base::flat_set<account_manager::Account>& accounts) {
-  // TODO(crbug/1260909): call `SetAccounts` when the API is implemented in ARC.
+  DCHECK(ash::AccountAppsAvailability::IsArcAccountRestrictionsEnabled());
+
+  std::vector<mojom::ArcAccountInfoPtr> arc_accounts =
+      std::vector<mojom::ArcAccountInfoPtr>();
   for (const auto& account : accounts) {
     DCHECK(account.key.account_type() == account_manager::AccountType::kGaia);
     if (filter_primary_account && IsPrimaryGaiaAccount(account.key.id()))
       continue;
 
-    OnAccountAvailableInArc(account);
+    arc_accounts.emplace_back(mojom::ArcAccountInfo::New(
+        /*email=*/account.raw_email, /*gaia_id=*/account.key.id()));
   }
+
+  auto* instance =
+      ARC_GET_INSTANCE_FOR_METHOD(arc_bridge_service_->auth(), SetAccounts);
+  if (!instance) {
+    VLOG(1) << "SetAccounts API is not available in ARC. Fallback to "
+               "OnAccountAvailableInArc";
+    for (const auto& account : accounts) {
+      DCHECK(account.key.account_type() == account_manager::AccountType::kGaia);
+      if (filter_primary_account && IsPrimaryGaiaAccount(account.key.id()))
+        continue;
+
+      OnAccountAvailableInArc(account);
+    }
+    return;
+  }
+
+  instance->SetAccounts(std::move(arc_accounts));
 }
 
 void ArcAuthService::DispatchAccountsInArc(
diff --git a/chrome/browser/ash/arc/auth/arc_auth_service_browsertest.cc b/chrome/browser/ash/arc/auth/arc_auth_service_browsertest.cc
index 5ce43b9..f49d9e4 100644
--- a/chrome/browser/ash/arc/auth/arc_auth_service_browsertest.cc
+++ b/chrome/browser/ash/arc/auth/arc_auth_service_browsertest.cc
@@ -128,6 +128,11 @@
     }
   }
 
+  void SetAccounts(std::vector<mojom::ArcAccountInfoPtr> accounts) override {
+    ++num_set_accounts_calls_;
+    last_set_accounts_list_ = std::move(accounts);
+  }
+
   void RequestPrimaryAccountInfo(base::OnceClosure done_closure) {
     host_remote_->RequestPrimaryAccountInfo(base::BindOnce(
         &FakeAuthInstance::OnPrimaryAccountInfoResponse,
@@ -169,6 +174,12 @@
 
   std::string last_removed_account() const { return last_removed_account_; }
 
+  int num_set_accounts_calls() const { return num_set_accounts_calls_; }
+
+  const std::vector<mojom::ArcAccountInfoPtr>* last_set_accounts_list() const {
+    return &last_set_accounts_list_;
+  }
+
  private:
   void OnPrimaryAccountInfoResponse(base::OnceClosure done_closure,
                                     mojom::ArcAuthCodeStatus status,
@@ -198,6 +209,8 @@
   std::string last_upserted_account_;
   int num_account_removed_calls_ = 0;
   std::string last_removed_account_;
+  int num_set_accounts_calls_ = 0;
+  std::vector<mojom::ArcAccountInfoPtr> last_set_accounts_list_;
 
   base::WeakPtrFactory<FakeAuthInstance> weak_ptr_factory_{this};
 };
@@ -922,15 +935,30 @@
     ArcAuthServiceTest,
     PrimaryAccountReauthIsNotAttemptedJustAfterProvisioning) {
   SetAccountAndProfile(user_manager::USER_TYPE_REGULAR);
-  const int initial_num_calls = auth_instance().num_account_upserted_calls();
+  const int initial_num_account_upserted_calls =
+      auth_instance().num_account_upserted_calls();
+  const int initial_num_set_accounts_calls =
+      auth_instance().num_set_accounts_calls();
   // Our test setup manually sets the device as provisioned and invokes
   // |ArcAuthService::OnConnectionReady|. Hence, we would have received an
   // update for the Primary Account.
-  EXPECT_EQ(1, initial_num_calls);
+  if (IsArcAccountRestrictionsEnabled()) {
+    // 1 SetAccounts() call for the Primary account.
+    EXPECT_EQ(1, initial_num_set_accounts_calls);
+    EXPECT_EQ(1, auth_instance().last_set_accounts_list()->size());
+    EXPECT_EQ(kFakeUserName,
+              (*auth_instance().last_set_accounts_list())[0]->email);
+    EXPECT_EQ(0, initial_num_account_upserted_calls);
+  } else {
+    EXPECT_EQ(1, initial_num_account_upserted_calls);
+  }
 
   // Simulate ARC first time provisioning call.
   OnArcInitialStart();
-  EXPECT_EQ(initial_num_calls, auth_instance().num_account_upserted_calls());
+  EXPECT_EQ(initial_num_account_upserted_calls,
+            auth_instance().num_account_upserted_calls());
+  EXPECT_EQ(initial_num_set_accounts_calls,
+            auth_instance().num_set_accounts_calls());
 }
 
 IN_PROC_BROWSER_TEST_P(ArcAuthServiceTest,
@@ -938,8 +966,18 @@
   const AccountInfo account_info = SetupGaiaAccount(kSecondaryAccountEmail);
 
   const int initial_num_calls = auth_instance().num_account_upserted_calls();
-  // 2 calls: 1 for the Primary Account and 1 for the Secondary Account.
-  EXPECT_EQ(2, initial_num_calls);
+  if (IsArcAccountRestrictionsEnabled()) {
+    // 1 SetAccounts() call for the Primary account.
+    EXPECT_EQ(1, auth_instance().num_set_accounts_calls());
+    EXPECT_EQ(1, auth_instance().last_set_accounts_list()->size());
+    EXPECT_EQ(kFakeUserName,
+              (*auth_instance().last_set_accounts_list())[0]->email);
+    // 1 call for the Secondary Account.
+    EXPECT_EQ(1, auth_instance().num_account_upserted_calls());
+  } else {
+    // 2 calls: 1 for the Primary Account and 1 for the Secondary Account.
+    EXPECT_EQ(2, auth_instance().num_account_upserted_calls());
+  }
 
   SetInvalidRefreshTokenForAccount(account_info.account_id);
   EXPECT_EQ(initial_num_calls, auth_instance().num_account_upserted_calls());
@@ -950,10 +988,18 @@
 
   SetInvalidRefreshTokenForAccount(account_info.account_id);
   const int initial_num_calls = auth_instance().num_account_upserted_calls();
-  // 2 calls: 1 for the Primary account, 1 for the Secondary account on addition
-  // and 0 for Secondary account after SetInvalidRefreshTokenForAccount.
-  EXPECT_EQ(2, initial_num_calls);
-
+  if (IsArcAccountRestrictionsEnabled()) {
+    // 1 SetAccounts() call for the Primary account.
+    EXPECT_EQ(1, auth_instance().num_set_accounts_calls());
+    EXPECT_EQ(1, auth_instance().last_set_accounts_list()->size());
+    EXPECT_EQ(kFakeUserName,
+              (*auth_instance().last_set_accounts_list())[0]->email);
+    // 1 call for the Secondary Account.
+    EXPECT_EQ(1, initial_num_calls);
+  } else {
+    // 2 calls: 1 for the Primary Account and 1 for the Secondary Account.
+    EXPECT_EQ(2, initial_num_calls);
+  }
   SetRefreshTokenForAccount(account_info.account_id);
   // Expect exactly one call for the account update above.
   EXPECT_EQ(1,
@@ -969,8 +1015,14 @@
 
   SetInvalidRefreshTokenForAccount(account_info.account_id);
   const int initial_num_calls = auth_instance().num_account_upserted_calls();
-  // 1 call for the Secondary account on addition and 0 for Secondary account
-  // after SetInvalidRefreshTokenForAccount.
+  EXPECT_EQ(1, initial_num_calls);
+  if (IsArcAccountRestrictionsEnabled()) {
+    // 1 SetAccounts() call with empty list of accounts.
+    EXPECT_EQ(1, auth_instance().num_set_accounts_calls());
+    EXPECT_EQ(0, auth_instance().last_set_accounts_list()->size());
+  }
+
+  // 1 call for the Secondary Account.
   EXPECT_EQ(1, initial_num_calls);
 
   SetRefreshTokenForAccount(account_info.account_id);
@@ -989,9 +1041,13 @@
 
   SetInvalidRefreshTokenForAccount(account_info.account_id);
   const int initial_num_calls = auth_instance().num_account_upserted_calls();
-  // 2 calls: 1 for the Primary account, 1 for the Secondary account on addition
-  // and 0 for Secondary account after SetInvalidRefreshTokenForAccount.
-  EXPECT_EQ(2, initial_num_calls);
+  // 1 SetAccounts() call for the Primary account.
+  EXPECT_EQ(1, auth_instance().num_set_accounts_calls());
+  EXPECT_EQ(1, auth_instance().last_set_accounts_list()->size());
+  EXPECT_EQ(kFakeUserName,
+            (*auth_instance().last_set_accounts_list())[0]->email);
+  // 1 call for the Secondary Account.
+  EXPECT_EQ(1, initial_num_calls);
 
   EXPECT_TRUE(SetIsAccountAvailableInArc(account_info.gaia,
                                          /*make_available_in_arc=*/false));
@@ -1356,7 +1412,18 @@
                        RegularUserSecondaryAccountsArePropagated) {
   SetAccountAndProfile(user_manager::USER_TYPE_REGULAR);
   SeedAccountInfo(kSecondaryAccountEmail);
-  EXPECT_EQ(2, auth_instance().num_account_upserted_calls());
+  if (IsArcAccountRestrictionsEnabled()) {
+    // 1 SetAccounts() call for the Primary account.
+    EXPECT_EQ(1, auth_instance().num_set_accounts_calls());
+    EXPECT_EQ(1, auth_instance().last_set_accounts_list()->size());
+    EXPECT_EQ(kFakeUserName,
+              (*auth_instance().last_set_accounts_list())[0]->email);
+    // 1 call for the Secondary Account.
+    EXPECT_EQ(1, auth_instance().num_account_upserted_calls());
+  } else {
+    // 2 calls: 1 for the Primary Account and 1 for the Secondary Account.
+    EXPECT_EQ(2, auth_instance().num_account_upserted_calls());
+  }
 }
 
 // Tests child account propagation for Family Link user.
@@ -1365,7 +1432,18 @@
   SetAccountAndProfile(user_manager::USER_TYPE_CHILD);
   SeedAccountInfo(kSecondaryAccountEmail);
   EXPECT_TRUE(profile()->IsChild());
-  EXPECT_EQ(2, auth_instance().num_account_upserted_calls());
+  if (IsArcAccountRestrictionsEnabled()) {
+    // 1 SetAccounts() call for the Primary account.
+    EXPECT_EQ(1, auth_instance().num_set_accounts_calls());
+    EXPECT_EQ(1, auth_instance().last_set_accounts_list()->size());
+    EXPECT_EQ(kFakeUserName,
+              (*auth_instance().last_set_accounts_list())[0]->email);
+    // 1 call for the Secondary Account.
+    EXPECT_EQ(1, auth_instance().num_account_upserted_calls());
+  } else {
+    // 2 calls: 1 for the Primary Account and 1 for the Secondary Account.
+    EXPECT_EQ(2, auth_instance().num_account_upserted_calls());
+  }
 }
 
 INSTANTIATE_TEST_SUITE_P(All, ArcRobotAccountAuthServiceTest, testing::Bool());
diff --git a/chrome/browser/ash/crosapi/browser_manager.h b/chrome/browser/ash/crosapi/browser_manager.h
index 0a138ed..bda90bf 100644
--- a/chrome/browser/ash/crosapi/browser_manager.h
+++ b/chrome/browser/ash/crosapi/browser_manager.h
@@ -44,6 +44,10 @@
 class Crosapi;
 }  // namespace mojom
 
+namespace test {
+class AshBrowserTestStarter;
+}  // namespace test
+
 class BrowserLoader;
 class TestMojoConnectionManager;
 
@@ -273,6 +277,10 @@
   // web apps in Lacros. Need to decouple the App Platform systems from
   // needing lacros-chrome running all the time.
   friend class apps::AppServiceProxyAsh;
+  // Currently in practice KeepAlive is enabled for AppService as described
+  // above. To make the testing environment closer to the case, set up
+  // KeepAlive for AshBrowserTestStarter, too.
+  friend class test::AshBrowserTestStarter;
 
   // Returns true if the binary is ready to launch or already launched.
   bool IsReady() const;
diff --git a/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_impl.cc b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_impl.cc
index 62fc699..8e562ac 100644
--- a/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_impl.cc
+++ b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_impl.cc
@@ -98,8 +98,7 @@
   std::vector<uint16_t> text_breaks =
       FindTextBreaks(utterance_u16string, char_limit_per_request_);
   uint16_t text_piece_start_index = 0;
-  const uint16_t text_breaks_size = text_breaks.size();
-  for (uint16_t i = 0; i < text_breaks_size; i++) {
+  for (size_t i = 0; i < text_breaks.size(); i++) {
     uint16_t text_piece_end_index = text_breaks[i];
     auto size = text_piece_end_index - text_piece_start_index + 1;
     const std::string text_piece = base::UTF16ToUTF8(
@@ -108,7 +107,7 @@
     mojom::TtsRequestPtr new_tts_request = mojom::TtsRequest::New(
         text_piece, request->rate, request->voice, request->lang);
     std::unique_ptr<network::SimpleURLLoader> url_loader = MakeRequestLoader();
-    const bool last_request = i == text_breaks_size - 1;
+    const bool last_request = i == text_breaks.size() - 1;
     url_loader->AttachStringForUpload(
         FormatJsonRequest(std::move(new_tts_request)),
         kNetworkRequestUploadType);
diff --git a/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc b/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc
index 8f5549e..0a3720d 100644
--- a/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc
+++ b/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc
@@ -7,6 +7,7 @@
 #include <string>
 
 #include "ash/components/arc/arc_util.h"
+#include "ash/constants/ash_features.h"
 #include "ash/constants/ash_switches.h"
 #include "ash/public/cpp/login_accelerators.h"
 #include "base/bind.h"
@@ -67,36 +68,48 @@
 using test::DemoModeSetupResult;
 using test::SetupDummyOfflinePolicyDir;
 
-const test::UIPath kDemoConfirmationDialog = {"connect",
+constexpr char kArcTosId[] = "arc-tos";
+constexpr char kConsolidatedConsentId[] = "consolidated-consent";
+constexpr char kDemoSetupId[] = "demo-setup";
+constexpr char kDemoPrefsId[] = "demo-preferences";
+constexpr char kNetworkId[] = "network-selection";
+constexpr char kWelcomeId[] = "connect";
+
+const test::UIPath kDemoConfirmationDialog = {kWelcomeId,
                                               "demoModeConfirmationDialog"};
+const test::UIPath kDemoConfirmationOkButton = {kWelcomeId, "okButton"};
+const test::UIPath kDemoConfirmationCancelButton = {kWelcomeId, "cancelButton"};
 
-const test::UIPath kDemoPreferencesScreen = {"demo-preferences"};
-const test::UIPath kDemoPreferencesCountry = {"demo-preferences",
-                                              "countrySelect"};
-const test::UIPath kDemoPreferencesCountrySelect = {"demo-preferences",
+const test::UIPath kDemoPreferencesScreen = {kDemoPrefsId};
+const test::UIPath kDemoPreferencesCountry = {kDemoPrefsId, "countrySelect"};
+const test::UIPath kDemoPreferencesCountrySelect = {kDemoPrefsId,
                                                     "countrySelect", "select"};
-const test::UIPath kDemoPreferencesNext = {"demo-preferences", "nextButton"};
+const test::UIPath kDemoPreferencesNext = {kDemoPrefsId, "nextButton"};
 
-const test::UIPath kNetworkScreen = {"network-selection"};
-const test::UIPath kNetworkNextButton = {"network-selection", "nextButton"};
-const test::UIPath kNetworkBackButton = {"network-selection", "backButton"};
+const test::UIPath kNetworkScreen = {kNetworkId};
+const test::UIPath kNetworkNextButton = {kNetworkId, "nextButton"};
+const test::UIPath kNetworkBackButton = {kNetworkId, "backButton"};
 
-const test::UIPath kDemoSetupProgressDialog = {"demo-setup",
+const test::UIPath kDemoSetupProgressDialog = {kDemoSetupId,
                                                "demoSetupProgressDialog"};
-const test::UIPath kDemoSetupErrorDialog = {"demo-setup",
+const test::UIPath kDemoSetupErrorDialog = {kDemoSetupId,
                                             "demoSetupErrorDialog"};
-const test::UIPath kDemoSetupErrorDialogRetry = {"demo-setup", "retryButton"};
-const test::UIPath kDemoSetupErrorDialogPowerwash = {"demo-setup",
+const test::UIPath kDemoSetupErrorDialogRetry = {kDemoSetupId, "retryButton"};
+const test::UIPath kDemoSetupErrorDialogPowerwash = {kDemoSetupId,
                                                      "powerwashButton"};
-const test::UIPath kDemoSetupErrorDialogBack = {"demo-setup", "back"};
-const test::UIPath kDemoSetupErrorDialogMessage = {"demo-setup",
+const test::UIPath kDemoSetupErrorDialogBack = {kDemoSetupId, "back"};
+const test::UIPath kDemoSetupErrorDialogMessage = {kDemoSetupId,
                                                    "errorMessage"};
 
-const test::UIPath kArcTosDialog = {"arc-tos", "arcTosDialog"};
-const test::UIPath kArcTosAcceptButton = {"arc-tos", "arcTosAcceptButton"};
-const test::UIPath kArcTosDemoAppsNotice = {"arc-tos", "arcTosMetricsDemoApps"};
-const test::UIPath kArcTosBackButton = {"arc-tos", "arcTosBackButton"};
-const test::UIPath kArcTosNextButton = {"arc-tos", "arcTosNextButton"};
+const test::UIPath kArcTosDialog = {kArcTosId, "arcTosDialog"};
+const test::UIPath kArcTosAcceptButton = {kArcTosId, "arcTosAcceptButton"};
+const test::UIPath kArcTosDemoAppsNotice = {kArcTosId, "arcTosMetricsDemoApps"};
+const test::UIPath kArcTosBackButton = {kArcTosId, "arcTosBackButton"};
+const test::UIPath kArcTosNextButton = {kArcTosId, "arcTosNextButton"};
+
+const test::UIPath kCCLoadedDialog = {kConsolidatedConsentId, "loadedDialog"};
+const test::UIPath kCCArcTosLink = {kConsolidatedConsentId, "arcTosLink"};
+const test::UIPath kCCBackButton = {kConsolidatedConsentId, "backButton"};
 
 constexpr char kDefaultNetworkServicePath[] = "/service/eth1";
 constexpr char kDefaultNetworkName[] = "eth1";
@@ -123,19 +136,19 @@
   }
 
   void IsConfirmationDialogShown() {
-    test::OobeJS().ExpectAttributeEQ("open", kDemoConfirmationDialog, true);
+    test::OobeJS().ExpectDialogOpen(kDemoConfirmationDialog);
   }
 
   void IsConfirmationDialogHidden() {
-    test::OobeJS().ExpectAttributeEQ("open", kDemoConfirmationDialog, false);
+    test::OobeJS().ExpectDialogClosed(kDemoConfirmationDialog);
   }
 
   void ClickOkOnConfirmationDialog() {
-    test::OobeJS().TapOnPath({"connect", "okButton"});
+    test::OobeJS().TapOnPath(kDemoConfirmationOkButton);
   }
 
   void ClickCancelOnConfirmationDialog() {
-    test::OobeJS().TapOnPath({"connect", "cancelButton"});
+    test::OobeJS().TapOnPath(kDemoConfirmationCancelButton);
   }
 
   void TriggerDemoModeOnWelcomeScreen() {
@@ -336,6 +349,14 @@
     test::OobeJS().CreateVisibilityWaiter(true, kArcTosDialog)->Wait();
   }
 
+  void WaitForConsolidatedConsentScreen() {
+    OobeScreenWaiter(ConsolidatedConsentScreenView::kScreenId).Wait();
+    test::OobeJS().CreateVisibilityWaiter(true, kCCLoadedDialog)->Wait();
+
+    // Make sure that ARC ToS link is visible.
+    test::OobeJS().ExpectVisiblePath(kCCArcTosLink);
+  }
+
   void AcceptArcTos() {
     test::OobeJS().CreateVisibilityWaiter(true, kArcTosNextButton)->Wait();
     test::OobeJS().ClickOnPath(kArcTosNextButton);
@@ -344,29 +365,42 @@
   }
 
   void AcceptTermsAndExpectDemoSetupProgress() {
-    test::WaitForEulaScreen();
-    test::TapEulaAccept();
+    if (chromeos::features::IsOobeConsolidatedConsentEnabled()) {
+      WaitForConsolidatedConsentScreen();
 
-    WaitForArcTosScreen();
+      OobeScreenWaiter setup_progress_waiter(DemoSetupScreenView::kScreenId);
+      test::TapConsolidatedConsentAccept();
+      setup_progress_waiter.Wait();
+    } else {
+      test::WaitForEulaScreen();
+      test::TapEulaAccept();
 
-    test::OobeJS().ExpectVisiblePath(kArcTosDemoAppsNotice);
+      WaitForArcTosScreen();
 
-    // As setup screen shows only progress indicator and disappears afterwards
-    // we need to set up waiter before the action that triggers the screen.
-    OobeScreenWaiter setup_progress_waiter(DemoSetupScreenView::kScreenId);
-    AcceptArcTos();
-    setup_progress_waiter.Wait();
+      test::OobeJS().ExpectVisiblePath(kArcTosDemoAppsNotice);
+
+      // As setup screen shows only progress indicator and disappears afterwards
+      // we need to set up waiter before the action that triggers the screen.
+      OobeScreenWaiter setup_progress_waiter(DemoSetupScreenView::kScreenId);
+      AcceptArcTos();
+      setup_progress_waiter.Wait();
+    }
   }
 
   void AcceptTermsAndExpectDemoSetupFailure() {
-    test::WaitForEulaScreen();
-    test::TapEulaAccept();
+    if (chromeos::features::IsOobeConsolidatedConsentEnabled()) {
+      WaitForConsolidatedConsentScreen();
+      test::TapConsolidatedConsentAccept();
+    } else {
+      test::WaitForEulaScreen();
+      test::TapEulaAccept();
 
-    WaitForArcTosScreen();
+      WaitForArcTosScreen();
 
-    test::OobeJS().ExpectVisiblePath(kArcTosDemoAppsNotice);
+      test::OobeJS().ExpectVisiblePath(kArcTosDemoAppsNotice);
 
-    AcceptArcTos();
+      AcceptArcTos();
+    }
     // As we expect the error message to stay on the screen, it is safe to
     // wait for it in the usual manner.
     OobeScreenWaiter(DemoSetupScreenView::kScreenId).Wait();
@@ -701,16 +735,7 @@
 
   UseOfflineModeOnNetworkScreen();
 
-  test::WaitForEulaScreen();
-  test::TapEulaAccept();
-
-  WaitForArcTosScreen();
-
-  test::OobeJS().ExpectVisiblePath(kArcTosDemoAppsNotice);
-
-  OobeScreenWaiter setup_progress_waiter(DemoSetupScreenView::kScreenId);
-  AcceptArcTos();
-  setup_progress_waiter.Wait();
+  AcceptTermsAndExpectDemoSetupProgress();
 
   OobeScreenWaiter(ErrorScreenView::kScreenId).Wait();
 
@@ -741,16 +766,7 @@
 
   UseOfflineModeOnNetworkScreen();
 
-  test::WaitForEulaScreen();
-  test::TapEulaAccept();
-
-  WaitForArcTosScreen();
-
-  test::OobeJS().ExpectVisiblePath(kArcTosDemoAppsNotice);
-
-  AcceptArcTos();
-  OobeScreenWaiter(DemoSetupScreenView::kScreenId).Wait();
-  test::OobeJS().CreateVisibilityWaiter(true, kDemoSetupErrorDialog)->Wait();
+  AcceptTermsAndExpectDemoSetupFailure();
 
   ExpectErrorMessage(IDS_DEMO_SETUP_OFFLINE_POLICY_ERROR,
                      IDS_DEMO_SETUP_RECOVERY_OFFLINE_FATAL);
@@ -780,14 +796,8 @@
 
   UseOfflineModeOnNetworkScreen();
 
-  test::WaitForEulaScreen();
-  test::TapEulaAccept();
+  AcceptTermsAndExpectDemoSetupFailure();
 
-  WaitForArcTosScreen();
-  AcceptArcTos();
-
-  OobeScreenWaiter(DemoSetupScreenView::kScreenId).Wait();
-  test::OobeJS().CreateVisibilityWaiter(true, kDemoSetupErrorDialog)->Wait();
   ExpectErrorMessage(IDS_DEMO_SETUP_LOCK_ERROR,
                      IDS_DEMO_SETUP_RECOVERY_POWERWASH);
 
@@ -843,7 +853,11 @@
   ClickNetworkListElement(kDefaultNetworkName);
   SimulateNetworkConnected();
 
-  test::WaitForEulaScreen();
+  if (chromeos::features::IsOobeConsolidatedConsentEnabled()) {
+    test::WaitForConsolidatedConsentScreen();
+  } else {
+    test::WaitForEulaScreen();
+  }
 }
 
 IN_PROC_BROWSER_TEST_F(DemoSetupArcSupportedTest,
@@ -859,7 +873,11 @@
 
   ClickNetworkListElement(kDefaultNetworkName);
 
-  test::WaitForEulaScreen();
+  if (chromeos::features::IsOobeConsolidatedConsentEnabled()) {
+    test::WaitForConsolidatedConsentScreen();
+  } else {
+    test::WaitForEulaScreen();
+  }
 }
 
 IN_PROC_BROWSER_TEST_F(DemoSetupArcSupportedTest, BackOnNetworkScreen) {
@@ -875,24 +893,28 @@
 
 // TODO(crbug.com/1150349): Flaky on ChromeOS ASAN.
 #if defined(ADDRESS_SANITIZER)
-#define MAYBE_BackOnArcTermsScreen DISABLED_BackOnArcTermsScreen
+#define MAYBE_BackOnTermsScreen DISABLED_BackOnTermsScreen
 #else
-#define MAYBE_BackOnArcTermsScreen BackOnArcTermsScreen
+#define MAYBE_BackOnTermsScreen BackOnTermsScreen
 #endif
-IN_PROC_BROWSER_TEST_F(DemoSetupArcSupportedTest, MAYBE_BackOnArcTermsScreen) {
-  // User cannot go to ARC ToS screen without accepting eula - simulate that.
-  StartupUtils::MarkEulaAccepted();
+IN_PROC_BROWSER_TEST_F(DemoSetupArcSupportedTest, MAYBE_BackOnTermsScreen) {
   SimulateNetworkConnected();
 
   TriggerDemoModeOnWelcomeScreen();
 
   test::OobeJS().ClickOnPath(kDemoPreferencesNext);
 
-  UseOnlineModeOnNetworkScreen();
-
-  OobeScreenWaiter(ArcTermsOfServiceScreenView::kScreenId).Wait();
-  test::OobeJS().ClickOnPath(kArcTosBackButton);
-
+  if (chromeos::features::IsOobeConsolidatedConsentEnabled()) {
+    UseOnlineModeOnNetworkScreen();
+    test::WaitForConsolidatedConsentScreen();
+    test::OobeJS().ClickOnPath(kCCBackButton);
+  } else {
+    // User cannot go to ARC ToS screen without accepting eula - simulate that.
+    StartupUtils::MarkEulaAccepted();
+    UseOnlineModeOnNetworkScreen();
+    OobeScreenWaiter(ArcTermsOfServiceScreenView::kScreenId).Wait();
+    test::OobeJS().ClickOnPath(kArcTosBackButton);
+  }
   test::WaitForNetworkSelectionScreen();
 }
 
diff --git a/chrome/browser/ash/login/screens/sync_consent_browsertest.cc b/chrome/browser/ash/login/screens/sync_consent_browsertest.cc
index ea36055..2b16c6f9 100644
--- a/chrome/browser/ash/login/screens/sync_consent_browsertest.cc
+++ b/chrome/browser/ash/login/screens/sync_consent_browsertest.cc
@@ -198,8 +198,17 @@
 
   void LoginAndWaitForSyncConsentScreen() {
     login_manager_mixin_.LoginAsNewRegularUser();
-    // No need to explicitly show the screen as it is the first "stable" one
-    // after login. Screen may "skip", so OobeScreenWaiter will not stop. Use
+
+    // If the screen has already exited, don't try to show it again.
+    // Although, sync consent screen is not the first screen in the onboarding
+    // flow when OobeConsolidatedConsent feature is enabled, it can be reached
+    // and skipped after its predecessors are skipped.
+    if (chromeos::features::IsOobeConsolidatedConsentEnabled() &&
+        !screen_exited_)
+      LoginDisplayHost::default_host()->StartWizard(
+          SyncConsentScreenView::kScreenId);
+
+    // Sync Consent screen may skip, so OobeScreenWaiter will not stop. Use
     // custom predicate instead.
     test::TestPredicateWaiter(
         base::BindRepeating(
@@ -218,13 +227,8 @@
         .Wait();
   }
 
-  void LoginAsNewRegularUser() {
-    login_manager_mixin_.LoginAsNewRegularUser();
-    OobeScreenExitWaiter(GetFirstSigninScreen()).Wait();
-  }
-
-  // Attempts to log in to sync consent screen if it is not to be skipped
-  void LoginToSyncConsentScreen() {
+  // Attempts to log in and show sync consent screen if it is not to be skipped.
+  void LoginAndShowSyncConsentScreenWithCapability() {
     LoginAndWaitForSyncConsentScreen();
     SetIsMinorUser(is_minor_user_);
     GetSyncConsentScreen()->SetProfileSyncEngineInitializedForTesting(true);
@@ -302,7 +306,7 @@
 IN_PROC_BROWSER_TEST_F(SyncConsentTest, SkippedNotBrandedBuild) {
   LoginDisplayHost::default_host()->GetWizardContext()->is_branded_build =
       false;
-  LoginToSyncConsentScreen();
+  LoginAndShowSyncConsentScreenWithCapability();
 
   WaitForScreenExit();
   EXPECT_EQ(screen_result_.value(), SyncConsentScreen::Result::NOT_APPLICABLE);
@@ -315,7 +319,7 @@
   // Set up screen and policy.
   SyncConsentScreen::SetProfileSyncDisabledByPolicyForTesting(true);
 
-  LoginToSyncConsentScreen();
+  LoginAndShowSyncConsentScreenWithCapability();
 
   WaitForScreenExit();
   EXPECT_EQ(screen_result_.value(), SyncConsentScreen::Result::NOT_APPLICABLE);
@@ -325,7 +329,7 @@
 }
 
 IN_PROC_BROWSER_TEST_F(SyncConsentTest, PRE_AbortedSetup) {
-  LoginToSyncConsentScreen();
+  LoginAndShowSyncConsentScreenWithCapability();
   WaitForScreenShown();
   test::OobeJS().CreateVisibilityWaiter(true, {kSyncConsent})->Wait();
   test::OobeJS().ExpectVisiblePath(kOverviewDialog);
@@ -356,7 +360,7 @@
 
 IN_PROC_BROWSER_TEST_F(SyncConsentRecorderTest, SyncConsentRecorder) {
   EXPECT_EQ(g_browser_process->GetApplicationLocale(), "en-US");
-  LoginToSyncConsentScreen();
+  LoginAndShowSyncConsentScreenWithCapability();
   WaitForScreenShown();
 
   SyncConsentScreen* screen = GetSyncConsentScreen();
@@ -409,7 +413,7 @@
 IN_PROC_BROWSER_TEST_P(SyncConsentTestWithParams, SyncConsentTestWithLocale) {
   EXPECT_EQ(g_browser_process->GetApplicationLocale(), "en-US");
   SwitchLanguage(GetParam());
-  LoginToSyncConsentScreen();
+  LoginAndShowSyncConsentScreenWithCapability();
   WaitForScreenShown();
 
   SyncConsentScreen* screen = GetSyncConsentScreen();
@@ -445,7 +449,7 @@
 
 IN_PROC_BROWSER_TEST_P(SyncConsentPolicyDisabledTest,
                        SyncConsentPolicyDisabled) {
-  LoginToSyncConsentScreen();
+  LoginAndShowSyncConsentScreenWithCapability();
   WaitForScreenShown();
 
   SyncConsentScreen* screen = GetSyncConsentScreen();
@@ -521,7 +525,7 @@
 };
 
 IN_PROC_BROWSER_TEST_F(SyncConsentTimezoneOverride, MakesTimezoneRequest) {
-  LoginToSyncConsentScreen();
+  LoginAndShowSyncConsentScreenWithCapability();
   EXPECT_EQ("TimezeonPropagationTest",
             g_browser_process->local_state()->GetString(
                 ::prefs::kSigninScreenTimezone));
@@ -537,7 +541,7 @@
 };
 
 IN_PROC_BROWSER_TEST_F(SyncConsentMinorModeTest, Accept) {
-  LoginToSyncConsentScreen();
+  LoginAndShowSyncConsentScreenWithCapability();
   WaitForScreenShown();
 
   SyncConsentScreen* screen = GetSyncConsentScreen();
@@ -595,7 +599,7 @@
 }
 
 IN_PROC_BROWSER_TEST_F(SyncConsentMinorModeTest, Decline) {
-  LoginToSyncConsentScreen();
+  LoginAndShowSyncConsentScreenWithCapability();
   WaitForScreenShown();
 
   SyncConsentScreen* screen = GetSyncConsentScreen();
@@ -653,7 +657,7 @@
 }
 
 IN_PROC_BROWSER_TEST_F(SyncConsentMinorModeTest, PRE_AbortedSetup) {
-  LoginToSyncConsentScreen();
+  LoginAndShowSyncConsentScreenWithCapability();
   WaitForScreenShown();
   test::OobeJS().CreateVisibilityWaiter(true, {kSyncConsent})->Wait();
   test::OobeJS().ExpectVisiblePath(kOverviewDialog);
@@ -699,13 +703,12 @@
 
 IN_PROC_BROWSER_TEST_F(SyncConsentTimeoutTest,
                        SyncEngineInitializationTimeout) {
-  auto syncWaiter = test::OobeJS().CreateVisibilityWaiter(true, {kSyncConsent});
   auto overviewDialogWaiter =
       test::OobeJS().CreateVisibilityWaiter(true, {kOverviewDialog});
-  LoginAsNewRegularUser();
-  // No need to explicitly show the screen as it is the first one after login.
+
+  LoginAndWaitForSyncConsentScreen();
   WaitForScreenShown();
-  syncWaiter->Wait();
+
   overviewDialogWaiter->Wait();
 }
 
diff --git a/chrome/browser/ash/login/wizard_controller.cc b/chrome/browser/ash/login/wizard_controller.cc
index 1159391..2b992a0 100644
--- a/chrome/browser/ash/login/wizard_controller.cc
+++ b/chrome/browser/ash/login/wizard_controller.cc
@@ -1351,7 +1351,7 @@
       // method.
       DCHECK(demo_setup_controller_);
       PerformPostEulaActions();
-      ShowArcTermsOfServiceScreen();
+      ShowConsolidatedConsentScreen();
       break;
     case EulaScreen::Result::NOT_APPLICABLE_CONSOLIDATED_CONSENT_REGULAR:
       DCHECK(!demo_setup_controller_);
diff --git a/chrome/browser/ash/net/network_diagnostics/arc_ping_routine.cc b/chrome/browser/ash/net/network_diagnostics/arc_ping_routine.cc
index 18728ec..383b317 100644
--- a/chrome/browser/ash/net/network_diagnostics/arc_ping_routine.cc
+++ b/chrome/browser/ash/net/network_diagnostics/arc_ping_routine.cc
@@ -125,7 +125,7 @@
 void ArcPingRoutine::PingGateways() {
   arc::mojom::NetInstance* net_instance = GetNetInstance();
   if (net_instance) {
-    for (uint16_t i = 0; i < gateways_.size(); i++) {
+    for (size_t i = 0; i < gateways_.size(); i++) {
       net_instance->PingTest(
           gateways_transport_names_[i], gateways_[i],
           base::BindOnce(&ArcPingRoutine::OnRequestComplete,
diff --git a/chrome/browser/ash/policy/dlp/dlp_content_manager_ash.cc b/chrome/browser/ash/policy/dlp/dlp_content_manager_ash.cc
index b973fed..bdb194e 100644
--- a/chrome/browser/ash/policy/dlp/dlp_content_manager_ash.cc
+++ b/chrome/browser/ash/policy/dlp/dlp_content_manager_ash.cc
@@ -122,8 +122,10 @@
     ash::OnCaptureModeDlpRestrictionChecked callback) {
   const ConfidentialContentsInfo info =
       GetAreaConfidentialContentsInfo(area, DlpContentRestriction::kScreenshot);
-  MaybeReportEvent(info.restriction_info,
-                   DlpRulesManager::Restriction::kScreenshot);
+  if (IsBlocked(info.restriction_info)) {
+    MaybeReportEvent(info.restriction_info,
+                     DlpRulesManager::Restriction::kScreenshot);
+  }
   DlpBooleanHistogram(dlp::kScreenshotBlockedUMA,
                       IsBlocked(info.restriction_info));
   CheckScreenCaptureRestriction(info, std::move(callback));
@@ -152,6 +154,20 @@
 void DlpContentManagerAsh::OnVideoCaptureStarted(const ScreenshotArea& area) {
   DCHECK(!running_video_capture_info_.has_value());
   running_video_capture_info_.emplace(area);
+  const ConfidentialContentsInfo info =
+      GetAreaConfidentialContentsInfo(area, DlpContentRestriction::kScreenshot);
+  // Taking video capture of confidential content with block level restriction
+  // should not proceed to this function. Taking video capture should be blocked
+  // earlier.
+  DCHECK(!IsBlocked(info.restriction_info));
+  if (IsReported(info.restriction_info)) {
+    // Don't report for the report mode before starting a video capture to avoid
+    // reporting multiple times.
+    DCHECK(!running_video_capture_info_->was_reported);
+    MaybeReportEvent(info.restriction_info,
+                     DlpRulesManager::Restriction::kScreenshot);
+    running_video_capture_info_->was_reported = true;
+  }
 }
 
 void DlpContentManagerAsh::CheckStoppedVideoCapture(
@@ -170,8 +186,14 @@
     auto reporting_callback = base::BindOnce(
         &MaybeReportWarningProceededEvent, url,
         DlpRulesManager::Restriction::kScreenshot, reporting_manager_);
+    // base::Unretained(this) is safe here because DlpContentManagerAsh is
+    // initialized as a singleton that's always available in the system.
     warn_notifier_->ShowDlpVideoCaptureWarningDialog(
-        std::move(reporting_callback).Then(std::move(callback)),
+        base::BindOnce(&DlpContentManagerAsh::OnDlpWarnDialogReply,
+                       base::Unretained(this),
+                       running_video_capture_info_->confidential_contents,
+                       DlpRulesManager::Restriction::kScreenshot,
+                       std::move(reporting_callback).Then(std::move(callback))),
         running_video_capture_info_->confidential_contents);
   } else {
     std::move(callback).Run(/*proceed=*/true);
@@ -180,13 +202,29 @@
   running_video_capture_info_.reset();
 }
 
+void DlpContentManagerAsh::OnImageCapture(const ScreenshotArea& area) {
+  const ConfidentialContentsInfo info =
+      GetAreaConfidentialContentsInfo(area, DlpContentRestriction::kScreenshot);
+  // Taking screenshots of confidential content with block level restriction
+  // should not proceed to this function. Taking screenshot should be blocked
+  // earlier.
+  DCHECK(!IsBlocked(info.restriction_info));
+  if (IsReported(info.restriction_info)) {
+    MaybeReportEvent(info.restriction_info,
+                     DlpRulesManager::Restriction::kScreenshot);
+  }
+}
+
 void DlpContentManagerAsh::CheckCaptureModeInitRestriction(
     ash::OnCaptureModeDlpRestrictionChecked callback) {
   const ConfidentialContentsInfo info =
       GetConfidentialContentsOnScreen(DlpContentRestriction::kScreenshot);
 
-  MaybeReportEvent(info.restriction_info,
-                   DlpRulesManager::Restriction::kScreenshot);
+  if (IsBlocked(info.restriction_info)) {
+    MaybeReportEvent(info.restriction_info,
+                     DlpRulesManager::Restriction::kScreenshot);
+  }
+
   DlpBooleanHistogram(dlp::kCaptureModeInitBlockedUMA,
                       IsBlocked(info.restriction_info));
   CheckScreenCaptureRestriction(info, std::move(callback));
@@ -685,8 +723,13 @@
     return;
   ConfidentialContentsInfo info = GetAreaConfidentialContentsInfo(
       running_video_capture_info_->area, DlpContentRestriction::kScreenshot);
-  MaybeReportEvent(info.restriction_info,
-                   DlpRulesManager::Restriction::kScreenshot);
+
+  if (!running_video_capture_info_->was_reported) {
+    MaybeReportEvent(info.restriction_info,
+                     DlpRulesManager::Restriction::kScreenshot);
+    running_video_capture_info_->was_reported = true;
+  }
+
   if (IsBlocked(info.restriction_info)) {
     DlpBooleanHistogram(dlp::kVideoCaptureInterruptedUMA, true);
     InterruptVideoRecording();
diff --git a/chrome/browser/ash/policy/dlp/dlp_content_manager_ash.h b/chrome/browser/ash/policy/dlp/dlp_content_manager_ash.h
index d1466135..a0f7ef7 100644
--- a/chrome/browser/ash/policy/dlp/dlp_content_manager_ash.h
+++ b/chrome/browser/ash/policy/dlp/dlp_content_manager_ash.h
@@ -101,6 +101,9 @@
   void CheckStoppedVideoCapture(
       ash::OnCaptureModeDlpRestrictionChecked callback);
 
+  // Called when screenshot is taken for |area|.
+  void OnImageCapture(const ScreenshotArea& area);
+
   // Checks whether initiation of capture mode is restricted or not advised
   // based on the currently visible content. Depending on the result, calls
   // |callback| and passes an indicator whether to proceed or not.
@@ -219,6 +222,9 @@
 
     const ScreenshotArea area;
     DlpConfidentialContents confidential_contents;
+    // For a single video capture there should be sent at most one reporting
+    // event. This flag informs if we already sent an event for the report mode.
+    bool was_reported = false;
   };
 
   DlpContentManagerAsh();
diff --git a/chrome/browser/ash/policy/dlp/dlp_content_manager_ash_browsertest.cc b/chrome/browser/ash/policy/dlp/dlp_content_manager_ash_browsertest.cc
index b60e4a075..8870b6a 100644
--- a/chrome/browser/ash/policy/dlp/dlp_content_manager_ash_browsertest.cc
+++ b/chrome/browser/ash/policy/dlp/dlp_content_manager_ash_browsertest.cc
@@ -8,7 +8,6 @@
 #include <memory>
 #include <string>
 
-#include "ash/shell.h"
 #include "base/bind.h"
 #include "base/callback_helpers.h"
 #include "base/run_loop.h"
@@ -44,6 +43,7 @@
 #include "chrome/browser/ui/browser_commands.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/test/base/in_process_browser_test.h"
+#include "chrome/test/base/interactive_test_utils.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "components/reporting/client/report_queue_impl.h"
 #include "components/reporting/storage/test_storage_module.h"
@@ -57,13 +57,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/public/mojom/mediastream/media_stream.mojom-shared.h"
-#include "ui/aura/test/event_generator_delegate_aura.h"
 #include "ui/aura/window.h"
-#include "ui/aura/window_tree_host.h"
-#include "ui/display/display.h"
-#include "ui/display/screen.h"
-#include "ui/events/event_constants.h"
-#include "ui/events/test/event_generator.h"
 #include "ui/gfx/geometry/rect.h"
 
 using testing::_;
@@ -72,27 +66,6 @@
 
 namespace {
 
-class DlpEventGeneratorDelegate
-    : public aura::test::EventGeneratorDelegateAura {
- public:
-  DlpEventGeneratorDelegate() = default;
-
-  DlpEventGeneratorDelegate(const DlpEventGeneratorDelegate&) = delete;
-  DlpEventGeneratorDelegate& operator=(const DlpEventGeneratorDelegate&) =
-      delete;
-
-  ~DlpEventGeneratorDelegate() override = default;
-
-  // aura::test::EventGeneratorDelegateAura overrides:
-  ui::EventTarget* GetTargetAt(const gfx::Point& point_in_screen) override {
-    display::Screen* screen = display::Screen::GetScreen();
-    display::Display display = screen->GetDisplayNearestPoint(point_in_screen);
-    return ash::Shell::GetRootWindowForDisplayId(display.id())
-        ->GetHost()
-        ->window();
-  }
-};
-
 const DlpContentRestrictionSet kEmptyRestrictionSet;
 const DlpContentRestrictionSet kScreenshotRestricted(
     DlpContentRestriction::kScreenshot,
@@ -205,11 +178,6 @@
     }
   }
 
-  std::unique_ptr<ui::test::EventGenerator> GetEventGenerator() {
-    return std::make_unique<ui::test::EventGenerator>(
-        std::make_unique<DlpEventGeneratorDelegate>());
-  }
-
   // TODO(https://crbug.com/1283065): Remove this.
   // Currently, setting the notifier explicitly is needed since otherwise, due
   // to a wrongly initialized notifier, calling the virtual
@@ -731,15 +699,18 @@
       on_dlp_checked_at_video_end_cb;
   EXPECT_CALL(on_dlp_checked_at_video_end_cb, Run(true)).Times(1);
   EXPECT_CALL(on_dlp_checked_at_video_end_cb, Run(false)).Times(0);
+  EXPECT_FALSE(helper_->HasAnyContentCached());
   capture_mode_delegate->StopObservingRestrictedContent(
       on_dlp_checked_at_video_end_cb.Get());
   // Check that the warning is now shown.
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 1);
-  std::unique_ptr<ui::test::EventGenerator> event_generator =
-      GetEventGenerator();
   // Hit Enter to "Save anyway".
-  event_generator->PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
+  ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
+      browser(), ui::VKEY_RETURN, /*control=*/false,
+      /*shift=*/false, /*alt=*/false, /*command=*/false));
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 0);
+  EXPECT_TRUE(helper_->HasContentCachedForRestriction(
+      web_contents1, DlpRulesManager::Restriction::kScreenshot));
 
   browser2->window()->Close();
   histogram_tester_.ExpectBucketCount(
@@ -794,15 +765,17 @@
       on_dlp_checked_at_video_end_cb;
   EXPECT_CALL(on_dlp_checked_at_video_end_cb, Run(true)).Times(0);
   EXPECT_CALL(on_dlp_checked_at_video_end_cb, Run(false)).Times(1);
+  EXPECT_FALSE(helper_->HasAnyContentCached());
   capture_mode_delegate->StopObservingRestrictedContent(
       on_dlp_checked_at_video_end_cb.Get());
   // Check that the warning is now shown.
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 1);
-  std::unique_ptr<ui::test::EventGenerator> event_generator =
-      GetEventGenerator();
   // Hit Enter to "Cancel".
-  event_generator->PressAndReleaseKey(ui::KeyboardCode::VKEY_ESCAPE);
+  ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
+      browser(), ui::VKEY_ESCAPE, /*control=*/false,
+      /*shift=*/false, /*alt=*/false, /*command=*/false));
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 0);
+  EXPECT_FALSE(helper_->HasAnyContentCached());
 
   browser2->window()->Close();
   histogram_tester_.ExpectBucketCount(
@@ -943,11 +916,10 @@
   helper_->ChangeConfidentiality(web_contents, kScreenShareWarned);
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 1);
 
-  std::unique_ptr<ui::test::EventGenerator> event_generator =
-      GetEventGenerator();
-
   // Hit Enter to "Share anyway".
-  event_generator->PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
+  ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
+      browser(), ui::VKEY_RETURN, /*control=*/false,
+      /*shift=*/false, /*alt=*/false, /*command=*/false));
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 0);
 
   EXPECT_TRUE(helper_->HasContentCachedForRestriction(
@@ -994,11 +966,10 @@
   helper_->ChangeConfidentiality(web_contents, kScreenShareWarned);
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 1);
 
-  std::unique_ptr<ui::test::EventGenerator> event_generator =
-      GetEventGenerator();
-
   // Hit Esc to "Cancel".
-  event_generator->PressAndReleaseKey(ui::KeyboardCode::VKEY_ESCAPE);
+  ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
+      browser(), ui::VKEY_ESCAPE, /*control=*/false,
+      /*shift=*/false, /*alt=*/false, /*command=*/false));
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 0);
   EXPECT_FALSE(helper_->HasAnyContentCached());
   // The screen share should be stopped so would not be checked again, and this
@@ -1494,9 +1465,6 @@
   // Set up printing restriction.
   helper_->ChangeConfidentiality(web_contents, kPrintWarned);
 
-  std::unique_ptr<ui::test::EventGenerator> event_generator =
-      GetEventGenerator();
-
   MockPrintManager* print_manager = GetPrintManager(web_contents);
   testing::InSequence s;
   EXPECT_CALL(*print_manager, PrintPreviewRejectedForTesting()).Times(1);
@@ -1505,7 +1473,9 @@
   StartPrint(print_manager, web_contents);
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 1);
   // Hit Esc to "Cancel".
-  event_generator->PressAndReleaseKey(ui::KeyboardCode::VKEY_ESCAPE);
+  ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
+      browser(), ui::VKEY_ESCAPE, /*control=*/false,
+      /*shift=*/false, /*alt=*/false, /*command=*/false));
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 0);
   // There should be no notification about printing restriction.
   EXPECT_FALSE(
@@ -1515,7 +1485,9 @@
   StartPrint(print_manager, web_contents);
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 1);
   // Hit Enter to "Print anyway".
-  event_generator->PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
+  ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
+      browser(), ui::VKEY_RETURN, /*control=*/false,
+      /*shift=*/false, /*alt=*/false, /*command=*/false));
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 0);
   EXPECT_TRUE(helper_->HasContentCachedForRestriction(
       web_contents, DlpRulesManager::Restriction::kPrinting));
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index 1f5eb85..05e20156 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -1490,7 +1490,7 @@
   StartupProfileInfo profile_info = CreateInitialProfile(
       parameters_, /*cur_dir=*/base::FilePath(), parsed_command_line());
 
-  profile_ = profile_info.profile;
+  Profile* profile = profile_info.profile;
   if (profile_info.mode == StartupProfileMode::kError)
     return content::RESULT_CODE_NORMAL_EXIT;
 
@@ -1500,10 +1500,10 @@
   // context menu for editable content.
   if (profile_info.mode == StartupProfileMode::kBrowserWindow &&
       spellcheck::UseBrowserSpellChecker() &&
-      profile_->GetPrefs()->GetBoolean(spellcheck::prefs::kSpellCheckEnable) &&
+      profile->GetPrefs()->GetBoolean(spellcheck::prefs::kSpellCheckEnable) &&
       !base::FeatureList::IsEnabled(
           spellcheck::kWinDelaySpellcheckServiceInit)) {
-    SpellcheckServiceFactory::GetForContext(profile_);
+    SpellcheckServiceFactory::GetForContext(profile);
   }
 #endif  // defined(OS_WIN) && BUILDFLAG(USE_BROWSER_SPELLCHECKER)
 
@@ -1547,7 +1547,7 @@
 
   // TODO(stevenjb): Move WIN and MACOSX specific code to appropriate Parts.
   // (requires supporting early exit).
-  CallPostProfileInit(profile_);
+  CallPostProfileInit(profile);
   if (base::FeatureList::IsEnabled(features::kObserverBasedPostProfileInit)) {
     // Set up PostProfileInit triggering for profiles created later.
     profile_init_manager_ = std::make_unique<ProfileInitManager>(this);
@@ -1558,10 +1558,10 @@
   // and preferences have been registered since some of the import code depends
   // on preferences.
   if (first_run::IsChromeFirstRun()) {
-    first_run::AutoImport(profile_, master_prefs_->import_bookmarks_path);
+    first_run::AutoImport(profile, master_prefs_->import_bookmarks_path);
 
     // Note: This can pop-up the first run consent dialog on Linux & Mac.
-    first_run::DoPostImportTasks(profile_,
+    first_run::DoPostImportTasks(profile,
                                  master_prefs_->make_chrome_default_for_user);
 
     // The first run dialog is modal, and spins a RunLoop, which could receive
@@ -1590,11 +1590,11 @@
 
   // Verify that the profile is not on a network share and if so prepare to show
   // notification to the user.
-  if (NetworkProfileBubble::ShouldCheckNetworkProfile(profile_)) {
+  if (NetworkProfileBubble::ShouldCheckNetworkProfile(profile)) {
     base::ThreadPool::PostTask(
         FROM_HERE, {base::MayBlock()},
         base::BindOnce(&NetworkProfileBubble::CheckNetworkProfile,
-                       profile_->GetPath()));
+                       profile->GetPath()));
   }
 #endif  // defined(OS_WIN)
 
@@ -1602,8 +1602,7 @@
   // Init the RLZ library. This just binds the dll and schedules a task on the
   // file thread to be run sometime later. If this is the first run we record
   // the installation event.
-  int ping_delay =
-      profile_->GetPrefs()->GetInteger(prefs::kRlzPingDelaySeconds);
+  int ping_delay = profile->GetPrefs()->GetInteger(prefs::kRlzPingDelaySeconds);
   // Negative ping delay means to send ping immediately after a first search is
   // recorded.
   rlz::RLZTracker::SetRlzDelegate(
@@ -1611,9 +1610,9 @@
   rlz::RLZTracker::InitRlzDelayed(
       first_run::IsChromeFirstRun(), ping_delay < 0,
       base::Seconds(abs(ping_delay)),
-      ChromeRLZTrackerDelegate::IsGoogleDefaultSearch(profile_),
-      ChromeRLZTrackerDelegate::IsGoogleHomepage(profile_),
-      ChromeRLZTrackerDelegate::IsGoogleInStartpages(profile_));
+      ChromeRLZTrackerDelegate::IsGoogleDefaultSearch(profile),
+      ChromeRLZTrackerDelegate::IsGoogleHomepage(profile),
+      ChromeRLZTrackerDelegate::IsGoogleInStartpages(profile));
 #endif  // BUILDFLAG(ENABLE_RLZ) && !BUILDFLAG(IS_CHROMEOS_ASH)
 
   // Configure modules that need access to resources.
@@ -1651,15 +1650,15 @@
   HandleTestParameters(parsed_command_line());
 
   language::LanguageUsageMetrics::RecordAcceptLanguages(
-      profile_->GetPrefs()->GetString(language::prefs::kAcceptLanguages));
+      profile->GetPrefs()->GetString(language::prefs::kAcceptLanguages));
   language::LanguageUsageMetrics::RecordApplicationLanguage(
       browser_process_->GetApplicationLocale());
   translate::TranslateMetricsLoggerImpl::LogApplicationStartMetrics(
-      ChromeTranslateClient::CreateTranslatePrefs(profile_->GetPrefs()));
+      ChromeTranslateClient::CreateTranslatePrefs(profile->GetPrefs()));
 // On ChromeOS results in a crash. https://crbug.com/1151558
 #if !BUILDFLAG(IS_CHROMEOS_ASH)
   language::LanguageUsageMetrics::RecordPageLanguages(
-      *UrlLanguageHistogramFactory::GetForBrowserContext(profile_));
+      *UrlLanguageHistogramFactory::GetForBrowserContext(profile));
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
 // On mobile, the need for a clean shutdown arises only when the application
@@ -1702,7 +1701,7 @@
 #if !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
     // Exclude Android: SODA is not supported.
     // Exclude ChromeOS: SODA is independent of Component Updater.
-    speech::SodaInstaller::GetInstance()->Init(profile_->GetPrefs(),
+    speech::SodaInstaller::GetInstance()->Init(profile->GetPrefs(),
                                                browser_process_->local_state());
 #endif  // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
 
@@ -1724,7 +1723,7 @@
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   if (base::FeatureList::IsEnabled(ash::features::kOnDeviceSpeechRecognition)) {
-    speech::SodaInstaller::GetInstance()->Init(profile_->GetPrefs(),
+    speech::SodaInstaller::GetInstance()->Init(profile->GetPrefs(),
                                                browser_process_->local_state());
   }
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -1737,7 +1736,7 @@
 #if defined(OS_ANDROID)
   // Just initialize the policy prefs service here. Variations seed fetching
   // will be initialized when the app enters foreground mode.
-  variations_service->set_policy_pref_service(profile_->GetPrefs());
+  variations_service->set_policy_pref_service(profile->GetPrefs());
 
 #else
   // We are in regular browser boot sequence. Open initial tabs and enter the
@@ -1845,7 +1844,8 @@
 void ChromeBrowserMainParts::OnFirstIdle() {
   startup_metric_utils::RecordBrowserMainLoopFirstIdle(base::TimeTicks::Now());
 #if defined(OS_ANDROID)
-  sharing::ShareHistory::CreateForProfile(profile_);
+  sharing::ShareHistory::CreateForProfile(
+      ProfileManager::GetPrimaryUserProfile());
 #endif
 }
 
diff --git a/chrome/browser/chrome_browser_main.h b/chrome/browser/chrome_browser_main.h
index 162170ff..39874d1 100644
--- a/chrome/browser/chrome_browser_main.h
+++ b/chrome/browser/chrome_browser_main.h
@@ -209,8 +209,6 @@
   std::unique_ptr<first_run::MasterPrefs> master_prefs_;
 #endif
 
-  raw_ptr<Profile> profile_ = nullptr;
-
   base::FilePath user_data_dir_;
 
   raw_ptr<StartupData> startup_data_;
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 4934e37..3ebeb0b 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1308,8 +1308,6 @@
       prefs::kSharedArrayBufferUnrestrictedAccessAllowed, false);
 #endif
   registry->RegisterBooleanPref(prefs::kSandboxExternalProtocolBlocked, true);
-  registry->RegisterBooleanPref(
-      prefs::kCrossOriginWebAssemblyModuleSharingEnabled, false);
   registry->RegisterBooleanPref(prefs::kDisplayCapturePermissionsPolicyEnabled,
                                 true);
   registry->RegisterBooleanPref(prefs::kSSLErrorOverrideAllowed, true);
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc b/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc
index 8240762..ebccab4f6 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc
+++ b/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc
@@ -130,6 +130,7 @@
 DlpContentManager::DlpContentManager() = default;
 DlpContentManager::~DlpContentManager() = default;
 
+// static
 void DlpContentManager::ReportWarningProceededEvent(
     const GURL& url,
     DlpRulesManager::Restriction restriction,
@@ -146,6 +147,7 @@
   }
 }
 
+// static
 bool DlpContentManager::MaybeReportWarningProceededEvent(
     GURL url,
     DlpRulesManager::Restriction restriction,
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_data_transfer_notifier.cc b/chrome/browser/chromeos/policy/dlp/dlp_data_transfer_notifier.cc
index b6ef986..2f280bf9 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_data_transfer_notifier.cc
+++ b/chrome/browser/chromeos/policy/dlp/dlp_data_transfer_notifier.cc
@@ -59,27 +59,28 @@
   ui::TextInputClient* text_input_client =
       host->GetInputMethod()->GetTextInputClient();
 
+  gfx::Point widget_origin =
+      display::Screen::GetScreen()->GetCursorScreenPoint();
+
   // `text_input_client` may be null. For example, in clamshell mode and without
   // any window open.
-  if (!text_input_client)
-    return;
+  if (text_input_client) {
+    gfx::Rect caret_bounds = text_input_client->GetCaretBounds();
 
-  gfx::Rect caret_bounds = text_input_client->GetCaretBounds();
-
-  // Note that the width of caret's bounds may be zero in some views (such as
-  // the search bar of Google search web page). So we cannot use
-  // gfx::Size::IsEmpty() here. In addition, the applications using IFrame may
-  // provide unreliable `caret_bounds` which are not fully contained by the
-  // display bounds.
-  const bool caret_bounds_are_valid = caret_bounds.size() != gfx::Size() &&
-                                      IsRectContainedByAnyDisplay(caret_bounds);
-  if (!caret_bounds_are_valid) {
-    caret_bounds.set_origin(
-        display::Screen::GetScreen()->GetCursorScreenPoint());
+    // Note that the width of caret's bounds may be zero in some views (such as
+    // the search bar of Google search web page). So we cannot use
+    // gfx::Size::IsEmpty() here. In addition, the applications using IFrame may
+    // provide unreliable `caret_bounds` which are not fully contained by the
+    // display bounds.
+    const bool caret_bounds_are_valid =
+        caret_bounds.size() != gfx::Size() &&
+        IsRectContainedByAnyDisplay(caret_bounds);
+    if (caret_bounds_are_valid)
+      widget_origin = caret_bounds.origin();
   }
 
   gfx::Rect widget_bounds =
-      gfx::Rect(caret_bounds.x(), caret_bounds.y(), bubble_size.width(),
+      gfx::Rect(widget_origin.x(), widget_origin.y(), bubble_size.width(),
                 bubble_size.height());
   widget_bounds.AdjustToFit(display.work_area());
 
diff --git a/chrome/browser/extensions/api/terminal/terminal_private_api.cc b/chrome/browser/extensions/api/terminal/terminal_private_api.cc
index b5c2951..148d0bb 100644
--- a/chrome/browser/extensions/api/terminal/terminal_private_api.cc
+++ b/chrome/browser/extensions/api/terminal/terminal_private_api.cc
@@ -30,9 +30,11 @@
 #include "chrome/browser/ash/crostini/crostini_pref_names.h"
 #include "chrome/browser/ash/crostini/crostini_terminal.h"
 #include "chrome/browser/ash/crostini/crostini_util.h"
+#include "chrome/browser/browser_process.h"
 #include "chrome/browser/extensions/api/terminal/crostini_startup_status.h"
 #include "chrome/browser/extensions/extension_service.h"
 #include "chrome/browser/extensions/extension_tab_util.h"
+#include "chrome/browser/policy/system_features_disable_list_policy_handler.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/extensions/api/terminal_private.h"
 #include "chromeos/process_proxy/process_proxy_registry.h"
@@ -269,6 +271,12 @@
             command_line->GetSwitchValueASCII(switches::kCroshCommand))));
 
   } else if (process_name == kCroshName) {
+    // Ensure crosh is allowed before starting terminal.
+    if (policy::SystemFeaturesDisableListPolicyHandler::IsSystemFeatureDisabled(
+            policy::SystemFeature::kCrosh, g_browser_process->local_state())) {
+      return RespondNow(Error("crosh not allowed"));
+    }
+
     // command=crosh: use '/usr/bin/crosh' on a device, 'cat' otherwise.
     if (base::SysInfo::IsRunningOnChromeOS()) {
       OpenProcess(user_id_hash,
@@ -277,7 +285,6 @@
       OpenProcess(user_id_hash,
                   base::CommandLine(base::FilePath(kStubbedCroshCommand)));
     }
-
   } else if (process_name == kVmShellName) {
     // Ensure crostini is allowed before starting terminal.
     Profile* profile = Profile::FromBrowserContext(browser_context());
diff --git a/chrome/browser/extensions/api/terminal/terminal_private_browsertest.cc b/chrome/browser/extensions/api/terminal/terminal_private_browsertest.cc
index 011d957..c5785d7bf 100644
--- a/chrome/browser/extensions/api/terminal/terminal_private_browsertest.cc
+++ b/chrome/browser/extensions/api/terminal/terminal_private_browsertest.cc
@@ -5,10 +5,14 @@
 #include <memory>
 
 #include "chrome/browser/ash/crostini/fake_crostini_features.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/policy/system_features_disable_list_policy_handler.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
+#include "components/policy/core/common/policy_pref_names.h"
+#include "components/prefs/scoped_user_pref_update.h"
 #include "content/public/test/browser_test.h"
 #include "content/public/test/browser_test_utils.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -59,4 +63,29 @@
                  "undefined");
 }
 
+IN_PROC_BROWSER_TEST_F(TerminalPrivateBrowserTest, OpenCroshProcessChecks) {
+  ASSERT_TRUE(ui_test_utils::NavigateToURL(
+      browser(), GURL("chrome-untrusted://crosh/html/crosh.html")));
+
+  const std::string script = R"(new Promise((resolve) => {
+    chrome.terminalPrivate.openTerminalProcess("crosh", [], () => {
+      const lastError = chrome.runtime.lastError;
+      resolve(lastError ? lastError.message : "success");
+    })
+    }))";
+
+  base::Value system_features(base::Value::Type::LIST);
+  system_features.Append(policy::SystemFeature::kCrosh);
+  g_browser_process->local_state()->Set(
+      policy::policy_prefs::kSystemFeaturesDisableList,
+      std::move(system_features));
+  // 'crosh not allowed' when crosh is not allowed.
+  ExpectJsResult(script, "crosh not allowed");
+
+  ListPrefUpdate update(g_browser_process->local_state(),
+                        policy::policy_prefs::kSystemFeaturesDisableList);
+  update->ClearList();
+  ExpectJsResult(script, "success");
+}
+
 }  // namespace extensions
diff --git a/chrome/browser/history_clusters/history_clusters_metrics_browsertest.cc b/chrome/browser/history_clusters/history_clusters_metrics_browsertest.cc
index 8fd1a5e..ef75785 100644
--- a/chrome/browser/history_clusters/history_clusters_metrics_browsertest.cc
+++ b/chrome/browser/history_clusters/history_clusters_metrics_browsertest.cc
@@ -165,7 +165,9 @@
 }
 
 // Disabled on Windows, ChromeOS, and Linux due to flakes: crbug.com/1263465.
-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
+// Disabled on Mac due to flakes: crbug.com/1288805.
+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \
+    BUILDFLAG(IS_MAC)
 #define MAYBE_DirectNavigationWithToggleToBasic \
   DISABLED_DirectNavigationWithToggleToBasic
 #else
diff --git a/chrome/browser/net/network_context_configuration_browsertest.cc b/chrome/browser/net/network_context_configuration_browsertest.cc
index 3e267b5c..0cdeeff 100644
--- a/chrome/browser/net/network_context_configuration_browsertest.cc
+++ b/chrome/browser/net/network_context_configuration_browsertest.cc
@@ -1968,9 +1968,15 @@
   }
 };
 
+// crbug.com/1288780: flaky on Mac.
+#if defined(OS_MAC)
+#define MAYBE_MaxConnectionsPerProxy DISABLED_MaxConnectionsPerProxy
+#else
+#define MAYBE_MaxConnectionsPerProxy MaxConnectionsPerProxy
+#endif
 IN_PROC_BROWSER_TEST_P(
     NetworkContextConfigurationManagedProxySettingsBrowserTest,
-    MaxConnectionsPerProxy) {
+    MAYBE_MaxConnectionsPerProxy) {
   RunMaxConnectionsPerProxyTest();
 }
 
diff --git a/chrome/browser/notifications/scheduler/internal/impression_history_tracker.cc b/chrome/browser/notifications/scheduler/internal/impression_history_tracker.cc
index fe52aa5..b59c754 100644
--- a/chrome/browser/notifications/scheduler/internal/impression_history_tracker.cc
+++ b/chrome/browser/notifications/scheduler/internal/impression_history_tracker.cc
@@ -416,7 +416,7 @@
 
   // Increase |current_max_daily_show| by 1.
   client_state->current_max_daily_show =
-      base::clamp(++client_state->current_max_daily_show, 0,
+      base::clamp(client_state->current_max_daily_show + 1, 0,
                   config_.max_daily_shown_per_type);
 }
 
diff --git a/chrome/browser/policy/cloud/remote_commands_invalidator_unittest.cc b/chrome/browser/policy/cloud/remote_commands_invalidator_unittest.cc
index 2a3e5761..34518854 100644
--- a/chrome/browser/policy/cloud/remote_commands_invalidator_unittest.cc
+++ b/chrome/browser/policy/cloud/remote_commands_invalidator_unittest.cc
@@ -17,17 +17,10 @@
 
 namespace em = enterprise_management;
 
+using ::testing::Eq;
 using ::testing::Mock;
 using ::testing::StrictMock;
 
-namespace {
-
-MATCHER_P(InvalidationsEqual, expected_invalidation, "") {
-  return arg.Equals(expected_invalidation);
-}
-
-}  // namespace
-
 namespace policy {
 
 class MockRemoteCommandInvalidator : public RemoteCommandsInvalidator {
@@ -140,9 +133,8 @@
   void VerifyInvalidationEnabled(const invalidation::Topic& topic) {
     EXPECT_TRUE(invalidator_.invalidations_enabled());
 
-    EXPECT_CALL(
-        invalidator_,
-        DoRemoteCommandsFetch(InvalidationsEqual(CreateInvalidation(topic))))
+    EXPECT_CALL(invalidator_,
+                DoRemoteCommandsFetch(Eq(CreateInvalidation(topic))))
         .Times(1);
     const invalidation::Invalidation invalidation = FireInvalidation(topic);
 
@@ -187,8 +179,8 @@
 
   // Fire the invalidation, it should be acknowledged and trigger a remote
   // commands fetch.
-  EXPECT_CALL(invalidator_, DoRemoteCommandsFetch(InvalidationsEqual(
-                                CreateInvalidation(kTestingTopic1))))
+  EXPECT_CALL(invalidator_,
+              DoRemoteCommandsFetch(Eq(CreateInvalidation(kTestingTopic1))))
       .Times(1);
   const invalidation::Invalidation invalidation2 =
       FireInvalidation(kTestingTopic1);
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
index 5dad1ad7..66836b4 100644
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -584,9 +584,6 @@
   { key::kSandboxExternalProtocolBlocked,
     prefs::kSandboxExternalProtocolBlocked,
     base::Value::Type::BOOLEAN },
-  { key::kCrossOriginWebAssemblyModuleSharingEnabled,
-    prefs::kCrossOriginWebAssemblyModuleSharingEnabled,
-    base::Value::Type::BOOLEAN },
   { key::kDisplayCapturePermissionsPolicyEnabled,
     prefs::kDisplayCapturePermissionsPolicyEnabled,
     base::Value::Type::BOOLEAN },
diff --git a/chrome/browser/privacy_review/android/BUILD.gn b/chrome/browser/privacy_review/android/BUILD.gn
index e5f43d5..25b13e72 100644
--- a/chrome/browser/privacy_review/android/BUILD.gn
+++ b/chrome/browser/privacy_review/android/BUILD.gn
@@ -6,6 +6,7 @@
 
 android_library("java") {
   sources = [
+    "java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewBottomSheetView.java",
     "java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewDialog.java",
     "java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewExplanationHeading.java",
     "java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewExplanationItem.java",
@@ -13,6 +14,8 @@
   ]
   deps = [
     ":java_resources",
+    "//components/browser_ui/bottomsheet/android:java",
+    "//components/browser_ui/widget/android:java",
     "//third_party/androidx:androidx_annotation_annotation_java",
     "//third_party/androidx:androidx_appcompat_appcompat_java",
     "//third_party/androidx:androidx_recyclerview_recyclerview_java",
@@ -36,6 +39,8 @@
     "java/res/layout/privacy_review_explanation_heading.xml",
     "java/res/layout/privacy_review_explanation_item.xml",
     "java/res/layout/privacy_review_msbb_step.xml",
+    "java/res/layout/privacy_review_sb_enhanced_explanation.xml",
+    "java/res/layout/privacy_review_sb_standard_explanation.xml",
     "java/res/layout/privacy_review_sb_step.xml",
     "java/res/layout/privacy_review_steps.xml",
     "java/res/layout/privacy_review_sync_step.xml",
diff --git a/chrome/browser/privacy_review/android/java/res/layout/privacy_review_sb_enhanced_explanation.xml b/chrome/browser/privacy_review/android/java/res/layout/privacy_review_sb_enhanced_explanation.xml
new file mode 100644
index 0000000..8af197f
--- /dev/null
+++ b/chrome/browser/privacy_review/android/java/res/layout/privacy_review_sb_enhanced_explanation.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2022 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. -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="start"
+    android:orientation="vertical">
+
+    <TextView
+        android:drawablePadding="16dp"
+        android:layout_gravity="start"
+        android:layout_marginHorizontal="16dp"
+        android:layout_marginVertical="8dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/privacy_review_safe_browsing_enhanced_title"
+        style="@style/TextAppearance.Headline.Primary" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationHeading
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:titleText="@string/privacy_review_what_you_get" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationItem
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:iconImage="@drawable/ic_security_grey"
+        app:iconTint="@macro/default_icon_color"
+        app:summaryText="@string/privacy_review_sb_enhanced_item_one" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationItem
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:iconImage="@drawable/ic_google_24dp"
+        app:summaryText="@string/privacy_review_sb_enhanced_item_two" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationItem
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:iconImage="@drawable/ic_vpn_key_grey"
+        app:iconTint="@macro/default_icon_color"
+        app:summaryText="@string/privacy_review_sb_enhanced_item_three" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationItem
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:iconImage="@drawable/ic_globe_24dp"
+        app:summaryText="@string/privacy_review_sb_enhanced_item_four" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationHeading
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:titleText="@string/privacy_review_what_you_share" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationItem
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:iconImage="@drawable/ic_bar_chart_24dp"
+        app:summaryText="@string/privacy_review_sb_enhanced_item_five" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationItem
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:iconImage="@drawable/ic_web_asset_24dp"
+        app:summaryText="@string/privacy_review_sb_enhanced_item_six" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationItem
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:iconImage="@drawable/ic_account_circle_24dp"
+        app:summaryText="@string/privacy_review_sb_enhanced_item_seven" />
+
+    <!-- Extra empty space, necessary due to crbug.com/1287979. -->
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="16dp"
+        android:visibility="invisible" />
+
+</LinearLayout>
diff --git a/chrome/browser/privacy_review/android/java/res/layout/privacy_review_sb_standard_explanation.xml b/chrome/browser/privacy_review/android/java/res/layout/privacy_review_sb_standard_explanation.xml
new file mode 100644
index 0000000..449cff9d
--- /dev/null
+++ b/chrome/browser/privacy_review/android/java/res/layout/privacy_review_sb_standard_explanation.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2022 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. -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="start"
+    android:orientation="vertical">
+
+    <TextView
+        android:drawablePadding="16dp"
+        android:layout_gravity="start"
+        android:layout_marginHorizontal="16dp"
+        android:layout_marginVertical="8dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/privacy_review_safe_browsing_standard_title"
+        style="@style/TextAppearance.Headline.Primary" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationHeading
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:titleText="@string/privacy_review_what_you_get" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationItem
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:iconImage="@drawable/ic_security_grey"
+        app:iconTint="@macro/default_icon_color"
+        app:summaryText="@string/privacy_review_sb_standard_item_one" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationItem
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:iconImage="@drawable/ic_bar_chart_24dp"
+        app:summaryText="@string/privacy_review_sb_standard_item_two" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationHeading
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:titleText="@string/privacy_review_what_you_share" />
+
+    <org.chromium.chrome.browser.privacy_review.PrivacyReviewExplanationItem
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:iconImage="@drawable/ic_web_asset_24dp"
+        app:summaryText="@string/privacy_review_sb_standard_item_three" />
+
+    <!-- Extra empty space, necessary due to crbug.com/1287979. -->
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="16dp"
+        android:visibility="invisible" />
+
+</LinearLayout>
diff --git a/chrome/browser/privacy_review/android/java/res/values/attrs.xml b/chrome/browser/privacy_review/android/java/res/values/attrs.xml
index 32085e2..023ff340 100644
--- a/chrome/browser/privacy_review/android/java/res/values/attrs.xml
+++ b/chrome/browser/privacy_review/android/java/res/values/attrs.xml
@@ -9,6 +9,7 @@
   </declare-styleable>
   <declare-styleable name="PrivacyReviewExplanationItem">
         <attr name="iconImage" format="integer" />
+        <attr name="iconTint" format="color" />
         <attr name="summaryText" format="reference|string" />
   </declare-styleable>
 </resources>
diff --git a/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewBottomSheetView.java b/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewBottomSheetView.java
new file mode 100644
index 0000000..7b280682
--- /dev/null
+++ b/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewBottomSheetView.java
@@ -0,0 +1,79 @@
+// Copyright 2022 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.privacy_review;
+
+import android.view.View;
+
+import androidx.annotation.Nullable;
+
+import org.chromium.components.browser_ui.bottomsheet.BottomSheetContent;
+
+/** Bottom sheet view for displaying privacy review control explanations */
+public class PrivacyReviewBottomSheetView implements BottomSheetContent {
+    private final View mContentView;
+
+    PrivacyReviewBottomSheetView(View contentView) {
+        mContentView = contentView;
+    }
+
+    @Override
+    public View getContentView() {
+        return mContentView;
+    }
+
+    @Nullable
+    @Override
+    public View getToolbarView() {
+        return null;
+    }
+
+    @Override
+    public int getVerticalScrollOffset() {
+        return 0;
+    }
+
+    @Override
+    public void destroy() {}
+
+    @Override
+    public int getPriority() {
+        return BottomSheetContent.ContentPriority.HIGH;
+    }
+
+    @Override
+    public int getPeekHeight() {
+        return BottomSheetContent.HeightMode.DISABLED;
+    }
+
+    @Override
+    public float getFullHeightRatio() {
+        return BottomSheetContent.HeightMode.WRAP_CONTENT;
+    }
+
+    @Override
+    public boolean swipeToDismissEnabled() {
+        return true;
+    }
+
+    @Override
+    public int getSheetContentDescriptionStringId() {
+        return R.string.privacy_review_explanation_content_description;
+    }
+
+    @Override
+    public int getSheetClosedAccessibilityStringId() {
+        return R.string.privacy_review_explanation_closed_description;
+    }
+
+    @Override
+    public int getSheetHalfHeightAccessibilityStringId() {
+        return R.string.privacy_review_explanation_opened_half;
+    }
+
+    @Override
+    public int getSheetFullHeightAccessibilityStringId() {
+        return R.string.privacy_review_explanation_opened_full;
+    }
+}
diff --git a/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewDialog.java b/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewDialog.java
index 9d81bd5..b24a6e0 100644
--- a/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewDialog.java
+++ b/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewDialog.java
@@ -14,6 +14,7 @@
 import androidx.appcompat.widget.Toolbar;
 import androidx.viewpager2.widget.ViewPager2;
 
+import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
 import org.chromium.ui.widget.ButtonCompat;
 
 /**
@@ -28,9 +29,12 @@
     private ButtonCompat mNextButton;
     private ButtonCompat mBackButton;
     private ButtonCompat mFinishButton;
+    private BottomSheetController mBottomSheetController;
 
-    public PrivacyReviewDialog(Context context, ViewGroup container) {
+    public PrivacyReviewDialog(
+            Context context, ViewGroup container, BottomSheetController controller) {
         mContainer = container;
+        mBottomSheetController = controller;
         mLayoutInflater = LayoutInflater.from(context);
         mDialogView = mLayoutInflater.inflate(R.layout.privacy_review_dialog, null);
 
@@ -77,7 +81,7 @@
         mLayoutInflater.inflate(R.layout.privacy_review_steps, content);
 
         mViewPager = (ViewPager2) mDialogView.findViewById(R.id.review_viewpager);
-        mPagerAdapter = new PrivacyReviewPagerAdapter();
+        mPagerAdapter = new PrivacyReviewPagerAdapter(mBottomSheetController);
         mViewPager.setAdapter(mPagerAdapter);
 
         mNextButton = (ButtonCompat) mDialogView.findViewById(R.id.next_button);
diff --git a/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewExplanationItem.java b/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewExplanationItem.java
index 74bf17f..e3f34d68 100644
--- a/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewExplanationItem.java
+++ b/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewExplanationItem.java
@@ -5,7 +5,10 @@
 package org.chromium.chrome.browser.privacy_review;
 
 import android.content.Context;
+import android.content.res.ColorStateList;
 import android.content.res.TypedArray;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.Drawable;
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -20,16 +23,20 @@
         View view = LayoutInflater.from(context).inflate(
                 R.layout.privacy_review_explanation_item, this);
 
-        TypedArray styledAttrs = context.obtainStyledAttributes(
+        TypedArray a = context.obtainStyledAttributes(
                 attrs, R.styleable.PrivacyReviewExplanationItem, 0, 0);
 
         TextView summary = (TextView) view.findViewById(R.id.summary);
-        summary.setText(styledAttrs.getText(R.styleable.PrivacyReviewExplanationItem_summaryText));
+        summary.setText(a.getText(R.styleable.PrivacyReviewExplanationItem_summaryText));
 
-        summary.setCompoundDrawablesRelativeWithIntrinsicBounds(
-                styledAttrs.getDrawable(R.styleable.PrivacyReviewExplanationItem_iconImage), null,
-                null, null);
+        Drawable icon = a.getDrawable(R.styleable.PrivacyReviewExplanationItem_iconImage);
+        ColorStateList tint =
+                a.getColorStateList(R.styleable.PrivacyReviewExplanationItem_iconTint);
+        if (icon != null && tint != null) {
+            icon.setColorFilter(tint.getDefaultColor(), PorterDuff.Mode.SRC_IN);
+        }
+        summary.setCompoundDrawablesRelativeWithIntrinsicBounds(icon, null, null, null);
 
-        styledAttrs.recycle();
+        a.recycle();
     }
 }
diff --git a/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewPagerAdapter.java b/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewPagerAdapter.java
index 14de3a7..59eb0f17b 100644
--- a/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewPagerAdapter.java
+++ b/chrome/browser/privacy_review/android/java/src/org/chromium/chrome/browser/privacy_review/PrivacyReviewPagerAdapter.java
@@ -12,6 +12,9 @@
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.recyclerview.widget.RecyclerView.Adapter;
 
+import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
+import org.chromium.components.browser_ui.widget.RadioButtonWithDescriptionAndAuxButton;
+
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
@@ -49,12 +52,44 @@
         }
     }
 
-    class SafeBrowsingViewHolder extends RecyclerView.ViewHolder {
+    class SafeBrowsingViewHolder extends RecyclerView.ViewHolder
+            implements RadioButtonWithDescriptionAndAuxButton.OnAuxButtonClickedListener {
         private View mView;
+        private RadioButtonWithDescriptionAndAuxButton mStandardProtection;
+        private RadioButtonWithDescriptionAndAuxButton mEnhancedProtection;
+        private BottomSheetController mBottomSheetController;
 
-        public SafeBrowsingViewHolder(View view) {
+        public SafeBrowsingViewHolder(View view, BottomSheetController controller) {
             super(view);
             mView = view;
+            mBottomSheetController = controller;
+            mEnhancedProtection = (RadioButtonWithDescriptionAndAuxButton) view.findViewById(
+                    R.id.enhanced_option);
+            mStandardProtection = (RadioButtonWithDescriptionAndAuxButton) view.findViewById(
+                    R.id.standard_option);
+
+            mEnhancedProtection.setAuxButtonClickedListener(this);
+            mStandardProtection.setAuxButtonClickedListener(this);
+        }
+
+        @Override
+        public void onAuxButtonClicked(int clickedButtonId) {
+            LayoutInflater inflater = LayoutInflater.from(mView.getContext());
+            if (clickedButtonId == mEnhancedProtection.getId()) {
+                displayBottomSheet(
+                        inflater.inflate(R.layout.privacy_review_sb_enhanced_explanation, null));
+            } else if (clickedButtonId == mStandardProtection.getId()) {
+                displayBottomSheet(
+                        inflater.inflate(R.layout.privacy_review_sb_standard_explanation, null));
+            } else {
+                assert false : "Should not be reached.";
+            }
+        }
+
+        private void displayBottomSheet(View sheetContent) {
+            PrivacyReviewBottomSheetView bottomSheet =
+                    new PrivacyReviewBottomSheetView(sheetContent);
+            mBottomSheetController.requestShowContent(bottomSheet, /* animate= */ true);
         }
     }
 
@@ -67,6 +102,13 @@
         }
     }
 
+    private BottomSheetController mBottomSheetController;
+
+    public PrivacyReviewPagerAdapter(BottomSheetController controller) {
+        super();
+        mBottomSheetController = controller;
+    }
+
     @Override
     public int getItemViewType(int position) {
         // Each view is unique, so return the position directly, instead of 0 by default.
@@ -88,7 +130,8 @@
                         inflater.inflate(R.layout.privacy_review_sync_step, parent, false));
             case ViewType.SAFE_BROWSING:
                 return new SafeBrowsingViewHolder(
-                        inflater.inflate(R.layout.privacy_review_sb_step, parent, false));
+                        inflater.inflate(R.layout.privacy_review_sb_step, parent, false),
+                        mBottomSheetController);
             case ViewType.COOKIES:
                 return new CookiesViewHolder(
                         inflater.inflate(R.layout.privacy_review_cookies_step, parent, false));
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc
index 72313f7..b3d2eaa 100644
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc
@@ -147,6 +147,24 @@
 
 PrivacySandboxService::~PrivacySandboxService() = default;
 
+PrivacySandboxService::DialogType
+PrivacySandboxService::GetRequiredDialogType() {
+  // Only consult feature parameters
+  // TODO(crbug.com/1286276): Implement additional behavior.
+  if (features::kPrivacySandboxSettings3ForceShowConsent.Get())
+    return DialogType::kConsent;
+
+  if (features::kPrivacySandboxSettings3ForceShowNotice.Get())
+    return DialogType::kNotice;
+
+  return DialogType::kNone;
+}
+
+void PrivacySandboxService::DialogActionOccur(
+    PrivacySandboxService::DialogAction action) {
+  // TODO(crbug.com/1286276): Not yet implemented.
+}
+
 std::u16string PrivacySandboxService::GetFlocDescriptionForDisplay() const {
   return l10n_util::GetPluralStringFUTF16(
       IDS_PRIVACY_SANDBOX_FLOC_DESCRIPTION,
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service.h b/chrome/browser/privacy_sandbox/privacy_sandbox_service.h
index 12d0de7..3e8fdf5 100644
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_service.h
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service.h
@@ -38,6 +38,27 @@
                               public syncer::SyncServiceObserver,
                               public signin::IdentityManager::Observer {
  public:
+  // Possible types of Privacy Sandbox dialogs that may be shown to the user.
+  enum class DialogType { kNone, kNotice, kConsent };
+
+  // An exhaustive list of actions related to showing & interacting with the
+  // dialog. Includes actions which do not impact consent / notice state.
+  enum class DialogAction {
+    // Shared between notice & consent:
+    kShown,
+    kOpenSettings,
+    kOpenMoreInfo,
+    kCloseMoreInfo,
+
+    // Consent Only
+    kAcceptConsent,
+    kDeclineConsent,
+
+    // Notice Only
+    kAcknowledge,
+    kClose,
+  };
+
   PrivacySandboxService(PrivacySandboxSettings* privacy_sandbox_settings,
                         content_settings::CookieSettings* cookie_settings,
                         PrefService* pref_service,
@@ -47,6 +68,20 @@
                         federated_learning::FlocIdProvider* floc_id_provider);
   ~PrivacySandboxService() override;
 
+  // Returns the dialog type that should be shown to the user. This consults
+  // previous consent / notice information stored in preferences, the current
+  // state of the Privacy Sandbox settings, and the current location of the
+  // user, to determine the appropriate type. This is expected to be called by
+  // UI code locations determining whether a dialog should be shown on startup.
+  DialogType GetRequiredDialogType();
+
+  // Informs the service that |action| occurred with the dialog. This allows
+  // the service to record this information in preferences such that future
+  // calls to GetRequiredDialogType() are correct. This is expected to be
+  // called appropriately by all locations showing the dialog. Metrics shared
+  // between platforms will also be recorded.
+  void DialogActionOccur(DialogAction action);
+
   // Returns a description of FLoC ready for display to the user. Correctly
   // takes into account the FLoC feature parameters when determining the number
   // of days between cohort calculations.
diff --git a/chrome/browser/renderer_context_menu/link_to_text_menu_observer.cc b/chrome/browser/renderer_context_menu/link_to_text_menu_observer.cc
index dbac2593..920c015 100644
--- a/chrome/browser/renderer_context_menu/link_to_text_menu_observer.cc
+++ b/chrome/browser/renderer_context_menu/link_to_text_menu_observer.cc
@@ -52,6 +52,22 @@
   return callback.get();
 }
 
+std::vector<std::string> GetAggregatedSelectors(
+    std::unordered_map<content::GlobalRenderFrameHostId,
+                       std::vector<std::string>,
+                       content::GlobalRenderFrameHostIdHasher> frames_selectors,
+    std::vector<content::GlobalRenderFrameHostId> render_frame_host_ids) {
+  std::vector<std::string> aggregated_selectors;
+  for (content::GlobalRenderFrameHostId render_frame_host_id :
+       render_frame_host_ids) {
+    std::vector<std::string>& frame_selectors =
+        frames_selectors.at(render_frame_host_id);
+    aggregated_selectors.insert(aggregated_selectors.end(),
+                                frame_selectors.begin(), frame_selectors.end());
+  }
+  return aggregated_selectors;
+}
+
 }  // namespace
 
 // static
@@ -257,13 +273,60 @@
 }
 
 void LinkToTextMenuObserver::ReshareLink() {
-  GetRemote()->GetExistingSelectors(
-      base::BindOnce(&LinkToTextMenuObserver::OnGetExistingSelectorsComplete,
-                     weak_ptr_factory_.GetWeakPtr()));
+  // Get the list of RenderFrameHosts from the current page.
+  proxy_->GetWebContents()->GetMainFrame()->ForEachRenderFrameHost(
+      base::BindRepeating(
+          [](std::vector<content::GlobalRenderFrameHostId>*
+                 render_frame_host_ids,
+             std::vector<mojo::Remote<blink::mojom::TextFragmentReceiver>>*
+                 text_fragment_remotes,
+             content::RenderFrameHost* rfh) {
+            render_frame_host_ids->push_back(rfh->GetGlobalId());
+            mojo::Remote<blink::mojom::TextFragmentReceiver> remote;
+            text_fragment_remotes->push_back(std::move(remote));
+          },
+          &render_frame_host_ids_, &text_fragment_remotes_));
+
+  get_frames_existing_selectors_counter_ = render_frame_host_ids_.size();
+
+  for (size_t i = 0; i < render_frame_host_ids_.size(); i++) {
+    content::GlobalRenderFrameHostId render_frame_host_id(
+        render_frame_host_ids_.at(i));
+    content::RenderFrameHost* render_frame_host(
+        content::RenderFrameHost::FromID(render_frame_host_id));
+    render_frame_host->GetRemoteInterfaces()->GetInterface(
+        text_fragment_remotes_.at(i).BindNewPipeAndPassReceiver());
+
+    text_fragment_remotes_.at(i)->GetExistingSelectors(base::BindOnce(
+        [](const base::WeakPtr<LinkToTextMenuObserver>&
+               link_to_text_menu_observer_ptr,
+           const content::GlobalRenderFrameHostId global_render_frame_host_id,
+           const std::vector<std::string>& selectors) {
+          if (link_to_text_menu_observer_ptr == nullptr)
+            return;
+
+          link_to_text_menu_observer_ptr->frames_selectors_.insert(
+              {global_render_frame_host_id, selectors});
+
+          link_to_text_menu_observer_ptr
+              ->get_frames_existing_selectors_counter_--;
+
+          if (link_to_text_menu_observer_ptr
+                  ->get_frames_existing_selectors_counter_ == 0) {
+            std::vector<std::string> aggregated_selectors =
+                GetAggregatedSelectors(
+                    link_to_text_menu_observer_ptr->frames_selectors_,
+                    link_to_text_menu_observer_ptr->render_frame_host_ids_);
+            link_to_text_menu_observer_ptr->OnGetExistingSelectorsComplete(
+                aggregated_selectors);
+          }
+        },
+        weak_ptr_factory_.GetWeakPtr(), render_frame_host_id));
+  }
 }
 
 void LinkToTextMenuObserver::OnGetExistingSelectorsComplete(
-    const std::vector<std::string>& selectors) {
+    const std::vector<std::string>& aggregated_selectors) {
   std::unique_ptr<ui::DataTransferEndpoint> data_transfer_endpoint =
       !render_frame_host_->GetBrowserContext()->IsOffTheRecord()
           ? std::make_unique<ui::DataTransferEndpoint>(
@@ -275,7 +338,8 @@
 
   GURL url_to_share =
       shared_highlighting::RemoveFragmentSelectorDirectives(url_);
-  url_to_share = shared_highlighting::AppendSelectors(url_to_share, selectors);
+  url_to_share =
+      shared_highlighting::AppendSelectors(url_to_share, aggregated_selectors);
 
   scw.WriteText(base::UTF8ToUTF16(url_to_share.spec()));
 
diff --git a/chrome/browser/renderer_context_menu/link_to_text_menu_observer.h b/chrome/browser/renderer_context_menu/link_to_text_menu_observer.h
index 0d9235a..2254aeb 100644
--- a/chrome/browser/renderer_context_menu/link_to_text_menu_observer.h
+++ b/chrome/browser/renderer_context_menu/link_to_text_menu_observer.h
@@ -93,6 +93,16 @@
   GURL raw_url_;
   raw_ptr<content::RenderFrameHost> render_frame_host_;
 
+  std::unordered_map<content::GlobalRenderFrameHostId,
+                     std::vector<std::string>,
+                     content::GlobalRenderFrameHostIdHasher>
+      frames_selectors_;
+
+  std::vector<content::GlobalRenderFrameHostId> render_frame_host_ids_;
+  std::vector<mojo::Remote<blink::mojom::TextFragmentReceiver>>
+      text_fragment_remotes_;
+  size_t get_frames_existing_selectors_counter_;
+
   // True when the context menu was opened with text selected.
   bool link_needs_generation_ = false;
 
diff --git a/chrome/browser/resource_coordinator/tab_ranker/pairwise_inference.cc b/chrome/browser/resource_coordinator/tab_ranker/pairwise_inference.cc
index ea8c5d5..69dbe205 100644
--- a/chrome/browser/resource_coordinator/tab_ranker/pairwise_inference.cc
+++ b/chrome/browser/resource_coordinator/tab_ranker/pairwise_inference.cc
@@ -1980,11 +1980,11 @@
 
   // dnn/hiddenlayer_0/hiddenlayer_0/Relu
   Relu<float>(2,  // rank
-              fixed->shape0, fixed->alloc1, fixed->alloc1);
+              fixed->shape0, fixed->alloc1, fixed->alloc0);
 
   // dnn/logits/MatMul_merged_with_dnn/logits/BiasAdd
   FullyConnected<float>(
-      fixed->shape0, fixed->alloc1, dnn_logits_kernel__3__cf__3_shape,
+      fixed->shape0, fixed->alloc0, dnn_logits_kernel__3__cf__3_shape,
       dnn_logits_kernel__3__cf__3.values, dnn_logits_bias__2__cf__2_shape,
       dnn_logits_bias__2__cf__2.values, prediction);
 }
diff --git a/chrome/browser/spellchecker/spellcheck_service_browsertest.cc b/chrome/browser/spellchecker/spellcheck_service_browsertest.cc
index 35ebf42..81e05cdc 100644
--- a/chrome/browser/spellchecker/spellcheck_service_browsertest.cc
+++ b/chrome/browser/spellchecker/spellcheck_service_browsertest.cc
@@ -35,7 +35,6 @@
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/test/base/in_process_browser_test.h"
-#include "components/browser_sync/browser_sync_switches.h"
 #include "components/language/core/browser/pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "components/spellcheck/browser/pref_names.h"
@@ -44,6 +43,7 @@
 #include "components/spellcheck/common/spellcheck_features.h"
 #include "components/spellcheck/common/spellcheck_result.h"
 #include "components/spellcheck/spellcheck_buildflags.h"
+#include "components/sync/driver/sync_driver_switches.h"
 #include "components/user_prefs/user_prefs.h"
 #include "content/public/test/browser_test.h"
 #include "content/public/test/browser_test_utils.h"
@@ -107,7 +107,7 @@
     // GetEnableSpellcheckState() after InitSpellcheck(), which will wait
     // forever if the service already existed). So disable sync of the custom
     // dictionary for these tests.
-    command_line->AppendSwitchASCII(switches::kDisableSyncTypes, "Dictionary");
+    command_line->AppendSwitch(switches::kDisableSync);
     SpellcheckService::OverrideBinderForTesting(base::BindRepeating(
         &SpellcheckServiceBrowserTest::Bind, base::Unretained(this)));
   }
diff --git a/chrome/browser/sync/chrome_sync_client.cc b/chrome/browser/sync/chrome_sync_client.cc
index 17b46945..06c2cc6a 100644
--- a/chrome/browser/sync/chrome_sync_client.cc
+++ b/chrome/browser/sync/chrome_sync_client.cc
@@ -8,7 +8,6 @@
 #include <utility>
 
 #include "base/bind.h"
-#include "base/command_line.h"
 #include "base/feature_list.h"
 #include "base/path_service.h"
 #include "base/syslog_logging.h"
@@ -166,20 +165,6 @@
     FILE_PATH_LITERAL("profile.pb");
 #endif  // BUILDFLAG(IS_WIN)
 
-syncer::ModelTypeSet GetDisabledTypesFromCommandLine() {
-  std::string disabled_types_str =
-      base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
-          switches::kDisableSyncTypes);
-
-  syncer::ModelTypeSet disabled_types =
-      syncer::ModelTypeSetFromDebugString(disabled_types_str);
-  if (disabled_types.Has(syncer::DEVICE_INFO)) {
-    DLOG(WARNING) << "DEVICE_INFO cannot be disabled via a command-line switch";
-    disabled_types.Remove(syncer::DEVICE_INFO);
-  }
-  return disabled_types;
-}
-
 base::WeakPtr<syncer::SyncableService> GetWeakPtrOrNull(
     syncer::SyncableService* service) {
   return service ? service->AsWeakPtr() : nullptr;
@@ -328,10 +313,8 @@
 
 syncer::DataTypeController::TypeVector
 ChromeSyncClient::CreateDataTypeControllers(syncer::SyncService* sync_service) {
-  syncer::ModelTypeSet disabled_types = GetDisabledTypesFromCommandLine();
-
   syncer::DataTypeController::TypeVector controllers =
-      component_factory_->CreateCommonDataTypeControllers(disabled_types,
+      component_factory_->CreateCommonDataTypeControllers(/*disabled_types=*/{},
                                                           sync_service);
 
   const base::RepeatingClosure dump_stack = GetDumpStackClosure();
@@ -339,38 +322,34 @@
   syncer::RepeatingModelTypeStoreFactory model_type_store_factory =
       GetModelTypeStoreService()->GetStoreFactory();
 
-  if (!disabled_types.Has(syncer::SECURITY_EVENTS)) {
-    syncer::ModelTypeControllerDelegate* delegate =
-        SecurityEventRecorderFactory::GetForProfile(profile_)
-            ->GetControllerDelegate()
-            .get();
-    // Forward both full-sync and transport-only modes to the same delegate,
-    // since behavior for SECURITY_EVENTS does not differ.
-    controllers.push_back(std::make_unique<syncer::ModelTypeController>(
-        syncer::SECURITY_EVENTS,
-        /*delegate_for_full_sync_mode=*/
-        std::make_unique<syncer::ForwardingModelTypeControllerDelegate>(
-            delegate),
-        /*delegate_for_transport_mode=*/
-        std::make_unique<syncer::ForwardingModelTypeControllerDelegate>(
-            delegate)));
-  }
+  syncer::ModelTypeControllerDelegate* security_events_delegate =
+      SecurityEventRecorderFactory::GetForProfile(profile_)
+          ->GetControllerDelegate()
+          .get();
+  // Forward both full-sync and transport-only modes to the same delegate,
+  // since behavior for SECURITY_EVENTS does not differ.
+  controllers.push_back(std::make_unique<syncer::ModelTypeController>(
+      syncer::SECURITY_EVENTS,
+      /*delegate_for_full_sync_mode=*/
+      std::make_unique<syncer::ForwardingModelTypeControllerDelegate>(
+          security_events_delegate),
+      /*delegate_for_transport_mode=*/
+      std::make_unique<syncer::ForwardingModelTypeControllerDelegate>(
+          security_events_delegate)));
 
-  if (!disabled_types.Has(syncer::SHARING_MESSAGE)) {
-    // Forward both full-sync and transport-only modes to the same delegate,
-    // since behavior for SHARING_MESSAGE does not differ. They both do not
-    // store data on persistent storage.
-    syncer::ModelTypeControllerDelegate* delegate =
-        GetControllerDelegateForModelType(syncer::SHARING_MESSAGE).get();
-    controllers.push_back(std::make_unique<SharingMessageModelTypeController>(
-        sync_service,
-        /*delegate_for_full_sync_mode=*/
-        std::make_unique<syncer::ForwardingModelTypeControllerDelegate>(
-            delegate),
-        /*delegate_for_transport_mode=*/
-        std::make_unique<syncer::ForwardingModelTypeControllerDelegate>(
-            delegate)));
-  }
+  // Forward both full-sync and transport-only modes to the same delegate,
+  // since behavior for SHARING_MESSAGE does not differ. They both do not
+  // store data on persistent storage.
+  syncer::ModelTypeControllerDelegate* sharing_message_delegate =
+      GetControllerDelegateForModelType(syncer::SHARING_MESSAGE).get();
+  controllers.push_back(std::make_unique<SharingMessageModelTypeController>(
+      sync_service,
+      /*delegate_for_full_sync_mode=*/
+      std::make_unique<syncer::ForwardingModelTypeControllerDelegate>(
+          sharing_message_delegate),
+      /*delegate_for_transport_mode=*/
+      std::make_unique<syncer::ForwardingModelTypeControllerDelegate>(
+          sharing_message_delegate)));
 
 #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
   controllers.push_back(std::make_unique<SupervisedUserSyncModelTypeController>(
@@ -380,61 +359,40 @@
 #endif  // BUILDFLAG(ENABLE_SUPERVISED_USERS)
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
-  // App sync is enabled by default.  Register unless explicitly
-  // disabled.
-  if (!disabled_types.Has(syncer::APPS)) {
-    controllers.push_back(CreateAppsModelTypeController(sync_service));
-  }
+  // App sync is enabled by default.
+  controllers.push_back(CreateAppsModelTypeController(sync_service));
 
-  // Extension sync is enabled by default.  Register unless explicitly
-  // disabled.
-  if (!disabled_types.Has(syncer::EXTENSIONS)) {
-    controllers.push_back(std::make_unique<ExtensionModelTypeController>(
-        syncer::EXTENSIONS, model_type_store_factory,
-        GetSyncableServiceForType(syncer::EXTENSIONS), dump_stack, profile_));
-  }
+  // Extension sync is enabled by default.
+  controllers.push_back(std::make_unique<ExtensionModelTypeController>(
+      syncer::EXTENSIONS, model_type_store_factory,
+      GetSyncableServiceForType(syncer::EXTENSIONS), dump_stack, profile_));
 
-  // Extension setting sync is enabled by default.  Register unless explicitly
-  // disabled.
-  if (!disabled_types.Has(syncer::EXTENSION_SETTINGS)) {
-    controllers.push_back(std::make_unique<ExtensionSettingModelTypeController>(
-        syncer::EXTENSION_SETTINGS, model_type_store_factory,
-        extensions::settings_sync_util::GetSyncableServiceProvider(
-            profile_, syncer::EXTENSION_SETTINGS),
-        dump_stack, profile_));
-  }
+  // Extension setting sync is enabled by default.
+  controllers.push_back(std::make_unique<ExtensionSettingModelTypeController>(
+      syncer::EXTENSION_SETTINGS, model_type_store_factory,
+      extensions::settings_sync_util::GetSyncableServiceProvider(
+          profile_, syncer::EXTENSION_SETTINGS),
+      dump_stack, profile_));
 
-  // App setting sync is enabled by default.  Register unless explicitly
-  // disabled.
-  if (!disabled_types.Has(syncer::APP_SETTINGS)) {
-    controllers.push_back(CreateAppSettingsModelTypeController(sync_service));
-  }
+  // App setting sync is enabled by default.
+  controllers.push_back(CreateAppSettingsModelTypeController(sync_service));
 
   if (web_app::WebAppProvider::GetForWebApps(profile_)) {
-    bool enable_web_apps_sync = !disabled_types.Has(syncer::WEB_APPS);
-
-    if (enable_web_apps_sync) {
-      controllers.push_back(CreateWebAppsModelTypeController(sync_service));
-    }
+    controllers.push_back(CreateWebAppsModelTypeController(sync_service));
   }
 #endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
 #if !BUILDFLAG(IS_ANDROID)
-  // Theme sync is enabled by default.  Register unless explicitly disabled.
-  if (!disabled_types.Has(syncer::THEMES)) {
-    controllers.push_back(std::make_unique<ExtensionModelTypeController>(
-        syncer::THEMES, model_type_store_factory,
-        GetSyncableServiceForType(syncer::THEMES), dump_stack, profile_));
-  }
+  // Theme sync is enabled by default.
+  controllers.push_back(std::make_unique<ExtensionModelTypeController>(
+      syncer::THEMES, model_type_store_factory,
+      GetSyncableServiceForType(syncer::THEMES), dump_stack, profile_));
 
-  // Search Engine sync is enabled by default.  Register unless explicitly
-  // disabled. The service can be null in tests.
-  if (!disabled_types.Has(syncer::SEARCH_ENGINES)) {
-    controllers.push_back(
-        std::make_unique<syncer::SyncableServiceBasedModelTypeController>(
-            syncer::SEARCH_ENGINES, model_type_store_factory,
-            GetSyncableServiceForType(syncer::SEARCH_ENGINES), dump_stack));
-  }
+  // Search Engine sync is enabled by default.
+  controllers.push_back(
+      std::make_unique<syncer::SyncableServiceBasedModelTypeController>(
+          syncer::SEARCH_ENGINES, model_type_store_factory,
+          GetSyncableServiceForType(syncer::SEARCH_ENGINES), dump_stack));
 #endif  // !BUILDFLAG(IS_ANDROID)
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -464,8 +422,7 @@
 // custom dictionary on platforms that typically don't provide one.
 #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
   // Dictionary sync is enabled by default.
-  if (!disabled_types.Has(syncer::DICTIONARY) &&
-      GetPrefService()->GetBoolean(spellcheck::prefs::kSpellCheckEnable)) {
+  if (GetPrefService()->GetBoolean(spellcheck::prefs::kSpellCheckEnable)) {
     controllers.push_back(
         std::make_unique<syncer::SyncableServiceBasedModelTypeController>(
             syncer::DICTIONARY, model_type_store_factory,
@@ -482,76 +439,72 @@
         sync_service, profile_));
   }
   if (chromeos::features::IsSyncSettingsCategorizationEnabled()) {
-    if (!disabled_types.Has(syncer::OS_PREFERENCES)) {
-      controllers.push_back(
-          std::make_unique<OsSyncableServiceModelTypeController>(
-              syncer::OS_PREFERENCES, model_type_store_factory,
-              GetSyncableServiceForType(syncer::OS_PREFERENCES), dump_stack,
-              profile_->GetPrefs(), sync_service));
-    }
-    if (!disabled_types.Has(syncer::OS_PRIORITY_PREFERENCES)) {
-      controllers.push_back(
-          std::make_unique<OsSyncableServiceModelTypeController>(
-              syncer::OS_PRIORITY_PREFERENCES, model_type_store_factory,
-              GetSyncableServiceForType(syncer::OS_PRIORITY_PREFERENCES),
-              dump_stack, profile_->GetPrefs(), sync_service));
-    }
-    if (!disabled_types.Has(syncer::PRINTERS)) {
-      // Use the same delegate in full-sync and transport-only modes.
-      syncer::ModelTypeControllerDelegate* delegate =
-          GetControllerDelegateForModelType(syncer::PRINTERS).get();
-      controllers.push_back(std::make_unique<OsSyncModelTypeController>(
-          syncer::PRINTERS,
-          /*delegate_for_full_sync_mode=*/
-          std::make_unique<ForwardingModelTypeControllerDelegate>(delegate),
-          /*delegate_for_transport_mode=*/
-          std::make_unique<ForwardingModelTypeControllerDelegate>(delegate),
-          profile_->GetPrefs(), sync_service));
-    }
-    if (!disabled_types.Has(syncer::WIFI_CONFIGURATIONS) &&
-        base::FeatureList::IsEnabled(switches::kSyncWifiConfigurations) &&
+    controllers.push_back(
+        std::make_unique<OsSyncableServiceModelTypeController>(
+            syncer::OS_PREFERENCES, model_type_store_factory,
+            GetSyncableServiceForType(syncer::OS_PREFERENCES), dump_stack,
+            profile_->GetPrefs(), sync_service));
+    controllers.push_back(
+        std::make_unique<OsSyncableServiceModelTypeController>(
+            syncer::OS_PRIORITY_PREFERENCES, model_type_store_factory,
+            GetSyncableServiceForType(syncer::OS_PRIORITY_PREFERENCES),
+            dump_stack, profile_->GetPrefs(), sync_service));
+    // Use the same delegate in full-sync and transport-only modes.
+    syncer::ModelTypeControllerDelegate* printers_delegate =
+        GetControllerDelegateForModelType(syncer::PRINTERS).get();
+    controllers.push_back(std::make_unique<OsSyncModelTypeController>(
+        syncer::PRINTERS,
+        /*delegate_for_full_sync_mode=*/
+        std::make_unique<ForwardingModelTypeControllerDelegate>(
+            printers_delegate),
+        /*delegate_for_transport_mode=*/
+        std::make_unique<ForwardingModelTypeControllerDelegate>(
+            printers_delegate),
+        profile_->GetPrefs(), sync_service));
+    if (base::FeatureList::IsEnabled(switches::kSyncWifiConfigurations) &&
         WifiConfigurationSyncServiceFactory::ShouldRunInProfile(profile_)) {
       // Use the same delegate in full-sync and transport-only modes.
-      syncer::ModelTypeControllerDelegate* delegate =
+      syncer::ModelTypeControllerDelegate* wifi_configurations_delegate =
           GetControllerDelegateForModelType(syncer::WIFI_CONFIGURATIONS).get();
       controllers.push_back(std::make_unique<OsSyncModelTypeController>(
           syncer::WIFI_CONFIGURATIONS,
           /*delegate_for_full_sync_mode=*/
-          std::make_unique<ForwardingModelTypeControllerDelegate>(delegate),
+          std::make_unique<ForwardingModelTypeControllerDelegate>(
+              wifi_configurations_delegate),
           /*delegate_for_transport_mode=*/
-          std::make_unique<ForwardingModelTypeControllerDelegate>(delegate),
+          std::make_unique<ForwardingModelTypeControllerDelegate>(
+              wifi_configurations_delegate),
           profile_->GetPrefs(), sync_service));
     }
-    if (!disabled_types.Has(syncer::WORKSPACE_DESK)) {
       // Use the same delegate in full-sync and transport-only modes.
-      syncer::ModelTypeControllerDelegate* delegate =
+      syncer::ModelTypeControllerDelegate* workspace_desk_delegate =
           GetControllerDelegateForModelType(syncer::WORKSPACE_DESK).get();
       controllers.push_back(std::make_unique<OsSyncModelTypeController>(
           syncer::WORKSPACE_DESK,
           /*delegate_for_full_sync_mode=*/
-          std::make_unique<ForwardingModelTypeControllerDelegate>(delegate),
+          std::make_unique<ForwardingModelTypeControllerDelegate>(
+              workspace_desk_delegate),
           /*delegate_for_transport_mode=*/
-          std::make_unique<ForwardingModelTypeControllerDelegate>(delegate),
+          std::make_unique<ForwardingModelTypeControllerDelegate>(
+              workspace_desk_delegate),
           profile_->GetPrefs(), sync_service));
-    }
   } else {
     // SyncSettingsCategorization is disabled.
-    if (!disabled_types.Has(syncer::WIFI_CONFIGURATIONS) &&
-        base::FeatureList::IsEnabled(switches::kSyncWifiConfigurations) &&
+    if (base::FeatureList::IsEnabled(switches::kSyncWifiConfigurations) &&
         WifiConfigurationSyncServiceFactory::ShouldRunInProfile(profile_)) {
-      syncer::ModelTypeControllerDelegate* delegate =
+      syncer::ModelTypeControllerDelegate* wifi_configurations_delegate =
           GetControllerDelegateForModelType(syncer::WIFI_CONFIGURATIONS).get();
       controllers.push_back(std::make_unique<syncer::ModelTypeController>(
           syncer::WIFI_CONFIGURATIONS,
-          std::make_unique<ForwardingModelTypeControllerDelegate>(delegate)));
+          std::make_unique<ForwardingModelTypeControllerDelegate>(
+              wifi_configurations_delegate)));
     }
-    if (!disabled_types.Has(syncer::WORKSPACE_DESK)) {
-      syncer::ModelTypeControllerDelegate* delegate =
-          GetControllerDelegateForModelType(syncer::WORKSPACE_DESK).get();
-      controllers.push_back(std::make_unique<syncer::ModelTypeController>(
-          syncer::WORKSPACE_DESK,
-          std::make_unique<ForwardingModelTypeControllerDelegate>(delegate)));
-    }
+    syncer::ModelTypeControllerDelegate* workspace_desk_delegate =
+        GetControllerDelegateForModelType(syncer::WORKSPACE_DESK).get();
+    controllers.push_back(std::make_unique<syncer::ModelTypeController>(
+        syncer::WORKSPACE_DESK,
+        std::make_unique<ForwardingModelTypeControllerDelegate>(
+            workspace_desk_delegate)));
   }
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
diff --git a/chrome/browser/sync/sync_service_factory_unittest.cc b/chrome/browser/sync/sync_service_factory_unittest.cc
index f976c76..c4f9950 100644
--- a/chrome/browser/sync/sync_service_factory_unittest.cc
+++ b/chrome/browser/sync/sync_service_factory_unittest.cc
@@ -81,103 +81,79 @@
 #endif
 
   // Returns the collection of default datatypes.
-  std::vector<syncer::ModelType> DefaultDatatypes() {
+  syncer::ModelTypeSet DefaultDatatypes() {
     static_assert(38 == syncer::GetNumModelTypes(),
                   "When adding a new type, you probably want to add it here as "
                   "well (assuming it is already enabled).");
 
-    std::vector<syncer::ModelType> datatypes;
+    syncer::ModelTypeSet datatypes;
 
     // These preprocessor conditions and their order should be in sync with
     // preprocessor conditions in ChromeSyncClient::CreateDataTypeControllers:
 
     // ChromeSyncClient types.
-    datatypes.push_back(syncer::READING_LIST);
-    datatypes.push_back(syncer::SECURITY_EVENTS);
+    datatypes.Put(syncer::READING_LIST);
+    datatypes.Put(syncer::SECURITY_EVENTS);
 
 #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
-    datatypes.push_back(syncer::SUPERVISED_USER_SETTINGS);
+    datatypes.Put(syncer::SUPERVISED_USER_SETTINGS);
 #endif  // BUILDFLAG(ENABLE_SUPERVISED_USERS)
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
-    datatypes.push_back(syncer::APPS);
-    datatypes.push_back(syncer::EXTENSIONS);
-    datatypes.push_back(syncer::EXTENSION_SETTINGS);
-    datatypes.push_back(syncer::APP_SETTINGS);
-    datatypes.push_back(syncer::WEB_APPS);
+    datatypes.Put(syncer::APPS);
+    datatypes.Put(syncer::EXTENSIONS);
+    datatypes.Put(syncer::EXTENSION_SETTINGS);
+    datatypes.Put(syncer::APP_SETTINGS);
+    datatypes.Put(syncer::WEB_APPS);
 #endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
 #if !BUILDFLAG(IS_ANDROID)
-    datatypes.push_back(syncer::THEMES);
-    datatypes.push_back(syncer::SEARCH_ENGINES);
+    datatypes.Put(syncer::THEMES);
+    datatypes.Put(syncer::SEARCH_ENGINES);
 #endif  // !BUILDFLAG(IS_ANDROID)
 
 #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
-    datatypes.push_back(syncer::DICTIONARY);
+    datatypes.Put(syncer::DICTIONARY);
 #endif
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
-    datatypes.push_back(syncer::APP_LIST);
+    datatypes.Put(syncer::APP_LIST);
     if (arc::IsArcAllowedForProfile(profile())) {
-      datatypes.push_back(syncer::ARC_PACKAGE);
+      datatypes.Put(syncer::ARC_PACKAGE);
     }
     if (chromeos::features::IsSyncSettingsCategorizationEnabled()) {
-      datatypes.push_back(syncer::OS_PREFERENCES);
-      datatypes.push_back(syncer::OS_PRIORITY_PREFERENCES);
+      datatypes.Put(syncer::OS_PREFERENCES);
+      datatypes.Put(syncer::OS_PRIORITY_PREFERENCES);
     }
-    datatypes.push_back(syncer::PRINTERS);
+    datatypes.Put(syncer::PRINTERS);
     if (base::FeatureList::IsEnabled(switches::kSyncWifiConfigurations)) {
-      datatypes.push_back(syncer::WIFI_CONFIGURATIONS);
+      datatypes.Put(syncer::WIFI_CONFIGURATIONS);
     }
-    datatypes.push_back(syncer::WORKSPACE_DESK);
+    datatypes.Put(syncer::WORKSPACE_DESK);
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
     // Common types. This excludes PASSWORDS because the password store factory
     // is null for testing and hence no controller gets instantiated.
-    datatypes.push_back(syncer::AUTOFILL);
-    datatypes.push_back(syncer::AUTOFILL_PROFILE);
-    datatypes.push_back(syncer::AUTOFILL_WALLET_DATA);
-    datatypes.push_back(syncer::AUTOFILL_WALLET_METADATA);
-    datatypes.push_back(syncer::AUTOFILL_WALLET_OFFER);
-    datatypes.push_back(syncer::BOOKMARKS);
-    datatypes.push_back(syncer::DEVICE_INFO);
-    datatypes.push_back(syncer::HISTORY_DELETE_DIRECTIVES);
-    datatypes.push_back(syncer::PREFERENCES);
-    datatypes.push_back(syncer::PRIORITY_PREFERENCES);
-    datatypes.push_back(syncer::SESSIONS);
-    datatypes.push_back(syncer::PROXY_TABS);
-    datatypes.push_back(syncer::TYPED_URLS);
-    datatypes.push_back(syncer::USER_EVENTS);
-    datatypes.push_back(syncer::USER_CONSENTS);
-    datatypes.push_back(syncer::SEND_TAB_TO_SELF);
-    datatypes.push_back(syncer::SHARING_MESSAGE);
+    datatypes.Put(syncer::AUTOFILL);
+    datatypes.Put(syncer::AUTOFILL_PROFILE);
+    datatypes.Put(syncer::AUTOFILL_WALLET_DATA);
+    datatypes.Put(syncer::AUTOFILL_WALLET_METADATA);
+    datatypes.Put(syncer::AUTOFILL_WALLET_OFFER);
+    datatypes.Put(syncer::BOOKMARKS);
+    datatypes.Put(syncer::DEVICE_INFO);
+    datatypes.Put(syncer::HISTORY_DELETE_DIRECTIVES);
+    datatypes.Put(syncer::PREFERENCES);
+    datatypes.Put(syncer::PRIORITY_PREFERENCES);
+    datatypes.Put(syncer::SESSIONS);
+    datatypes.Put(syncer::PROXY_TABS);
+    datatypes.Put(syncer::TYPED_URLS);
+    datatypes.Put(syncer::USER_EVENTS);
+    datatypes.Put(syncer::USER_CONSENTS);
+    datatypes.Put(syncer::SEND_TAB_TO_SELF);
+    datatypes.Put(syncer::SHARING_MESSAGE);
     return datatypes;
   }
 
-  // Returns the number of default datatypes.
-  size_t DefaultDatatypesCount() { return DefaultDatatypes().size(); }
-
-  // Asserts that all the default datatypes are in |types|, except
-  // for |exception_types|, which are asserted to not be in |types|.
-  void CheckDefaultDatatypesInSetExcept(syncer::ModelTypeSet types,
-                                        syncer::ModelTypeSet exception_types) {
-    std::vector<syncer::ModelType> defaults = DefaultDatatypes();
-    for (syncer::ModelType type : defaults) {
-      if (exception_types.Has(type)) {
-        EXPECT_FALSE(types.Has(type))
-            << type << " found in dataypes map, shouldn't be there.";
-      } else {
-        EXPECT_TRUE(types.Has(type)) << type << " not found in datatypes map";
-      }
-    }
-  }
-
-  void SetDisabledTypes(syncer::ModelTypeSet disabled_types) {
-    base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
-        switches::kDisableSyncTypes,
-        syncer::ModelTypeSetToDebugString(disabled_types));
-  }
-
   Profile* profile() { return profile_.get(); }
 
   void RunUntilIdle() { task_environment_.RunUntilIdle(); }
@@ -205,40 +181,11 @@
   syncer::SyncServiceImpl* sync_service =
       SyncServiceFactory::GetAsSyncServiceImplForProfile(profile());
   syncer::ModelTypeSet types = sync_service->GetRegisteredDataTypesForTest();
-  EXPECT_EQ(DefaultDatatypesCount(), types.Size());
-  CheckDefaultDatatypesInSetExcept(types, syncer::ModelTypeSet());
-
-  sync_service->Shutdown();
-  RunUntilIdle();
-}
-
-// Verify that a SyncServiceImpl with a disabled datatype can be created and
-// properly initialized.
-TEST_F(SyncServiceFactoryTest, CreateSyncServiceImplDisableOne) {
-  syncer::ModelTypeSet disabled_types(syncer::AUTOFILL);
-  SetDisabledTypes(disabled_types);
-  syncer::SyncServiceImpl* sync_service =
-      SyncServiceFactory::GetAsSyncServiceImplForProfile(profile());
-  syncer::ModelTypeSet types = sync_service->GetRegisteredDataTypesForTest();
-  EXPECT_EQ(DefaultDatatypesCount() - disabled_types.Size(), types.Size());
-  CheckDefaultDatatypesInSetExcept(types, disabled_types);
-
-  sync_service->Shutdown();
-  RunUntilIdle();
-}
-
-// Verify that a SyncServiceImpl with multiple disabled datatypes can be created
-// and properly initialized.
-TEST_F(SyncServiceFactoryTest, CreateSyncServiceImplDisableMultiple) {
-  syncer::ModelTypeSet disabled_types(syncer::AUTOFILL_PROFILE,
-                                      syncer::BOOKMARKS);
-  SetDisabledTypes(disabled_types);
-  syncer::SyncServiceImpl* sync_service =
-      SyncServiceFactory::GetAsSyncServiceImplForProfile(profile());
-  syncer::ModelTypeSet types = sync_service->GetRegisteredDataTypesForTest();
-  EXPECT_EQ(DefaultDatatypesCount() - disabled_types.Size(), types.Size());
-  CheckDefaultDatatypesInSetExcept(types, disabled_types);
-
+  const syncer::ModelTypeSet default_types = DefaultDatatypes();
+  EXPECT_EQ(default_types.Size(), types.Size());
+  for (syncer::ModelType type : default_types) {
+    EXPECT_TRUE(types.Has(type)) << type << " not found in datatypes map";
+  }
   sync_service->Shutdown();
   RunUntilIdle();
 }
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
index 8650d3f..cafc23a3 100644
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1144,6 +1144,48 @@
       <message name="IDS_PRIVACY_REVIEW_WEB_APP_ACTIVITY_DESCRIPTION" desc="Description for the Web and App Activity item on the final page of the privacy review">
         Choose whether to include Chrome history for more personalized experiences in Google services
       </message>
+      <message name="IDS_PRIVACY_REVIEW_EXPLANATION_CONTENT_DESCRIPTION" desc="The content description for the privacy review explanation bottom sheet. Read as accessibility string when tapping on the bottom sheet.">
+        Privacy guide explanation
+      </message>
+      <message name="IDS_PRIVACY_REVIEW_EXPLANATION_OPENED_HALF" desc="The accessibility string read when the privacy review explanation bottom sheet is half opened.">
+        Privacy guide explanation opened at half height
+      </message>
+      <message name="IDS_PRIVACY_REVIEW_EXPLANATION_OPENED_FULL" desc="The accessibility string read when the privacy review explanation bottom sheet is fully opened.">
+        Privacy guide explanation opened at full height
+      </message>
+      <message name="IDS_PRIVACY_REVIEW_EXPLANATION_CLOSED_DESCRIPTION" desc="The accessibility string read when the privacy review explanation bottom sheet is closed.">
+        Privacy guide explanation closed
+      </message>
+      <message name="IDS_PRIVACY_REVIEW_SB_STANDARD_ITEM_ONE" desc="First bullet point that describes the details of the Safe Browsing control.">
+        Detects and warns you about dangerous events when they happen
+      </message>
+      <message name="IDS_PRIVACY_REVIEW_SB_STANDARD_ITEM_TWO" desc="Second bullet point that describes the details of the Safe Browsing control.">
+        Checks URLs with a list of unsafe sites stored in Chrome
+      </message>
+      <message name="IDS_PRIVACY_REVIEW_SB_STANDARD_ITEM_THREE" desc="Third bullet point that describes the details of the Safe Browsing control.">
+        If a site tries to steal your password, or when you download a harmful file, Chrome may send URLs including bits of page content to Safe Browsing
+      </message>
+      <message name="IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_ONE" desc="First bullet point that describes the details of the Safe Browsing control.">
+        Warns you about dangerous events before they happen
+      </message>
+      <message name="IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_TWO" desc="Second bullet point that describes the details of the Safe Browsing control.">
+        Keeps you safe on Chrome and may be used to improve your security in other Google apps when you are signed in
+      </message>
+      <message name="IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_THREE" desc="Third bullet point that describes the details of the Safe Browsing control.">
+        Warns you if passwords are exposed in a data breach
+      </message>
+      <message name="IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_FOUR" desc="Fourth bullet point that describes the details of the Safe Browsing control.">
+        Improves security for you and everyone on the web
+      </message>
+      <message name="IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_FIVE" desc="Fifth bullet point that describes the details of the Safe Browsing control.">
+        Sends URLs to Safe Browsing to check them
+      </message>
+      <message name="IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_SIX" desc="Sixth bullet point that describes the details of the Safe Browsing control.">
+        Sends a small sample of pages, downloads, extension activity, and system information to help discover new threats
+      </message>
+      <message name="IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_SEVEN" desc="Seventh bullet point that describes the details of the Safe Browsing control.">
+        Temporarily links this data to your Google Account when you’re signed in, to protect you across Google apps
+      </message>
 
       <!-- Safety check -->
       <message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]">
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_EXPLANATION_CLOSED_DESCRIPTION.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_EXPLANATION_CLOSED_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..d27d5528
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_EXPLANATION_CLOSED_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+1e5e3a4d6a2985da1dbb89f3ca8a02db5f5f6d3a
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_EXPLANATION_CONTENT_DESCRIPTION.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_EXPLANATION_CONTENT_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..d27d5528
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_EXPLANATION_CONTENT_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+1e5e3a4d6a2985da1dbb89f3ca8a02db5f5f6d3a
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_EXPLANATION_OPENED_FULL.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_EXPLANATION_OPENED_FULL.png.sha1
new file mode 100644
index 0000000..d27d5528
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_EXPLANATION_OPENED_FULL.png.sha1
@@ -0,0 +1 @@
+1e5e3a4d6a2985da1dbb89f3ca8a02db5f5f6d3a
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_EXPLANATION_OPENED_HALF.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_EXPLANATION_OPENED_HALF.png.sha1
new file mode 100644
index 0000000..d27d5528
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_EXPLANATION_OPENED_HALF.png.sha1
@@ -0,0 +1 @@
+1e5e3a4d6a2985da1dbb89f3ca8a02db5f5f6d3a
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_FIVE.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_FIVE.png.sha1
new file mode 100644
index 0000000..5048ff6
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_FIVE.png.sha1
@@ -0,0 +1 @@
+a8035d0d54751e998198e969e458bcda7555df9e
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_FOUR.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_FOUR.png.sha1
new file mode 100644
index 0000000..5048ff6
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_FOUR.png.sha1
@@ -0,0 +1 @@
+a8035d0d54751e998198e969e458bcda7555df9e
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_ONE.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_ONE.png.sha1
new file mode 100644
index 0000000..5048ff6
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_ONE.png.sha1
@@ -0,0 +1 @@
+a8035d0d54751e998198e969e458bcda7555df9e
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_SEVEN.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_SEVEN.png.sha1
new file mode 100644
index 0000000..5048ff6
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_SEVEN.png.sha1
@@ -0,0 +1 @@
+a8035d0d54751e998198e969e458bcda7555df9e
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_SIX.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_SIX.png.sha1
new file mode 100644
index 0000000..5048ff6
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_SIX.png.sha1
@@ -0,0 +1 @@
+a8035d0d54751e998198e969e458bcda7555df9e
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_THREE.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_THREE.png.sha1
new file mode 100644
index 0000000..5048ff6
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_THREE.png.sha1
@@ -0,0 +1 @@
+a8035d0d54751e998198e969e458bcda7555df9e
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_TWO.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_TWO.png.sha1
new file mode 100644
index 0000000..5048ff6
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_TWO.png.sha1
@@ -0,0 +1 @@
+a8035d0d54751e998198e969e458bcda7555df9e
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_STANDARD_ITEM_ONE.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_STANDARD_ITEM_ONE.png.sha1
new file mode 100644
index 0000000..d27d5528
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_STANDARD_ITEM_ONE.png.sha1
@@ -0,0 +1 @@
+1e5e3a4d6a2985da1dbb89f3ca8a02db5f5f6d3a
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_STANDARD_ITEM_THREE.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_STANDARD_ITEM_THREE.png.sha1
new file mode 100644
index 0000000..d27d5528
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_STANDARD_ITEM_THREE.png.sha1
@@ -0,0 +1 @@
+1e5e3a4d6a2985da1dbb89f3ca8a02db5f5f6d3a
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_STANDARD_ITEM_TWO.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_STANDARD_ITEM_TWO.png.sha1
new file mode 100644
index 0000000..d27d5528
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PRIVACY_REVIEW_SB_STANDARD_ITEM_TWO.png.sha1
@@ -0,0 +1 @@
+1e5e3a4d6a2985da1dbb89f3ca8a02db5f5f6d3a
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
index c4b13b8..7facc93 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
@@ -144,6 +144,7 @@
 <translation id="1883903952484604915">मेरी फ़ाइलें</translation>
 <translation id="189358972401248634">अन्य भाषाएं</translation>
 <translation id="1894023287452300670">कीमत यहां ट्रैक करें</translation>
+<translation id="1900260903084164610">जारी रखने का मतलब है कि आप Chrome की <ph name="BEGIN_TOS_LINK" />सेवा की शर्तों<ph name="END_TOS_LINK" /> से सहमत हैं.</translation>
 <translation id="1905320231301365059">आप जो फ़ाइलें गुप्त मोड में डाउनलोड करते हैं, वे अब भी उन लोगों को दिखाई देती हैं जो इस डिवाइस का इस्तेमाल करते हैं.</translation>
 <translation id="1910950723001426294">शेयर करने के विकल्पों की सूची बंद है.</translation>
 <translation id="1918175104945982129">यूज़र इंटरफ़ेस (यूआई) पर वॉइस सर्च के लिए, Assistant का इस्तेमाल करने की सहमति आधी स्क्रीन में खुली हुई है</translation>
@@ -433,7 +434,7 @@
 <translation id="3414952576877147120">आकार:</translation>
 <translation id="3421726884497337397">चुनें कि तीसरे पक्ष की कुकी को कब ब्लॉक करना है</translation>
 <translation id="3429160811076349561">ट्रायल की सुविधाएं बंद हैं</translation>
-<translation id="3435465986463792564">क्या कई विंडो खुली हैं? उन सभी को यहां से मैनेज किया जा सकता है</translation>
+<translation id="3435465986463792564">कई विंडो खुली हैं? उन सभी को यहां से मैनेज किया जा सकता है</translation>
 <translation id="3440975416244667276">ज़्यादा काम की जानकारी के लिए इसे दबाकर रखें</translation>
 <translation id="3443221991560634068">वर्तमान पेज फिर से लोड करें</translation>
 <translation id="3444179773590444986">क्या आप साइटों के लिए गहरे रंग वाली थीम से जुड़े सुझाव, शिकायत या राय शेयर करना चाहते हैं?</translation>
@@ -723,6 +724,7 @@
 <translation id="5162754098604580781">{FILE_COUNT,plural, =1{1 डाउनलोड नहीं हो सका.}one{# डाउनलोड नहीं हो सके.}other{# डाउनलोड नहीं हो सके.}}</translation>
 <translation id="5170568018924773124">फ़ोल्डर में दिखाएं</translation>
 <translation id="5171045022955879922">यूआरएल खोजें या टाइप करें</translation>
+<translation id="517734441743343109">जारी रखने का मतलब है कि आप Chrome की <ph name="BEGIN_TOS_LINK" />सेवा की शर्तों<ph name="END_TOS_LINK" /> और <ph name="BEGIN_PRIVACY_LINK" />निजता नीति<ph name="END_PRIVACY_LINK" /> से सहमत हैं.</translation>
 <translation id="5184329579814168207">Chrome में खोलें</translation>
 <translation id="5188992787241350004">बोलकर खोजें</translation>
 <translation id="5191251636205085390">तीसरे पक्ष की कुकी की जगह इस्तेमाल करने के मकसद से बनाई गई नई टेक्नोलॉजी के बारे में जानें और उन्हें कंट्रोल करें</translation>
@@ -1000,6 +1002,7 @@
 <translation id="6633067410344541938">अपने मौजूदा गुप्त टैब अनलॉक करें</translation>
 <translation id="6636623428211296678">नीचे दी गई अन्य सेटिंग देखें या इसे अभी पूरा करें</translation>
 <translation id="663674369910034433">निजता, सुरक्षा और डेटा इकट्ठा करने से जुड़ी ज़्यादा सेटिंग के लिए, <ph name="BEGIN_LINK1" />सिंक करें<ph name="END_LINK1" /> और <ph name="BEGIN_LINK2" />Google की सेवाएं<ph name="END_LINK2" /> देखें</translation>
+<translation id="6637100877383020115">ऐप्लिकेशन को बेहतर बनाने के लिए Chrome, ऐप्लिकेशन के इस्तेमाल और क्रैश होने से जुड़ा डेटा Google को भेजता है. <ph name="BEGIN_UMA_LINK" />मैनेज करें<ph name="END_UMA_LINK" /></translation>
 <translation id="6640207029842583248">हमेशा के लिए ब्लॉक करें</translation>
 <translation id="6643016212128521049">साफ़ करें</translation>
 <translation id="6643649862576733715">सेव किए गए डेटा की मात्रा के हिसाब से क्रम में लगाएं</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
index f609253..3d7f5266 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
@@ -144,6 +144,7 @@
 <translation id="1883903952484604915">Миний файл</translation>
 <translation id="189358972401248634">Бусад хэлнүүд</translation>
 <translation id="1894023287452300670">Эндээс үнэ хянаарай</translation>
+<translation id="1900260903084164610">Үргэлжлүүлснээр та <ph name="BEGIN_TOS_LINK" />Үйлчилгээний нөхцөлийг<ph name="END_TOS_LINK" /> зөвшөөрч байна.</translation>
 <translation id="1905320231301365059">Таны Нууцлалын горимд татсан файлууд энэ төхөөрөмжийг ашигладаг хүн бүрд харагдсан хэвээр байна.</translation>
 <translation id="1910950723001426294">Хуваалцах сонголтын жагсаалтыг хаасан.</translation>
 <translation id="1918175104945982129">Туслахын дуут хайлтын зөвшөөрлийн ui-г хагас өндрөөр нээсэн</translation>
@@ -722,6 +723,7 @@
 <translation id="5162754098604580781">{FILE_COUNT,plural, =1{1 таталт амжилтгүй боллоо.}other{# таталт амжилтгүй боллоо.}}</translation>
 <translation id="5170568018924773124">Хавтсанд харуул</translation>
 <translation id="5171045022955879922">Хайх эсвэл холбоосыг бичиж оруул</translation>
+<translation id="517734441743343109">Үргэлжлүүлснээр та <ph name="BEGIN_TOS_LINK" />Үйлчилгээний нөхцөл<ph name="END_TOS_LINK" /> болон <ph name="BEGIN_PRIVACY_LINK" />Нууцлалын\u00A0бодлогыг<ph name="END_PRIVACY_LINK" /> зөвшөөрч байна.</translation>
 <translation id="5184329579814168207">Chrome-д нээх</translation>
 <translation id="5188992787241350004">Дуу хоолойгоороо хайгаарай</translation>
 <translation id="5191251636205085390">Гуравдагч талын күүкиг орлох зорилготой шинэ технологийн талаар мэдэж авч мөн хянаарай</translation>
@@ -999,6 +1001,7 @@
 <translation id="6633067410344541938">Нууцлалтай харилцан үйлдлийн түгжээг тайлах</translation>
 <translation id="6636623428211296678">Доорх бусад тохиргоог судлах эсвэл одоо дуусгах</translation>
 <translation id="663674369910034433">Нууцлал, аюулгүй байдал болон өгөгдөл цуглуулахтай холбоотой бусад тохиргоог <ph name="BEGIN_LINK1" />Синк хийх<ph name="END_LINK1" /> болон <ph name="BEGIN_LINK2" />Google-н үйлчилгээнүүд<ph name="END_LINK2" />-ээс харна уу.</translation>
+<translation id="6637100877383020115">Аппыг сайжруулахад туслахын тулд Chrome нь ашиглалт болон гэмтлийн өгөгдлийг Google-д илгээдэг. <ph name="BEGIN_UMA_LINK" />Удирдах<ph name="END_UMA_LINK" /></translation>
 <translation id="6640207029842583248">Ямар ч үед блоклох</translation>
 <translation id="6643016212128521049">Цэвэрлэх</translation>
 <translation id="6643649862576733715">Хадгалсан өгөгдлийг хэмжээгээр нь эрэмбэлэх</translation>
diff --git a/chrome/browser/ui/ash/capture_mode/capture_mode_browsertest.cc b/chrome/browser/ui/ash/capture_mode/capture_mode_browsertest.cc
index c99e658..28cf3ce 100644
--- a/chrome/browser/ui/ash/capture_mode/capture_mode_browsertest.cc
+++ b/chrome/browser/ui/ash/capture_mode/capture_mode_browsertest.cc
@@ -13,15 +13,22 @@
 #include "base/test/bind.h"
 #include "base/test/scoped_feature_list.h"
 #include "chrome/browser/ash/file_manager/file_manager_test_util.h"
+#include "chrome/browser/ash/policy/dlp/dlp_content_manager_ash_test_helper.h"
 #include "chrome/browser/chromeos/policy/dlp/dlp_content_observer.h"
 #include "chrome/browser/chromeos/policy/dlp/dlp_content_restriction_set.h"
+#include "chrome/browser/chromeos/policy/dlp/dlp_policy_event.pb.h"
+#include "chrome/browser/chromeos/policy/dlp/dlp_reporting_manager.h"
+#include "chrome/browser/chromeos/policy/dlp/dlp_reporting_manager_test_helper.h"
 #include "chrome/browser/chromeos/policy/dlp/dlp_rules_manager.h"
+#include "chrome/browser/chromeos/policy/dlp/dlp_rules_manager_factory.h"
+#include "chrome/browser/chromeos/policy/dlp/mock_dlp_rules_manager.h"
 #include "chrome/browser/extensions/extension_browsertest.h"
-#include "chrome/browser/ui/ash/capture_mode/chrome_capture_mode_delegate.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "content/public/test/browser_test.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_observer.h"
 #include "ui/events/event_constants.h"
@@ -31,11 +38,17 @@
 
 namespace {
 
+// Defines a report-level restriction type for screen captures.
+const policy::DlpContentRestrictionSet kScreenCaptureReported{
+    policy::DlpContentRestriction::kScreenshot,
+    policy::DlpRulesManager::Level::kReport};
 // Defines a warning-level restriction type for screen captures.
 const policy::DlpContentRestrictionSet kScreenCaptureWarned{
     policy::DlpContentRestriction::kScreenshot,
     policy::DlpRulesManager::Level::kWarn};
 
+constexpr char kSrcPattern[] = "example.com";
+
 // Returns the native window of the given `browser`.
 aura::Window* GetBrowserWindow(Browser* browser) {
   return browser->window()->GetNativeWindow();
@@ -123,11 +136,56 @@
   event_generator.PressAndReleaseKey(key_code, flags);
 }
 
+std::unique_ptr<KeyedService> SetDlpRulesManager(
+    content::BrowserContext* context) {
+  auto dlp_rules_manager =
+      std::make_unique<testing::NiceMock<policy::MockDlpRulesManager>>();
+  ON_CALL(*dlp_rules_manager, GetSourceUrlPattern)
+      .WillByDefault(testing::Return(kSrcPattern));
+  return dlp_rules_manager;
+}
+
 }  // namespace
 
 // Testing class to test CrOS capture mode, which is a feature to take
 // screenshots and record video.
-using CaptureModeBrowserTest = InProcessBrowserTest;
+class CaptureModeBrowserTest : public InProcessBrowserTest {
+ public:
+  CaptureModeBrowserTest() = default;
+  ~CaptureModeBrowserTest() override = default;
+
+  void SetUpOnMainThread() override {
+    // Instantiate |DlpContentManagerAshTestHelper| after main thread has been
+    // set up because |DlpReportingManager| needs a sequenced task runner handle
+    // to set up the report queue.
+    helper_ = std::make_unique<policy::DlpContentManagerAshTestHelper>();
+    // TODO(https://crbug.com/1283065): Remove this.
+    // Currently, setting the notifier explicitly is needed since otherwise, due
+    // to a wrongly initialized notifier, calling the virtual
+    // ShowDlpWarningDialog() method causes a crash.
+    helper_->ResetWarnNotifierForTesting();
+  }
+
+  void TearDownOnMainThread() override { helper_.reset(); }
+
+  void SetupDlpReporting() {
+    SetupDlpRulesManager();
+    // Set up mock report queue.
+    SetReportQueueForReportingManager(helper_->GetReportingManager(), events_,
+                                      base::SequencedTaskRunnerHandle::Get());
+  }
+
+ protected:
+  // Sets up mock rules manager.
+  void SetupDlpRulesManager() {
+    policy::DlpRulesManagerFactory::GetInstance()->SetTestingFactory(
+        browser()->profile(), base::BindRepeating(&SetDlpRulesManager));
+    ASSERT_TRUE(policy::DlpRulesManagerFactory::GetForPrimaryProfile());
+  }
+
+  std::unique_ptr<policy::DlpContentManagerAshTestHelper> helper_;
+  std::vector<DlpPolicyEvent> events_;
+};
 
 IN_PROC_BROWSER_TEST_F(CaptureModeBrowserTest, ContextMenuStaysOpen) {
   // Right click the desktop to open a context menu.
@@ -146,6 +204,88 @@
   EXPECT_TRUE(shell_test_api.IsContextMenuShown());
 }
 
+// Checks that video capture emits exactly one DLP reporting event.
+IN_PROC_BROWSER_TEST_F(CaptureModeBrowserTest, DlpReporting) {
+  SetupDlpReporting();
+
+  // Set DLP restriction.
+  auto* dlp_content_observer = policy::DlpContentObserver::Get();
+  ASSERT_TRUE(dlp_content_observer);
+  content::WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  ASSERT_TRUE(web_contents);
+  dlp_content_observer->OnConfidentialityChanged(web_contents,
+                                                 kScreenCaptureReported);
+
+  ash::CaptureModeTestApi test_api;
+
+  // Should emit the first reporting event.
+  StartVideoRecording();
+  ASSERT_TRUE(test_api.IsVideoRecordingInProgress());
+  // Set up a waiter to wait for the file to be saved.
+  {
+    base::RunLoop loop;
+    SetupLoopToWaitForCaptureFileToBeSaved(&loop);
+    test_api.StopVideoRecording();
+    loop.Run();
+  }
+  ASSERT_FALSE(test_api.IsVideoRecordingInProgress());
+
+  ASSERT_EQ(events_.size(), 1u);
+  EXPECT_THAT(events_[0], policy::IsDlpPolicyEvent(CreateDlpPolicyEvent(
+                              kSrcPattern,
+                              policy::DlpRulesManager::Restriction::kScreenshot,
+                              policy::DlpRulesManager::Level::kReport)));
+
+  // Repeat, should emit the second reporting event.
+  StartVideoRecording();
+  ASSERT_TRUE(test_api.IsVideoRecordingInProgress());
+  {
+    base::RunLoop loop;
+    SetupLoopToWaitForCaptureFileToBeSaved(&loop);
+    test_api.StopVideoRecording();
+    loop.Run();
+  }
+  ASSERT_FALSE(test_api.IsVideoRecordingInProgress());
+
+  ASSERT_EQ(events_.size(), 2u);
+  EXPECT_THAT(events_[1], policy::IsDlpPolicyEvent(CreateDlpPolicyEvent(
+                              kSrcPattern,
+                              policy::DlpRulesManager::Restriction::kScreenshot,
+                              policy::DlpRulesManager::Level::kReport)));
+}
+
+// Tests DLP reporting without opening the capture bar.
+IN_PROC_BROWSER_TEST_F(CaptureModeBrowserTest,
+                       DlpReportingDialogOnFullscreenScreenCaptureShortcut) {
+  ASSERT_TRUE(browser());
+  SetupDlpReporting();
+
+  // Set DLP restriction.
+  auto* dlp_content_observer = policy::DlpContentObserver::Get();
+  ASSERT_TRUE(dlp_content_observer);
+  content::WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  ASSERT_TRUE(web_contents);
+  dlp_content_observer->OnConfidentialityChanged(web_contents,
+                                                 kScreenCaptureReported);
+
+  // Set up a waiter to wait for the file to be saved.
+  base::RunLoop loop;
+  SetupLoopToWaitForCaptureFileToBeSaved(&loop);
+
+  SendKeyEvent(browser(), ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN);
+
+  // Wait for the file to be saved.
+  loop.Run();
+
+  ASSERT_EQ(events_.size(), 1u);
+  EXPECT_THAT(events_[0], policy::IsDlpPolicyEvent(CreateDlpPolicyEvent(
+                              kSrcPattern,
+                              policy::DlpRulesManager::Restriction::kScreenshot,
+                              policy::DlpRulesManager::Level::kReport)));
+}
+
 IN_PROC_BROWSER_TEST_F(CaptureModeBrowserTest,
                        DlpWarningDialogOnVideoEndDismissed) {
   ASSERT_TRUE(browser());
diff --git a/chrome/browser/ui/ash/capture_mode/chrome_capture_mode_delegate.cc b/chrome/browser/ui/ash/capture_mode/chrome_capture_mode_delegate.cc
index 2039213..56d7093 100644
--- a/chrome/browser/ui/ash/capture_mode/chrome_capture_mode_delegate.cc
+++ b/chrome/browser/ui/ash/capture_mode/chrome_capture_mode_delegate.cc
@@ -171,6 +171,13 @@
       std::move(callback));
 }
 
+void ChromeCaptureModeDelegate::OnCaptureImageAttempted(
+    const aura::Window* window,
+    const gfx::Rect& bounds) {
+  policy::DlpContentManagerAsh::Get()->OnImageCapture(
+      ConvertToScreenshotArea(window, bounds));
+}
+
 mojo::Remote<recording::mojom::RecordingService>
 ChromeCaptureModeDelegate::LaunchRecordingService() {
   return content::ServiceProcessHost::Launch<
diff --git a/chrome/browser/ui/ash/capture_mode/chrome_capture_mode_delegate.h b/chrome/browser/ui/ash/capture_mode/chrome_capture_mode_delegate.h
index 25ad18f4..9120d140 100644
--- a/chrome/browser/ui/ash/capture_mode/chrome_capture_mode_delegate.h
+++ b/chrome/browser/ui/ash/capture_mode/chrome_capture_mode_delegate.h
@@ -49,6 +49,8 @@
       base::OnceClosure stop_callback) override;
   void StopObservingRestrictedContent(
       ash::OnCaptureModeDlpRestrictionChecked callback) override;
+  void OnCaptureImageAttempted(const aura::Window* window,
+                               const gfx::Rect& bounds) override;
   mojo::Remote<recording::mojom::RecordingService> LaunchRecordingService()
       override;
   void BindAudioStreamFactory(
diff --git a/chrome/browser/ui/ash/desks_templates/desks_templates_client_browsertest.cc b/chrome/browser/ui/ash/desks_templates/desks_templates_client_browsertest.cc
index 72a7cf9f..fa0fdc62 100644
--- a/chrome/browser/ui/ash/desks_templates/desks_templates_client_browsertest.cc
+++ b/chrome/browser/ui/ash/desks_templates/desks_templates_client_browsertest.cc
@@ -23,6 +23,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/bind.h"
 #include "base/test/scoped_feature_list.h"
+#include "build/build_config.h"
 #include "chrome/browser/apps/app_service/app_service_proxy.h"
 #include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
 #include "chrome/browser/apps/platform_apps/app_browsertest_util.h"
@@ -1663,10 +1664,19 @@
   ClickFirstTemplateItem();
 }
 
+// crbug.com/1288715: flaky on Linux.
+#if defined(OS_LINUX)
+#define MAYBE_NativeUILaunchMultipleDeskTemplates \
+  DISABLED_NativeUILaunchMultipleDeskTemplates
+#else
+#define MAYBE_NativeUILaunchMultipleDeskTemplates \
+  NativeUILaunchMultipleDeskTemplates
+#endif
+
 // Tests that launching the same desk template multiple times creates desks with
 // different/incremented names.
 IN_PROC_BROWSER_TEST_F(DesksTemplatesClientTest,
-                       NativeUILaunchMultipleDeskTemplates) {
+                       MAYBE_NativeUILaunchMultipleDeskTemplates) {
   const base::GUID kDeskUuid = base::GUID::GenerateRandomV4();
   const std::u16string kDeskName(u"Test Desk Name");
 
diff --git a/chrome/browser/ui/startup/startup_browser_creator.cc b/chrome/browser/ui/startup/startup_browser_creator.cc
index a23157d..28a36486 100644
--- a/chrome/browser/ui/startup/startup_browser_creator.cc
+++ b/chrome/browser/ui/startup/startup_browser_creator.cc
@@ -911,7 +911,8 @@
 #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
   // Writes open and installed web apps to the specified file without
   // launching a new browser window or tab.
-  if (command_line.HasSwitch(switches::kListApps)) {
+  if (base::FeatureList::IsEnabled(features::kListWebAppsSwitch) &&
+      command_line.HasSwitch(switches::kListApps)) {
     base::FilePath output_file(
         command_line.GetSwitchValuePath(switches::kListApps));
     if (!output_file.empty() && output_file.IsAbsolute()) {
diff --git a/chrome/browser/ui/startup/startup_browser_creator.h b/chrome/browser/ui/startup/startup_browser_creator.h
index bfc4dd9..e2523461 100644
--- a/chrome/browser/ui/startup/startup_browser_creator.h
+++ b/chrome/browser/ui/startup/startup_browser_creator.h
@@ -200,8 +200,10 @@
                            ValidNotificationLaunchId);
   FRIEND_TEST_ALL_PREFIXES(StartupBrowserCreatorTest,
                            InvalidNotificationLaunchId);
-  FRIEND_TEST_ALL_PREFIXES(StartupBrowserCreatorTest, ListAppsForAllProfiles);
-  FRIEND_TEST_ALL_PREFIXES(StartupBrowserCreatorTest, ListAppsForGivenProfile);
+  FRIEND_TEST_ALL_PREFIXES(StartupBrowserWithListAppsFeature,
+                           ListAppsForAllProfiles);
+  FRIEND_TEST_ALL_PREFIXES(StartupBrowserWithListAppsFeature,
+                           ListAppsForGivenProfile);
   FRIEND_TEST_ALL_PREFIXES(StartupBrowserCreatorChromeAppShortcutTest,
                            OpenAppShortcutNoPref);
   FRIEND_TEST_ALL_PREFIXES(StartupBrowserCreatorChromeAppShortcutTest,
diff --git a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
index e185d66..bcb1e7c 100644
--- a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
+++ b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
@@ -22,6 +22,7 @@
 #include "base/test/bind.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/mock_callback.h"
+#include "base/test/scoped_feature_list.h"
 #include "base/test/test_future.h"
 #include "base/threading/thread_restrictions.h"
 #include "build/branding_buildflags.h"
@@ -1644,7 +1645,18 @@
   return web_app::test::InstallWebApp(profile, std::move(web_app_info));
 }
 
-IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, ListAppsForAllProfiles) {
+class StartupBrowserWithListAppsFeature : public StartupBrowserCreatorTest {
+ public:
+  StartupBrowserWithListAppsFeature() {
+    scoped_feature_list_.InitAndEnableFeature(features::kListWebAppsSwitch);
+  }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
+IN_PROC_BROWSER_TEST_F(StartupBrowserWithListAppsFeature,
+                       ListAppsForAllProfiles) {
   ProfileManager* profile_manager = g_browser_process->profile_manager();
   base::FilePath user_data_dir = profile_manager->user_data_dir();
   Profile* profile1 = browser()->profile();
@@ -1751,7 +1763,8 @@
   }
 }
 
-IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, ListAppsForGivenProfile) {
+IN_PROC_BROWSER_TEST_F(StartupBrowserWithListAppsFeature,
+                       ListAppsForGivenProfile) {
   ProfileManager* profile_manager = g_browser_process->profile_manager();
   base::FilePath user_data_dir = profile_manager->user_data_dir();
   Profile* profile1 = browser()->profile();
diff --git a/chrome/browser/ui/toolbar/recent_tabs_builder_test_helper.cc b/chrome/browser/ui/toolbar/recent_tabs_builder_test_helper.cc
index 345a40a4b..96d17ca 100644
--- a/chrome/browser/ui/toolbar/recent_tabs_builder_test_helper.cc
+++ b/chrome/browser/ui/toolbar/recent_tabs_builder_test_helper.cc
@@ -16,9 +16,9 @@
 #include "base/strings/utf_string_conversions.h"
 #include "components/sync/base/client_tag_hash.h"
 #include "components/sync/engine/commit_and_get_updates_types.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/engine/model_type_processor.h"
 #include "components/sync/model/in_memory_metadata_change_list.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/session_specifics.pb.h"
 #include "components/sync_sessions/open_tabs_ui_delegate.h"
 #include "components/sync_sessions/session_store.h"
diff --git a/chrome/browser/ui/views/payments/empty_update_browsertest.cc b/chrome/browser/ui/views/payments/empty_update_browsertest.cc
index f3b7831..625a9b1 100644
--- a/chrome/browser/ui/views/payments/empty_update_browsertest.cc
+++ b/chrome/browser/ui/views/payments/empty_update_browsertest.cc
@@ -4,9 +4,11 @@
 
 #include <list>
 
+#include "base/test/scoped_feature_list.h"
 #include "chrome/browser/ui/views/payments/payment_request_browsertest_base.h"
 #include "chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h"
 #include "components/autofill/core/browser/autofill_test_utils.h"
+#include "content/public/common/content_features.h"
 #include "content/public/test/browser_test.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -19,7 +21,12 @@
       const PaymentRequestEmptyUpdateTest&) = delete;
 
  protected:
-  PaymentRequestEmptyUpdateTest() {}
+  PaymentRequestEmptyUpdateTest() {
+    feature_list_.InitAndEnableFeature(features::kPaymentRequestBasicCard);
+  }
+
+ private:
+  base::test::ScopedFeatureList feature_list_;
 };
 
 IN_PROC_BROWSER_TEST_F(PaymentRequestEmptyUpdateTest, NoCrash) {
@@ -40,4 +47,54 @@
   // No crash indicates a successful test.
 }
 
+// The tests in this class correspond to the tests of the same name in
+// PaymentRequestEmptyUpdateTest, with the basic-card being disabled.
+// Parameterized tests are not used because the test setup for both tests are
+// too different.
+class PaymentRequestEmptyUpdateBasicCardDisabledTest
+    : public PaymentRequestBrowserTestBase {
+ public:
+  PaymentRequestEmptyUpdateBasicCardDisabledTest(
+      const PaymentRequestEmptyUpdateBasicCardDisabledTest&) = delete;
+  PaymentRequestEmptyUpdateBasicCardDisabledTest& operator=(
+      const PaymentRequestEmptyUpdateBasicCardDisabledTest&) = delete;
+
+ protected:
+  PaymentRequestEmptyUpdateBasicCardDisabledTest() {
+    feature_list_.InitAndDisableFeature(features::kPaymentRequestBasicCard);
+  }
+
+ private:
+  base::test::ScopedFeatureList feature_list_;
+};
+
+IN_PROC_BROWSER_TEST_F(PaymentRequestEmptyUpdateBasicCardDisabledTest,
+                       NoCrash) {
+  // Installs two apps to ensure that the payment request UI is shown.
+  std::string a_method_name;
+  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+                    &a_method_name);
+  std::string b_method_name;
+  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+                    &b_method_name);
+
+  NavigateTo("/payment_request_empty_update_test.html");
+  AddAutofillProfile(autofill::test::GetFullProfile());
+  InvokePaymentRequestUIWithJs(content::JsReplace(
+      "buyWithMethods([{supportedMethods:$1}, {supportedMethods:$2}]);",
+      a_method_name, b_method_name));
+  OpenShippingAddressSectionScreen();
+
+  ResetEventWaiterForSequence({DialogEvent::PROCESSING_SPINNER_SHOWN,
+                               DialogEvent::PROCESSING_SPINNER_HIDDEN,
+                               DialogEvent::SPEC_DONE_UPDATING});
+
+  ClickOnChildInListViewAndWait(
+      /* child_index=*/0, /*total_num_children=*/1,
+      DialogViewID::SHIPPING_ADDRESS_SHEET_LIST_VIEW,
+      /*wait_for_animation=*/false);
+
+  // No crash indicates a successful test.
+}
+
 }  // namespace payments
diff --git a/chrome/browser/ui/views/payments/error_message_view_controller_browsertest.cc b/chrome/browser/ui/views/payments/error_message_view_controller_browsertest.cc
index c1c2ef21..3a37ad38 100644
--- a/chrome/browser/ui/views/payments/error_message_view_controller_browsertest.cc
+++ b/chrome/browser/ui/views/payments/error_message_view_controller_browsertest.cc
@@ -5,11 +5,13 @@
 #include <vector>
 
 #include "base/strings/utf_string_conversions.h"
+#include "base/test/scoped_feature_list.h"
 #include "chrome/browser/ui/views/payments/payment_request_browsertest_base.h"
 #include "chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "components/autofill/core/browser/autofill_test_utils.h"
 #include "components/autofill/core/browser/data_model/credit_card.h"
+#include "content/public/common/content_features.h"
 #include "content/public/test/browser_test.h"
 #include "content/public/test/browser_test_utils.h"
 
@@ -23,7 +25,12 @@
       const PaymentRequestErrorMessageTest&) = delete;
 
  protected:
-  PaymentRequestErrorMessageTest() {}
+  PaymentRequestErrorMessageTest() {
+    feature_list_.InitAndEnableFeature(::features::kPaymentRequestBasicCard);
+  }
+
+ private:
+  base::test::ScopedFeatureList feature_list_;
 };
 
 // Testing the use of the complete('fail') JS API and the error message.
@@ -55,4 +62,49 @@
                            /*wait_for_animation=*/false);
 }
 
+class PaymentRequestErrorMessageBasicCardDisabledTest
+    : public PaymentRequestBrowserTestBase {
+ public:
+  PaymentRequestErrorMessageBasicCardDisabledTest(
+      const PaymentRequestErrorMessageTest&) = delete;
+  PaymentRequestErrorMessageBasicCardDisabledTest& operator=(
+      const PaymentRequestErrorMessageBasicCardDisabledTest&) = delete;
+
+ protected:
+  PaymentRequestErrorMessageBasicCardDisabledTest() {
+    feature_list_.InitAndDisableFeature(::features::kPaymentRequestBasicCard);
+  }
+
+ private:
+  base::test::ScopedFeatureList feature_list_;
+};
+
+// Testing the use of the complete('fail') JS API and the error message.
+IN_PROC_BROWSER_TEST_F(PaymentRequestErrorMessageBasicCardDisabledTest,
+                       CompleteFail) {
+  std::string payment_method_name;
+  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+                    &payment_method_name);
+
+  NavigateTo("/payment_request_fail_complete_test.html");
+
+  InvokePaymentRequestUIWithJs("buyWithMethods([{supportedMethods:'" +
+                               payment_method_name + "'}]);");
+
+  // We are ready to pay.
+  ASSERT_TRUE(IsPayButtonEnabled());
+
+  // Once "Pay" is clicked, the page will call complete('fail') and the error
+  // message should be shown.
+  ResetEventWaiterForSequence({DialogEvent::PROCESSING_SPINNER_HIDDEN,
+                               DialogEvent::ERROR_MESSAGE_SHOWN});
+  ClickOnDialogViewAndWait(DialogViewID::PAY_BUTTON, dialog_view());
+  EXPECT_FALSE(dialog_view()->throbber_overlay_for_testing()->GetVisible());
+
+  // The user can only close the dialog at this point.
+  ResetEventWaiter(DialogEvent::DIALOG_CLOSED);
+  ClickOnDialogViewAndWait(DialogViewID::CANCEL_BUTTON,
+                           /*wait_for_animation=*/false);
+}
+
 }  // namespace payments
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt
index 6d3285d..3ae0d43 100644
--- a/chrome/build/linux.pgo.txt
+++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@
-chrome-linux-main-1642571800-774c3b4060f7ec440a2c976030c5ce7dac4b88d6.profdata
+chrome-linux-main-1642593155-8c336440867e9250c04fc82b71080818b00b1768.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index 742eb55..13368ba6 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1642571800-f3a26a49418fcd8206999a88daf3ae2744183941.profdata
+chrome-mac-main-1642593155-94d16e3ff211c9d634f56fddefa0354e8313fc70.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index bf37795..dc62fc8 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1642571800-b24975915bc940d7c50628a7cca5ba7cee02d9a5.profdata
+chrome-win32-main-1642593155-ff0a2e73ab65505099a61750d4ed63a6f59dfb0d.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index 699c276..3522930 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1642571800-e2fa45e956f33a0d1b4c47af9acf5a885f70796b.profdata
+chrome-win64-main-1642593155-966c73cf8e880a08e307abf492dafff836860153.profdata
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index 4dca795..acf647e 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -694,6 +694,11 @@
     &kLinuxLowMemoryMonitor, "critical_level", 255};
 #endif  // BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
 
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
+const base::Feature kListWebAppsSwitch{"ListWebAppsSwitch",
+                                       base::FEATURE_DISABLED_BY_DEFAULT};
+#endif
+
 #if BUILDFLAG(IS_MAC)
 // Uses NSFullSizeContentViewWindowMask where available instead of adding our
 // own views to the window frame. This is a temporary kill switch, it can be
@@ -864,6 +869,10 @@
 // Enables the third release of the Privacy Sandbox settings
 const base::Feature kPrivacySandboxSettings3{"PrivacySandboxSettings3",
                                              base::FEATURE_DISABLED_BY_DEFAULT};
+const base::FeatureParam<bool> kPrivacySandboxSettings3ForceShowConsent{
+    &kPrivacySandboxSettings3, "force-show-consent", false};
+const base::FeatureParam<bool> kPrivacySandboxSettings3ForceShowNotice{
+    &kPrivacySandboxSettings3, "force-show-notice", false};
 
 // Enables or disables push subscriptions keeping Chrome running in the
 // background when closed.
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h
index 4f522d3..f717c96 100644
--- a/chrome/common/chrome_features.h
+++ b/chrome/common/chrome_features.h
@@ -471,6 +471,11 @@
 extern const base::FeatureParam<int> kLinuxLowMemoryMonitorCriticalLevel;
 #endif  // BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
 
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
+COMPONENT_EXPORT(CHROME_FEATURES)
+extern const base::Feature kListWebAppsSwitch;
+#endif
+
 #if BUILDFLAG(IS_MAC)
 COMPONENT_EXPORT(CHROME_FEATURES)
 extern const base::Feature kMacFullSizeContentView;
@@ -587,6 +592,10 @@
 
 COMPONENT_EXPORT(CHROME_FEATURES)
 extern const base::Feature kPrivacySandboxSettings3;
+COMPONENT_EXPORT(CHROME_FEATURES)
+extern const base::FeatureParam<bool> kPrivacySandboxSettings3ForceShowConsent;
+COMPONENT_EXPORT(CHROME_FEATURES)
+extern const base::FeatureParam<bool> kPrivacySandboxSettings3ForceShowNotice;
 
 COMPONENT_EXPORT(CHROME_FEATURES)
 extern const base::Feature kPushMessagingBackgroundMode;
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
index 9f5e060..5d322aac 100644
--- a/chrome/common/pref_names.cc
+++ b/chrome/common/pref_names.cc
@@ -3079,10 +3079,6 @@
 // Boolean that specifies opting into --site-per-process (full Site Isolation).
 const char kSitePerProcess[] = "site_isolation.site_per_process";
 
-// Boolean that enable cross-origin sharing for WebAssembly modules.
-const char kCrossOriginWebAssemblyModuleSharingEnabled[] =
-    "profile.cross_origin_webassembly_module_sharing_enabled";
-
 // Boolean that is true when the display-capture permissions-policy is enabled.
 // This permissions-policy gates access to getDisplayMedia(), as per this spec:
 // https://www.w3.org/TR/screen-capture/#feature-policy-integration
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index 1b972bab..d378332 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -1058,8 +1058,6 @@
 extern const char kIsolateOrigins[];
 extern const char kSitePerProcess[];
 
-extern const char kCrossOriginWebAssemblyModuleSharingEnabled[];
-
 extern const char kDisplayCapturePermissionsPolicyEnabled[];
 
 #if !BUILDFLAG(IS_ANDROID)
diff --git a/chrome/test/base/chromeos/ash_browser_test_starter.cc b/chrome/test/base/chromeos/ash_browser_test_starter.cc
index ae6bbd1cd..73373115 100644
--- a/chrome/test/base/chromeos/ash_browser_test_starter.cc
+++ b/chrome/test/base/chromeos/ash_browser_test_starter.cc
@@ -20,6 +20,7 @@
 #include "chrome/test/base/in_process_browser_test.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
+namespace crosapi {
 namespace test {
 
 AshBrowserTestStarter::AshBrowserTestStarter() = default;
@@ -45,7 +46,7 @@
   return true;
 }
 
-class LacrosStartedObserver : public crosapi::BrowserManagerObserver {
+class LacrosStartedObserver : public BrowserManagerObserver {
  public:
   LacrosStartedObserver() = default;
   LacrosStartedObserver(const LacrosStartedObserver&) = delete;
@@ -53,13 +54,13 @@
   ~LacrosStartedObserver() override = default;
 
   void OnStateChanged() override {
-    if (crosapi::BrowserManager::Get()->IsRunning()) {
+    if (BrowserManager::Get()->IsRunning()) {
       run_loop_.Quit();
     }
   }
 
   void Wait(base::TimeDelta timeout) {
-    if (crosapi::BrowserManager::Get()->IsRunning()) {
+    if (BrowserManager::Get()->IsRunning()) {
       return;
     }
     base::ThreadPool::PostDelayedTask(FROM_HERE, run_loop_.QuitClosure(),
@@ -91,16 +92,16 @@
   DCHECK(HasLacrosArgument());
 
   WaitForExoStarted(scoped_temp_dir_xdg_.GetPath());
-
-  crosapi::BrowserManager::Get()->NewWindow(
-      /*incongnito=*/false, /*should_trigger_session_restore=*/false);
+  auto* browser_manager = BrowserManager::Get();
+  lacros_keep_alive_ =
+      browser_manager->KeepAlive(BrowserManager::Feature::kTestOnly);
 
   LacrosStartedObserver observer;
-  crosapi::BrowserManager::Get()->AddObserver(&observer);
+  browser_manager->AddObserver(&observer);
   observer.Wait(TestTimeouts::action_max_timeout());
-  crosapi::BrowserManager::Get()->RemoveObserver(&observer);
+  browser_manager->RemoveObserver(&observer);
 
-  CHECK(crosapi::BrowserManager::Get()->IsRunning());
+  CHECK(browser_manager->IsRunning());
 
   // Create a new ash browser window so browser() can work.
   Profile* profile = ProfileManager::GetActiveUserProfile();
@@ -109,3 +110,4 @@
 }
 
 }  // namespace test
+}  // namespace crosapi
diff --git a/chrome/test/base/chromeos/ash_browser_test_starter.h b/chrome/test/base/chromeos/ash_browser_test_starter.h
index f4ca460..ae6f689 100644
--- a/chrome/test/base/chromeos/ash_browser_test_starter.h
+++ b/chrome/test/base/chromeos/ash_browser_test_starter.h
@@ -7,9 +7,11 @@
 
 #include "base/files/scoped_temp_dir.h"
 #include "base/test/scoped_feature_list.h"
+#include "chrome/browser/ash/crosapi/browser_manager.h"
 
 class InProcessBrowserTest;
 
+namespace crosapi {
 namespace test {
 
 class AshBrowserTestStarter {
@@ -37,8 +39,10 @@
   // This is XDG_RUNTIME_DIR.
   base::ScopedTempDir scoped_temp_dir_xdg_;
   base::test::ScopedFeatureList scoped_feature_list_;
+  std::unique_ptr<BrowserManager::ScopedKeepAlive> lacros_keep_alive_;
 };
 
 }  // namespace test
+}  // namespace crosapi
 
 #endif  // CHROME_TEST_BASE_CHROMEOS_ASH_BROWSER_TEST_STARTER_H_
diff --git a/chrome/test/base/chromeos/demo_ash_requires_lacros_browsertest.cc b/chrome/test/base/chromeos/demo_ash_requires_lacros_browsertest.cc
index 4321690..5d91577 100644
--- a/chrome/test/base/chromeos/demo_ash_requires_lacros_browsertest.cc
+++ b/chrome/test/base/chromeos/demo_ash_requires_lacros_browsertest.cc
@@ -34,7 +34,7 @@
   }
 
  protected:
-  test::AshBrowserTestStarter ash_starter_;
+  crosapi::test::AshBrowserTestStarter ash_starter_;
 };
 
 IN_PROC_BROWSER_TEST_F(DemoAshRequiresLacrosTest, NewTab) {
diff --git a/chrome/test/base/javascript_browser_test.cc b/chrome/test/base/javascript_browser_test.cc
index f818f11f..774407d 100644
--- a/chrome/test/base/javascript_browser_test.cc
+++ b/chrome/test/base/javascript_browser_test.cc
@@ -18,18 +18,13 @@
   user_libraries_.push_back(library_path);
 }
 
-JavaScriptBrowserTest::JavaScriptBrowserTest() {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+JavaScriptBrowserTest::JavaScriptBrowserTest() = default;
 
-#endif
-}
-
-JavaScriptBrowserTest::~JavaScriptBrowserTest() {
-}
+JavaScriptBrowserTest::~JavaScriptBrowserTest() = default;
 
 void JavaScriptBrowserTest::SetUpInProcessBrowserTestFixture() {
 #if BUILDFLAG(IS_CHROMEOS_ASH)
-  ash_starter_ = std::make_unique<test::AshBrowserTestStarter>();
+  ash_starter_ = std::make_unique<crosapi::test::AshBrowserTestStarter>();
   if (ash_starter_->HasLacrosArgument())
     ASSERT_TRUE(ash_starter_->PrepareEnvironmentForLacros());
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chrome/test/base/javascript_browser_test.h b/chrome/test/base/javascript_browser_test.h
index ef5a044c7..da2a919 100644
--- a/chrome/test/base/javascript_browser_test.h
+++ b/chrome/test/base/javascript_browser_test.h
@@ -49,7 +49,9 @@
                                     std::vector<base::Value> args);
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
-  test::AshBrowserTestStarter* ash_starter() { return ash_starter_.get(); }
+  crosapi::test::AshBrowserTestStarter* ash_starter() {
+    return ash_starter_.get();
+  }
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
  private:
@@ -60,7 +62,7 @@
   std::vector<base::FilePath> library_search_paths_;
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
-  std::unique_ptr<test::AshBrowserTestStarter> ash_starter_;
+  std::unique_ptr<crosapi::test::AshBrowserTestStarter> ash_starter_;
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 };
 
diff --git a/chrome/test/data/policy/policy_test_cases.json b/chrome/test/data/policy/policy_test_cases.json
index 375ec6e..0b9d15d 100644
--- a/chrome/test/data/policy/policy_test_cases.json
+++ b/chrome/test/data/policy/policy_test_cases.json
@@ -3194,43 +3194,7 @@
     ]
   },
   "CrossOriginWebAssemblyModuleSharingEnabled": {
-    "os": [
-      "win",
-      "linux",
-      "mac",
-      "chromeos_ash",
-      "chromeos_lacros"
-    ],
-    "policy_pref_mapping_tests": [
-      {
-        "policies": {
-          "CrossOriginWebAssemblyModuleSharingEnabled": false
-        },
-        "prefs": {
-          "profile.cross_origin_webassembly_module_sharing_enabled": {
-            "value": false
-          }
-        }
-      },
-      {
-        "policies": {
-          "CrossOriginWebAssemblyModuleSharingEnabled": true
-        },
-        "prefs": {
-          "profile.cross_origin_webassembly_module_sharing_enabled": {
-            "value": true
-          }
-        }
-      },
-      {
-        "policies": {},
-        "prefs": {
-          "profile.cross_origin_webassembly_module_sharing_enabled": {
-            "default_value": false
-          }
-        }
-      }
-    ]
+    "reason_for_missing_test": "Policy was removed"
   },
   "DisplayCapturePermissionsPolicyEnabled": {
     "os": [
diff --git a/chrome/test/data/webui/read_later/side_panel/side_panel_browsertest.js b/chrome/test/data/webui/read_later/side_panel/side_panel_browsertest.js
index a7beecb..066f03bf 100644
--- a/chrome/test/data/webui/read_later/side_panel/side_panel_browsertest.js
+++ b/chrome/test/data/webui/read_later/side_panel/side_panel_browsertest.js
@@ -58,7 +58,14 @@
   }
 };
 
-TEST_F('SidePanelBookmarkFolderTest', 'All', function() {
+
+GEN('#if defined(OS_MAC)');
+GEN('// Flaky, https://crbug.com/1288747');
+GEN('#define MAYBE_All DISABLED_All');
+GEN('#else');
+GEN('#define MAYBE_All All');
+GEN('#endif');
+TEST_F('SidePanelBookmarkFolderTest', 'MAYBE_All', function() {
   mocha.run();
 });
 
diff --git a/components/account_manager_core/chromeos/account_manager.cc b/components/account_manager_core/chromeos/account_manager.cc
index 1abf946..23416c66 100644
--- a/components/account_manager_core/chromeos/account_manager.cc
+++ b/components/account_manager_core/chromeos/account_manager.cc
@@ -490,20 +490,18 @@
 void AccountManager::GetAccountEmail(
     const ::account_manager::AccountKey& account_key,
     base::OnceCallback<void(const std::string&)> callback) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK_NE(init_state_, InitializationState::kNotStarted);
 
-  base::OnceClosure closure = base::BindOnce(
-      &AccountManager::GetAccountEmailInternal, weak_factory_.GetWeakPtr(),
-      account_key, std::move(callback));
-  RunOnInitialization(std::move(closure));
-}
+  if (init_state_ != InitializationState::kInitialized) {
+    base::OnceClosure closure = base::BindOnce(
+        &AccountManager::GetAccountEmail, weak_factory_.GetWeakPtr(),
+        account_key, std::move(callback));
+    RunOnInitialization(std::move(closure));
+    return;
+  }
 
-void AccountManager::GetAccountEmailInternal(
-    const ::account_manager::AccountKey& account_key,
-    base::OnceCallback<void(const std::string&)> callback) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK_EQ(init_state_, InitializationState::kInitialized);
-
   auto it = accounts_.find(account_key);
   if (it == accounts_.end()) {
     std::move(callback).Run(std::string());
@@ -515,19 +513,18 @@
 
 void AccountManager::RemoveAccount(
     const ::account_manager::AccountKey& account_key) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK_NE(init_state_, InitializationState::kNotStarted);
 
-  base::OnceClosure closure =
-      base::BindOnce(&AccountManager::RemoveAccountInternal,
-                     weak_factory_.GetWeakPtr(), account_key);
-  RunOnInitialization(std::move(closure));
-}
+  if (init_state_ != InitializationState::kInitialized) {
+    base::OnceClosure closure =
+        base::BindOnce(&AccountManager::RemoveAccount,
+                       weak_factory_.GetWeakPtr(), account_key);
+    RunOnInitialization(std::move(closure));
+    return;
+  }
 
-void AccountManager::RemoveAccountInternal(
-    const ::account_manager::AccountKey& account_key) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK_EQ(init_state_, InitializationState::kInitialized);
-
   auto it = accounts_.find(account_key);
   if (it == accounts_.end()) {
     return;
@@ -542,28 +539,6 @@
   MaybeRevokeTokenOnServer(account_key, old_token);
 }
 
-void AccountManager::RemoveAccount(const std::string& email) {
-  DCHECK_NE(init_state_, InitializationState::kNotStarted);
-
-  base::OnceClosure closure =
-      base::BindOnce(&AccountManager::RemoveAccountByEmailInternal,
-                     weak_factory_.GetWeakPtr(), email);
-  RunOnInitialization(std::move(closure));
-}
-
-void AccountManager::RemoveAccountByEmailInternal(const std::string& email) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  DCHECK_EQ(init_state_, InitializationState::kInitialized);
-
-  for (const std::pair<::account_manager::AccountKey, AccountInfo> account :
-       accounts_) {
-    if (gaia::AreEmailsSame(account.second.raw_email, email)) {
-      RemoveAccountInternal(account.first /* account_key */);
-      return;
-    }
-  }
-}
-
 void AccountManager::UpsertAccount(
     const ::account_manager::AccountKey& account_key,
     const std::string& raw_email,
@@ -580,6 +555,7 @@
 void AccountManager::UpdateToken(
     const ::account_manager::AccountKey& account_key,
     const std::string& token) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK_NE(init_state_, InitializationState::kNotStarted);
 
   if (account_key.account_type() ==
@@ -587,18 +563,15 @@
     DCHECK_EQ(token, kActiveDirectoryDummyToken);
   }
 
-  base::OnceClosure closure =
-      base::BindOnce(&AccountManager::UpdateTokenInternal,
-                     weak_factory_.GetWeakPtr(), account_key, token);
-  RunOnInitialization(std::move(closure));
-}
+  if (init_state_ != InitializationState::kInitialized) {
+    base::OnceClosure closure =
+        base::BindOnce(&AccountManager::UpdateToken, weak_factory_.GetWeakPtr(),
+                       account_key, token);
+    RunOnInitialization(std::move(closure));
+    return;
+  }
 
-void AccountManager::UpdateTokenInternal(
-    const ::account_manager::AccountKey& account_key,
-    const std::string& token) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK_EQ(init_state_, InitializationState::kInitialized);
-
   auto it = accounts_.find(account_key);
   DCHECK(it != accounts_.end())
       << "UpdateToken cannot be used for adding accounts";
diff --git a/components/account_manager_core/chromeos/account_manager.h b/components/account_manager_core/chromeos/account_manager.h
index 8ded5922..21c9ab3 100644
--- a/components/account_manager_core/chromeos/account_manager.h
+++ b/components/account_manager_core/chromeos/account_manager.h
@@ -155,25 +155,20 @@
   void GetAccounts(AccountListCallback callback);
 
   // Gets (async) the raw, un-canonicalized email id corresponding to
-  // |account_key|. |callback| is called with an empty string if |account_key|
+  // `account_key`. `callback` is called with an empty string if `account_key`
   // is not known to Account Manager.
   void GetAccountEmail(const ::account_manager::AccountKey& account_key,
                        base::OnceCallback<void(const std::string&)> callback);
 
-  // Removes an account. Does not do anything if |account_key| is not known by
-  // |AccountManager|.
+  // Removes an account. Does not do anything if `account_key` is not known by
+  // `AccountManager`.
   // Observers are notified about an account removal through
-  // |Observer::OnAccountRemoved|.
+  // `Observer::OnAccountRemoved`.
   // If the account being removed is a GAIA account, a token revocation with
   // GAIA is also attempted, on a best effort basis. Even if token revocation
   // with GAIA fails, AccountManager will forget the account.
   void RemoveAccount(const ::account_manager::AccountKey& account_key);
 
-  // Similar to |RemoveAccount(AccountKey)| except that it accepts |email| as
-  // the account identifier instead of |account_key|. |email| can be the raw
-  // email or the canonical email.
-  void RemoveAccount(const std::string& email);
-
   // Updates or inserts an account. |raw_email| is the raw, un-canonicalized
   // email id for |account_key|. |raw_email| must not be empty. Use
   // |AccountManager::kActiveDirectoryDummyToken| as the |token| for Active
@@ -184,8 +179,8 @@
                      const std::string& raw_email,
                      const std::string& token);
 
-  // Updates the token for the account corresponding to the given |account_key|.
-  // The account must be known to Account Manager. See |UpsertAccount| for
+  // Updates the token for the account corresponding to the given `account_key`.
+  // The account must be known to Account Manager. See `UpsertAccount` for
   // information about adding an account.
   // Note: This API is idempotent.
   void UpdateToken(const ::account_manager::AccountKey& account_key,
@@ -292,25 +287,6 @@
   // class is initialized.
   void RunOnInitialization(base::OnceClosure closure);
 
-  // Does the actual work of fetching the email for |account_key|. Assumes that
-  // |AccountManager| initialization (|init_state_|) is complete.
-  void GetAccountEmailInternal(
-      const ::account_manager::AccountKey& account_key,
-      base::OnceCallback<void(const std::string&)> callback);
-
-  // Does the actual work of removing an account. Assumes that
-  // |AccountManager| initialization (|init_state_|) is complete.
-  void RemoveAccountInternal(const ::account_manager::AccountKey& account_key);
-
-  // Does the actual work of removing an account. Assumes that |AccountManager|
-  // initialization (|init_state_|) is complete. |email| can be the raw email or
-  // the canonical email.
-  void RemoveAccountByEmailInternal(const std::string& email);
-
-  // Assumes that |AccountManager| initialization (|init_state_|) is complete.
-  void UpdateTokenInternal(const ::account_manager::AccountKey& account_key,
-                           const std::string& token);
-
   // Assumes that |AccountManager| initialization (|init_state_|) is complete.
   void UpdateEmailInternal(const ::account_manager::AccountKey& account_key,
                            const std::string& raw_email);
diff --git a/components/account_manager_core/chromeos/account_manager_unittest.cc b/components/account_manager_core/chromeos/account_manager_unittest.cc
index dc77d0a..92f80b4 100644
--- a/components/account_manager_core/chromeos/account_manager_unittest.cc
+++ b/components/account_manager_core/chromeos/account_manager_unittest.cc
@@ -552,23 +552,6 @@
   EXPECT_TRUE(GetAccountsBlocking().empty());
 }
 
-TEST_F(AccountManagerTest, AccountsCanBeRemovedByRawEmail) {
-  account_manager()->UpsertAccount(kGaiaAccountKey, kRawUserEmail, kGaiaToken);
-
-  account_manager()->RemoveAccount(kRawUserEmail);
-  EXPECT_TRUE(GetAccountsBlocking().empty());
-}
-
-TEST_F(AccountManagerTest, AccountsCanBeRemovedByCanonicalEmail) {
-  const std::string raw_email = "abc.123.456@gmail.com";
-  const std::string canonical_email = "abc123456@gmail.com";
-
-  account_manager()->UpsertAccount(kGaiaAccountKey, raw_email, kGaiaToken);
-
-  account_manager()->RemoveAccount(canonical_email);
-  EXPECT_TRUE(GetAccountsBlocking().empty());
-}
-
 TEST_F(AccountManagerTest, AccountRemovalIsPersistedToDisk) {
   account_manager()->UpsertAccount(kGaiaAccountKey, kRawUserEmail, kGaiaToken);
   account_manager()->RemoveAccount(kGaiaAccountKey);
diff --git a/components/autofill/core/browser/autofill_profile_sync_util.cc b/components/autofill/core/browser/autofill_profile_sync_util.cc
index db5b7be..f52237b 100644
--- a/components/autofill/core/browser/autofill_profile_sync_util.cc
+++ b/components/autofill/core/browser/autofill_profile_sync_util.cc
@@ -18,7 +18,7 @@
 #include "components/autofill/core/browser/geo/country_names.h"
 #include "components/autofill/core/browser/proto/autofill_sync.pb.h"
 #include "components/autofill/core/browser/webdata/autofill_table.h"
-#include "components/sync/engine/entity_data.h"
+#include "components/sync/protocol/entity_data.h"
 
 using autofill::data_util::TruncateUTF8;
 using base::UTF16ToUTF8;
diff --git a/components/autofill/core/browser/autofill_profile_sync_util_unittest.cc b/components/autofill/core/browser/autofill_profile_sync_util_unittest.cc
index edb5cc8d..c36796d 100644
--- a/components/autofill/core/browser/autofill_profile_sync_util_unittest.cc
+++ b/components/autofill/core/browser/autofill_profile_sync_util_unittest.cc
@@ -13,8 +13,8 @@
 #include "components/autofill/core/browser/webdata/autofill_table.h"
 #include "components/autofill/core/common/autofill_constants.h"
 #include "components/autofill/core/common/autofill_features.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/protocol/autofill_specifics.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "testing/gtest/include/gtest/gtest.h"
 namespace autofill {
diff --git a/components/autofill/core/browser/webdata/autocomplete_sync_bridge.cc b/components/autofill/core/browser/webdata/autocomplete_sync_bridge.cc
index 9a150ab..c01a5904 100644
--- a/components/autofill/core/browser/webdata/autocomplete_sync_bridge.cc
+++ b/components/autofill/core/browser/webdata/autocomplete_sync_bridge.cc
@@ -19,11 +19,11 @@
 #include "components/autofill/core/browser/webdata/autofill_table.h"
 #include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
 #include "components/autofill/core/common/autofill_features.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/model/client_tag_based_model_type_processor.h"
 #include "components/sync/model/model_type_change_processor.h"
 #include "components/sync/model/mutable_data_batch.h"
 #include "components/sync/model/sync_metadata_store_change_list.h"
+#include "components/sync/protocol/entity_data.h"
 #include "net/base/escape.h"
 
 using absl::optional;
diff --git a/components/autofill/core/browser/webdata/autofill_profile_sync_bridge.cc b/components/autofill/core/browser/webdata/autofill_profile_sync_bridge.cc
index 975b7a3..b8cc06b 100644
--- a/components/autofill/core/browser/webdata/autofill_profile_sync_bridge.cc
+++ b/components/autofill/core/browser/webdata/autofill_profile_sync_bridge.cc
@@ -21,13 +21,13 @@
 #include "components/autofill/core/browser/webdata/autofill_profile_sync_difference_tracker.h"
 #include "components/autofill/core/browser/webdata/autofill_table.h"
 #include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/model/client_tag_based_model_type_processor.h"
 #include "components/sync/model/metadata_change_list.h"
 #include "components/sync/model/model_error.h"
 #include "components/sync/model/model_type_change_processor.h"
 #include "components/sync/model/mutable_data_batch.h"
 #include "components/sync/model/sync_metadata_store_change_list.h"
+#include "components/sync/protocol/entity_data.h"
 
 using absl::optional;
 using base::UTF16ToUTF8;
diff --git a/components/autofill/core/browser/webdata/autofill_profile_sync_bridge_unittest.cc b/components/autofill/core/browser/webdata/autofill_profile_sync_bridge_unittest.cc
index 74c21c87..fe2e9eb 100644
--- a/components/autofill/core/browser/webdata/autofill_profile_sync_bridge_unittest.cc
+++ b/components/autofill/core/browser/webdata/autofill_profile_sync_bridge_unittest.cc
@@ -33,13 +33,13 @@
 #include "components/autofill/core/common/autofill_features.h"
 #include "components/sync/base/client_tag_hash.h"
 #include "components/sync/engine/data_type_activation_response.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/model/client_tag_based_model_type_processor.h"
 #include "components/sync/model/data_batch.h"
 #include "components/sync/model/data_type_activation_request.h"
 #include "components/sync/model/sync_data.h"
 #include "components/sync/model/sync_error_factory.h"
 #include "components/sync/protocol/autofill_specifics.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync/protocol/model_type_state.pb.h"
 #include "components/sync/test/model/mock_model_type_change_processor.h"
diff --git a/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc b/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
index 038a231..cecd4e6 100644
--- a/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
+++ b/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
@@ -17,7 +17,7 @@
 #include "components/autofill/core/browser/payments/payments_customer_data.h"
 #include "components/autofill/core/browser/webdata/autofill_table.h"
 #include "components/autofill/core/common/autofill_util.h"
-#include "components/sync/engine/entity_data.h"
+#include "components/sync/protocol/entity_data.h"
 
 using autofill::data_util::TruncateUTF8;
 using sync_pb::AutofillWalletSpecifics;
diff --git a/components/autofill/core/browser/webdata/autofill_sync_bridge_util_unittest.cc b/components/autofill/core/browser/webdata/autofill_sync_bridge_util_unittest.cc
index 19c561f..2b2d23f 100644
--- a/components/autofill/core/browser/webdata/autofill_sync_bridge_util_unittest.cc
+++ b/components/autofill/core/browser/webdata/autofill_sync_bridge_util_unittest.cc
@@ -19,9 +19,9 @@
 #include "components/autofill/core/browser/webdata/autofill_table.h"
 #include "components/autofill/core/common/autofill_constants.h"
 #include "components/sync/base/client_tag_hash.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/protocol/autofill_offer_specifics.pb.h"
 #include "components/sync/protocol/autofill_specifics.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge.cc b/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge.cc
index 9c0ab12..34dd5c7 100644
--- a/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge.cc
+++ b/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge.cc
@@ -23,10 +23,10 @@
 #include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
 #include "components/autofill/core/common/autofill_clock.h"
 #include "components/autofill/core/common/autofill_util.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/model/client_tag_based_model_type_processor.h"
 #include "components/sync/model/mutable_data_batch.h"
 #include "components/sync/model/sync_metadata_store_change_list.h"
+#include "components/sync/protocol/entity_data.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace autofill {
diff --git a/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge_unittest.cc b/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge_unittest.cc
index a7be983..5f8acee3 100644
--- a/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge_unittest.cc
+++ b/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge_unittest.cc
@@ -32,10 +32,10 @@
 #include "components/os_crypt/os_crypt_mocker.h"
 #include "components/sync/base/client_tag_hash.h"
 #include "components/sync/engine/data_type_activation_response.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/model/client_tag_based_model_type_processor.h"
 #include "components/sync/model/data_batch.h"
 #include "components/sync/protocol/autofill_specifics.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_metadata.pb.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync/protocol/model_type_state.pb.h"
diff --git a/components/autofill/core/browser/webdata/autofill_wallet_offer_sync_bridge_unittest.cc b/components/autofill/core/browser/webdata/autofill_wallet_offer_sync_bridge_unittest.cc
index 0f83afdc..2edd5ea 100644
--- a/components/autofill/core/browser/webdata/autofill_wallet_offer_sync_bridge_unittest.cc
+++ b/components/autofill/core/browser/webdata/autofill_wallet_offer_sync_bridge_unittest.cc
@@ -28,11 +28,11 @@
 #include "components/autofill/core/common/autofill_constants.h"
 #include "components/sync/base/hash_util.h"
 #include "components/sync/engine/data_type_activation_response.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/model/client_tag_based_model_type_processor.h"
 #include "components/sync/model/in_memory_metadata_change_list.h"
 #include "components/sync/model/sync_data.h"
 #include "components/sync/protocol/autofill_offer_specifics.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync/protocol/model_type_state.pb.h"
 #include "components/sync/test/model/mock_model_type_change_processor.h"
diff --git a/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.cc b/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.cc
index 4a942ba..1c6cef6 100644
--- a/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.cc
+++ b/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.cc
@@ -26,10 +26,10 @@
 #include "components/sync/base/data_type_histogram.h"
 #include "components/sync/base/hash_util.h"
 #include "components/sync/driver/sync_driver_switches.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/model/client_tag_based_model_type_processor.h"
 #include "components/sync/model/mutable_data_batch.h"
 #include "components/sync/model/sync_metadata_store_change_list.h"
+#include "components/sync/protocol/entity_data.h"
 
 using sync_pb::AutofillWalletSpecifics;
 using syncer::EntityData;
diff --git a/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge_unittest.cc b/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge_unittest.cc
index b65a8567..8a4be102 100644
--- a/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge_unittest.cc
+++ b/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge_unittest.cc
@@ -36,11 +36,11 @@
 #include "components/sync/base/client_tag_hash.h"
 #include "components/sync/driver/sync_driver_switches.h"
 #include "components/sync/engine/data_type_activation_response.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/model/client_tag_based_model_type_processor.h"
 #include "components/sync/model/in_memory_metadata_change_list.h"
 #include "components/sync/model/sync_data.h"
 #include "components/sync/protocol/autofill_specifics.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_metadata.pb.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync/protocol/model_type_state.pb.h"
diff --git a/components/browser_sync/browser_sync_switches.cc b/components/browser_sync/browser_sync_switches.cc
index 9098ee1c..638189d 100644
--- a/components/browser_sync/browser_sync_switches.cc
+++ b/components/browser_sync/browser_sync_switches.cc
@@ -8,13 +8,6 @@
 
 namespace switches {
 
-// Disables syncing one or more sync data types that are on by default.
-// See sync/base/model_type.h for possible types. Types
-// should be comma separated, and follow the naming convention for string
-// representation of model types, e.g.:
-// --disable-synctypes='Typed URLs, Bookmarks, Autofill Profiles'
-const char kDisableSyncTypes[] = "disable-sync-types";
-
 // Enabled the local sync backend implemented by the LoopbackServer.
 const char kEnableLocalSyncBackend[] = "enable-local-sync-backend";
 
diff --git a/components/browser_sync/browser_sync_switches.h b/components/browser_sync/browser_sync_switches.h
index a0d64011..7c33aea6 100644
--- a/components/browser_sync/browser_sync_switches.h
+++ b/components/browser_sync/browser_sync_switches.h
@@ -11,7 +11,6 @@
 
 namespace switches {
 
-extern const char kDisableSyncTypes[];
 extern const char kEnableLocalSyncBackend[];
 extern const char kLocalSyncBackendDir[];
 
diff --git a/components/browser_sync/profile_sync_components_factory_impl.h b/components/browser_sync/profile_sync_components_factory_impl.h
index 8c3904ff..0c785d7e3 100644
--- a/components/browser_sync/profile_sync_components_factory_impl.h
+++ b/components/browser_sync/profile_sync_components_factory_impl.h
@@ -39,6 +39,7 @@
 
 class BrowserSyncClient;
 
+// TODO(crbug.com/1201272): Rename to SyncApiComponentFactoryImpl.
 class ProfileSyncComponentsFactoryImpl
     : public syncer::SyncApiComponentFactory {
  public:
@@ -64,7 +65,7 @@
 
   // Creates and returns enabled datatypes and their controllers.
   // |disabled_types| allows callers to prevent certain types from being
-  // created (e.g. to honor command-line flags).
+  // created.
   syncer::DataTypeController::TypeVector CreateCommonDataTypeControllers(
       syncer::ModelTypeSet disabled_types,
       syncer::SyncService* sync_service);
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb
index a03a143..25af7d51 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">Πληροφορίες εκπομπής</translation>
 <translation id="3123473560110926937">Αποκλεισμός σε ορισμένους ιστοτόπους</translation>
 <translation id="3198916472715691905"><ph name="STORAGE_AMOUNT" /> αποθηκευμένα δεδομένα</translation>
+<translation id="3203366800380907218">Από τον ιστό</translation>
 <translation id="321187648315454507">Για να επιτρέψετε στην εφαρμογή <ph name="APP_NAME" /> να σας στέλνει ειδοποιήσεις, ενεργοποιήστε επίσης τις ειδοποιήσεις στις <ph name="BEGIN_LINK" />Ρυθμίσεις Android<ph name="END_LINK" />.</translation>
 <translation id="3227137524299004712">Μικρόφωνο</translation>
 <translation id="3277252321222022663">Να επιτρέπεται στους ιστοτόπους η πρόσβαση στους αισθητήρες (συνιστάται)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
index 73ca579..2791ee8c8 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">Kuva teave</translation>
 <translation id="3123473560110926937">Blokeeritud teatud saitidel</translation>
 <translation id="3198916472715691905"><ph name="STORAGE_AMOUNT" /> salvestatud andmeid</translation>
+<translation id="3203366800380907218">Veebist</translation>
 <translation id="321187648315454507">Selleks et lubada rakendusel <ph name="APP_NAME" /> teile märguandeid saata, lülitage märguanded sisse ka <ph name="BEGIN_LINK" />Androidi seadetes<ph name="END_LINK" />.</translation>
 <translation id="3227137524299004712">Mikrofon</translation>
 <translation id="3277252321222022663">Luba saitide jaoks juurdepääs anduritele (soovitatav)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb
index dbfd447..4f833f97 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">نمایش دادن اطلاعات</translation>
 <translation id="3123473560110926937">در برخی سایت‌ها مسدود می‌شود</translation>
 <translation id="3198916472715691905"><ph name="STORAGE_AMOUNT" /> داده‌های ذخیره شده</translation>
+<translation id="3203366800380907218">برگرفته از وب</translation>
 <translation id="321187648315454507">‏برای اینکه به <ph name="APP_NAME" /> اجازه دهید برایتان اعلان ارسال کند، اعلان‌ها را در <ph name="BEGIN_LINK" />تنظیمات Android<ph name="END_LINK" /> نیز روشن کنید.</translation>
 <translation id="3227137524299004712">میکروفن</translation>
 <translation id="3277252321222022663">مجاز بودن دسترسی سایت‌ها به حسگرها (توصیه می‌شود)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb
index 63e2a94..3287b6fe 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">Afficher les renseignements</translation>
 <translation id="3123473560110926937">Annonces bloquées sur certains sites</translation>
 <translation id="3198916472715691905">Stockage de données : <ph name="STORAGE_AMOUNT" /></translation>
+<translation id="3203366800380907218">Du Web</translation>
 <translation id="321187648315454507">Pour autoriser <ph name="APP_NAME" /> à vous envoyer des notifications, vous devez aussi activer celles-ci dans les <ph name="BEGIN_LINK" />paramètres d'Android<ph name="END_LINK" />.</translation>
 <translation id="3227137524299004712">Microphone</translation>
 <translation id="3277252321222022663">Autoriser les sites à accéder aux capteurs (recommandé)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb
index ca80a09..235721ba 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">Információk megjelenítése</translation>
 <translation id="3123473560110926937">Letiltva egyes webhelyeken</translation>
 <translation id="3198916472715691905"><ph name="STORAGE_AMOUNT" /> tárolt adat</translation>
+<translation id="3203366800380907218">Az internetről</translation>
 <translation id="321187648315454507">Ahhoz, hogy a(z) <ph name="APP_NAME" /> értesítéseket küldhessen, az értesítéseket az <ph name="BEGIN_LINK" />Android-beállítások<ph name="END_LINK" /> között is be kell kapcsolni.</translation>
 <translation id="3227137524299004712">Mikrofon</translation>
 <translation id="3277252321222022663">Az érzékelőkhöz való hozzáférés engedélyezése a webhelyek számára (ajánlott)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb
index 5ec06c4..86a2642 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">Sýna upplýsingar</translation>
 <translation id="3123473560110926937">Útilokaðar á sumum vefsvæðum</translation>
 <translation id="3198916472715691905"><ph name="STORAGE_AMOUNT" /> af vistuðum gögnum</translation>
+<translation id="3203366800380907218">Af vefnum</translation>
 <translation id="321187648315454507">Til að leyfa <ph name="APP_NAME" /> að senda þér tilkynningar þarftu einnig að kveikja á þeim í <ph name="BEGIN_LINK" />stillingum Android<ph name="END_LINK" />.</translation>
 <translation id="3227137524299004712">Hljóðnemi</translation>
 <translation id="3277252321222022663">Leyfa vefsvæðum að fá aðgang að skynjurum (ráðlagt)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb
index 471223b8..adfb2297 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">Mostra informazioni</translation>
 <translation id="3123473560110926937">Bloccati su alcuni siti</translation>
 <translation id="3198916472715691905"><ph name="STORAGE_AMOUNT" /> di dati memorizzati</translation>
+<translation id="3203366800380907218">Dal Web</translation>
 <translation id="321187648315454507">Per consentire all'app <ph name="APP_NAME" /> di inviarti notifiche, devi attivare le notifiche anche nelle <ph name="BEGIN_LINK" />Impostazioni Android<ph name="END_LINK" />.</translation>
 <translation id="3227137524299004712">Microfono</translation>
 <translation id="3277252321222022663">Consenti ai siti di accedere ai sensori (opzione consigliata)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
index 3d2a001..d528c56 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">ಮಾಹಿತಿಯನ್ನು ತೋರಿಸಿ</translation>
 <translation id="3123473560110926937">ಕೆಲವು ಸೈಟ್‌ಗಳಲ್ಲಿ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="3198916472715691905"><ph name="STORAGE_AMOUNT" /> ಸಂಗ್ರಹಿಸಿದ ಡೇಟಾ</translation>
+<translation id="3203366800380907218">ವೆಬ್‌ನಿಂದ</translation>
 <translation id="321187648315454507"><ph name="APP_NAME" /> ನಿಮಗೆ ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸುವುದಕ್ಕೆ ಅನುಮತಿಸಲು, <ph name="BEGIN_LINK" />Android ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ<ph name="END_LINK" /> ಅಧಿಸೂಚನೆಗಳನ್ನು ಸಹ ಆನ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.</translation>
 <translation id="3227137524299004712">ಮೈಕ್ರೋಫೋನ್</translation>
 <translation id="3277252321222022663">ಸೆನ್ಸರ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿ ನೀಡಿ (ಶಿಫಾರಸು ಮಾಡಿರುವುದು)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
index 2777fa7..f68a58b9 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">정보 표시</translation>
 <translation id="3123473560110926937">일부 사이트에서 차단됨</translation>
 <translation id="3198916472715691905">저장 데이터 <ph name="STORAGE_AMOUNT" /></translation>
+<translation id="3203366800380907218">웹에서 찾은 정보</translation>
 <translation id="321187648315454507"><ph name="APP_NAME" />에서 알림을 전송하도록 허용하려면 <ph name="BEGIN_LINK" />Android 설정<ph name="END_LINK" />에서도 알림을 사용 설정하세요.</translation>
 <translation id="3227137524299004712">마이크</translation>
 <translation id="3277252321222022663">사이트의 센서 액세스 허용(권장)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
index ae49101..4f8bc05 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">Rodyti informaciją</translation>
 <translation id="3123473560110926937">Užblokuota kai kuriose svetainėse</translation>
 <translation id="3198916472715691905">Išsaugota duomenų: <ph name="STORAGE_AMOUNT" /></translation>
+<translation id="3203366800380907218">Iš žiniatinklio</translation>
 <translation id="321187648315454507">Norėdami leisti „<ph name="APP_NAME" />“ siųsti pranešimus, taip pat įjunkite juos <ph name="BEGIN_LINK" />„Android“ nustatymuose<ph name="END_LINK" />.</translation>
 <translation id="3227137524299004712">Mikrofonas</translation>
 <translation id="3277252321222022663">Leidžiama svetainėms pasiekti jutiklius (rekomenduojama)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb
index 747d4759..c944ff9 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">Показать информацию</translation>
 <translation id="3123473560110926937">Заблокировано на некоторых сайтах</translation>
 <translation id="3198916472715691905">В памяти занято: <ph name="STORAGE_AMOUNT" /></translation>
+<translation id="3203366800380907218">Из интернета</translation>
 <translation id="321187648315454507">Чтобы получать уведомления из приложения "<ph name="APP_NAME" />", включите их в <ph name="BEGIN_LINK" />настройках Android<ph name="END_LINK" />.</translation>
 <translation id="3227137524299004712">Микрофон</translation>
 <translation id="3277252321222022663">Предоставить сайтам доступ к датчикам (рекомендуется)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
index 7b37196..f244f674 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">Pokaži informacije</translation>
 <translation id="3123473560110926937">Blokirano na nekaterih spletnih mestih</translation>
 <translation id="3198916472715691905"><ph name="STORAGE_AMOUNT" /> shranjenih podatkov</translation>
+<translation id="3203366800380907218">Iz spleta</translation>
 <translation id="321187648315454507">Če želite, da vam aplikacija <ph name="APP_NAME" /> pošilja obvestila, obvestila vklopite tudi v <ph name="BEGIN_LINK" />nastavitvah za Android<ph name="END_LINK" />.</translation>
 <translation id="3227137524299004712">Mikrofon</translation>
 <translation id="3277252321222022663">Spletnim mestom dovoli dostop do tipal (priporočeno)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb
index 534b737..1858067 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">Onyesha Maelezo</translation>
 <translation id="3123473560110926937">Yamezuiwa kwenye baadhi ya tovuti</translation>
 <translation id="3198916472715691905"><ph name="STORAGE_AMOUNT" /> za data iliyohifadhiwa</translation>
+<translation id="3203366800380907218">Kutoka kwenye wavuti</translation>
 <translation id="321187648315454507">Ili uruhusu <ph name="APP_NAME" /> ikutumie arifa, washa pia arifa katika <ph name="BEGIN_LINK" />Mipangilio ya Android<ph name="END_LINK" />.</translation>
 <translation id="3227137524299004712">Maikrofoni</translation>
 <translation id="3277252321222022663">Ruhusu tovuti zifikie vitambuzi (inapendekezwa)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
index 8d76ca5..9bd38a6 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">தகவலைக் காட்டு</translation>
 <translation id="3123473560110926937">சில தளங்களில் தடுக்கப்பட்டுள்ளன</translation>
 <translation id="3198916472715691905">சேமிக்கப்பட்ட தரவு: <ph name="STORAGE_AMOUNT" /></translation>
+<translation id="3203366800380907218">இணையத்தில் இருந்து</translation>
 <translation id="321187648315454507"><ph name="APP_NAME" /> ஆப்ஸ் உங்களுக்கு அறிவிப்புகளை அனுப்ப அனுமதிப்பதற்கு <ph name="BEGIN_LINK" />Android அமைப்புகளிலும்<ph name="END_LINK" /> அறிவிப்புகளுக்கான அனுமதியை இயக்கவும்.</translation>
 <translation id="3227137524299004712">மைக்ரோஃபோன்</translation>
 <translation id="3277252321222022663">தளங்கள் சென்சார்களை அணுக அனுமதிக்கும் (பரிந்துரைக்கப்படுகிறது)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
index da94b7e..1f9a59f0 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">Показати інформацію</translation>
 <translation id="3123473560110926937">Заблоковано на деяких сайтах</translation>
 <translation id="3198916472715691905">У пам'яті зайнято <ph name="STORAGE_AMOUNT" /></translation>
+<translation id="3203366800380907218">З Інтернету</translation>
 <translation id="321187648315454507">Щоб дозволити додатку <ph name="APP_NAME" /> надсилати вам сповіщення, також увімкніть їх у <ph name="BEGIN_LINK" />налаштуваннях Android<ph name="END_LINK" />.</translation>
 <translation id="3227137524299004712">Мікрофон</translation>
 <translation id="3277252321222022663">Надати сайтам доступ до датчиків (рекомендовано)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb
index ecdbeb5..10fc221 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb
@@ -90,6 +90,7 @@
 <translation id="3115898365077584848">Khombisa ulwazi</translation>
 <translation id="3123473560110926937">Kuvinjelwe kwamanye amasayithi</translation>
 <translation id="3198916472715691905"><ph name="STORAGE_AMOUNT" /> idatha egciniwe</translation>
+<translation id="3203366800380907218">Kusuka kuwebhu</translation>
 <translation id="321187648315454507">Ukuze uvumele i-<ph name="APP_NAME" /> ukuthi ikuthumele izaziso, vula nezaziso <ph name="BEGIN_LINK" />Kumasethingi e-Android<ph name="END_LINK" />.</translation>
 <translation id="3227137524299004712">Imakrofoni</translation>
 <translation id="3277252321222022663">Vumela amasayithi ukuthi afinyelele kuzinzwa (kunconyiwe)</translation>
diff --git a/components/browser_ui/styles/android/BUILD.gn b/components/browser_ui/styles/android/BUILD.gn
index 83b058f..a93ffba 100644
--- a/components/browser_ui/styles/android/BUILD.gn
+++ b/components/browser_ui/styles/android/BUILD.gn
@@ -154,6 +154,7 @@
     "java/res/drawable-xxxhdpi/top_round_shadow.9.png",
     "java/res/drawable/checkmark_blue.xml",
     "java/res/drawable/circle_white.xml",
+    "java/res/drawable/ic_account_circle_24dp.xml",
     "java/res/drawable/ic_add.xml",
     "java/res/drawable/ic_bar_chart_24dp.xml",
     "java/res/drawable/ic_brightness_medium_20dp.xml",
@@ -172,6 +173,7 @@
     "java/res/drawable/ic_flash_on_24dp.xml",
     "java/res/drawable/ic_folder_blue_24dp.xml",
     "java/res/drawable/ic_globe_24dp.xml",
+    "java/res/drawable/ic_google_24dp.xml",
     "java/res/drawable/ic_help_and_feedback.xml",
     "java/res/drawable/ic_info_outline_grey_16dp.xml",
     "java/res/drawable/ic_info_outline_grey_24dp.xml",
@@ -197,6 +199,7 @@
     "java/res/drawable/ic_vpn_key_grey.xml",
     "java/res/drawable/ic_warning_red_16dp.xml",
     "java/res/drawable/ic_warning_red_24dp.xml",
+    "java/res/drawable/ic_web_asset_24dp.xml",
     "java/res/drawable/ic_zoom_in.xml",
     "java/res/drawable/smartphone_black_24dp.xml",
     "java/res/drawable/toolbar_hairline.xml",
diff --git a/components/browser_ui/styles/android/java/res/drawable/ic_account_circle_24dp.xml b/components/browser_ui/styles/android/java/res/drawable/ic_account_circle_24dp.xml
new file mode 100644
index 0000000..1c5e211
--- /dev/null
+++ b/components/browser_ui/styles/android/java/res/drawable/ic_account_circle_24dp.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2022 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. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24"
+    android:tint="@macro/default_icon_color">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M5.85,17.1q1.275,-0.975 2.85,-1.538Q10.275,15 12,15q1.725,0 3.3,0.563 1.575,0.562 2.85,1.537 0.875,-1.025 1.363,-2.325Q20,13.475 20,12q0,-3.325 -2.337,-5.662Q15.325,4 12,4T6.338,6.338Q4,8.675 4,12q0,1.475 0.487,2.775 0.488,1.3 1.363,2.325zM12,13q-1.475,0 -2.488,-1.012Q8.5,10.975 8.5,9.5t1.012,-2.487Q10.525,6 12,6t2.488,1.013Q15.5,8.024 15.5,9.5t-1.012,2.488Q13.475,13 12,13zM12,22q-2.075,0 -3.9,-0.788 -1.825,-0.787 -3.175,-2.137 -1.35,-1.35 -2.137,-3.175Q2,14.075 2,12t0.788,-3.9q0.787,-1.825 2.137,-3.175 1.35,-1.35 3.175,-2.137Q9.925,2 12,2t3.9,0.788q1.825,0.787 3.175,2.137 1.35,1.35 2.137,3.175Q22,9.925 22,12t-0.788,3.9q-0.787,1.825 -2.137,3.175 -1.35,1.35 -3.175,2.137Q14.075,22 12,22zM12,20q1.325,0 2.5,-0.387 1.175,-0.388 2.15,-1.113 -0.975,-0.725 -2.15,-1.113Q13.325,17 12,17t-2.5,0.387q-1.175,0.388 -2.15,1.113 0.975,0.725 2.15,1.113Q10.675,20 12,20zM12,11q0.65,0 1.075,-0.425 0.425,-0.425 0.425,-1.075 0,-0.65 -0.425,-1.075Q12.65,8 12,8q-0.65,0 -1.075,0.425Q10.5,8.85 10.5,9.5q0,0.65 0.425,1.075Q11.35,11 12,11zM12,9.5zM12,18.5z"/>
+</vector>
diff --git a/components/browser_ui/styles/android/java/res/drawable/ic_google_24dp.xml b/components/browser_ui/styles/android/java/res/drawable/ic_google_24dp.xml
new file mode 100644
index 0000000..0e74ed0
--- /dev/null
+++ b/components/browser_ui/styles/android/java/res/drawable/ic_google_24dp.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2022 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. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24"
+    android:tint="@macro/default_icon_color">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M12,22q-2.075,0 -3.9,-0.788 -1.825,-0.787 -3.175,-2.137 -1.35,-1.35 -2.137,-3.175Q2,14.075 2,12t0.788,-3.9q0.787,-1.825 2.137,-3.175 1.35,-1.35 3.175,-2.137Q9.925,2 12,2q1.9,0 3.587,0.663 1.688,0.662 3.113,1.937l-2.85,2.775q-0.775,-0.725 -1.763,-1.112Q13.1,5.875 12,5.875q-2.5,0 -4.25,1.787Q6,9.45 6,12t1.75,4.337Q9.5,18.125 12,18.125q2.125,0 3.662,-1.188Q17.2,15.75 17.5,13.9H12v-3.725h9.35q0.125,0.575 0.188,1.037 0.062,0.463 0.062,1.013 0,4.375 -2.65,7.075T12,22z"/>
+</vector>
diff --git a/components/browser_ui/styles/android/java/res/drawable/ic_vpn_key_grey.xml b/components/browser_ui/styles/android/java/res/drawable/ic_vpn_key_grey.xml
index 6cae7f2..0b66976 100644
--- a/components/browser_ui/styles/android/java/res/drawable/ic_vpn_key_grey.xml
+++ b/components/browser_ui/styles/android/java/res/drawable/ic_vpn_key_grey.xml
@@ -1,5 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--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.-->
-<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24.0" android:viewportHeight="24.0">
-    <path android:pathData="M7.5 6c2.796 0 5.145 1.912 5.811 4.5H22.5v3h-2V18H17v-4.5h-3.69C12.646 16.089 10.297 18 7.5 18c-3.314 0-6-2.686-6-6s2.686-6 6-6zm0 3.5C6.12 9.5 5 10.62 5 12s1.12 2.5 2.5 2.5S10 13.38 10 12 8.88 9.5 7.5 9.5z" android:strokeWidth="1" android:fillColor="@android:color/white" android:fillType="evenOdd"/>
+<!-- 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. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M7,18q-2.5,0 -4.25,-1.75T1,12q0,-2.5 1.75,-4.25T7,6q1.65,0 3.025,0.825T12.2,9L23,9v6h-2v3h-6v-3h-2.8q-0.8,1.35 -2.175,2.175Q8.65,18 7,18zM7,16q1.65,0 2.65,-1.012 1,-1.013 1.2,-1.988L17,13v3h2v-3h2v-2L10.85,11q-0.2,-0.975 -1.2,-1.988Q8.65,8 7,8T4.175,9.175Q3,10.35 3,12q0,1.65 1.175,2.825Q5.35,16 7,16zM7,14q0.825,0 1.412,-0.588Q9,12.825 9,12t-0.588,-1.412Q7.825,10 7,10t-1.412,0.588Q5,11.175 5,12t0.588,1.412Q6.175,14 7,14zM7,12h11L7,12z"/>
 </vector>
diff --git a/components/browser_ui/styles/android/java/res/drawable/ic_web_asset_24dp.xml b/components/browser_ui/styles/android/java/res/drawable/ic_web_asset_24dp.xml
new file mode 100644
index 0000000..cdcc0009
--- /dev/null
+++ b/components/browser_ui/styles/android/java/res/drawable/ic_web_asset_24dp.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2022 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. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24"
+    android:tint="@macro/default_icon_color">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M20,20H4q-0.825,0 -1.413,-0.587Q2,18.825 2,18V6q0,-0.825 0.587,-1.412Q3.175,4 4,4h16q0.825,0 1.413,0.588Q22,5.175 22,6v12q0,0.825 -0.587,1.413Q20.825,20 20,20zM4,8v10h16V8z"/>
+</vector>
diff --git a/components/desks_storage/core/desk_sync_bridge_unittest.cc b/components/desks_storage/core/desk_sync_bridge_unittest.cc
index cc2eaf1..365e148 100644
--- a/components/desks_storage/core/desk_sync_bridge_unittest.cc
+++ b/components/desks_storage/core/desk_sync_bridge_unittest.cc
@@ -21,10 +21,10 @@
 #include "components/desks_storage/core/desk_model_observer.h"
 #include "components/services/app_service/public/cpp/app_registry_cache.h"
 #include "components/services/app_service/public/cpp/app_registry_cache_wrapper.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/model/entity_change.h"
 #include "components/sync/model/in_memory_metadata_change_list.h"
 #include "components/sync/model/metadata_batch.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/model_type_state.pb.h"
 #include "components/sync/test/model/mock_model_type_change_processor.h"
 #include "components/sync/test/model/model_type_store_test_util.h"
diff --git a/components/download/internal/common/download_item_impl.cc b/components/download/internal/common/download_item_impl.cc
index 19c8408..685b91b 100644
--- a/components/download/internal/common/download_item_impl.cc
+++ b/components/download/internal/common/download_item_impl.cc
@@ -686,7 +686,9 @@
     bytes_wasted_ = 0;
   }
 
-  auto_resume_count_ = user_resume ? 0 : ++auto_resume_count_;
+  ++auto_resume_count_;
+  if (user_resume)
+    auto_resume_count_ = 0;
   download_schedule_ = absl::nullopt;
   RecordDownloadLaterEvent(DownloadLaterEvent::kScheduleRemoved);
 }
diff --git a/components/invalidation/impl/topic_invalidation_map_test_util.cc b/components/invalidation/impl/topic_invalidation_map_test_util.cc
index dae21b41..7ee5298d8 100644
--- a/components/invalidation/impl/topic_invalidation_map_test_util.cc
+++ b/components/invalidation/impl/topic_invalidation_map_test_util.cc
@@ -4,6 +4,7 @@
 
 #include "components/invalidation/impl/topic_invalidation_map_test_util.h"
 
+#include <base/containers/contains.h>
 #include <algorithm>
 
 namespace invalidation {
@@ -35,14 +36,6 @@
     const TopicInvalidationMap& expected)
     : expected_(expected) {}
 
-struct InvalidationEqPredicate {
-  explicit InvalidationEqPredicate(const Invalidation& inv1) : inv1_(inv1) {}
-
-  bool operator()(const Invalidation& inv2) { return inv1_.Equals(inv2); }
-
-  const Invalidation& inv1_;
-};
-
 bool TopicInvalidationMapEqMatcher::MatchAndExplain(
     const TopicInvalidationMap& actual,
     MatchResultListener* listener) const {
@@ -56,18 +49,13 @@
   std::vector<Invalidation> actual_only;
 
   for (const auto& expected_invalidation : expected_invalidations) {
-    if (std::find_if(actual_invalidations.begin(), actual_invalidations.end(),
-                     InvalidationEqPredicate(expected_invalidation)) ==
-        actual_invalidations.end()) {
+    if (!base::Contains(actual_invalidations, expected_invalidation)) {
       expected_only.push_back(expected_invalidation);
     }
   }
 
   for (const auto& actual_invalidation : actual_invalidations) {
-    if (std::find_if(expected_invalidations.begin(),
-                     expected_invalidations.end(),
-                     InvalidationEqPredicate(actual_invalidation)) ==
-        expected_invalidations.end()) {
+    if (!base::Contains(expected_invalidations, actual_invalidation)) {
       actual_only.push_back(actual_invalidation);
     }
   }
diff --git a/components/invalidation/public/invalidation.cc b/components/invalidation/public/invalidation.cc
index 12467a9..19d8caa0 100644
--- a/components/invalidation/public/invalidation.cc
+++ b/components/invalidation/public/invalidation.cc
@@ -115,7 +115,7 @@
   }
 }
 
-bool Invalidation::Equals(const Invalidation& other) const {
+bool Invalidation::operator==(const Invalidation& other) const {
   return topic_ == other.topic_ &&
          is_unknown_version_ == other.is_unknown_version_ &&
          version_ == other.version_ && payload_ == other.payload_;
diff --git a/components/invalidation/public/invalidation.h b/components/invalidation/public/invalidation.h
index 92f4daa4..a0dd890 100644
--- a/components/invalidation/public/invalidation.h
+++ b/components/invalidation/public/invalidation.h
@@ -37,7 +37,7 @@
   ~Invalidation();
 
   // Compares two invalidations.  The comparison ignores ack-tracking state.
-  bool Equals(const Invalidation& other) const;
+  bool operator==(const Invalidation& other) const;
 
   Topic topic() const;
   bool is_unknown_version() const;
diff --git a/components/invalidation/public/single_topic_invalidation_set.cc b/components/invalidation/public/single_topic_invalidation_set.cc
index 524a1c0c..2d65acf 100644
--- a/components/invalidation/public/single_topic_invalidation_set.cc
+++ b/components/invalidation/public/single_topic_invalidation_set.cc
@@ -49,20 +49,9 @@
   return invalidations_.empty();
 }
 
-namespace {
-
-struct InvalidationComparator {
-  bool operator()(const Invalidation& inv1, const Invalidation& inv2) {
-    return inv1.Equals(inv2);
-  }
-};
-
-}  // namespace
-
 bool SingleTopicInvalidationSet::operator==(
     const SingleTopicInvalidationSet& other) const {
-  return std::equal(invalidations_.begin(), invalidations_.end(),
-                    other.invalidations_.begin(), InvalidationComparator());
+  return invalidations_ == other.invalidations_;
 }
 
 SingleTopicInvalidationSet::const_iterator SingleTopicInvalidationSet::begin()
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json
index 169b606..ef67b1e 100644
--- a/components/policy/resources/policy_templates.json
+++ b/components/policy/resources/policy_templates.json
@@ -19653,12 +19653,13 @@
       'owners': ['ahaas@chromium.org', 'clamy@chromium.org', 'vahl@chromium.org'],
       'type': 'main',
       'schema': { 'type': 'boolean' },
-      'supported_on': ['chrome.*:94-', 'chrome_os:94-'],
+      'supported_on': ['chrome.*:94-98', 'chrome_os:94-98'],
       'device_only': False,
       'features': {
         'dynamic_refresh': False,
         'per_profile': True,
       },
+      'deprecated': True,
       'items': [
         {
           'value': True,
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index 134cdb3..cd5b1fc 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -857,6 +857,7 @@
 <translation id="199764499252435679">Komponentenupdates in <ph name="PRODUCT_NAME" /> aktivieren</translation>
 <translation id="1998504583649140526">Einstellungen für die Anforderung privater Netzwerkressourcen</translation>
 <translation id="1999000620918508488">Hiermit wird erzwungen, dass die Anmeldeseite Systeminformationen ein- oder ausblendet.</translation>
+<translation id="2000937390924915996">Automatische Datenträgerbereinigung während der Anmeldung nicht ausführen</translation>
 <translation id="2001420846508294174">Durch diese Richtlinie werden die Regeln für die Auswahl des Standarddruckers in <ph name="PRODUCT_NAME" /> festgelegt. Die Standardregeln werden dadurch überschrieben. Die Druckerauswahl wird angezeigt, wenn die Nutzer zum ersten Mal einen Druckauftrag ausführen und <ph name="PRODUCT_NAME" /> einen Drucker sucht, der den angegebenen Attributen entspricht. Falls kein Drucker gefunden wird, der allen Attributen entspricht, kann in <ph name="PRODUCT_NAME" /> eingestellt werden, dass ein beliebiger übereinstimmender Drucker ausgewählt werden soll. Die Auswahl hängt dann von der Reihenfolge ab, in der die Drucker gefunden werden.
 
       Wenn die Richtlinie nicht konfiguriert ist oder auf Attribute eingestellt wird, für die keine Übereinstimmungen vorliegen, wird als Standardeinstellung der integrierte PDF-Drucker verwendet. Sollte kein PDF-Drucker vorhanden sein, wählt <ph name="PRODUCT_NAME" /> gar keinen Drucker aus.
@@ -924,6 +925,7 @@
 <translation id="2070744136203607632">Keine DNS-Abfangprüfungen ausführen</translation>
 <translation id="2073552873076775140">Anmeldung in <ph name="PRODUCT_NAME" /> erlauben</translation>
 <translation id="2075732129949889165">Crostini-Ansible-Playbook</translation>
+<translation id="2076158466157390917">Automatische Bereinigung während der Anmeldung steuern</translation>
 <translation id="2077129598763517140">Hardwarebeschleunigung verwenden, falls verfügbar</translation>
 <translation id="2077273864382355561">Verzögerung für die Bildschirmabschaltung im Akkubetrieb</translation>
 <translation id="2082205219176343977">Konfigurieren Sie die für das Gerät erforderliche Mindestversion von Chrome.</translation>
@@ -1825,6 +1827,7 @@
       URL-Muster dürfen nicht im Konflikt mit <ph name="SERIAL_BLOCKED_FOR_URLS_POLICY_NAME" /> stehen. Keine Richtlinie hat Vorrang, falls eine URL mit beiden übereinstimmt.
 
       Genaue Informationen zu gültigen <ph name="URL_LABEL" />-Mustern finden Sie unter https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> ist kein akzeptierter Wert für diese Richtlinie.</translation>
+<translation id="305106159605171619">Verringerung des User-Agents ist deaktiviert und wurde nicht durch Feld- oder Ursprungstests aktiviert.</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
 <translation id="3064530882228745118">CNAME-Suche bei der Kerberos-Authentifizierung verwenden</translation>
 <translation id="3066446511111537292">Verknüpften Nutzern dieses Geräts erlauben, ADB-Sideloading zu verwenden</translation>
@@ -3633,6 +3636,9 @@
           Wurde "true" oder "not configured" festgelegt, kann dieser Nutzer betreute Nutzer erstellen und verwalten.</translation>
 <translation id="5369937289900051171">Nur Farbdruck</translation>
 <translation id="5370279767682621504">HTTP/0.9-Unterstützung für nicht standardmäßige Ports aktivieren</translation>
+<translation id="5370765433640162225">Wenn diese Richtlinie auf „true“ gesetzt ist, wird der Datenträger während der Anmeldung automatisch bereinigt, um für ausreichend freien Speicherplatz zu sorgen.
+      Obwohl die Bereinigung nur ausgeführt wird, wenn sie unbedingt notwendig ist, verlängert sich die Dauer für die Anmeldung, wenn die Richtlinie auf „true“ gesetzt ist.
+      Wenn sie auf „false“ gesetzt ist (die Standardeinstellung), wird die Dauer für die Anmeldung nicht beeinflusst.</translation>
 <translation id="5371152055157582429">Nutzer können den Hintergrund der „Neuer Tab“-Seite anpassen</translation>
 <translation id="5377606826822211923">Nutzung von Android-Apps aus nicht vertrauenswürdigen Quellen kontrollieren</translation>
 <translation id="537786648513450280">Nutzung von Android-Apps aus nicht vertrauenswürdigen Quellen für das Gerät konfigurieren</translation>
@@ -4295,6 +4301,7 @@
 <translation id="6132506775968708399">Drittanbieter-Cookies blockieren</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="6135552820180449830">Crosh (wird seit Version 99 unterstützt)</translation>
 <translation id="6138636318340561140">Safe Browsing-Status von URLs in Echtzeit prüfen</translation>
 <translation id="6141402445226505817">Immer die ungefähre Erkennung der Zeitzone verwenden</translation>
 <translation id="6142501278956229253">DPI für Druck gerasteter PDFs</translation>
@@ -5800,6 +5807,7 @@
 
       Hinweis: Wenn Sie konfigurieren möchten, welche Websites <ph name="FLASH_PLUGIN_NAME" /> ausführen dürfen, finden Sie unter den folgenden Richtlinien weitere Informationen: <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" />, <ph name="PLUGINS_ALLOWED_FOR_URLS_POLICY_NAME" /> und <ph name="PLUGINS_BLOCKED_FOR_URLS_POLICY_NAME" />.</translation>
 <translation id="780629758750905699">Hinzufügen von Family Link-Konten auf diesem Gerät erlauben</translation>
+<translation id="7807120658089613760">Deaktiviert die Kamera, Browser- und Betriebssystemeinstellungen, Scanfunktionen, den Web Store, Canvas sowie die Funktionen „Crosh“ und „Entdecken“</translation>
 <translation id="7807139251387225825">Liste von Typen, die von der Synchronisierung ausgeschlossen werden sollen</translation>
 <translation id="781268256210530471">Plug-in-Einstellungen</translation>
 <translation id="7814528532170362496">Diese Richtlinie steuert die Überprüfung von URLs in Echtzeit, um unsichere URLs zu erkennen.
@@ -6610,6 +6618,7 @@
 <translation id="8705895771006864851">Wenn Sie diese Richtlinie auf "True" setzen, wird eine Übersetzungsfunktion implementiert, wenn dies für Nutzer angemessen ist. In diesem Fall werden in <ph name="PRODUCT_NAME" /> eine integrierte Übersetzungssymbolleiste sowie eine Übersetzungsfunktion im Kontextmenü angezeigt, das mit einem Rechtsklick geöffnet werden kann. Wird die Richtlinie auf "False" gesetzt, werden alle integrierten Übersetzungsfunktionen ausgeschaltet.
 
       Nach dem Konfigurieren der Richtlinie kann diese Funktion von den Nutzern nicht mehr geändert werden. Ist sie dagegen nicht konfiguriert, kann der Nutzer die Einstellung ändern.</translation>
+<translation id="8707790573162457301">Automatische Datenträgerbereinigung während der Anmeldung ausführen</translation>
 <translation id="8713535263782304771">Safe Browsing deaktivieren</translation>
 <translation id="8715885991031124968">JavaScript-Dialogfelder zulassen, die von einem anderen Quell-Subframe ausgelöst wurden</translation>
 <translation id="8720547069538712402">Zulassen, dass Nutzer die Rechtschreibprüfung aktivieren oder deaktivieren</translation>
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index 34c46ba..6edf97ec 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -859,6 +859,7 @@
 <translation id="199764499252435679">Habilitar las actualizaciones de componentes en <ph name="PRODUCT_NAME" /></translation>
 <translation id="1998504583649140526">Configuración de solicitudes de redes privadas</translation>
 <translation id="1999000620918508488">Fuerza la pantalla de inicio de sesión a mostrar u ocultar la información del sistema.</translation>
+<translation id="2000937390924915996">No ejecuta una limpieza de disco automática al iniciar sesión</translation>
 <translation id="2001420846508294174">Si se le asigna un valor a esta política, se establecen las reglas de selección de impresora predeterminada de <ph name="PRODUCT_NAME" /> y se anulan las reglas predeterminadas. La impresora se selecciona la primera vez que los usuarios intentan imprimir, cuando <ph name="PRODUCT_NAME" /> busca una impresora que cumpla los atributos indicados. Si no se encuentra una coincidencia exacta, se puede configurar <ph name="PRODUCT_NAME" /> para que seleccione cualquier impresora que coincida, según el orden en el que se detecten.
 
       Si no se establece la política o se le asignan atributos para los que no hay ninguna coincidencia, la impresora de PDF integrada será la predeterminada. Si no hay impresora de PDF, <ph name="PRODUCT_NAME" /> no seleccionará ninguna como predeterminada.
@@ -939,6 +940,7 @@
 <translation id="2070744136203607632">No realizar comprobaciones de interceptación de DNS</translation>
 <translation id="2073552873076775140">Permitir inicio de sesión en <ph name="PRODUCT_NAME" /></translation>
 <translation id="2075732129949889165">Playbook de Ansible para Crostini</translation>
+<translation id="2076158466157390917">Controla la limpieza de disco automática al iniciar sesión</translation>
 <translation id="2077129598763517140">Utilizar aceleración por hardware cuando esté disponible</translation>
 <translation id="2077273864382355561">Retraso de desconexión de pantalla cuando el dispositivo funciona con la batería</translation>
 <translation id="2082205219176343977">Configurar la versión mínima permitida de Chrome en el dispositivo.</translation>
@@ -1845,6 +1847,7 @@
       Los patrones de URL no deben entrar en conflicto con <ph name="SERIAL_BLOCKED_FOR_URLS_POLICY_NAME" />. Si una URL está incluida en ambas políticas, no tendrá preferencia ninguna política.
 
       Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> no es un valor aceptado para esta política.</translation>
+<translation id="305106159605171619">La reducción de user-agent está inhabilitada. No se habilita mediante pruebas de campo ni de origen.</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
 <translation id="3064530882228745118">Usar la búsqueda de CNAME durante la autenticación Kerberos</translation>
 <translation id="3066446511111537292">Permite que los usuarios afiliados de este dispositivo usen la instalación de fuente desconocida adb</translation>
@@ -3658,6 +3661,9 @@
           Si se establece el valor "true" o no se configura la política, el usuario podrá crear y gestionar usuarios supervisados.</translation>
 <translation id="5369937289900051171">Solo impresión en color</translation>
 <translation id="5370279767682621504">Habilitar la compatibilidad con HTTP/0.9 en puertos no utilizados de forma predeterminada</translation>
+<translation id="5370765433640162225">Cuando se le asigna el valor True a esta política, la limpieza automática se ejecuta durante el inicio de sesión para asegurarse de que hay suficiente espacio en disco disponible.
+      La limpieza solo se ejecutará cuando sea estrictamente necesario, pero aun así afectará al tiempo de inicio de sesión.
+      Si se le asigna el valor False (la opción predeterminada), se garantiza que el tiempo de inicio de sesión no se verá afectado.</translation>
 <translation id="5371152055157582429">Los usuarios pueden personalizar el fondo de la página Nueva pestaña</translation>
 <translation id="5377606826822211923">Controlar el uso de aplicaciones Android de fuentes que no son de confianza para el usuario</translation>
 <translation id="537786648513450280">Controlar el uso de aplicaciones Android de fuentes que no son de confianza para el dispositivo</translation>
@@ -3979,7 +3985,7 @@
       Si se inhabilita, se abrirán los archivos PDF, a menos que los usuarios desactiven el complemento de PDF.
 
       Si se le asigna un valor a esta política, los usuarios no podrán cambiarlo en <ph name="PRODUCT_NAME" />. Si no se le asigna ningún valor, los usuarios podrán elegir si se abren o no los PDFs de forma externa.</translation>
-<translation id="5705828032077475554">Informar de las sesiones de CRD</translation>
+<translation id="5705828032077475554">Informar de las sesiones de Escritorio Remoto de Google</translation>
 <translation id="5708969689202733975">Configurar los modos de desbloqueo rápido permitidos</translation>
 <translation id="5714563837055244378">Habilitar la opción de compartir de Android a aplicación web.</translation>
 <translation id="5715617256528927547">Si se establece esta política, se especificará en horas el tiempo de vida en caché de Group Policy Object (GPO). La duración máxima durante la cual los GPO pueden reutilizarse antes de que sea necesario volver a descargarlos. En lugar de volver a descargar los GPO cada vez que se recogen datos de políticas, el sistema puede reutilizar los GPO almacenados en caché siempre que su versión no cambie.
@@ -4331,6 +4337,7 @@
 <translation id="6132506775968708399">Bloquear cookies de terceros</translation>
 <translation id="6133088669883929098">Permitir que todos los sitios 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="6135552820180449830">Crosh (compatible desde la versión 99)</translation>
 <translation id="6138636318340561140">Comprueba en tiempo real el estado de Navegación segura de las URL</translation>
 <translation id="6141402445226505817">Utilizar siempre la detección de zona horaria común</translation>
 <translation id="6142501278956229253">PPP al rasterizar PDF para imprimir</translation>
@@ -5841,6 +5848,7 @@
 
       Nota: Para controlar qué sitios web pueden ejecutar <ph name="FLASH_PLUGIN_NAME" />, consulta las políticas <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" />, <ph name="PLUGINS_ALLOWED_FOR_URLS_POLICY_NAME" /> y <ph name="PLUGINS_BLOCKED_FOR_URLS_POLICY_NAME" />.</translation>
 <translation id="780629758750905699">Permitir que se añadan cuentas de Family Link al dispositivo</translation>
+<translation id="7807120658089613760">Inhabilita la cámara, la configuración del navegador, los ajustes del sistema operativo, los análisis y las funciones de Web Store, Canvas, Explorar y Crosh</translation>
 <translation id="7807139251387225825">Lista de tipos que se deben excluir de la sincronización</translation>
 <translation id="781268256210530471">Configuración de complementos</translation>
 <translation id="7814528532170362496">Esta política controla la comprobación de URLs en tiempo real para identificar URL no seguras.
@@ -6647,6 +6655,7 @@
 <translation id="8705895771006864851">Si se le asigna el valor "Habilitada" a esta política, se proporcionará a los usuarios la posibilidad de traducir mediante una barra de herramientas de traducción integrada en <ph name="PRODUCT_NAME" />, si procede, y una opción para traducir en el menú contextual que aparece al hacer clic con el botón derecho. Si se le asigna el valor "Inhabilitada", se desactivarán todas las funciones de traducción integradas.
 
       Si se configura la política, los usuarios no podrán cambiar esta función. Si no se le asigna ningún valor, podrán cambiar esta opción.</translation>
+<translation id="8707790573162457301">Ejecuta una limpieza de disco automática al iniciar sesión</translation>
 <translation id="8713535263782304771">Inhabilitar Navegación segura</translation>
 <translation id="8715885991031124968">Permitir los cuadros de diálogo de JavaScript que se activen desde un submarco de origen diferente</translation>
 <translation id="8720547069538712402">Permitir que los usuarios habiliten o inhabiliten el corrector ortográfico</translation>
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 47a3df8c..5b5a832 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -850,6 +850,7 @@
 <translation id="199764499252435679">Activer la mise à jour des composants de <ph name="PRODUCT_NAME" /></translation>
 <translation id="1998504583649140526">Paramètres des requêtes à un réseau privé</translation>
 <translation id="1999000620918508488">Forcer l'écran de connexion à afficher ou à masquer les informations système.</translation>
+<translation id="2000937390924915996">Ne pas lancer le nettoyage de disque automatique lors de la connexion</translation>
 <translation id="2001420846508294174">Cette règle permet de définir les règles de sélection de l'imprimante par défaut dans <ph name="PRODUCT_NAME" />, ignorant ainsi les règles par défaut. La sélection de l'imprimante est effectuée la première fois que l'utilisateur lance une impression, lorsque <ph name="PRODUCT_NAME" /> cherche une imprimante correspondant aux attributs spécifiés. Si la correspondance n'est pas parfaite, <ph name="PRODUCT_NAME" /> peut être configuré de manière à sélectionner toute imprimante correspondante, selon l'ordre dans lequel les imprimantes sont découvertes.
 
       Si cette règle n'est pas configurée ou qu'elle est définie sur des attributs pour lesquels il n'existe aucune correspondance, l'imprimante PDF intégrée est sélectionnée par défaut. En l'absence d'imprimante PDF, la valeur par défaut de <ph name="PRODUCT_NAME" /> est "Aucun".
@@ -930,6 +931,7 @@
 <translation id="2070744136203607632">Ne pas procéder aux contrôles d'interception DNS</translation>
 <translation id="2073552873076775140">Autoriser la connexion à <ph name="PRODUCT_NAME" /></translation>
 <translation id="2075732129949889165">Playbook Crostini Ansible</translation>
+<translation id="2076158466157390917">Contrôler le nettoyage automatique lors de la connexion</translation>
 <translation id="2077129598763517140">Utiliser l'accélération matérielle si disponible</translation>
 <translation id="2077273864382355561">Délai d'arrêt de l'écran (batterie)</translation>
 <translation id="2082205219176343977">Configurer la version Chrome minimale autorisée de l'appareil.</translation>
@@ -1831,6 +1833,7 @@
       Les formats d'URL ne doivent pas entrer en conflit avec <ph name="SERIAL_BLOCKED_FOR_URLS_POLICY_NAME" />. Aucune règle ne prévaut si un format d'URL est répertorié dans les deux règles.
 
       Pour en savoir plus sur les formats <ph name="URL_LABEL" /> valides, veuillez consulter la page https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. La valeur <ph name="WILDCARD_VALUE" /> n'est pas acceptée pour cette règle.</translation>
+<translation id="305106159605171619">La réduction user-agent est désactivée et ne peut pas être activée par les tests en conditions réelles ni la phase d'évaluation.</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
 <translation id="3064530882228745118">Utiliser la consultation CNAME lors de l'authentification Kerberos</translation>
 <translation id="3066446511111537292">Permet aux utilisateurs affiliés de cet appareil d'utiliser le téléchargement indépendant adb</translation>
@@ -3634,6 +3637,9 @@
           Si elle est associée à la valeur "true" ou si elle n'est pas configurée, cet utilisateur peut créer et gérer des comptes utilisateur supervisés.</translation>
 <translation id="5369937289900051171">Impression couleur seulement</translation>
 <translation id="5370279767682621504">Activer la compatibilité avec HTTP 0.9 sur les ports non utilisés par défaut</translation>
+<translation id="5370765433640162225">Si cette règle est définie sur "True", le nettoyage automatique est lancé lors de la connexion pour vérifier que l'espace disque disponible est suffisant.
+      Le nettoyage n'a lieu que lorsqu'il est strictement nécessaire, mais il a un impact sur le délai de connexion.
+      Si la règle est définie sur "False" (valeur par défaut), le délai de connexion n'est pas affecté.</translation>
 <translation id="5371152055157582429">Les utilisateurs peuvent personnaliser l'arrière-plan de la page "Nouvel onglet"</translation>
 <translation id="5377606826822211923">Contrôler l'accès par l'utilisateur aux applications Android provenant de sources non approuvées</translation>
 <translation id="537786648513450280">Contrôler l'accès de l'appareil aux applications Android provenant de sources non approuvées</translation>
@@ -4309,6 +4315,7 @@
 <translation id="6132506775968708399">Bloquer les cookies tiers</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="6135552820180449830">Crosh (disponible depuis la version 99)</translation>
 <translation id="6138636318340561140">Vérifier en temps réel l'état de la navigation sécurisée pour les URL</translation>
 <translation id="6141402445226505817">Toujours utiliser une détection de fuseau horaire standard</translation>
 <translation id="6142501278956229253">Résolution d'impression de PDF rastérisés</translation>
@@ -5816,6 +5823,7 @@
 
       Remarque : pour contrôler les sites autorisés à exécuter <ph name="FLASH_PLUGIN_NAME" />, reportez-vous aux règles <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" />, <ph name="PLUGINS_ALLOWED_FOR_URLS_POLICY_NAME" /> et <ph name="PLUGINS_BLOCKED_FOR_URLS_POLICY_NAME" />.</translation>
 <translation id="780629758750905699">Autoriser l'ajout de comptes Family Link à l'appareil</translation>
+<translation id="7807120658089613760">Configurer l'appareil photo, les paramètres du navigateur et de l'OS, la fonction de scanner, ainsi que les fonctionnalités Dessin, Web Store, Explorer et Crosh à désactiver</translation>
 <translation id="7807139251387225825">Liste des types à exclure de la synchronisation</translation>
 <translation id="781268256210530471">Paramètres des plug-ins</translation>
 <translation id="7814528532170362496">Cette règle permet de gérer la détection en temps réel des URL dangereuses.
@@ -6613,6 +6621,7 @@
 <translation id="8705895771006864851">Si cette règle est définie sur "True", vous pouvez proposer une fonctionnalité de traduction aux utilisateurs, le cas échéant. Une barre d'outils intégrée de traduction s'affiche alors dans <ph name="PRODUCT_NAME" />, ainsi qu'une option de traduction disponible dans le menu contextuel que l'utilisateur peut afficher en effectuant un clic droit. Si cette règle est définie sur "False", toutes les fonctionnalités de traduction intégrées sont fermées.
 
       Si cette règle est configurée, les utilisateurs ne peuvent pas modifier la fonctionnalité. Si elle n'est pas configurée, les utilisateurs peuvent modifier le paramètre.</translation>
+<translation id="8707790573162457301">Lancer le nettoyage de disque automatique lors de la connexion</translation>
 <translation id="8713535263782304771">Désactiver la navigation sécurisée</translation>
 <translation id="8715885991031124968">Autoriser les boîtes de dialogue JavaScript déclenchées depuis un sous-frame d'une origine différente.</translation>
 <translation id="8720547069538712402">Autoriser l'utilisateur à activer ou désactiver le correcteur orthographique</translation>
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index bc55be8..5360aff 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -2705,6 +2705,9 @@
 Se questo criterio viene impostato su Vero o se non viene impostato, <ph name="PRODUCT_NAME" /> potrà utilizzare notifiche native.
 
 Se questo criterio viene impostato su Falso, <ph name="PRODUCT_NAME" /> non utilizzerà notifiche native. Il Centro messaggi di <ph name="PRODUCT_NAME" /> verrà utilizzato come riserva.</translation>
+<translation id="412394201461298128">Se il criterio viene impostato su Vero, la tastiera sullo schermo rimane attivata. Se viene impostato su Falso, la tastiera sullo schermo rimane disattivata, a meno che non venga attivata da altri fattori. Il criterio <ph name="TOUCH_VIRTUAL_KEYBOARD_ENABLED_POLICY_NAME" /> è un esempio di questi fattori.
+
+      Se il criterio viene configurato, gli utenti non possono modificarlo. Se non viene configurato, la tastiera sullo schermo è disattivata all'inizio, ma gli utenti possono attivarla in qualsiasi momento.</translation>
 <translation id="412697421478384751">Consenti agli utenti di impostare PIN non sicuri per la schermata di blocco</translation>
 <translation id="4138655880188755661">Limite di tempo</translation>
 <translation id="4147818922357566987">Attiva solo le varianti relative alle correzioni critiche</translation>
@@ -5194,6 +5197,18 @@
 <translation id="7041170641363384736">Consente di impostare una programmazione personalizzata per il riavvio dei dispositivi. Attualmente il criterio viene applicato soltanto ai dispositivi per cui è stato attivato l'avvio automatico dell'app nella sessione Kiosk. Se viene impostato su Vero, il dispositivo verrà riavviato in base alla programmazione. Il criterio deve essere rimosso per annullare ulteriori riavvii programmati.</translation>
 <translation id="7044883996351280650">Controlla il servizio backup e ripristino di Android</translation>
 <translation id="7047495632846973438">Specifica se i criteri relativi alle autorizzazioni dell'acquisizione del display vengono controllati o saltati.</translation>
+<translation id="7054461992790881782">Consente di controllare la tastiera sullo schermo, fungendo da criterio aggiuntivo rispetto al criterio <ph name="VIRTUAL_KEYBOARD_ENABLED_POLICY_NAME" />.
+
+      Se il criterio <ph name="VIRTUAL_KEYBOARD_ENABLED_POLICY_NAME" /> viene impostato su Vero o se l'impostazione di Chrome OS Attiva tastiera sullo schermo è attivata, questo criterio non ha alcun effetto.
+
+      Se il criterio <ph name="VIRTUAL_KEYBOARD_ENABLED_POLICY_NAME" /> viene impostato su Falso o se non è configurato e l'impostazione di Chrome OS Attiva tastiera sullo schermo è disattivata, questo criterio ha l'effetto che segue:
+      Se il criterio non viene configurato, la tastiera sullo schermo viene visualizzata quando il dispositivo è in modalità tablet.
+      Se questo criterio viene impostato su Vero, la tastiera sullo schermo viene sempre visualizzata.
+      Se viene impostato su Falso, la tastiera sullo schermo non viene mai visualizzata.
+
+      Il layout della tastiera sullo schermo potrebbe cambiare diventando compatto, in base al metodo di immissione.
+
+      Se il criterio viene configurato, gli utenti non possono modificarlo.</translation>
 <translation id="7060497964524144376">Se il criterio viene impostato su Attivato, Navigazione sicura considera attendibili i domini indicati. Non esegue alcun controllo su questi domini per risorse pericolose come phishing, malware o software indesiderato. Il servizio di protezione dei download di Navigazione sicura non esegue alcun controllo sui download ospitati su questi domini. Il servizio di protezione tramite password di Navigazione sicura non esegue alcun controllo per il riutilizzo delle password.
 
       Se il criterio non viene configurato, la protezione predefinita di Navigazione sicura viene applicata a tutte le risorse.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index 6c94212..84a7f1f 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -834,6 +834,7 @@
 <translation id="199764499252435679"><ph name="PRODUCT_NAME" /> でのコンポーネントの更新を有効にする</translation>
 <translation id="1998504583649140526">プライベート ネットワーク リクエスト設定</translation>
 <translation id="1999000620918508488">ログイン画面でシステム情報を表示または非表示にする。</translation>
+<translation id="2000937390924915996">ログイン中に自動ディスク クリーンアップを実行しない</translation>
 <translation id="2001420846508294174">このポリシーでは、<ph name="PRODUCT_NAME" /> のデフォルト プリンタを選択するルールを設定して、デフォルトのルールをオーバーライドできます。プリンタの選択は、ユーザーが初めて印刷しようとしたときに行われます。このとき、<ph name="PRODUCT_NAME" /> では指定された属性に一致するプリンタが検索されます。完全に一致するものがない場合、<ph name="PRODUCT_NAME" /> では検索順で最初に見つかったプリンタが選択されるように設定できます。
 
       このポリシーを未設定のままにするか、設定した属性に一致するプリンタがない場合、組み込みの PDF プリンタがデフォルトになります。PDF プリンタがなければ、<ph name="PRODUCT_NAME" /> ではデフォルトのプリンタはなしになります。
@@ -912,6 +913,7 @@
 <translation id="2070744136203607632">DNS 傍受チェックを行わない</translation>
 <translation id="2073552873076775140"><ph name="PRODUCT_NAME" /> へのログインを許可する</translation>
 <translation id="2075732129949889165">Crostini Ansible playbook</translation>
+<translation id="2076158466157390917">ログイン中の自動クリーンアップを管理する</translation>
 <translation id="2077129598763517140">ハードウェア アクセラレーションが使用可能な場合は使用する</translation>
 <translation id="2077273864382355561">画面がオフになるまでの時間(バッテリー電源での実行時)</translation>
 <translation id="2082205219176343977">デバイスでの使用を許可する Chrome の最小バージョンを設定する。</translation>
@@ -1774,6 +1776,7 @@
       URL パターンは、<ph name="SERIAL_BLOCKED_FOR_URLS_POLICY_NAME" /> と競合しないようにする必要があります。URL が両方のポリシーの URL パターンと一致する場合、どちらのポリシーも優先されません。
 
       有効な <ph name="URL_LABEL" /> パターンについて詳しくは、https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns をご覧ください。このポリシーの値に「<ph name="WILDCARD_VALUE" />」は使用できません。</translation>
+<translation id="305106159605171619">ユーザー エージェントの削減を無効にして、フィールド トライアルやオリジン トライアルによる有効化を許可しない。</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
 <translation id="3064530882228745118">Kerberos 認証時に CNAME 検索を使用する</translation>
 <translation id="3066446511111537292">このデバイスの関連ユーザーに ADB サイドローディングの使用を許可します</translation>
@@ -3529,6 +3532,9 @@
           true に設定されている場合や未設定の場合、このユーザーは監視対象ユーザーを作成し管理できます。</translation>
 <translation id="5369937289900051171">カラー印刷のみ</translation>
 <translation id="5370279767682621504">デフォルト以外のポートで HTTP/0.9 サポートを有効にする</translation>
+<translation id="5370765433640162225">このポリシーを True に設定した場合、ログイン中に自動クリーンアップが実行され、十分なディスク空き容量が確保されます。
+      クリーンアップは厳密に必要な場合にのみ実行されますが、ログイン時間に影響があります。
+      このポリシーを False に設定した場合(デフォルト)、ログイン時間に影響はありません。</translation>
 <translation id="5371152055157582429">ユーザーは新しいタブページの背景をカスタマイズできる</translation>
 <translation id="5377606826822211923">信頼できない提供元の Android アプリの使用をユーザー単位で管理する</translation>
 <translation id="537786648513450280">信頼できない提供元の Android アプリの使用をデバイス単位で管理する</translation>
@@ -4176,6 +4182,7 @@
 <translation id="6132506775968708399">サードパーティ Cookie をブロックする</translation>
 <translation id="6133088669883929098">すべてのサイトにキー生成の使用を許可する</translation>
 <translation id="6135398260575578389">セーフ ブラウジングを強化モードで有効にする。このモードではセキュリティが強化されますが、より多くの閲覧情報を Google に提供する必要があります。</translation>
+<translation id="6135552820180449830">Crosh(バージョン 99 以降でサポート)</translation>
 <translation id="6138636318340561140">URL のセーフ ブラウジング ステータスをリアルタイムでチェックする</translation>
 <translation id="6141402445226505817">常に IP のみに基づいてタイムゾーンを検出する</translation>
 <translation id="6142501278956229253">ラスタライズした PDF の印刷に使用する DPI</translation>
@@ -5582,6 +5589,7 @@
 
       注: <ph name="FLASH_PLUGIN_NAME" /> を実行できるウェブサイトを管理するには、<ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" />、<ph name="PLUGINS_ALLOWED_FOR_URLS_POLICY_NAME" />、<ph name="PLUGINS_BLOCKED_FOR_URLS_POLICY_NAME" /> のポリシーをご覧ください。</translation>
 <translation id="780629758750905699">デバイスへのファミリー リンク アカウントの追加を許可する</translation>
+<translation id="7807120658089613760">カメラ、ブラウザ設定、OS 設定、スキャン、ウェブストア、キャンバス、使い方・ヒント、Crosh の機能を無効に設定する</translation>
 <translation id="7807139251387225825">同期から除外するデータタイプのリスト</translation>
 <translation id="781268256210530471">プラグイン設定</translation>
 <translation id="7814528532170362496">このポリシーでは、安全でない URL を検出するリアルタイムの URL チェックを管理します。
@@ -6361,6 +6369,7 @@
 <translation id="8705895771006864851">このポリシーを True に設定した場合、<ph name="PRODUCT_NAME" /> に組み込みの翻訳ツールバーを表示し、右クリックのコンテキスト メニューに翻訳オプションを表示して、ユーザーが必要な場面で翻訳機能を使用できるようにします。このポリシーを False に設定した場合、組み込みの翻訳機能はすべて使用できなくなります。
 
       このポリシーを設定した場合、ユーザーはこの機能を変更できません。このポリシーを未設定のままにした場合、ユーザーは設定を変更できます。</translation>
+<translation id="8707790573162457301">ログイン中に自動ディスク クリーンアップを実行する</translation>
 <translation id="8713535263782304771">セーフ ブラウジングを無効にする</translation>
 <translation id="8715885991031124968">異なる生成元のサブフレームからトリガーされた JavaScript ダイアログを許可します</translation>
 <translation id="8720547069538712402">ユーザーにスペルチェックの有効と無効の切り替えを許可する</translation>
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 49c8eee..d1bd86c 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -849,6 +849,7 @@
 <translation id="199764499252435679"><ph name="PRODUCT_NAME" /> 구성요소 업데이트 허용</translation>
 <translation id="1998504583649140526">비공개 네트워크 요청 설정</translation>
 <translation id="1999000620918508488">로그인 화면에 시스템 정보를 표시하거나 숨깁니다.</translation>
+<translation id="2000937390924915996">로그인 중 자동 디스크 정리 실행 안 함</translation>
 <translation id="2001420846508294174">정책을 설정하면 <ph name="PRODUCT_NAME" />에서 기본 프린터를 선택하는 규칙이 설정되며, 이 규칙은 기본 규칙을 재정의합니다. 사용자가 처음 인쇄를 시도할 때 <ph name="PRODUCT_NAME" />에서 특정 속성과 일치하는 프린터를 찾으면 프린터가 선택됩니다. 정확하게 일치하는 항목이 없는 경우 프린터가 검색되는 순서에 따라 일치하는 프린터를 선택하도록 <ph name="PRODUCT_NAME" />을(를) 설정할 수 있습니다.
 
       정책을 설정하지 않거나 일치하는 항목이 없는 속성으로 설정하면 내장 PDF 프린터가 기본값이 됩니다. PDF 프린터가 없는 경우 <ph name="PRODUCT_NAME" />의 기본값은 없음입니다.
@@ -929,6 +930,7 @@
 <translation id="2070744136203607632">DNS 가로채기 검사 진행 안함</translation>
 <translation id="2073552873076775140"><ph name="PRODUCT_NAME" /> 로그인 허용</translation>
 <translation id="2075732129949889165">Crostini Ansible 플레이북</translation>
+<translation id="2076158466157390917">로그인 중 자동 정리 제어</translation>
 <translation id="2077129598763517140">가능한 경우 하드웨어 가속 사용</translation>
 <translation id="2077273864382355561">배터리 전원으로 실행할 때 화면 꺼짐 지연</translation>
 <translation id="2082205219176343977">기기에 허용되는 최소 Chrome 버전을 설정합니다.</translation>
@@ -1835,6 +1837,7 @@
       URL 패턴은 <ph name="SERIAL_BLOCKED_FOR_URLS_POLICY_NAME" />와 충돌하지 않아야 합니다. URL이 둘 모두와 일치하면 어떠한 정책도 우선 적용되지 않습니다.
 
       유효한 <ph name="URL_LABEL" /> 패턴에 관해 자세히 알아보려면 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns를 참고하세요. <ph name="WILDCARD_VALUE" />는 이 정책에 허용되는 값이 아닙니다.</translation>
+<translation id="305106159605171619">사용자 에이전트 축소가 사용 중지되고 필드 트라이얼 또는 오리진 트라이얼을 통해 이를 사용 설정할 수 없습니다.</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
 <translation id="3064530882228745118">Kerberos 인증 시 CNAME 검색 사용</translation>
 <translation id="3066446511111537292">기기의 연결된 사용자가 ADB 사이드로드를 사용하도록 허용</translation>
@@ -3645,6 +3648,9 @@
           true로 설정하거나 설정하지 않으면 이 사용자가 관리 대상 사용자를 생성하고 관리할 수 있습니다.</translation>
 <translation id="5369937289900051171">컬러 인쇄만</translation>
 <translation id="5370279767682621504">기본 포트가 아닌 포트에서 HTTP/0.9 지원 사용</translation>
+<translation id="5370765433640162225">true로 설정하면 충분한 디스크 공간을 확보하기 위해 로그인 중에 자동 정리가 실행됩니다.
+      정리는 꼭 필요할 때만 실행되지만 그래도 로그인 시간에 영향을 줍니다.
+      false(기본값)로 설정하면 로그인 시간이 영향을 받지 않습니다.</translation>
 <translation id="5371152055157582429">사용자가 새 탭 페이지 배경을 맞춤설정할 수 있음</translation>
 <translation id="5377606826822211923">사용자를 위해 신뢰할 수 없는 출처의 Android 앱 사용 제어</translation>
 <translation id="537786648513450280">기기에서 신뢰할 수 없는 출처의 Android 앱 사용 제어</translation>
@@ -4319,6 +4325,7 @@
 <translation id="6132506775968708399">타사 쿠키 차단</translation>
 <translation id="6133088669883929098">모든 사이트에서 키 생성 사용 허용</translation>
 <translation id="6135398260575578389">세이프 브라우징이 강화 모드에서 활성화됩니다. 이 모드에서는 보안이 강화되지만 Google과 인터넷 사용 정보를 더 많이 공유해야 합니다.</translation>
+<translation id="6135552820180449830">Crosh(버전 99부터 지원)</translation>
 <translation id="6138636318340561140">URL의 세이프 브라우징 상태 실시간 확인</translation>
 <translation id="6141402445226505817">항상 대략적인 시간대 감지를 사용합니다.</translation>
 <translation id="6142501278956229253">PDF DPI 인쇄 래스터화</translation>
@@ -5829,6 +5836,7 @@
 
       참고: <ph name="FLASH_PLUGIN_NAME" /> 플러그인을 실행할 수 있는 웹사이트를 제어하려면 <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" />, <ph name="PLUGINS_ALLOWED_FOR_URLS_POLICY_NAME" />, <ph name="PLUGINS_BLOCKED_FOR_URLS_POLICY_NAME" /> 정책을 참고하세요.</translation>
 <translation id="780629758750905699">기기에 Family Link 계정 추가 허용</translation>
+<translation id="7807120658089613760">카메라, 브라우저 설정, OS 설정, 스캔, 웹 스토어, 캔버스, 살펴보기 및 Crosh 기능을 사용 안함으로 설정</translation>
 <translation id="7807139251387225825">동기화에서 제외되어야 하는 유형 목록</translation>
 <translation id="781268256210530471">플러그인 설정</translation>
 <translation id="7814528532170362496">이 정책은 안전하지 않은 URL을 파악할 수 있는 실시간 URL 확인을 제어합니다.
@@ -6633,6 +6641,7 @@
 <translation id="8705895771006864851">정책을 True로 설정하면 사용자에게 적합한 경우 <ph name="PRODUCT_NAME" />에 통합 번역 툴바를 표시하고 마우스 오른쪽 버튼 클릭 시 나타나는 컨텍스트 메뉴에 번역 옵션을 표시하여 번역 기능을 제공합니다. 정책을 False로 설정하면 내장된 모든 번역 기능이 꺼집니다.
 
       정책을 설정하면 사용자가 이 기능을 변경할 수 없습니다. 설정하지 않으면 사용자가 설정을 변경할 수 있습니다.</translation>
+<translation id="8707790573162457301">로그인 중 자동 디스크 정리 실행</translation>
 <translation id="8713535263782304771">세이프 브라우징 사용 안함</translation>
 <translation id="8715885991031124968">다른 출처 서브프레임에서 실행된 자바스크립트 대화상자 허용</translation>
 <translation id="8720547069538712402">사용자가 맞춤법 검사를 사용 또는 사용 중지하도록 허용</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 8e6b896d..1baa5416 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -846,6 +846,7 @@
 <translation id="199764499252435679">Разрешить обновление компонентов <ph name="PRODUCT_NAME" /></translation>
 <translation id="1998504583649140526">Настройки запроса частной сети</translation>
 <translation id="1999000620918508488">Всегда показывать или скрывать системную информацию на экране входа</translation>
+<translation id="2000937390924915996">Не выполнять автоматическую очистку диска во время входа</translation>
 <translation id="2001420846508294174">Переопределяет правила выбора принтера по умолчанию в <ph name="PRODUCT_NAME" />. При первом запуске печати <ph name="PRODUCT_NAME" /> выполнит поиск принтера, соответствующего всем указанным атрибутам, и установит его в качестве принтера по умолчанию. Если подходящих принтеров несколько, <ph name="PRODUCT_NAME" /> выберет тот, что был обнаружен первым.
 
       Если правило не настроено или атрибуты не совпадают, по умолчанию используется встроенный PDF-принтер. Если такого принтера нет, <ph name="PRODUCT_NAME" /> не будет выбирать принтер по умолчанию.
@@ -916,6 +917,7 @@
 <translation id="2070744136203607632">Не выполнять проверки на перехват DNS</translation>
 <translation id="2073552873076775140">Разрешить вход в <ph name="PRODUCT_NAME" /></translation>
 <translation id="2075732129949889165">Сценарий Ansible для Crostini</translation>
+<translation id="2076158466157390917">Управлять автоматической очисткой диска во время входа</translation>
 <translation id="2077129598763517140">Использовать аппаратное ускорение (при наличии)</translation>
 <translation id="2077273864382355561">Задержка отключения экрана при работе от батареи</translation>
 <translation id="2082205219176343977">Настройка версии Chrome, минимально допустимой для устройства</translation>
@@ -1817,6 +1819,7 @@
       Шаблоны URL не должны противоречить шаблонам в правиле <ph name="SERIAL_BLOCKED_FOR_URLS_POLICY_NAME" />. Если URL совпадает с шаблонами в обоих правилах, ни одно из них не имеет приоритета.
 
       Подробнее о допустимых шаблонах <ph name="URL_LABEL" />: https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Значение <ph name="WILDCARD_VALUE" /> не поддерживается для этого правила.</translation>
+<translation id="305106159605171619">Не сокращать строку агента пользователя и запретить включение этого правила с помощью экспериментальных функций или в пробных версиях для источника</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
 <translation id="3064530882228745118">Выполнять поиск записи CNAME при аутентификации с помощью Kerberos</translation>
 <translation id="3066446511111537292">Разрешить связанным пользователям устанавливать на устройство приложения из неизвестного источника с помощью adb</translation>
@@ -3624,6 +3627,9 @@
           Если задано значение "true" или значение не задано, этот пользователь сможет создавать контролируемые профили и управлять ими.</translation>
 <translation id="5369937289900051171">Только цветная печать</translation>
 <translation id="5370279767682621504">Включить поддержку HTTP/0.9 для портов, не заданных по умолчанию</translation>
+<translation id="5370765433640162225">Если для правила задано значение True, во время входа будет выполняться автоматическая очистка. Ее цель – освободить место на диске.
+      Очистка будет запускаться только в случае крайней необходимости, но вход в любом случае станет занимать больше времени.
+      Если указано значение False (параметр по умолчанию), время входа не изменится.</translation>
 <translation id="5371152055157582429">Пользователи могут настраивать фоновое изображение для страницы быстрого доступа</translation>
 <translation id="5377606826822211923">Контролировать использование приложений для Android из ненадежных источников</translation>
 <translation id="537786648513450280">Управление использованием на устройстве приложений для Android из ненадежных источников</translation>
@@ -4297,6 +4303,7 @@
 <translation id="6132506775968708399">Блокировать сторонние файлы cookie</translation>
 <translation id="6133088669883929098">Разрешить всем сайтам создавать ключи</translation>
 <translation id="6135398260575578389">Безопасный просмотр включен в режиме улучшенной защиты (в Google отправляется больше данных о работе в браузере)</translation>
+<translation id="6135552820180449830">Crosh (поддерживается с версии 99)</translation>
 <translation id="6138636318340561140">Моментальная проверка URL на соответствие критериям Безопасного просмотра</translation>
 <translation id="6141402445226505817">Всегда определять часовой пояс приблизительно</translation>
 <translation id="6142501278956229253">Разрешение растрового PDF для печати</translation>
@@ -5799,6 +5806,7 @@
 
       Вот правила, которые определяют, на каких сайтах разрешен запуск плагина <ph name="FLASH_PLUGIN_NAME" />: <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" />, <ph name="PLUGINS_ALLOWED_FOR_URLS_POLICY_NAME" /> и <ph name="PLUGINS_BLOCKED_FOR_URLS_POLICY_NAME" />.</translation>
 <translation id="780629758750905699">Разрешить добавление аккаунтов Family Link на устройство</translation>
+<translation id="7807120658089613760">Отключить камеру, настройки браузера, параметры ОС, сканирование, а также функции интернет-магазина Chrome, Холста Chrome, приложения "Возможности" и оболочки Crosh</translation>
 <translation id="7807139251387225825">Типы данных, для которых нужно запретить синхронизацию</translation>
 <translation id="781268256210530471">Настройки плагинов</translation>
 <translation id="7814528532170362496">Это правило определяет, выявляются ли в режиме реального времени опасные URL.
@@ -6599,6 +6607,7 @@
 <translation id="8705895771006864851">Если для правила задано значение True, пользователям в случае необходимости показывается интегрированная панель переводческих инструментов в браузере <ph name="PRODUCT_NAME" /> и пункт с командой на перевод в контекстном меню, которое открывается при нажатии правой кнопки мыши. Если задано значение False, все встроенные функции перевода отключаются.
 
       Настроив это правило, вы лишите пользователей возможности выбрать другой вариант. Если не устанавливать значение, пользователи смогут менять эту настройку.</translation>
+<translation id="8707790573162457301">Выполнять автоматическую очистку диска во время входа</translation>
 <translation id="8713535263782304771">Отключить Безопасный просмотр</translation>
 <translation id="8715885991031124968">Разрешить показывать диалоговые окна JavaScript, запущенные из других субфреймов</translation>
 <translation id="8720547069538712402">Разрешить пользователю включать и отключать проверку правописания</translation>
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index 84c7fc6..69e4774 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -2688,6 +2688,9 @@
 หากตั้งค่าเป็น "จริง" หรือไม่ได้ตั้งค่า <ph name="PRODUCT_NAME" /> จะได้รับอนุญาตให้ใช้การแจ้งเตือนดั้งเดิม
 
 หากตั้งค่าเป็น "เท็จ" <ph name="PRODUCT_NAME" /> จะไม่ใช้การแจ้งเตือนดั้งเดิม ระบบจะใช้ศูนย์ข้อความของ <ph name="PRODUCT_NAME" /> เป็นวิธีสำรอง</translation>
+<translation id="412394201461298128">การตั้งค่านโยบายเป็น "จริง" จะเปิดแป้นพิมพ์บนหน้าจอไว้ตลอด การตั้งค่านโยบายเป็น "เท็จ" จะปิดแป้นพิมพ์บนหน้าจอไว้ตลอด เว้นแต่จะเปิดด้วยปัจจัยอื่นๆ ดูนโยบาย <ph name="TOUCH_VIRTUAL_KEYBOARD_ENABLED_POLICY_NAME" /> เป็นตัวอย่างของปัจจัยเหล่านี้
+
+      หากคุณตั้งค่านโยบายไว้ ผู้ใช้จะเปลี่ยนไม่ได้ หากไม่ได้ตั้งค่าไว้ แป้นพิมพ์บนหน้าจอจะปิดอยู่ในตอนแรก แต่ผู้ใช้จะเปิดได้ทุกเมื่อ</translation>
 <translation id="412697421478384751">ยอมให้ผู้ใช้ตั้ง PIN ที่คาดเดาง่ายเป็น PIN หน้าจอล็อก</translation>
 <translation id="4138655880188755661">การจำกัดเวลา</translation>
 <translation id="4147818922357566987">เปิดใช้รูปแบบต่างๆ ที่เกี่ยวข้องกับการแก้ไขที่สำคัญเท่านั้น</translation>
@@ -5144,6 +5147,18 @@
 <translation id="7041170641363384736">อนุญาตให้ตั้งกำหนดการเองเพื่อรีบูตอุปกรณ์ ขณะนี้นโยบายมีผลกับอุปกรณ์ที่มีการเปิดใช้แอปการเรียกใช้อัตโนมัติในเซสชันคีออสก์เท่านั้น เมื่อตั้งค่าเป็น "จริง" อุปกรณ์จะรีบูตตามกำหนดการ คุณต้องนำนโยบายออกหากต้องการยกเลิกการรีบูตรายการอื่นๆ ที่กำหนดเวลาไว้</translation>
 <translation id="7044883996351280650">ควบคุมบริการสำรองและกู้คืนข้อมูลใน Android</translation>
 <translation id="7047495632846973438">ระบุว่าจะตรวจสอบนโยบายสิทธิ์ display-capture หรือข้ามไป</translation>
+<translation id="7054461992790881782">ควบคุมแป้นพิมพ์บนหน้าจอซึ่งทำหน้าที่เป็นนโยบายเพิ่มเติมสำหรับนโยบาย <ph name="VIRTUAL_KEYBOARD_ENABLED_POLICY_NAME" />
+
+      หากนโยบาย <ph name="VIRTUAL_KEYBOARD_ENABLED_POLICY_NAME" /> เป็น "จริง" หรือหากการตั้งค่า "เปิดใช้แป้นพิมพ์บนหน้าจอใน Chrome OS" เปิดอยู่ นโยบายนี้จะไม่มีผล
+
+      หากนโยบาย <ph name="VIRTUAL_KEYBOARD_ENABLED_POLICY_NAME" /> เป็น "เท็จ" หรือไม่ได้ตั้งค่า และการตั้งค่า "เปิดใช้แป้นพิมพ์บนหน้าจอใน Chrome OS" ปิดอยู่ นโยบายนี้มีผลดังต่อไปนี้
+      หากไม่ได้ตั้งค่านโยบายนี้ แป้นพิมพ์บนหน้าจอจะแสดงขึ้นเมื่ออุปกรณ์อยู่ในโหมดแท็บเล็ต
+      หากตั้งค่านโยบายนี้เป็น "จริง" แป้นพิมพ์บนหน้าจอจะแสดงขึ้นทุกครั้ง
+      หากตั้งค่านโยบายนี้เป็น "เท็จ" แป้นพิมพ์บนหน้าจอจะไม่แสดงขึ้น
+
+      แป้นพิมพ์บนหน้าจออาจเปลี่ยนเป็นรูปแบบกะทัดรัดขึ้นอยู่กับวิธีการป้อนข้อมูล
+
+      หากคุณตั้งค่านโยบายไว้ ผู้ใช้จะเปลี่ยนไม่ได้</translation>
 <translation id="7060497964524144376">การตั้งค่านโยบายเป็น "เปิดใช้" หมายความว่า Google Safe Browsing จะเชื่อถือโดเมนที่คุณระบุ และจะไม่ตรวจหาทรัพยากรที่เป็นอันตราย เช่น ฟิชชิง มัลแวร์ หรือซอฟต์แวร์ไม่พึงประสงค์ บริการปกป้องการดาวน์โหลดของ Google Safe Browsing จะไม่ตรวจสอบการดาวน์โหลดที่โฮสต์ในโดเมนเหล่านี้ และบริการปกป้องรหัสผ่านก็จะไม่ตรวจสอบการใช้รหัสผ่านซ้ำ
 
       การไม่ตั้งค่านโยบายจะทำให้การปกป้องด้วย Google Safe Browsing ตามค่าเริ่มต้นมีผลกับทรัพยากรทั้งหมด
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index b299d32..556a1dd 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -859,6 +859,7 @@
 <translation id="199764499252435679"><ph name="PRODUCT_NAME" /> ürününde bileşen güncellemelerini etkinleştir</translation>
 <translation id="1998504583649140526">Özel ağ istek ayarları</translation>
 <translation id="1999000620918508488">Oturum açma ekranını, sistem bilgilerini göstermeye veya gizlemeye zorlayın.</translation>
+<translation id="2000937390924915996">Giriş sırasında otomatik disk temizlemeyi çalıştırma</translation>
 <translation id="2001420846508294174">Politika ayarlanırsa <ph name="PRODUCT_NAME" /> ürününde varsayılan yazıcıyı seçme kuralları belirlenir ve varsayılan kurallar geçersiz kılınır. Yazıcı seçimi, kullanıcılar ilk kez yazdırmaya çalıştığında, yani <ph name="PRODUCT_NAME" /> belirtilen özelliklere uygun bir yazıcı aradığında yapılır. Kusursuz eşleşme sağlanamazsa <ph name="PRODUCT_NAME" />, bulunma sırasına bağlı olarak eşleşen yazıcılardan herhangi birini seçecek şekilde ayarlanabilir.
 
       Politika ayarlanmadan bırakılır veya hiçbir yazıcıyla eşleşmeyen özelliklere ayarlanırsa yerleşik PDF yazıcısı varsayılan olur. PDF yazıcısı yoksa <ph name="PRODUCT_NAME" /> için varsayılan yazıcı ayarlanmaz.
@@ -929,6 +930,7 @@
 <translation id="2070744136203607632">DNS müdahale kontrollerini gerçekleştirme</translation>
 <translation id="2073552873076775140"><ph name="PRODUCT_NAME" /> oturumunun açılmasına izin ver</translation>
 <translation id="2075732129949889165">Crostini Ansible başucu kitabı</translation>
+<translation id="2076158466157390917">Giriş sırasında otomatik temizlemeyi kontrol et</translation>
 <translation id="2077129598763517140">Kullanılabilir olduğunda donanım hızlandırmayı kullan</translation>
 <translation id="2077273864382355561">Pil gücüyle çalışırken ekran kapatma gecikmesi</translation>
 <translation id="2082205219176343977">Cihaz için izin verilen minimum Chrome sürümünü yapılandır.</translation>
@@ -1834,6 +1836,7 @@
       URL kalıpları, <ph name="SERIAL_BLOCKED_FOR_URLS_POLICY_NAME" /> ile çakışmamalıdır. Bir URL her ikisiyle de eşleşirse politikaların ikisinin de diğeri üzerinde önceliği olmaz.
 
       Geçerli <ph name="URL_LABEL" /> kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz. <ph name="WILDCARD_VALUE" />, bu politikada kabul edilen bir değer değildir.</translation>
+<translation id="305106159605171619">Kullanıcı aracısı kısaltma özelliği devre dışı bırakılmış ve alan denemeleri ya da kaynak denemeleri ile etkinleştirilmemiş.</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
 <translation id="3064530882228745118">Kerberos kimlik doğrulaması sırasında CNAME aramasını kullan</translation>
 <translation id="3066446511111537292">Bu cihazın ilişkili kullanıcılarının ADB başka cihazdan yükleme işlevini kullanmalarına izin verir</translation>
@@ -3640,6 +3643,9 @@
           True (doğru) olarak ayarlanırsa veya yapılandırılmazsa, bu kullanıcı denetlenen kullanıcılar oluşturabilir ve denetlenen kullanıcıları yönetebilir.</translation>
 <translation id="5369937289900051171">Yalnızca renkli yazdır</translation>
 <translation id="5370279767682621504">Varsayılan olmayan bağlantı noktalarında HTTP/0.9 desteğini etkinleştir</translation>
+<translation id="5370765433640162225">Bu politika doğru değerine ayarlandığında yeterli boş disk alanı olduğundan emin olmak için giriş sırasında otomatik temizleme işlemi gerçekleştirilir.
+      Temizleme işlemi yalnızca kesinlikle gerekli olduğu durumlarda gerçekleştirilse de giriş süresini yine de etkiler.
+      Politikanın yanlış (varsayılan) değerine ayarlanması giriş süresinin etkilenmemesini sağlar.</translation>
 <translation id="5371152055157582429">Kullanıcılar, Yeni Sekme sayfasının arka planını özelleştirebilirler</translation>
 <translation id="5377606826822211923">Kullanıcı için güvenilmeyen kaynaklardan Android uygulaması kullanımının kontrolü</translation>
 <translation id="537786648513450280">Cihaz için güvenilmeyen kaynaklardan Android uygulaması kullanımının kontrolü</translation>
@@ -4303,6 +4309,7 @@
 <translation id="6132506775968708399">3. taraf çerezleri engelle</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="6135552820180449830">Crosh (99 sürümünden itibaren desteklenir)</translation>
 <translation id="6138636318340561140">Ziyaret edilen URL'lerin Güvenli Tarama durumunu gerçek zamanlı olarak kontrol et</translation>
 <translation id="6141402445226505817">Her zaman yüzeysel saat dilimi algılamasını kullan</translation>
 <translation id="6142501278956229253">Yazdırma Pikselleştirme PDF DPI</translation>
@@ -5796,6 +5803,7 @@
 
       Not: <ph name="FLASH_PLUGIN_NAME" /> eklentisini çalıştırabilen web sitelerini kontrol etmek için şu politikalara bakın: <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" />, <ph name="PLUGINS_ALLOWED_FOR_URLS_POLICY_NAME" /> ve <ph name="PLUGINS_BLOCKED_FOR_URLS_POLICY_NAME" />.</translation>
 <translation id="780629758750905699">Family Link hesaplarının cihaza eklenmesine izin ver</translation>
+<translation id="7807120658089613760">Devre dışı bırakılacak kamera, tarayıcı ayarları, OS ayarları, tarama, web mağazası, tuval, keşfet ve crosh özelliklerini yapılandır</translation>
 <translation id="7807139251387225825">Senkronizasyonun dışında tutulması gereken türlerin listesi</translation>
 <translation id="781268256210530471">Eklenti ayarları</translation>
 <translation id="7814528532170362496">Bu politika, güvenli olmayan URL'leri belirlemek için URL'lerin gerçek zamanlı olarak kontrol edilmesini denetler.
@@ -6587,6 +6595,7 @@
 <translation id="8705895771006864851">Politikayı True (Doğru) değerine ayarlamak, kullanıcılar için uygun olduğunda hem <ph name="PRODUCT_NAME" /> ürününde entegre çeviri araç çubuğu hem de sağ tıklanan içerik menüsünde çeviri seçeneği göstererek çeviri işlevselliği sağlar. Politikayı False (Yanlış) değerine ayarlamak, tüm yerleşik çeviri özelliklerini kapatır.
 
       Politikayı ayarlarsanız kullanıcılar bu fonksiyonu değiştiremez. Ayarlamadan bırakırsanız kullanıcılar bu ayarı değiştirebilir.</translation>
+<translation id="8707790573162457301">Giriş sırasında otomatik disk temizlemeyi çalıştır</translation>
 <translation id="8713535263782304771">Güvenli Tarama'yı devre dışı bırak</translation>
 <translation id="8715885991031124968">Farklı kaynaklı alt çerçevelerden tetiklenen JavaScript iletişim kutularına izin verilir.</translation>
 <translation id="8720547069538712402">Kullanıcının yazım denetimini etkinleştirmesine veya devre dışı bırakmasına izin verir</translation>
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index 3dad1435..7e85d2c 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -849,6 +849,7 @@
 <translation id="199764499252435679">Cho phép cập nhật thành phần trong <ph name="PRODUCT_NAME" /></translation>
 <translation id="1998504583649140526">Cài đặt yêu cầu mạng riêng</translation>
 <translation id="1999000620918508488">Buộc màn hình đăng nhập hiển thị hoặc ẩn thông tin hệ thống.</translation>
+<translation id="2000937390924915996">Không chạy chế độ tự động dọn dẹp ổ đĩa trong quá trình đăng nhập</translation>
 <translation id="2001420846508294174">Việc đặt chính sách này sẽ đặt các quy tắc để chọn máy in mặc định trong <ph name="PRODUCT_NAME" />, ghi đè các quy tắc mặc định. Máy in sẽ được chọn ngay trong lần đầu tiên người dùng cố gắng in, khi <ph name="PRODUCT_NAME" /> tìm kiếm một máy in phù hợp với các thuộc tính đã chỉ định. Trong trường hợp có một máy in hoàn toàn không phù hợp, <ph name="PRODUCT_NAME" /> có thể được đặt để chọn máy in phù hợp bất kỳ, tùy theo thứ tự tìm thấy máy in.
 
       Nếu bạn không đặt chính sách này hoặc đặt thành các thuộc tính mà theo đó, không có máy in nào phù hợp, thì máy in tệp PDF tích hợp sẽ là máy in mặc định. Nếu không có máy in tệp PDF, <ph name="PRODUCT_NAME" /> sẽ đặt mặc định là không có.
@@ -929,6 +930,7 @@
 <translation id="2070744136203607632">Không thực hiện tùy chọn kiểm tra chặn hệ thống tên miền (DNS)</translation>
 <translation id="2073552873076775140">Cho phép đăng nhập vào <ph name="PRODUCT_NAME" /></translation>
 <translation id="2075732129949889165">Playbook Crostini Ansible</translation>
+<translation id="2076158466157390917">Điều khiển chế độ tự động dọn dẹp trong quá trình đăng nhập</translation>
 <translation id="2077129598763517140">Sử dụng chế độ tăng tốc phần cứng khi khả dụng</translation>
 <translation id="2077273864382355561">Độ trễ tắt màn hình khi chạy trên nguồn pin</translation>
 <translation id="2082205219176343977">Định cấu hình phiên bản Chrome tối thiểu được phép cho thiết bị.</translation>
@@ -1833,6 +1835,7 @@
       Các mẫu URL không được xung đột với <ph name="SERIAL_BLOCKED_FOR_URLS_POLICY_NAME" />. Không chính sách nào được ưu tiên nếu một URL khớp với cả hai chính sách.
 
       Để biết thông tin chi tiết về các mẫu <ph name="URL_LABEL" /> hợp lệ, vui lòng xem tại https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Chúng tôi không chấp nhận giá trị <ph name="WILDCARD_VALUE" /> đối với chính sách này.</translation>
+<translation id="305106159605171619">Đã tắt chế độ giảm thiểu Tác nhân người dùng (User-Agent Reduction) và không dùng Bản dùng thử thử nghiệm (Field-Trials) hay Bản dùng thử theo nguyên gốc (Origin-Trials) để bật tính năng này.</translation>
 <translation id="3053265701996417839">Microsoft Windows 7</translation>
 <translation id="3064530882228745118">Dùng tính năng tra cứu CNAME trong quá trình xác thực Kerberos</translation>
 <translation id="3066446511111537292">Cho phép người dùng đã liên kết của thiết bị này sử dụng tính năng cài đặt không qua cửa hàng của Cầu gỡ lỗi Android (ADB)</translation>
@@ -3648,6 +3651,9 @@
           Nếu đặt thành đúng hoặc không định cấu hình, người dùng này có thể tạo và quản lý tài khoản người dùng bị giám sát.</translation>
 <translation id="5369937289900051171">Chỉ in màu</translation>
 <translation id="5370279767682621504">Bật hỗ trợ HTTP/0.9 trên các cổng không phải là cổng mặc định</translation>
+<translation id="5370765433640162225">Nếu bạn đặt chính sách này thành đúng, thì chế độ tự động dọn dẹp sẽ được thực thi trong quá trình đăng nhập để đảm bảo có đủ dung lượng ổ đĩa trống.
+      Dù chỉ chạy khi thật sự cần thiết nhưng chế độ dọn dẹp vẫn sẽ ảnh hưởng đến thời gian đăng nhập.
+      Việc bạn đặt chính sách này thành sai (mặc định) sẽ giúp đảm bảo thời gian đăng nhập không bị ảnh hưởng.</translation>
 <translation id="5371152055157582429">Người dùng có thể tùy chỉnh hình nền của trang Thẻ mới</translation>
 <translation id="5377606826822211923">Kiểm soát việc người dùng sử dụng ứng dụng Android từ những nguồn không tin cậy</translation>
 <translation id="537786648513450280">Kiểm soát việc thiết bị dùng ứng dụng Android từ các nguồn không tin cậy</translation>
@@ -4322,6 +4328,7 @@
 <translation id="6132506775968708399">Chặn cookie của bên thứ ba</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 người dùng sẽ phải chia sẻ thêm thông tin duyệt web với Google.</translation>
+<translation id="6135552820180449830">Crosh (được hỗ trợ kể từ phiên bản 99)</translation>
 <translation id="6138636318340561140">Kiểm tra trạng thái Duyệt web an toàn của các URL trong thời gian thực</translation>
 <translation id="6141402445226505817">Luôn sử dụng tính năng phát hiện múi giờ thô</translation>
 <translation id="6142501278956229253">In tệp PDF được tạo điểm ảnh DPI</translation>
@@ -5830,6 +5837,7 @@
 
       Lưu ý: Để kiểm soát những trang web có thể chạy <ph name="FLASH_PLUGIN_NAME" />, hãy xem các chính sách sau: <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" />, <ph name="PLUGINS_ALLOWED_FOR_URLS_POLICY_NAME" /> và <ph name="PLUGINS_BLOCKED_FOR_URLS_POLICY_NAME" />.</translation>
 <translation id="780629758750905699">Cho phép thêm các tài khoản Family Link vào thiết bị</translation>
+<translation id="7807120658089613760">Định cấu hình để tắt máy ảnh, các chế độ cài đặt của trình duyệt, các chế độ cài đặt của hệ điều hành, tính năng quét, cửa hàng trực tuyến, canvas, các tính năng khám phá và crosh</translation>
 <translation id="7807139251387225825">Danh sách các loại sẽ bị loại trừ khỏi quá trình đồng bộ hóa</translation>
 <translation id="781268256210530471">Cài đặt trình bổ trợ</translation>
 <translation id="7814528532170362496">Chính sách này sẽ kiểm soát việc kiểm tra URL trong thời gian thực để xác định các URL không an toàn.
@@ -6639,6 +6647,7 @@
 <translation id="8705895771006864851">Nếu bạn đặt chính sách này thành True, thì hệ thống sẽ cung cấp chức năng dịch (nếu phù hợp với người dùng) bằng cách hiển thị một thanh công cụ dịch tích hợp trong <ph name="PRODUCT_NAME" /> và một tùy chọn dịch trong trình đơn ngữ cảnh khi nhấp chuột phải. Nếu bạn đặt chính sách này thành False, thì mọi tính năng dịch tích hợp đều tắt.
 
       Nếu bạn đặt chính sách này, người dùng sẽ không thể thay đổi chức năng này. Nếu bạn không đặt chính sách này, thì người dùng có thể thay đổi tùy chọn cài đặt này.</translation>
+<translation id="8707790573162457301">Chạy chế độ tự động dọn dẹp ổ đĩa trong quá trình đăng nhập</translation>
 <translation id="8713535263782304771">Tắt tính năng Duyệt web an toàn</translation>
 <translation id="8715885991031124968">Cho phép các hộp thoại JavaScript được kích hoạt từ một khung phụ có nguồn gốc khác.</translation>
 <translation id="8720547069538712402">Cho phép người dùng bật hoặc tắt tùy chọn kiểm tra chính tả</translation>
diff --git a/components/send_tab_to_self/send_tab_to_self_bridge_unittest.cc b/components/send_tab_to_self/send_tab_to_self_bridge_unittest.cc
index f75ffe44..e4b84ef 100644
--- a/components/send_tab_to_self/send_tab_to_self_bridge_unittest.cc
+++ b/components/send_tab_to_self/send_tab_to_self_bridge_unittest.cc
@@ -17,10 +17,10 @@
 #include "components/send_tab_to_self/features.h"
 #include "components/send_tab_to_self/proto/send_tab_to_self.pb.h"
 #include "components/send_tab_to_self/target_device_info.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/model/entity_change.h"
 #include "components/sync/model/in_memory_metadata_change_list.h"
 #include "components/sync/model/metadata_batch.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/model_type_state.pb.h"
 #include "components/sync/test/model/mock_model_type_change_processor.h"
 #include "components/sync/test/model/model_type_store_test_util.h"
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index 3422c15..7e52028 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -480,6 +480,7 @@
 <translation id="2465655957518002998">Επιλογή τρόπου παράδοσης</translation>
 <translation id="2465688316154986572">Συρραφή</translation>
 <translation id="2465914000209955735">Διαχείριση των αρχείων που έχετε κατεβάσει στο Chrome.</translation>
+<translation id="2466004615675155314">Εμφάνιση πληροφοριών από τον ιστό</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />Να εκτελέσετε τον Διαγνωστικό έλεγχο δικτύου<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">Σειρά 1 προς N</translation>
 <translation id="2470767536994572628">Όταν επεξεργάζεστε σχολιασμούς, αυτό το έγγραφο θα επιστρέφει στην προβολή μίας σελίδας και στην αρχική του περιστροφή.</translation>
@@ -687,6 +688,7 @@
 <translation id="3197136577151645743">Μπορεί να ζητά να γνωρίζει πότε χρησιμοποιείτε ενεργά αυτήν τη συσκευή.</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />, πατήστε Tab και μετά Enter για να διαχειριστείτε τις πληροφορίες που συγχρονίζετε από τις ρυθμίσεις Chrome</translation>
 <translation id="320323717674993345">Ακύρωση πληρωμής</translation>
+<translation id="3203366800380907218">Από τον ιστό</translation>
 <translation id="3207960819495026254">Προστέθηκε στους σελιδοδείκτες</translation>
 <translation id="3209034400446768650">Η σελίδα ενδέχεται να σας χρεώσει</translation>
 <translation id="3212581601480735796">Η δραστηριότητά σας στο <ph name="HOSTNAME" /> παρακολουθείται</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index 34da9156..bc20f34 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -479,6 +479,7 @@
 <translation id="2465655957518002998">Valige kohaletoimetamisviis</translation>
 <translation id="2465688316154986572">Kirjaklamber</translation>
 <translation id="2465914000209955735">Chrome'is allalaaditud failide haldamine</translation>
+<translation id="2466004615675155314">Teabe kuvamine veebist</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />Võrgudiagnostika käitamine<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">Järjestus 1–N</translation>
 <translation id="2470767536994572628">Märkuste muutmisel naaseb see dokument ühe lehe vaatele ja algsesse asendisse</translation>
@@ -686,6 +687,7 @@
 <translation id="3197136577151645743">Saab küsida luba selle teadmiseks, millal seadet aktiivselt kasutate</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />, vajutage Chrome'i seadetes sünkroonitava teabe haldamiseks tabulaatorit ja seejärel sisestusklahvi</translation>
 <translation id="320323717674993345">Tühista makse</translation>
+<translation id="3203366800380907218">Veebist</translation>
 <translation id="3207960819495026254">Järjehoidjatesse lisatud</translation>
 <translation id="3209034400446768650">Leht võib võtta tasu</translation>
 <translation id="3212581601480735796">Teie tegevust seadmes <ph name="HOSTNAME" /> jälgitakse</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index 349552dc..bdf0c0bd 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -480,6 +480,7 @@
 <translation id="2465655957518002998">انتخاب روش ارسال</translation>
 <translation id="2465688316154986572">منگنه</translation>
 <translation id="2465914000209955735">‏مدیریت فایل‌هایی که در Chrome بارگیری کرده‌اید</translation>
+<translation id="2466004615675155314">نمایش اطلاعات برگرفته از وب</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />در حال اجرای عیب‌یابی شبکه<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">‏ترتیب ۱ تا N</translation>
 <translation id="2470767536994572628">وقتی یادداشت‌ها را ویرایش می‌کنید، این سند به نمای تک‌صفحه‌ای و وضعیت چرخش اصلی برمی‌گردد</translation>
@@ -687,6 +688,7 @@
 <translation id="3197136577151645743">می‌تواند درخواست کند که استفاده فعال شما از دستگاه به او اطلاع داده شود</translation>
 <translation id="3202497928925179914">‏<ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />، کلید «جهش» و سپس «ورود» را فشار دهید تا اطلاعاتی را که همگام‌سازی می‌کنید در تنظیمات Chrome مدیریت کنید</translation>
 <translation id="320323717674993345">لغو پرداخت</translation>
+<translation id="3203366800380907218">برگرفته از وب</translation>
 <translation id="3207960819495026254">نشانک‌گذاری شده</translation>
 <translation id="3209034400446768650">ممکن است این صفحه از شما هزینه کسر کند</translation>
 <translation id="3212581601480735796">بر فعالیت شما در <ph name="HOSTNAME" /> نظارت می‌شود</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb
index de5cd10..cbef2660 100644
--- a/components/strings/components_strings_fr-CA.xtb
+++ b/components/strings/components_strings_fr-CA.xtb
@@ -476,6 +476,7 @@
 <translation id="2465655957518002998">Choisir un mode de livraison</translation>
 <translation id="2465688316154986572">Agrafe</translation>
 <translation id="2465914000209955735">Gérez les fichiers que vous avez téléchargés dans Chrome</translation>
+<translation id="2466004615675155314">Afficher les informations provenant du Web</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />d'exécuter Network Diagnostics<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">Ordre 1 sur N</translation>
 <translation id="2470767536994572628">Lorsque vous modifiez des annotations, ce document s'affiche au format de vue par page, dans son orientation d'origine</translation>
@@ -683,6 +684,7 @@
 <translation id="3197136577151645743">Les sites peuvent demander à savoir quand vous utilisez activement cet appareil</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis sur Entrée pour gérer quelles données vous synchronisez dans les paramètres de Chrome</translation>
 <translation id="320323717674993345">Annuler le paiement</translation>
+<translation id="3203366800380907218">Du Web</translation>
 <translation id="3207960819495026254">Favori</translation>
 <translation id="3209034400446768650">Cette page peut exiger des frais</translation>
 <translation id="3212581601480735796">Votre activité sur <ph name="HOSTNAME" /> est surveillée</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index d5a3f762..b7356595d 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -209,6 +209,7 @@
 <translation id="1559572115229829303">&lt;p&gt;<ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> से निजी कनेक्‍शन जोड़ा नहीं जा सकता क्‍योंकि आपके डिवाइस की तारीख और समय (<ph name="DATE_AND_TIME" />) गलत है.&lt;/p&gt;
 
       &lt;p&gt;कृपया तारीख और समय को &lt;strong&gt;सेटिंग&lt;/strong&gt; ऐप्लिकेशन के &lt;strong&gt;सामान्‍य&lt;/strong&gt; सेक्शन से एडजस्‍ट करें.&lt;/p&gt;</translation>
+<translation id="156703335097561114">नेटवर्क से जुड़ी जानकारी जैसे कि पते, इंटरफ़ेस का कॉन्फ़िगरेशन, और कनेक्शन की क्वालिटी</translation>
 <translation id="1567040042588613346">यह नीति उम्मीद के मुताबिक काम कर रही है. हालांकि, किसी दूसरी जगह ऐसा ही मान सेट किया गया है और उसकी जगह इस नीति को लागू कर दिया गया है.</translation>
 <translation id="1569487616857761740">खत्म होने की तारीख डालें</translation>
 <translation id="1581080074034554886">CVC</translation>
@@ -703,6 +704,7 @@
 <translation id="3234666976984236645">इस साइट पर हमेशा महत्‍वपूर्ण सामग्री का पता लगाएं</translation>
 <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, अपने ब्राउज़र का लुक पसंद के मुताबिक बनाने के लिए, पहले Tab और फिर Enter दबाएं</translation>
 <translation id="3240791268468473923">मेल नहीं खाने वाले पेमेंट क्रेडेंशियल की शीट खुली है</translation>
+<translation id="324180406144491771">“<ph name="HOST_NAME" />” के लिंक ब्लॉक किए गए हैं</translation>
 <translation id="3249845759089040423">शानदार</translation>
 <translation id="3252266817569339921">फ़्रांसीसी</translation>
 <translation id="3257954757204451555">इस जानकारी के पीछे कौन है?</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index 747053a..bfdce69 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -480,6 +480,7 @@
 <translation id="2465655957518002998">Kézbesítési mód kiválasztása</translation>
 <translation id="2465688316154986572">Kapocs</translation>
 <translation id="2465914000209955735">Kezelheti a Chrome-ban letöltött fájlokat.</translation>
+<translation id="2466004615675155314">Az internetről származó információk megjelenítése</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />Hálózati diagnosztika futtatása<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">„1 az N-hez” sorrend</translation>
 <translation id="2470767536994572628">A jelölések szerkesztésekor a dokumentum visszaáll egyoldalas nézetbe és az eredeti tájolásba.</translation>
@@ -685,6 +686,7 @@
 <translation id="3197136577151645743">Engedélyt kérhet annak észlelésére, hogy Ön mikor használja aktívan az eszközt</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />. Nyomja le a Tab, majd az Enter billentyűt az adatok szinkronizálásának Chrome-beállítások közötti kezeléséhez.</translation>
 <translation id="320323717674993345">Fizetés visszavonása</translation>
+<translation id="3203366800380907218">Az internetről</translation>
 <translation id="3207960819495026254">Könyvjelző rögzítve</translation>
 <translation id="3209034400446768650">Az oldal díjat számíthat fel</translation>
 <translation id="3212581601480735796">Figyelik a(z) <ph name="HOSTNAME" /> webhelyen végzett tevékenységeit</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb
index 4a31fa8..9095c5a 100644
--- a/components/strings/components_strings_is.xtb
+++ b/components/strings/components_strings_is.xtb
@@ -480,6 +480,7 @@
 <translation id="2465655957518002998">Velja afhendingarmáta</translation>
 <translation id="2465688316154986572">Hefti</translation>
 <translation id="2465914000209955735">Stjórna skrám sem þú hefur sótt í Chrome</translation>
+<translation id="2466004615675155314">Birta upplýsingar af vefnum</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />Keyrir netgreiningu<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">Röðun 1 til N</translation>
 <translation id="2470767536994572628">Þegar þú breytir textaskýringum fer þetta skjal aftur í einnar síðu snið og upprunalega stöðu</translation>
@@ -687,6 +688,7 @@
 <translation id="3197136577151645743">Getur beðið um að fá að vita hvenær þú ert að nota tækið</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />, ýttu á dálkalykilinn (Tab) og svo „Enter“ til að opna stillingar Chrome og stjórna því hvaða upplýsingar þú samstillir</translation>
 <translation id="320323717674993345">Hætta við greiðslu</translation>
+<translation id="3203366800380907218">Af vefnum</translation>
 <translation id="3207960819495026254">Í bókamerkjum</translation>
 <translation id="3209034400446768650">Síðan kann að rukka gjald</translation>
 <translation id="3212581601480735796">Fylgst er með virkni þinni á <ph name="HOSTNAME" /></translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index 49b10b1..6eed07a9 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -480,6 +480,7 @@
 <translation id="2465655957518002998">Scegli il metodo di consegna</translation>
 <translation id="2465688316154986572">Pinzatura</translation>
 <translation id="2465914000209955735">Gestisci i file che hai scaricato in Chrome</translation>
+<translation id="2466004615675155314">Mostra informazioni dal Web</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />Eseguire lo strumento Diagnostica di rete<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">Ordine da 1 a N</translation>
 <translation id="2470767536994572628">Quando modifichi le annotazioni, questo documento torna alla visualizzazione a pagina singola e alla sua rotazione originale</translation>
@@ -684,6 +685,7 @@
 <translation id="3197136577151645743">Può chiedere di sapere quando stai utilizzando attivamente questo dispositivo</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />, premi Tab e poi Invio per gestire le informazioni da sincronizzare nelle impostazioni di Chrome</translation>
 <translation id="320323717674993345">Annulla pagamento</translation>
+<translation id="3203366800380907218">Dal Web</translation>
 <translation id="3207960819495026254">Aggiunto ai preferiti</translation>
 <translation id="3209034400446768650">La pagina potrebbe addebitare denaro</translation>
 <translation id="3212581601480735796">La tua attività su <ph name="HOSTNAME" /> è monitorata</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index a50f45c..ff32e2bd 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -478,6 +478,7 @@
 <translation id="2465655957518002998">ವಿತರಣೆ ವಿಧಾನವನ್ನು ಆರಿಸಿ</translation>
 <translation id="2465688316154986572">ಸ್ಟೇಪಲ್ ಮಾಡಿ</translation>
 <translation id="2465914000209955735">ನೀವು Chrome ನಲ್ಲಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಫೈಲ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
+<translation id="2466004615675155314">ವೆಬ್‌ನಿಂದ ಇನ್ನಷ್ಟು ಮಾಹಿತಿಯನ್ನು ತೋರಿಸಿ</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />ನೆಟ್‌ವರ್ಕ್ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ಸ್‌ ರನ್ ಆಗುತ್ತಿದೆ<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">1-ಇಂದ-N ಆರ್ಡರ್</translation>
 <translation id="2470767536994572628">ನೀವು ಟಿಪ್ಪಣಿಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಿದಾಗ, ಈ ಡಾಕ್ಯುಮೆಂಟ್ ಒಂದೇ ಪುಟದ ವೀಕ್ಷಣೆಗೆ ಮತ್ತು ತನ್ನ ಮೂಲ ರೊಟೇಶನ್ ಸ್ಥಾನಕ್ಕೆ ಮರಳುತ್ತದೆ</translation>
@@ -683,6 +684,7 @@
 <translation id="3197136577151645743">ನೀವು ಈ ಸಾಧನವನ್ನು ಸಕ್ರಿಯವಾಗಿ ಬಳಸುತ್ತಿರುವಾಗ ತಿಳಿದುಕೊಳ್ಳಲು ಕೇಳಬಹುದು</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ನೀವು ಯಾವ ಮಾಹಿತಿಯನ್ನು ಸಿಂಕ್ ಮಾಡುತ್ತೀರಿ ಎಂಬುದನ್ನು ನಿರ್ವಹಿಸಲು Tab ಒತ್ತಿ, ನಂತರ Enter ಒತ್ತಿ</translation>
 <translation id="320323717674993345">ಪಾವತಿಯನ್ನು ರದ್ದುಮಾಡಿ</translation>
+<translation id="3203366800380907218">ವೆಬ್‌ನಿಂದ</translation>
 <translation id="3207960819495026254">ಬುಕ್‌ಮಾರ್ಕ್‌ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="3209034400446768650">ಈ ಪುಟವು, ಶುಲ್ಕ ವಿಧಿಸಬಹುದು</translation>
 <translation id="3212581601480735796"><ph name="HOSTNAME" /> ನಲ್ಲಿ ನಿಮ್ಮ ಚಟುವಟಿಕೆಯ ಮೇಲೆ ನಿಗಾ ಇಡಲಾಗುತ್ತಿದೆ</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index 5d96662..433f047 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -476,6 +476,7 @@
 <translation id="2465655957518002998">배달 방법 선택</translation>
 <translation id="2465688316154986572">스테이플</translation>
 <translation id="2465914000209955735">Chrome에서 다운로드한 파일 관리</translation>
+<translation id="2466004615675155314">웹에서 찾은 정보 표시</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />네트워크 진단 프로그램 실행<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">1-to-N 순서</translation>
 <translation id="2470767536994572628">주석을 수정하면 문서가 원래 방향의 단일 페이지 뷰로 돌아갑니다.</translation>
@@ -683,6 +684,7 @@
 <translation id="3197136577151645743">사용자가 현재 이 기기를 사용 중인지 확인을 요청할 수 있음</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab을 누른 다음 Enter를 눌러 Chrome 설정에서 내가 동기화하는 정보 관리</translation>
 <translation id="320323717674993345">결제 취소</translation>
+<translation id="3203366800380907218">웹에서 찾은 정보</translation>
 <translation id="3207960819495026254">북마크에 추가됨</translation>
 <translation id="3209034400446768650">페이지에서 요금을 청구할 수 있음</translation>
 <translation id="3212581601480735796"><ph name="HOSTNAME" />에서의 활동이 모니터링되고 있음</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index 61281893..e0ad772d 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -480,6 +480,7 @@
 <translation id="2465655957518002998">Pasirinkti pristatymo metodą</translation>
 <translation id="2465688316154986572">Susegimas sankabėlėmis</translation>
 <translation id="2465914000209955735">Tvarkykite failus, kuriuos atsisiuntėte naršyklėje „Chrome“</translation>
+<translation id="2466004615675155314">Rodyti informaciją iš žiniatinklio</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />Paleistas įrankis „Windows Network Diagnostics“<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">Tvarka: nuo 1 iki N</translation>
 <translation id="2470767536994572628">Kai redaguosite komentarus, bus pateikta šio dokumento vieno puslapio peržiūra arba pradinis pasukimas</translation>
@@ -688,6 +689,7 @@
 <translation id="3197136577151645743">Gali būti prašoma leisti sužinoti, kada aktyviai naudojate įrenginį</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />; paspauskite tabuliavimo klavišą, tada „Enter“, jei norite tvarkyti sinchronizuojamą informaciją „Chrome“ nustatymuose</translation>
 <translation id="320323717674993345">Atšaukti mokėjimą</translation>
+<translation id="3203366800380907218">Iš žiniatinklio</translation>
 <translation id="3207960819495026254">Pažymėta</translation>
 <translation id="3209034400446768650">Puslapyje galite būti apmokestinti</translation>
 <translation id="3212581601480735796">Jūsų veikla <ph name="HOSTNAME" /> stebima</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb
index 59e8d232..a075d93 100644
--- a/components/strings/components_strings_mn.xtb
+++ b/components/strings/components_strings_mn.xtb
@@ -209,6 +209,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Таны төхөөрөмжийн огноо, цаг (<ph name="DATE_AND_TIME" /> буруу байгаагаас <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />-н хувийн холболтыг үүсгэж чадахгүй байна.&lt;/p&gt;
 
       &lt;p&gt;Та &lt;strong&gt;Settings&lt;/strong&gt; апп-ын &lt;strong&gt;General&lt;/strong&gt; хэсэгт огноо, цагийг өөрчлөнө үү.&lt;/p&gt;</translation>
+<translation id="156703335097561114">Хаяг, харагдах байдлын тохиргоо, холболтын чанар зэрэг сүлжээний мэдээлэл</translation>
 <translation id="1567040042588613346">Энэ бодлого нь хэвийн ажиллаж байгаа хэдий ч ижил утгыг өөр газар тохируулсан бөгөөд энэ бодлогоор хүчингүй болгосон байна.</translation>
 <translation id="1569487616857761740">Дуусах огноог оруулна уу</translation>
 <translation id="1581080074034554886">CVC</translation>
@@ -706,6 +707,7 @@
 <translation id="3234666976984236645">Чухал агуулга бүхий мэдээллийг үргэлж илрүүлэх</translation>
 <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, Хөтчийнхөө харагдах байдлыг өөрчлөхийн тулд tab, дараа нь Enter дээр дарна уу</translation>
 <translation id="3240791268468473923">Тохирох мандат үнэмлэхгүй аюулгүй төлбөрийн мандат үнэмлэхийн хүснэгтийг нээсэн</translation>
+<translation id="324180406144491771">“<ph name="HOST_NAME" />” холбоосууд блоклосон байна</translation>
 <translation id="3249845759089040423">Дэгжин</translation>
 <translation id="3252266817569339921">Франц</translation>
 <translation id="3257954757204451555">Энэ мэдээллийн ард хэн байгаа вэ?</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index 7b2e8c3..c7bcbcb 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -476,6 +476,7 @@
 <translation id="2465655957518002998">Выбрать способ доставки</translation>
 <translation id="2465688316154986572">Скоба</translation>
 <translation id="2465914000209955735">Управлять скачанными файлами в Chrome</translation>
+<translation id="2466004615675155314">Показывать информацию из интернета</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />Выполните диагностику сети<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">В порядке от 1 до N</translation>
 <translation id="2470767536994572628">При редактировании заметок документ вернется в одностраничный режим и исходную ориентацию.</translation>
@@ -682,6 +683,7 @@
 <translation id="3197136577151645743">Разрешено запрашивать информацию об использовании устройства</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />. Нажмите Tab, а затем – Ввод, чтобы открыть настройки Chrome и указать, какая информация должна синхронизироваться.</translation>
 <translation id="320323717674993345">Отменить оплату</translation>
+<translation id="3203366800380907218">Из интернета</translation>
 <translation id="3207960819495026254">Добавлено в закладки.</translation>
 <translation id="3209034400446768650">На этой странице может взиматься плата</translation>
 <translation id="3212581601480735796">Ваши действия на сайте <ph name="HOSTNAME" /> отслеживаются</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index 14bbcef..7a5a70f 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -480,6 +480,7 @@
 <translation id="2465655957518002998">Izbira načina dostave</translation>
 <translation id="2465688316154986572">Spenjanje</translation>
 <translation id="2465914000209955735">Upravljanje datotek, ki ste jih prenesli v Chromu</translation>
+<translation id="2466004615675155314">Prikaz informacij iz spleta</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />Izvajanje orodja za omrežno diagnostiko<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">Vrstni red 1–N</translation>
 <translation id="2470767536994572628">Če boste urejali pripise, se bo ta dokument vrnil v pogled ene strani in prvotno stanje vrtenja.</translation>
@@ -687,6 +688,7 @@
 <translation id="3197136577151645743">Lahko zahteva, da izve, kdaj aktivno uporabljate napravo.</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite tabulatorko, nato Enter, če želite upravljati, kateri podatki se sinhronizirajo v Chromovih nastavitvah.</translation>
 <translation id="320323717674993345">Prekliči plačilo</translation>
+<translation id="3203366800380907218">Iz spleta</translation>
 <translation id="3207960819495026254">Dodano med zaznamke</translation>
 <translation id="3209034400446768650">Stran morda zaračunava</translation>
 <translation id="3212581601480735796">Vaša dejavnost v gostitelju <ph name="HOSTNAME" /> je nadzorovana</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index d7265a9..72b3495 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -479,6 +479,7 @@
 <translation id="2465655957518002998">Chagua Njia ya Kusafirisha</translation>
 <translation id="2465688316154986572">Bana</translation>
 <translation id="2465914000209955735">Dhibiti faili ulizozipakua katika Chrome</translation>
+<translation id="2466004615675155314">Onyesha maelezo kutoka kwenye wavuti</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />Inaendesha Zana ya Kuchunguza Mtandao<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">Mpangilio wa moja hadi N</translation>
 <translation id="2470767536994572628">Ukibadilisha vidokezo, hati hii itarejea kwenye mwonekano wa ukurasa mmoja na mzunguko wake wa asili</translation>
@@ -686,6 +687,7 @@
 <translation id="3197136577151645743">Inaweza kuomba ruhusa ya kujua wakati unatumia kifaa hiki</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />, bonyeza 'Tab' kisha 'Enter' ili udhibiti maelezo unayosawazisha katika mipangilio ya Chrome</translation>
 <translation id="320323717674993345">Ghairi Malipo</translation>
+<translation id="3203366800380907218">Kutoka kwenye wavuti</translation>
 <translation id="3207960819495026254">Imealamishwa</translation>
 <translation id="3209034400446768650">Huenda ukurasa ukakutoza</translation>
 <translation id="3212581601480735796">Shughuli zako kwenye <ph name="HOSTNAME" /> zinafuatiliwa</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index 18587b2..0f34254 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -480,6 +480,7 @@
 <translation id="2465655957518002998">டெலிவரி முறையைத் தேர்வு செய்</translation>
 <translation id="2465688316154986572">ஸ்டேப்பில்</translation>
 <translation id="2465914000209955735">Chromeமில் நீங்கள் பதிவிறக்கிய ஃபைல்களை நிர்வகிக்கலாம்</translation>
+<translation id="2466004615675155314">இணையத்தில் இருந்து தகவல்களைக் காட்டும்</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />நெட்வொர்க் டயக்னாஸ்டிக்ஸ் கருவியை இயக்கவும்<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">முன்னோக்கிய வரிசை</translation>
 <translation id="2470767536994572628">விரிவுரைகளைத் திருத்தினால் இந்த ஆவணம் ஒற்றைப் பக்கக்காட்சிக்கும் தனது அசல் நிலைக்கும் மாறும்</translation>
@@ -684,6 +685,7 @@
 <translation id="3197136577151645743">இந்தச் சாதனத்தில் நான் செயலில் இருப்பதை அறிந்துகொள்ள அனுமதி கேட்க வேண்டும்</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />. எந்தெந்தத் தகவல்களை ஒத்திசைக்க வேண்டும் என்பதை Chrome அமைப்புகளில் நிர்வகிக்க, Tab விசையை அழுத்திவிட்டு Enter விசையை அழுத்துங்கள்</translation>
 <translation id="320323717674993345">கட்டணம் செலுத்துவதை ரத்துசெய்</translation>
+<translation id="3203366800380907218">இணையத்தில் இருந்து</translation>
 <translation id="3207960819495026254">புக்மார்க் செய்யப்பட்டது</translation>
 <translation id="3209034400446768650">இந்தப் பக்கத்திற்குச் சென்றால் கட்டணம் விதிக்கக்கூடும்</translation>
 <translation id="3212581601480735796"><ph name="HOSTNAME" /> இல் உங்கள் செயல்பாடு கண்காணிக்கப்படுகிறது</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index 83fcec7..25a1c7e 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -480,6 +480,7 @@
 <translation id="2465655957518002998">Вибрати спосіб доставки</translation>
 <translation id="2465688316154986572">Скріпити</translation>
 <translation id="2465914000209955735">Керувати завантаженими файлами в Chrome</translation>
+<translation id="2466004615675155314">Показати інформацію з Інтернету</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />провести діагностику мережі<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">Порядок від 1 до N</translation>
 <translation id="2470767536994572628">Коли ви редагуєте примітки, документ переходить у режим перегляду по одній сторінці, а також відновлюється його початкова орієнтація</translation>
@@ -687,6 +688,7 @@
 <translation id="3197136577151645743">Може запитувати, чи ви активно використовуєте цей пристрій</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />; натисніть Tab, а потім – Enter, щоб вибрати в налаштуваннях Chrome, яку інформацію синхронізувати</translation>
 <translation id="320323717674993345">Скасувати оплату</translation>
+<translation id="3203366800380907218">З Інтернету</translation>
 <translation id="3207960819495026254">Створено закладку</translation>
 <translation id="3209034400446768650">На сторінці може стягуватися плата</translation>
 <translation id="3212581601480735796">Ваші дії на сайті <ph name="HOSTNAME" /> відстежуються</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 7a296678..97dbd78d 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -1243,7 +1243,7 @@
 <translation id="4877083676943085827">{COUNT,plural, =0{Không có}=1{<ph name="EXAMPLE_DOMAIN_1" />}=2{<ph name="EXAMPLE_DOMAIN_1" />, <ph name="EXAMPLE_DOMAIN_2" />}other{<ph name="EXAMPLE_DOMAIN_1" />, <ph name="EXAMPLE_DOMAIN_2" />, <ph name="AND_MORE" />}}</translation>
 <translation id="4877422487531841831">Cụm từ tìm kiếm <ph name="TEXT" /></translation>
 <translation id="4879491255372875719">Tự động (mặc định)</translation>
-<translation id="4880827082731008257">Lịch sử tìm kiếm</translation>
+<translation id="4880827082731008257">Nhật ký tìm kiếm</translation>
 <translation id="4881695831933465202">Mở</translation>
 <translation id="4885256590493466218">Thanh toán bằng <ph name="CARD_DETAIL" /> khi thanh toán</translation>
 <translation id="4889420713887366944">Nút Mở cửa sổ ẩn danh, nhấn phím Enter để mở cửa sổ Ẩn danh mới nhằm duyệt web ở chế độ riêng tư</translation>
@@ -1559,7 +1559,7 @@
 <translation id="5951495562196540101">Không thể đăng ký bằng tài khoản người dùng thông thường (có sẵn giấy phép theo gói).</translation>
 <translation id="5963413905009737549">Phần</translation>
 <translation id="5967592137238574583">Chỉnh sửa thông tin liên hệ</translation>
-<translation id="5967867314010545767">Xóa khỏi lịch sử</translation>
+<translation id="5967867314010545767">Xoá khỏi nhật ký</translation>
 <translation id="5968793460449681917">Vào mỗi lần truy cập</translation>
 <translation id="5974052231147553524">Cuộn thứ sáu</translation>
 <translation id="5975083100439434680">Thu nhỏ</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb
index ca472f7..8c35c8a 100644
--- a/components/strings/components_strings_zu.xtb
+++ b/components/strings/components_strings_zu.xtb
@@ -480,6 +480,7 @@
 <translation id="2465655957518002998">Khetha indlela yokulethwa</translation>
 <translation id="2465688316154986572">Ukunamathisela</translation>
 <translation id="2465914000209955735">Phatha amafayela owadawunilode ku-Chrome</translation>
+<translation id="2466004615675155314">Bonisa ulwazi olusuka kuwebhu</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />Iqalisa ukuxilongwa kwenethiwekhi<ph name="END_LINK" /></translation>
 <translation id="2469153820345007638">1-ukuya ku-oda elingu-N</translation>
 <translation id="2470767536994572628">Lapho uhlela izichasiselo, le dokhumenti izobuyela ekuhloleni ikhasi kuqala okukodwa nasekuzungeziseni kwayo kokwangempela</translation>
@@ -685,6 +686,7 @@
 <translation id="3197136577151645743">Ingase icele ukwazi lapho usebenzisa le divayisi</translation>
 <translation id="3202497928925179914"><ph name="MANAGE_SYNC_FOCUSED_FRIENDLY_MATCH_TEXT" />, cindezela u-Tab bese no-Enter ukuze uphathe ukuthi yiluphi ulwazi olivumelanisa kumasethingi we-Chrome</translation>
 <translation id="320323717674993345">Khansela inkokhelo</translation>
+<translation id="3203366800380907218">Kusuka kuwebhu</translation>
 <translation id="3207960819495026254">Kubekwe uphawu lokubekisa</translation>
 <translation id="3209034400446768650">Ikhasi lingakhokhisa imali</translation>
 <translation id="3212581601480735796">Umsebenzi wakho ku-<ph name="HOSTNAME" /> ugadiwe</translation>
diff --git a/components/sync/BUILD.gn b/components/sync/BUILD.gn
index 74cee704..7515ddd 100644
--- a/components/sync/BUILD.gn
+++ b/components/sync/BUILD.gn
@@ -163,7 +163,6 @@
     "engine/cycle/status_controller_unittest.cc",
     "engine/cycle/sync_cycle_snapshot_unittest.cc",
     "engine/debug_info_event_listener_unittest.cc",
-    "engine/entity_data_unittest.cc",
     "engine/events/protocol_event_buffer_unittest.cc",
     "engine/get_updates_processor_unittest.cc",
     "engine/loopback_server/loopback_server_unittest.cc",
@@ -203,6 +202,7 @@
     "nigori/nigori_storage_impl_unittest.cc",
     "nigori/nigori_sync_bridge_impl_unittest.cc",
     "nigori/nigori_unittest.cc",
+    "protocol/entity_data_unittest.cc",
     "protocol/proto_enum_conversions_unittest.cc",
     "protocol/proto_value_conversions_unittest.cc",
   ]
diff --git a/components/sync/engine/BUILD.gn b/components/sync/engine/BUILD.gn
index 1ede4ff..ecc5c48 100644
--- a/components/sync/engine/BUILD.gn
+++ b/components/sync/engine/BUILD.gn
@@ -54,8 +54,6 @@
     "engine_components_factory.h",
     "engine_components_factory_impl.cc",
     "engine_components_factory_impl.h",
-    "entity_data.cc",
-    "entity_data.h",
     "events/commit_request_event.cc",
     "events/commit_request_event.h",
     "events/commit_response_event.cc",
diff --git a/components/sync/engine/bookmark_update_preprocessing_unittest.cc b/components/sync/engine/bookmark_update_preprocessing_unittest.cc
index 86b20719..0ec6632 100644
--- a/components/sync/engine/bookmark_update_preprocessing_unittest.cc
+++ b/components/sync/engine/bookmark_update_preprocessing_unittest.cc
@@ -9,8 +9,8 @@
 #include "base/guid.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "components/sync/base/unique_position.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/protocol/bookmark_specifics.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync/protocol/sync_entity.pb.h"
 #include "components/sync/protocol/unique_position.pb.h"
diff --git a/components/sync/engine/commit_and_get_updates_types.h b/components/sync/engine/commit_and_get_updates_types.h
index 4925bd1..96b3daa1 100644
--- a/components/sync/engine/commit_and_get_updates_types.h
+++ b/components/sync/engine/commit_and_get_updates_types.h
@@ -13,7 +13,7 @@
 
 #include "base/time/time.h"
 #include "components/sync/base/client_tag_hash.h"
-#include "components/sync/engine/entity_data.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/sync.pb.h"
 
 namespace syncer {
diff --git a/components/sync/model/client_tag_based_model_type_processor.cc b/components/sync/model/client_tag_based_model_type_processor.cc
index e3ee59c..4ddcbed 100644
--- a/components/sync/model/client_tag_based_model_type_processor.cc
+++ b/components/sync/model/client_tag_based_model_type_processor.cc
@@ -21,13 +21,13 @@
 #include "components/sync/base/time.h"
 #include "components/sync/engine/commit_queue.h"
 #include "components/sync/engine/data_type_activation_response.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/engine/model_type_processor_metrics.h"
 #include "components/sync/engine/model_type_processor_proxy.h"
 #include "components/sync/model/client_tag_based_remote_update_handler.h"
 #include "components/sync/model/model_type_change_processor.h"
 #include "components/sync/model/processor_entity.h"
 #include "components/sync/model/type_entities_count.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_metadata.pb.h"
 #include "components/sync/protocol/model_type_state.pb.h"
 #include "components/sync/protocol/proto_value_conversions.h"
diff --git a/components/sync/model/entity_change.h b/components/sync/model/entity_change.h
index 138163a..dc8a99a 100644
--- a/components/sync/model/entity_change.h
+++ b/components/sync/model/entity_change.h
@@ -9,7 +9,7 @@
 #include <string>
 #include <vector>
 
-#include "components/sync/engine/entity_data.h"
+#include "components/sync/protocol/entity_data.h"
 
 namespace syncer {
 
diff --git a/components/sync/model/mutable_data_batch.cc b/components/sync/model/mutable_data_batch.cc
index d3dce26..63a45a25 100644
--- a/components/sync/model/mutable_data_batch.cc
+++ b/components/sync/model/mutable_data_batch.cc
@@ -4,7 +4,7 @@
 
 #include "components/sync/model/mutable_data_batch.h"
 #include "base/check.h"
-#include "components/sync/engine/entity_data.h"
+#include "components/sync/protocol/entity_data.h"
 
 namespace syncer {
 
diff --git a/components/sync/model/mutable_data_batch_unittest.cc b/components/sync/model/mutable_data_batch_unittest.cc
index 31935b6e..92d4c9ab 100644
--- a/components/sync/model/mutable_data_batch_unittest.cc
+++ b/components/sync/model/mutable_data_batch_unittest.cc
@@ -5,7 +5,7 @@
 #include "components/sync/model/mutable_data_batch.h"
 
 #include "base/memory/ptr_util.h"
-#include "components/sync/engine/entity_data.h"
+#include "components/sync/protocol/entity_data.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace syncer {
diff --git a/components/sync/model/processor_entity.cc b/components/sync/model/processor_entity.cc
index 60530ccc..1d0bb3a 100644
--- a/components/sync/model/processor_entity.cc
+++ b/components/sync/model/processor_entity.cc
@@ -14,7 +14,7 @@
 #include "components/sync/base/client_tag_hash.h"
 #include "components/sync/base/time.h"
 #include "components/sync/engine/commit_and_get_updates_types.h"
-#include "components/sync/engine/entity_data.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync/protocol/proto_memory_estimations.h"
 
diff --git a/components/sync/nigori/nigori_sync_bridge_impl.cc b/components/sync/nigori/nigori_sync_bridge_impl.cc
index 5d29585b..6824f2a 100644
--- a/components/sync/nigori/nigori_sync_bridge_impl.cc
+++ b/components/sync/nigori/nigori_sync_bridge_impl.cc
@@ -16,12 +16,12 @@
 #include "components/os_crypt/os_crypt.h"
 #include "components/sync/base/passphrase_enums.h"
 #include "components/sync/base/time.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/engine/nigori/nigori.h"
 #include "components/sync/nigori/keystore_keys_cryptographer.h"
 #include "components/sync/nigori/nigori_storage.h"
 #include "components/sync/nigori/pending_local_nigori_commit.h"
 #include "components/sync/protocol/encryption.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/nigori_local_data.pb.h"
 
 namespace syncer {
diff --git a/components/sync/nigori/nigori_sync_bridge_impl_unittest.cc b/components/sync/nigori/nigori_sync_bridge_impl_unittest.cc
index 6b322bc..5cf0f67 100644
--- a/components/sync/nigori/nigori_sync_bridge_impl_unittest.cc
+++ b/components/sync/nigori/nigori_sync_bridge_impl_unittest.cc
@@ -13,13 +13,13 @@
 #include "base/test/scoped_feature_list.h"
 #include "components/os_crypt/os_crypt_mocker.h"
 #include "components/sync/base/time.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/engine/nigori/key_derivation_params.h"
 #include "components/sync/engine/sync_engine_switches.h"
 #include "components/sync/nigori/keystore_keys_cryptographer.h"
 #include "components/sync/nigori/nigori_state.h"
 #include "components/sync/nigori/nigori_storage.h"
 #include "components/sync/nigori/nigori_test_utils.h"
+#include "components/sync/protocol/entity_data.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/components/sync/protocol/BUILD.gn b/components/sync/protocol/BUILD.gn
index 64fd708..795d9bb4 100644
--- a/components/sync/protocol/BUILD.gn
+++ b/components/sync/protocol/BUILD.gn
@@ -17,6 +17,8 @@
 # together with the "protocol" target and simplify things.
 static_library("util") {
   sources = [
+    "entity_data.cc",
+    "entity_data.h",
     "proto_enum_conversions.cc",
     "proto_enum_conversions.h",
     "proto_memory_estimations.cc",
diff --git a/components/sync/engine/entity_data.cc b/components/sync/protocol/entity_data.cc
similarity index 98%
rename from components/sync/engine/entity_data.cc
rename to components/sync/protocol/entity_data.cc
index 39033914..2f8d01223 100644
--- a/components/sync/engine/entity_data.cc
+++ b/components/sync/protocol/entity_data.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 "components/sync/engine/entity_data.h"
+#include "components/sync/protocol/entity_data.h"
 
 #include <ostream>
 #include <utility>
diff --git a/components/sync/engine/entity_data.h b/components/sync/protocol/entity_data.h
similarity index 90%
rename from components/sync/engine/entity_data.h
rename to components/sync/protocol/entity_data.h
index 1f235203..cfd5d4f2 100644
--- a/components/sync/engine/entity_data.h
+++ b/components/sync/protocol/entity_data.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 COMPONENTS_SYNC_ENGINE_ENTITY_DATA_H_
-#define COMPONENTS_SYNC_ENGINE_ENTITY_DATA_H_
+#ifndef COMPONENTS_SYNC_PROTOCOL_ENTITY_DATA_H_
+#define COMPONENTS_SYNC_PROTOCOL_ENTITY_DATA_H_
 
 #include <iosfwd>
 #include <memory>
@@ -13,11 +13,6 @@
 #include "components/sync/base/client_tag_hash.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 
-// TODO(crbug.com/947443): Code outside components/sync depends on this file
-// to implement new datatypes, so components/sync/engine can't be hidden while
-// this file lives there. Consider moving to components/sync/protocol or
-// elsewhere.
-
 namespace base {
 class DictionaryValue;
 }
@@ -106,4 +101,4 @@
 
 }  // namespace syncer
 
-#endif  // COMPONENTS_SYNC_ENGINE_ENTITY_DATA_H_
+#endif  // COMPONENTS_SYNC_PROTOCOL_ENTITY_DATA_H_
diff --git a/components/sync/engine/entity_data_unittest.cc b/components/sync/protocol/entity_data_unittest.cc
similarity index 92%
rename from components/sync/engine/entity_data_unittest.cc
rename to components/sync/protocol/entity_data_unittest.cc
index b66b86c..cf34660 100644
--- a/components/sync/engine/entity_data_unittest.cc
+++ b/components/sync/protocol/entity_data_unittest.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 "components/sync/engine/entity_data.h"
+#include "components/sync/protocol/entity_data.h"
 
 #include "components/sync/base/model_type.h"
 #include "components/sync/base/unique_position.h"
diff --git a/components/sync/test/model/fake_model_type_sync_bridge.cc b/components/sync/test/model/fake_model_type_sync_bridge.cc
index af893ee8f..16c7bb2e 100644
--- a/components/sync/test/model/fake_model_type_sync_bridge.cc
+++ b/components/sync/test/model/fake_model_type_sync_bridge.cc
@@ -13,11 +13,11 @@
 #include "base/memory/raw_ptr.h"
 #include "base/strings/string_number_conversions.h"
 #include "components/sync/base/client_tag_hash.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/model/conflict_resolution.h"
 #include "components/sync/model/in_memory_metadata_change_list.h"
 #include "components/sync/model/model_type_store.h"
 #include "components/sync/model/mutable_data_batch.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_metadata.pb.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync/protocol/model_type_state.pb.h"
diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc
index 1250a1d..5f247029 100644
--- a/components/sync_bookmarks/bookmark_specifics_conversions.cc
+++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc
@@ -23,8 +23,8 @@
 #include "components/bookmarks/browser/bookmark_node.h"
 #include "components/favicon/core/favicon_service.h"
 #include "components/sync/base/unique_position.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/protocol/bookmark_specifics.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync_bookmarks/switches.h"
 #include "components/sync_bookmarks/synced_bookmark_tracker.h"
diff --git a/components/sync_bookmarks/bookmark_specifics_conversions_unittest.cc b/components/sync_bookmarks/bookmark_specifics_conversions_unittest.cc
index b94c3618..ef33e23 100644
--- a/components/sync_bookmarks/bookmark_specifics_conversions_unittest.cc
+++ b/components/sync_bookmarks/bookmark_specifics_conversions_unittest.cc
@@ -20,8 +20,8 @@
 #include "components/sync/base/client_tag_hash.h"
 #include "components/sync/base/unique_position.h"
 #include "components/sync/driver/sync_driver_switches.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/protocol/bookmark_specifics.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync/protocol/model_type_state.pb.h"
 #include "components/sync_bookmarks/synced_bookmark_tracker.h"
diff --git a/components/sync_bookmarks/parent_guid_preprocessing_unittest.cc b/components/sync_bookmarks/parent_guid_preprocessing_unittest.cc
index c5ef601..9dceca34 100644
--- a/components/sync_bookmarks/parent_guid_preprocessing_unittest.cc
+++ b/components/sync_bookmarks/parent_guid_preprocessing_unittest.cc
@@ -10,8 +10,8 @@
 #include "components/bookmarks/browser/bookmark_model.h"
 #include "components/bookmarks/browser/bookmark_node.h"
 #include "components/bookmarks/test/test_bookmark_client.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/protocol/bookmark_specifics.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync/protocol/model_type_state.pb.h"
 #include "components/sync_bookmarks/synced_bookmark_tracker.h"
diff --git a/components/sync_bookmarks/synced_bookmark_tracker.cc b/components/sync_bookmarks/synced_bookmark_tracker.cc
index e7cbbea0..6a7fdc9 100644
--- a/components/sync_bookmarks/synced_bookmark_tracker.cc
+++ b/components/sync_bookmarks/synced_bookmark_tracker.cc
@@ -20,8 +20,8 @@
 #include "components/bookmarks/browser/bookmark_model.h"
 #include "components/bookmarks/browser/bookmark_node.h"
 #include "components/sync/base/time.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/protocol/bookmark_model_metadata.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync/protocol/proto_memory_estimations.h"
 #include "components/sync/protocol/unique_position.pb.h"
diff --git a/components/sync_bookmarks/synced_bookmark_tracker_unittest.cc b/components/sync_bookmarks/synced_bookmark_tracker_unittest.cc
index 8f46e61..03ba705b 100644
--- a/components/sync_bookmarks/synced_bookmark_tracker_unittest.cc
+++ b/components/sync_bookmarks/synced_bookmark_tracker_unittest.cc
@@ -16,8 +16,8 @@
 #include "components/sync/base/client_tag_hash.h"
 #include "components/sync/base/time.h"
 #include "components/sync/base/unique_position.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/protocol/bookmark_model_metadata.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync/protocol/model_type_state.pb.h"
 #include "components/sync_bookmarks/switches.h"
diff --git a/components/sync_device_info/DEPS b/components/sync_device_info/DEPS
index e39095dc..d016c1f 100644
--- a/components/sync_device_info/DEPS
+++ b/components/sync_device_info/DEPS
@@ -7,7 +7,6 @@
   "+components/sync/base",
   "+components/sync/invalidations",
   "+components/sync/model",
-  "+components/sync/engine/entity_data.h",
   "+components/sync/protocol",
   "+components/sync/test",
   "+components/version_info",
diff --git a/components/sync_device_info/device_info_sync_bridge_unittest.cc b/components/sync_device_info/device_info_sync_bridge_unittest.cc
index 627fe413..fae38e4 100644
--- a/components/sync_device_info/device_info_sync_bridge_unittest.cc
+++ b/components/sync_device_info/device_info_sync_bridge_unittest.cc
@@ -23,12 +23,12 @@
 #include "components/prefs/testing_pref_service.h"
 #include "components/sync/base/model_type.h"
 #include "components/sync/base/time.h"
-#include "components/sync/engine/entity_data.h"
 #include "components/sync/model/data_batch.h"
 #include "components/sync/model/data_type_activation_request.h"
 #include "components/sync/model/entity_change.h"
 #include "components/sync/model/metadata_batch.h"
 #include "components/sync/protocol/device_info_specifics.pb.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync/protocol/model_type_state.pb.h"
 #include "components/sync/protocol/sync_enums.pb.h"
diff --git a/components/sync_sessions/session_store_unittest.cc b/components/sync_sessions/session_store_unittest.cc
index 2a1982f7..b23fee7 100644
--- a/components/sync_sessions/session_store_unittest.cc
+++ b/components/sync_sessions/session_store_unittest.cc
@@ -16,7 +16,7 @@
 #include "base/test/task_environment.h"
 #include "components/prefs/testing_pref_service.h"
 #include "components/sync/base/hash_util.h"
-#include "components/sync/engine/entity_data.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/session_specifics.pb.h"
 #include "components/sync/test/model/model_type_store_test_util.h"
 #include "components/sync/test/model/test_matchers.h"
diff --git a/components/sync_sessions/test_matchers.cc b/components/sync_sessions/test_matchers.cc
index 0fba3eb..43ffa3d 100644
--- a/components/sync_sessions/test_matchers.cc
+++ b/components/sync_sessions/test_matchers.cc
@@ -5,7 +5,7 @@
 #include "components/sync_sessions/test_matchers.h"
 
 #include "components/sessions/core/session_id.h"
-#include "components/sync/engine/entity_data.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/session_specifics.pb.h"
 #include "components/sync_sessions/synced_session.h"
 
diff --git a/components/test/data/payments/empty_update.js b/components/test/data/payments/empty_update.js
index ad03d2e3..dc49996 100644
--- a/components/test/data/payments/empty_update.js
+++ b/components/test/data/payments/empty_update.js
@@ -9,6 +9,16 @@
  * addresses by calling updateWith({}), which is an "empty update."
  */
 function buy() { // eslint-disable-line no-unused-vars
+  buyWithMethods([{supportedMethods: 'basic-card'}]);
+}
+
+/**
+ * Invokes PaymentRequest with shipping and immediately rejects all shipping
+ * addresses by calling updateWith({}), which is an "empty update."
+ * @param {sequence<PaymentMethodData>} methodData An array of payment method
+ *        objects.
+ */
+function buyWithMethods(methodData) {
   try {
     var details = {
       total: {label: 'Total', amount: {currency: 'USD', value: '5.00'}},
@@ -23,7 +33,7 @@
     };
 
     var request = new PaymentRequest(
-        [{supportedMethods: 'basic-card'}], details, {requestShipping: true});
+        methodData, details, {requestShipping: true});
 
     request.addEventListener('shippingaddresschange', function(evt) {
       evt.updateWith({});
diff --git a/components/test/data/payments/fail_complete.js b/components/test/data/payments/fail_complete.js
index c12730d3..183e06b 100644
--- a/components/test/data/payments/fail_complete.js
+++ b/components/test/data/payments/fail_complete.js
@@ -8,11 +8,24 @@
 
 /**
  * Launches the PaymentRequest UI and always fails to complete the transaction.
+ *
+ * Legacy entry function until basic-card is removed.
  */
 function buy() { // eslint-disable-line no-unused-vars
+  buyWithMethods(
+      [{supportedMethods: 'basic-card', data: {supportedNetworks: ['visa']}}]);
+}
+
+/**
+ * Launches the PaymentRequest UI and always fails to complete the transaction.
+ *
+ * @param {sequence<PaymentMethodData>} methodData - An array of payment method
+ *        objects.
+ */
+function buyWithMethods(methodData) {
   try {
     new PaymentRequest(
-        [{supportedMethods: 'basic-card', data: {supportedNetworks: ['visa']}}],
+        methodData,
         {total: {label: 'Total', amount: {currency: 'USD', value: '5.00'}}})
         .show()
         .then(function(resp) {
diff --git a/components/variations/processed_study.cc b/components/variations/processed_study.cc
index d098ac5b..9aad00b 100644
--- a/components/variations/processed_study.cc
+++ b/components/variations/processed_study.cc
@@ -218,11 +218,11 @@
   return -1;
 }
 
-const char* ProcessedStudy::GetDefaultExperimentName() const {
+const base::StringPiece ProcessedStudy::GetDefaultExperimentName() const {
   if (study_->default_experiment_name().empty())
     return kGenericDefaultExperimentName;
 
-  return study_->default_experiment_name().c_str();
+  return study_->default_experiment_name();
 }
 
 }  // namespace variations
diff --git a/components/variations/processed_study.h b/components/variations/processed_study.h
index 1b60a113..9034012a 100644
--- a/components/variations/processed_study.h
+++ b/components/variations/processed_study.h
@@ -52,7 +52,7 @@
 
   // Gets the default experiment name for the study, or a generic one if none is
   // specified.
-  const char* GetDefaultExperimentName() const;
+  const base::StringPiece GetDefaultExperimentName() const;
 
  private:
   // Corresponding Study object. Weak reference.
diff --git a/components/viz/test/test_in_process_context_provider.cc b/components/viz/test/test_in_process_context_provider.cc
index 8969821..1302e48 100644
--- a/components/viz/test/test_in_process_context_provider.cc
+++ b/components/viz/test/test_in_process_context_provider.cc
@@ -106,13 +106,13 @@
 }
 
 gpu::ContextResult TestInProcessContextProvider::BindToCurrentThread() {
-  if (raster_interface_type_ == RasterInterfaceType::OOPR ||
+  if (raster_interface_type_ == RasterInterfaceType::GPU ||
       raster_interface_type_ == RasterInterfaceType::Software) {
     DCHECK(!enable_gles2_interface_);
     gpu::ContextCreationAttribs attribs;
     attribs.bind_generates_resource = false;
     attribs.enable_oop_rasterization =
-        raster_interface_type_ == RasterInterfaceType::OOPR;
+        raster_interface_type_ == RasterInterfaceType::GPU;
     attribs.enable_raster_interface = true;
     attribs.enable_gles2_interface = false;
 
@@ -130,7 +130,7 @@
         base::ThreadTaskRunnerHandle::Get());
 
     caps_ = raster_context_->GetCapabilities();
-  } else if (raster_interface_type_ == RasterInterfaceType::GPU ||
+  } else if (raster_interface_type_ == RasterInterfaceType::LEGACY_GPU ||
              enable_gles2_interface_) {
     display_controller_ =
         std::make_unique<DisplayCompositorMemoryAndTaskController>(
@@ -144,7 +144,7 @@
     cache_controller_ = std::make_unique<ContextCacheController>(
         gles2_context_->GetImplementation(),
         base::ThreadTaskRunnerHandle::Get());
-    if (raster_interface_type_ == RasterInterfaceType::GPU) {
+    if (raster_interface_type_ == RasterInterfaceType::LEGACY_GPU) {
       raster_implementation_gles2_ =
           std::make_unique<gpu::raster::RasterImplementationGLES>(
               gles2_context_->GetImplementation(), ContextSupport());
@@ -157,8 +157,8 @@
   // service will return for this capability. But we want to use gpu
   // rasterization if and only if the test requests it.
   caps_.gpu_rasterization =
-      raster_interface_type_ == RasterInterfaceType::GPU ||
-      raster_interface_type_ == RasterInterfaceType::OOPR;
+      raster_interface_type_ == RasterInterfaceType::LEGACY_GPU ||
+      raster_interface_type_ == RasterInterfaceType::GPU;
 
   cache_controller_->SetLock(GetLock());
   return gpu::ContextResult::kSuccess;
diff --git a/components/viz/test/test_in_process_context_provider.h b/components/viz/test/test_in_process_context_provider.h
index 2d1e8ba8..c9938cb16 100644
--- a/components/viz/test/test_in_process_context_provider.h
+++ b/components/viz/test/test_in_process_context_provider.h
@@ -39,7 +39,7 @@
 
 std::unique_ptr<gpu::GLInProcessContext> CreateTestInProcessContext();
 
-enum RasterInterfaceType { None, Software, GPU, OOPR };
+enum RasterInterfaceType { None, Software, LEGACY_GPU, GPU };
 
 class TestInProcessContextProvider
     : public base::RefCountedThreadSafe<TestInProcessContextProvider>,
diff --git a/content/browser/renderer_host/private_network_access_browsertest.cc b/content/browser/renderer_host/private_network_access_browsertest.cc
index 31b9fb9..8d726b8 100644
--- a/content/browser/renderer_host/private_network_access_browsertest.cc
+++ b/content/browser/renderer_host/private_network_access_browsertest.cc
@@ -218,8 +218,7 @@
 //    - private network request policy
 //  - testing the inheritance semantics of these properties
 //  - testing the correct handling of the CSP: treat-as-public-address directive
-//  - testing that insecure private network requests are blocked when the right
-//    feature flag is enabled
+//  - testing that subresource requests are subject to PNA checks
 //  - and a few other odds and ends
 //
 // We use the `--ip-address-space-overrides` command-line switch to test against
@@ -313,7 +312,7 @@
 };
 
 // Test with insecure private network subresource requests from the `public`
-// address space blocked.
+// address space blocked and preflights otherwise enabled but not enforced.
 class PrivateNetworkAccessBrowserTest
     : public PrivateNetworkAccessBrowserTestBase {
  public:
@@ -321,7 +320,6 @@
       : PrivateNetworkAccessBrowserTestBase(
             {
                 features::kBlockInsecurePrivateNetworkRequests,
-                features::kWarnAboutSecurePrivateNetworkRequests,
             },
             {}) {}
 };
@@ -336,9 +334,7 @@
             {
                 features::kBlockInsecurePrivateNetworkRequests,
                 features::kBlockInsecurePrivateNetworkRequestsFromPrivate,
-                // This feature should be superseded by the one above.
                 features::kPrivateNetworkAccessRespectPreflightResults,
-                features::kWarnAboutSecurePrivateNetworkRequests,
             },
             {}) {}
 };
@@ -353,9 +349,7 @@
             {
                 features::kBlockInsecurePrivateNetworkRequests,
                 features::kBlockInsecurePrivateNetworkRequestsFromUnknown,
-                // This feature should be superseded by the one above.
                 features::kPrivateNetworkAccessRespectPreflightResults,
-                features::kWarnAboutSecurePrivateNetworkRequests,
             },
             {}) {}
 };
@@ -369,13 +363,12 @@
             {
                 features::kBlockInsecurePrivateNetworkRequests,
                 features::kBlockInsecurePrivateNetworkRequestsFromPrivate,
-                features::kWarnAboutSecurePrivateNetworkRequests,
                 features::kBlockInsecurePrivateNetworkRequestsForNavigations,
             },
             {}) {}
 };
 
-// Test with the feature to send preflights (unenforced) enabled, and insecure
+// Test with the feature to send preflights (unenforced) disabled, and insecure
 // private network subresource requests blocked.
 class PrivateNetworkAccessBrowserTestNoPreflights
     : public PrivateNetworkAccessBrowserTestBase {
@@ -404,6 +397,34 @@
             {}) {}
 };
 
+// Test with PNA checks for worker-related fetches enabled.
+class PrivateNetworkAccessBrowserTestForWorkers
+    : public PrivateNetworkAccessBrowserTestBase {
+ public:
+  PrivateNetworkAccessBrowserTestForWorkers()
+      : PrivateNetworkAccessBrowserTestBase(
+            {
+                features::kBlockInsecurePrivateNetworkRequests,
+                features::kPrivateNetworkAccessForWorkers,
+            },
+            {}) {}
+};
+
+// Test with PNA checks for worker-related fetches enabled and preflight
+// enforcement enabled.
+class PrivateNetworkAccessBrowserTestRespectPreflightResultsForWorkers
+    : public PrivateNetworkAccessBrowserTestBase {
+ public:
+  PrivateNetworkAccessBrowserTestRespectPreflightResultsForWorkers()
+      : PrivateNetworkAccessBrowserTestBase(
+            {
+                features::kBlockInsecurePrivateNetworkRequests,
+                features::kPrivateNetworkAccessRespectPreflightResults,
+                features::kPrivateNetworkAccessForWorkers,
+            },
+            {}) {}
+};
+
 // Test with insecure private network requests allowed.
 class PrivateNetworkAccessBrowserTestNoBlocking
     : public PrivateNetworkAccessBrowserTestBase {
@@ -2182,10 +2203,11 @@
 }
 
 // This test verifies that with the blocking feature disabled, the private
-// network request policy used by RenderFrameHostImpl is to allow requests from
-// secure contexts.
-IN_PROC_BROWSER_TEST_F(PrivateNetworkAccessBrowserTestNoBlocking,
-                       PrivateNetworkPolicyIsAllowByDefaultForSecureContexts) {
+// network request policy used by RenderFrameHostImpl is to send unenforced
+// preflight requests from secure contexts.
+IN_PROC_BROWSER_TEST_F(
+    PrivateNetworkAccessBrowserTestNoBlocking,
+    PrivateNetworkPolicyIsPreflightWarnByDefaultForSecureContexts) {
   EXPECT_TRUE(NavigateToURL(shell(), SecurePublicURL(kDefaultPath)));
 
   const network::mojom::ClientSecurityStatePtr security_state =
@@ -2972,6 +2994,210 @@
                                                  "", "empty.html"))));
 }
 
+// =========================
+// WORKER SCRIPT FETCH TESTS
+// =========================
+
+namespace {
+
+// Path to a worker script that posts a message to its creator once loaded.
+constexpr char kWorkerScriptPath[] = "/workers/post_ready.js";
+
+// Same as above, but with PNA headers set correctly for preflight requests.
+constexpr char kWorkerScriptWithPnaHeadersPath[] =
+    "/workers/post_ready_with_pna_headers.js";
+
+// Instantiates a dedicated worker script from `path`.
+// If it loads successfully, the worker should post a message to its creator to
+// signal success.
+std::string FetchWorkerScript(base::StringPiece path) {
+  constexpr char kTemplate[] = R"(
+    new Promise((resolve) => {
+      const worker = new Worker($1);
+      worker.addEventListener("message", () => resolve(true));
+      worker.addEventListener("error", () => resolve(false));
+    })
+  )";
+
+  return JsReplace(kTemplate, path);
+}
+
+// Path to a worker script that posts a message to each client that connects.
+constexpr char kSharedWorkerScriptPath[] = "/workers/shared_post_ready.js";
+
+// Same as above, but with PNA headers set correctly for preflight requests.
+constexpr char kSharedWorkerScriptWithPnaHeadersPath[] =
+    "/workers/shared_post_ready_with_pna_headers.js";
+
+// Instantiates a shared worker script from `path`.
+// If it loads successfully, the worker should post a message to each client
+// that connects to it to signal success.
+std::string FetchSharedWorkerScript(base::StringPiece path) {
+  constexpr char kTemplate[] = R"(
+    new Promise((resolve) => {
+      const worker = new SharedWorker($1);
+      worker.port.addEventListener("message", () => resolve(true));
+      worker.addEventListener("error", () => resolve(false));
+      worker.port.start();
+    })
+  )";
+
+  return JsReplace(kTemplate, path);
+}
+
+// TODO(https://crbug.com/154571): Remove this and replace calls below with
+// calls to `EXPECT_EQ` directly once Shared Workers are supported on Android.
+void ExpectFetchSharedWorkerScriptResult(bool expected,
+                                         const EvalJsResult& result) {
+#if !BUILDFLAG(IS_ANDROID)
+  EXPECT_EQ(expected, result);
+#else
+  EXPECT_NE("", result.error);
+#endif
+}
+
+}  // namespace
+
+IN_PROC_BROWSER_TEST_F(PrivateNetworkAccessBrowserTest,
+                       FetchWorkerFromInsecureTreatAsPublicToLocal) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), InsecureLocalURL(kTreatAsPublicAddressPath)));
+
+  EXPECT_EQ(true,
+            EvalJs(root_frame_host(), FetchWorkerScript(kWorkerScriptPath)));
+}
+
+IN_PROC_BROWSER_TEST_F(PrivateNetworkAccessBrowserTestForWorkers,
+                       FetchWorkerFromInsecureTreatAsPublicToLocal) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), InsecureLocalURL(kTreatAsPublicAddressPath)));
+
+  EXPECT_EQ(false,
+            EvalJs(root_frame_host(), FetchWorkerScript(kWorkerScriptPath)));
+}
+
+IN_PROC_BROWSER_TEST_F(
+    PrivateNetworkAccessBrowserTestRespectPreflightResultsForWorkers,
+    FetchWorkerFromInsecureTreatAsPublicToLocal) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), InsecureLocalURL(kTreatAsPublicAddressPath)));
+
+  EXPECT_EQ(false,
+            EvalJs(root_frame_host(), FetchWorkerScript(kWorkerScriptPath)));
+}
+
+IN_PROC_BROWSER_TEST_F(PrivateNetworkAccessBrowserTest,
+                       FetchWorkerFromSecureTreatAsPublicToLocal) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), SecureLocalURL(kTreatAsPublicAddressPath)));
+
+  EXPECT_EQ(true,
+            EvalJs(root_frame_host(), FetchWorkerScript(kWorkerScriptPath)));
+}
+
+IN_PROC_BROWSER_TEST_F(PrivateNetworkAccessBrowserTestForWorkers,
+                       FetchWorkerFromSecureTreatAsPublicToLocal) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), SecureLocalURL(kTreatAsPublicAddressPath)));
+
+  EXPECT_EQ(true,
+            EvalJs(root_frame_host(), FetchWorkerScript(kWorkerScriptPath)));
+}
+
+IN_PROC_BROWSER_TEST_F(
+    PrivateNetworkAccessBrowserTestRespectPreflightResultsForWorkers,
+    FetchWorkerFromSecureTreatAsPublicToLocalFailedPreflight) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), SecureLocalURL(kTreatAsPublicAddressPath)));
+
+  EXPECT_EQ(false,
+            EvalJs(root_frame_host(), FetchWorkerScript(kWorkerScriptPath)));
+}
+
+IN_PROC_BROWSER_TEST_F(
+    PrivateNetworkAccessBrowserTestRespectPreflightResultsForWorkers,
+    FetchWorkerFromSecureTreatAsPublicToLocalSuccess) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), SecureLocalURL(kTreatAsPublicAddressPath)));
+
+  EXPECT_EQ(true, EvalJs(root_frame_host(),
+                         FetchWorkerScript(kWorkerScriptWithPnaHeadersPath)));
+}
+
+IN_PROC_BROWSER_TEST_F(PrivateNetworkAccessBrowserTest,
+                       FetchSharedWorkerFromInsecureTreatAsPublicToLocal) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), InsecureLocalURL(kTreatAsPublicAddressPath)));
+
+  ExpectFetchSharedWorkerScriptResult(
+      true, EvalJs(root_frame_host(),
+                   FetchSharedWorkerScript(kSharedWorkerScriptPath)));
+}
+
+IN_PROC_BROWSER_TEST_F(PrivateNetworkAccessBrowserTestForWorkers,
+                       FetchSharedWorkerFromInsecureTreatAsPublicToLocal) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), InsecureLocalURL(kTreatAsPublicAddressPath)));
+
+  ExpectFetchSharedWorkerScriptResult(
+      false, EvalJs(root_frame_host(),
+                    FetchSharedWorkerScript(kSharedWorkerScriptPath)));
+}
+
+IN_PROC_BROWSER_TEST_F(
+    PrivateNetworkAccessBrowserTestRespectPreflightResultsForWorkers,
+    FetchSharedWorkerFromInsecureTreatAsPublicToLocal) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), InsecureLocalURL(kTreatAsPublicAddressPath)));
+
+  ExpectFetchSharedWorkerScriptResult(
+      false, EvalJs(root_frame_host(),
+                    FetchSharedWorkerScript(kSharedWorkerScriptPath)));
+}
+
+IN_PROC_BROWSER_TEST_F(PrivateNetworkAccessBrowserTest,
+                       FetchSharedWorkerFromSecureTreatAsPublicToLocal) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), SecureLocalURL(kTreatAsPublicAddressPath)));
+
+  ExpectFetchSharedWorkerScriptResult(
+      true, EvalJs(root_frame_host(),
+                   FetchSharedWorkerScript(kSharedWorkerScriptPath)));
+}
+
+IN_PROC_BROWSER_TEST_F(PrivateNetworkAccessBrowserTestForWorkers,
+                       FetchSharedWorkerFromSecureTreatAsPublicToLocal) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), SecureLocalURL(kTreatAsPublicAddressPath)));
+
+  ExpectFetchSharedWorkerScriptResult(
+      true, EvalJs(root_frame_host(),
+                   FetchSharedWorkerScript(kSharedWorkerScriptPath)));
+}
+
+IN_PROC_BROWSER_TEST_F(
+    PrivateNetworkAccessBrowserTestRespectPreflightResultsForWorkers,
+    FetchSharedWorkerFromSecureTreatAsPublicToLocalFailedPreflight) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), SecureLocalURL(kTreatAsPublicAddressPath)));
+
+  ExpectFetchSharedWorkerScriptResult(
+      false, EvalJs(root_frame_host(),
+                    FetchSharedWorkerScript(kSharedWorkerScriptPath)));
+}
+
+IN_PROC_BROWSER_TEST_F(
+    PrivateNetworkAccessBrowserTestRespectPreflightResultsForWorkers,
+    FetchSharedWorkerFromSecureTreatAsPublicToLocalSuccess) {
+  EXPECT_TRUE(
+      NavigateToURL(shell(), SecureLocalURL(kTreatAsPublicAddressPath)));
+
+  ExpectFetchSharedWorkerScriptResult(
+      true,
+      EvalJs(root_frame_host(),
+             FetchSharedWorkerScript(kSharedWorkerScriptWithPnaHeadersPath)));
+}
+
 // ======================
 // NAVIGATION FETCH TESTS
 // ======================
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index 95329d4..8297595 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -9533,7 +9533,7 @@
           /*creator_render_frame_host_id=*/GetGlobalId(),
           /*creator_worker_token=*/absl::nullopt,
           /*ancestor_render_frame_host_id=*/GetGlobalId(), storage_key(),
-          isolation_info_, cross_origin_embedder_policy(),
+          isolation_info_, BuildClientSecurityState(),
           /*creator_coep_reporter=*/coep_reporter,
           /*ancestor_coep_reporter=*/coep_reporter),
       std::move(receiver));
diff --git a/content/browser/worker_host/dedicated_worker_host.cc b/content/browser/worker_host/dedicated_worker_host.cc
index 06403e5d..130cb34 100644
--- a/content/browser/worker_host/dedicated_worker_host.cc
+++ b/content/browser/worker_host/dedicated_worker_host.cc
@@ -63,7 +63,7 @@
     GlobalRenderFrameHostId ancestor_render_frame_host_id,
     const blink::StorageKey& creator_storage_key,
     const net::IsolationInfo& isolation_info,
-    const network::CrossOriginEmbedderPolicy& cross_origin_embedder_policy,
+    network::mojom::ClientSecurityStatePtr creator_client_security_state,
     base::WeakPtr<CrossOriginEmbedderPolicyReporter> creator_coep_reporter,
     base::WeakPtr<CrossOriginEmbedderPolicyReporter> ancestor_coep_reporter,
     mojo::PendingReceiver<blink::mojom::DedicatedWorkerHost> host)
@@ -80,7 +80,7 @@
       storage_key_(creator_storage_key),
       isolation_info_(isolation_info),
       reporting_source_(base::UnguessableToken::Create()),
-      creator_cross_origin_embedder_policy_(cross_origin_embedder_policy),
+      creator_client_security_state_(std::move(creator_client_security_state)),
       host_receiver_(this, std::move(host)),
       creator_coep_reporter_(std::move(creator_coep_reporter)),
       ancestor_coep_reporter_(std::move(ancestor_coep_reporter)),
@@ -90,8 +90,9 @@
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   DCHECK(worker_process_host_);
   DCHECK(worker_process_host_->IsInitializedAndNotDead());
-  DCHECK((creator_render_frame_host_id_ && !creator_worker_token_) ||
-         (!creator_render_frame_host_id_ && creator_worker_token_));
+  DCHECK_NE(creator_render_frame_host_id_.has_value(),
+            creator_worker_token_.has_value());
+  DCHECK(creator_client_security_state_);
 
   // TODO(https://crbug.com/11990077): Once we add more stuff to
   // `blink::StorageKey`, DCHECK that `storage_key` is consistent with
@@ -103,8 +104,7 @@
     // This is a workaround to make the worker's COEP have a value when
     // PlzDedicatedWorker is disabled. When the feature is enabled, The value is
     // initialized in DedicatedWorkerHost::DidStartScriptLoad().
-    worker_cross_origin_embedder_policy_ =
-        creator_cross_origin_embedder_policy_;
+    worker_client_security_state_ = creator_client_security_state_->Clone();
   }
 
   service_->NotifyWorkerCreated(this);
@@ -348,20 +348,29 @@
     return;
   }
 
+  // TODO(https://crbug.com/1282637): Compute the client security state based on
+  // the response head and the creator's client security state, just like is
+  // currently done for COEP. Preserve existing functionality in the meantime.
+  worker_client_security_state_ =
+      ancestor_render_frame_host->BuildClientSecurityState();
+
+  // Alias the COEP field inside `worker_client_security_state_` for brevity
+  // below. Note that this is a reference, not a copy.
+  network::CrossOriginEmbedderPolicy& coep =
+      worker_client_security_state_->cross_origin_embedder_policy;
+
   // https://html.spec.whatwg.org/C/#run-a-worker
-  worker_cross_origin_embedder_policy_ = network::CrossOriginEmbedderPolicy();
   if (final_response_url.SchemeIsBlob() ||
       final_response_url.SchemeIs(url::kAboutScheme) ||
       final_response_url.SchemeIs(url::kDataScheme)) {
     // > 14.5 If response's url's scheme is a local scheme, then set worker
     // global scope's embedder policy to owner's embedder policy.
-    worker_cross_origin_embedder_policy_ =
-        creator_cross_origin_embedder_policy_;
+    coep = creator_client_security_state_->cross_origin_embedder_policy;
   } else if (main_script_load_params->response_head->parsed_headers) {
     // > 14.6 Otherwise, set worker global scope's embedder policy to the result
     // of obtaining an embedder policy from response.
-    worker_cross_origin_embedder_policy_ = CoepFromMainResponse(
-        final_response_url, main_script_load_params->response_head.get());
+    coep = CoepFromMainResponse(final_response_url,
+                                main_script_load_params->response_head.get());
   }
 
   auto* storage_partition = static_cast<StoragePartitionImpl*>(
@@ -369,8 +378,7 @@
   // Create a COEP reporter with worker's policy.
   coep_reporter_ = std::make_unique<CrossOriginEmbedderPolicyReporter>(
       storage_partition->GetWeakPtr(), final_response_url,
-      worker_cross_origin_embedder_policy_->reporting_endpoint,
-      worker_cross_origin_embedder_policy_->report_only_reporting_endpoint,
+      coep.reporting_endpoint, coep.report_only_reporting_endpoint,
       reporting_source_, isolation_info_.network_isolation_key());
   // TODO(crbug.com/1197041): Bind the receiver of ReportingObserver to the
   // worker in the renderer process.
@@ -378,8 +386,7 @@
   // > 14.8 If the result of checking a global object's embedder policy with
   // worker global scope, owner, and response is false, then set response to a
   // network error.
-  if (!CheckCrossOriginEmbedderPolicy(creator_cross_origin_embedder_policy_,
-                                      cross_origin_embedder_policy())) {
+  if (!CheckCrossOriginEmbedderPolicy()) {
     ScriptLoadStartFailed(final_response_url,
                           network::URLLoaderCompletionStatus(
                               network::mojom::BlockedByResponseReason::
@@ -472,15 +479,10 @@
         coep_reporter.InitWithNewPipeAndPassReceiver());
   }
 
-  network::mojom::ClientSecurityStatePtr client_security_state =
-      ancestor_render_frame_host->BuildClientSecurityState();
-  client_security_state->cross_origin_embedder_policy =
-      cross_origin_embedder_policy();
-
   network::mojom::URLLoaderFactoryParamsPtr factory_params =
       URLLoaderFactoryParamsHelper::CreateForFrame(
           ancestor_render_frame_host, GetStorageKey().origin(), isolation_info_,
-          std::move(client_security_state), std::move(coep_reporter),
+          worker_client_security_state_->Clone(), std::move(coep_reporter),
           worker_process_host_,
           ancestor_render_frame_host->IsFeatureEnabled(
               blink::mojom::PermissionsPolicyFeature::kTrustTokenRedemption)
@@ -511,15 +513,19 @@
 
 // [spec]
 // https://html.spec.whatwg.org/C/#check-a-global-object's-embedder-policy
-bool DedicatedWorkerHost::CheckCrossOriginEmbedderPolicy(
-    network::CrossOriginEmbedderPolicy creator_cross_origin_embedder_policy,
-    network::CrossOriginEmbedderPolicy worker_cross_origin_embedder_policy) {
+bool DedicatedWorkerHost::CheckCrossOriginEmbedderPolicy() {
   DCHECK(base::FeatureList::IsEnabled(blink::features::kPlzDedicatedWorker));
   DCHECK(final_response_url_);
 
   if (!creator_coep_reporter_)
     return false;
 
+  const network::CrossOriginEmbedderPolicy&
+      creator_cross_origin_embedder_policy =
+          creator_client_security_state_->cross_origin_embedder_policy;
+  const network::CrossOriginEmbedderPolicy&
+      worker_cross_origin_embedder_policy = cross_origin_embedder_policy();
+
   // [spec]: 4. If ownerPolicy's report-only value is "require-corp" or
   // "credentialless" and policy's value is "unsafe-none", then queue a
   // cross-origin embedder policy inheritance violation with response, "worker
@@ -644,8 +650,9 @@
           worker_process_host_->GetID(),
           /*creator_render_frame_host_id_=*/absl::nullopt,
           /*creator_worker_token=*/token_, ancestor_render_frame_host_id_,
-          GetStorageKey(), isolation_info_, cross_origin_embedder_policy(),
-          creator_coep_reporter, ancestor_coep_reporter_),
+          GetStorageKey(), isolation_info_,
+          worker_client_security_state_->Clone(), creator_coep_reporter,
+          ancestor_coep_reporter_),
       std::move(receiver));
 }
 
diff --git a/content/browser/worker_host/dedicated_worker_host.h b/content/browser/worker_host/dedicated_worker_host.h
index c9d004f..f7d338d 100644
--- a/content/browser/worker_host/dedicated_worker_host.h
+++ b/content/browser/worker_host/dedicated_worker_host.h
@@ -21,8 +21,8 @@
 #include "mojo/public/cpp/bindings/remote.h"
 #include "mojo/public/cpp/bindings/unique_receiver_set.h"
 #include "net/base/isolation_info.h"
-#include "services/network/public/cpp/cross_origin_embedder_policy.h"
 #include "services/network/public/cpp/url_loader_completion_status.h"
+#include "services/network/public/mojom/client_security_state.mojom.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/public/common/scheduler/web_scheduler_tracked_feature.h"
 #include "third_party/blink/public/common/service_worker/service_worker_status_code.h"
@@ -46,6 +46,12 @@
 #include "third_party/blink/public/mojom/serial/serial.mojom-forward.h"
 #endif
 
+namespace network {
+
+struct CrossOriginEmbedderPolicy;
+
+}  // namespace network
+
 namespace content {
 
 class ServiceWorkerContainerHost;
@@ -66,6 +72,18 @@
       public blink::mojom::BackForwardCacheControllerHost,
       public RenderProcessHostObserver {
  public:
+  // Creates a new browser-side host for a single dedicated worker.
+  //
+  // See the class-level comment for lifetime considerations.
+  //
+  // - `service` must not be nullptr and must outlive this instance.
+  // - `worker_process_host` must not be nullptr and must outlive this instance.
+  //   It must be initialized and not be dead - see
+  //   `RenderProcessHost::IsInitializedAndNotDead()`.
+  // - Exactly one of `creator_render_frame_host_id` or `creator_worker_token`
+  //   must be specified.
+  // - `creator_client_security_state` specifies the client security state of
+  //   the creator frame or worker. It must not be nullptr.
   DedicatedWorkerHost(
       DedicatedWorkerServiceImpl* service,
       const blink::DedicatedWorkerToken& token,
@@ -75,7 +93,7 @@
       GlobalRenderFrameHostId ancestor_render_frame_host_id,
       const blink::StorageKey& creator_storage_key,
       const net::IsolationInfo& isolation_info,
-      const network::CrossOriginEmbedderPolicy& cross_origin_embedder_policy,
+      network::mojom::ClientSecurityStatePtr creator_client_security_state,
       base::WeakPtr<CrossOriginEmbedderPolicyReporter> creator_coep_reporter,
       base::WeakPtr<CrossOriginEmbedderPolicyReporter> ancestor_coep_reporter,
       mojo::PendingReceiver<blink::mojom::DedicatedWorkerHost> host);
@@ -157,8 +175,8 @@
 
   const network::CrossOriginEmbedderPolicy& cross_origin_embedder_policy()
       const {
-    DCHECK(worker_cross_origin_embedder_policy_.has_value());
-    return worker_cross_origin_embedder_policy_.value();
+    DCHECK(worker_client_security_state_);
+    return worker_client_security_state_->cross_origin_embedder_policy;
   }
 
   ServiceWorkerMainResourceHandle* service_worker_handle() {
@@ -237,10 +255,8 @@
 
   void OnMojoDisconnect();
 
-  // Returns true if creator and worker's COEP values are valid.
-  bool CheckCrossOriginEmbedderPolicy(
-      network::CrossOriginEmbedderPolicy creator_cross_origin_embedder_policy,
-      network::CrossOriginEmbedderPolicy worker_cross_origin_embedder_policy);
+  // Returns whether creator and worker's COEP values are compatible.
+  bool CheckCrossOriginEmbedderPolicy();
 
   base::WeakPtr<CrossOriginEmbedderPolicyReporter> GetWorkerCoepReporter();
 
@@ -287,15 +303,24 @@
 
   const base::UnguessableToken reporting_source_;
 
-  // The frame/worker's Cross-Origin-Embedder-Policy (COEP) that directly starts
-  // this worker.
-  const network::CrossOriginEmbedderPolicy
-      creator_cross_origin_embedder_policy_;
+  // The client security state of the creator execution context. Never nullptr.
+  // Copied at construction time.
+  //
+  // TODO(https://crbug.com/1177652): Consider removing this member once the
+  // creator always outlives this instance. In that case, we could copy the
+  // creator's client security state lazily instead of eagerly.
+  const network::mojom::ClientSecurityStatePtr creator_client_security_state_;
 
-  // The DedicatedWorker's Cross-Origin-Embedder-Policy (COEP). This is set when
-  // the script's response head is loaded.
-  absl::optional<network::CrossOriginEmbedderPolicy>
-      worker_cross_origin_embedder_policy_;
+  // The client security state of this worker, used for subresource fetches.
+  //
+  // If PlzDedicatedWorker is disabled, it is cloned from
+  // `creator_client_security_state_` at construction time.
+  //
+  // Otherwise, it is nullptr until the script's response head is loaded, at
+  // which point it is calculated based on the response info. If the response is
+  // loaded from a URL with a local scheme, then the worker inherits its
+  // creator's client security state.
+  network::mojom::ClientSecurityStatePtr worker_client_security_state_;
 
   // This is kept alive during the lifetime of the dedicated worker, since it's
   // associated with Mojo interfaces (ServiceWorkerContainer and
diff --git a/content/browser/worker_host/dedicated_worker_host_factory_impl.cc b/content/browser/worker_host/dedicated_worker_host_factory_impl.cc
index 827e15e..7ece9a06 100644
--- a/content/browser/worker_host/dedicated_worker_host_factory_impl.cc
+++ b/content/browser/worker_host/dedicated_worker_host_factory_impl.cc
@@ -15,6 +15,7 @@
 #include "content/browser/worker_host/dedicated_worker_service_impl.h"
 #include "content/public/browser/render_process_host.h"
 #include "mojo/public/cpp/bindings/message.h"
+#include "services/network/public/mojom/client_security_state.mojom.h"
 #include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/common/storage_key/storage_key.h"
 
@@ -45,7 +46,7 @@
     GlobalRenderFrameHostId ancestor_render_frame_host_id,
     const blink::StorageKey& creator_storage_key,
     const net::IsolationInfo& isolation_info,
-    const network::CrossOriginEmbedderPolicy& cross_origin_embedder_policy,
+    network::mojom::ClientSecurityStatePtr creator_client_security_state,
     base::WeakPtr<CrossOriginEmbedderPolicyReporter> creator_coep_reporter,
     base::WeakPtr<CrossOriginEmbedderPolicyReporter> ancestor_coep_reporter)
     : worker_process_id_(worker_process_id),
@@ -54,12 +55,13 @@
       ancestor_render_frame_host_id_(ancestor_render_frame_host_id),
       creator_storage_key_(creator_storage_key),
       isolation_info_(isolation_info),
-      cross_origin_embedder_policy_(cross_origin_embedder_policy),
+      creator_client_security_state_(std::move(creator_client_security_state)),
       creator_coep_reporter_(std::move(creator_coep_reporter)),
       ancestor_coep_reporter_(std::move(ancestor_coep_reporter)) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
-  DCHECK((creator_render_frame_host_id_ && !creator_worker_token_) ||
-         (!creator_render_frame_host_id_ && creator_worker_token_));
+  DCHECK_NE(creator_render_frame_host_id_.has_value(),
+            creator_worker_token_.has_value());
+  DCHECK(creator_client_security_state_);
 }
 
 DedicatedWorkerHostFactoryImpl::~DedicatedWorkerHostFactoryImpl() = default;
@@ -77,7 +79,8 @@
   // mojo::ReportBadMessage, the callback will explode as it is torn down.
   // Ideally we'd have a handle to our binding and we'd manually close it
   // before returning, letting the callback die without being run.
-  std::move(callback).Run(cross_origin_embedder_policy_);
+  std::move(callback).Run(
+      creator_client_security_state_->cross_origin_embedder_policy);
 
   if (base::FeatureList::IsEnabled(blink::features::kPlzDedicatedWorker)) {
     mojo::ReportBadMessage("DWH_INVALID_WORKER_CREATION");
@@ -99,7 +102,8 @@
   auto* host = new DedicatedWorkerHost(
       service, token, worker_process_host, creator_render_frame_host_id_,
       creator_worker_token_, ancestor_render_frame_host_id_,
-      creator_storage_key_, isolation_info_, cross_origin_embedder_policy_,
+      creator_storage_key_, isolation_info_,
+      std::move(creator_client_security_state_),
       std::move(creator_coep_reporter_), std::move(ancestor_coep_reporter_),
       std::move(host_receiver));
   host->BindBrowserInterfaceBrokerReceiver(std::move(broker_receiver));
@@ -141,7 +145,8 @@
   auto* host = new DedicatedWorkerHost(
       service, token, worker_process_host, creator_render_frame_host_id_,
       creator_worker_token_, ancestor_render_frame_host_id_,
-      creator_storage_key_, isolation_info_, cross_origin_embedder_policy_,
+      creator_storage_key_, isolation_info_,
+      std::move(creator_client_security_state_),
       std::move(creator_coep_reporter_), std::move(ancestor_coep_reporter_),
       pending_remote_host.InitWithNewPipeAndPassReceiver());
   mojo::PendingRemote<blink::mojom::BrowserInterfaceBroker> broker;
diff --git a/content/browser/worker_host/dedicated_worker_host_factory_impl.h b/content/browser/worker_host/dedicated_worker_host_factory_impl.h
index e900371e..b1fa874 100644
--- a/content/browser/worker_host/dedicated_worker_host_factory_impl.h
+++ b/content/browser/worker_host/dedicated_worker_host_factory_impl.h
@@ -11,8 +11,8 @@
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "net/base/isolation_info.h"
-#include "services/network/public/cpp/cross_origin_embedder_policy.h"
-#include "services/network/public/mojom/cross_origin_embedder_policy.mojom.h"
+#include "services/network/public/mojom/client_security_state.mojom-forward.h"
+#include "services/network/public/mojom/cross_origin_embedder_policy.mojom-forward.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/public/common/storage_key/storage_key.h"
 #include "third_party/blink/public/mojom/worker/dedicated_worker_host_factory.mojom.h"
@@ -22,9 +22,15 @@
 
 // A factory for creating DedicatedWorkerHosts. Its lifetime is managed by the
 // renderer over mojo via SelfOwnedReceiver. It lives on the UI thread.
+//
+// A factory instance creates at most one `DedicatedWorkerHost` instance.
 class CONTENT_EXPORT DedicatedWorkerHostFactoryImpl
     : public blink::mojom::DedicatedWorkerHostFactory {
  public:
+  // Exactly one of `creator_render_frame_host_id` and `creator_worker_token`
+  // must be specified.
+  // `creator_client_security_state` specifies the client security state of
+  // the creator frame or worker. Must not be nullptr.
   DedicatedWorkerHostFactoryImpl(
       int worker_process_id,
       absl::optional<GlobalRenderFrameHostId> creator_render_frame_host_id,
@@ -32,7 +38,7 @@
       GlobalRenderFrameHostId ancestor_render_frame_host_id,
       const blink::StorageKey& creator_storage_key,
       const net::IsolationInfo& isolation_info,
-      const network::CrossOriginEmbedderPolicy& cross_origin_embedder_policy,
+      network::mojom::ClientSecurityStatePtr creator_client_security_state,
       base::WeakPtr<CrossOriginEmbedderPolicyReporter> creator_coep_reporter,
       base::WeakPtr<CrossOriginEmbedderPolicyReporter> ancestor_coep_reporter);
 
@@ -77,7 +83,11 @@
   // worker's origin.
   const blink::StorageKey creator_storage_key_;
   const net::IsolationInfo isolation_info_;
-  const network::CrossOriginEmbedderPolicy cross_origin_embedder_policy_;
+
+  // The client security state of the creator execution context.
+  // Non-nullptr before a worker is created, i.e. `CreateWorkerHost()` or
+  // `CreateWorkerHostAndStartScriptLoad()` is called. Nullptr afterwards.
+  network::mojom::ClientSecurityStatePtr creator_client_security_state_;
 
   base::WeakPtr<CrossOriginEmbedderPolicyReporter> creator_coep_reporter_;
   base::WeakPtr<CrossOriginEmbedderPolicyReporter> ancestor_coep_reporter_;
diff --git a/content/browser/worker_host/dedicated_worker_service_impl_unittest.cc b/content/browser/worker_host/dedicated_worker_service_impl_unittest.cc
index f7060f2..dfe8155 100644
--- a/content/browser/worker_host/dedicated_worker_service_impl_unittest.cc
+++ b/content/browser/worker_host/dedicated_worker_service_impl_unittest.cc
@@ -21,6 +21,7 @@
 #include "mojo/public/cpp/bindings/remote.h"
 #include "mojo/public/cpp/bindings/self_owned_receiver.h"
 #include "net/base/isolation_info.h"
+#include "services/network/public/mojom/client_security_state.mojom.h"
 #include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/common/storage_key/storage_key.h"
 #include "third_party/blink/public/common/tokens/tokens.h"
@@ -53,8 +54,8 @@
             worker_process_id, render_frame_host_id,
             /*creator_worker_token=*/absl::nullopt, render_frame_host_id,
             blink::StorageKey(), net::IsolationInfo::CreateTransient(),
-            network::CrossOriginEmbedderPolicy(), coep_reporter->GetWeakPtr(),
-            coep_reporter->GetWeakPtr()),
+            network::mojom::ClientSecurityState::New(),
+            coep_reporter->GetWeakPtr(), coep_reporter->GetWeakPtr()),
         factory_.BindNewPipeAndPassReceiver());
 
     if (base::FeatureList::IsEnabled(blink::features::kPlzDedicatedWorker)) {
diff --git a/content/browser/worker_host/worker_script_fetcher.cc b/content/browser/worker_host/worker_script_fetcher.cc
index 729de4d7..3910f534 100644
--- a/content/browser/worker_host/worker_script_fetcher.cc
+++ b/content/browser/worker_host/worker_script_fetcher.cc
@@ -14,6 +14,7 @@
 #include "content/browser/loader/browser_initiated_resource_request.h"
 #include "content/browser/loader/file_url_loader_factory.h"
 #include "content/browser/navigation_subresource_loader_params.h"
+#include "content/browser/renderer_host/render_frame_host_impl.h"
 #include "content/browser/service_worker/service_worker_context_wrapper.h"
 #include "content/browser/service_worker/service_worker_main_resource_handle.h"
 #include "content/browser/storage_partition_impl.h"
@@ -25,7 +26,6 @@
 #include "content/public/browser/content_browser_client.h"
 #include "content/public/browser/global_request_id.h"
 #include "content/public/browser/network_service_instance.h"
-#include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/shared_cors_origin_access_list.h"
 #include "content/public/browser/url_loader_throttles.h"
 #include "content/public/browser/web_ui_url_loader_factory.h"
@@ -139,7 +139,7 @@
       std::move(controller_service_worker_object_host), final_response_url);
 }
 
-bool ShouldCreateWebUILoader(RenderFrameHost* creator_render_frame_host) {
+bool ShouldCreateWebUILoader(RenderFrameHostImpl* creator_render_frame_host) {
   if (!creator_render_frame_host)
     return false;
 
@@ -163,8 +163,8 @@
     int worker_process_id,
     const DedicatedOrSharedWorkerToken& worker_token,
     const GURL& initial_request_url,
-    RenderFrameHost* ancestor_render_frame_host,
-    RenderFrameHost* creator_render_frame_host,
+    RenderFrameHostImpl* ancestor_render_frame_host,
+    RenderFrameHostImpl* creator_render_frame_host,
     const net::SiteForCookies& site_for_cookies,
     const url::Origin& request_initiator,
     const blink::StorageKey& request_initiator_storage_key,
@@ -299,7 +299,7 @@
     int worker_process_id,
     const DedicatedOrSharedWorkerToken& worker_token,
     const GURL& initial_request_url,
-    RenderFrameHost* creator_render_frame_host,
+    RenderFrameHostImpl* creator_render_frame_host,
     const net::IsolationInfo& trusted_isolation_info,
     std::unique_ptr<network::ResourceRequest> resource_request,
     std::unique_ptr<blink::PendingURLLoaderFactoryBundle>
@@ -335,14 +335,16 @@
     // For unit tests.
     url_loader_factory = std::move(url_loader_factory_override);
   } else {
+    network::mojom::ClientSecurityStatePtr client_security_state;
+
     // Add the default factory to the bundle for browser.
     DCHECK(factory_bundle_for_browser_info);
     mojo::PendingRemote<network::mojom::URLLoaderNetworkServiceObserver>
         url_loader_network_observer;
     mojo::PendingRemote<network::mojom::DevToolsObserver> devtools_observer;
     // If we have a |creator_render_frame_host| associate the load with that
-    // RenderFrameHost. Note that |factory_process| may be different than the
-    // |creator_render_frame_host|'s RenderProcessHost.
+    // RenderFrameHostImpl. Note that |factory_process| may be different than
+    // the |creator_render_frame_host|'s RenderProcessHost.
     if (creator_render_frame_host) {
       url_loader_network_observer =
           factory_process->GetStoragePartition()
@@ -351,6 +353,16 @@
                   creator_render_frame_host->GetRoutingID());
       devtools_observer = NetworkServiceDevToolsObserver::MakeSelfOwned(
           creator_render_frame_host->GetDevToolsFrameToken().ToString());
+
+      if (base::FeatureList::IsEnabled(
+              features::kPrivateNetworkAccessForWorkers)) {
+        client_security_state =
+            creator_render_frame_host->BuildClientSecurityState();
+
+        // Do not enforce COEP on the main script fetch.
+        client_security_state->cross_origin_embedder_policy =
+            network::CrossOriginEmbedderPolicy();
+      }
     }
 
     const url::Origin& request_initiator = *resource_request->request_initiator;
@@ -363,7 +375,7 @@
             factory_process, request_initiator, trusted_isolation_info,
             /*coep_reporter=*/mojo::NullRemote(),
             std::move(url_loader_network_observer),
-            std::move(devtools_observer), /*client_security_state=*/nullptr,
+            std::move(devtools_observer), std::move(client_security_state),
             /*debug_tag=*/"CreateScriptLoader");
 
     mojo::PendingReceiver<network::mojom::URLLoaderFactory>
@@ -435,7 +447,7 @@
     const std::string& storage_domain,
     bool file_support,
     bool filesystem_url_support,
-    RenderFrameHost* creator_render_frame_host,
+    RenderFrameHostImpl* creator_render_frame_host,
     const blink::StorageKey& request_initiator_storage_key) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
diff --git a/content/browser/worker_host/worker_script_fetcher.h b/content/browser/worker_host/worker_script_fetcher.h
index 14c5d8b..8107aba 100644
--- a/content/browser/worker_host/worker_script_fetcher.h
+++ b/content/browser/worker_host/worker_script_fetcher.h
@@ -39,7 +39,7 @@
 namespace content {
 
 class DevToolsAgentHostImpl;
-class RenderFrameHost;
+class RenderFrameHostImpl;
 class ServiceWorkerContextWrapper;
 class ServiceWorkerMainResourceHandle;
 class ServiceWorkerObjectHost;
@@ -85,8 +85,8 @@
       int worker_process_id,
       const DedicatedOrSharedWorkerToken& worker_token,
       const GURL& initial_request_url,
-      RenderFrameHost* ancestor_render_frame_host,
-      RenderFrameHost* creator_render_frame_host,
+      RenderFrameHostImpl* ancestor_render_frame_host,
+      RenderFrameHostImpl* creator_render_frame_host,
       const net::SiteForCookies& site_for_cookies,
       const url::Origin& request_initiator,
       const blink::StorageKey& request_initiator_storage_key,
@@ -116,7 +116,7 @@
                       const std::string& storage_domain,
                       bool file_support,
                       bool filesystem_url_support,
-                      RenderFrameHost* creator_render_frame_host,
+                      RenderFrameHostImpl* creator_render_frame_host,
                       const blink::StorageKey& request_initiator_storage_key);
 
   // Calculates the final response URL from the redirect chain, URLs fetched by
@@ -140,7 +140,7 @@
       int worker_process_id,
       const DedicatedOrSharedWorkerToken& worker_token,
       const GURL& initial_request_url,
-      RenderFrameHost* creator_render_frame_host,
+      RenderFrameHostImpl* creator_render_frame_host,
       const net::IsolationInfo& trusted_isolation_info,
       std::unique_ptr<network::ResourceRequest> resource_request,
       std::unique_ptr<blink::PendingURLLoaderFactoryBundle>
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
index 6dd43128..907f38e 100644
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -230,11 +230,6 @@
 const base::Feature kCriticalClientHint{"CriticalClientHint",
                                         base::FEATURE_ENABLED_BY_DEFAULT};
 
-// Enable cross-origin sharing of WebAssembly modules.
-const base::Feature kCrossOriginWebAssemblyModuleSharingEnabled{
-    "CrossOriginWebAssemblyModuleSharingEnabled",
-    base::FEATURE_DISABLED_BY_DEFAULT};
-
 // Puts save-data header in the holdback mode. This disables sending of
 // save-data header to origins, and to the renderer processes within Chrome.
 const base::Feature kDataSaverHoldback{"DataSaverHoldback",
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
index 0559da1..74031e4 100644
--- a/content/public/common/content_features.h
+++ b/content/public/common/content_features.h
@@ -59,8 +59,6 @@
 CONTENT_EXPORT extern const base::Feature kCooperativeScheduling;
 CONTENT_EXPORT extern const base::Feature kCrashReporting;
 CONTENT_EXPORT extern const base::Feature kCriticalClientHint;
-CONTENT_EXPORT extern const base::Feature
-    kCrossOriginWebAssemblyModuleSharingEnabled;
 CONTENT_EXPORT extern const base::Feature kDataSaverHoldback;
 CONTENT_EXPORT extern const base::Feature
     kDebugHistoryInterventionNoUserActivation;
diff --git a/content/test/data/workers/post_ready.js b/content/test/data/workers/post_ready.js
new file mode 100644
index 0000000..35f4ef5
--- /dev/null
+++ b/content/test/data/workers/post_ready.js
@@ -0,0 +1 @@
+self.postMessage("ready");
diff --git a/content/test/data/workers/post_ready_with_pna_headers.js b/content/test/data/workers/post_ready_with_pna_headers.js
new file mode 100644
index 0000000..35f4ef5
--- /dev/null
+++ b/content/test/data/workers/post_ready_with_pna_headers.js
@@ -0,0 +1 @@
+self.postMessage("ready");
diff --git a/content/test/data/workers/post_ready_with_pna_headers.js.mock-http-headers b/content/test/data/workers/post_ready_with_pna_headers.js.mock-http-headers
new file mode 100644
index 0000000..97b389a1
--- /dev/null
+++ b/content/test/data/workers/post_ready_with_pna_headers.js.mock-http-headers
@@ -0,0 +1,4 @@
+HTTP/1.1 OK
+Content-Type: application/javascript
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Private-Network: true
diff --git a/content/test/data/workers/shared_post_ready.js b/content/test/data/workers/shared_post_ready.js
new file mode 100644
index 0000000..d95579a38
--- /dev/null
+++ b/content/test/data/workers/shared_post_ready.js
@@ -0,0 +1,3 @@
+self.addEventListener("connect", (evt) => {
+  evt.ports[0].postMessage("ready");
+});
diff --git a/content/test/data/workers/shared_post_ready_with_pna_headers.js b/content/test/data/workers/shared_post_ready_with_pna_headers.js
new file mode 100644
index 0000000..d95579a38
--- /dev/null
+++ b/content/test/data/workers/shared_post_ready_with_pna_headers.js
@@ -0,0 +1,3 @@
+self.addEventListener("connect", (evt) => {
+  evt.ports[0].postMessage("ready");
+});
diff --git a/content/test/data/workers/shared_post_ready_with_pna_headers.js.mock-http-headers b/content/test/data/workers/shared_post_ready_with_pna_headers.js.mock-http-headers
new file mode 100644
index 0000000..97b389a1
--- /dev/null
+++ b/content/test/data/workers/shared_post_ready_with_pna_headers.js.mock-http-headers
@@ -0,0 +1,4 @@
+HTTP/1.1 OK
+Content-Type: application/javascript
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Private-Network: true
diff --git a/docs/sync/model_api.md b/docs/sync/model_api.md
index 73022e22..b3072ac 100644
--- a/docs/sync/model_api.md
+++ b/docs/sync/model_api.md
@@ -81,7 +81,7 @@
 While the hash gets written to disk as part of the metadata, the tag itself is
 never persisted locally.
 
-[EntityData]: https://cs.chromium.org/chromium/src/components/sync/engine/entity_data.h
+[EntityData]: https://cs.chromium.org/chromium/src/components/sync/protocol/entity_data.h
 
 ## Storage
 
diff --git a/gpu/BUILD.gn b/gpu/BUILD.gn
index 04c1896..2b5a5b2 100644
--- a/gpu/BUILD.gn
+++ b/gpu/BUILD.gn
@@ -848,28 +848,6 @@
     libfuzzer_options = [ "max_len=16384" ]
   }
 
-  fuzzer_test("gpu_swiftshader_fuzzer") {
-    sources = [ "command_buffer/tests/fuzzer_main.cc" ]
-
-    defines = [ "GPU_FUZZER_USE_SWIFTSHADER" ]
-
-    deps = [
-      ":gles2",
-      ":gpu",
-      "//base",
-      "//base/third_party/dynamic_annotations",
-      "//ui/gfx/geometry",
-      "//ui/gl",
-      "//ui/gl:test_support",
-    ]
-
-    if (use_ozone) {
-      deps += [ "//ui/ozone" ]
-    }
-
-    libfuzzer_options = [ "max_len=16384" ]
-  }
-
   fuzzer_test("gpu_swangle_passthrough_fuzzer") {
     sources = [ "command_buffer/tests/fuzzer_main.cc" ]
 
@@ -944,31 +922,6 @@
     libfuzzer_options = [ "max_len=16384" ]
   }
 
-  fuzzer_test("gpu_raster_swiftshader_fuzzer") {
-    sources = [ "command_buffer/tests/fuzzer_main.cc" ]
-
-    defines = [
-      "GPU_FUZZER_USE_RASTER_DECODER",
-      "GPU_FUZZER_USE_SWIFTSHADER",
-    ]
-
-    deps = [
-      ":gles2",
-      ":gpu",
-      "//base",
-      "//base/third_party/dynamic_annotations",
-      "//ui/gfx/geometry",
-      "//ui/gl",
-      "//ui/gl:test_support",
-    ]
-
-    if (use_ozone) {
-      deps += [ "//ui/ozone" ]
-    }
-
-    libfuzzer_options = [ "max_len=16384" ]
-  }
-
   fuzzer_test("gpu_raster_angle_fuzzer") {
     sources = [ "command_buffer/tests/fuzzer_main.cc" ]
 
diff --git a/gpu/command_buffer/tests/fuzzer_main.cc b/gpu/command_buffer/tests/fuzzer_main.cc
index 898d744..e34756b 100644
--- a/gpu/command_buffer/tests/fuzzer_main.cc
+++ b/gpu/command_buffer/tests/fuzzer_main.cc
@@ -63,8 +63,7 @@
 const uint32_t kSmallTransferBufferSize = 16;
 const uint32_t kTinyTransferBufferSize = 3;
 
-#if !defined(GPU_FUZZER_USE_ANGLE) && !defined(GPU_FUZZER_USE_SWIFTSHADER) && \
-    !defined(GPU_FUZZER_USE_SWANGLE)
+#if !defined(GPU_FUZZER_USE_ANGLE) && !defined(GPU_FUZZER_USE_SWANGLE)
 #define GPU_FUZZER_USE_STUB
 #endif
 
@@ -347,13 +346,6 @@
         gl::GLImplementationParts(gl::kGLImplementationEGLANGLE), false));
     CHECK(
         gl::init::InitializeGLOneOffPlatformImplementation(false, false, true));
-#elif defined(GPU_FUZZER_USE_SWIFTSHADER)
-    command_line->AppendSwitchASCII(switches::kUseGL,
-                                    gl::kGLImplementationSwiftShaderName);
-    CHECK(gl::init::InitializeStaticGLBindingsImplementation(
-        gl::GLImplementationParts(gl::kGLImplementationSwiftShaderGL), false));
-    CHECK(
-        gl::init::InitializeGLOneOffPlatformImplementation(false, false, true));
 #elif defined(GPU_FUZZER_USE_STUB)
     gl::GLSurfaceTestSupport::InitializeOneOffWithStubBindings();
     // Because the context depends on configuration bits, we want to recreate
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
index cfba7b8..c88998dd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -375,7 +375,7 @@
 <translation id="4508750114462689118">Fermer la promo de connexion</translation>
 <translation id="4526249700380860531">Afficher et gérer les mots de passe enregistrés sur <ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" /></translation>
 <translation id="4536418791685807335">Veuillez essayer de vous reconnecter.</translation>
-<translation id="4540780316273593836">Une erreur est survenue</translation>
+<translation id="4540780316273593836">Un problème est survenu</translation>
 <translation id="457386861538956877">Autres...</translation>
 <translation id="4592368184551360546">Clavier</translation>
 <translation id="461440297010471931">Recherche sur Google</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
index 4678cf1..7d61741 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -496,7 +496,7 @@
 <translation id="5711039611392265845">निजता, सुरक्षा और डेटा इकट्ठा करने से जुड़ी ज़्यादा सेटिंग के लिए, <ph name="BEGIN_LINK" />सिंक और Google सेवाएं<ph name="END_LINK" /> देखें.</translation>
 <translation id="5724941645893276623">वेब को निजी रूप से ब्राउज़ करने के लिए, एक नया टैब जोड़ें</translation>
 <translation id="5728700505257787410">क्षमा करें, आपके खाते में प्रवेश करने में समस्या थी.</translation>
-<translation id="5731784586962650619">दूसरे ऐप्लिकेशन में सेव किए गए पासवर्ड</translation>
+<translation id="5731784586962650619">Passwords In Other Apps</translation>
 <translation id="5737974891429562743">खाते में साइन इन की जानकारियां पुरानी हो गई हैं. सिंक शुरू करने के लिए अपडेट करें.</translation>
 <translation id="5738887413654608789">इससे आप अपने आस-पास की चीज़ों पर आधारित वेब पृष्ठों की खोज कर सकते हैं.</translation>
 <translation id="5758631781033351321">आपको अपनी, पढ़ने की चीज़ों की सूची यहां मिलेगी</translation>
@@ -521,6 +521,7 @@
 <translation id="5896576662943111387">iOS के लिए बनाया गया</translation>
 <translation id="5897956970858271241">कॉपी किए गए लिंक पर जाएं</translation>
 <translation id="5899314093904173337">आस-पास के लोगों के साथ शेयर करने के लिए, उन्हें कैमरे या क्यूआर स्कैन करने वाले ऐप्लिकेशन से इस क्यूआर कोड को स्कैन करने दें</translation>
+<translation id="5902639236448164449"><ph name="URL" /> के लिए साइट की अनुमतियां मैनेज करें. टैब बंद करने पर यह अनुमतियां रीसेट हो जाएंगी.</translation>
 <translation id="5911030830365207728">Google Translate</translation>
 <translation id="5913600720976431809">पेज का अनुवाद करने के विकल्प</translation>
 <translation id="5938160824633642847">आपके डिवाइस की करीब पूरी जगह भर गई है. जगह खाली करके दोबारा आज़माएं.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
index 4d75dd5..c361c48 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -520,6 +520,7 @@
 <translation id="5896576662943111387">iOS-д зориулан бүтээсэн</translation>
 <translation id="5897956970858271241">Хуулсан холбоосонд зочлох</translation>
 <translation id="5899314093904173337">Ойролцоо байгаа хүмүүстэй хуваалцахын тулд тэдэнд энэ QR кодыг камер эсвэл QR код скан хийдэг аппаар скан хийхийг зөвшөөрнө үү</translation>
+<translation id="5902639236448164449"><ph name="URL" />-н сайтын зөвшөөрлийг удирдана. Таныг табыг хаах үед эдгээр зөвшөөрлийг шинэчлэх болно.</translation>
 <translation id="5911030830365207728">Google Translate</translation>
 <translation id="5913600720976431809">Хуудсыг орчуулах сонголтууд</translation>
 <translation id="5938160824633642847">Таны төхөөрөмж бараг дүүрсэн байна. Зай гаргаад дахин оролдоно уу.</translation>
diff --git a/ios/chrome/browser/reading_list/reading_list_distiller_page.h b/ios/chrome/browser/reading_list/reading_list_distiller_page.h
index c16ddcd0..842fb50d3 100644
--- a/ios/chrome/browser/reading_list/reading_list_distiller_page.h
+++ b/ios/chrome/browser/reading_list/reading_list_distiller_page.h
@@ -83,14 +83,10 @@
   // HandleGoogleCachedAMPPage will navigate to the iframe containing the actual
   // article page.
   void HandleGoogleCachedAMPPage();
-  // OnHandleGoogleCachedAMPPageResult is called asynchronously with the
-  // result of the javascript evaluation started in
-  // HandleGoogleCachedAMPPage.
-  void OnHandleGoogleCachedAMPPageResult(const base::Value* value);
   // Handles the JavaScript response. If the URL of the iframe is returned,
   // triggers a navigation to it. Stop distillation of the page there as the new
   // load will trigger a new distillation.
-  bool HandleGoogleCachedAMPPageJavaScriptResult(id result, id error);
+  void OnHandleGoogleCachedAMPPageResult(const base::Value* value, bool error);
 
   // Work around the fact that articles from wikipedia has the major part of the
   // article hidden.
diff --git a/ios/chrome/browser/reading_list/reading_list_distiller_page.mm b/ios/chrome/browser/reading_list/reading_list_distiller_page.mm
index 34557b5..14f604c 100644
--- a/ios/chrome/browser/reading_list/reading_list_distiller_page.mm
+++ b/ios/chrome/browser/reading_list/reading_list_distiller_page.mm
@@ -254,46 +254,28 @@
       base::BindOnce(
           &ReadingListDistillerPage::OnHandleGoogleCachedAMPPageResult,
           weak_ptr_factory_.GetWeakPtr()));
-
-  // If there is no error, the navigation completion will
-  // trigger a new |OnLoadURLDone| call that will resume
-  // the distillation.
 }
 
 void ReadingListDistillerPage::OnHandleGoogleCachedAMPPageResult(
-    const base::Value* value) {
-  if (!value->is_string()) {
-    return;
+    const base::Value* value,
+    bool error) {
+  if (!error && value->is_string()) {
+    GURL new_gurl(value->GetString());
+    if (new_gurl.is_valid()) {
+      FetchFavicon(new_gurl);
+      web::NavigationManager::WebLoadParams params(new_gurl);
+      CurrentWebState()->GetNavigationManager()->LoadURLWithParams(params);
+
+      // If there is no error, the navigation completion will
+      // trigger a new |OnLoadURLDone| call that will resume
+      // the distillation.
+      return;
+    }
   }
 
-  NSString* result = base::SysUTF8ToNSString(value->GetString());
-  if (!HandleGoogleCachedAMPPageJavaScriptResult(result, nil)) {
-    // If there is an error on navigation, continue
-    // normal distillation.
-    ContinuePageDistillation();
-  }
-}
-
-bool ReadingListDistillerPage::HandleGoogleCachedAMPPageJavaScriptResult(
-    id result,
-    id error) {
-  if (error) {
-    return false;
-  }
-  NSString* result_string = base::mac::ObjCCast<NSString>(result);
-  NSURL* new_url = [NSURL URLWithString:result_string];
-  if (!new_url) {
-    return false;
-  }
-
-  GURL new_gurl = net::GURLWithNSURL(new_url);
-  if (!new_gurl.is_valid()) {
-    return false;
-  }
-  FetchFavicon(new_gurl);
-  web::NavigationManager::WebLoadParams params(new_gurl);
-  CurrentWebState()->GetNavigationManager()->LoadURLWithParams(params);
-  return true;
+  // If there is an error on navigation, continue
+  // normal distillation.
+  ContinuePageDistillation();
 }
 
 bool ReadingListDistillerPage::IsWikipediaPage() {
diff --git a/ios/chrome/browser/sync/ios_chrome_sync_client.mm b/ios/chrome/browser/sync/ios_chrome_sync_client.mm
index e236e5d5..c1ace21 100644
--- a/ios/chrome/browser/sync/ios_chrome_sync_client.mm
+++ b/ios/chrome/browser/sync/ios_chrome_sync_client.mm
@@ -7,7 +7,6 @@
 #include <utility>
 
 #include "base/bind.h"
-#include "base/command_line.h"
 #include "base/feature_list.h"
 #include "base/logging.h"
 #include "base/task/post_task.h"
@@ -66,24 +65,6 @@
 #error "This file requires ARC support."
 #endif
 
-namespace {
-
-syncer::ModelTypeSet GetDisabledTypesFromCommandLine() {
-  std::string disabled_types_str =
-      base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
-          switches::kDisableSyncTypes);
-
-  syncer::ModelTypeSet disabled_types =
-      syncer::ModelTypeSetFromDebugString(disabled_types_str);
-  if (disabled_types.Has(syncer::DEVICE_INFO)) {
-    DLOG(WARNING) << "DEVICE_INFO cannot be disabled via a command-line switch";
-    disabled_types.Remove(syncer::DEVICE_INFO);
-  }
-  return disabled_types;
-}
-
-}  // namespace
-
 IOSChromeSyncClient::IOSChromeSyncClient(ChromeBrowserState* browser_state)
     : browser_state_(browser_state) {
   profile_web_data_service_ =
@@ -179,7 +160,7 @@
     syncer::SyncService* sync_service) {
   // The iOS port does not have any platform-specific datatypes.
   return component_factory_->CreateCommonDataTypeControllers(
-      GetDisabledTypesFromCommandLine(), sync_service);
+      /*disabled_types=*/{}, sync_service);
 }
 
 BookmarkUndoService* IOSChromeSyncClient::GetBookmarkUndoService() {
diff --git a/ios/chrome/browser/sync/sync_service_factory_unittest.cc b/ios/chrome/browser/sync/sync_service_factory_unittest.cc
index d257b67..9f5dd82 100644
--- a/ios/chrome/browser/sync/sync_service_factory_unittest.cc
+++ b/ios/chrome/browser/sync/sync_service_factory_unittest.cc
@@ -50,61 +50,37 @@
 
  protected:
   // Returns the collection of default datatypes.
-  std::vector<syncer::ModelType> DefaultDatatypes() {
+  syncer::ModelTypeSet DefaultDatatypes() {
     static_assert(38 == syncer::GetNumModelTypes(),
                   "When adding a new type, you probably want to add it here as "
                   "well (assuming it is already enabled).");
 
-    std::vector<syncer::ModelType> datatypes;
+    syncer::ModelTypeSet datatypes;
 
     // Common types. This excludes PASSWORDS because the password store factory
     // is null for testing and hence no controller gets instantiated.
-    datatypes.push_back(syncer::AUTOFILL);
-    datatypes.push_back(syncer::AUTOFILL_PROFILE);
-    datatypes.push_back(syncer::AUTOFILL_WALLET_DATA);
-    datatypes.push_back(syncer::AUTOFILL_WALLET_METADATA);
-    datatypes.push_back(syncer::AUTOFILL_WALLET_OFFER);
-    datatypes.push_back(syncer::BOOKMARKS);
-    datatypes.push_back(syncer::DEVICE_INFO);
-    datatypes.push_back(syncer::HISTORY_DELETE_DIRECTIVES);
-    datatypes.push_back(syncer::PREFERENCES);
-    datatypes.push_back(syncer::PRIORITY_PREFERENCES);
-    datatypes.push_back(syncer::READING_LIST);
+    datatypes.Put(syncer::AUTOFILL);
+    datatypes.Put(syncer::AUTOFILL_PROFILE);
+    datatypes.Put(syncer::AUTOFILL_WALLET_DATA);
+    datatypes.Put(syncer::AUTOFILL_WALLET_METADATA);
+    datatypes.Put(syncer::AUTOFILL_WALLET_OFFER);
+    datatypes.Put(syncer::BOOKMARKS);
+    datatypes.Put(syncer::DEVICE_INFO);
+    datatypes.Put(syncer::HISTORY_DELETE_DIRECTIVES);
+    datatypes.Put(syncer::PREFERENCES);
+    datatypes.Put(syncer::PRIORITY_PREFERENCES);
+    datatypes.Put(syncer::READING_LIST);
     // TODO(crbug.com/919489) Add SECURITY_EVENTS data type once it is enabled.
-    datatypes.push_back(syncer::SESSIONS);
-    datatypes.push_back(syncer::PROXY_TABS);
-    datatypes.push_back(syncer::TYPED_URLS);
-    datatypes.push_back(syncer::USER_EVENTS);
-    datatypes.push_back(syncer::USER_CONSENTS);
-    datatypes.push_back(syncer::SEND_TAB_TO_SELF);
+    datatypes.Put(syncer::SESSIONS);
+    datatypes.Put(syncer::PROXY_TABS);
+    datatypes.Put(syncer::TYPED_URLS);
+    datatypes.Put(syncer::USER_EVENTS);
+    datatypes.Put(syncer::USER_CONSENTS);
+    datatypes.Put(syncer::SEND_TAB_TO_SELF);
 
     return datatypes;
   }
 
-  // Returns the number of default datatypes.
-  size_t DefaultDatatypesCount() { return DefaultDatatypes().size(); }
-
-  // Asserts that all the default datatypes are in |types|, except
-  // for |exception_types|, which are asserted to not be in |types|.
-  void CheckDefaultDatatypesInSetExcept(syncer::ModelTypeSet types,
-                                        syncer::ModelTypeSet exception_types) {
-    std::vector<syncer::ModelType> defaults = DefaultDatatypes();
-    for (syncer::ModelType type : defaults) {
-      if (exception_types.Has(type)) {
-        EXPECT_FALSE(types.Has(type))
-            << type << " found in dataypes map, shouldn't be there.";
-      } else {
-        EXPECT_TRUE(types.Has(type)) << type << " not found in datatypes map";
-      }
-    }
-  }
-
-  void SetDisabledTypes(syncer::ModelTypeSet disabled_types) {
-    base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
-        switches::kDisableSyncTypes,
-        syncer::ModelTypeSetToDebugString(disabled_types));
-  }
-
   ChromeBrowserState* chrome_browser_state() {
     return chrome_browser_state_.get();
   }
@@ -120,40 +96,16 @@
   EXPECT_FALSE(SyncServiceFactory::GetForBrowserState(chrome_browser_state()));
 }
 
-// Verify that a normal (no command line flags) PSS can be created and
-// properly initialized.
-TEST_F(SyncServiceFactoryTest, CreatePSSDefault) {
+// Verify that a normal (no command line flags) SyncServiceImpl can be created
+// and properly initialized.
+TEST_F(SyncServiceFactoryTest, CreateSyncServiceImplDefault) {
   syncer::SyncServiceImpl* sync_service =
       SyncServiceFactory::GetAsSyncServiceImplForBrowserState(
           chrome_browser_state());
   syncer::ModelTypeSet types = sync_service->GetRegisteredDataTypesForTest();
-  EXPECT_EQ(DefaultDatatypesCount(), types.Size());
-  CheckDefaultDatatypesInSetExcept(types, syncer::ModelTypeSet());
-}
-
-// Verify that a PSS with a disabled datatype can be created and properly
-// initialized.
-TEST_F(SyncServiceFactoryTest, CreatePSSDisableOne) {
-  syncer::ModelTypeSet disabled_types(syncer::AUTOFILL);
-  SetDisabledTypes(disabled_types);
-  syncer::SyncServiceImpl* sync_service =
-      SyncServiceFactory::GetAsSyncServiceImplForBrowserState(
-          chrome_browser_state());
-  syncer::ModelTypeSet types = sync_service->GetRegisteredDataTypesForTest();
-  EXPECT_EQ(DefaultDatatypesCount() - disabled_types.Size(), types.Size());
-  CheckDefaultDatatypesInSetExcept(types, disabled_types);
-}
-
-// Verify that a PSS with multiple disabled datatypes can be created and
-// properly initialized.
-TEST_F(SyncServiceFactoryTest, CreatePSSDisableMultiple) {
-  syncer::ModelTypeSet disabled_types(syncer::AUTOFILL_PROFILE,
-                                      syncer::BOOKMARKS);
-  SetDisabledTypes(disabled_types);
-  syncer::SyncServiceImpl* sync_service =
-      SyncServiceFactory::GetAsSyncServiceImplForBrowserState(
-          chrome_browser_state());
-  syncer::ModelTypeSet types = sync_service->GetRegisteredDataTypesForTest();
-  EXPECT_EQ(DefaultDatatypesCount() - disabled_types.Size(), types.Size());
-  CheckDefaultDatatypesInSetExcept(types, disabled_types);
+  const syncer::ModelTypeSet default_types = DefaultDatatypes();
+  EXPECT_EQ(default_types.Size(), types.Size());
+  for (syncer::ModelType type : default_types) {
+    EXPECT_TRUE(types.Has(type)) << type << " not found in datatypes map";
+  }
 }
diff --git a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
index 488545f..246ca07 100644
--- a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
+++ b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
@@ -2624,18 +2624,10 @@
 
   NewTabPageTabHelper::FromWebState(webState)->SetDelegate(self);
 
-  // The language detection helper accepts a callback from the translate
-  // client, so must be created after it.
-  // This will explode if the webState doesn't have a JS injection manager
-  // (this only comes up in unit tests), so check for that and bypass the
-  // init of the translation helpers if needed.
-  // TODO(crbug.com/785238): Remove the need for this check.
-  if (webState->GetJSInjectionReceiver()) {
-    language::IOSLanguageDetectionTabHelper::CreateForWebState(
-        webState,
-        UrlLanguageHistogramFactory::GetForBrowserState(self.browserState));
-    ChromeIOSTranslateClient::CreateForWebState(webState);
-  }
+  language::IOSLanguageDetectionTabHelper::CreateForWebState(
+      webState,
+      UrlLanguageHistogramFactory::GetForBrowserState(self.browserState));
+  ChromeIOSTranslateClient::CreateForWebState(webState);
 
   if (AccountConsistencyService* accountConsistencyService =
           ios::AccountConsistencyServiceFactory::GetForBrowserState(
diff --git a/ios/chrome/browser/ui/download/download_manager_egtest.mm b/ios/chrome/browser/ui/download/download_manager_egtest.mm
index 462a426..e0e8564 100644
--- a/ios/chrome/browser/ui/download/download_manager_egtest.mm
+++ b/ios/chrome/browser/ui/download/download_manager_egtest.mm
@@ -47,8 +47,7 @@
 }
 
 // Waits until Open in... button is shown.
-[[nodiscard]] bool WaitForOpenInButton();
-bool WaitForOpenInButton() {
+[[nodiscard]] bool WaitForOpenInButton() {
   // These downloads usually take longer and need a longer timeout.
   const NSTimeInterval kLongDownloadTimeout = 60;
   return base::test::ios::WaitUntilConditionOrTimeout(kLongDownloadTimeout, ^{
@@ -61,8 +60,7 @@
 }
 
 // Waits until Download button is shown.
-[[nodiscard]] bool WaitForDownloadButton();
-bool WaitForDownloadButton() {
+[[nodiscard]] bool WaitForDownloadButton() {
   return base::test::ios::WaitUntilConditionOrTimeout(
       base::test::ios::kWaitForPageLoadTimeout, ^{
         NSError* error = nil;
@@ -74,8 +72,7 @@
 }
 
 // Waits until Open in Downloads button is shown.
-[[nodiscard]] bool WaitForOpenInDownloadsButton();
-bool WaitForOpenInDownloadsButton() {
+[[nodiscard]] bool WaitForOpenInDownloadsButton() {
   return base::test::ios::WaitUntilConditionOrTimeout(
       base::test::ios::kWaitForUIElementTimeout, ^{
         NSError* error = nil;
diff --git a/ios/chrome/browser/ui/download/mobileconfig_egtest.mm b/ios/chrome/browser/ui/download/mobileconfig_egtest.mm
index bede60a..7c5f40b6 100644
--- a/ios/chrome/browser/ui/download/mobileconfig_egtest.mm
+++ b/ios/chrome/browser/ui/download/mobileconfig_egtest.mm
@@ -45,8 +45,7 @@
 }
 
 // Waits until the warning alert is shown.
-[[nodiscard]] bool WaitForWarningAlert();
-bool WaitForWarningAlert() {
+[[nodiscard]] bool WaitForWarningAlert() {
   return base::test::ios::WaitUntilConditionOrTimeout(
       base::test::ios::kWaitForPageLoadTimeout, ^{
         NSError* error = nil;
diff --git a/ios/chrome/browser/ui/incognito_reauth/BUILD.gn b/ios/chrome/browser/ui/incognito_reauth/BUILD.gn
index 713dcc8..38416f1 100644
--- a/ios/chrome/browser/ui/incognito_reauth/BUILD.gn
+++ b/ios/chrome/browser/ui/incognito_reauth/BUILD.gn
@@ -69,6 +69,7 @@
     "//ios/chrome/browser/ui/main:observing_scene_agent",
     "//ios/chrome/browser/web_state_list",
     "//ios/chrome/common/ui/reauthentication",
+    "//ios/web/public",
     "//ui/base",
   ]
   frameworks = [ "UIKit.framework" ]
diff --git a/ios/chrome/browser/ui/incognito_reauth/incognito_reauth_scene_agent.mm b/ios/chrome/browser/ui/incognito_reauth/incognito_reauth_scene_agent.mm
index b3085e60..0e6b45f 100644
--- a/ios/chrome/browser/ui/incognito_reauth/incognito_reauth_scene_agent.mm
+++ b/ios/chrome/browser/ui/incognito_reauth/incognito_reauth_scene_agent.mm
@@ -22,6 +22,7 @@
 #import "ios/chrome/browser/web_state_list/web_state_list.h"
 #import "ios/chrome/common/ui/reauthentication/reauthentication_protocol.h"
 #include "ios/chrome/grit/ios_strings.h"
+#import "ios/web/public/web_state.h"
 #include "ui/base/l10n/l10n_util.h"
 
 #if !defined(__has_feature) || !__has_feature(objc_arc)
@@ -178,6 +179,9 @@
   } else if (level >= SceneActivationLevelForegroundInactive) {
     [self updateWindowHasIncognitoContent:sceneState];
     [self logEnabledHistogramOnce];
+    // Close media presentations when the app is foregrounded rather than
+    // backgrounded to avoid freezes.
+    [self closeMediaPresentations];
   }
 }
 
@@ -219,4 +223,22 @@
          self.localState->GetBoolean(prefs::kIncognitoAuthenticationSetting);
 }
 
+// Closes the media presentations to avoid having the fullscreen video on top of
+// the blocker.
+- (void)closeMediaPresentations {
+  if (![self featureEnabled])
+    return;
+
+  Browser* browser =
+      self.sceneState.interfaceProvider.incognitoInterface.browser;
+  if (browser) {
+    if (browser->GetWebStateList() &&
+        browser->GetWebStateList()->GetActiveWebState()) {
+      browser->GetWebStateList()
+          ->GetActiveWebState()
+          ->CloseMediaPresentations();
+    }
+  }
+}
+
 @end
diff --git a/ios/chrome/browser/ui/ntp/feed_header_view_controller.mm b/ios/chrome/browser/ui/ntp/feed_header_view_controller.mm
index 42ea038a..8f96076 100644
--- a/ios/chrome/browser/ui/ntp/feed_header_view_controller.mm
+++ b/ios/chrome/browser/ui/ntp/feed_header_view_controller.mm
@@ -33,8 +33,9 @@
 // TODO(crbug.com/1085419): Get card width from Mulder.
 const CGFloat kDiscoverFeedContentWith = 430;
 // The height of the header container. The content is unaffected.
-const CGFloat kFeedHeaderHeight = 40;
-
+// TODO(crbug.com/1277504): Only keep the WC header after launch.
+const CGFloat kWebChannelsHeaderHeight = 52;
+const CGFloat kDiscoverFeedHeaderHeight = 40;
 // * Values below are exclusive to Web Channels.
 // The width of the feed selector segments.
 const CGFloat kHeaderSegmentWidth = 150;
@@ -80,6 +81,9 @@
 
   self.container = [[UIView alloc] init];
 
+  self.view.backgroundColor =
+      [[UIColor colorNamed:kBackgroundColor] colorWithAlphaComponent:0.95];
+
   self.view.translatesAutoresizingMaskIntoConstraints = NO;
   self.container.translatesAutoresizingMaskIntoConstraints = NO;
 
@@ -191,7 +195,6 @@
 - (void)applyHeaderConstraints {
   // Anchor container and menu button.
   [NSLayoutConstraint activateConstraints:@[
-    [self.view.heightAnchor constraintEqualToConstant:kFeedHeaderHeight],
     [self.container.topAnchor constraintEqualToAnchor:self.view.topAnchor],
     [self.container.bottomAnchor
         constraintEqualToAnchor:self.view.bottomAnchor],
@@ -209,6 +212,8 @@
   if (IsWebChannelsEnabled()) {
     // Anchor segmented control.
     [NSLayoutConstraint activateConstraints:@[
+      [self.view.heightAnchor
+          constraintEqualToConstant:kWebChannelsHeaderHeight],
       [self.segmentedControl.centerXAnchor
           constraintEqualToAnchor:self.container.centerXAnchor],
       [self.segmentedControl.centerYAnchor
@@ -219,6 +224,8 @@
   } else {
     // Anchors title label.
     [NSLayoutConstraint activateConstraints:@[
+      [self.view.heightAnchor
+          constraintEqualToConstant:kDiscoverFeedHeaderHeight],
       [self.titleLabel.leadingAnchor
           constraintEqualToAnchor:self.container.leadingAnchor
                          constant:kTitleHorizontalMargin],
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_header_constants.h b/ios/chrome/browser/ui/ntp/new_tab_page_header_constants.h
index e4a027a..5c514f2 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_header_constants.h
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_header_constants.h
@@ -9,10 +9,6 @@
 
 namespace ntp_header {
 
-// The minimum height of the new tab page header view when the new tab page is
-// scrolled up.
-extern const CGFloat kMinHeaderHeight;
-
 // The scroll distance within which to animate the search field from its
 // initial frame to its final full bleed frame.
 extern const CGFloat kAnimationDistance;
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_header_constants.mm b/ios/chrome/browser/ui/ntp/new_tab_page_header_constants.mm
index 1e292db1..1b3571a2 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_header_constants.mm
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_header_constants.mm
@@ -10,7 +10,6 @@
 
 namespace ntp_header {
 
-const CGFloat kMinHeaderHeight = 62;
 const CGFloat kAnimationDistance = 42;
 const CGFloat kFakeLocationBarTopConstraint = 4;
 const CGFloat kScrolledToTopOmniboxBottomMargin = 4;
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_view_controller.mm b/ios/chrome/browser/ui/ntp/new_tab_page_view_controller.mm
index 05759eb..c7740ab4 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_view_controller.mm
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_view_controller.mm
@@ -32,10 +32,6 @@
 #error "This file requires ARC support."
 #endif
 
-namespace {
-const CGFloat kFeedHeaderTopPaddingWhenStuck = 10;
-}
-
 @interface NewTabPageViewController () <NewTabPageOmniboxPositioning,
                                         UICollectionViewDelegate,
                                         UIGestureRecognizerDelegate>
@@ -646,8 +642,7 @@
 
   self.feedHeaderConstraints = @[
     [self.feedHeaderViewController.view.topAnchor
-        constraintEqualToAnchor:self.headerController.view.bottomAnchor
-                       constant:kFeedHeaderTopPaddingWhenStuck],
+        constraintEqualToAnchor:self.headerController.view.bottomAnchor],
   ];
 
   [NSLayoutConstraint activateConstraints:self.feedHeaderConstraints];
@@ -821,8 +816,7 @@
 // should stick to the top of the NTP.
 - (CGFloat)offsetToStickOmniboxAndHeader {
   return -(self.headerController.view.frame.size.height -
-           [self stickyOmniboxHeight]) -
-         kFeedHeaderTopPaddingWhenStuck;
+           [self stickyOmniboxHeight]);
 }
 
 // Whether the collection view has attained its minimum height.
diff --git a/ios/chrome/browser/ui/toolbar/primary_toolbar_view_controller.mm b/ios/chrome/browser/ui/toolbar/primary_toolbar_view_controller.mm
index 5b14db6e..f9329b2 100644
--- a/ios/chrome/browser/ui/toolbar/primary_toolbar_view_controller.mm
+++ b/ios/chrome/browser/ui/toolbar/primary_toolbar_view_controller.mm
@@ -268,6 +268,7 @@
 - (void)expandLocationBar {
   [self deactivateViewLocationBarConstraints];
   [NSLayoutConstraint activateConstraints:self.view.expandedConstraints];
+  NSLog(@"rkgibson: Expanding");
   [self.view layoutIfNeeded];
 }
 
@@ -276,6 +277,7 @@
   if (IsSplitToolbarMode(self)) {
     [NSLayoutConstraint
         activateConstraints:self.view.contractedNoMarginConstraints];
+    NSLog(@"rkgibson: Contracting");
   } else {
     [NSLayoutConstraint activateConstraints:self.view.contractedConstraints];
   }
diff --git a/ios/chrome/browser/web/restore_egtest.mm b/ios/chrome/browser/web/restore_egtest.mm
index b9fad6d6..bb64c17b 100644
--- a/ios/chrome/browser/web/restore_egtest.mm
+++ b/ios/chrome/browser/web/restore_egtest.mm
@@ -90,8 +90,7 @@
 
 // Returns true when omnibox contains |text|, otherwise returns false after
 // after a timeout.
-[[nodiscard]] bool WaitForOmniboxContaining(std::string text);
-bool WaitForOmniboxContaining(std::string text) {
+[[nodiscard]] bool WaitForOmniboxContaining(std::string text) {
   return base::test::ios::WaitUntilConditionOrTimeout(
       base::test::ios::kWaitForUIElementTimeout, ^bool {
         NSError* error = nil;
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey_ui.mm b/ios/chrome/test/earl_grey/chrome_earl_grey_ui.mm
index fcdfe15..43ca9267 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey_ui.mm
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey_ui.mm
@@ -124,9 +124,9 @@
 
 - (void)closeToolsMenu {
   if ([ChromeEarlGrey isNewOverflowMenuEnabled] &&
-      [ChromeEarlGrey isCompactWidth]) {
-    // With the new overflow menu on compact devices, the half sheet covers the
-    // bottom half of the screen. Swiping down on the sheet will close the menu.
+      UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
+    // With the new overflow menu on iPhone, the half sheet covers the bottom
+    // half of the screen. Swiping down on the sheet will close the menu.
     [[EarlGrey selectElementWithMatcher:chrome_test_util::ToolsMenuView()]
         performAction:grey_swipeFastInDirection(kGREYDirectionDown)];
   } else {
diff --git a/ios/web/browsing_data/browsing_data_remover_unittest.mm b/ios/web/browsing_data/browsing_data_remover_unittest.mm
index b1b34bfa..f45d3cd8 100644
--- a/ios/web/browsing_data/browsing_data_remover_unittest.mm
+++ b/ios/web/browsing_data/browsing_data_remover_unittest.mm
@@ -24,8 +24,7 @@
 
 // Makes sure that the DataStore is created, otherwise cookies can't be set in
 // some cases.
-[[nodiscard]] bool FetchCookieStore();
-bool FetchCookieStore() {
+[[nodiscard]] bool FetchCookieStore() {
   __block bool fetch_done = false;
 
   NSSet* data_types = [NSSet setWithObject:WKWebsiteDataTypeCookies];
@@ -41,8 +40,7 @@
 
 // Adds cookies to the default data store. Returns whether it succeed to add
 // cookies. Declare the function to have the "WARN_UNUSED_RESULT".
-[[nodiscard]] bool AddCookie();
-bool AddCookie() {
+[[nodiscard]] bool AddCookie() {
   NSHTTPCookie* cookie = [NSHTTPCookie cookieWithProperties:@{
     NSHTTPCookiePath : @"path",
     NSHTTPCookieName : @"cookieName",
@@ -63,8 +61,7 @@
 
 // Checks that the cookies data store has cookies or not, depending on
 // |should_have_cookies|. Declare the function to have the "WARN_UNUSED_RESULT".
-[[nodiscard]] bool HasCookies(bool should_have_cookies);
-bool HasCookies(bool should_have_cookies) {
+[[nodiscard]] bool HasCookies(bool should_have_cookies) {
   __block bool has_cookies = false;
   __block bool completion_called = false;
 
@@ -85,9 +82,7 @@
 // Returns whether the completion block of the clear browsing data has been
 // called. Declare the function to have the "WARN_UNUSED_RESULT".
 [[nodiscard]] bool RemoveCookies(web::BrowserState* browser_state,
-                                 web::ClearBrowsingDataMask types);
-bool RemoveCookies(web::BrowserState* browser_state,
-                   web::ClearBrowsingDataMask types) {
+                                 web::ClearBrowsingDataMask types) {
   web::BrowsingDataRemover* remover =
       web::BrowsingDataRemover::FromBrowserState(browser_state);
   __block bool closure_called = false;
diff --git a/ios/web/public/test/fakes/fake_web_state.h b/ios/web/public/test/fakes/fake_web_state.h
index b47be3c..5019955e 100644
--- a/ios/web/public/test/fakes/fake_web_state.h
+++ b/ios/web/public/test/fakes/fake_web_state.h
@@ -109,6 +109,7 @@
   bool CanTakeSnapshot() const override;
   void TakeSnapshot(const gfx::RectF& rect, SnapshotCallback callback) override;
   void CreateFullPagePdf(base::OnceCallback<void(NSData*)> callback) override;
+  void CloseMediaPresentations() override;
 
   // Setters for test data.
   void SetBrowserState(BrowserState* browser_state);
diff --git a/ios/web/public/test/fakes/fake_web_state.mm b/ios/web/public/test/fakes/fake_web_state.mm
index e3060fa..0917c2c0 100644
--- a/ios/web/public/test/fakes/fake_web_state.mm
+++ b/ios/web/public/test/fakes/fake_web_state.mm
@@ -501,6 +501,8 @@
   std::move(callback).Run([[NSData alloc] init]);
 }
 
+void FakeWebState::CloseMediaPresentations() {}
+
 bool FakeWebState::SetSessionStateData(NSData* data) {
   return false;
 }
diff --git a/ios/web/public/web_state.h b/ios/web/public/web_state.h
index 5a530e4e0..122fe8db 100644
--- a/ios/web/public/web_state.h
+++ b/ios/web/public/web_state.h
@@ -425,6 +425,10 @@
   virtual void CreateFullPagePdf(
       base::OnceCallback<void(NSData*)> callback) = 0;
 
+  // Tries to dismiss the presented states of the media (fullscreen or Picture
+  // in Picture).
+  virtual void CloseMediaPresentations() = 0;
+
   // Adds and removes observers for page navigation notifications. The order in
   // which notifications are sent to observers is undefined. Clients must be
   // sure to remove the observer before they go away.
diff --git a/ios/web/web_state/error_page_inttest.mm b/ios/web/web_state/error_page_inttest.mm
index 17e07fd7..be79e285 100644
--- a/ios/web/web_state/error_page_inttest.mm
+++ b/ios/web/web_state/error_page_inttest.mm
@@ -48,8 +48,7 @@
 
 // Waits for text for and error in NSURLErrorDomain and
 // kCFURLErrorNetworkConnectionLost error code.
-[[nodiscard]] bool WaitForErrorText(WebState* web_state, const GURL& url);
-bool WaitForErrorText(WebState* web_state, const GURL& url) {
+[[nodiscard]] bool WaitForErrorText(WebState* web_state, const GURL& url) {
   return test::WaitForWebViewContainingText(
       web_state, testing::GetErrorText(
                      web_state, url, web::testing::CreateConnectionLostError(),
diff --git a/ios/web/web_state/ui/crw_web_controller.h b/ios/web/web_state/ui/crw_web_controller.h
index 5cc873a..891e01d 100644
--- a/ios/web/web_state/ui/crw_web_controller.h
+++ b/ios/web/web_state/ui/crw_web_controller.h
@@ -177,6 +177,10 @@
 - (void)createFullPagePDFWithCompletion:
     (void (^)(NSData* PDFDocumentData))completion;
 
+// Tries to dismiss the presented states of the media (fullscreen or Picture in
+// Picture).
+- (void)closeMediaPresentations;
+
 // Creates a web view if it's not yet created. Returns the web view.
 - (WKWebView*)ensureWebViewCreated;
 
diff --git a/ios/web/web_state/ui/crw_web_controller.mm b/ios/web/web_state/ui/crw_web_controller.mm
index fb5d2c0..43b1eea 100644
--- a/ios/web/web_state/ui/crw_web_controller.mm
+++ b/ios/web/web_state/ui/crw_web_controller.mm
@@ -848,6 +848,22 @@
   web::CreateFullPagePdf(self.webView, base::BindOnce(completionBlock));
 }
 
+- (void)closeMediaPresentations {
+#if !TARGET_OS_MACCATALYST
+  if (@available(iOS 15, *)) {
+    [self.webView requestMediaPlaybackStateWithCompletionHandler:^(
+                      WKMediaPlaybackState mediaPlaybackState) {
+      if (mediaPlaybackState == WKMediaPlaybackStateNone)
+        return;
+
+      // Completion handler is needed to avoid a crash when called.
+      [self.webView closeAllMediaPresentationsWithCompletionHandler:^{
+      }];
+    }];
+  }
+#endif
+}
+
 - (void)removeWebViewFromViewHierarchy {
   [_containerView resetContent];
 }
diff --git a/ios/web/web_state/web_state_impl.h b/ios/web/web_state/web_state_impl.h
index 5e81db1..b0f4be0 100644
--- a/ios/web/web_state/web_state_impl.h
+++ b/ios/web/web_state/web_state_impl.h
@@ -308,6 +308,7 @@
   bool CanTakeSnapshot() const final;
   void TakeSnapshot(const gfx::RectF& rect, SnapshotCallback callback) final;
   void CreateFullPagePdf(base::OnceCallback<void(NSData*)> callback) final;
+  void CloseMediaPresentations() final;
   void AddObserver(WebStateObserver* observer) final;
   void RemoveObserver(WebStateObserver* observer) final;
   void CloseWebState() final;
diff --git a/ios/web/web_state/web_state_impl.mm b/ios/web/web_state/web_state_impl.mm
index 850a8c8..2896545a 100644
--- a/ios/web/web_state/web_state_impl.mm
+++ b/ios/web/web_state/web_state_impl.mm
@@ -548,6 +548,12 @@
   RealizedState()->CreateFullPagePdf(std::move(callback));
 }
 
+void WebStateImpl::CloseMediaPresentations() {
+  if (pimpl_) {
+    pimpl_->CloseMediaPresentations();
+  }
+}
+
 void WebStateImpl::AddObserver(WebStateObserver* observer) {
   observers_.AddObserver(observer);
 }
diff --git a/ios/web/web_state/web_state_impl_realized_web_state.h b/ios/web/web_state/web_state_impl_realized_web_state.h
index 9de268a..cb4de36 100644
--- a/ios/web/web_state/web_state_impl_realized_web_state.h
+++ b/ios/web/web_state/web_state_impl_realized_web_state.h
@@ -170,6 +170,7 @@
   bool CanTakeSnapshot() const;
   void TakeSnapshot(const gfx::RectF& rect, SnapshotCallback callback);
   void CreateFullPagePdf(base::OnceCallback<void(NSData*)> callback);
+  void CloseMediaPresentations();
   void CloseWebState();
   bool SetSessionStateData(NSData* data);
   NSData* SessionStateData() const;
diff --git a/ios/web/web_state/web_state_impl_realized_web_state.mm b/ios/web/web_state/web_state_impl_realized_web_state.mm
index f12dba8..0e754b82 100644
--- a/ios/web/web_state/web_state_impl_realized_web_state.mm
+++ b/ios/web/web_state/web_state_impl_realized_web_state.mm
@@ -778,6 +778,10 @@
       }];
 }
 
+void WebStateImpl::RealizedWebState::CloseMediaPresentations() {
+  [web_controller_ closeMediaPresentations];
+}
+
 void WebStateImpl::RealizedWebState::CloseWebState() {
   if (delegate_) {
     delegate_->CloseWebState(owner_);
diff --git a/media/renderers/paint_canvas_video_renderer_unittest.cc b/media/renderers/paint_canvas_video_renderer_unittest.cc
index f6d5700..a0265418 100644
--- a/media/renderers/paint_canvas_video_renderer_unittest.cc
+++ b/media/renderers/paint_canvas_video_renderer_unittest.cc
@@ -935,9 +935,8 @@
       2 /*xoffset*/, 1 /*yoffset*/, false /*flip_y*/, true);
 }
 
-// Fixture for tests that require a GL context. The input parameter indicates
-// whether OOPR mode is enabled.
-class PaintCanvasVideoRendererWithGLTest : public testing::TestWithParam<bool> {
+// Fixture for tests that require a GL context.
+class PaintCanvasVideoRendererWithGLTest : public testing::Test {
  public:
   using GetColorCallback = base::RepeatingCallback<SkColor(int, int)>;
 
@@ -946,9 +945,7 @@
     enable_pixels_.emplace();
     media_context_ = base::MakeRefCounted<viz::TestInProcessContextProvider>(
         /*enable_gles2_interface=*/false,
-        /*support_locking=*/false,
-        GetParam() ? viz::RasterInterfaceType::OOPR
-                   : viz::RasterInterfaceType::GPU);
+        /*support_locking=*/false, viz::RasterInterfaceType::GPU);
     gpu::ContextResult result = media_context_->BindToCurrentThread();
     ASSERT_EQ(result, gpu::ContextResult::kSuccess);
 
@@ -1139,11 +1136,7 @@
   base::test::TaskEnvironment task_environment_;
 };
 
-INSTANTIATE_TEST_SUITE_P(OopRasterMode,
-                         PaintCanvasVideoRendererWithGLTest,
-                         testing::Bool());
-
-TEST_P(PaintCanvasVideoRendererWithGLTest, CopyVideoFrameYUVDataToGLTexture) {
+TEST_F(PaintCanvasVideoRendererWithGLTest, CopyVideoFrameYUVDataToGLTexture) {
   auto* destination_gl = destination_context_->ContextGL();
   DCHECK(destination_gl);
   GLenum target = GL_TEXTURE_2D;
@@ -1174,7 +1167,7 @@
   destination_gl->DeleteTextures(1, &texture);
 }
 
-TEST_P(PaintCanvasVideoRendererWithGLTest,
+TEST_F(PaintCanvasVideoRendererWithGLTest,
        CopyVideoFrameYUVDataToGLTexture_FlipY) {
   auto* destination_gl = destination_context_->ContextGL();
   DCHECK(destination_gl);
@@ -1208,7 +1201,7 @@
 
 // Checks that we correctly copy a RGBA shared image VideoFrame when using
 // CopyVideoFrameYUVDataToGLTexture, including correct cropping.
-TEST_P(PaintCanvasVideoRendererWithGLTest,
+TEST_F(PaintCanvasVideoRendererWithGLTest,
        CopyVideoFrameTexturesToGLTextureRGBA) {
   base::RunLoop run_loop;
   scoped_refptr<VideoFrame> frame = CreateTestRGBAFrame(run_loop.QuitClosure());
@@ -1222,7 +1215,7 @@
 // Checks that we correctly copy a RGBA shared image VideoFrame that needs read
 // lock fences, when using CopyVideoFrameYUVDataToGLTexture, including correct
 // cropping.
-TEST_P(PaintCanvasVideoRendererWithGLTest,
+TEST_F(PaintCanvasVideoRendererWithGLTest,
        CopyVideoFrameTexturesToGLTextureRGBA_ReadLockFence) {
   base::RunLoop run_loop;
   scoped_refptr<VideoFrame> frame = CreateTestRGBAFrame(run_loop.QuitClosure());
@@ -1236,7 +1229,7 @@
 
 // Checks that we correctly paint a RGBA shared image VideoFrame, including
 // correct cropping.
-TEST_P(PaintCanvasVideoRendererWithGLTest, PaintRGBA) {
+TEST_F(PaintCanvasVideoRendererWithGLTest, PaintRGBA) {
   base::RunLoop run_loop;
   scoped_refptr<VideoFrame> frame = CreateTestRGBAFrame(run_loop.QuitClosure());
 
@@ -1248,7 +1241,7 @@
 
 // Checks that we correctly copy an I420 shared image VideoFrame when using
 // CopyVideoFrameYUVDataToGLTexture, including correct cropping.
-TEST_P(PaintCanvasVideoRendererWithGLTest,
+TEST_F(PaintCanvasVideoRendererWithGLTest,
        CopyVideoFrameTexturesToGLTextureI420) {
   base::RunLoop run_loop;
   scoped_refptr<VideoFrame> frame = CreateTestI420Frame(run_loop.QuitClosure());
@@ -1261,7 +1254,7 @@
 
 // Checks that we correctly paint a I420 shared image VideoFrame, including
 // correct cropping.
-TEST_P(PaintCanvasVideoRendererWithGLTest, PaintI420) {
+TEST_F(PaintCanvasVideoRendererWithGLTest, PaintI420) {
   base::RunLoop run_loop;
   scoped_refptr<VideoFrame> frame = CreateTestI420Frame(run_loop.QuitClosure());
 
@@ -1273,7 +1266,7 @@
 
 // Checks that we correctly paint a I420 shared image VideoFrame, including
 // correct cropping.
-TEST_P(PaintCanvasVideoRendererWithGLTest, PaintI420NotSubset) {
+TEST_F(PaintCanvasVideoRendererWithGLTest, PaintI420NotSubset) {
   base::RunLoop run_loop;
   scoped_refptr<VideoFrame> frame =
       CreateTestI420FrameNotSubset(run_loop.QuitClosure());
@@ -1286,7 +1279,7 @@
 
 // Checks that we correctly copy a NV12 shared image VideoFrame when using
 // CopyVideoFrameYUVDataToGLTexture, including correct cropping.
-TEST_P(PaintCanvasVideoRendererWithGLTest,
+TEST_F(PaintCanvasVideoRendererWithGLTest,
        CopyVideoFrameTexturesToGLTextureNV12) {
   base::RunLoop run_loop;
   scoped_refptr<VideoFrame> frame = CreateTestNV12Frame(run_loop.QuitClosure());
@@ -1303,7 +1296,7 @@
 
 // Checks that we correctly paint a NV12 shared image VideoFrame, including
 // correct cropping.
-TEST_P(PaintCanvasVideoRendererWithGLTest, PaintNV12) {
+TEST_F(PaintCanvasVideoRendererWithGLTest, PaintNV12) {
   base::RunLoop run_loop;
   scoped_refptr<VideoFrame> frame = CreateTestNV12Frame(run_loop.QuitClosure());
   if (!frame) {
diff --git a/mojo/core/node_controller.cc b/mojo/core/node_controller.cc
index 0336398..7cde771 100644
--- a/mojo/core/node_controller.cc
+++ b/mojo/core/node_controller.cc
@@ -800,10 +800,14 @@
   DCHECK(channel_message && !channel_message->has_handles());
 
   scoped_refptr<NodeChannel> broker = GetBrokerChannel();
-  if (broker)
+  if (broker) {
     broker->Broadcast(std::move(channel_message));
-  else
+  } else if (broker_name_ == ports::kInvalidNodeName) {
+    // Do an additional check if broker_name_ is not set. It's possible that we
+    // don't have a broker channel even though we're not the broker ourselves,
+    // e.g. if this code path is called from the channel error path..
     OnBroadcast(name_, std::move(channel_message));
+  }
 }
 
 void NodeController::PortStatusChanged(const ports::PortRef& port) {
diff --git a/mojo/core/ports/node.cc b/mojo/core/ports/node.cc
index c5bb76e..965cbc5 100644
--- a/mojo/core/ports/node.cc
+++ b/mojo/core/ports/node.cc
@@ -873,25 +873,35 @@
     return ERROR_PORT_UNKNOWN;  // The port may have observed closure first.
 
   bool try_remove_proxy_immediately;
+  bool erase_port = false;
   {
     SinglePortLocker locker(&port_ref);
     auto* port = locker.port();
-    if (port->state != Port::kProxying)
-      return OOPS(ERROR_PORT_STATE_UNEXPECTED);
 
-    // If the last sequence number is invalid, this is a signal that we need to
-    // retransmit the ObserveProxy event for this port rather than flagging the
-    // the proxy for removal ASAP.
-    try_remove_proxy_immediately =
-        event->last_sequence_num() != kInvalidSequenceNum;
-    if (try_remove_proxy_immediately) {
-      // We can now remove this port once we have received and forwarded the
-      // last message addressed to this port.
-      port->remove_proxy_on_last_message = true;
-      port->last_sequence_num_to_receive = event->last_sequence_num();
+    if (port->state == Port::kProxying) {
+      // If the last sequence number is invalid, this is a signal that we need
+      // to retransmit the ObserveProxy event for this port rather than flagging
+      // the the proxy for removal ASAP.
+      try_remove_proxy_immediately =
+          event->last_sequence_num() != kInvalidSequenceNum;
+      if (try_remove_proxy_immediately) {
+        // We can now remove this port once we have received and forwarded the
+        // last message addressed to this port.
+        port->remove_proxy_on_last_message = true;
+        port->last_sequence_num_to_receive = event->last_sequence_num();
+      }
+    } else if (port->state == Port::kClosed) {
+      erase_port = true;
+    } else {
+      return OOPS(ERROR_PORT_STATE_UNEXPECTED);
     }
   }
 
+  if (erase_port) {
+    ErasePort(port_ref.name());
+    return OK;
+  }
+
   if (try_remove_proxy_immediately)
     TryRemoveProxy(port_ref);
   else
@@ -914,6 +924,7 @@
   bool notify_delegate = false;
   NodeName peer_node_name;
   bool try_remove_proxy = false;
+  bool erase_port = false;
   {
     SinglePortLocker locker(&port_ref);
     auto* port = locker.port();
@@ -946,6 +957,10 @@
       // read from the other end.
       port->last_sequence_num_acknowledged =
           port->next_sequence_num_to_send - 1;
+    } else if (port->state == Port::kClosed) {
+      // This is the ack for a closed proxy port notification. Now it's fine to
+      // delete the port.
+      erase_port = true;
     } else {
       // We haven't yet reached the receiving peer of the closed port, so we'll
       // forward the message along as-is.
@@ -974,6 +989,9 @@
   if (try_remove_proxy)
     TryRemoveProxy(port_ref);
 
+  if (erase_port)
+    ErasePort(port_ref.name());
+
   if (event)
     delegate_->ForwardEvent(peer_node_name, std::move(event));
 
@@ -1826,6 +1844,9 @@
   std::vector<PortName> dead_proxies_to_broadcast;
   std::vector<std::unique_ptr<UserMessageEvent>> undelivered_messages;
 
+  ScopedEvent closure_event;
+  NodeName closure_event_target_node;
+
   {
     PortLocker::AssertNoPortsLockedOnCurrentThread();
     base::AutoLock ports_lock(ports_lock_);
@@ -1862,6 +1883,16 @@
         SinglePortLocker locker(&local_port_ref);
         auto* port = locker.port();
 
+        if (port_name != kInvalidPortName) {
+          // If this is a targeted observe dead proxy event, send out an
+          // ObserveClosure to acknowledge it.
+          closure_event_target_node = port->peer_node_name;
+          closure_event = std::make_unique<ObserveClosureEvent>(
+              port->peer_port_name, local_port_ref.name(),
+              port->next_control_sequence_num_to_send++,
+              port->last_sequence_num_to_receive);
+        }
+
         if (!port->peer_closed) {
           // Treat this as immediate peer closure. It's an exceptional
           // condition akin to a broken pipe, so we don't care about losing
@@ -1879,7 +1910,8 @@
         // procedure of forward-propagating an ObserveProxy. Instead we
         // broadcast our own death so it can be back-propagated. This is
         // inefficient but rare.
-        if (port->state != Port::kReceiving) {
+        if (port->state == Port::kBuffering || port->state == Port::kProxying) {
+          port->state = Port::kClosed;
           dead_proxies_to_broadcast.push_back(local_port_ref.name());
           std::vector<std::unique_ptr<UserMessageEvent>> messages;
           port->message_queue.TakeAllMessages(&messages);
@@ -1891,10 +1923,17 @@
     }
   }
 
+#ifdef MOJO_BACKWARDS_COMPAT
   for (const auto& proxy_name : dead_proxies_to_broadcast) {
     ErasePort(proxy_name);
     DVLOG(2) << "Forcibly deleted port " << proxy_name << "@" << name_;
   }
+#endif
+
+  if (closure_event) {
+    delegate_->ForwardEvent(closure_event_target_node,
+                            std::move(closure_event));
+  }
 
   // Wake up any receiving ports who have just observed simulated peer closure.
   for (const auto& port : ports_to_notify)
diff --git a/mojo/core/ports/ports_unittest.cc b/mojo/core/ports/ports_unittest.cc
index 6a02d19..8825a96 100644
--- a/mojo/core/ports/ports_unittest.cc
+++ b/mojo/core/ports/ports_unittest.cc
@@ -694,6 +694,66 @@
   EXPECT_TRUE(node1.node().CanShutdownCleanly());
 }
 
+TEST_F(PortsTest, LostConnectionToNodeAfterSendingObserveProxy) {
+  // Tests that a proxy gets cleaned up after a node disconnect if the
+  // previous port already received the ObserveProxy event.
+
+  TestNode node0(0);
+  AddNode(&node0);
+
+  TestNode node1(1);
+  AddNode(&node1);
+
+  TestNode node2(2);
+  AddNode(&node2);
+
+  // Create A-B spanning nodes 0 and 1 and C-D spanning 1 and 2.
+  PortRef A, B, C, D;
+  CreatePortPair(&node0, &A, &node1, &B);
+  CreatePortPair(&node1, &C, &node2, &D);
+
+  // Create E-F and send F over A to node 1.
+  PortRef E, F;
+  EXPECT_EQ(OK, node0.node().CreatePortPair(&E, &F));
+  EXPECT_EQ(OK, node0.SendStringMessageWithPort(A, ".", F));
+
+  WaitForIdle();
+
+  ScopedMessage message;
+  ASSERT_TRUE(node1.ReadMessage(B, &message));
+  ASSERT_EQ(1u, message->num_ports());
+
+  EXPECT_EQ(OK, node1.node().GetPort(message->ports()[0], &F));
+
+  // Send F over C to node 2 and then simulate node 2 loss from node 1 after
+  // node 0 received the ObserveProxy event. Node 1 needs to clean up the
+  // closed proxy while the node 0 to node 2 connection is still intact.
+  node0.BlockOnEvent(Event::Type::kObserveProxy);
+
+  EXPECT_EQ(OK, node1.SendStringMessageWithPort(C, ".", F));
+  WaitForIdle();
+
+  // Simulate node 1 and 2 disconnecting.
+  EXPECT_EQ(OK, node1.node().LostConnectionToNode(node2.name()));
+
+  // Let node2 continue processing events and wait for everyone to go idle.
+  node0.Unblock();
+  WaitForIdle();
+
+  // Port F should be gone.
+  EXPECT_EQ(ERROR_PORT_UNKNOWN, node1.node().GetPort(F.name(), &F));
+
+  EXPECT_EQ(OK, node0.node().ClosePort(A));
+  EXPECT_EQ(OK, node1.node().ClosePort(B));
+  EXPECT_EQ(OK, node1.node().ClosePort(C));
+  EXPECT_EQ(OK, node0.node().ClosePort(E));
+
+  WaitForIdle();
+
+  EXPECT_TRUE(node0.node().CanShutdownCleanly());
+  EXPECT_TRUE(node1.node().CanShutdownCleanly());
+}
+
 TEST_F(PortsTest, LostConnectionToNodeWithLocalProxy) {
   // Tests that a proxy gets cleaned up when its direct peer lives on a lost
   // node and it's predecessor lives on the same node.
diff --git a/net/url_request/redirect_util.cc b/net/url_request/redirect_util.cc
index 6bd87a0..97342e8 100644
--- a/net/url_request/redirect_util.cc
+++ b/net/url_request/redirect_util.cc
@@ -108,6 +108,7 @@
   std::string header_string = base::StringPrintf(
       "HTTP/1.1 %i Internal Redirect\n"
       "Location: %s\n"
+      "Cross-Origin-Resource-Policy: Cross-Origin\n"
       "Non-Authoritative-Reason: %s",
       response_code, redirect_destination.spec().c_str(),
       redirect_reason.c_str());
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index 980e0dc..a241c3a 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -9943,6 +9943,11 @@
   EXPECT_TRUE(headers->EnumerateHeader(nullptr, "Access-Control-Allow-Origin",
                                        &received_cors_header));
   EXPECT_EQ(kOriginHeaderValue, received_cors_header);
+
+  std::string received_corp_header;
+  EXPECT_TRUE(headers->EnumerateHeader(nullptr, "Cross-Origin-Resource-Policy",
+                                       &received_corp_header));
+  EXPECT_EQ("Cross-Origin", received_corp_header);
 }
 
 namespace {
diff --git a/remoting/resources/remoting_strings_af.xtb b/remoting/resources/remoting_strings_af.xtb
index 3153930..6d48f4a 100644
--- a/remoting/resources/remoting_strings_af.xtb
+++ b/remoting/resources/remoting_strings_af.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Hierdie diens maak inkomende verbindings van Chrome-afstandwerkskermkliënte af moontlik.</translation>
 <translation id="2647232381348739934">Chromoting-diens</translation>
 <translation id="2676780859508944670">Werk tans …</translation>
+<translation id="2692522824157224199">Kopierieg 2022 Google LLC. Alle regte voorbehou.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Kon nie staaf nie. Probeer weer aanmeld.</translation>
 <translation id="2803375539583399270">Voer PIN in</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> se URL-aanstuurder</translation>
 <translation id="4277736576214464567">Die toegangkode is ongeldig. Probeer asseblief weer.</translation>
 <translation id="4281844954008187215">Diensbepalings</translation>
+<translation id="4372650392690220936">Kopiereg 2022 Die Chromium-outeurs. Alle regte voorbehou.</translation>
 <translation id="4405930547258349619">Kernbiblioteek</translation>
 <translation id="443560535555262820">Maak Toeganklikheid-voorkeure oop</translation>
 <translation id="4450893287417543264">Moenie weer wys nie</translation>
diff --git a/remoting/resources/remoting_strings_ar.xtb b/remoting/resources/remoting_strings_ar.xtb
index 1e0eb6c5..293729c 100644
--- a/remoting/resources/remoting_strings_ar.xtb
+++ b/remoting/resources/remoting_strings_ar.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">‏تمكن هذه الخدمة الاتصالات الواردة من عملاء سطح المكتب البعيد من Chrome.</translation>
 <translation id="2647232381348739934">‏خدمة التوافق مع نظام التشغيل Chrome</translation>
 <translation id="2676780859508944670">جارٍ العمل…</translation>
+<translation id="2692522824157224199">‏حقوق الطبع والنشر لعام 2022 لشركة Google LLC جميع الحقوق محفوظة.</translation>
 <translation id="2699970397166997657">‏التوافق مع نظام التشغيل Chrome</translation>
 <translation id="2758123043070977469">حدثت مشكلة أثناء المصادقة، يُرجى إعادة تسجيل الدخول.</translation>
 <translation id="2803375539583399270">أدخل رقم التعريف الشخصي</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">‏برنامج إعادة توجيه عناوين URL من خلال "<ph name="PRODUCT_NAME" />"</translation>
 <translation id="4277736576214464567">رمز الدخول غير صالح، يُرجى إعادة المحاولة.</translation>
 <translation id="4281844954008187215">بنود الخدمة</translation>
+<translation id="4372650392690220936">‏حقوق الطبع والنشر The Chromium Authors لعام 2022 جميع الحقوق محفوظة.</translation>
 <translation id="4405930547258349619">المكتبة الأساسية</translation>
 <translation id="443560535555262820">فتح إعدادات "أدوات تمكين الوصول" المفضّلة</translation>
 <translation id="4450893287417543264">عدم الإظهار مرة أخرى</translation>
diff --git a/remoting/resources/remoting_strings_az.xtb b/remoting/resources/remoting_strings_az.xtb
index 15aeec1..a32874c 100644
--- a/remoting/resources/remoting_strings_az.xtb
+++ b/remoting/resources/remoting_strings_az.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Bu xidmət Chrome Kənar Desktop klientlərindən gələn bağlantılara icazə verir.</translation>
 <translation id="2647232381348739934">Chromoting Xidməti</translation>
 <translation id="2676780859508944670">İşləyir...</translation>
+<translation id="2692522824157224199">2022 Müəllif hüququ: Google LLC. Bütün hüquqlar qorunur.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Doğrulama zamanı xəta baş verdi, yenidən daxil olun.</translation>
 <translation id="2803375539583399270">PİN daxil edin</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> Keçid Yönləndiricisi</translation>
 <translation id="4277736576214464567">Giriş kodu etibarsızdır. Yenidən cəhd edin.</translation>
 <translation id="4281844954008187215">Xidmət Şərtləri</translation>
+<translation id="4372650392690220936">2022 Müəllif hüququ: Chromium Müəllifləri. Bütün hüquqlar qorunur.</translation>
 <translation id="4405930547258349619">Kök Kitabxana</translation>
 <translation id="443560535555262820">Giriş Tərcihlərini Açın</translation>
 <translation id="4450893287417543264">Göstərilməsin</translation>
diff --git a/remoting/resources/remoting_strings_de.xtb b/remoting/resources/remoting_strings_de.xtb
index 3da3977..71d42efa 100644
--- a/remoting/resources/remoting_strings_de.xtb
+++ b/remoting/resources/remoting_strings_de.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Dieser Dienst ermöglicht eingehende Verbindungen von Chrome Remote Desktop-Clients.</translation>
 <translation id="2647232381348739934">Chromoting Service</translation>
 <translation id="2676780859508944670">Vorgang läuft...</translation>
+<translation id="2692522824157224199">Copyright 2022 Google LLC. Alle Rechte vorbehalten.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Bei der Authentifizierung ist ein Fehler aufgetreten. Bitte melden Sie sich noch einmal an.</translation>
 <translation id="2803375539583399270">PIN eingeben</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">URL-Weiterleiter: <ph name="PRODUCT_NAME" /></translation>
 <translation id="4277736576214464567">Der Zugriffscode ist ungültig. Bitte versuchen Sie es erneut.</translation>
 <translation id="4281844954008187215">Nutzungsbedingungen</translation>
+<translation id="4372650392690220936">Copyright 2022 The Chromium Authors. Alle Rechte vorbehalten.</translation>
 <translation id="4405930547258349619">Zentrale Bibliothek</translation>
 <translation id="443560535555262820">Einstellungen für Bedienungshilfen öffnen</translation>
 <translation id="4450893287417543264">Nicht mehr anzeigen</translation>
diff --git a/remoting/resources/remoting_strings_el.xtb b/remoting/resources/remoting_strings_el.xtb
index ae17599..4149b5066 100644
--- a/remoting/resources/remoting_strings_el.xtb
+++ b/remoting/resources/remoting_strings_el.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Αυτή η υπηρεσία ενεργοποιεί τις εισερχόμενες συνδέσεις από υπολογιστές-πελάτες Απομακρυσμένης επιφάνειας εργασίας Chrome.</translation>
 <translation id="2647232381348739934">Υπηρεσία Chromoting</translation>
 <translation id="2676780859508944670">Σε λειτουργία…</translation>
+<translation id="2692522824157224199">Πνευματικά δικαιώματα 2022 Google LLC. Με επιφύλαξη παντός δικαιώματος.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Παρουσιάστηκε κάποιο ζήτημα κατά τον έλεγχο ταυτότητας. Συνδεθείτε ξανά.</translation>
 <translation id="2803375539583399270">Εισαγωγή PIN</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">Εφαρμογή προώθησης URL <ph name="PRODUCT_NAME" /></translation>
 <translation id="4277736576214464567">Ο κωδικός πρόσβασης δεν είναι έγκυρος. Δοκιμάστε ξανά.</translation>
 <translation id="4281844954008187215">Όροι Παροχής Υπηρεσιών</translation>
+<translation id="4372650392690220936">Πνευματικά δικαιώματα 2022 Οι συντάκτες του Chromium. Με επιφύλαξη παντός δικαιώματος.</translation>
 <translation id="4405930547258349619">Βασική βιβλιοθήκη</translation>
 <translation id="443560535555262820">Άνοιγμα προτιμήσεων προσβασιμότητας</translation>
 <translation id="4450893287417543264">Να μην εμφανιστεί ξανά</translation>
diff --git a/remoting/resources/remoting_strings_es.xtb b/remoting/resources/remoting_strings_es.xtb
index 3e3a63b..661d8cf 100644
--- a/remoting/resources/remoting_strings_es.xtb
+++ b/remoting/resources/remoting_strings_es.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Este servicio permite las conexiones entrantes de los clientes de Escritorio Remoto de Chrome.</translation>
 <translation id="2647232381348739934">Servicio de Chromoting</translation>
 <translation id="2676780859508944670">Trabajando…</translation>
+<translation id="2692522824157224199">Copyright 2022 Google LLC. Todos los derechos reservados.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">No se ha podido completar la autenticación. Vuelve a iniciar sesión.</translation>
 <translation id="2803375539583399270">Introducir PIN</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">Redirección de URL de <ph name="PRODUCT_NAME" /></translation>
 <translation id="4277736576214464567">El código de acceso no es válido. Vuelve a intentarlo.</translation>
 <translation id="4281844954008187215">Términos del Servicio</translation>
+<translation id="4372650392690220936">Copyright 2022 The Chromium Authors. Todos los derechos reservados.</translation>
 <translation id="4405930547258349619">Biblioteca principal</translation>
 <translation id="443560535555262820">Abrir preferencias de accesibilidad</translation>
 <translation id="4450893287417543264">No volver a mostrar</translation>
diff --git a/remoting/resources/remoting_strings_et.xtb b/remoting/resources/remoting_strings_et.xtb
index 7e59076..bf041f4 100644
--- a/remoting/resources/remoting_strings_et.xtb
+++ b/remoting/resources/remoting_strings_et.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">See teenus lubab sissetulevad ühendused Chrome Remote Desktopi klientidelt.</translation>
 <translation id="2647232381348739934">Chromootimise teenus</translation>
 <translation id="2676780859508944670">Töötab …</translation>
+<translation id="2692522824157224199">Autoriõigus 2022 Google LLC. Kõik õigused kaitstud.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Autentimisel ilmnes probleem. Logige uuesti sisse.</translation>
 <translation id="2803375539583399270">Sisestage PIN-kood</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">Teenuse <ph name="PRODUCT_NAME" /> URL-i suunaja</translation>
 <translation id="4277736576214464567">Pääsukood on kehtetu. Proovige uuesti.</translation>
 <translation id="4281844954008187215">Teenusetingimused</translation>
+<translation id="4372650392690220936">Autoriõigus 2022 The Chromium Authors. Kõik õigused kaitstud.</translation>
 <translation id="4405930547258349619">Põhikogu</translation>
 <translation id="443560535555262820">Avage juurdepääsufunktsioonide eelistused</translation>
 <translation id="4450893287417543264">Ära kuva uuesti</translation>
diff --git a/remoting/resources/remoting_strings_fa.xtb b/remoting/resources/remoting_strings_fa.xtb
index 29b1752..4e520b7 100644
--- a/remoting/resources/remoting_strings_fa.xtb
+++ b/remoting/resources/remoting_strings_fa.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">‏این سرویس اتصال ورودی از کلاینت‌های کنترل رایانه ازراه‌دور Chrome را فعال می‌کند.</translation>
 <translation id="2647232381348739934">‏سرویس کار با Chrome</translation>
 <translation id="2676780859508944670">در حال انجام...</translation>
+<translation id="2692522824157224199">‏حق نسخه‌برداری ۲۰۲۲ Google LLC. کلیه حقوق محفوظ است.</translation>
 <translation id="2699970397166997657">‏کار با Chrome</translation>
 <translation id="2758123043070977469">مشکلی در اصالت‌سنجی وجود داشت، لطفاً دوباره به سیستم وارد شوید.</translation>
 <translation id="2803375539583399270">پین را وارد کنید</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">بازارسال‌کننده نشانی وب <ph name="PRODUCT_NAME" /></translation>
 <translation id="4277736576214464567">کد دسترسی نامعتبر است. لطفاً دوباره امتحان کنید.</translation>
 <translation id="4281844954008187215">شرایط استفاده از سرویس</translation>
+<translation id="4372650392690220936">‏حق نسخه‌برداری ۲۰۲۲ Chromium Authors. کلیه حقوق محفوظ است.</translation>
 <translation id="4405930547258349619">کتابخانه اصلی</translation>
 <translation id="443560535555262820">تنها اولویت‌های دسترس‌پذیری</translation>
 <translation id="4450893287417543264">دیگر نشان داده نشود</translation>
diff --git a/remoting/resources/remoting_strings_fil.xtb b/remoting/resources/remoting_strings_fil.xtb
index 5064286..9820b18 100644
--- a/remoting/resources/remoting_strings_fil.xtb
+++ b/remoting/resources/remoting_strings_fil.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Ini-enable ng serbisyong ito ang mga papasok na koneksyon mula sa mga client ng Remote na Desktop ng Chrome.</translation>
 <translation id="2647232381348739934">Serbisyo ng Chromoting</translation>
 <translation id="2676780859508944670">Isinasagawa…</translation>
+<translation id="2692522824157224199">Copyright 2022 Google LLC. Nakalaan ang Lahat ng Karapatan.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Nagkaisyu sa pag-authenticate, mag-log in muli.</translation>
 <translation id="2803375539583399270">Ilagay ang PIN</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">Forwarder ng URL ng <ph name="PRODUCT_NAME" /></translation>
 <translation id="4277736576214464567">Di-wasto ang access code. Pakisubukang muli.</translation>
 <translation id="4281844954008187215">Mga Tuntunin ng Serbisyo</translation>
+<translation id="4372650392690220936">Copyright 2022 Ang Mga Gumawa ng Chromium. Nakalaan ang Lahat ng Karapatan.</translation>
 <translation id="4405930547258349619">Pangunahing Library</translation>
 <translation id="443560535555262820">Buksan ang Mga Kagustuhan sa Accessibility</translation>
 <translation id="4450893287417543264">Huwag ipakitang muli</translation>
diff --git a/remoting/resources/remoting_strings_gu.xtb b/remoting/resources/remoting_strings_gu.xtb
index 665926b3..90386f12 100644
--- a/remoting/resources/remoting_strings_gu.xtb
+++ b/remoting/resources/remoting_strings_gu.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">આ સેવા Chrome રીમોટ ડેસ્કટૉપ ક્લાઇન્ટ્સ પાસેથી આવતા કનેક્શન્સ સક્ષમ કરે છે.</translation>
 <translation id="2647232381348739934">Chromoting સેવા</translation>
 <translation id="2676780859508944670">કાર્ય કરી રહ્યું છે...</translation>
+<translation id="2692522824157224199">કૉપિરાઇટ 2022 Google LLC. સર્વાધિકાર સુરક્ષિત.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">પ્રમાણીકરણ કરવામાં એક સમસ્યા આવી હતી, કૃપા કરીને ફરી લૉગ ઇન કરો.</translation>
 <translation id="2803375539583399270">PIN દાખલ કરો</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> URLને ફૉરવર્ડ કરતી ઍપ્લિકેશન</translation>
 <translation id="4277736576214464567">ઍક્સેસ કોડ અમાન્ય છે. કૃપા કરીને ફરીથી પ્રયાસ કરો.</translation>
 <translation id="4281844954008187215">સેવાની શરતો</translation>
+<translation id="4372650392690220936">કૉપિરાઇટ 2022 The Chromium Authors. સર્વાધિકાર સુરક્ષિત.</translation>
 <translation id="4405930547258349619">મુખ્ય લાઇબ્રેરી</translation>
 <translation id="443560535555262820">ઍક્સેસિબિલિટીની પસંદગીઓ ખોલો</translation>
 <translation id="4450893287417543264">ફરી બતાવશો નહીં</translation>
diff --git a/remoting/resources/remoting_strings_hu.xtb b/remoting/resources/remoting_strings_hu.xtb
index c0d6aca..df620526 100644
--- a/remoting/resources/remoting_strings_hu.xtb
+++ b/remoting/resources/remoting_strings_hu.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Ez a szolgáltatás engedélyezi a bejövő kapcsolatokat a Chrome távoliasztal-szolgáltatás klienseitől.</translation>
 <translation id="2647232381348739934">Chromoting szolgáltatás</translation>
 <translation id="2676780859508944670">Feldolgozás…</translation>
+<translation id="2692522824157224199">Copyright 2022 Google LLC. Minden jog fenntartva.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Probléma volt a hitelesítéssel. Jelentkezzen be újra.</translation>
 <translation id="2803375539583399270">PIN-kód megadása</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> URL-továbbító</translation>
 <translation id="4277736576214464567">A hozzáférési kód érvénytelen. Kérjük, próbálja újra.</translation>
 <translation id="4281844954008187215">Általános Szerződési Feltételek</translation>
+<translation id="4372650392690220936">Copyright 2022 – A Chromium szerzői. Minden jog fenntartva.</translation>
 <translation id="4405930547258349619">Alapkönyvtár</translation>
 <translation id="443560535555262820">Kisegítő lehetőségek beállításainak megnyitása</translation>
 <translation id="4450893287417543264">Ne jelenjen meg többé</translation>
diff --git a/remoting/resources/remoting_strings_is.xtb b/remoting/resources/remoting_strings_is.xtb
index 7ab93c3d..cd174140 100644
--- a/remoting/resources/remoting_strings_is.xtb
+++ b/remoting/resources/remoting_strings_is.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Þessi þjónusta gerir tengingar frá biðlurum fyrir fjarstjórnun tölvu í Chrome mögulegar.</translation>
 <translation id="2647232381348739934">Chromoting þjónusta</translation>
 <translation id="2676780859508944670">Vinnur…</translation>
+<translation id="2692522824157224199">Höfundarréttur 2022 Google LLC. Öll réttindi áskilin.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Vandamál kom upp við að auðkenna, skráðu þig inn aftur.</translation>
 <translation id="2803375539583399270">Sláðu inn PIN-númer</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">Framsending vefslóða í <ph name="PRODUCT_NAME" /></translation>
 <translation id="4277736576214464567">Aðgangskóðinn er ógildur. Reyndu aftur.</translation>
 <translation id="4281844954008187215">Þjónustuskilmálar</translation>
+<translation id="4372650392690220936">Höfundarréttur 2022 höfundar Chromium. Öll réttindi áskilin.</translation>
 <translation id="4405930547258349619">Kjarnasafn</translation>
 <translation id="443560535555262820">Opna aðgengisstillingar</translation>
 <translation id="4450893287417543264">Ekki sýna þetta aftur</translation>
diff --git a/remoting/resources/remoting_strings_ja.xtb b/remoting/resources/remoting_strings_ja.xtb
index a501f101..17c6d98 100644
--- a/remoting/resources/remoting_strings_ja.xtb
+++ b/remoting/resources/remoting_strings_ja.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">このサービスにより、Chrome リモート デスクトップ クライアントからの着信接続が有効になります。</translation>
 <translation id="2647232381348739934">Chromoting サービス</translation>
 <translation id="2676780859508944670">処理しています...</translation>
+<translation id="2692522824157224199">Copyright 2022 Google LLC. All Rights Reserved.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">認証中に問題が発生しました。ログインし直してください。</translation>
 <translation id="2803375539583399270">PIN を入力</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> URL Forwarder</translation>
 <translation id="4277736576214464567">アクセス コードが無効です。もう一度入力してください。</translation>
 <translation id="4281844954008187215">利用規約</translation>
+<translation id="4372650392690220936">Copyright 2022 The Chromium Authors. All Rights Reserved.</translation>
 <translation id="4405930547258349619">コア ライブラリ</translation>
 <translation id="443560535555262820">[アクセシビリティ] 設定を開く</translation>
 <translation id="4450893287417543264">次回から表示しない</translation>
diff --git a/remoting/resources/remoting_strings_kk.xtb b/remoting/resources/remoting_strings_kk.xtb
index 2ed57185..e420a8ae 100644
--- a/remoting/resources/remoting_strings_kk.xtb
+++ b/remoting/resources/remoting_strings_kk.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Бұл қызмет Chrome Remote Desktop клиенттерінен қосылу мүмкіндігін береді.</translation>
 <translation id="2647232381348739934">Chromoting Service</translation>
 <translation id="2676780859508944670">Жұмыс істеуде…</translation>
+<translation id="2692522824157224199">Copyright 2022 Google LLC, Барлық құқығы қорғалған.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Аутентификациялау кезінде ақау пайда болды. Жүйеге қайта кіріңіз.</translation>
 <translation id="2803375539583399270">PIN кодын енгізіңіз</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> пайдаланатын URL бағытын өзгерту қолданбасы</translation>
 <translation id="4277736576214464567">Рұқсат коды жарамсыз. Әрекетті қайталап көріңіз.</translation>
 <translation id="4281844954008187215">Қызмет көрсету шарттары</translation>
+<translation id="4372650392690220936">Copyright 2022 The Chromium Authors. Барлық құқығы қорғалған.</translation>
 <translation id="4405930547258349619">Негізгі кітапхана</translation>
 <translation id="443560535555262820">Арнайы мүмкіндіктер параметрлерін ашу</translation>
 <translation id="4450893287417543264">Қайта көрсетілмесін</translation>
diff --git a/remoting/resources/remoting_strings_kn.xtb b/remoting/resources/remoting_strings_kn.xtb
index 30cd341..8ce05413 100644
--- a/remoting/resources/remoting_strings_kn.xtb
+++ b/remoting/resources/remoting_strings_kn.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">ಈ ಸೇವೆಯು Chrome ರಿಮೋಟ್ ಡೆಸ್ಕ್‌ಟಾಪ್ ಕ್ಲೈಂಟ್‌ಗಳಿಂದ ಒಳಬರುವ ಸಂಪರ್ಕಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.</translation>
 <translation id="2647232381348739934">ಕ್ರೊಮೋಟಿಂಗ್ ಸೇವೆ</translation>
 <translation id="2676780859508944670">ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ...</translation>
+<translation id="2692522824157224199">ಕೃತಿಸ್ವಾಮ್ಯ 2022 Google LLC. ಎಲ್ಲಾ ಹಕ್ಕುಗಳನ್ನು ಕಾಯ್ದಿರಿಸಲಾಗಿದೆ.</translation>
 <translation id="2699970397166997657">ಕ್ರೊಮೋಟಿಂಗ್</translation>
 <translation id="2758123043070977469">ಸಮಸ್ಯೆಯನ್ನು ಪ್ರಮಾಣೀಕರಿಸಲಾಗುತ್ತಿದೆ, ಪುನಃ ಲಾಗಿನ್ ಮಾಡಿ.</translation>
 <translation id="2803375539583399270">ಪಿನ್ ನಮೂದಿಸಿ</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> URL ಫಾರ್ವರ್ಡ್ ಮಾಡುವವರು</translation>
 <translation id="4277736576214464567">ಪ್ರವೇಶ ಕೋಡ್ ಅಮಾನ್ಯವಾಗಿದೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="4281844954008187215">ಸೇವೆಯ ನಿಯಮಗಳು</translation>
+<translation id="4372650392690220936">ಕೃತಿಸ್ವಾಮ್ಯ 2022 Chromium ಲೇಖಕರು. ಎಲ್ಲಾ ಹಕ್ಕುಗಳನ್ನು ಕಾಯ್ದಿರಿಸಲಾಗಿದೆ.</translation>
 <translation id="4405930547258349619">ಮುಖ್ಯ ಲೈಬ್ರರಿ</translation>
 <translation id="443560535555262820">ಪ್ರವೇಶಿಸುವಿಕೆ ಆದ್ಯತೆಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="4450893287417543264">ಮತ್ತೊಮ್ಮೆ ತೋರಿಸಬೇಡಿ</translation>
diff --git a/remoting/resources/remoting_strings_ko.xtb b/remoting/resources/remoting_strings_ko.xtb
index 2fb8506e..6b013bd0 100644
--- a/remoting/resources/remoting_strings_ko.xtb
+++ b/remoting/resources/remoting_strings_ko.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">이 서비스를 이용하면 Chrome 원격 데스크톱 클라이언트로부터의 연결을 수신할 수 있습니다.</translation>
 <translation id="2647232381348739934">Chromoting 서비스</translation>
 <translation id="2676780859508944670">처리 중…</translation>
+<translation id="2692522824157224199">Copyright 2022 Google LLC. All Rights Reserved.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">인증하는 중에 문제가 발생했습니다. 다시 로그인하세요.</translation>
 <translation id="2803375539583399270">PIN 입력</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> URL Forwarder</translation>
 <translation id="4277736576214464567">액세스 코드가 잘못되었습니다. 다시 시도해 주세요.</translation>
 <translation id="4281844954008187215">서비스 약관</translation>
+<translation id="4372650392690220936">Copyright 2022 The Chromium Authors. All Rights Reserved.</translation>
 <translation id="4405930547258349619">핵심 라이브러리</translation>
 <translation id="443560535555262820">접근성 환경설정 열기</translation>
 <translation id="4450893287417543264">다시 표시하지 않음</translation>
diff --git a/remoting/resources/remoting_strings_lt.xtb b/remoting/resources/remoting_strings_lt.xtb
index b9c63b5e..37970f2 100644
--- a/remoting/resources/remoting_strings_lt.xtb
+++ b/remoting/resources/remoting_strings_lt.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Naudojant šią paslaugą įgalinami „Chrome“ nuotolinio kompiuterio valdymo klientų prisijungimai.</translation>
 <translation id="2647232381348739934">„Chrome“ nuotolinio ryšio paslauga</translation>
 <translation id="2676780859508944670">Apdorojama…</translation>
+<translation id="2692522824157224199">Autorių teisės „Google LLC“, 2022 m. Visos teisės saugomos.</translation>
 <translation id="2699970397166997657">„Chrome“ nuotolinis ryšys</translation>
 <translation id="2758123043070977469">Nustatant tapatybę iškilo problema. Prisijunkite dar kartą.</translation>
 <translation id="2803375539583399270">Įveskite PIN kodą</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">„<ph name="PRODUCT_NAME" />“ URL peradresavimo priemonė</translation>
 <translation id="4277736576214464567">Netinkamas prieigos kodas. Bandykite dar kartą.</translation>
 <translation id="4281844954008187215">Paslaugų teikimo sąlygos</translation>
+<translation id="4372650392690220936">Autorių teisės „The Chromium Authors“, 2022 m. Visos teisės saugomos.</translation>
 <translation id="4405930547258349619">Pagrindinė biblioteka</translation>
 <translation id="443560535555262820">Atidaryti pritaikomumo nuostatas</translation>
 <translation id="4450893287417543264">Daugiau neberodyti</translation>
diff --git a/remoting/resources/remoting_strings_mk.xtb b/remoting/resources/remoting_strings_mk.xtb
index a5dfeef..28ea2792 100644
--- a/remoting/resources/remoting_strings_mk.xtb
+++ b/remoting/resources/remoting_strings_mk.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Уредот овозможува дојдовни врски од клиенти на Далечинска работна површина на Chrome.</translation>
 <translation id="2647232381348739934">Chromoting услуга</translation>
 <translation id="2676780859508944670">Работи…</translation>
+<translation id="2692522824157224199">Авторски права за 2022 г. на Google LLC. Сите права се задржани.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Проблем при проверката. Најавете се повторно.</translation>
 <translation id="2803375539583399270">Внесете PIN.</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">Проследувач на URL на <ph name="PRODUCT_NAME" /></translation>
 <translation id="4277736576214464567">Пристапната шифра е неважечка. Обидете се повторно.</translation>
 <translation id="4281844954008187215">Услови за користење</translation>
+<translation id="4372650392690220936">Авторски права за 2022 г. на The Chromium Authors. Сите права се задржани.</translation>
 <translation id="4405930547258349619">Основна библиотека</translation>
 <translation id="443560535555262820">Отвори поставки за „Пристапност“</translation>
 <translation id="4450893287417543264">Не прикажувај повторно</translation>
diff --git a/remoting/resources/remoting_strings_mr.xtb b/remoting/resources/remoting_strings_mr.xtb
index 6bc5068..7c8d186 100644
--- a/remoting/resources/remoting_strings_mr.xtb
+++ b/remoting/resources/remoting_strings_mr.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">ही सेवा Chrome रिमोट डेस्कटॉप क्लायंटकडील येणारी कनेक्शन सक्षम करते.</translation>
 <translation id="2647232381348739934">Chromoting सेवा</translation>
 <translation id="2676780859508944670">कार्यरत आहे...</translation>
+<translation id="2692522824157224199">कॉपीराइट २०२२ Google LLC. सर्व हक्क राखीव.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">प्रमाणीकृत करताना समस्या आली, कृपया पुन्हा लॉगिन करा.</translation>
 <translation id="2803375539583399270">पिन एंटर करा</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> URL Forwarder</translation>
 <translation id="4277736576214464567">ॲक्सेस कोड अवैध आहे. कृपया पुन्हा प्रयत्न करा.</translation>
 <translation id="4281844954008187215">सेवा अटी</translation>
+<translation id="4372650392690220936">कॉपीराइट २०२२ Chromium लेखक. सर्व हक्क राखीव.</translation>
 <translation id="4405930547258349619">कोअर लायब्ररी</translation>
 <translation id="443560535555262820">अ‍ॅक्सेसिबिलिटी प्राधान्ये उघडा</translation>
 <translation id="4450893287417543264">पुन्हा दाखवू नका</translation>
diff --git a/remoting/resources/remoting_strings_ne.xtb b/remoting/resources/remoting_strings_ne.xtb
index e8c8a3c..689de1b 100644
--- a/remoting/resources/remoting_strings_ne.xtb
+++ b/remoting/resources/remoting_strings_ne.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">यस सेवाले Chrome दूर डेस्कटप ग्राहकहरूबाट आउने जडानहरू सक्षम गर्छ।</translation>
 <translation id="2647232381348739934">क्रोमोटिङ सेवा</translation>
 <translation id="2676780859508944670">काम गर्दै...</translation>
+<translation id="2692522824157224199">प्रतिलिपि अधिकार २०२२ Google LLC। सर्वाधिकार सुरक्षित।</translation>
 <translation id="2699970397166997657">Chromeोटिङ</translation>
 <translation id="2758123043070977469">प्रमाणीकरण गर्दा एउटा समस्या भयो, कृपया फेरि लग इन गर्नुहोस्।</translation>
 <translation id="2803375539583399270">PIN प्रविष्टि गर्नुहोस्</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> को URL फर्वार्डर</translation>
 <translation id="4277736576214464567">पहुँच कोड अवैध छ। कृपया पुन: प्रयास गर्नुहोस्।</translation>
 <translation id="4281844954008187215">सेवाका सर्तहरू</translation>
+<translation id="4372650392690220936">कपिराइट २०२२ The Chromium Authors। सर्वाधिकार सुरक्षित।</translation>
 <translation id="4405930547258349619">कोर पुस्तकालय</translation>
 <translation id="443560535555262820">पहुँचसम्बन्धी प्राथमिकताहरू खोल्नुहोस्</translation>
 <translation id="4450893287417543264">फेरि नदेखाउनुहोस्</translation>
diff --git a/remoting/resources/remoting_strings_no.xtb b/remoting/resources/remoting_strings_no.xtb
index 4121cb0..debb376 100644
--- a/remoting/resources/remoting_strings_no.xtb
+++ b/remoting/resources/remoting_strings_no.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Med denne tjenesten kan du motta innkommende tilkoblinger fra Chrome Eksternt skrivebord-klienter.</translation>
 <translation id="2647232381348739934">Chromoting-tjeneste</translation>
 <translation id="2676780859508944670">Behandler …</translation>
+<translation id="2692522824157224199">Copyright 2022 Google LLC. Med enerett.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Det oppsto en feil under autentiseringen. Logg på igjen.</translation>
 <translation id="2803375539583399270">Skriv inn PIN-koden</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">Program for viderekobling av nettadresser fra <ph name="PRODUCT_NAME" /></translation>
 <translation id="4277736576214464567">Tilgangskoden er ugyldig. Prøv på nytt.</translation>
 <translation id="4281844954008187215">Vilkår for bruk</translation>
+<translation id="4372650392690220936">Copyright 2022 The Chromium Authors. Med enerett.</translation>
 <translation id="4405930547258349619">Core-bibliotek</translation>
 <translation id="443560535555262820">Åpne innstillinger for tilgjengelighet</translation>
 <translation id="4450893287417543264">Ikke vis igjen</translation>
diff --git a/remoting/resources/remoting_strings_pa.xtb b/remoting/resources/remoting_strings_pa.xtb
index 834cc69..96d3192 100644
--- a/remoting/resources/remoting_strings_pa.xtb
+++ b/remoting/resources/remoting_strings_pa.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">ਇਹ ਸੇਵਾ ਕਲਾਇੰਟਾਂ ਦੇ 'Chrome ਰਿਮੋਟ ਡੈਸਕਟਾਪ' ਤੋਂ ਆਉਣ ਵਾਲੇ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਚਾਲੂ ਕਰਦੀ ਹੈ।</translation>
 <translation id="2647232381348739934">Chromoting ਸੇਵਾ</translation>
 <translation id="2676780859508944670">ਚਾਲੂ....</translation>
+<translation id="2692522824157224199">Copyright 2022 Google LLC. ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ।</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">ਪ੍ਰਮਾਣੀਕਰਨ ਸਮੇਂ ਕੋਈ ਸਮੱਸਿਆ ਹੋ ਗਈ, ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਲੌਗ-ਇਨ ਕਰੋ।</translation>
 <translation id="2803375539583399270">PIN ਦਾਖਲ ਕਰੋ</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> URL ਅੱਗੇ ਭੇਜਣ ਵਾਲਾ</translation>
 <translation id="4277736576214464567">ਪਹੁੰਚ ਕੋਡ ਅਵੈਧ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="4281844954008187215">ਸੇਵਾ ਦੀਆਂ ਮਦਾਂ</translation>
+<translation id="4372650392690220936">Copyright 2022 The Chromium Authors. ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ।</translation>
 <translation id="4405930547258349619">ਕੋਰ ਲਾਇਬ੍ਰੇਰੀ</translation>
 <translation id="443560535555262820">ਪਹੁੰਚਯੋਗਤਾ ਤਰਜੀਹਾਂ ਖੋਲ੍ਹੋ</translation>
 <translation id="4450893287417543264">ਦੁਬਾਰਾ ਨਾ ਦਿਖਾਓ</translation>
diff --git a/remoting/resources/remoting_strings_ru.xtb b/remoting/resources/remoting_strings_ru.xtb
index 629f30d7..4a517d7b 100644
--- a/remoting/resources/remoting_strings_ru.xtb
+++ b/remoting/resources/remoting_strings_ru.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Данная служба обеспечивает входящие соединения от клиентов Удаленного рабочего стола Chrome.</translation>
 <translation id="2647232381348739934">Служба Пульта Chrome</translation>
 <translation id="2676780859508944670">В процессе...</translation>
+<translation id="2692522824157224199">© Google LLC, 2022. Все права защищены.</translation>
 <translation id="2699970397166997657">Пульт Chrome</translation>
 <translation id="2758123043070977469">Ошибка аутентификации. Войдите в аккаунт снова.</translation>
 <translation id="2803375539583399270">Введите PIN-код</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">Приложение сервиса "<ph name="PRODUCT_NAME" />" для переадресации URL</translation>
 <translation id="4277736576214464567">Код доступа недействителен. Повторите попытку.</translation>
 <translation id="4281844954008187215">Условия использования</translation>
+<translation id="4372650392690220936">© The Chromium Authors, 2022. Все права защищены.</translation>
 <translation id="4405930547258349619">Библиотека ядра</translation>
 <translation id="443560535555262820">Открыть настройки специальных возможностей</translation>
 <translation id="4450893287417543264">Больше не показывать</translation>
diff --git a/remoting/resources/remoting_strings_si.xtb b/remoting/resources/remoting_strings_si.xtb
index 702ef9c..588bf33 100644
--- a/remoting/resources/remoting_strings_si.xtb
+++ b/remoting/resources/remoting_strings_si.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">මෙම සේවාව Chrome දුරස්ථ වැඩතල සේවාලාභින්ගෙන් එන සබැඳුම් සබල කරයි.</translation>
 <translation id="2647232381348739934">Chromoting සේවය</translation>
 <translation id="2676780859508944670">සිදුවෙමින් පවතී…</translation>
+<translation id="2692522824157224199">ප්‍රකාශන හිමිකම 2022 Google LLC. සියලු හිමිකම් ඇවිරිණි.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">සත්‍යාපනය කිරීමේ ගැටලුවක් විය, නැවත පුරන්න.</translation>
 <translation id="2803375539583399270">PIN අංකය ඇතුළත් කරන්න</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> URL යොමු කරන්නා</translation>
 <translation id="4277736576214464567">ප්‍රවේශ කේතය වැරදියි. නැවත උත්සාහ කරන්න.</translation>
 <translation id="4281844954008187215">සේවා කොන්දේසි</translation>
+<translation id="4372650392690220936">ප්‍රකාශන හිමිකම 2022 Chromium කර්තෘවරුන්. සියලු හිමිකම් ඇවිරිණි.</translation>
 <translation id="4405930547258349619">ප්‍රධාන පුස්තකාලය</translation>
 <translation id="443560535555262820">ප්‍රවේශ්‍යතා මනාප විවෘත කරන්න</translation>
 <translation id="4450893287417543264">නැවත නොපෙන්වන්න</translation>
diff --git a/remoting/resources/remoting_strings_sl.xtb b/remoting/resources/remoting_strings_sl.xtb
index c070ec21..8b1c491 100644
--- a/remoting/resources/remoting_strings_sl.xtb
+++ b/remoting/resources/remoting_strings_sl.xtb
@@ -34,6 +34,7 @@
 <translation id="2599300881200251572">Ta storitev omogoča dohodne povezave iz odjemalcev za Oddaljeno namizje za Chrome.</translation>
 <translation id="2647232381348739934">Storitev Oddaljeno povezovanje s Chromom</translation>
 <translation id="2676780859508944670">Obdelava …</translation>
+<translation id="2692522824157224199">Copyright 2022 Google LLC. Vse pravice pridržane.</translation>
 <translation id="2699970397166997657">Oddaljeno povezovanje s Chromom</translation>
 <translation id="2758123043070977469">Pri preverjanju pristnosti je prišlo do napake. Prijavite se znova.</translation>
 <translation id="2803375539583399270">Vnesite kodo PIN</translation>
@@ -70,6 +71,7 @@
 <translation id="4257751272692708833">Aplikacija za posredovanje URL-jev storitve <ph name="PRODUCT_NAME" /></translation>
 <translation id="4277736576214464567">Koda za dostop je neveljavna. Poskusite znova.</translation>
 <translation id="4281844954008187215">Pogoji storitve</translation>
+<translation id="4372650392690220936">Copyright 2022 Ustvarjalci Chromiuma. Vse pravice pridržane.</translation>
 <translation id="4405930547258349619">Knjižnica jedra</translation>
 <translation id="443560535555262820">Odpri nastavitve dostopnosti</translation>
 <translation id="4450893287417543264">Tega ne prikaži več</translation>
diff --git a/remoting/resources/remoting_strings_sq.xtb b/remoting/resources/remoting_strings_sq.xtb
index 7cae4e19..73c9d753 100644
--- a/remoting/resources/remoting_strings_sq.xtb
+++ b/remoting/resources/remoting_strings_sq.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Ky shërbim bën të mundur lidhjet hyrëse nga klientët e "Desktopit në distancë" të Chrome.</translation>
 <translation id="2647232381348739934">Shërbimi i Chromoting</translation>
 <translation id="2676780859508944670">Po punon…</translation>
+<translation id="2692522824157224199">Të drejtat e autorit 2022 Google LLC. Të gjitha të drejtat të rezervuara.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Ndodhi një gabim gjatë vërtetimit. Identifikohu sërish.</translation>
 <translation id="2803375539583399270">Fut kodin PIN</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">Përcjellësi i URL së <ph name="PRODUCT_NAME" /></translation>
 <translation id="4277736576214464567">Kodi i qasjes është i pavlefshëm. Provo sërish.</translation>
 <translation id="4281844954008187215">Kushtet e shërbimit</translation>
+<translation id="4372650392690220936">Të drejtat e autorit 2022 të "Autorëve të Chromium". Të gjitha të drejtat të rezervuara.</translation>
 <translation id="4405930547258349619">Biblioteka kryesore</translation>
 <translation id="443560535555262820">Hap preferencat e "Qasshmërisë"</translation>
 <translation id="4450893287417543264">Mos e shfaq përsëri</translation>
diff --git a/remoting/resources/remoting_strings_sv.xtb b/remoting/resources/remoting_strings_sv.xtb
index faf27320..a50b17a 100644
--- a/remoting/resources/remoting_strings_sv.xtb
+++ b/remoting/resources/remoting_strings_sv.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Med den här tjänsten aktiveras inkommande anslutningar från Chrome Remote Desktop-klienter.</translation>
 <translation id="2647232381348739934">Tjänsten Chromoting</translation>
 <translation id="2676780859508944670">Arbetar ...</translation>
+<translation id="2692522824157224199">Copyright 2022 Google LLC. Med ensamrätt.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Det gick inte att autentisera. Logga in igen.</translation>
 <translation id="2803375539583399270">Ange pinkod</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">Vidarebefordringsprogram för webbadresser till <ph name="PRODUCT_NAME" /></translation>
 <translation id="4277736576214464567">Koden är ogiltig. Försök igen.</translation>
 <translation id="4281844954008187215">Användarvillkor</translation>
+<translation id="4372650392690220936">Copyright 2022 The Chromium Authors. Med ensamrätt.</translation>
 <translation id="4405930547258349619">Huvudbibliotek</translation>
 <translation id="443560535555262820">Öppna tillgänglighetsinställningarna</translation>
 <translation id="4450893287417543264">Visa inte igen</translation>
diff --git a/remoting/resources/remoting_strings_sw.xtb b/remoting/resources/remoting_strings_sw.xtb
index 87aebc4..a493e61 100644
--- a/remoting/resources/remoting_strings_sw.xtb
+++ b/remoting/resources/remoting_strings_sw.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Huduma hii inawezesha miunganisho inayoingia kutoka kwa viteja vya Kompyuta za Mbali za Chrome</translation>
 <translation id="2647232381348739934">Huduma ya Chromoting</translation>
 <translation id="2676780859508944670">Inafanya kazi…</translation>
+<translation id="2692522824157224199">Hakimiliki 2022 Google LLC. Haki Zote Zimehifadhiwa.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Hitilafu imetokea wakati wa kuthibitisha, tafadhali ingia katika akaunti tena.</translation>
 <translation id="2803375539583399270">Weka PIN</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">Kisambazaji cha URL cha <ph name="PRODUCT_NAME" /></translation>
 <translation id="4277736576214464567">Msimbo wa ufikiaji ni batili. Tafadhali jaribu tena.</translation>
 <translation id="4281844954008187215">Sheria na Masharti</translation>
+<translation id="4372650392690220936">Hakimiliki 2022 Waandishi wa Chromium. Haki Zote Zimehifadhiwa.</translation>
 <translation id="4405930547258349619">Mkataba Kuu</translation>
 <translation id="443560535555262820">Fungua Mapendeleo ya Ufikivu</translation>
 <translation id="4450893287417543264">Usionyeshe tena</translation>
diff --git a/remoting/resources/remoting_strings_ta.xtb b/remoting/resources/remoting_strings_ta.xtb
index b19abba..2d79b4f8e 100644
--- a/remoting/resources/remoting_strings_ta.xtb
+++ b/remoting/resources/remoting_strings_ta.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">இந்தச் சேவை Chrome தொலைநிலை டெஸ்க்டாப் க்ளையன்ட்களிடமிருந்து வரும் இணைப்புகளை இயக்குகிறது.</translation>
 <translation id="2647232381348739934">குரோமோட்டிங் சேவை</translation>
 <translation id="2676780859508944670">இயங்கி கொண்டுள்ளது...</translation>
+<translation id="2692522824157224199">பதிப்புரிமை 2022 Google LLC. அனைத்து உரிமைகளும் பாதுகாக்கப்பட்டவை.</translation>
 <translation id="2699970397166997657">குரோமோட்டிங்</translation>
 <translation id="2758123043070977469">அங்கீகரிப்பதில் சிக்கல் ஏற்பட்டது. மீண்டும் உள்நுழையவும்.</translation>
 <translation id="2803375539583399270">பின்னை உள்ளிடவும்</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> URL Forwarder</translation>
 <translation id="4277736576214464567">அணுகல் குறியீடு தவறானது. மீண்டும் முயலவும்.</translation>
 <translation id="4281844954008187215">சேவை விதிமுறைகள்</translation>
+<translation id="4372650392690220936">பதிப்புரிமை 2022 Chromiumமை உருவாக்கியவர்கள். அனைத்து உரிமைகளும் பாதுகாக்கப்பட்டவை.</translation>
 <translation id="4405930547258349619">முக்கிய நூலகம்</translation>
 <translation id="443560535555262820">அணுகல்தன்மை விருப்பத்தேர்வுகளைத் திறக்கவும்</translation>
 <translation id="4450893287417543264">மீண்டும் காட்டாதே</translation>
diff --git a/remoting/resources/remoting_strings_tr.xtb b/remoting/resources/remoting_strings_tr.xtb
index d113a1e9..1a838da 100644
--- a/remoting/resources/remoting_strings_tr.xtb
+++ b/remoting/resources/remoting_strings_tr.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Bu hizmet Chrome Uzaktan Masaüstü istemcilerinden gelen bağlantıları etkinleştirir.</translation>
 <translation id="2647232381348739934">Chromoting Hizmeti</translation>
 <translation id="2676780859508944670">Çalışıyor...</translation>
+<translation id="2692522824157224199">Telif hakkı 2022 Google LLC. Tüm Hakları Saklıdır.</translation>
 <translation id="2699970397166997657">Chromoting</translation>
 <translation id="2758123043070977469">Kimlik doğrulanırken bir sorun oluştu, lütfen tekrar giriş yapın.</translation>
 <translation id="2803375539583399270">PIN girin</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833"><ph name="PRODUCT_NAME" /> URL Yönlendirici</translation>
 <translation id="4277736576214464567">Erişim kodu geçersiz. Lütfen tekrar deneyin.</translation>
 <translation id="4281844954008187215">Hizmet Şartları</translation>
+<translation id="4372650392690220936">Telif hakkı 2022 The Chromium Authors. Tüm Hakları Saklıdır.</translation>
 <translation id="4405930547258349619">Çekirdek Kitaplığı</translation>
 <translation id="443560535555262820">Erişilebilirlik Tercihlerini Aç</translation>
 <translation id="4450893287417543264">Bir daha gösterme</translation>
diff --git a/remoting/resources/remoting_strings_vi.xtb b/remoting/resources/remoting_strings_vi.xtb
index 4a8fefd85..18ebb35 100644
--- a/remoting/resources/remoting_strings_vi.xtb
+++ b/remoting/resources/remoting_strings_vi.xtb
@@ -36,6 +36,7 @@
 <translation id="2599300881200251572">Dịch vụ này kích hoạt các kết nối đến từ ứng dụng khách Chrome Remote Desktop.</translation>
 <translation id="2647232381348739934">Dịch vụ kết nối từ xa trên Chrome</translation>
 <translation id="2676780859508944670">Đang xử lý...</translation>
+<translation id="2692522824157224199">Bản quyền 2022 Google LLC. Bảo lưu mọi quyền.</translation>
 <translation id="2699970397166997657">Kết nối từ xa trên Chrome</translation>
 <translation id="2758123043070977469">Đã xảy ra lỗi khi xác thực, vui lòng đăng nhập lại.</translation>
 <translation id="2803375539583399270">Nhập mã PIN</translation>
@@ -72,6 +73,7 @@
 <translation id="4257751272692708833">Trình chuyển tiếp URL của <ph name="PRODUCT_NAME" /></translation>
 <translation id="4277736576214464567">Mã truy cập không hợp lệ. Vui lòng thử lại.</translation>
 <translation id="4281844954008187215">Điều khoản dịch vụ</translation>
+<translation id="4372650392690220936">Bản quyền 2022 The Chromium Authors. Bảo lưu mọi quyền.</translation>
 <translation id="4405930547258349619">Thư viện trung tâm</translation>
 <translation id="443560535555262820">Mở tùy chọn Hỗ trợ tiếp cận</translation>
 <translation id="4450893287417543264">Không hiện lại</translation>
diff --git a/remoting/resources/remoting_strings_zh-HK.xtb b/remoting/resources/remoting_strings_zh-HK.xtb
index 396f2a78..b7e52c2 100644
--- a/remoting/resources/remoting_strings_zh-HK.xtb
+++ b/remoting/resources/remoting_strings_zh-HK.xtb
@@ -73,7 +73,7 @@
 <translation id="4257751272692708833">「<ph name="PRODUCT_NAME" />」網址轉發工具</translation>
 <translation id="4277736576214464567">存取碼無效,請再試一次。</translation>
 <translation id="4281844954008187215">服務條款</translation>
-<translation id="4372650392690220936">版權所有 2022 The Chromium Authors。保留所有權利。</translation>
+<translation id="4372650392690220936">版權所有 2022 Chromium 作者。保留所有權利。</translation>
 <translation id="4405930547258349619">核心資料庫</translation>
 <translation id="443560535555262820">開啟無障礙功能偏好設定</translation>
 <translation id="4450893287417543264">不要再顯示</translation>
diff --git a/services/device/time_zone_monitor/BUILD.gn b/services/device/time_zone_monitor/BUILD.gn
index 67c6fdc..ebca5cf 100644
--- a/services/device/time_zone_monitor/BUILD.gn
+++ b/services/device/time_zone_monitor/BUILD.gn
@@ -45,7 +45,7 @@
   }
 
   if (is_chromeos_ash) {
-    sources += [ "time_zone_monitor_chromeos.cc" ]
+    sources += [ "time_zone_monitor_ash.cc" ]
     deps += [ "//ash/components/settings" ]
   }
 
diff --git a/services/device/time_zone_monitor/time_zone_monitor_chromeos.cc b/services/device/time_zone_monitor/time_zone_monitor_ash.cc
similarity index 69%
rename from services/device/time_zone_monitor/time_zone_monitor_chromeos.cc
rename to services/device/time_zone_monitor/time_zone_monitor_ash.cc
index 2254e3e..f2cdaed 100644
--- a/services/device/time_zone_monitor/time_zone_monitor_chromeos.cc
+++ b/services/device/time_zone_monitor/time_zone_monitor_ash.cc
@@ -11,17 +11,17 @@
 
 namespace device {
 
-class TimeZoneMonitorChromeOS : public TimeZoneMonitor,
-                                public ash::system::TimezoneSettings::Observer {
+class TimeZoneMonitorAsh : public TimeZoneMonitor,
+                           public ash::system::TimezoneSettings::Observer {
  public:
-  TimeZoneMonitorChromeOS() : TimeZoneMonitor() {
+  TimeZoneMonitorAsh() : TimeZoneMonitor() {
     ash::system::TimezoneSettings::GetInstance()->AddObserver(this);
   }
 
-  TimeZoneMonitorChromeOS(const TimeZoneMonitorChromeOS&) = delete;
-  TimeZoneMonitorChromeOS& operator=(const TimeZoneMonitorChromeOS&) = delete;
+  TimeZoneMonitorAsh(const TimeZoneMonitorAsh&) = delete;
+  TimeZoneMonitorAsh& operator=(const TimeZoneMonitorAsh&) = delete;
 
-  ~TimeZoneMonitorChromeOS() override {
+  ~TimeZoneMonitorAsh() override {
     ash::system::TimezoneSettings::GetInstance()->RemoveObserver(this);
   }
 
@@ -36,7 +36,7 @@
 // static
 std::unique_ptr<TimeZoneMonitor> TimeZoneMonitor::Create(
     scoped_refptr<base::SequencedTaskRunner> file_task_runner) {
-  return std::unique_ptr<TimeZoneMonitor>(new TimeZoneMonitorChromeOS());
+  return std::make_unique<TimeZoneMonitorAsh>();
 }
 
 }  // namespace device
diff --git a/testing/buildbot/chrome.json b/testing/buildbot/chrome.json
index ef580327..1d29450 100644
--- a/testing/buildbot/chrome.json
+++ b/testing/buildbot/chrome.json
@@ -1767,7 +1767,7 @@
       {
         "args": [],
         "cros_board": "atlas",
-        "cros_img": "atlas-release/R99-14447.0.0",
+        "cros_img": "atlas-release/R99-14455.0.0",
         "name": "lacros_all_tast_tests_ATLAS_DEV",
         "resultdb": {
           "enable": true,
@@ -1797,7 +1797,7 @@
       {
         "args": [],
         "cros_board": "atlas",
-        "cros_img": "atlas-release/R97-14324.62.0",
+        "cros_img": "atlas-release/R97-14324.72.0",
         "name": "lacros_all_tast_tests_ATLAS_STABLE",
         "resultdb": {
           "enable": true,
@@ -1827,7 +1827,7 @@
       {
         "args": [],
         "cros_board": "eve",
-        "cros_img": "eve-release/R99-14447.0.0",
+        "cros_img": "eve-release/R99-14455.0.0",
         "name": "lacros_all_tast_tests_EVE_DEV",
         "resultdb": {
           "enable": true,
@@ -1857,7 +1857,7 @@
       {
         "args": [],
         "cros_board": "eve",
-        "cros_img": "eve-release/R96-14268.67.0",
+        "cros_img": "eve-release/R97-14324.72.0",
         "name": "lacros_all_tast_tests_EVE_STABLE",
         "resultdb": {
           "enable": true,
diff --git a/testing/buildbot/chromium.swangle.json b/testing/buildbot/chromium.swangle.json
index 44fae46..3e2f5b2 100644
--- a/testing/buildbot/chromium.swangle.json
+++ b/testing/buildbot/chromium.swangle.json
@@ -39,43 +39,6 @@
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
         "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
-      },
-      {
-        "args": [
-          "webgl_conformance",
-          "--show-stdout",
-          "--browser=release",
-          "--passthrough",
-          "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-gl=swiftshader --use-cmd-decoder=validating",
-          "--xvfb"
-        ],
-        "isolate_name": "telemetry_gpu_integration_test",
-        "isolate_profile_data": true,
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "webgl_conformance_swiftshader_validating_tests",
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "gpu": "none",
-              "os": "Ubuntu-18.04",
-              "pool": "chromium.tests.gpu"
-            }
-          ],
-          "idempotent": false,
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
       }
     ]
   },
@@ -1394,42 +1357,6 @@
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
         "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
-      },
-      {
-        "args": [
-          "webgl_conformance",
-          "--show-stdout",
-          "--browser=release",
-          "--passthrough",
-          "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-gl=swiftshader --use-cmd-decoder=validating",
-          "--xvfb"
-        ],
-        "isolate_name": "telemetry_gpu_integration_test",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "webgl_conformance_swiftshader_validating_tests",
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "display_attached": "1",
-              "gpu": "8086:3e9b",
-              "os": "Mac-11.5.2"
-            }
-          ],
-          "idempotent": false,
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
       }
     ]
   },
@@ -1470,42 +1397,6 @@
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
         "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
-      },
-      {
-        "args": [
-          "webgl_conformance",
-          "--show-stdout",
-          "--browser=release",
-          "--passthrough",
-          "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-gl=swiftshader --use-cmd-decoder=validating",
-          "--xvfb"
-        ],
-        "isolate_name": "telemetry_gpu_integration_test",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "webgl_conformance_swiftshader_validating_tests",
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "gpu": "none",
-              "os": "Windows-10",
-              "pool": "chromium.tests.gpu"
-            }
-          ],
-          "idempotent": false,
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
       }
     ]
   },
diff --git a/testing/buildbot/filters/android.emulator_11_12.media_unittests.filter b/testing/buildbot/filters/android.emulator_11_12.media_unittests.filter
index cd4d62a..33612d2 100644
--- a/testing/buildbot/filters/android.emulator_11_12.media_unittests.filter
+++ b/testing/buildbot/filters/android.emulator_11_12.media_unittests.filter
@@ -1,5 +1,5 @@
 # https://crbug.com/1189284
 # Not applicable to emulator due to not supporting fence sync
--OopRasterMode/PaintCanvasVideoRendererWithGLTest.CopyVideoFrameTexturesToGLTexture*/1
--OopRasterMode/PaintCanvasVideoRendererWithGLTest.CopyVideoFrameYUVDataToGLTexture*/1
--OopRasterMode/PaintCanvasVideoRendererWithGLTest.Paint*/1
\ No newline at end of file
+-PaintCanvasVideoRendererWithGLTest.CopyVideoFrameTexturesToGLTexture*
+-PaintCanvasVideoRendererWithGLTest.CopyVideoFrameYUVDataToGLTexture*
+-PaintCanvasVideoRendererWithGLTest.Paint*
diff --git a/testing/buildbot/filters/fuchsia.debug.media_unittests.filter b/testing/buildbot/filters/fuchsia.debug.media_unittests.filter
index 489ab52..2e0369fc 100644
--- a/testing/buildbot/filters/fuchsia.debug.media_unittests.filter
+++ b/testing/buildbot/filters/fuchsia.debug.media_unittests.filter
@@ -1,2 +1,2 @@
 # https://crbug.com/1241502
--OopRasterMode/PaintCanvasVideoRendererWithGLTest.*
+-PaintCanvasVideoRendererWithGLTest.*
diff --git a/testing/buildbot/internal.chromeos.fyi.json b/testing/buildbot/internal.chromeos.fyi.json
index 72caaec0..70f39c5 100644
--- a/testing/buildbot/internal.chromeos.fyi.json
+++ b/testing/buildbot/internal.chromeos.fyi.json
@@ -1146,7 +1146,7 @@
       {
         "args": [],
         "cros_board": "octopus",
-        "cros_img": "octopus-release/R99-14447.0.0",
+        "cros_img": "octopus-release/R99-14455.0.0",
         "name": "lacros_fyi_tast_tests_OCTOPUS_DEV",
         "swarming": {},
         "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)",
@@ -1168,7 +1168,7 @@
       {
         "args": [],
         "cros_board": "octopus",
-        "cros_img": "octopus-release/R97-14324.62.0",
+        "cros_img": "octopus-release/R97-14324.72.0",
         "name": "lacros_fyi_tast_tests_OCTOPUS_STABLE",
         "swarming": {},
         "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)",
@@ -1189,7 +1189,7 @@
       {
         "args": [],
         "cros_board": "octopus",
-        "cros_img": "octopus-release/R99-14447.0.0",
+        "cros_img": "octopus-release/R99-14455.0.0",
         "name": "ozone_unittests_OCTOPUS_DEV",
         "swarming": {},
         "test": "ozone_unittests",
@@ -1209,7 +1209,7 @@
       {
         "args": [],
         "cros_board": "octopus",
-        "cros_img": "octopus-release/R97-14324.62.0",
+        "cros_img": "octopus-release/R97-14324.72.0",
         "name": "ozone_unittests_OCTOPUS_STABLE",
         "swarming": {},
         "test": "ozone_unittests",
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl
index 68aa86b4..cb108eba 100644
--- a/testing/buildbot/test_suites.pyl
+++ b/testing/buildbot/test_suites.pyl
@@ -3952,23 +3952,6 @@
       },
     },
 
-    'gpu_webgl_conformance_swiftshader_validating_telemetry_tests': {
-      'webgl_conformance_swiftshader_validating': {
-        'telemetry_test_name': 'webgl_conformance',
-        'args': [
-          '--extra-browser-args=--use-gl=swiftshader --use-cmd-decoder=validating',
-          '--xvfb',
-          '$$MAGIC_SUBSTITUTION_GPUIsASANFlag',
-        ],
-        'mixins': [
-          'has_native_resultdb_integration',
-        ],
-        'swarming': {
-          'shards': 1,
-        },
-      },
-    },
-
     'gpu_webgl_conformance_telemetry_tests': {
       'webgl_conformance': {
         'chromeos_args': [
@@ -6859,7 +6842,6 @@
 
     'gpu_swangle_telemetry_tests': [
       'gpu_webgl_conformance_swangle_passthrough_telemetry_tests',
-      'gpu_webgl_conformance_swiftshader_validating_telemetry_tests',
     ],
 
     'gpu_test_buildbucket_api_gpu_use_cases': [
diff --git a/testing/buildbot/trybot_analyze_config.json b/testing/buildbot/trybot_analyze_config.json
index c651ee0c..645f8543 100644
--- a/testing/buildbot/trybot_analyze_config.json
+++ b/testing/buildbot/trybot_analyze_config.json
@@ -65,6 +65,7 @@
       "third_party/mocha/.*(css|html|js)",
       "third_party/openscreen/src/DEPS",
       "third_party/polymer/v1_0/components-chromium/.*(css|html|js)",
+      "third_party/devtools-frontend/src/DEPS",
       "third_party/vulkan-deps/DEPS",
       "third_party/web-animations-js/.*(css|html|js)",
       "third_party/zlib/google/test/data/.*",
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl
index d19aac9..2e0979ae 100644
--- a/testing/buildbot/variants.pyl
+++ b/testing/buildbot/variants.pyl
@@ -572,8 +572,8 @@
   'CROS_ATLAS_DEV': {
     'skylab': {
       'cros_board': 'atlas',
-      'cros_chrome_version': '99.0.4815.0',
-      'cros_img': 'atlas-release/R99-14447.0.0',
+      'cros_chrome_version': '99.0.4827.0',
+      'cros_img': 'atlas-release/R99-14455.0.0',
     },
     'enabled': True,
     'identifier': 'ATLAS_DEV',
@@ -590,8 +590,8 @@
   'CROS_ATLAS_STABLE': {
     'skylab': {
       'cros_board': 'atlas',
-      'cros_chrome_version': '97.0.4692.77',
-      'cros_img': 'atlas-release/R97-14324.62.0',
+      'cros_chrome_version': '97.0.4692.91',
+      'cros_img': 'atlas-release/R97-14324.72.0',
     },
     'enabled': True,
     'identifier': 'ATLAS_STABLE',
@@ -608,8 +608,8 @@
   'CROS_EVE_DEV': {
     'skylab': {
       'cros_board': 'eve',
-      'cros_chrome_version': '99.0.4815.0',
-      'cros_img': 'eve-release/R99-14447.0.0',
+      'cros_chrome_version': '99.0.4827.0',
+      'cros_img': 'eve-release/R99-14455.0.0',
     },
     'enabled': True,
     'identifier': 'EVE_DEV',
@@ -626,8 +626,8 @@
   'CROS_EVE_STABLE': {
     'skylab': {
       'cros_board': 'eve',
-      'cros_chrome_version': '96.0.4664.111',
-      'cros_img': 'eve-release/R96-14268.67.0',
+      'cros_chrome_version': '97.0.4692.91',
+      'cros_img': 'eve-release/R97-14324.72.0',
     },
     'enabled': True,
     'identifier': 'EVE_STABLE',
@@ -662,8 +662,8 @@
   'CROS_OCTOPUS_DEV': {
     'skylab': {
       'cros_board': 'octopus',
-      'cros_chrome_version': '99.0.4815.0',
-      'cros_img': 'octopus-release/R99-14447.0.0',
+      'cros_chrome_version': '99.0.4827.0',
+      'cros_img': 'octopus-release/R99-14455.0.0',
     },
     'enabled': True,
     'identifier': 'OCTOPUS_DEV',
@@ -680,8 +680,8 @@
   'CROS_OCTOPUS_STABLE': {
     'skylab': {
       'cros_board': 'octopus',
-      'cros_chrome_version': '97.0.4692.77',
-      'cros_img': 'octopus-release/R97-14324.62.0',
+      'cros_chrome_version': '97.0.4692.91',
+      'cros_img': 'octopus-release/R97-14324.72.0',
     },
     'enabled': True,
     'identifier': 'OCTOPUS_STABLE',
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 4560dcc..6809550 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -4437,21 +4437,6 @@
             ]
         }
     ],
-    "IOSNewOverflowMenu": [
-        {
-            "platforms": [
-                "ios"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "NewOverflowMenu"
-                    ]
-                }
-            ]
-        }
-    ],
     "IOSRestoreSessionFromCache": [
         {
             "platforms": [
diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
index 082a771..e715a284 100644
--- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl
+++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
@@ -6899,6 +6899,8 @@
       Header
       # Declaration in iframe attribute.
       IframeAttribute
+      # Inside fenced frame.
+      InFencedFrameTree
 
   experimental type PermissionsPolicyBlockLocator extends object
     properties
diff --git a/third_party/blink/renderer/bindings/core/v8/custom_wrappable_adapter.h b/third_party/blink/renderer/bindings/core/v8/custom_wrappable_adapter.h
index 6a3c57a..2eb0075 100644
--- a/third_party/blink/renderer/bindings/core/v8/custom_wrappable_adapter.h
+++ b/third_party/blink/renderer/bindings/core/v8/custom_wrappable_adapter.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/platform/bindings/custom_wrappable.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
 #include "third_party/blink/renderer/platform/bindings/v8_private_property.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc b/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc
index b1d0156..4fb523f 100644
--- a/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc
+++ b/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc
@@ -65,7 +65,6 @@
 #include "third_party/blink/renderer/platform/bindings/v8_dom_wrapper.h"
 #include "third_party/blink/renderer/platform/bindings/v8_private_property.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/instrumentation/histogram.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/weborigin/reporting_disposition.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/scheduled_action.h b/third_party/blink/renderer/bindings/core/v8/scheduled_action.h
index 648bd6f..e47d4a1 100644
--- a/third_party/blink/renderer/bindings/core/v8/scheduled_action.h
+++ b/third_party/blink/renderer/bindings/core/v8/scheduled_action.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/script_controller.h b/third_party/blink/renderer/bindings/core/v8/script_controller.h
index 49338f7..a8d76db 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_controller.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_controller.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/window_proxy_manager.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/script_function.h b/third_party/blink/renderer/bindings/core/v8/script_function.h
index d8dd00b..b1313f3 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_function.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_function.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/script_promise.h b/third_party/blink/renderer/bindings/core/v8/script_promise.h
index af4b6a5..8d5fb40 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_promise.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_promise.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_value.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/script_promise_property_test.cc b/third_party/blink/renderer/bindings/core/v8/script_promise_property_test.cc
index 99f155e..16110db 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_promise_property_test.cc
+++ b/third_party/blink/renderer/bindings/core/v8/script_promise_property_test.cc
@@ -22,7 +22,6 @@
 #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h b/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h
index 676edd8..163b917 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/platform/bindings/scoped_persistent.h"
 #include "third_party/blink/renderer/platform/bindings/script_forbidden_scope.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/heap/self_keep_alive.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/script_streamer.h b/third_party/blink/renderer/bindings/core/v8/script_streamer.h
index 98ce365a..7193c31df 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_streamer.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_streamer.h
@@ -12,7 +12,7 @@
 #include "mojo/public/cpp/system/data_pipe.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/script/script_scheduling_type.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/script_streamer_test.cc b/third_party/blink/renderer/bindings/core/v8/script_streamer_test.cc
index 6e5f2d38f..8cf1e4ab 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_streamer_test.cc
+++ b/third_party/blink/renderer/bindings/core/v8/script_streamer_test.cc
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/script/mock_script_element_base.h"
 #include "third_party/blink/renderer/core/testing/dummy_page_holder.h"
 #include "third_party/blink/renderer/platform/exported/wrapped_resource_response.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "third_party/blink/renderer/platform/loader/fetch/cross_origin_attribute_value.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.cc b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.cc
index c43e1ba0..f91f46d 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.cc
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.cc
@@ -56,7 +56,7 @@
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/blob/blob_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/shared_buffer.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_buffer.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/transferables.h b/third_party/blink/renderer/bindings/core/v8/serialization/transferables.h
index 9d64d37..c0fea6a 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/transferables.h
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/transferables.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/unpacked_serialized_script_value.h b/third_party/blink/renderer/bindings/core/v8/serialization/unpacked_serialized_script_value.h
index 73b5f22..1e907c9 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/unpacked_serialized_script_value.h
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/unpacked_serialized_script_value.h
@@ -10,7 +10,6 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_script_runner_test.cc b/third_party/blink/renderer/bindings/core/v8/v8_script_runner_test.cc
index 7feeed3b..3c607f4 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_script_runner_test.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_script_runner_test.cc
@@ -17,7 +17,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/loader/resource/script_resource.h"
 #include "third_party/blink/renderer/core/script/classic_script.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/cached_metadata.h"
 #include "third_party/blink/renderer/platform/loader/fetch/script_cached_metadata_handler.h"
 #include "third_party/blink/renderer/platform/loader/fetch/url_loader/cached_metadata_handler.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc b/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc
index 31e3d33..e01f90c 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc
@@ -26,7 +26,6 @@
 #include "third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h"
 #include "third_party/blink/renderer/platform/crypto.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/loader/fetch/cached_metadata.h"
 #include "third_party/blink/renderer/platform/loader/fetch/script_cached_metadata_handler.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/window_proxy.h b/third_party/blink/renderer/bindings/core/v8/window_proxy.h
index 4e39a88e..4bcfdff 100644
--- a/third_party/blink/renderer/bindings/core/v8/window_proxy.h
+++ b/third_party/blink/renderer/bindings/core/v8/window_proxy.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/window_proxy_manager.h b/third_party/blink/renderer/bindings/core/v8/window_proxy_manager.h
index eb810cf9b..28262de4 100644
--- a/third_party/blink/renderer/bindings/core/v8/window_proxy_manager.h
+++ b/third_party/blink/renderer/bindings/core/v8/window_proxy_manager.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/remote_window_proxy.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/frame/remote_frame.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/world_safe_v8_reference.h b/third_party/blink/renderer/bindings/core/v8/world_safe_v8_reference.h
index cbcd8cb..14d14b8 100644
--- a/third_party/blink/renderer/bindings/core/v8/world_safe_v8_reference.h
+++ b/third_party/blink/renderer/bindings/core/v8/world_safe_v8_reference.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/build/scripts/templates/internal_runtime_flags.h.tmpl b/third_party/blink/renderer/build/scripts/templates/internal_runtime_flags.h.tmpl
index 39a28e3..5b952b1a 100644
--- a/third_party/blink/renderer/build/scripts/templates/internal_runtime_flags.h.tmpl
+++ b/third_party/blink/renderer/build/scripts/templates/internal_runtime_flags.h.tmpl
@@ -7,7 +7,7 @@
 #define {{header_guard}}
 
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
diff --git a/third_party/blink/renderer/build/scripts/templates/probe_sink.h.tmpl b/third_party/blink/renderer/build/scripts/templates/probe_sink.h.tmpl
index dc725b05..3fb3eb9 100644
--- a/third_party/blink/renderer/build/scripts/templates/probe_sink.h.tmpl
+++ b/third_party/blink/renderer/build/scripts/templates/probe_sink.h.tmpl
@@ -16,7 +16,7 @@
 
 #include "third_party/blink/renderer/core/inspector/agent_registry.h"
 #include "{{export_header}}"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/controller/dev_tools_frontend_impl.h b/third_party/blink/renderer/controller/dev_tools_frontend_impl.h
index 97d0ae1..b2b45796 100644
--- a/third_party/blink/renderer/controller/dev_tools_frontend_impl.h
+++ b/third_party/blink/renderer/controller/dev_tools_frontend_impl.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/public/mojom/devtools/devtools_frontend.mojom-blink.h"
 #include "third_party/blink/renderer/core/inspector/inspector_frontend_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_remote.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
diff --git a/third_party/blink/renderer/core/animation/animation.h b/third_party/blink/renderer/core/animation/animation.h
index 1384ae1..eaf2aca 100644
--- a/third_party/blink/renderer/core/animation/animation.h
+++ b/third_party/blink/renderer/core/animation/animation.h
@@ -53,7 +53,7 @@
 #include "third_party/blink/renderer/platform/animation/compositor_animation_delegate.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/animation/animation_effect.h b/third_party/blink/renderer/core/animation/animation_effect.h
index e0c96b3c..c74c8ea 100644
--- a/third_party/blink/renderer/core/animation/animation_effect.h
+++ b/third_party/blink/renderer/core/animation/animation_effect.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/css/compositor_keyframe_value.h b/third_party/blink/renderer/core/animation/css/compositor_keyframe_value.h
index ee5ba6410..6738fe7 100644
--- a/third_party/blink/renderer/core/animation/css/compositor_keyframe_value.h
+++ b/third_party/blink/renderer/core/animation/css/compositor_keyframe_value.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_value.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/effect_model.h b/third_party/blink/renderer/core/animation/effect_model.h
index 3cff2b57..f216d0b 100644
--- a/third_party/blink/renderer/core/animation/effect_model.h
+++ b/third_party/blink/renderer/core/animation/effect_model.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/core/animation/property_handle.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_property_names.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/animation/interpolation.h b/third_party/blink/renderer/core/animation/interpolation.h
index d57ab9d..2a8c432 100644
--- a/third_party/blink/renderer/core/animation/interpolation.h
+++ b/third_party/blink/renderer/core/animation/interpolation.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/animation/interpolable_value.h"
 #include "third_party/blink/renderer/core/animation/property_handle.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/animation/interpolation_effect.h b/third_party/blink/renderer/core/animation/interpolation_effect.h
index 162ff4b..fc95f810 100644
--- a/third_party/blink/renderer/core/animation/interpolation_effect.h
+++ b/third_party/blink/renderer/core/animation/interpolation_effect.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/animation/keyframe.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/animation/timing_function.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/keyframe.h b/third_party/blink/renderer/core/animation/keyframe.h
index 9551fce4..893a3adf 100644
--- a/third_party/blink/renderer/core/animation/keyframe.h
+++ b/third_party/blink/renderer/core/animation/keyframe.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/animation/effect_model.h"
 #include "third_party/blink/renderer/core/animation/property_handle.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/animation/keyframe_effect_model.h b/third_party/blink/renderer/core/animation/keyframe_effect_model.h
index 95ef141..c8c446ad 100644
--- a/third_party/blink/renderer/core/animation/keyframe_effect_model.h
+++ b/third_party/blink/renderer/core/animation/keyframe_effect_model.h
@@ -42,7 +42,6 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/animation/timing_function.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/animation/pending_animations.h b/third_party/blink/renderer/core/animation/pending_animations.h
index e4b7946..267cc13 100644
--- a/third_party/blink/renderer/core/animation/pending_animations.h
+++ b/third_party/blink/renderer/core/animation/pending_animations.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.h b/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.h
index 18f9a26..0bb95df 100644
--- a/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.h
+++ b/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.h
@@ -10,7 +10,6 @@
 #include "third_party/blink/renderer/platform/graphics/begin_frame_provider.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/aom/computed_accessible_node.cc b/third_party/blink/renderer/core/aom/computed_accessible_node.cc
index bde8141..88487f2 100644
--- a/third_party/blink/renderer/core/aom/computed_accessible_node.cc
+++ b/third_party/blink/renderer/core/aom/computed_accessible_node.cc
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h"
 #include "ui/accessibility/ax_mode.h"
 
diff --git a/third_party/blink/renderer/core/clipboard/data_object.h b/third_party/blink/renderer/core/clipboard/data_object.h
index 76bdcad..7c2523d 100644
--- a/third_party/blink/renderer/core/clipboard/data_object.h
+++ b/third_party/blink/renderer/core/clipboard/data_object.h
@@ -34,7 +34,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/clipboard/data_object_item.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/core/clipboard/data_object_item.h b/third_party/blink/renderer/core/clipboard/data_object_item.h
index 95b6615..4edff2f 100644
--- a/third_party/blink/renderer/core/clipboard/data_object_item.h
+++ b/third_party/blink/renderer/core/clipboard/data_object_item.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/public/platform/web_drag_data.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/fileapi/file.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/shared_buffer.h"
diff --git a/third_party/blink/renderer/core/clipboard/data_transfer.h b/third_party/blink/renderer/core/clipboard/data_transfer.h
index ea4e9d6f..534abbb 100644
--- a/third_party/blink/renderer/core/clipboard/data_transfer.h
+++ b/third_party/blink/renderer/core/clipboard/data_transfer.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/loader/resource/image_resource_content.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "ui/base/dragdrop/mojom/drag_drop_types.mojom-blink-forward.h"
diff --git a/third_party/blink/renderer/core/clipboard/data_transfer_item.h b/third_party/blink/renderer/core/clipboard/data_transfer_item.h
index 394548e79..a42deac 100644
--- a/third_party/blink/renderer/core/clipboard/data_transfer_item.h
+++ b/third_party/blink/renderer/core/clipboard/data_transfer_item.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/v8_function_string_callback.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/clipboard/data_transfer_item_list.h b/third_party/blink/renderer/core/clipboard/data_transfer_item_list.h
index 1275339..e3ee99b8 100644
--- a/third_party/blink/renderer/core/clipboard/data_transfer_item_list.h
+++ b/third_party/blink/renderer/core/clipboard/data_transfer_item_list.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/css/cascade_layer.h b/third_party/blink/renderer/core/css/cascade_layer.h
index c4ceb31d..c65c7857 100644
--- a/third_party/blink/renderer/core/css/cascade_layer.h
+++ b/third_party/blink/renderer/core/css/cascade_layer.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/style_rule.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/container_query_evaluator.h b/third_party/blink/renderer/core/css/container_query_evaluator.h
index 8066b2c..2254a71 100644
--- a/third_party/blink/renderer/core/css/container_query_evaluator.h
+++ b/third_party/blink/renderer/core/css/container_query_evaluator.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/layout/geometry/axis.h"
 #include "third_party/blink/renderer/core/layout/geometry/physical_size.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/counter_style.h b/third_party/blink/renderer/core/css/counter_style.h
index 8065188..12791d35 100644
--- a/third_party/blink/renderer/core/css/counter_style.h
+++ b/third_party/blink/renderer/core/css/counter_style.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/css_default_style_sheets.h b/third_party/blink/renderer/core/css/css_default_style_sheets.h
index faae707..ab52d97 100644
--- a/third_party/blink/renderer/core/css/css_default_style_sheets.h
+++ b/third_party/blink/renderer/core/css/css_default_style_sheets.h
@@ -26,7 +26,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/core/css/css_font_face_rule.h b/third_party/blink/renderer/core/css/css_font_face_rule.h
index 9a2a7f6..ebf31de 100644
--- a/third_party/blink/renderer/core/css/css_font_face_rule.h
+++ b/third_party/blink/renderer/core/css/css_font_face_rule.h
@@ -23,7 +23,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSS_FONT_FACE_RULE_H_
 
 #include "third_party/blink/renderer/core/css/css_rule.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
diff --git a/third_party/blink/renderer/core/css/css_font_face_source.h b/third_party/blink/renderer/core/css/css_font_face_source.h
index 083cc28e..9ed2dff 100644
--- a/third_party/blink/renderer/core/css/css_font_face_source.h
+++ b/third_party/blink/renderer/core/css/css_font_face_source.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/core/css/font_display.h"
 #include "third_party/blink/renderer/platform/fonts/font_cache_key.h"
 #include "third_party/blink/renderer/platform/fonts/font_selection_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/linked_hash_set.h"
diff --git a/third_party/blink/renderer/core/css/css_font_selector.h b/third_party/blink/renderer/core/css/css_font_selector.h
index 1233474..87b589c1 100644
--- a/third_party/blink/renderer/core/css/css_font_selector.h
+++ b/third_party/blink/renderer/core/css/css_font_selector.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/css/font_face_cache.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/platform/fonts/generic_font_family_settings.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/core/css/css_import_rule.h b/third_party/blink/renderer/core/css/css_import_rule.h
index 1d95fdf5..bb47cf0c 100644
--- a/third_party/blink/renderer/core/css/css_import_rule.h
+++ b/third_party/blink/renderer/core/css/css_import_rule.h
@@ -23,7 +23,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSS_IMPORT_RULE_H_
 
 #include "third_party/blink/renderer/core/css/css_rule.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/css_page_rule.h b/third_party/blink/renderer/core/css/css_page_rule.h
index b5832e3b..ad158ab8 100644
--- a/third_party/blink/renderer/core/css/css_page_rule.h
+++ b/third_party/blink/renderer/core/css/css_page_rule.h
@@ -23,7 +23,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSS_PAGE_RULE_H_
 
 #include "third_party/blink/renderer/core/css/css_rule.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
diff --git a/third_party/blink/renderer/core/css/css_paint_image_generator.h b/third_party/blink/renderer/core/css/css_paint_image_generator.h
index 256a9777..b525b81 100644
--- a/third_party/blink/renderer/core/css/css_paint_image_generator.h
+++ b/third_party/blink/renderer/core/css/css_paint_image_generator.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_property_names.h"
 #include "third_party/blink/renderer/core/css/cssom/css_style_value.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "ui/gfx/geometry/size_f.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/css_paint_value.h b/third_party/blink/renderer/core/css/css_paint_value.h
index c5ce477f..8dc3e9c6 100644
--- a/third_party/blink/renderer/core/css/css_paint_value.h
+++ b/third_party/blink/renderer/core/css/css_paint_value.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/css/css_paint_image_generator.h"
 #include "third_party/blink/renderer/core/css/css_variable_data.h"
 #include "third_party/blink/renderer/core/css/cssom/cross_thread_style_value.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/css/css_property_rule.h b/third_party/blink/renderer/core/css/css_property_rule.h
index 5769432..bf8d705 100644
--- a/third_party/blink/renderer/core/css/css_property_rule.h
+++ b/third_party/blink/renderer/core/css/css_property_rule.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSS_PROPERTY_RULE_H_
 
 #include "third_party/blink/renderer/core/css/css_rule.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
diff --git a/third_party/blink/renderer/core/css/css_property_source_data.h b/third_party/blink/renderer/core/css/css_property_source_data.h
index acea6b3..e5eafbb 100644
--- a/third_party/blink/renderer/core/css/css_property_source_data.h
+++ b/third_party/blink/renderer/core/css/css_property_source_data.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSS_PROPERTY_SOURCE_DATA_H_
 
 #include "third_party/blink/renderer/core/css/style_rule.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/css/css_rule.h b/third_party/blink/renderer/core/css/css_rule.h
index 5f394f8..1528e87 100644
--- a/third_party/blink/renderer/core/css/css_rule.h
+++ b/third_party/blink/renderer/core/css/css_rule.h
@@ -26,7 +26,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/frame/web_feature_forward.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/css/css_rule_list.h b/third_party/blink/renderer/core/css/css_rule_list.h
index 9a34352..15ece65 100644
--- a/third_party/blink/renderer/core/css/css_rule_list.h
+++ b/third_party/blink/renderer/core/css/css_rule_list.h
@@ -25,7 +25,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/css_scroll_timeline_rule.h b/third_party/blink/renderer/core/css/css_scroll_timeline_rule.h
index 53aa895..80c1203 100644
--- a/third_party/blink/renderer/core/css/css_scroll_timeline_rule.h
+++ b/third_party/blink/renderer/core/css/css_scroll_timeline_rule.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSS_SCROLL_TIMELINE_RULE_H_
 
 #include "third_party/blink/renderer/core/css/css_rule.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
diff --git a/third_party/blink/renderer/core/css/css_segmented_font_face.h b/third_party/blink/renderer/core/css/css_segmented_font_face.h
index 30251272..cc8ab6d 100644
--- a/third_party/blink/renderer/core/css/css_segmented_font_face.h
+++ b/third_party/blink/renderer/core/css/css_segmented_font_face.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/platform/fonts/segmented_font_data.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/lru_cache.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/core/css/css_style_rule.h b/third_party/blink/renderer/core/css/css_style_rule.h
index 3b0233f9..e0c42eb 100644
--- a/third_party/blink/renderer/core/css/css_style_rule.h
+++ b/third_party/blink/renderer/core/css/css_style_rule.h
@@ -24,7 +24,7 @@
 
 #include "third_party/blink/renderer/core/css/css_rule.h"
 #include "third_party/blink/renderer/core/css/cssom/style_property_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/css_style_sheet.h b/third_party/blink/renderer/core/css/css_style_sheet.h
index bfd0a2c..d9f25d9 100644
--- a/third_party/blink/renderer/core/css/css_style_sheet.h
+++ b/third_party/blink/renderer/core/css/css_style_sheet.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/core/dom/tree_scope.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_encoding.h"
diff --git a/third_party/blink/renderer/core/css/css_value.h b/third_party/blink/renderer/core/css/css_value.h
index 5adf5392..1efd198 100644
--- a/third_party/blink/renderer/core/css/css_value.h
+++ b/third_party/blink/renderer/core/css/css_value.h
@@ -25,7 +25,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
 #include "third_party/blink/renderer/platform/heap/custom_spaces.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/css_value_pool.cc b/third_party/blink/renderer/core/css/css_value_pool.cc
index d374f27..fd4f3174 100644
--- a/third_party/blink/renderer/core/css/css_value_pool.cc
+++ b/third_party/blink/renderer/core/css/css_value_pool.cc
@@ -25,7 +25,7 @@
 
 #include "third_party/blink/renderer/core/css/css_value_pool.h"
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/threading.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/cssom/paint_worklet_style_property_map_test.cc b/third_party/blink/renderer/core/css/cssom/paint_worklet_style_property_map_test.cc
index 60f54a5..f54d431d 100644
--- a/third_party/blink/renderer/core/css/cssom/paint_worklet_style_property_map_test.cc
+++ b/third_party/blink/renderer/core/css/cssom/paint_worklet_style_property_map_test.cc
@@ -19,7 +19,7 @@
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/testing/page_test_base.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
diff --git a/third_party/blink/renderer/core/css/cssom/prepopulated_computed_style_property_map_test.cc b/third_party/blink/renderer/core/css/cssom/prepopulated_computed_style_property_map_test.cc
index 710da8e..28f5c035 100644
--- a/third_party/blink/renderer/core/css/cssom/prepopulated_computed_style_property_map_test.cc
+++ b/third_party/blink/renderer/core/css/cssom/prepopulated_computed_style_property_map_test.cc
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/html/html_element.h"
 #include "third_party/blink/renderer/core/testing/page_test_base.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/font_face_cache.h b/third_party/blink/renderer/core/css/font_face_cache.h
index ffcab4f1..7bdbc18 100644
--- a/third_party/blink/renderer/core/css/font_face_cache.h
+++ b/third_party/blink/renderer/core/css/font_face_cache.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/css/font_face.h"
 #include "third_party/blink/renderer/core/css/style_rule.h"
 #include "third_party/blink/renderer/platform/fonts/font_selection_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/linked_hash_set.h"
diff --git a/third_party/blink/renderer/core/css/font_face_set_document.h b/third_party/blink/renderer/core/css/font_face_set_document.h
index f00f129..859ff32 100644
--- a/third_party/blink/renderer/core/css/font_face_set_document.h
+++ b/third_party/blink/renderer/core/css/font_face_set_document.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/events/event_listener.h"
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/font_face_set_worker.h b/third_party/blink/renderer/core/css/font_face_set_worker.h
index 3afe2c3b..506275e 100644
--- a/third_party/blink/renderer/core/css/font_face_set_worker.h
+++ b/third_party/blink/renderer/core/css/font_face_set_worker.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/css/offscreen_font_selector.h"
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
 #include "third_party/blink/renderer/core/workers/worker_thread.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/invalidation/pending_invalidations.h b/third_party/blink/renderer/core/css/invalidation/pending_invalidations.h
index dcdfcff..1bf2d58 100644
--- a/third_party/blink/renderer/core/css/invalidation/pending_invalidations.h
+++ b/third_party/blink/renderer/core/css/invalidation/pending_invalidations.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/css/invalidation/node_invalidation_sets.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/media_list.h b/third_party/blink/renderer/core/css/media_list.h
index 94ac5fa..5f1105a2 100644
--- a/third_party/blink/renderer/core/css/media_list.h
+++ b/third_party/blink/renderer/core/css/media_list.h
@@ -26,7 +26,7 @@
 #include "third_party/blink/renderer/core/css/media_query.h"
 #include "third_party/blink/renderer/core/layout/geometry/axis.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/core/css/media_query_evaluator.h b/third_party/blink/renderer/core/css/media_query_evaluator.h
index 3b0703a3..16e5cc2f 100644
--- a/third_party/blink/renderer/core/css/media_query_evaluator.h
+++ b/third_party/blink/renderer/core/css/media_query_evaluator.h
@@ -29,7 +29,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_MEDIA_QUERY_EVALUATOR_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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/css/media_query_list.h b/third_party/blink/renderer/core/css/media_query_list.h
index 7ed9f8ef..67d2590 100644
--- a/third_party/blink/renderer/core/css/media_query_list.h
+++ b/third_party/blink/renderer/core/css/media_query_list.h
@@ -26,7 +26,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/media_query_list_listener.h b/third_party/blink/renderer/core/css/media_query_list_listener.h
index b4a13e2..0994017 100644
--- a/third_party/blink/renderer/core/css/media_query_list_listener.h
+++ b/third_party/blink/renderer/core/css/media_query_list_listener.h
@@ -22,7 +22,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/media_query_list.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/media_query_matcher.h b/third_party/blink/renderer/core/css/media_query_matcher.h
index b2bc400..e950f63 100644
--- a/third_party/blink/renderer/core/css/media_query_matcher.h
+++ b/third_party/blink/renderer/core/css/media_query_matcher.h
@@ -22,7 +22,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/media_values.h b/third_party/blink/renderer/core/css/media_values.h
index 3423719..798bd17 100644
--- a/third_party/blink/renderer/core/css/media_values.h
+++ b/third_party/blink/renderer/core/css/media_values.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/public/mojom/webpreferences/web_preferences.mojom-blink-forward.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_primitive_value.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/text/writing_mode.h"
 #include "ui/base/pointer/pointer_device.h"
 
diff --git a/third_party/blink/renderer/core/css/native_paint_image_generator.h b/third_party/blink/renderer/core/css/native_paint_image_generator.h
index 87853db36..c01d969 100644
--- a/third_party/blink/renderer/core/css/native_paint_image_generator.h
+++ b/third_party/blink/renderer/core/css/native_paint_image_generator.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/animation/animation.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/offscreen_font_selector.h b/third_party/blink/renderer/core/css/offscreen_font_selector.h
index 4bc60a8b..738aef9 100644
--- a/third_party/blink/renderer/core/css/offscreen_font_selector.h
+++ b/third_party/blink/renderer/core/css/offscreen_font_selector.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/css/font_face_cache.h"
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
 #include "third_party/blink/renderer/platform/fonts/generic_font_family_settings.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_context.h b/third_party/blink/renderer/core/css/parser/css_parser_context.h
index f93fbda..91529897 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_context.h
+++ b/third_party/blink/renderer/core/css/parser/css_parser_context.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/frame/web_feature_forward.h"
 #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/weborigin/referrer.h"
diff --git a/third_party/blink/renderer/core/css/resolver/match_result.h b/third_party/blink/renderer/core/css/resolver/match_result.h
index a2ddef8..d7ef225 100644
--- a/third_party/blink/renderer/core/css/resolver/match_result.h
+++ b/third_party/blink/renderer/core/css/resolver/match_result.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/css/resolver/cascade_priority.h"
 #include "third_party/blink/renderer/core/css/rule_set.h"
 #include "third_party/blink/renderer/core/css/selector_checker.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/resolver/matched_properties_cache.h b/third_party/blink/renderer/core/css/resolver/matched_properties_cache.h
index 42fbca4f..eb2794f 100644
--- a/third_party/blink/renderer/core/css/resolver/matched_properties_cache.h
+++ b/third_party/blink/renderer/core/css/resolver/matched_properties_cache.h
@@ -27,7 +27,7 @@
 #include "third_party/blink/renderer/core/css/css_property_value_set.h"
 #include "third_party/blink/renderer/core/css/resolver/match_result.h"
 #include "third_party/blink/renderer/platform/heap/forward.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
index 4065045f..ebf1e5db3 100644
--- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
@@ -845,6 +845,20 @@
   }
 }
 
+// This is the core of computing style for a given element, ie., first compute
+// base style and then apply animation style. (Not all elements needing style
+// recalc ever hit ResolveStyle(); e.g., the “independent inherited properties
+// optimization” can cause it to be skipped.)
+//
+// Generally, when an element is marked for style recalc, we do not reuse any
+// style from previous computations, but re-compute from scratch every time.
+// However: If possible, we compute base style only once and cache it, and then
+// just apply animation style on top of the cached base style. This is because
+// it's a common situation that elements have an unchanging base and then some
+// independent animation properties that change every frame and don't affect
+// any other properties or elements. (The exceptions can be found in
+// CanReuseBaseComputedStyle().) This is known as the “base computed style
+// optimization”.
 scoped_refptr<ComputedStyle> StyleResolver::ResolveStyle(
     Element* element,
     const StyleRecalcContext& style_recalc_context,
@@ -859,11 +873,18 @@
 
   SelectorFilterParentScope::EnsureParentStackIsPushed();
 
+  // The StyleResolverState is where we actually end up accumulating the
+  // computed style. It's just a convenient way of not having to send
+  // a lot of input/output variables around between the different functions.
   StyleResolverState state(GetDocument(), *element, style_recalc_context,
                            style_request);
 
   STACK_UNINITIALIZED StyleCascade cascade(state);
 
+  // Compute the base style, or reuse an existing cached base style if
+  // applicable (ie., only animation has changed). This is the bulk of the
+  // style computation itself, also also where the caching for the base
+  // computed style optimization happens.
   ApplyBaseStyle(element, style_recalc_context, style_request, state, cascade);
 
   if (style_request.IsPseudoStyleRequest() && state.HadNoMatchedProperties())
@@ -1038,6 +1059,24 @@
   }
 }
 
+// This is the core of computing base style for a given element, ie., the style
+// that does not depend on animations.
+//
+// The typical flow (barring special rules for pseudo-elements and similar) is:
+//
+//   1. Initialize the style object, by cloning the initial style.
+//      (InitStyleAndApplyInheritance() -> ApplyInheritance() ->
+//      CreateComputedStyle()).
+//   2. Copy any inherited properties from the parent element.
+//      (InitStyleAndApplyInheritance() -> ApplyInheritance() ->
+//      ComputedStyleBase::InheritFrom()).
+//   3. Collect all CSS rules that apply to this element
+//      (MatchAllRules(), into ElementRuleCollector).
+//   4. Apply all the found rules in the correct order
+//      (CascadeAndApplyMatchedProperties(), using StyleCascade).
+//
+// The base style is cached if possible (see ResolveStyle() on the “base
+// computed style optimization”).
 void StyleResolver::ApplyBaseStyle(
     Element* element,
     const StyleRecalcContext& style_recalc_context,
@@ -1053,6 +1092,8 @@
   if (ShouldComputeBaseComputedStyle(animation_base_computed_style)) {
     InitStyleAndApplyInheritance(*element, style_request, state);
 
+    // For some very special elements (e.g. <video>): Ensure internal UA style
+    // rules that are relevant for the element exist in the stylesheet.
     GetDocument().GetStyleEngine().EnsureUAStyleForElement(*element);
 
     if (!style_request.IsPseudoStyleRequest() && IsForcedColorsModeEnabled()) {
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.h b/third_party/blink/renderer/core/css/resolver/style_resolver.h
index daf5b33..69cc1e14 100644
--- a/third_party/blink/renderer/core/css/resolver/style_resolver.h
+++ b/third_party/blink/renderer/core/css/resolver/style_resolver.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/css/selector_checker.h"
 #include "third_party/blink/renderer/core/css/selector_filter.h"
 #include "third_party/blink/renderer/core/css/style_request.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/core/css/style_engine.h b/third_party/blink/renderer/core/css/style_engine.h
index 9f79bcd9..109c8fe 100644
--- a/third_party/blink/renderer/core/css/style_engine.h
+++ b/third_party/blink/renderer/core/css/style_engine.h
@@ -57,7 +57,7 @@
 #include "third_party/blink/renderer/core/style/filter_operations.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/fonts/font_selector_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/css/style_media.h b/third_party/blink/renderer/core/css/style_media.h
index eeb5ef5..8faa69fa 100644
--- a/third_party/blink/renderer/core/css/style_media.h
+++ b/third_party/blink/renderer/core/css/style_media.h
@@ -29,7 +29,7 @@
 
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/style_rule.h b/third_party/blink/renderer/core/css/style_rule.h
index 7f86deb8..e17787fc 100644
--- a/third_party/blink/renderer/core/css/style_rule.h
+++ b/third_party/blink/renderer/core/css/style_rule.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/core/css/css_property_value_set.h"
 #include "third_party/blink/renderer/core/css/css_selector_list.h"
 #include "third_party/blink/renderer/core/css/media_list.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/style_rule_import.h b/third_party/blink/renderer/core/css/style_rule_import.h
index 83bd03f..ba67301 100644
--- a/third_party/blink/renderer/core/css/style_rule_import.h
+++ b/third_party/blink/renderer/core/css/style_rule_import.h
@@ -24,7 +24,7 @@
 
 #include "third_party/blink/renderer/core/css/css_origin_clean.h"
 #include "third_party/blink/renderer/core/css/style_rule.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_client.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
diff --git a/third_party/blink/renderer/core/css/style_sheet_collection.h b/third_party/blink/renderer/core/css/style_sheet_collection.h
index 4c93d73..a2f00b18 100644
--- a/third_party/blink/renderer/core/css/style_sheet_collection.h
+++ b/third_party/blink/renderer/core/css/style_sheet_collection.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/css/active_style_sheets.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/css/style_sheet_contents.h b/third_party/blink/renderer/core/css/style_sheet_contents.h
index 09ce222..b3a23c24 100644
--- a/third_party/blink/renderer/core/css/style_sheet_contents.h
+++ b/third_party/blink/renderer/core/css/style_sheet_contents.h
@@ -25,7 +25,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/parser/css_parser_context.h"
 #include "third_party/blink/renderer/core/css/rule_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/render_blocking_behavior.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/core/css/style_sheet_list.h b/third_party/blink/renderer/core/css/style_sheet_list.h
index a3abbb5..ea515e7 100644
--- a/third_party/blink/renderer/core/css/style_sheet_list.h
+++ b/third_party/blink/renderer/core/css/style_sheet_list.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/core/css/css_style_sheet.h"
 #include "third_party/blink/renderer/core/dom/tree_scope.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/dom/child_list_mutation_scope.h b/third_party/blink/renderer/core/dom/child_list_mutation_scope.h
index 213a1d6..32806bc 100644
--- a/third_party/blink/renderer/core/dom/child_list_mutation_scope.h
+++ b/third_party/blink/renderer/core/dom/child_list_mutation_scope.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/mutation_observer.h"
 #include "third_party/blink/renderer/core/dom/node.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/context_features.h b/third_party/blink/renderer/core/dom/context_features.h
index 62205e3..6f73393 100644
--- a/third_party/blink/renderer/core/dom/context_features.h
+++ b/third_party/blink/renderer/core/dom/context_features.h
@@ -30,7 +30,7 @@
 #include <memory>
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/page/page.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/document_init.h b/third_party/blink/renderer/core/dom/document_init.h
index 5a6a022..4e1b6f5a 100644
--- a/third_party/blink/renderer/core/dom/document_init.h
+++ b/third_party/blink/renderer/core/dom/document_init.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/execution_context/security_context.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/document_parser.h b/third_party/blink/renderer/core/dom/document_parser.h
index da85a20d..7eafb19 100644
--- a/third_party/blink/renderer/core/dom/document_parser.h
+++ b/third_party/blink/renderer/core/dom/document_parser.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/document_parser_client.h b/third_party/blink/renderer/core/dom/document_parser_client.h
index 05f4f3d..2aa7eb5 100644
--- a/third_party/blink/renderer/core/dom/document_parser_client.h
+++ b/third_party/blink/renderer/core/dom/document_parser_client.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_DOCUMENT_PARSER_CLIENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_DOCUMENT_PARSER_CLIENT_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/document_parser_timing.h b/third_party/blink/renderer/core/dom/document_parser_timing.h
index 96c36f6d..1e764004 100644
--- a/third_party/blink/renderer/core/dom/document_parser_timing.h
+++ b/third_party/blink/renderer/core/dom/document_parser_timing.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_DOCUMENT_PARSER_TIMING_H_
 
 #include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/document_test.cc b/third_party/blink/renderer/core/dom/document_test.cc
index f253dc2..e43c955d 100644
--- a/third_party/blink/renderer/core/dom/document_test.cc
+++ b/third_party/blink/renderer/core/dom/document_test.cc
@@ -78,7 +78,6 @@
 #include "third_party/blink/renderer/core/testing/sim/sim_request.h"
 #include "third_party/blink/renderer/core/testing/sim/sim_test.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
 #include "third_party/blink/renderer/platform/testing/url_test_helpers.h"
diff --git a/third_party/blink/renderer/core/dom/document_timing.h b/third_party/blink/renderer/core/dom/document_timing.h
index e11f2f7..4ab8fb6 100644
--- a/third_party/blink/renderer/core/dom/document_timing.h
+++ b/third_party/blink/renderer/core/dom/document_timing.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_DOCUMENT_TIMING_H_
 
 #include "base/time/time.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/dom_token_list.h b/third_party/blink/renderer/core/dom/dom_token_list.h
index b39e376..b7a4e65 100644
--- a/third_party/blink/renderer/core/dom/dom_token_list.h
+++ b/third_party/blink/renderer/core/dom/dom_token_list.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/dom/qualified_name.h"
 #include "third_party/blink/renderer/core/dom/space_split_string.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
index 5456d4b7..57d940aea 100644
--- a/third_party/blink/renderer/core/dom/element.cc
+++ b/third_party/blink/renderer/core/dom/element.cc
@@ -2961,6 +2961,10 @@
   return nullptr;
 }
 
+// Recalculate the style for this element, and if that element notes
+// that children must also be recalculated, call ourself recursively
+// on any children (via RecalcDescendantStyles()), and/or update
+// pseudo-elements.
 void Element::RecalcStyle(const StyleRecalcChange change,
                           const StyleRecalcContext& style_recalc_context) {
   DCHECK(InActiveDocument());
@@ -3149,6 +3153,27 @@
   return false;
 }
 
+// This function performs two important tasks:
+//
+//  1. It computes the correct style for the element itself.
+//  2. It figures out to what degree we need to propagate changes
+//     to child elements (and returns that).
+//
+// #1 can happen in one out of two ways. The normal way is that ask the
+// style resolver to compute the style from scratch (modulo some caching).
+// The other one is an optimization for “independent inherited properties”;
+// if this recalc is because the parent has changed only properties marked
+// as “independent” (i.e., they do not affect other properties; “visibility”
+// is an example of such a property), we can reuse our existing style and just
+// re-propagate those properties.
+//
+// #2 happens by diffing the old and new styles. In the extreme example,
+// if the two are identical, we don't need to invalidate child elements
+// at all. But if they are different, they will usually be different to
+// differing degrees; e.g. as noted above, if only independent properties
+// changed, we can inform children of that for less work down the tree.
+// Our own diff gets combined with the input StyleRecalcChange to produce a
+// child recalc policy that's roughly the strictest of the two.
 StyleRecalcChange Element::RecalcOwnStyle(
     const StyleRecalcChange change,
     const StyleRecalcContext& style_recalc_context) {
@@ -3177,6 +3202,9 @@
   }
   if (!new_style && (parent_style || (GetDocument().documentElement() == this &&
                                       LayoutViewCanHaveChildren(*this)))) {
+    // This is the normal flow through the function; calculates
+    // the element's style more or less from scratch (typically
+    // ending up calling StyleResolver::ResolveStyle()).
     new_style = StyleForLayoutObject(style_recalc_context);
   }
   if (new_style && !ShouldStoreComputedStyle(*new_style))
diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h
index d03f3acd..7ac352e 100644
--- a/third_party/blink/renderer/core/dom/element.h
+++ b/third_party/blink/renderer/core/dom/element.h
@@ -45,7 +45,7 @@
 #include "third_party/blink/renderer/core/dom/whitespace_attacher.h"
 #include "third_party/blink/renderer/core/html_names.h"
 #include "third_party/blink/renderer/core/trustedtypes/trusted_types_util.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/region_capture_crop_id.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/core/dom/element_data_cache.h b/third_party/blink/renderer/core/dom/element_data_cache.h
index b495431..e93d56da5 100644
--- a/third_party/blink/renderer/core/dom/element_data_cache.h
+++ b/third_party/blink/renderer/core/dom/element_data_cache.h
@@ -28,7 +28,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_ELEMENT_DATA_CACHE_H_
 
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/dom/element_rare_data.h b/third_party/blink/renderer/core/dom/element_rare_data.h
index 5bbfa15..b2aa73f 100644
--- a/third_party/blink/renderer/core/dom/element_rare_data.h
+++ b/third_party/blink/renderer/core/dom/element_rare_data.h
@@ -42,7 +42,7 @@
 #include "third_party/blink/renderer/core/dom/space_split_string.h"
 #include "third_party/blink/renderer/core/html/custom/custom_element_definition.h"
 #include "third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/region_capture_crop_id.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
diff --git a/third_party/blink/renderer/core/dom/events/event.h b/third_party/blink/renderer/core/dom/events/event.h
index 4a6562c..ed1c3ca 100644
--- a/third_party/blink/renderer/core/dom/events/event.h
+++ b/third_party/blink/renderer/core/dom/events/event.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/probe/async_task_context.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/events/event_dispatcher.h b/third_party/blink/renderer/core/dom/events/event_dispatcher.h
index 192b9fe..a20f0c6 100644
--- a/third_party/blink/renderer/core/dom/events/event_dispatcher.h
+++ b/third_party/blink/renderer/core/dom/events/event_dispatcher.h
@@ -32,7 +32,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/dom/events/event_dispatch_result.h"
 #include "third_party/blink/renderer/core/dom/events/simulated_click_options.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/events/event_listener.h b/third_party/blink/renderer/core/dom/events/event_listener.h
index 9add232..373cf6e 100644
--- a/third_party/blink/renderer/core/dom/events/event_listener.h
+++ b/third_party/blink/renderer/core/dom/events/event_listener.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/probe/async_task_context.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/events/event_path.h b/third_party/blink/renderer/core/dom/events/event_path.h
index 49db3dbb..23d965b 100644
--- a/third_party/blink/renderer/core/dom/events/event_path.h
+++ b/third_party/blink/renderer/core/dom/events/event_path.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/events/node_event_context.h"
 #include "third_party/blink/renderer/core/dom/events/tree_scope_event_context.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/events/event_target.h b/third_party/blink/renderer/core/dom/events/event_target.h
index 2f70551..9637890 100644
--- a/third_party/blink/renderer/core/dom/events/event_target.h
+++ b/third_party/blink/renderer/core/dom/events/event_target.h
@@ -41,7 +41,7 @@
 #include "third_party/blink/renderer/core/event_target_names.h"
 #include "third_party/blink/renderer/core/event_type_names.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
diff --git a/third_party/blink/renderer/core/dom/events/registered_event_listener.h b/third_party/blink/renderer/core/dom/events/registered_event_listener.h
index 73a21a8..82a3875 100644
--- a/third_party/blink/renderer/core/dom/events/registered_event_listener.h
+++ b/third_party/blink/renderer/core/dom/events/registered_event_listener.h
@@ -26,7 +26,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_EVENTS_REGISTERED_EVENT_LISTENER_H_
 
 #include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/flat_tree_node_data.h b/third_party/blink/renderer/core/dom/flat_tree_node_data.h
index 2c4c6ca..6c4d9979 100644
--- a/third_party/blink/renderer/core/dom/flat_tree_node_data.h
+++ b/third_party/blink/renderer/core/dom/flat_tree_node_data.h
@@ -7,7 +7,7 @@
 
 #include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/dom/node.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/frame_request_callback_collection.h b/third_party/blink/renderer/core/dom/frame_request_callback_collection.h
index a3d4f10..0e357ed 100644
--- a/third_party/blink/renderer/core/dom/frame_request_callback_collection.h
+++ b/third_party/blink/renderer/core/dom/frame_request_callback_collection.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/probe/async_task_context.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/id_target_observer_registry.h b/third_party/blink/renderer/core/dom/id_target_observer_registry.h
index 7ea4050e..b9e18b5 100644
--- a/third_party/blink/renderer/core/dom/id_target_observer_registry.h
+++ b/third_party/blink/renderer/core/dom/id_target_observer_registry.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 
diff --git a/third_party/blink/renderer/core/dom/live_node_list.h b/third_party/blink/renderer/core/dom/live_node_list.h
index d61915d2..7b6bdc98 100644
--- a/third_party/blink/renderer/core/dom/live_node_list.h
+++ b/third_party/blink/renderer/core/dom/live_node_list.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/dom/node_list.h"
 #include "third_party/blink/renderer/core/html/collection_items_cache.h"
 #include "third_party/blink/renderer/core/html/collection_type.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/live_node_list_base.h b/third_party/blink/renderer/core/dom/live_node_list_base.h
index 6a1eaece..54fd746 100644
--- a/third_party/blink/renderer/core/dom/live_node_list_base.h
+++ b/third_party/blink/renderer/core/dom/live_node_list_base.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/core/dom/element_traversal.h"
 #include "third_party/blink/renderer/core/html/collection_type.h"
 #include "third_party/blink/renderer/core/html_names.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/mutation_observer.h b/third_party/blink/renderer/core/dom/mutation_observer.h
index 7e5bce6..f5e0e64 100644
--- a/third_party/blink/renderer/core/dom/mutation_observer.h
+++ b/third_party/blink/renderer/core/dom/mutation_observer.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/dom/mutation_observer_interest_group.h b/third_party/blink/renderer/core/dom/mutation_observer_interest_group.h
index 79e8913..e00a500 100644
--- a/third_party/blink/renderer/core/dom/mutation_observer_interest_group.h
+++ b/third_party/blink/renderer/core/dom/mutation_observer_interest_group.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/dom/mutation_observer.h"
 #include "third_party/blink/renderer/core/dom/node.h"
 #include "third_party/blink/renderer/core/dom/qualified_name.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/mutation_observer_registration.h b/third_party/blink/renderer/core/dom/mutation_observer_registration.h
index 1e8934e..91f1e77d9a 100644
--- a/third_party/blink/renderer/core/dom/mutation_observer_registration.h
+++ b/third_party/blink/renderer/core/dom/mutation_observer_registration.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/mutation_observer.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
diff --git a/third_party/blink/renderer/core/dom/node_iterator.h b/third_party/blink/renderer/core/dom/node_iterator.h
index 51e5f4f..98403119 100644
--- a/third_party/blink/renderer/core/dom/node_iterator.h
+++ b/third_party/blink/renderer/core/dom/node_iterator.h
@@ -27,7 +27,7 @@
 
 #include "third_party/blink/renderer/core/dom/node_iterator_base.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/node_lists_node_data.h b/third_party/blink/renderer/core/dom/node_lists_node_data.h
index af389dc2..0666393 100644
--- a/third_party/blink/renderer/core/dom/node_lists_node_data.h
+++ b/third_party/blink/renderer/core/dom/node_lists_node_data.h
@@ -28,7 +28,6 @@
 #include "third_party/blink/renderer/core/dom/tag_collection.h"
 #include "third_party/blink/renderer/core/html/collection_type.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 
diff --git a/third_party/blink/renderer/core/dom/node_rare_data.cc b/third_party/blink/renderer/core/dom/node_rare_data.cc
index 895d6410..97636d8 100644
--- a/third_party/blink/renderer/core/dom/node_rare_data.cc
+++ b/third_party/blink/renderer/core/dom/node_rare_data.cc
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/core/layout/layout_object.h"
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/size_assertions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/node_rare_data.h b/third_party/blink/renderer/core/dom/node_rare_data.h
index 41b72f2..879ac471 100644
--- a/third_party/blink/renderer/core/dom/node_rare_data.h
+++ b/third_party/blink/renderer/core/dom/node_rare_data.h
@@ -25,7 +25,6 @@
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/thread_state_storage.h"
 #include "third_party/blink/renderer/platform/wtf/bit_field.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
diff --git a/third_party/blink/renderer/core/dom/nth_index_cache.h b/third_party/blink/renderer/core/dom/nth_index_cache.h
index adb5bca..b49d557d 100644
--- a/third_party/blink/renderer/core/dom/nth_index_cache.h
+++ b/third_party/blink/renderer/core/dom/nth_index_cache.h
@@ -8,7 +8,7 @@
 #include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/pseudo_element_data.h b/third_party/blink/renderer/core/dom/pseudo_element_data.h
index da1f384d..37dfedd 100644
--- a/third_party/blink/renderer/core/dom/pseudo_element_data.h
+++ b/third_party/blink/renderer/core/dom/pseudo_element_data.h
@@ -7,7 +7,7 @@
 
 #include "build/build_config.h"
 #include "third_party/blink/renderer/core/dom/transition_pseudo_element_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/range.h b/third_party/blink/renderer/core/dom/range.h
index 86d1068..d7138d15 100644
--- a/third_party/blink/renderer/core/dom/range.h
+++ b/third_party/blink/renderer/core/dom/range.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/dom/range_boundary_point.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/rect_f.h"
diff --git a/third_party/blink/renderer/core/dom/range_test.cc b/third_party/blink/renderer/core/dom/range_test.cc
index 128cd66a..58ffe7f 100644
--- a/third_party/blink/renderer/core/dom/range_test.cc
+++ b/third_party/blink/renderer/core/dom/range_test.cc
@@ -27,7 +27,6 @@
 #include "third_party/blink/renderer/core/html/html_html_element.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "ui/gfx/geometry/quad_f.h"
diff --git a/third_party/blink/renderer/core/dom/scripted_animation_controller.h b/third_party/blink/renderer/core/dom/scripted_animation_controller.h
index 961adcfc..7992ada 100644
--- a/third_party/blink/renderer/core/dom/scripted_animation_controller.h
+++ b/third_party/blink/renderer/core/dom/scripted_animation_controller.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
diff --git a/third_party/blink/renderer/core/dom/scripted_animation_controller_test.cc b/third_party/blink/renderer/core/dom/scripted_animation_controller_test.cc
index 8b95786..4f05c3d 100644
--- a/third_party/blink/renderer/core/dom/scripted_animation_controller_test.cc
+++ b/third_party/blink/renderer/core/dom/scripted_animation_controller_test.cc
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/core/dom/frame_request_callback_collection.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/testing/dummy_page_holder.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 
diff --git a/third_party/blink/renderer/core/dom/scripted_idle_task_controller.h b/third_party/blink/renderer/core/dom/scripted_idle_task_controller.h
index 71de127f5..1d38f2f 100644
--- a/third_party/blink/renderer/core/dom/scripted_idle_task_controller.h
+++ b/third_party/blink/renderer/core/dom/scripted_idle_task_controller.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/probe/async_task_context.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/dom/slot_assignment.h b/third_party/blink/renderer/core/dom/slot_assignment.h
index a6b38ddf..ff3c81c 100644
--- a/third_party/blink/renderer/core/dom/slot_assignment.h
+++ b/third_party/blink/renderer/core/dom/slot_assignment.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/dom/tree_ordered_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/slot_assignment_engine.h b/third_party/blink/renderer/core/dom/slot_assignment_engine.h
index 9ca79dd..0389dff2 100644
--- a/third_party/blink/renderer/core/dom/slot_assignment_engine.h
+++ b/third_party/blink/renderer/core/dom/slot_assignment_engine.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/static_range.h b/third_party/blink/renderer/core/dom/static_range.h
index efe6d12..71523882 100644
--- a/third_party/blink/renderer/core/dom/static_range.h
+++ b/third_party/blink/renderer/core/dom/static_range.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/dom/range.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/static_range_test.cc b/third_party/blink/renderer/core/dom/static_range_test.cc
index 3d2ac03..9d713dd 100644
--- a/third_party/blink/renderer/core/dom/static_range_test.cc
+++ b/third_party/blink/renderer/core/dom/static_range_test.cc
@@ -17,7 +17,6 @@
 #include "third_party/blink/renderer/core/html/html_html_element.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/synchronous_mutation_observer.h b/third_party/blink/renderer/core/dom/synchronous_mutation_observer.h
index 45c9958..d11386b7 100644
--- a/third_party/blink/renderer/core/dom/synchronous_mutation_observer.h
+++ b/third_party/blink/renderer/core/dom/synchronous_mutation_observer.h
@@ -9,7 +9,6 @@
 #include "third_party/blink/renderer/core/dom/container_node.h"
 #include "third_party/blink/renderer/core/dom/qualified_name.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
diff --git a/third_party/blink/renderer/core/dom/transition_pseudo_element_data.h b/third_party/blink/renderer/core/dom/transition_pseudo_element_data.h
index 5a8274f..b8fe0c2 100644
--- a/third_party/blink/renderer/core/dom/transition_pseudo_element_data.h
+++ b/third_party/blink/renderer/core/dom/transition_pseudo_element_data.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_TRANSITION_PSEUDO_ELEMENT_DATA_H_
 
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/tree_ordered_list.h b/third_party/blink/renderer/core/dom/tree_ordered_list.h
index 4d070ea..a22312e6 100644
--- a/third_party/blink/renderer/core/dom/tree_ordered_list.h
+++ b/third_party/blink/renderer/core/dom/tree_ordered_list.h
@@ -32,7 +32,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/tree_ordered_map.h b/third_party/blink/renderer/core/dom/tree_ordered_map.h
index f152257..dd15d52 100644
--- a/third_party/blink/renderer/core/dom/tree_ordered_map.h
+++ b/third_party/blink/renderer/core/dom/tree_ordered_map.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/core/dom/tree_scope.h b/third_party/blink/renderer/core/dom/tree_scope.h
index 904dba4..076e615 100644
--- a/third_party/blink/renderer/core/dom/tree_scope.h
+++ b/third_party/blink/renderer/core/dom/tree_scope.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/layout/hit_test_request.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/tree_walker.h b/third_party/blink/renderer/core/dom/tree_walker.h
index 8c66e98..9829711 100644
--- a/third_party/blink/renderer/core/dom/tree_walker.h
+++ b/third_party/blink/renderer/core/dom/tree_walker.h
@@ -27,7 +27,7 @@
 
 #include "third_party/blink/renderer/core/dom/node_iterator_base.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/user_action_element_set.h b/third_party/blink/renderer/core/dom/user_action_element_set.h
index c30fff60..4189543 100644
--- a/third_party/blink/renderer/core/dom/user_action_element_set.h
+++ b/third_party/blink/renderer/core/dom/user_action_element_set.h
@@ -28,7 +28,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_USER_ACTION_ELEMENT_SET_H_
 
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/weak_identifier_map.h b/third_party/blink/renderer/core/dom/weak_identifier_map.h
index a24fe0c..6542475 100644
--- a/third_party/blink/renderer/core/dom/weak_identifier_map.h
+++ b/third_party/blink/renderer/core/dom/weak_identifier_map.h
@@ -7,7 +7,7 @@
 
 #include <limits>
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
diff --git a/third_party/blink/renderer/core/editing/commands/apply_style_command.cc b/third_party/blink/renderer/core/editing/commands/apply_style_command.cc
index 97cc32b..676122e 100644
--- a/third_party/blink/renderer/core/editing/commands/apply_style_command.cc
+++ b/third_party/blink/renderer/core/editing/commands/apply_style_command.cc
@@ -57,7 +57,6 @@
 #include "third_party/blink/renderer/core/layout/layout_object.h"
 #include "third_party/blink/renderer/core/layout/layout_text.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
diff --git a/third_party/blink/renderer/core/editing/commands/edit_command.h b/third_party/blink/renderer/core/editing/commands/edit_command.h
index 2672b79..23e9fe7b 100644
--- a/third_party/blink/renderer/core/editing/commands/edit_command.h
+++ b/third_party/blink/renderer/core/editing/commands/edit_command.h
@@ -28,7 +28,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/events/input_event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/commands/selection_for_undo_step.h b/third_party/blink/renderer/core/editing/commands/selection_for_undo_step.h
index fa96fa03..be78648 100644
--- a/third_party/blink/renderer/core/editing/commands/selection_for_undo_step.h
+++ b/third_party/blink/renderer/core/editing/commands/selection_for_undo_step.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/core/editing/position.h"
 #include "third_party/blink/renderer/core/editing/text_affinity.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/commands/undo_stack.h b/third_party/blink/renderer/core/editing/commands/undo_stack.h
index 111f62c9..aaa9365 100644
--- a/third_party/blink/renderer/core/editing/commands/undo_stack.h
+++ b/third_party/blink/renderer/core/editing/commands/undo_stack.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/commands/undo_step.h b/third_party/blink/renderer/core/editing/commands/undo_step.h
index 62a60ab2..bded1cf 100644
--- a/third_party/blink/renderer/core/editing/commands/undo_step.h
+++ b/third_party/blink/renderer/core/editing/commands/undo_step.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/editing/commands/selection_for_undo_step.h"
 #include "third_party/blink/renderer/core/events/input_event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/dom_selection.h b/third_party/blink/renderer/core/editing/dom_selection.h
index 59aa4f122..903e1b3d 100644
--- a/third_party/blink/renderer/core/editing/dom_selection.h
+++ b/third_party/blink/renderer/core/editing/dom_selection.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/editing_style.h b/third_party/blink/renderer/core/editing/editing_style.h
index 8bebbbf..09fe63f0 100644
--- a/third_party/blink/renderer/core/editing/editing_style.h
+++ b/third_party/blink/renderer/core/editing/editing_style.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/renderer/core/css_value_keywords.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/core/html/html_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/editing/editor.h b/third_party/blink/renderer/core/editing/editor.h
index 9c1a430..6556bfe 100644
--- a/third_party/blink/renderer/core/editing/editor.h
+++ b/third_party/blink/renderer/core/editing/editor.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/renderer/core/editing/visible_selection.h"
 #include "third_party/blink/renderer/core/events/input_event.h"
 #include "third_party/blink/renderer/core/scroll/scroll_alignment.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/finder/text_finder.h b/third_party/blink/renderer/core/editing/finder/text_finder.h
index ed06c04..31cfa037 100644
--- a/third_party/blink/renderer/core/editing/finder/text_finder.h
+++ b/third_party/blink/renderer/core/editing/finder/text_finder.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/public/platform/web_string.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/editing/frame_selection.h b/third_party/blink/renderer/core/editing/frame_selection.h
index f614f06..3d5655f8 100644
--- a/third_party/blink/renderer/core/editing/frame_selection.h
+++ b/third_party/blink/renderer/core/editing/frame_selection.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/core/editing/set_selection_options.h"
 #include "third_party/blink/renderer/core/scroll/scroll_alignment.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "ui/gfx/geometry/rect.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/granularity_strategy_test.cc b/third_party/blink/renderer/core/editing/granularity_strategy_test.cc
index ca00614a..f13e73f 100644
--- a/third_party/blink/renderer/core/editing/granularity_strategy_test.cc
+++ b/third_party/blink/renderer/core/editing/granularity_strategy_test.cc
@@ -20,7 +20,7 @@
 #include "third_party/blink/renderer/core/html/html_body_element.h"
 #include "third_party/blink/renderer/core/html/html_span_element.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/ime/input_method_controller.h b/third_party/blink/renderer/core/editing/ime/input_method_controller.h
index bc18a56..a088acde 100644
--- a/third_party/blink/renderer/core/editing/ime/input_method_controller.h
+++ b/third_party/blink/renderer/core/editing/ime/input_method_controller.h
@@ -39,7 +39,7 @@
 #include "third_party/blink/renderer/core/events/input_event.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/graphics/dom_node_id.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/markers/document_marker.h b/third_party/blink/renderer/core/editing/markers/document_marker.h
index 36119d5..9e4677c 100644
--- a/third_party/blink/renderer/core/editing/markers/document_marker.h
+++ b/third_party/blink/renderer/core/editing/markers/document_marker.h
@@ -26,7 +26,7 @@
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector_traits.h"
diff --git a/third_party/blink/renderer/core/editing/markers/document_marker_controller.h b/third_party/blink/renderer/core/editing/markers/document_marker_controller.h
index 1282108..2257496 100644
--- a/third_party/blink/renderer/core/editing/markers/document_marker_controller.h
+++ b/third_party/blink/renderer/core/editing/markers/document_marker_controller.h
@@ -41,7 +41,7 @@
 #include "third_party/blink/renderer/core/editing/markers/document_marker_group.h"
 #include "third_party/blink/renderer/core/editing/markers/suggestion_marker.h"
 #include "third_party/blink/renderer/core/editing/markers/text_match_marker.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "ui/gfx/geometry/rect.h"
diff --git a/third_party/blink/renderer/core/editing/markers/document_marker_group.h b/third_party/blink/renderer/core/editing/markers/document_marker_group.h
index 69969e6..adb3a6ee 100644
--- a/third_party/blink/renderer/core/editing/markers/document_marker_group.h
+++ b/third_party/blink/renderer/core/editing/markers/document_marker_group.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/dom/text.h"
 #include "third_party/blink/renderer/core/editing/markers/document_marker.h"
 #include "third_party/blink/renderer/core/editing/position.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/markers/document_marker_list.h b/third_party/blink/renderer/core/editing/markers/document_marker_list.h
index 6e0678f..4131ca2 100644
--- a/third_party/blink/renderer/core/editing/markers/document_marker_list.h
+++ b/third_party/blink/renderer/core/editing/markers/document_marker_list.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/markers/document_marker.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/position.h b/third_party/blink/renderer/core/editing/position.h
index 22765f8c..2d424a7 100644
--- a/third_party/blink/renderer/core/editing/position.h
+++ b/third_party/blink/renderer/core/editing/position.h
@@ -29,7 +29,7 @@
 #include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/editing_strategy.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/selection_controller.h b/third_party/blink/renderer/core/editing/selection_controller.h
index ed0802f..4988fbd 100644
--- a/third_party/blink/renderer/core/editing/selection_controller.h
+++ b/third_party/blink/renderer/core/editing/selection_controller.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/editing/text_granularity.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/page/event_with_hit_test_results.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/spellcheck/cold_mode_spell_check_requester.h b/third_party/blink/renderer/core/editing/spellcheck/cold_mode_spell_check_requester.h
index 4a92300..8859ba6 100644
--- a/third_party/blink/renderer/core/editing/spellcheck/cold_mode_spell_check_requester.h
+++ b/third_party/blink/renderer/core/editing/spellcheck/cold_mode_spell_check_requester.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/core/editing/position.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/spellcheck/spell_checker.h b/third_party/blink/renderer/core/editing/spellcheck/spell_checker.h
index 556c039..2dfefb6 100644
--- a/third_party/blink/renderer/core/editing/spellcheck/spell_checker.h
+++ b/third_party/blink/renderer/core/editing/spellcheck/spell_checker.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/core/editing/markers/document_marker.h"
 #include "third_party/blink/renderer/core/editing/spellcheck/text_checking.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/suggestion/text_suggestion_controller.h b/third_party/blink/renderer/core/editing/suggestion/text_suggestion_controller.h
index a3217f8..26c03867 100644
--- a/third_party/blink/renderer/core/editing/suggestion/text_suggestion_controller.h
+++ b/third_party/blink/renderer/core/editing/suggestion/text_suggestion_controller.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/core/editing/markers/document_marker.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 
diff --git a/third_party/blink/renderer/core/editing/visible_position.h b/third_party/blink/renderer/core/editing/visible_position.h
index e427fb35..fe3b569 100644
--- a/third_party/blink/renderer/core/editing/visible_position.h
+++ b/third_party/blink/renderer/core/editing/visible_position.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/position_with_affinity.h"
 #include "third_party/blink/renderer/core/editing/text_affinity.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/events/pop_state_event.h b/third_party/blink/renderer/core/events/pop_state_event.h
index de394604..26a547187 100644
--- a/third_party/blink/renderer/core/events/pop_state_event.h
+++ b/third_party/blink/renderer/core/events/pop_state_event.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/v8_pop_state_event_init.h"
 #include "third_party/blink/renderer/bindings/core/v8/world_safe_v8_reference.h"
 #include "third_party/blink/renderer/core/dom/events/event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/execution_context/navigator_base.h b/third_party/blink/renderer/core/execution_context/navigator_base.h
index f4bc3b1..01c6713 100644
--- a/third_party/blink/renderer/core/execution_context/navigator_base.h
+++ b/third_party/blink/renderer/core/execution_context/navigator_base.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/frame/navigator_ua.h"
 #include "third_party/blink/renderer/core/inspector/inspector_audits_issue.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.h b/third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.h
index 43e56b3..e0d21ca 100644
--- a/third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.h
+++ b/third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/renderer/core/inspector/devtools_agent.h"
 #include "third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.h"
 #include "third_party/blink/renderer/core/inspector/inspector_page_agent.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/exported/web_document_loader_impl.h b/third_party/blink/renderer/core/exported/web_document_loader_impl.h
index cbf439d3..483d1b9f 100644
--- a/third_party/blink/renderer/core/exported/web_document_loader_impl.h
+++ b/third_party/blink/renderer/core/exported/web_document_loader_impl.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/renderer/core/loader/document_loader.h"
 #include "third_party/blink/renderer/platform/exported/wrapped_resource_request.h"
 #include "third_party/blink/renderer/platform/exported/wrapped_resource_response.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/exported/web_input_method_controller_impl.h b/third_party/blink/renderer/core/exported/web_input_method_controller_impl.h
index 48a2eaa..3db6ac2 100644
--- a/third_party/blink/renderer/core/exported/web_input_method_controller_impl.h
+++ b/third_party/blink/renderer/core/exported/web_input_method_controller_impl.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/web/web_input_method_controller.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
diff --git a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
index 4f856cf5..3888658 100644
--- a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
@@ -69,7 +69,6 @@
 #include "third_party/blink/renderer/platform/animation/compositor_animation_timeline.h"
 #include "third_party/blink/renderer/platform/bindings/script_forbidden_scope.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/keyboard_codes.h"
diff --git a/third_party/blink/renderer/core/exported/web_plugin_container_impl.h b/third_party/blink/renderer/core/exported/web_plugin_container_impl.h
index 78285c47..b9cbb03 100644
--- a/third_party/blink/renderer/core/exported/web_plugin_container_impl.h
+++ b/third_party/blink/renderer/core/exported/web_plugin_container_impl.h
@@ -41,7 +41,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/frame/embedded_content_view.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc
index 4e536fe4..09c9980 100644
--- a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc
@@ -66,7 +66,7 @@
 #include "third_party/blink/renderer/core/workers/shared_worker_global_scope.h"
 #include "third_party/blink/renderer/core/workers/shared_worker_thread.h"
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h"
 #include "third_party/blink/renderer/platform/network/content_security_policy_parsers.h"
diff --git a/third_party/blink/renderer/core/fetch/body_stream_buffer.h b/third_party/blink/renderer/core/fetch/body_stream_buffer.h
index 7079fcd9..68b32c8 100644
--- a/third_party/blink/renderer/core/fetch/body_stream_buffer.h
+++ b/third_party/blink/renderer/core/fetch/body_stream_buffer.h
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/core/fetch/fetch_data_loader.h"
 #include "third_party/blink/renderer/core/streams/underlying_source_base.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/bytes_consumer.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/fetch/bytes_consumer_test_util.h b/third_party/blink/renderer/core/fetch/bytes_consumer_test_util.h
index 1ad3898..3c1a66b 100644
--- a/third_party/blink/renderer/core/fetch/bytes_consumer_test_util.h
+++ b/third_party/blink/renderer/core/fetch/bytes_consumer_test_util.h
@@ -9,7 +9,7 @@
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/renderer/core/fetch/fetch_data_loader.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/bytes_consumer.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/fetch/fetch_data_loader.h b/third_party/blink/renderer/core/fetch/fetch_data_loader.h
index 36a189d..cba9ba3 100644
--- a/third_party/blink/renderer/core/fetch/fetch_data_loader.h
+++ b/third_party/blink/renderer/core/fetch/fetch_data_loader.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h"
 #include "third_party/blink/renderer/platform/blob/blob_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/fetch/fetch_header_list.h b/third_party/blink/renderer/core/fetch/fetch_header_list.h
index 18a4818..4bfd17fd 100644
--- a/third_party/blink/renderer/core/fetch/fetch_header_list.h
+++ b/third_party/blink/renderer/core/fetch/fetch_header_list.h
@@ -9,7 +9,7 @@
 #include <utility>
 
 #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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/fetch/fetch_manager.h b/third_party/blink/renderer/core/fetch/fetch_manager.h
index a2b72866..32b7367 100644
--- a/third_party/blink/renderer/core/fetch/fetch_manager.h
+++ b/third_party/blink/renderer/core/fetch/fetch_manager.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/fetch/fetch_request_data.h b/third_party/blink/renderer/core/fetch/fetch_request_data.h
index 1f686d4..ca7289f 100644
--- a/third_party/blink/renderer/core/fetch/fetch_request_data.h
+++ b/third_party/blink/renderer/core/fetch/fetch_request_data.h
@@ -16,7 +16,7 @@
 #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
 #include "third_party/blink/public/platform/web_url_request.h"
 #include "third_party/blink/renderer/core/fetch/body_stream_buffer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_load_priority.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
diff --git a/third_party/blink/renderer/core/fetch/fetch_response_data.h b/third_party/blink/renderer/core/fetch/fetch_response_data.h
index 4736873..f28bdca 100644
--- a/third_party/blink/renderer/core/fetch/fetch_response_data.h
+++ b/third_party/blink/renderer/core/fetch/fetch_response_data.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/fetch/body_stream_buffer.h"
 #include "third_party/blink/renderer/core/fetch/fetch_request_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_response.h"
 #include "third_party/blink/renderer/platform/network/http_header_set.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/core/fetch/global_fetch.cc b/third_party/blink/renderer/core/fetch/global_fetch.cc
index 8b182cd..6782444 100644
--- a/third_party/blink/renderer/core/fetch/global_fetch.cc
+++ b/third_party/blink/renderer/core/fetch/global_fetch.cc
@@ -12,7 +12,6 @@
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
diff --git a/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.h b/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.h
index b21ab18..5afc6a158 100644
--- a/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.h
+++ b/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/streams/readable_stream.h"
 #include "third_party/blink/renderer/core/streams/readable_stream_default_reader.h"
 #include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/bytes_consumer.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer_test.cc b/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer_test.cc
index 4f92919..d94ec56 100644
--- a/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer_test.cc
+++ b/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer_test.cc
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/core/streams/test_underlying_source.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/v8_binding_macros.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/core/fetch/request.h b/third_party/blink/renderer/core/fetch/request.h
index 2d583b97..226efa5 100644
--- a/third_party/blink/renderer/core/fetch/request.h
+++ b/third_party/blink/renderer/core/fetch/request.h
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/core/fetch/fetch_request_data.h"
 #include "third_party/blink/renderer/core/fetch/headers.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/fetch/response.h b/third_party/blink/renderer/core/fetch/response.h
index bf2ff85..5334b52 100644
--- a/third_party/blink/renderer/core/fetch/response.h
+++ b/third_party/blink/renderer/core/fetch/response.h
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/core/fetch/headers.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/blob/blob_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/fileapi/blob.h b/third_party/blink/renderer/core/fileapi/blob.h
index 2b3331d..cf392ac8 100644
--- a/third_party/blink/renderer/core/fileapi/blob.h
+++ b/third_party/blink/renderer/core/fileapi/blob.h
@@ -42,7 +42,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer_view.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/blob/blob_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/fileapi/file.h b/third_party/blink/renderer/core/fileapi/file.h
index d70a95c..e23ab93 100644
--- a/third_party/blink/renderer/core/fileapi/file.h
+++ b/third_party/blink/renderer/core/fileapi/file.h
@@ -32,7 +32,7 @@
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/fileapi/blob.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/fileapi/file_list.h b/third_party/blink/renderer/core/fileapi/file_list.h
index 3892b43..365d6506 100644
--- a/third_party/blink/renderer/core/fileapi/file_list.h
+++ b/third_party/blink/renderer/core/fileapi/file_list.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/fileapi/file.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/fileapi/file_reader.h b/third_party/blink/renderer/core/fileapi/file_reader.h
index 37c079e..219b4f9f 100644
--- a/third_party/blink/renderer/core/fileapi/file_reader.h
+++ b/third_party/blink/renderer/core/fileapi/file_reader.h
@@ -41,7 +41,7 @@
 #include "third_party/blink/renderer/core/fileapi/file_reader_loader.h"
 #include "third_party/blink/renderer/core/fileapi/file_reader_loader_client.h"
 #include "third_party/blink/renderer/core/probe/async_task_context.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/fileapi/file_reader_sync.h b/third_party/blink/renderer/core/fileapi/file_reader_sync.h
index 5b313f5a..f613ab5 100644
--- a/third_party/blink/renderer/core/fileapi/file_reader_sync.h
+++ b/third_party/blink/renderer/core/fileapi/file_reader_sync.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FILEAPI_FILE_READER_SYNC_H_
 
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace base {
diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.h b/third_party/blink/renderer/core/fileapi/public_url_manager.h
index 84c67393..65fedd7 100644
--- a/third_party/blink/renderer/core/fileapi/public_url_manager.h
+++ b/third_party/blink/renderer/core/fileapi/public_url_manager.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/public/mojom/blob/blob_url_store.mojom-blink.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_remote.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/core/fragment_directive/css_selector_fragment_anchor.h b/third_party/blink/renderer/core/fragment_directive/css_selector_fragment_anchor.h
index f3da0bb..d86e33d 100644
--- a/third_party/blink/renderer/core/fragment_directive/css_selector_fragment_anchor.h
+++ b/third_party/blink/renderer/core/fragment_directive/css_selector_fragment_anchor.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/core/fragment_directive/selector_fragment_anchor.h"
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/fragment_directive/text_fragment_anchor.h b/third_party/blink/renderer/core/fragment_directive/text_fragment_anchor.h
index fb66530d..bfbd732 100644
--- a/third_party/blink/renderer/core/fragment_directive/text_fragment_anchor.h
+++ b/third_party/blink/renderer/core/fragment_directive/text_fragment_anchor.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/fragment_directive/text_fragment_finder.h"
 #include "third_party/blink/renderer/core/page/scrolling/element_fragment_anchor.h"
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/frame/ad_tracker.h b/third_party/blink/renderer/core/frame/ad_tracker.h
index 61630a0..21b9db8 100644
--- a/third_party/blink/renderer/core/frame/ad_tracker.h
+++ b/third_party/blink/renderer/core/frame/ad_tracker.h
@@ -10,7 +10,7 @@
 #include "base/feature_list.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_info.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/core/frame/bar_prop.h b/third_party/blink/renderer/core/frame/bar_prop.h
index 465120a9..75adecf 100644
--- a/third_party/blink/renderer/core/frame/bar_prop.h
+++ b/third_party/blink/renderer/core/frame/bar_prop.h
@@ -31,7 +31,7 @@
 
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.h b/third_party/blink/renderer/core/frame/csp/content_security_policy.h
index 2f81a6b..32ba147 100644
--- a/third_party/blink/renderer/core/frame/csp/content_security_policy.h
+++ b/third_party/blink/renderer/core/frame/csp/content_security_policy.h
@@ -45,7 +45,7 @@
 #include "third_party/blink/renderer/core/frame/web_feature.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
diff --git a/third_party/blink/renderer/core/frame/device_single_window_event_controller.h b/third_party/blink/renderer/core/frame/device_single_window_event_controller.h
index 4712b9bd..8d7ac75 100644
--- a/third_party/blink/renderer/core/frame/device_single_window_event_controller.h
+++ b/third_party/blink/renderer/core/frame/device_single_window_event_controller.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
 #include "third_party/blink/renderer/core/frame/platform_event_controller.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/frame/dom_timer.h b/third_party/blink/renderer/core/frame/dom_timer.h
index b84f40d..5864b27 100644
--- a/third_party/blink/renderer/core/frame/dom_timer.h
+++ b/third_party/blink/renderer/core/frame/dom_timer.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/probe/async_task_context.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/timer.h"
 
diff --git a/third_party/blink/renderer/core/frame/dom_timer_coordinator.h b/third_party/blink/renderer/core/frame/dom_timer_coordinator.h
index 3ce83fde..8a6bc6d 100644
--- a/third_party/blink/renderer/core/frame/dom_timer_coordinator.h
+++ b/third_party/blink/renderer/core/frame/dom_timer_coordinator.h
@@ -7,7 +7,7 @@
 
 #include "base/task/single_thread_task_runner.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/frame/dom_visual_viewport.h b/third_party/blink/renderer/core/frame/dom_visual_viewport.h
index ba7aa39..3f93fbf 100644
--- a/third_party/blink/renderer/core/frame/dom_visual_viewport.h
+++ b/third_party/blink/renderer/core/frame/dom_visual_viewport.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/frame/dom_window.h b/third_party/blink/renderer/core/frame/dom_window.h
index 2f9bb79..92111e0 100644
--- a/third_party/blink/renderer/core/frame/dom_window.h
+++ b/third_party/blink/renderer/core/frame/dom_window.h
@@ -14,7 +14,6 @@
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/frame/frame.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/frame/embedded_content_view.h b/third_party/blink/renderer/core/frame/embedded_content_view.h
index 847d2ee..7293dca 100644
--- a/third_party/blink/renderer/core/frame/embedded_content_view.h
+++ b/third_party/blink/renderer/core/frame/embedded_content_view.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/paint/paint_flags.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/vector2d.h"
 
diff --git a/third_party/blink/renderer/core/frame/frame.h b/third_party/blink/renderer/core/frame/frame.h
index a74dae9b..0c1b8d6 100644
--- a/third_party/blink/renderer/core/frame/frame.h
+++ b/third_party/blink/renderer/core/frame/frame.h
@@ -52,7 +52,7 @@
 #include "third_party/blink/renderer/core/loader/frame_loader_types.h"
 #include "third_party/blink/renderer/core/page/frame_tree.h"
 #include "third_party/blink/renderer/platform/graphics/touch_action.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/frame/frame_client.h b/third_party/blink/renderer/core/frame/frame_client.h
index 83c20ce..cf06dd2 100644
--- a/third_party/blink/renderer/core/frame/frame_client.h
+++ b/third_party/blink/renderer/core/frame/frame_client.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink-forward.h"
 #include "third_party/blink/public/platform/blame_context.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/garbage_collected.h"
 
 namespace gfx {
 class Rect;
diff --git a/third_party/blink/renderer/core/frame/frame_owner.h b/third_party/blink/renderer/core/frame/frame_owner.h
index 956f1382..dd42410 100644
--- a/third_party/blink/renderer/core/frame/frame_owner.h
+++ b/third_party/blink/renderer/core/frame/frame_owner.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/public/mojom/frame/color_scheme.mojom-blink.h"
 #include "third_party/blink/public/mojom/scroll/scrollbar_mode.mojom-blink.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/frame/history.h b/third_party/blink/renderer/core/frame/history.h
index df17e27..094519eb 100644
--- a/third_party/blink/renderer/core/frame/history.h
+++ b/third_party/blink/renderer/core/frame/history.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/loader/frame_loader_types.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.h b/third_party/blink/renderer/core/frame/local_dom_window.h
index 5276a0b..6720eaf 100644
--- a/third_party/blink/renderer/core/frame/local_dom_window.h
+++ b/third_party/blink/renderer/core/frame/local_dom_window.h
@@ -47,7 +47,7 @@
 #include "third_party/blink/renderer/core/geometry/dom_rect.h"
 #include "third_party/blink/renderer/core/loader/frame_loader.h"
 #include "third_party/blink/renderer/core/scroll/scrollable_area.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/storage/blink_storage_key.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
diff --git a/third_party/blink/renderer/core/frame/local_dom_window_test.cc b/third_party/blink/renderer/core/frame/local_dom_window_test.cc
index e883110..f5799c6 100644
--- a/third_party/blink/renderer/core/frame/local_dom_window_test.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window_test.cc
@@ -43,7 +43,6 @@
 #include "third_party/blink/renderer/core/inspector/console_message_storage.h"
 #include "third_party/blink/renderer/core/testing/page_test_base.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 #include "third_party/blink/renderer/platform/scheduler/public/event_loop.h"
 #include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h"
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
index eb52802..588ef78 100644
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -70,7 +70,7 @@
 #include "third_party/blink/renderer/core/loader/back_forward_cache_loader_helper_impl.h"
 #include "third_party/blink/renderer/core/loader/frame_loader.h"
 #include "third_party/blink/renderer/platform/graphics/touch_action.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/client_hints_preferences.h"
 #include "third_party/blink/renderer/platform/loader/fetch/loader_freeze_mode.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_remote.h"
diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.h b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
index d40ed89..7bcdcfb8 100644
--- a/third_party/blink/renderer/core/frame/local_frame_client_impl.h
+++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
@@ -44,7 +44,7 @@
 #include "third_party/blink/public/mojom/devtools/devtools_agent.mojom-blink-forward.h"
 #include "third_party/blink/renderer/core/frame/local_frame_client.h"
 #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h
index ece7b148..fce9d73f 100644
--- a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h
+++ b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
 #include "third_party/blink/public/mojom/media/fullscreen_video_element.mojom-blink.h"
 #include "third_party/blink/public/mojom/reporting/reporting.mojom-blink.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_remote.h"
diff --git a/third_party/blink/renderer/core/frame/navigator.h b/third_party/blink/renderer/core/frame/navigator.h
index 5eb1673..171549d5 100644
--- a/third_party/blink/renderer/core/frame/navigator.h
+++ b/third_party/blink/renderer/core/frame/navigator.h
@@ -23,7 +23,7 @@
 #include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/execution_context/navigator_base.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_party/blink/renderer/core/frame/navigator_ua_data.cc
index 5de39aa..4d63553 100644
--- a/third_party/blink/renderer/core/frame/navigator_ua_data.cc
+++ b/third_party/blink/renderer/core/frame/navigator_ua_data.cc
@@ -139,14 +139,22 @@
       IdentifiabilityStudySettings::Get()->ShouldSample(
           IdentifiableSurface::Type::kNavigatorUAData_GetHighEntropyValues);
   UADataValues* values = MakeGarbageCollected<UADataValues>();
+  // According to
+  // https://wicg.github.io/ua-client-hints/#getHighEntropyValues, brands,
+  // mobile and platform should be included regardless of whether they were
+  // asked for.
+
+  // TODO: It'd be faster to compare hint when turning |hints| into an
+  // AtomicString vector and turning the const string literals |hint| into
+  // AtomicStrings as well.
   for (const String& hint : hints) {
     values->setBrands(brand_set_);
     values->setMobile(is_mobile_);
-    if (hint == "platform") {
-      values->setPlatform(platform_);
-      MaybeRecordMetric(record_identifiability, hint, platform_,
-                        execution_context);
-    } else if (hint == "platformVersion") {
+    values->setPlatform(platform_);
+    MaybeRecordMetric(record_identifiability, hint, platform_,
+                      execution_context);
+
+    if (hint == "platformVersion") {
       values->setPlatformVersion(platform_version_);
       MaybeRecordMetric(record_identifiability, hint, platform_version_,
                         execution_context);
diff --git a/third_party/blink/renderer/core/frame/navigator_user_activation.h b/third_party/blink/renderer/core/frame/navigator_user_activation.h
index c6dbcf4..0aea412b 100644
--- a/third_party/blink/renderer/core/frame/navigator_user_activation.h
+++ b/third_party/blink/renderer/core/frame/navigator_user_activation.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_NAVIGATOR_USER_ACTIVATION_H_
 
 #include "third_party/blink/renderer/core/frame/navigator.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/frame/opened_frame_tracker.h b/third_party/blink/renderer/core/frame/opened_frame_tracker.h
index b407af3f..ee86ffac 100644
--- a/third_party/blink/renderer/core/frame/opened_frame_tracker.h
+++ b/third_party/blink/renderer/core/frame/opened_frame_tracker.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_OPENED_FRAME_TRACKER_H_
 
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/frame/pausable_script_executor.h b/third_party/blink/renderer/core/frame/pausable_script_executor.h
index 66552ae1..0aaa752a 100644
--- a/third_party/blink/renderer/core/frame/pausable_script_executor.h
+++ b/third_party/blink/renderer/core/frame/pausable_script_executor.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/self_keep_alive.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/frame/performance_monitor.h b/third_party/blink/renderer/core/frame/performance_monitor.h
index 3763e1c..a34eb18 100644
--- a/third_party/blink/renderer/core/frame/performance_monitor.h
+++ b/third_party/blink/renderer/core/frame/performance_monitor.h
@@ -8,7 +8,7 @@
 #include "base/task/sequence_manager/task_time_observer.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
diff --git a/third_party/blink/renderer/core/frame/platform_event_controller.h b/third_party/blink/renderer/core/frame/platform_event_controller.h
index d72534c..e8d3affb 100644
--- a/third_party/blink/renderer/core/frame/platform_event_controller.h
+++ b/third_party/blink/renderer/core/frame/platform_event_controller.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/public/platform/task_type.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/page/page_visibility_observer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
 #include "third_party/blink/renderer/platform/timer.h"
 
diff --git a/third_party/blink/renderer/core/frame/resize_viewport_anchor.h b/third_party/blink/renderer/core/frame/resize_viewport_anchor.h
index 6d2da3e0..63941768 100644
--- a/third_party/blink/renderer/core/frame/resize_viewport_anchor.h
+++ b/third_party/blink/renderer/core/frame/resize_viewport_anchor.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/frame/screen.h b/third_party/blink/renderer/core/frame/screen.h
index cae71b1..6a5a64b 100644
--- a/third_party/blink/renderer/core/frame/screen.h
+++ b/third_party/blink/renderer/core/frame/screen.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
diff --git a/third_party/blink/renderer/core/frame/use_counter_impl.h b/third_party/blink/renderer/core/frame/use_counter_impl.h
index 029b26f5..fb633df 100644
--- a/third_party/blink/renderer/core/frame/use_counter_impl.h
+++ b/third_party/blink/renderer/core/frame/use_counter_impl.h
@@ -35,7 +35,6 @@
 #include "third_party/blink/renderer/core/frame/web_feature.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/frame/virtual_keyboard_overlay_changed_observer.h b/third_party/blink/renderer/core/frame/virtual_keyboard_overlay_changed_observer.h
index a4b2575..bbdbb1b 100644
--- a/third_party/blink/renderer/core/frame/virtual_keyboard_overlay_changed_observer.h
+++ b/third_party/blink/renderer/core/frame/virtual_keyboard_overlay_changed_observer.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_VIRTUAL_KEYBOARD_OVERLAY_CHANGED_OBSERVER_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/garbage_collected.h"
 
 namespace gfx {
 class Rect;
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
index 6945280..4b3d2914 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
@@ -248,7 +248,6 @@
 #include "third_party/blink/renderer/platform/graphics/paint/scoped_paint_chunk_properties.h"
 #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
diff --git a/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc b/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc
index 3bd7248..f5e0bcf2 100644
--- a/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc
@@ -37,7 +37,6 @@
 #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "ui/gfx/geometry/quad_f.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/core/frame/window_controls_overlay.cc b/third_party/blink/renderer/core/frame/window_controls_overlay.cc
index 980fc17..c7e7ca4 100644
--- a/third_party/blink/renderer/core/frame/window_controls_overlay.cc
+++ b/third_party/blink/renderer/core/frame/window_controls_overlay.cc
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/frame/navigator.h"
 #include "third_party/blink/renderer/core/frame/window_controls_overlay_geometry_change_event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/frame/window_controls_overlay.h b/third_party/blink/renderer/core/frame/window_controls_overlay.h
index 24d4eaa6..116d75e 100644
--- a/third_party/blink/renderer/core/frame/window_controls_overlay.h
+++ b/third_party/blink/renderer/core/frame/window_controls_overlay.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/geometry/dom_rect.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/frame/window_controls_overlay_geometry_change_event.h b/third_party/blink/renderer/core/frame/window_controls_overlay_geometry_change_event.h
index 15c477e5..1f4a9c7 100644
--- a/third_party/blink/renderer/core/frame/window_controls_overlay_geometry_change_event.h
+++ b/third_party/blink/renderer/core/frame/window_controls_overlay_geometry_change_event.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_WINDOW_CONTROLS_OVERLAY_GEOMETRY_CHANGE_EVENT_H_
 
 #include "third_party/blink/renderer/core/dom/events/event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/geometry/dom_matrix_read_only.h b/third_party/blink/renderer/core/geometry/dom_matrix_read_only.h
index ceb753c..9b5d06e 100644
--- a/third_party/blink/renderer/core/geometry/dom_matrix_read_only.h
+++ b/third_party/blink/renderer/core/geometry/dom_matrix_read_only.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/transforms/affine_transform.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
 
diff --git a/third_party/blink/renderer/core/geometry/dom_rect_list.h b/third_party/blink/renderer/core/geometry/dom_rect_list.h
index c5424e7..e262d46c 100644
--- a/third_party/blink/renderer/core/geometry/dom_rect_list.h
+++ b/third_party/blink/renderer/core/geometry/dom_rect_list.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/geometry/dom_rect.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "ui/gfx/geometry/quad_f.h"
 #include "ui/gfx/geometry/rect_f.h"
 
diff --git a/third_party/blink/renderer/core/html/anchor_element_metrics_sender.h b/third_party/blink/renderer/core/html/anchor_element_metrics_sender.h
index f90711e..0e66735 100644
--- a/third_party/blink/renderer/core/html/anchor_element_metrics_sender.h
+++ b/third_party/blink/renderer/core/html/anchor_element_metrics_sender.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/public/mojom/loader/navigation_predictor.mojom-blink.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/frame/local_frame_view.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.h b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.h
index 3ca762a..b54e89c 100644
--- a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.h
+++ b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.h
@@ -18,7 +18,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/image-encoders/image_encoder.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_draw_listener.h b/third_party/blink/renderer/core/html/canvas/canvas_draw_listener.h
index d58034a1..bf26d94c 100644
--- a/third_party/blink/renderer/core/html/canvas/canvas_draw_listener.h
+++ b/third_party/blink/renderer/core/html/canvas/canvas_draw_listener.h
@@ -8,7 +8,7 @@
 #include "base/memory/ref_counted.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace media {
 class VideoFrame;
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_font_cache.h b/third_party/blink/renderer/core/html/canvas/canvas_font_cache.h
index f86253e..d4376956 100644
--- a/third_party/blink/renderer/core/html/canvas/canvas_font_cache.h
+++ b/third_party/blink/renderer/core/html/canvas/canvas_font_cache.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_property_value_set.h"
 #include "third_party/blink/renderer/platform/fonts/font.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
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 20b27dc..04db645 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
@@ -51,7 +51,7 @@
 #include "third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder.h"
 #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
 #include "third_party/blink/renderer/platform/graphics/surface_layer_bridge.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "ui/gfx/geometry/rect_f.h"
 #include "ui/gfx/geometry/size.h"
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element_test.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element_test.cc
index eb36f7d..7a63d25 100644
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element_test.cc
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element_test.cc
@@ -43,17 +43,16 @@
   auto* painting_layer = GetLayoutObjectByElementId("canvas")->PaintingLayer();
   EXPECT_FALSE(painting_layer->SelfNeedsRepaint());
   canvas->CreateLayer();
-  EXPECT_TRUE(canvas->GetLayoutObject()->NeedsPaintPropertyUpdate());
+  EXPECT_FALSE(canvas->GetLayoutObject()->NeedsPaintPropertyUpdate());
   EXPECT_TRUE(painting_layer->SelfNeedsRepaint());
   UpdateAllLifecyclePhasesForTest();
   ASSERT_EQ(
       painting_layer,
       To<LayoutBoxModelObject>(canvas->GetLayoutObject())->PaintingLayer());
-  EXPECT_TRUE(canvas->GetLayoutObject()
-                  ->FirstFragment()
-                  .PaintProperties()
-                  ->PaintOffsetTranslation()
-                  ->HasDirectCompositingReasons());
+  EXPECT_FALSE(canvas->GetLayoutObject()
+                   ->FirstFragment()
+                   .PaintProperties()
+                   ->PaintOffsetTranslation());
 }
 
 TEST_P(HTMLCanvasElementTest, CanvasInvalidation) {
diff --git a/third_party/blink/renderer/core/html/canvas/image_data.h b/third_party/blink/renderer/core/html/canvas/image_data.h
index 19bc4f5e..541c2ac 100644
--- a/third_party/blink/renderer/core/html/canvas/image_data.h
+++ b/third_party/blink/renderer/core/html/canvas/image_data.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/graphics/canvas_color_params.h"
 #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/skia/include/core/SkColorSpace.h"
 #include "ui/gfx/geometry/size.h"
diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_party/blink/renderer/core/html/canvas/text_metrics.h
index 7462506..16ab5a7 100644
--- a/third_party/blink/renderer/core/html/canvas/text_metrics.h
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/fonts/font.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/custom/custom_element_definition.h b/third_party/blink/renderer/core/html/custom/custom_element_definition.h
index ddb5303..b1ef2100 100644
--- a/third_party/blink/renderer/core/html/custom/custom_element_definition.h
+++ b/third_party/blink/renderer/core/html/custom/custom_element_definition.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/dom/create_element_flags.h"
 #include "third_party/blink/renderer/core/html/custom/custom_element_descriptor.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
diff --git a/third_party/blink/renderer/core/html/custom/custom_element_reaction_queue.h b/third_party/blink/renderer/core/html/custom/custom_element_reaction_queue.h
index 0c5cde5f..1860880 100644
--- a/third_party/blink/renderer/core/html/custom/custom_element_reaction_queue.h
+++ b/third_party/blink/renderer/core/html/custom/custom_element_reaction_queue.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/custom/custom_element_reaction_stack.h b/third_party/blink/renderer/core/html/custom/custom_element_reaction_stack.h
index 9eccdfb..1550099 100644
--- a/third_party/blink/renderer/core/html/custom/custom_element_reaction_stack.h
+++ b/third_party/blink/renderer/core/html/custom/custom_element_reaction_stack.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/custom/custom_element_reaction_test_helpers.h b/third_party/blink/renderer/core/html/custom/custom_element_reaction_test_helpers.h
index 01c5c61..bd37f184f 100644
--- a/third_party/blink/renderer/core/html/custom/custom_element_reaction_test_helpers.h
+++ b/third_party/blink/renderer/core/html/custom/custom_element_reaction_test_helpers.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/html/custom/custom_element_reaction_queue.h"
 #include "third_party/blink/renderer/core/html/custom/custom_element_reaction_stack.h"
 #include "third_party/blink/renderer/core/html/custom/custom_element_test_helpers.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/custom/custom_element_registry.h b/third_party/blink/renderer/core/html/custom/custom_element_registry.h
index f051bfc..d854491 100644
--- a/third_party/blink/renderer/core/html/custom/custom_element_registry.h
+++ b/third_party/blink/renderer/core/html/custom/custom_element_registry.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/html/custom/custom_element_definition.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
 
diff --git a/third_party/blink/renderer/core/html/custom/custom_element_registry_test.cc b/third_party/blink/renderer/core/html/custom/custom_element_registry_test.cc
index a99095e..b0e249f9 100644
--- a/third_party/blink/renderer/core/html/custom/custom_element_registry_test.cc
+++ b/third_party/blink/renderer/core/html/custom/custom_element_registry_test.cc
@@ -27,7 +27,6 @@
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_forbidden_scope.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/fenced_frame/document_fenced_frames.h b/third_party/blink/renderer/core/html/fenced_frame/document_fenced_frames.h
index 0a6a664b..146e1451 100644
--- a/third_party/blink/renderer/core/html/fenced_frame/document_fenced_frames.h
+++ b/third_party/blink/renderer/core/html/fenced_frame/document_fenced_frames.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FENCED_FRAME_DOCUMENT_FENCED_FRAMES_H_
 
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/forms/chooser_only_temporal_input_type_view.h b/third_party/blink/renderer/core/html/forms/chooser_only_temporal_input_type_view.h
index c74111f..6143dd7 100644
--- a/third_party/blink/renderer/core/html/forms/chooser_only_temporal_input_type_view.h
+++ b/third_party/blink/renderer/core/html/forms/chooser_only_temporal_input_type_view.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/core/html/forms/date_time_chooser.h"
 #include "third_party/blink/renderer/core/html/forms/date_time_chooser_client.h"
 #include "third_party/blink/renderer/core/html/forms/keyboard_clickable_input_type_view.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/forms/color_chooser.h b/third_party/blink/renderer/core/html/forms/color_chooser.h
index 07a22f6..d8e1fac 100644
--- a/third_party/blink/renderer/core/html/forms/color_chooser.h
+++ b/third_party/blink/renderer/core/html/forms/color_chooser.h
@@ -31,7 +31,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_COLOR_CHOOSER_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/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/forms/color_chooser_client.h b/third_party/blink/renderer/core/html/forms/color_chooser_client.h
index ab0c288..f7bdb28 100644
--- a/third_party/blink/renderer/core/html/forms/color_chooser_client.h
+++ b/third_party/blink/renderer/core/html/forms/color_chooser_client.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/public/mojom/choosers/color_chooser.mojom-blink-forward.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "ui/gfx/geometry/rect.h"
 
diff --git a/third_party/blink/renderer/core/html/forms/color_chooser_ui_controller.h b/third_party/blink/renderer/core/html/forms/color_chooser_ui_controller.h
index 0dc76847..8616128f 100644
--- a/third_party/blink/renderer/core/html/forms/color_chooser_ui_controller.h
+++ b/third_party/blink/renderer/core/html/forms/color_chooser_ui_controller.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/public/mojom/choosers/color_chooser.mojom-blink.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/html/forms/color_chooser.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/text/platform_locale.h"
diff --git a/third_party/blink/renderer/core/html/forms/date_time_chooser.h b/third_party/blink/renderer/core/html/forms/date_time_chooser.h
index 9269671..5cb49a9 100644
--- a/third_party/blink/renderer/core/html/forms/date_time_chooser.h
+++ b/third_party/blink/renderer/core/html/forms/date_time_chooser.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/public/mojom/choosers/date_time_chooser.mojom-blink-forward.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "ui/gfx/geometry/rect.h"
diff --git a/third_party/blink/renderer/core/html/forms/date_time_chooser_client.h b/third_party/blink/renderer/core/html/forms/date_time_chooser_client.h
index d69e391..066fa4e 100644
--- a/third_party/blink/renderer/core/html/forms/date_time_chooser_client.h
+++ b/third_party/blink/renderer/core/html/forms/date_time_chooser_client.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_DATE_TIME_CHOOSER_CLIENT_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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/forms/file_input_type.h b/third_party/blink/renderer/core/html/forms/file_input_type.h
index d29c9d8..50aa0fc 100644
--- a/third_party/blink/renderer/core/html/forms/file_input_type.h
+++ b/third_party/blink/renderer/core/html/forms/file_input_type.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/renderer/core/html/forms/input_type.h"
 #include "third_party/blink/renderer/core/html/forms/keyboard_clickable_input_type_view.h"
 #include "third_party/blink/renderer/core/page/popup_opening_observer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/forms/form_controller.h b/third_party/blink/renderer/core/html/forms/form_controller.h
index bdbcd4b..a0a4e98a 100644
--- a/third_party/blink/renderer/core/html/forms/form_controller.h
+++ b/third_party/blink/renderer/core/html/forms/form_controller.h
@@ -26,7 +26,7 @@
 #include <memory>
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
diff --git a/third_party/blink/renderer/core/html/forms/form_data.h b/third_party/blink/renderer/core/html/forms/form_data.h
index 479be39f..494fa4e5 100644
--- a/third_party/blink/renderer/core/html/forms/form_data.h
+++ b/third_party/blink/renderer/core/html/forms/form_data.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/iterable.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_typedefs.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/network/encoded_form_data.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_encoding.h"
diff --git a/third_party/blink/renderer/core/html/forms/listed_element.h b/third_party/blink/renderer/core/html/forms/listed_element.h
index ebe71bc..a89bd8b 100644
--- a/third_party/blink/renderer/core/html/forms/listed_element.h
+++ b/third_party/blink/renderer/core/html/forms/listed_element.h
@@ -27,7 +27,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/html/forms/popup_menu.h b/third_party/blink/renderer/core/html/forms/popup_menu.h
index 14a88bb2..9efbf9f 100644
--- a/third_party/blink/renderer/core/html/forms/popup_menu.h
+++ b/third_party/blink/renderer/core/html/forms/popup_menu.h
@@ -21,7 +21,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_POPUP_MENU_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_POPUP_MENU_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/forms/radio_button_group_scope.h b/third_party/blink/renderer/core/html/forms/radio_button_group_scope.h
index 43550f7..1326162 100644
--- a/third_party/blink/renderer/core/html/forms/radio_button_group_scope.h
+++ b/third_party/blink/renderer/core/html/forms/radio_button_group_scope.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_RADIO_BUTTON_GROUP_SCOPE_H_
 
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 
diff --git a/third_party/blink/renderer/core/html/forms/select_type.h b/third_party/blink/renderer/core/html/forms/select_type.h
index cbe4ca5..4158707 100644
--- a/third_party/blink/renderer/core/html/forms/select_type.h
+++ b/third_party/blink/renderer/core/html/forms/select_type.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/html/forms/html_select_element.h"
 #include "third_party/blink/renderer/core/html/forms/popup_menu.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/forms/text_control_element.cc b/third_party/blink/renderer/core/html/forms/text_control_element.cc
index aa69ac4..43024a2 100644
--- a/third_party/blink/renderer/core/html/forms/text_control_element.cc
+++ b/third_party/blink/renderer/core/html/forms/text_control_element.cc
@@ -63,7 +63,6 @@
 #include "third_party/blink/renderer/platform/bindings/exception_messages.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 
diff --git a/third_party/blink/renderer/core/html/html_frame_owner_element.h b/third_party/blink/renderer/core/html/html_frame_owner_element.h
index 1bce689d..add86a5 100644
--- a/third_party/blink/renderer/core/html/html_frame_owner_element.h
+++ b/third_party/blink/renderer/core/html/html_frame_owner_element.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/html/html_element.h"
 #include "third_party/blink/renderer/core/permissions_policy/permissions_policy_parser.h"
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/security_policy.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/hash_counted_set.h"
diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.h b/third_party/blink/renderer/core/html/media/autoplay_policy.h
index 762edc82..ca5c9963 100644
--- a/third_party/blink/renderer/core/html/media/autoplay_policy.h
+++ b/third_party/blink/renderer/core/html/media/autoplay_policy.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/exception_code.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/media/autoplay_uma_helper.h b/third_party/blink/renderer/core/html/media/autoplay_uma_helper.h
index 9a3fd6f..39ec88e 100644
--- a/third_party/blink/renderer/core/html/media/autoplay_uma_helper.h
+++ b/third_party/blink/renderer/core/html/media/autoplay_uma_helper.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/dom/events/native_event_listener.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/media/media_source_tracer.h b/third_party/blink/renderer/core/html/media/media_source_tracer.h
index f03e9b3..0d6fd85 100644
--- a/third_party/blink/renderer/core/html/media/media_source_tracer.h
+++ b/third_party/blink/renderer/core/html/media/media_source_tracer.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_MEDIA_MEDIA_SOURCE_TRACER_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/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/parser/html_construction_site.h b/third_party/blink/renderer/core/html/parser/html_construction_site.h
index 9ac353a..a0d12a88 100644
--- a/third_party/blink/renderer/core/html/parser/html_construction_site.h
+++ b/third_party/blink/renderer/core/html/parser/html_construction_site.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/dom/parser_content_policy.h"
 #include "third_party/blink/renderer/core/html/parser/html_element_stack.h"
 #include "third_party/blink/renderer/core/html/parser/html_formatting_element_list.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser.cc b/third_party/blink/renderer/core/html/parser/html_document_parser.cc
index 6414108..080728b 100644
--- a/third_party/blink/renderer/core/html/parser/html_document_parser.cc
+++ b/third_party/blink/renderer/core/html/parser/html_document_parser.cc
@@ -60,7 +60,6 @@
 #include "third_party/blink/renderer/platform/bindings/runtime_call_stats.h"
 #include "third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
diff --git a/third_party/blink/renderer/core/html/parser/html_parser_reentry_permit.h b/third_party/blink/renderer/core/html/parser/html_parser_reentry_permit.h
index 41fc003..c677c78 100644
--- a/third_party/blink/renderer/core/html/parser/html_parser_reentry_permit.h
+++ b/third_party/blink/renderer/core/html/parser/html_parser_reentry_permit.h
@@ -6,7 +6,6 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_HTML_PARSER_REENTRY_PERMIT_H_
 
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/parser/html_tree_builder.h b/third_party/blink/renderer/core/html/parser/html_tree_builder.h
index 535be83..3659c12 100644
--- a/third_party/blink/renderer/core/html/parser/html_tree_builder.h
+++ b/third_party/blink/renderer/core/html/parser/html_tree_builder.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/html/parser/html_construction_site.h"
 #include "third_party/blink/renderer/core/html/parser/html_element_stack.h"
 #include "third_party/blink/renderer/core/html/parser/html_parser_options.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/html/portal/document_portals.h b/third_party/blink/renderer/core/html/portal/document_portals.h
index a662a99..e966162 100644
--- a/third_party/blink/renderer/core/html/portal/document_portals.h
+++ b/third_party/blink/renderer/core/html/portal/document_portals.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PORTAL_DOCUMENT_PORTALS_H_
 
 #include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/portal/html_portal_element.cc b/third_party/blink/renderer/core/html/portal/html_portal_element.cc
index 804e129..281f19a 100644
--- a/third_party/blink/renderer/core/html/portal/html_portal_element.cc
+++ b/third_party/blink/renderer/core/html/portal/html_portal_element.cc
@@ -41,7 +41,6 @@
 #include "third_party/blink/renderer/core/probe/core_probes.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 #include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h"
diff --git a/third_party/blink/renderer/core/html/track/cue_timeline.h b/third_party/blink/renderer/core/html/track/cue_timeline.h
index 8048945..296de3b 100644
--- a/third_party/blink/renderer/core/html/track/cue_timeline.h
+++ b/third_party/blink/renderer/core/html/track/cue_timeline.h
@@ -9,7 +9,7 @@
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/core/html/track/text_track_cue.h"
 #include "third_party/blink/renderer/core/html/track/vtt/vtt_cue.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/pod_interval_tree.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/html/track/html_track_element.h b/third_party/blink/renderer/core/html/track/html_track_element.h
index 9c207bb..54251ddd 100644
--- a/third_party/blink/renderer/core/html/track/html_track_element.h
+++ b/third_party/blink/renderer/core/html/track/html_track_element.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/html/html_element.h"
 #include "third_party/blink/renderer/core/html/track/text_track.h"
 #include "third_party/blink/renderer/core/loader/text_track_loader.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/track/loadable_text_track.h b/third_party/blink/renderer/core/html/track/loadable_text_track.h
index 23ac873..f02eb91 100644
--- a/third_party/blink/renderer/core/html/track/loadable_text_track.h
+++ b/third_party/blink/renderer/core/html/track/loadable_text_track.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRACK_LOADABLE_TEXT_TRACK_H_
 
 #include "third_party/blink/renderer/core/html/track/text_track.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/track/text_track.h b/third_party/blink/renderer/core/html/track/text_track.h
index c0690a17..8bfadbf 100644
--- a/third_party/blink/renderer/core/html/track/text_track.h
+++ b/third_party/blink/renderer/core/html/track/text_track.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/css/css_style_sheet.h"
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/html/track/track_base.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/html/track/text_track_cue.h b/third_party/blink/renderer/core/html/track/text_track_cue.h
index 00b37d5b..ace56317 100644
--- a/third_party/blink/renderer/core/html/track/text_track_cue.h
+++ b/third_party/blink/renderer/core/html/track/text_track_cue.h
@@ -34,7 +34,7 @@
 
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/html/html_div_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/track/text_track_list.h b/third_party/blink/renderer/core/html/track/text_track_list.h
index 0d04e60..6de8cc88 100644
--- a/third_party/blink/renderer/core/html/track/text_track_list.h
+++ b/third_party/blink/renderer/core/html/track/text_track_list.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_listener.h"
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/html/media/html_media_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/html/track/track_base.h b/third_party/blink/renderer/core/html/track/track_base.h
index 70e673e..e91a726 100644
--- a/third_party/blink/renderer/core/html/track/track_base.h
+++ b/third_party/blink/renderer/core/html/track/track_base.h
@@ -28,7 +28,7 @@
 
 #include "third_party/blink/public/platform/web_media_player.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
diff --git a/third_party/blink/renderer/core/html/track/vtt/vtt_cue.h b/third_party/blink/renderer/core/html/track/vtt/vtt_cue.h
index fb1aa9e..81f2e32 100644
--- a/third_party/blink/renderer/core/html/track/vtt/vtt_cue.h
+++ b/third_party/blink/renderer/core/html/track/vtt/vtt_cue.h
@@ -31,7 +31,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRACK_VTT_VTT_CUE_H_
 
 #include "third_party/blink/renderer/core/html/track/text_track_cue.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "ui/gfx/geometry/point_f.h"
 
diff --git a/third_party/blink/renderer/core/html/track/vtt/vtt_parser.h b/third_party/blink/renderer/core/html/track/vtt/vtt_parser.h
index 489e76e..f7cdabd4 100644
--- a/third_party/blink/renderer/core/html/track/vtt/vtt_parser.h
+++ b/third_party/blink/renderer/core/html/track/vtt/vtt_parser.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/renderer/core/html/track/vtt/vtt_cue.h"
 #include "third_party/blink/renderer/core/html/track/vtt/vtt_tokenizer.h"
 #include "third_party/blink/renderer/core/html_names.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/track/vtt/vtt_region.h b/third_party/blink/renderer/core/html/track/vtt/vtt_region.h
index 04a0ea0..0393f7b 100644
--- a/third_party/blink/renderer/core/html/track/vtt/vtt_region.h
+++ b/third_party/blink/renderer/core/html/track/vtt/vtt_region.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/geometry/double_point.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc b/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc
index 80ca735..7e7320a 100644
--- a/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc
+++ b/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc
@@ -52,7 +52,6 @@
 #include "third_party/blink/renderer/platform/graphics/test/gpu_test_utils.h"
 #include "third_party/blink/renderer/platform/graphics/unaccelerated_static_bitmap_image.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "third_party/blink/renderer/platform/image-decoders/image_decoder.h"
 #include "third_party/blink/renderer/platform/loader/fetch/memory_cache.h"
diff --git a/third_party/blink/renderer/core/input/event_handler.cc b/third_party/blink/renderer/core/input/event_handler.cc
index 0a26353..f7ef33e5 100644
--- a/third_party/blink/renderer/core/input/event_handler.cc
+++ b/third_party/blink/renderer/core/input/event_handler.cc
@@ -103,7 +103,7 @@
 #include "third_party/blink/renderer/platform/cursors.h"
 #include "third_party/blink/renderer/platform/graphics/image.h"
 #include "third_party/blink/renderer/platform/graphics/image_orientation.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/instrumentation/histogram.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
diff --git a/third_party/blink/renderer/core/input/event_handler.h b/third_party/blink/renderer/core/input/event_handler.h
index c5177e3..b6171f9f 100644
--- a/third_party/blink/renderer/core/input/event_handler.h
+++ b/third_party/blink/renderer/core/input/event_handler.h
@@ -47,7 +47,7 @@
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/geometry/layout_point.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/core/input/mouse_wheel_event_manager.h b/third_party/blink/renderer/core/input/mouse_wheel_event_manager.h
index c1cdab7..2c96d2e 100644
--- a/third_party/blink/renderer/core/input/mouse_wheel_event_manager.h
+++ b/third_party/blink/renderer/core/input/mouse_wheel_event_manager.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/platform/web_input_event_result.h"
 #include "third_party/blink/renderer/core/input/scroll_manager.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/input/scroll_manager.h b/third_party/blink/renderer/core/input/scroll_manager.h
index 5e2ccdab..968e6c2 100644
--- a/third_party/blink/renderer/core/input/scroll_manager.h
+++ b/third_party/blink/renderer/core/input/scroll_manager.h
@@ -17,7 +17,7 @@
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
diff --git a/third_party/blink/renderer/core/input/touch.h b/third_party/blink/renderer/core/input/touch.h
index 2337a27..68e5722 100644
--- a/third_party/blink/renderer/core/input/touch.h
+++ b/third_party/blink/renderer/core/input/touch.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/geometry/layout_point.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "ui/gfx/geometry/point_f.h"
 #include "ui/gfx/geometry/size_f.h"
 
diff --git a/third_party/blink/renderer/core/input/touch_list.h b/third_party/blink/renderer/core/input/touch_list.h
index e747742..16a716c 100644
--- a/third_party/blink/renderer/core/input/touch_list.h
+++ b/third_party/blink/renderer/core/input/touch_list.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/input/touch.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/inspector/console_message.h b/third_party/blink/renderer/core/inspector/console_message.h
index f855f62..93572302 100644
--- a/third_party/blink/renderer/core/inspector/console_message.h
+++ b/third_party/blink/renderer/core/inspector/console_message.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/source_location.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/dom_node_ids.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/inspector/console_message_storage.h b/third_party/blink/renderer/core/inspector/console_message_storage.h
index bf15d43..3c1501e4 100644
--- a/third_party/blink/renderer/core/inspector/console_message_storage.h
+++ b/third_party/blink/renderer/core/inspector/console_message_storage.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_deque.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/inspector/dev_tools_emulator.h b/third_party/blink/renderer/core/inspector/dev_tools_emulator.h
index eadfe98..4ab39963 100644
--- a/third_party/blink/renderer/core/inspector/dev_tools_emulator.h
+++ b/third_party/blink/renderer/core/inspector/dev_tools_emulator.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/public/common/widget/device_emulation_params.h"
 #include "third_party/blink/public/mojom/webpreferences/web_preferences.mojom-blink.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/inspector/devtools_agent.h b/third_party/blink/renderer/core/inspector/devtools_agent.h
index 59b9e07..b65ada9 100644
--- a/third_party/blink/renderer/core/inspector/devtools_agent.h
+++ b/third_party/blink/renderer/core/inspector/devtools_agent.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/public/common/tokens/tokens.h"
 #include "third_party/blink/public/mojom/devtools/devtools_agent.mojom-blink.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
diff --git a/third_party/blink/renderer/core/inspector/devtools_session.h b/third_party/blink/renderer/core/inspector/devtools_session.h
index 79c695f..eee9638 100644
--- a/third_party/blink/renderer/core/inspector/devtools_session.h
+++ b/third_party/blink/renderer/core/inspector/devtools_session.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/core/inspector/inspector_session_state.h"
 #include "third_party/blink/renderer/core/inspector/protocol/forward.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
diff --git a/third_party/blink/renderer/core/inspector/dom_patch_support.h b/third_party/blink/renderer/core/inspector/dom_patch_support.h
index 0f03d44..91dd742 100644
--- a/third_party/blink/renderer/core/inspector/dom_patch_support.h
+++ b/third_party/blink/renderer/core/inspector/dom_patch_support.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/inspector/inspector_base_agent.h b/third_party/blink/renderer/core/inspector/inspector_base_agent.h
index 9100417a..b94e165c 100644
--- a/third_party/blink/renderer/core/inspector/inspector_base_agent.h
+++ b/third_party/blink/renderer/core/inspector/inspector_base_agent.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/core_probe_sink.h"
 #include "third_party/blink/renderer/core/inspector/inspector_session_state.h"
 #include "third_party/blink/renderer/core/inspector/protocol/protocol.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/inspector/inspector_css_agent.cc b/third_party/blink/renderer/core/inspector/inspector_css_agent.cc
index 36b871e..032100a 100644
--- a/third_party/blink/renderer/core/inspector/inspector_css_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_css_agent.cc
@@ -2512,6 +2512,7 @@
       if (it == css_style_sheet_to_inspector_style_sheet_.end())
         continue;
       InspectorStyleSheet* imported_style_sheet = it->value;
+      CHECK_NE(imported_style_sheet, nullptr);
       BuildRulesMap(imported_style_sheet, rule_to_css_rule);
     }
   }
diff --git a/third_party/blink/renderer/core/inspector/inspector_frontend_client.h b/third_party/blink/renderer/core/inspector/inspector_frontend_client.h
index b7ac01b..c36ecde 100644
--- a/third_party/blink/renderer/core/inspector/inspector_frontend_client.h
+++ b/third_party/blink/renderer/core/inspector/inspector_frontend_client.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_INSPECTOR_INSPECTOR_FRONTEND_CLIENT_H_
 
 #include "base/values.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/inspector/inspector_history.h b/third_party/blink/renderer/core/inspector/inspector_history.h
index a0fa2903..f4def6e 100644
--- a/third_party/blink/renderer/core/inspector/inspector_history.h
+++ b/third_party/blink/renderer/core/inspector/inspector_history.h
@@ -34,7 +34,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/inspector/inspector_issue.h b/third_party/blink/renderer/core/inspector/inspector_issue.h
index 2c44a93..26a9854 100644
--- a/third_party/blink/renderer/core/inspector/inspector_issue.h
+++ b/third_party/blink/renderer/core/inspector/inspector_issue.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/mojom/devtools/inspector_issue.mojom-blink.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/inspector/inspector_issue_reporter.h b/third_party/blink/renderer/core/inspector/inspector_issue_reporter.h
index 2576643c..6fd1d35 100644
--- a/third_party/blink/renderer/core/inspector/inspector_issue_reporter.h
+++ b/third_party/blink/renderer/core/inspector/inspector_issue_reporter.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_INSPECTOR_INSPECTOR_ISSUE_REPORTER_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/garbage_collected.h"
 
 namespace base {
 class UnguessableToken;
diff --git a/third_party/blink/renderer/core/inspector/inspector_network_agent.h b/third_party/blink/renderer/core/inspector/inspector_network_agent.h
index 74750b3..bfe5827 100644
--- a/third_party/blink/renderer/core/inspector/inspector_network_agent.h
+++ b/third_party/blink/renderer/core/inspector/inspector_network_agent.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/core/inspector/inspector_page_agent.h"
 #include "third_party/blink/renderer/core/inspector/protocol/network.h"
 #include "third_party/blink/renderer/platform/blob/blob_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_load_priority.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/core/inspector/inspector_overlay_agent.h b/third_party/blink/renderer/core/inspector/inspector_overlay_agent.h
index 13e2cc7..cbb4d775 100644
--- a/third_party/blink/renderer/core/inspector/inspector_overlay_agent.h
+++ b/third_party/blink/renderer/core/inspector/inspector_overlay_agent.h
@@ -46,7 +46,7 @@
 #include "third_party/blink/renderer/core/inspector/protocol/overlay.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "ui/gfx/geometry/quad_f.h"
diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b/third_party/blink/renderer/core/inspector/inspector_page_agent.cc
index aea7f92..e3f0115 100644
--- a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_page_agent.cc
@@ -796,6 +796,10 @@
       reason =
           protocol::Page::PermissionsPolicyBlockReasonEnum::IframeAttribute;
       break;
+    case blink::PermissionsPolicyBlockReason::kInFencedFrameTree:
+      reason =
+          protocol::Page::PermissionsPolicyBlockReasonEnum::InFencedFrameTree;
+      break;
   }
 
   return protocol::Page::PermissionsPolicyBlockLocator::create()
diff --git a/third_party/blink/renderer/core/inspector/inspector_resource_container.h b/third_party/blink/renderer/core/inspector/inspector_resource_container.h
index 450fac7..d02fe003 100644
--- a/third_party/blink/renderer/core/inspector/inspector_resource_container.h
+++ b/third_party/blink/renderer/core/inspector/inspector_resource_container.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/dom_node_ids.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
diff --git a/third_party/blink/renderer/core/inspector/inspector_style_resolver.h b/third_party/blink/renderer/core/inspector/inspector_style_resolver.h
index b898936..1fce58cf 100644
--- a/third_party/blink/renderer/core/inspector/inspector_style_resolver.h
+++ b/third_party/blink/renderer/core/inspector/inspector_style_resolver.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/css/css_value.h"
 #include "third_party/blink/renderer/core/css/properties/css_property.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/inspector/inspector_style_sheet.h b/third_party/blink/renderer/core/inspector/inspector_style_sheet.h
index ee9aaace..6c6757e 100644
--- a/third_party/blink/renderer/core/inspector/inspector_style_sheet.h
+++ b/third_party/blink/renderer/core/inspector/inspector_style_sheet.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/css/css_property_source_data.h"
 #include "third_party/blink/renderer/core/css/css_style_declaration.h"
 #include "third_party/blink/renderer/core/inspector/protocol/css.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/inspector/inspector_trace_events.h b/third_party/blink/renderer/core/inspector/inspector_trace_events.h
index 4c49f105..4ce22e6 100644
--- a/third_party/blink/renderer/core/inspector/inspector_trace_events.h
+++ b/third_party/blink/renderer/core/inspector/inspector_trace_events.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/core_probe_sink.h"
 #include "third_party/blink/renderer/core/css/css_selector.h"
 #include "third_party/blink/renderer/core/loader/frame_loader_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/traced_value.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_load_priority.h"
diff --git a/third_party/blink/renderer/core/inspector/worker_inspector_controller.h b/third_party/blink/renderer/core/inspector/worker_inspector_controller.h
index ce1ff5c..786ed2b 100644
--- a/third_party/blink/renderer/core/inspector/worker_inspector_controller.h
+++ b/third_party/blink/renderer/core/inspector/worker_inspector_controller.h
@@ -36,7 +36,7 @@
 #include "base/unguessable_token.h"
 #include "third_party/blink/renderer/core/inspector/devtools_agent.h"
 #include "third_party/blink/renderer/core/inspector/inspector_task_runner.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.h b/third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.h
index ff47608..9369314c 100644
--- a/third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.h
+++ b/third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observation.h b/third_party/blink/renderer/core/intersection_observer/intersection_observation.h
index 374ce372..ee8080bb 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_observation.h
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_observation.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/dom/dom_high_res_time_stamp.h"
 #include "third_party/blink/renderer/core/intersection_observer/intersection_geometry.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer.h b/third_party/blink/renderer/core/intersection_observer/intersection_observer.h
index 89672c4..31b89563 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_observer.h
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer.h
@@ -17,7 +17,7 @@
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
 #include "third_party/blink/renderer/platform/heap/forward.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.h b/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.h
index cc4947d..082a22d 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.h
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/intersection_observer/intersection_observer.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
 // Design doc for IntersectionObserver implementation:
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer_delegate.h b/third_party/blink/renderer/core/intersection_observer/intersection_observer_delegate.h
index aff01ce..30500b85 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_observer_delegate.h
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer_delegate.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/intersection_observer/intersection_observer.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/box_layout_extra_input.h b/third_party/blink/renderer/core/layout/box_layout_extra_input.h
index a986f208..0c31609 100644
--- a/third_party/blink/renderer/core/layout/box_layout_extra_input.h
+++ b/third_party/blink/renderer/core/layout/box_layout_extra_input.h
@@ -7,7 +7,7 @@
 
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/custom_scrollbar.h b/third_party/blink/renderer/core/layout/custom_scrollbar.h
index 17db886..0663e05 100644
--- a/third_party/blink/renderer/core/layout/custom_scrollbar.h
+++ b/third_party/blink/renderer/core/layout/custom_scrollbar.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/scroll/scrollbar.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/depth_ordered_layout_object_list.h b/third_party/blink/renderer/core/layout/depth_ordered_layout_object_list.h
index e1e519c..b13b81a 100644
--- a/third_party/blink/renderer/core/layout/depth_ordered_layout_object_list.h
+++ b/third_party/blink/renderer/core/layout/depth_ordered_layout_object_list.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/layout/floating_objects.h b/third_party/blink/renderer/core/layout/floating_objects.h
index b34016a..0f08a26 100644
--- a/third_party/blink/renderer/core/layout/floating_objects.h
+++ b/third_party/blink/renderer/core/layout/floating_objects.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/platform/heap/collection_support/clear_collection_scope.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/linked_hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/pod_free_list_arena.h"
diff --git a/third_party/blink/renderer/core/layout/fragmentation_context.h b/third_party/blink/renderer/core/layout/fragmentation_context.h
index 4fa22d2..847f346 100644
--- a/third_party/blink/renderer/core/layout/fragmentation_context.h
+++ b/third_party/blink/renderer/core/layout/fragmentation_context.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/grid_track_sizing_algorithm.h b/third_party/blink/renderer/core/layout/grid_track_sizing_algorithm.h
index f315177c..4f9f7209 100644
--- a/third_party/blink/renderer/core/layout/grid_track_sizing_algorithm.h
+++ b/third_party/blink/renderer/core/layout/grid_track_sizing_algorithm.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/style/grid_positions_resolver.h"
 #include "third_party/blink/renderer/core/style/grid_track_size.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
diff --git a/third_party/blink/renderer/core/layout/hit_test_cache.h b/third_party/blink/renderer/core/layout/hit_test_cache.h
index 49571e4e..98c9d138 100644
--- a/third_party/blink/renderer/core/layout/hit_test_cache.h
+++ b/third_party/blink/renderer/core/layout/hit_test_cache.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/hit_test_result.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/hit_test_result.h b/third_party/blink/renderer/core/layout/hit_test_result.h
index 9aa13a9a..2051f40 100644
--- a/third_party/blink/renderer/core/layout/hit_test_result.h
+++ b/third_party/blink/renderer/core/layout/hit_test_result.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/layout/hit_test_request.h"
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/core/layout/layout_html_canvas.cc b/third_party/blink/renderer/core/layout/layout_html_canvas.cc
index dbe2fbf8..537f17b 100644
--- a/third_party/blink/renderer/core/layout/layout_html_canvas.cc
+++ b/third_party/blink/renderer/core/layout/layout_html_canvas.cc
@@ -91,13 +91,6 @@
   LayoutReplaced::InvalidatePaint(context);
 }
 
-CompositingReasons LayoutHTMLCanvas::AdditionalCompositingReasons() const {
-  NOT_DESTROYED();
-  if (To<HTMLCanvasElement>(GetNode())->ShouldBeDirectComposited())
-    return CompositingReason::kCanvas;
-  return CompositingReason::kNone;
-}
-
 void LayoutHTMLCanvas::StyleDidChange(StyleDifference diff,
                                       const ComputedStyle* old_style) {
   NOT_DESTROYED();
diff --git a/third_party/blink/renderer/core/layout/layout_html_canvas.h b/third_party/blink/renderer/core/layout/layout_html_canvas.h
index f802b92f..9baeda8 100644
--- a/third_party/blink/renderer/core/layout/layout_html_canvas.h
+++ b/third_party/blink/renderer/core/layout/layout_html_canvas.h
@@ -63,12 +63,6 @@
     NOT_DESTROYED();
     CanvasSizeChanged();
   }
-
-  bool CanHaveAdditionalCompositingReasons() const override {
-    NOT_DESTROYED();
-    return true;
-  }
-  CompositingReasons AdditionalCompositingReasons() const override;
 };
 
 template <>
diff --git a/third_party/blink/renderer/core/layout/layout_video.cc b/third_party/blink/renderer/core/layout/layout_video.cc
index 9f40f24..94f33933 100644
--- a/third_party/blink/renderer/core/layout/layout_video.cc
+++ b/third_party/blink/renderer/core/layout/layout_video.cc
@@ -220,4 +220,16 @@
   return !!MediaElement()->CcLayer();
 }
 
+CompositingReasons LayoutVideo::AdditionalCompositingReasons() const {
+  NOT_DESTROYED();
+  auto* element = To<HTMLMediaElement>(GetNode());
+  if (element->IsFullscreen() && element->UsesOverlayFullscreenVideo())
+    return CompositingReason::kVideo;
+
+  if (GetDisplayMode() == kVideo && SupportsAcceleratedRendering())
+    return CompositingReason::kVideo;
+
+  return CompositingReason::kNone;
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/layout/layout_video.h b/third_party/blink/renderer/core/layout/layout_video.h
index 34ef1da2..745bfe4 100644
--- a/third_party/blink/renderer/core/layout/layout_video.h
+++ b/third_party/blink/renderer/core/layout/layout_video.h
@@ -81,6 +81,12 @@
 
   LayoutUnit MinimumReplacedHeight() const override;
 
+  bool CanHaveAdditionalCompositingReasons() const override {
+    NOT_DESTROYED();
+    return true;
+  }
+  CompositingReasons AdditionalCompositingReasons() const override;
+
   void UpdatePlayer(bool is_in_layout);
 
   LayoutSize cached_image_size_;
diff --git a/third_party/blink/renderer/core/layout/layout_view.h b/third_party/blink/renderer/core/layout/layout_view.h
index be383f8..1edc94f 100644
--- a/third_party/blink/renderer/core/layout/layout_view.h
+++ b/third_party/blink/renderer/core/layout/layout_view.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/layout/layout_state.h"
 #include "third_party/blink/renderer/core/scroll/scrollable_area.h"
 #include "third_party/blink/renderer/platform/graphics/overlay_scrollbar_clip_behavior.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/ng/custom/css_layout_definition.h b/third_party/blink/renderer/core/layout/ng/custom/css_layout_definition.h
index 78e8cbc..6cc9e805 100644
--- a/third_party/blink/renderer/core/layout/ng/custom/css_layout_definition.h
+++ b/third_party/blink/renderer/core/layout/ng/custom/css_layout_definition.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/bindings/scoped_persistent.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/ng/custom/custom_layout_child.h b/third_party/blink/renderer/core/layout/ng/custom/custom_layout_child.h
index e7fc6cc..edc8e638 100644
--- a/third_party/blink/renderer/core/layout/ng/custom/custom_layout_child.h
+++ b/third_party/blink/renderer/core/layout/ng/custom/custom_layout_child.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/css/cssom/prepopulated_computed_style_property_map.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_layout_input_node.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/custom/custom_layout_fragment.h b/third_party/blink/renderer/core/layout/ng/custom/custom_layout_fragment.h
index 950a75aa..af4209f 100644
--- a/third_party/blink/renderer/core/layout/ng/custom/custom_layout_fragment.h
+++ b/third_party/blink/renderer/core/layout/ng/custom/custom_layout_fragment.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/custom/custom_layout_scope.h b/third_party/blink/renderer/core/layout/ng/custom/custom_layout_scope.h
index 6f60fe8..670b519 100644
--- a/third_party/blink/renderer/core/layout/ng/custom/custom_layout_scope.h
+++ b/third_party/blink/renderer/core/layout/ng/custom/custom_layout_scope.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/layout/ng/custom/custom_layout_work_task.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/custom/custom_layout_work_task.h b/third_party/blink/renderer/core/layout/ng/custom/custom_layout_work_task.h
index 44edb325..efadc05 100644
--- a/third_party/blink/renderer/core/layout/ng/custom/custom_layout_work_task.h
+++ b/third_party/blink/renderer/core/layout/ng/custom/custom_layout_work_task.h
@@ -8,7 +8,6 @@
 #include "third_party/blink/renderer/bindings/core/v8/v8_custom_layout_constraints_options.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/custom/layout_worklet.h b/third_party/blink/renderer/core/layout/ng/custom/layout_worklet.h
index a5e062a0..e2def7c 100644
--- a/third_party/blink/renderer/core/layout/ng/custom/layout_worklet.h
+++ b/third_party/blink/renderer/core/layout/ng/custom/layout_worklet.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/layout/ng/custom/document_layout_definition.h"
 #include "third_party/blink/renderer/core/layout/ng/custom/pending_layout_registry.h"
 #include "third_party/blink/renderer/core/workers/worklet.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/ng/custom/pending_layout_registry.h b/third_party/blink/renderer/core/layout/ng/custom/pending_layout_registry.h
index 8ecb2f8..07ea177c 100644
--- a/third_party/blink/renderer/core/layout/ng/custom/pending_layout_registry.h
+++ b/third_party/blink/renderer/core/layout/ng/custom/pending_layout_registry.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
 
diff --git a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion.h b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion.h
index c1c468a..e601c975 100644
--- a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion.h
+++ b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/layout/ng/geometry/ng_bfc_rect.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h
index 273edbbd..3131cad 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/node.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h
index 69a156c..61f48c9 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/core/layout/ng/ng_block_node.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_constraint_space.h"
 #include "third_party/blink/renderer/core/style/computed_style_base_constants.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
diff --git a/third_party/blink/renderer/core/layout/ng/svg/svg_inline_node_data.h b/third_party/blink/renderer/core/layout/ng/svg/svg_inline_node_data.h
index 6c303d3c..594bde2c 100644
--- a/third_party/blink/renderer/core/layout/ng/svg/svg_inline_node_data.h
+++ b/third_party/blink/renderer/core/layout/ng/svg/svg_inline_node_data.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/layout/layout_text.h"
 #include "third_party/blink/renderer/core/layout/ng/svg/ng_svg_character_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/shapes/shape_outside_info.h b/third_party/blink/renderer/core/layout/shapes/shape_outside_info.h
index 052e0835..7f92376 100644
--- a/third_party/blink/renderer/core/layout/shapes/shape_outside_info.h
+++ b/third_party/blink/renderer/core/layout/shapes/shape_outside_info.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/core/style/shape_value.h"
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "ui/gfx/geometry/rect_f.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_pattern.h b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_pattern.h
index 334feb1..149e160 100644
--- a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_pattern.h
+++ b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_pattern.h
@@ -25,7 +25,7 @@
 #include <memory>
 #include "third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.h"
 #include "third_party/blink/renderer/core/svg/pattern_attributes.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 
diff --git a/third_party/blink/renderer/core/layout/svg/svg_text_layout_attributes_builder.h b/third_party/blink/renderer/core/layout/svg/svg_text_layout_attributes_builder.h
index a0fbd974..d01ef39c 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_text_layout_attributes_builder.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_text_layout_attributes_builder.h
@@ -22,7 +22,7 @@
 
 #include "third_party/blink/renderer/core/layout/svg/svg_character_data.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/layout/table_grid_cell.h b/third_party/blink/renderer/core/layout/table_grid_cell.h
index f33829d..3ac385e5 100644
--- a/third_party/blink/renderer/core/layout/table_grid_cell.h
+++ b/third_party/blink/renderer/core/layout/table_grid_cell.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_TABLE_GRID_CELL_H_
 
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/layout/text_autosizer.h b/third_party/blink/renderer/core/layout/text_autosizer.h
index bf36f59..bafd6ee5 100644
--- a/third_party/blink/renderer/core/layout/text_autosizer.h
+++ b/third_party/blink/renderer/core/layout/text_autosizer.h
@@ -39,7 +39,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h
index d17fba74..36997bb2 100644
--- a/third_party/blink/renderer/core/loader/base_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h"
 #include "third_party/blink/renderer/core/frame/web_feature_forward.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_context.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
diff --git a/third_party/blink/renderer/core/loader/cookie_jar.h b/third_party/blink/renderer/core/loader/cookie_jar.h
index 4d1861d9..e91c441 100644
--- a/third_party/blink/renderer/core/loader/cookie_jar.h
+++ b/third_party/blink/renderer/core/loader/cookie_jar.h
@@ -7,7 +7,7 @@
 
 #include "services/network/public/mojom/restricted_cookie_manager.mojom-blink.h"
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/loader/font_preload_manager.h b/third_party/blink/renderer/core/loader/font_preload_manager.h
index 6b83cf48..6644362 100644
--- a/third_party/blink/renderer/core/loader/font_preload_manager.h
+++ b/third_party/blink/renderer/core/loader/font_preload_manager.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/loader/form_submission.cc b/third_party/blink/renderer/core/loader/form_submission.cc
index e3ac0f7..45c516d4 100644
--- a/third_party/blink/renderer/core/loader/form_submission.cc
+++ b/third_party/blink/renderer/core/loader/form_submission.cc
@@ -45,7 +45,7 @@
 #include "third_party/blink/renderer/core/html_names.h"
 #include "third_party/blink/renderer/core/loader/frame_load_request.h"
 #include "third_party/blink/renderer/core/loader/frame_loader.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/network/encoded_form_data.h"
 #include "third_party/blink/renderer/platform/network/form_data_encoder.h"
diff --git a/third_party/blink/renderer/core/loader/form_submission.h b/third_party/blink/renderer/core/loader/form_submission.h
index 88b44f2..1aaabad 100644
--- a/third_party/blink/renderer/core/loader/form_submission.h
+++ b/third_party/blink/renderer/core/loader/form_submission.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/public/web/web_frame_load_type.h"
 #include "third_party/blink/renderer/core/loader/frame_load_request.h"
 #include "third_party/blink/renderer/core/loader/navigation_policy.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/weborigin/referrer.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h
index 69fd9e9..183200f2 100644
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h
@@ -41,7 +41,7 @@
 #include "third_party/blink/public/mojom/service_worker/service_worker_object.mojom-blink-forward.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/loader/base_fetch_context.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/client_hints_preferences.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h"
 #include "third_party/blink/renderer/platform/loader/fetch/loading_behavior_observer.h"
diff --git a/third_party/blink/renderer/core/loader/frame_loader.h b/third_party/blink/renderer/core/loader/frame_loader.h
index c1f01ede..a5459c6 100644
--- a/third_party/blink/renderer/core/loader/frame_loader.h
+++ b/third_party/blink/renderer/core/loader/frame_loader.h
@@ -52,7 +52,7 @@
 #include "third_party/blink/renderer/core/frame/policy_container.h"
 #include "third_party/blink/renderer/core/loader/frame_loader_types.h"
 #include "third_party/blink/renderer/core/loader/history_item.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/loader_freeze_mode.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/core/loader/frame_resource_fetcher_properties.h b/third_party/blink/renderer/core/loader/frame_resource_fetcher_properties.h
index 85ef085be..9ff98e24 100644
--- a/third_party/blink/renderer/core/loader/frame_resource_fetcher_properties.h
+++ b/third_party/blink/renderer/core/loader/frame_resource_fetcher_properties.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_FRAME_RESOURCE_FETCHER_PROPERTIES_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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/loader_freeze_mode.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher_properties.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/core/loader/http_refresh_scheduler.h b/third_party/blink/renderer/core/loader/http_refresh_scheduler.h
index ae68b74..44da27ac 100644
--- a/third_party/blink/renderer/core/loader/http_refresh_scheduler.h
+++ b/third_party/blink/renderer/core/loader/http_refresh_scheduler.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/loader/frame_loader_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/loader/idleness_detector.h b/third_party/blink/renderer/core/loader/idleness_detector.h
index d7c4702c..b4dbca0 100644
--- a/third_party/blink/renderer/core/loader/idleness_detector.h
+++ b/third_party/blink/renderer/core/loader/idleness_detector.h
@@ -8,7 +8,7 @@
 #include "base/task/sequence_manager/task_time_observer.h"
 #include "base/time/default_tick_clock.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/loader/image_loader.h b/third_party/blink/renderer/core/loader/image_loader.h
index fddb8293..be5f38a 100644
--- a/third_party/blink/renderer/core/loader/image_loader.h
+++ b/third_party/blink/renderer/core/loader/image_loader.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/core/loader/resource/image_resource.h"
 #include "third_party/blink/renderer/core/loader/resource/image_resource_content.h"
 #include "third_party/blink/renderer/core/loader/resource/image_resource_observer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
diff --git a/third_party/blink/renderer/core/loader/interactive_detector.h b/third_party/blink/renderer/core/loader/interactive_detector.h
index 28d69de..f972711c 100644
--- a/third_party/blink/renderer/core/loader/interactive_detector.h
+++ b/third_party/blink/renderer/core/loader/interactive_detector.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/loader/long_task_detector.h"
 #include "third_party/blink/renderer/core/page/page_hidden_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/traced_value.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
diff --git a/third_party/blink/renderer/core/loader/link_loader_client.h b/third_party/blink/renderer/core/loader/link_loader_client.h
index 80f760f..0dbb916f 100644
--- a/third_party/blink/renderer/core/loader/link_loader_client.h
+++ b/third_party/blink/renderer/core/loader/link_loader_client.h
@@ -34,7 +34,7 @@
 #include "base/task/single_thread_task_runner.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/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/loader/long_task_detector.h b/third_party/blink/renderer/core/loader/long_task_detector.h
index 54238a9..25c1da4 100644
--- a/third_party/blink/renderer/core/loader/long_task_detector.h
+++ b/third_party/blink/renderer/core/loader/long_task_detector.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader.h b/third_party/blink/renderer/core/loader/modulescript/module_script_loader.h
index 4bb9ac94..617c26e 100644
--- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader.h
+++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/loader/modulescript/module_script_creation_params.h"
 #include "third_party/blink/renderer/core/loader/modulescript/module_script_fetch_request.h"
 #include "third_party/blink/renderer/core/loader/modulescript/module_script_fetcher.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_client.h b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_client.h
index 1159bc2..93c5429 100644
--- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_client.h
+++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_client.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_MODULESCRIPT_MODULE_SCRIPT_LOADER_CLIENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_MODULESCRIPT_MODULE_SCRIPT_LOADER_CLIENT_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h
index 55f2ad8..20a8b39d 100644
--- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h
+++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
index 542d87f0..e76354e 100644
--- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
+++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/workers/worklet_global_scope.h"
 #include "third_party/blink/renderer/core/workers/worklet_global_scope_test_helper.h"
 #include "third_party/blink/renderer/core/workers/worklet_module_responses_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h"
 #include "third_party/blink/renderer/platform/loader/testing/fetch_testing_platform_support.h"
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h
index ab34ffc..a4a213d 100644
--- a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h
+++ b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/loader/modulescript/module_script_creation_params.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc
index 96fd3c1..58f8ccac 100644
--- a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc
+++ b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc
@@ -25,7 +25,7 @@
 #include "third_party/blink/renderer/core/testing/sim/sim_test.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/v8_throw_exception.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/core/loader/prerender_handle.h b/third_party/blink/renderer/core/loader/prerender_handle.h
index 2d79168..d6e7ab36 100644
--- a/third_party/blink/renderer/core/loader/prerender_handle.h
+++ b/third_party/blink/renderer/core/loader/prerender_handle.h
@@ -35,7 +35,7 @@
 #include "base/types/pass_key.h"
 #include "third_party/blink/public/mojom/prerender/prerender.mojom-blink.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 
diff --git a/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource.h b/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource.h
index 869ce525..2f4b8ce 100644
--- a/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource.h
+++ b/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource.h
@@ -28,7 +28,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/loader/resource/text_resource.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/text_resource_decoder_options.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_encoding.h"
 
diff --git a/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource_test.cc b/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource_test.cc
index f2b99a6e..2ae5205e 100644
--- a/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource_test.cc
+++ b/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource_test.cc
@@ -24,7 +24,6 @@
 #include "third_party/blink/renderer/core/loader/resource/image_resource.h"
 #include "third_party/blink/renderer/core/testing/page_test_base.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_context.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h"
 #include "third_party/blink/renderer/platform/loader/fetch/memory_cache.h"
diff --git a/third_party/blink/renderer/core/loader/resource/font_resource.h b/third_party/blink/renderer/core/loader/resource/font_resource.h
index 9f24081..60325b9 100644
--- a/third_party/blink/renderer/core/loader/resource/font_resource.h
+++ b/third_party/blink/renderer/core/loader/resource/font_resource.h
@@ -30,7 +30,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "base/task/single_thread_task_runner.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_client.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource.h b/third_party/blink/renderer/core/loader/resource/image_resource.h
index 65d1c4d..c15a62f4 100644
--- a/third_party/blink/renderer/core/loader/resource/image_resource.h
+++ b/third_party/blink/renderer/core/loader/resource/image_resource.h
@@ -27,7 +27,7 @@
 #include "third_party/blink/renderer/core/loader/resource/image_resource_content.h"
 #include "third_party/blink/renderer/core/loader/resource/image_resource_info.h"
 #include "third_party/blink/renderer/core/loader/resource/multipart_image_resource_parser.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource_info.h b/third_party/blink/renderer/core/loader/resource/image_resource_info.h
index ce876a26..6743de7 100644
--- a/third_party/blink/renderer/core/loader/resource/image_resource_info.h
+++ b/third_party/blink/renderer/core/loader/resource/image_resource_info.h
@@ -8,7 +8,6 @@
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_error.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_status.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/core/loader/resource/mock_font_resource_client.h b/third_party/blink/renderer/core/loader/resource/mock_font_resource_client.h
index c86d231..95038dd1 100644
--- a/third_party/blink/renderer/core/loader/resource/mock_font_resource_client.h
+++ b/third_party/blink/renderer/core/loader/resource/mock_font_resource_client.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_RESOURCE_MOCK_FONT_RESOURCE_CLIENT_H_
 
 #include "third_party/blink/renderer/core/loader/resource/font_resource.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_client.h"
 
diff --git a/third_party/blink/renderer/core/loader/text_track_loader.h b/third_party/blink/renderer/core/loader/text_track_loader.h
index 9e56c60..2771707 100644
--- a/third_party/blink/renderer/core/loader/text_track_loader.h
+++ b/third_party/blink/renderer/core/loader/text_track_loader.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_TEXT_TRACK_LOADER_H_
 
 #include "third_party/blink/renderer/core/html/track/vtt/vtt_parser.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/cross_origin_attribute_value.h"
 #include "third_party/blink/renderer/platform/loader/fetch/raw_resource.h"
 
diff --git a/third_party/blink/renderer/core/loader/threadable_loader.h b/third_party/blink/renderer/core/loader/threadable_loader.h
index b3043bb..c641601 100644
--- a/third_party/blink/renderer/core/loader/threadable_loader.h
+++ b/third_party/blink/renderer/core/loader/threadable_loader.h
@@ -35,7 +35,7 @@
 #include "services/network/public/mojom/fetch_api.mojom-blink.h"
 #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink-forward.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/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/raw_resource.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_error.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h"
diff --git a/third_party/blink/renderer/core/loader/threadable_loader_client.h b/third_party/blink/renderer/core/loader/threadable_loader_client.h
index 6c6b8fe..b5d1a5ca 100644
--- a/third_party/blink/renderer/core/loader/threadable_loader_client.h
+++ b/third_party/blink/renderer/core/loader/threadable_loader_client.h
@@ -34,7 +34,7 @@
 #include "mojo/public/cpp/base/big_buffer.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/blob/blob_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/loader/web_bundle/script_web_bundle.h b/third_party/blink/renderer/core/loader/web_bundle/script_web_bundle.h
index 6d46b8c..4c804279 100644
--- a/third_party/blink/renderer/core/loader/web_bundle/script_web_bundle.h
+++ b/third_party/blink/renderer/core/loader/web_bundle/script_web_bundle.h
@@ -10,7 +10,6 @@
 #include "third_party/blink/renderer/core/loader/web_bundle/script_web_bundle_rule.h"
 #include "third_party/blink/renderer/core/script/script_element_base.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/loader/fetch/subresource_web_bundle.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
diff --git a/third_party/blink/renderer/core/loader/worker_resource_fetcher_properties.h b/third_party/blink/renderer/core/loader/worker_resource_fetcher_properties.h
index cde789c..46f7e0598 100644
--- a/third_party/blink/renderer/core/loader/worker_resource_fetcher_properties.h
+++ b/third_party/blink/renderer/core/loader/worker_resource_fetcher_properties.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_WORKER_RESOURCE_FETCHER_PROPERTIES_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_WORKER_RESOURCE_FETCHER_PROPERTIES_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher_properties.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.h b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.h
index 098340d0..99898be 100644
--- a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.h
+++ b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.h
@@ -18,7 +18,7 @@
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "ui/gfx/geometry/size.h"
 
diff --git a/third_party/blink/renderer/core/page/chrome_client.h b/third_party/blink/renderer/core/page/chrome_client.h
index a6b33922..a3c4dd0a 100644
--- a/third_party/blink/renderer/core/page/chrome_client.h
+++ b/third_party/blink/renderer/core/page/chrome_client.h
@@ -49,7 +49,7 @@
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/graphics/touch_action.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
diff --git a/third_party/blink/renderer/core/page/context_menu_controller.h b/third_party/blink/renderer/core/page/context_menu_controller.h
index 008ded23..c246705d 100644
--- a/third_party/blink/renderer/core/page/context_menu_controller.h
+++ b/third_party/blink/renderer/core/page/context_menu_controller.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/public/mojom/context_menu/context_menu.mojom-blink.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/hit_test_result.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/page/context_menu_provider.h b/third_party/blink/renderer/core/page/context_menu_provider.h
index 4cb191b..4b25d83d 100644
--- a/third_party/blink/renderer/core/page/context_menu_provider.h
+++ b/third_party/blink/renderer/core/page/context_menu_provider.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_CONTEXT_MENU_PROVIDER_H_
 
 #include "third_party/blink/public/platform/web_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/page/drag_controller.h b/third_party/blink/renderer/core/page/drag_controller.h
index a27fe39..f7d98be 100644
--- a/third_party/blink/renderer/core/page/drag_controller.h
+++ b/third_party/blink/renderer/core/page/drag_controller.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/page/drag_actions.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "ui/base/dragdrop/mojom/drag_drop_types.mojom-blink-forward.h"
diff --git a/third_party/blink/renderer/core/page/drag_state.h b/third_party/blink/renderer/core/page/drag_state.h
index 4ef9d75..11482ea4 100644
--- a/third_party/blink/renderer/core/page/drag_state.h
+++ b/third_party/blink/renderer/core/page/drag_state.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_DRAG_STATE_H_
 
 #include "third_party/blink/renderer/core/page/drag_actions.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/page/focus_changed_observer.h b/third_party/blink/renderer/core/page/focus_changed_observer.h
index 89131a1..446134b9 100644
--- a/third_party/blink/renderer/core/page/focus_changed_observer.h
+++ b/third_party/blink/renderer/core/page/focus_changed_observer.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_FOCUS_CHANGED_OBSERVER_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/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/page/focus_controller.h b/third_party/blink/renderer/core/page/focus_controller.h
index 303e15ee..56ac7e82 100644
--- a/third_party/blink/renderer/core/page/focus_controller.h
+++ b/third_party/blink/renderer/core/page/focus_controller.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/renderer/core/page/page.h
index 0b472cd..f3231c1c 100644
--- a/third_party/blink/renderer/core/page/page.h
+++ b/third_party/blink/renderer/core/page/page.h
@@ -42,7 +42,7 @@
 #include "third_party/blink/renderer/core/page/page_animator.h"
 #include "third_party/blink/renderer/core/page/page_visibility_observer.h"
 #include "third_party/blink/renderer/core/page/viewport_description.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/heap_observer_set.h"
 #include "third_party/blink/renderer/platform/scheduler/public/page_lifecycle_state.h"
diff --git a/third_party/blink/renderer/core/page/page_animator.h b/third_party/blink/renderer/core/page/page_animator.h
index 3f9c0be..7432037 100644
--- a/third_party/blink/renderer/core/page/page_animator.h
+++ b/third_party/blink/renderer/core/page/page_animator.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/animation/animation_clock.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/document_lifecycle.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace cc {
 class AnimationHost;
diff --git a/third_party/blink/renderer/core/page/page_popup_controller.h b/third_party/blink/renderer/core/page/page_popup_controller.h
index b53070d8..eb259df 100644
--- a/third_party/blink/renderer/core/page/page_popup_controller.h
+++ b/third_party/blink/renderer/core/page/page_popup_controller.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_PAGE_POPUP_CONTROLLER_H_
 
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/page/plugin_data.h b/third_party/blink/renderer/core/page/plugin_data.h
index 783a7cd2..bc4d9d4 100644
--- a/third_party/blink/renderer/core/page/plugin_data.h
+++ b/third_party/blink/renderer/core/page/plugin_data.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/page/plugins_changed_observer.h b/third_party/blink/renderer/core/page/plugins_changed_observer.h
index 62dabe9..de53862 100644
--- a/third_party/blink/renderer/core/page/plugins_changed_observer.h
+++ b/third_party/blink/renderer/core/page/plugins_changed_observer.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_PLUGINS_CHANGED_OBSERVER_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/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/page/pointer_lock_controller.h b/third_party/blink/renderer/core/page/pointer_lock_controller.h
index 67c9d9201..994297f 100644
--- a/third_party/blink/renderer/core/page/pointer_lock_controller.h
+++ b/third_party/blink/renderer/core/page/pointer_lock_controller.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "ui/gfx/geometry/point_f.h"
diff --git a/third_party/blink/renderer/core/page/popup_opening_observer.h b/third_party/blink/renderer/core/page/popup_opening_observer.h
index 23a9bf0b..0b78891a 100644
--- a/third_party/blink/renderer/core/page/popup_opening_observer.h
+++ b/third_party/blink/renderer/core/page/popup_opening_observer.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_POPUP_OPENING_OBSERVER_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/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/page/print_context.h b/third_party/blink/renderer/core/page/print_context.h
index a6c0acc..cb77937 100644
--- a/third_party/blink/renderer/core/page/print_context.h
+++ b/third_party/blink/renderer/core/page/print_context.h
@@ -23,7 +23,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h b/third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h
index 5caa9c7c..4f4e607 100644
--- a/third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h
+++ b/third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/page/scrolling/scroll_customization_callbacks.h b/third_party/blink/renderer/core/page/scrolling/scroll_customization_callbacks.h
index 8eb5319..718b1288 100644
--- a/third_party/blink/renderer/core/page/scrolling/scroll_customization_callbacks.h
+++ b/third_party/blink/renderer/core/page/scrolling/scroll_customization_callbacks.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h b/third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h
index 88600d0..a9f879b 100644
--- a/third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h
+++ b/third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_SCROLLING_SCROLL_STATE_CALLBACK_H_
 
 #include "third_party/blink/renderer/bindings/core/v8/v8_scroll_state_callback.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h
index 10562a1..6713ae3d 100644
--- a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h
+++ b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h"
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace cc {
 class AnimationHost;
diff --git a/third_party/blink/renderer/core/page/scrolling/snap_coordinator.h b/third_party/blink/renderer/core/page/scrolling/snap_coordinator.h
index 631a34a..b768392b 100644
--- a/third_party/blink/renderer/core/page/scrolling/snap_coordinator.h
+++ b/third_party/blink/renderer/core/page/scrolling/snap_coordinator.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_primitive_value_mappings.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/page/scrolling/sticky_position_scrolling_constraints.h b/third_party/blink/renderer/core/page/scrolling/sticky_position_scrolling_constraints.h
index eec2ca9..29fbb167 100644
--- a/third_party/blink/renderer/core/page/scrolling/sticky_position_scrolling_constraints.h
+++ b/third_party/blink/renderer/core/page/scrolling/sticky_position_scrolling_constraints.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/layout/geometry/physical_rect.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h b/third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h
index 66600ea..cb51301 100644
--- a/third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h
+++ b/third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "ui/gfx/geometry/size.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/page/scrolling/viewport_scroll_callback.h b/third_party/blink/renderer/core/page/scrolling/viewport_scroll_callback.h
index 3c43c57..8e34450 100644
--- a/third_party/blink/renderer/core/page/scrolling/viewport_scroll_callback.h
+++ b/third_party/blink/renderer/core/page/scrolling/viewport_scroll_callback.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h"
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/page/spatial_navigation_controller.h b/third_party/blink/renderer/core/page/spatial_navigation_controller.h
index d5a409a..6a424da 100644
--- a/third_party/blink/renderer/core/page/spatial_navigation_controller.h
+++ b/third_party/blink/renderer/core/page/spatial_navigation_controller.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/page/spatial_navigation.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/page/validation_message_client.h b/third_party/blink/renderer/core/page/validation_message_client.h
index 44134c29..8784f67 100644
--- a/third_party/blink/renderer/core/page/validation_message_client.h
+++ b/third_party/blink/renderer/core/page/validation_message_client.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_VALIDATION_MESSAGE_CLIENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_VALIDATION_MESSAGE_CLIENT_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/page/validation_message_client_impl.h b/third_party/blink/renderer/core/page/validation_message_client_impl.h
index 2ddc57d..d511879 100644
--- a/third_party/blink/renderer/core/page/validation_message_client_impl.h
+++ b/third_party/blink/renderer/core/page/validation_message_client_impl.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/page/popup_opening_observer.h"
 #include "third_party/blink/renderer/core/page/validation_message_client.h"
 #include "third_party/blink/renderer/platform/heap/disallow_new_wrapper.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "ui/gfx/geometry/rect.h"
diff --git a/third_party/blink/renderer/core/paint/paint_layer.cc b/third_party/blink/renderer/core/paint/paint_layer.cc
index b4b4c3f84..dfee14d 100644
--- a/third_party/blink/renderer/core/paint/paint_layer.cc
+++ b/third_party/blink/renderer/core/paint/paint_layer.cc
@@ -1453,6 +1453,11 @@
                 recursion_data.location.TransformedRect(),
                 gfx::QuadF(gfx::RectF(recursion_data.rect)));
 
+  if (&transform_container == this) {
+    DCHECK(!container_transform_state);
+    return transform_state;
+  }
+
   if (container_transform_state &&
       (!transform_container.Preserves3D() ||
        &transform_container.GetLayoutObject() !=
diff --git a/third_party/blink/renderer/core/paint/paint_layer_fragment.h b/third_party/blink/renderer/core/paint/paint_layer_fragment.h
index fcec7bdd..98dc709 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_fragment.h
+++ b/third_party/blink/renderer/core/paint/paint_layer_fragment.h
@@ -28,7 +28,7 @@
 
 #include "third_party/blink/renderer/core/paint/clip_rect.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h b/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h
index 754df1b..34be4a2 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h
+++ b/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h
@@ -52,7 +52,7 @@
 #include "third_party/blink/renderer/core/scroll/scrollable_area.h"
 #include "third_party/blink/renderer/platform/graphics/overlay_scrollbar_clip_behavior.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/paint/paint_layer_test.cc b/third_party/blink/renderer/core/paint/paint_layer_test.cc
index dffe039d..b7be8ba 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_test.cc
+++ b/third_party/blink/renderer/core/paint/paint_layer_test.cc
@@ -2523,4 +2523,20 @@
   EXPECT_TRUE(child_layer->NeedsCullRectUpdate());
 }
 
+TEST_P(PaintLayerTest, HitTestLayerWith3DDescendantCrash) {
+  SetBodyInnerHTML(R"HTML(
+    <div id="target" style="transform: translate(0)">
+      <div style="transform-style: preserve-3d; transform: rotateY(1deg)"></div>
+    </div>
+  )HTML");
+
+  auto* target = GetPaintLayerByElementId("target");
+  EXPECT_TRUE(target->Has3DTransformedDescendant());
+  HitTestRequest request(0);
+  HitTestLocation location;
+  HitTestResult result(request, location);
+  // This should not crash.
+  target->HitTest(location, result, PhysicalRect(0, 0, 800, 600));
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_builder.h b/third_party/blink/renderer/core/paint/paint_property_tree_builder.h
index 55649c11..301830b 100644
--- a/third_party/blink/renderer/core/paint/paint_property_tree_builder.h
+++ b/third_party/blink/renderer/core/paint/paint_property_tree_builder.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/clear_collection_scope.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/paint/paint_timing.h b/third_party/blink/renderer/core/paint/paint_timing.h
index 645d8bb..515fee0b 100644
--- a/third_party/blink/renderer/core/paint/paint_timing.h
+++ b/third_party/blink/renderer/core/paint/paint_timing.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/paint/first_meaningful_paint_detector.h"
 #include "third_party/blink/renderer/core/paint/paint_event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 
diff --git a/third_party/blink/renderer/core/paint/video_painter_test.cc b/third_party/blink/renderer/core/paint/video_painter_test.cc
index 1fba9a5..a30f704 100644
--- a/third_party/blink/renderer/core/paint/video_painter_test.cc
+++ b/third_party/blink/renderer/core/paint/video_painter_test.cc
@@ -121,10 +121,7 @@
 
 TEST_F(VideoPainterTest, VideoLayerAppearsInLayerTree) {
   // Insert a <video> and allow it to begin loading.
-  SetBodyInnerHTML(R"HTML(
-    <style>body { margin: 0 }</style>
-    <video id=video width=300 height=300 src=test.ogv>
-  )HTML");
+  SetBodyInnerHTML("<video width=300 height=300 src=test.ogv>");
   test::RunPendingTasks();
 
   // Force the page to paint.
@@ -132,7 +129,7 @@
 
   // Fetch the layer associated with the <video>, and check that it was
   // correctly configured in the layer tree.
-  auto* element = To<HTMLMediaElement>(GetDocument().getElementById("video"));
+  auto* element = To<HTMLMediaElement>(GetDocument().body()->firstChild());
   StubWebMediaPlayer* player =
       static_cast<StubWebMediaPlayer*>(element->GetWebMediaPlayer());
   const cc::Layer* layer = player->GetCcLayer();
diff --git a/third_party/blink/renderer/core/permissions_policy/permissions_policy_devtools_support.cc b/third_party/blink/renderer/core/permissions_policy/permissions_policy_devtools_support.cc
index c436c72..53ef6dc6 100644
--- a/third_party/blink/renderer/core/permissions_policy/permissions_policy_devtools_support.cc
+++ b/third_party/blink/renderer/core/permissions_policy/permissions_policy_devtools_support.cc
@@ -21,6 +21,15 @@
   if (current_policy->IsFeatureEnabled(feature))
     return absl::nullopt;
 
+  // All permissions are disabled by default for fenced frames, irrespective of
+  // headers (see PermissionsPolicy::CreateForFencedFrame).
+  if (frame->IsInFencedFrameTree()) {
+    return PermissionsPolicyBlockLocator{
+        IdentifiersFactory::FrameId(frame),
+        PermissionsPolicyBlockReason::kInFencedFrameTree,
+    };
+  }
+
   Frame* current_frame = frame;
   Frame* child_frame = nullptr;
 
diff --git a/third_party/blink/renderer/core/permissions_policy/permissions_policy_devtools_support.h b/third_party/blink/renderer/core/permissions_policy/permissions_policy_devtools_support.h
index ccb68201..21f684b 100644
--- a/third_party/blink/renderer/core/permissions_policy/permissions_policy_devtools_support.h
+++ b/third_party/blink/renderer/core/permissions_policy/permissions_policy_devtools_support.h
@@ -20,6 +20,9 @@
   // or in iframe attribute.
   kHeader,
   kIframeAttribute,
+  // All permissions are disabled by default for fenced frames, irrespective of
+  // headers.
+  kInFencedFrameTree,
 };
 
 struct PermissionsPolicyBlockLocator {
diff --git a/third_party/blink/renderer/core/resize_observer/resize_observation.h b/third_party/blink/renderer/core/resize_observer/resize_observation.h
index ae5d70f..2918b7e 100644
--- a/third_party/blink/renderer/core/resize_observer/resize_observation.h
+++ b/third_party/blink/renderer/core/resize_observer/resize_observation.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/resize_observer/resize_observer_box_options.h"
 #include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h"
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/resize_observer/resize_observer.h b/third_party/blink/renderer/core/resize_observer/resize_observer.h
index d0cb181..7f4adf5 100644
--- a/third_party/blink/renderer/core/resize_observer/resize_observer.h
+++ b/third_party/blink/renderer/core/resize_observer/resize_observer.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/resize_observer/resize_observer_controller.h b/third_party/blink/renderer/core/resize_observer/resize_observer_controller.h
index 9dd38ba4..43b95b4d 100644
--- a/third_party/blink/renderer/core/resize_observer/resize_observer_controller.h
+++ b/third_party/blink/renderer/core/resize_observer/resize_observer_controller.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/resize_observer/resize_observer_entry.h b/third_party/blink/renderer/core/resize_observer/resize_observer_entry.h
index 2b70c7e..b7cad9f 100644
--- a/third_party/blink/renderer/core/resize_observer/resize_observer_entry.h
+++ b/third_party/blink/renderer/core/resize_observer/resize_observer_entry.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/resize_observer/resize_observer_size.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/script/html_parser_script_runner.h b/third_party/blink/renderer/core/script/html_parser_script_runner.h
index a93a5a3..e0a1d0d 100644
--- a/third_party/blink/renderer/core/script/html_parser_script_runner.h
+++ b/third_party/blink/renderer/core/script/html_parser_script_runner.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/script/pending_script.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_deque.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_client.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
diff --git a/third_party/blink/renderer/core/script/import_map.h b/third_party/blink/renderer/core/script/import_map.h
index bfad802..70f904d 100644
--- a/third_party/blink/renderer/core/script/import_map.h
+++ b/third_party/blink/renderer/core/script/import_map.h
@@ -8,7 +8,7 @@
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/script/import_map_error.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl_hash.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/core/script/js_module_script.h b/third_party/blink/renderer/core/script/js_module_script.h
index 3ec0c48..8b01981 100644
--- a/third_party/blink/renderer/core/script/js_module_script.h
+++ b/third_party/blink/renderer/core/script/js_module_script.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/script/module_script.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/bindings/parkable_string.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/script/modulator.h b/third_party/blink/renderer/core/script/modulator.h
index 80f0e97..7837bf3 100644
--- a/third_party/blink/renderer/core/script/modulator.h
+++ b/third_party/blink/renderer/core/script/modulator.h
@@ -20,7 +20,7 @@
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/bindings/v8_per_context_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/script_fetch_options.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
diff --git a/third_party/blink/renderer/core/script/modulator_impl_base.h b/third_party/blink/renderer/core/script/modulator_impl_base.h
index a332c360..a1b4024 100644
--- a/third_party/blink/renderer/core/script/modulator_impl_base.h
+++ b/third_party/blink/renderer/core/script/modulator_impl_base.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/script/module_map.h b/third_party/blink/renderer/core/script/module_map.h
index 05cea8a..f83148e 100644
--- a/third_party/blink/renderer/core/script/module_map.h
+++ b/third_party/blink/renderer/core/script/module_map.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl_hash.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/core/script/module_map_test.cc b/third_party/blink/renderer/core/script/module_map_test.cc
index 21a2f126..b794282 100644
--- a/third_party/blink/renderer/core/script/module_map_test.cc
+++ b/third_party/blink/renderer/core/script/module_map_test.cc
@@ -19,7 +19,7 @@
 #include "third_party/blink/renderer/core/testing/dummy_page_holder.h"
 #include "third_party/blink/renderer/core/testing/module_test_base.h"
 #include "third_party/blink/renderer/core/testing/page_test_base.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h"
 #include "third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/core/script/module_record_resolver.h b/third_party/blink/renderer/core/script/module_record_resolver.h
index 6152e63..fb911f4 100644
--- a/third_party/blink/renderer/core/script/module_record_resolver.h
+++ b/third_party/blink/renderer/core/script/module_record_resolver.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/script/module_record_resolver_impl.h b/third_party/blink/renderer/core/script/module_record_resolver_impl.h
index 2b8fc19..5811757 100644
--- a/third_party/blink/renderer/core/script/module_record_resolver_impl.h
+++ b/third_party/blink/renderer/core/script/module_record_resolver_impl.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/script/module_record_resolver.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/script/module_record_resolver_impl_test.cc b/third_party/blink/renderer/core/script/module_record_resolver_impl_test.cc
index 43a6db9..2cd19f6 100644
--- a/third_party/blink/renderer/core/script/module_record_resolver_impl_test.cc
+++ b/third_party/blink/renderer/core/script/module_record_resolver_impl_test.cc
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/testing/module_test_base.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/v8_throw_exception.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/core/script/module_script.h b/third_party/blink/renderer/core/script/module_script.h
index f4fc1ebd..d79cabd3 100644
--- a/third_party/blink/renderer/core/script/module_script.h
+++ b/third_party/blink/renderer/core/script/module_script.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/bindings/parkable_string.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/url_loader/cached_metadata_handler.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl_hash.h"
diff --git a/third_party/blink/renderer/core/script/pending_script.h b/third_party/blink/renderer/core/script/pending_script.h
index bf726d53..f8d7f91 100644
--- a/third_party/blink/renderer/core/script/pending_script.h
+++ b/third_party/blink/renderer/core/script/pending_script.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/core/script/script_element_base.h"
 #include "third_party/blink/renderer/core/script/script_scheduling_type.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
 
diff --git a/third_party/blink/renderer/core/script/script.h b/third_party/blink/renderer/core/script/script.h
index 89c1505..c209a9e 100644
--- a/third_party/blink/renderer/core/script/script.h
+++ b/third_party/blink/renderer/core/script/script.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/public/mojom/script/script_type.mojom-blink.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/script_fetch_options.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/script/script_element_base.h b/third_party/blink/renderer/core/script/script_element_base.h
index 1bd4334..5add711 100644
--- a/third_party/blink/renderer/core/script/script_element_base.h
+++ b/third_party/blink/renderer/core/script/script_element_base.h
@@ -26,7 +26,6 @@
 #include "third_party/blink/renderer/core/dom/create_element_flags.h"
 #include "third_party/blink/renderer/core/dom/dom_node_ids.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/core/script/script_runner.h b/third_party/blink/renderer/core/script/script_runner.h
index affdb1a..2654572 100644
--- a/third_party/blink/renderer/core/script/script_runner.h
+++ b/third_party/blink/renderer/core/script/script_runner.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_deque.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
diff --git a/third_party/blink/renderer/core/script/script_runner_test.cc b/third_party/blink/renderer/core/script/script_runner_test.cc
index 0dd071a..3556d3f 100644
--- a/third_party/blink/renderer/core/script/script_runner_test.cc
+++ b/third_party/blink/renderer/core/script/script_runner_test.cc
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/script/script.h"
 #include "third_party/blink/renderer/core/testing/dummy_page_holder.h"
 #include "third_party/blink/renderer/platform/bindings/runtime_call_stats.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.h"
 
diff --git a/third_party/blink/renderer/core/scroll/mac_scrollbar_animator.h b/third_party/blink/renderer/core/scroll/mac_scrollbar_animator.h
index 93f7df5..7eb6333 100644
--- a/third_party/blink/renderer/core/scroll/mac_scrollbar_animator.h
+++ b/third_party/blink/renderer/core/scroll/mac_scrollbar_animator.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 class ScrollableArea;
diff --git a/third_party/blink/renderer/core/scroll/mac_scrollbar_animator_impl.h b/third_party/blink/renderer/core/scroll/mac_scrollbar_animator_impl.h
index 28ab510..2527689 100644
--- a/third_party/blink/renderer/core/scroll/mac_scrollbar_animator_impl.h
+++ b/third_party/blink/renderer/core/scroll/mac_scrollbar_animator_impl.h
@@ -8,7 +8,7 @@
 #include "base/task/single_thread_task_runner.h"
 #include "third_party/blink/renderer/core/scroll/mac_scrollbar_animator.h"
 #include "third_party/blink/renderer/core/scroll/scroll_animator_base.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "ui/gfx/geometry/point_f.h"
diff --git a/third_party/blink/renderer/core/scroll/programmatic_scroll_animator.h b/third_party/blink/renderer/core/scroll/programmatic_scroll_animator.h
index 045bdbf0..5174d48b 100644
--- a/third_party/blink/renderer/core/scroll/programmatic_scroll_animator.h
+++ b/third_party/blink/renderer/core/scroll/programmatic_scroll_animator.h
@@ -8,7 +8,7 @@
 #include <memory>
 #include "third_party/blink/renderer/core/scroll/scroll_animator_compositor_coordinator.h"
 #include "third_party/blink/renderer/core/scroll/scrollable_area.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/scroll/scroll_animator_base.h b/third_party/blink/renderer/core/scroll/scroll_animator_base.h
index dcec872..52e3bd5d 100644
--- a/third_party/blink/renderer/core/scroll/scroll_animator_base.h
+++ b/third_party/blink/renderer/core/scroll/scroll_animator_base.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/scroll/scroll_animator_compositor_coordinator.h"
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
 #include "third_party/blink/renderer/core/scroll/scrollable_area.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/scroll/scroll_animator_compositor_coordinator.h b/third_party/blink/renderer/core/scroll/scroll_animator_compositor_coordinator.h
index 3cb9d31..03bbc18 100644
--- a/third_party/blink/renderer/core/scroll/scroll_animator_compositor_coordinator.h
+++ b/third_party/blink/renderer/core/scroll/scroll_animator_compositor_coordinator.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/platform/animation/compositor_animation_client.h"
 #include "third_party/blink/renderer/platform/animation/compositor_animation_delegate.h"
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "ui/gfx/animation/keyframe/animation_curve.h"
diff --git a/third_party/blink/renderer/core/scroll/scrollable_area.h b/third_party/blink/renderer/core/scroll/scrollable_area.h
index e39c4f94..af8b59c 100644
--- a/third_party/blink/renderer/core/scroll/scrollable_area.h
+++ b/third_party/blink/renderer/core/scroll/scrollable_area.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
 #include "third_party/blink/renderer/platform/graphics/overlay_scrollbar_clip_behavior.h"
 #include "third_party/blink/renderer/platform/heap/disallow_new_wrapper.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 #include "third_party/blink/renderer/platform/timer.h"
diff --git a/third_party/blink/renderer/core/scroll/scrollbar.h b/third_party/blink/renderer/core/scroll/scrollbar.h
index 22e35096..b0be448 100644
--- a/third_party/blink/renderer/core/scroll/scrollbar.h
+++ b/third_party/blink/renderer/core/scroll/scrollbar.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
 #include "third_party/blink/renderer/platform/graphics/paint/display_item_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 
diff --git a/third_party/blink/renderer/core/scroll/smooth_scroll_sequencer.h b/third_party/blink/renderer/core/scroll/smooth_scroll_sequencer.h
index 5687376..6066fd8 100644
--- a/third_party/blink/renderer/core/scroll/smooth_scroll_sequencer.h
+++ b/third_party/blink/renderer/core/scroll/smooth_scroll_sequencer.h
@@ -7,7 +7,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/streams/readable_stream_test.cc b/third_party/blink/renderer/core/streams/readable_stream_test.cc
index 18e5acd..fa13a83 100644
--- a/third_party/blink/renderer/core/streams/readable_stream_test.cc
+++ b/third_party/blink/renderer/core/streams/readable_stream_test.cc
@@ -25,7 +25,7 @@
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/string_resource.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/core/streams/underlying_source_base.h b/third_party/blink/renderer/core/streams/underlying_source_base.h
index 37c9446..653de469 100644
--- a/third_party/blink/renderer/core/streams/underlying_source_base.h
+++ b/third_party/blink/renderer/core/streams/underlying_source_base.h
@@ -14,7 +14,6 @@
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/streams/writable_stream_test.cc b/third_party/blink/renderer/core/streams/writable_stream_test.cc
index 909fc45a..cdd35b0 100644
--- a/third_party/blink/renderer/core/streams/writable_stream_test.cc
+++ b/third_party/blink/renderer/core/streams/writable_stream_test.cc
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/v8_binding.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/core/style/filter_operation.h b/third_party/blink/renderer/core/style/filter_operation.h
index 6127795..3108f91 100644
--- a/third_party/blink/renderer/core/style/filter_operation.h
+++ b/third_party/blink/renderer/core/style/filter_operation.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/platform/graphics/filters/fe_component_transfer.h"
 #include "third_party/blink/renderer/platform/graphics/filters/fe_convolve_matrix.h"
 #include "third_party/blink/renderer/platform/graphics/filters/fe_turbulence.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "ui/gfx/geometry/rect_f.h"
diff --git a/third_party/blink/renderer/core/style/style_filter_data.h b/third_party/blink/renderer/core/style/style_filter_data.h
index be87273..ec91c01 100644
--- a/third_party/blink/renderer/core/style/style_filter_data.h
+++ b/third_party/blink/renderer/core/style/style_filter_data.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_STYLE_FILTER_DATA_H_
 
 #include "third_party/blink/renderer/core/style/filter_operations.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/style_image.h b/third_party/blink/renderer/core/style/style_image.h
index 7b0447f..cef0447 100644
--- a/third_party/blink/renderer/core/style/style_image.h
+++ b/third_party/blink/renderer/core/style/style_image.h
@@ -26,7 +26,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/graphics/image_orientation.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace gfx {
diff --git a/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.h b/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.h
index 72276615..1ac97b9 100644
--- a/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.h
+++ b/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.h
@@ -28,7 +28,7 @@
 
 #include "third_party/blink/renderer/core/svg/animation/smil_time.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/svg/animation/smil_time_container.h b/third_party/blink/renderer/core/svg/animation/smil_time_container.h
index ef499525..ffbbc4d8 100644
--- a/third_party/blink/renderer/core/svg/animation/smil_time_container.h
+++ b/third_party/blink/renderer/core/svg/animation/smil_time_container.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/core/svg/animation/priority_queue.h"
 #include "third_party/blink/renderer/core/svg/animation/smil_time.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_counted_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/svg/animation/svg_smil_element.cc b/third_party/blink/renderer/core/svg/animation/svg_smil_element.cc
index e5c233e..7f2865b 100644
--- a/third_party/blink/renderer/core/svg/animation/svg_smil_element.cc
+++ b/third_party/blink/renderer/core/svg/animation/svg_smil_element.cc
@@ -40,7 +40,6 @@
 #include "third_party/blink/renderer/core/svg/svg_svg_element.h"
 #include "third_party/blink/renderer/core/svg/svg_uri_reference.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
diff --git a/third_party/blink/renderer/core/svg/animation/svg_smil_element.h b/third_party/blink/renderer/core/svg/animation/svg_smil_element.h
index 0b47881c..5d8208a9 100644
--- a/third_party/blink/renderer/core/svg/animation/svg_smil_element.h
+++ b/third_party/blink/renderer/core/svg/animation/svg_smil_element.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/svg/svg_element.h"
 #include "third_party/blink/renderer/core/svg/svg_tests.h"
 #include "third_party/blink/renderer/core/svg_names.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h b/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h
index a432434..b13e7aa 100644
--- a/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h
+++ b/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h
@@ -26,7 +26,7 @@
 #include "third_party/blink/renderer/platform/graphics/interpolation_space.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
diff --git a/third_party/blink/renderer/core/svg/linear_gradient_attributes.h b/third_party/blink/renderer/core/svg/linear_gradient_attributes.h
index cd3f57e..211821a 100644
--- a/third_party/blink/renderer/core/svg/linear_gradient_attributes.h
+++ b/third_party/blink/renderer/core/svg/linear_gradient_attributes.h
@@ -23,7 +23,6 @@
 #include "third_party/blink/renderer/core/svg/gradient_attributes.h"
 #include "third_party/blink/renderer/core/svg/svg_length.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/pattern_attributes.h b/third_party/blink/renderer/core/svg/pattern_attributes.h
index 590708489..b78bd758 100644
--- a/third_party/blink/renderer/core/svg/pattern_attributes.h
+++ b/third_party/blink/renderer/core/svg/pattern_attributes.h
@@ -23,7 +23,6 @@
 #include "third_party/blink/renderer/core/svg/svg_length.h"
 #include "third_party/blink/renderer/core/svg/svg_preserve_aspect_ratio.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/transforms/affine_transform.h"
 #include "ui/gfx/geometry/rect_f.h"
 
diff --git a/third_party/blink/renderer/core/svg/properties/svg_property.h b/third_party/blink/renderer/core/svg/properties/svg_property.h
index 9be4f33..7a7955a0 100644
--- a/third_party/blink/renderer/core/svg/properties/svg_property.h
+++ b/third_party/blink/renderer/core/svg/properties/svg_property.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_PROPERTIES_SVG_PROPERTY_H_
 
 #include "third_party/blink/renderer/core/svg/properties/svg_property_info.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/svg/svg_animate_element.h b/third_party/blink/renderer/core/svg/svg_animate_element.h
index d99d98d..f39f766 100644
--- a/third_party/blink/renderer/core/svg/svg_animate_element.h
+++ b/third_party/blink/renderer/core/svg/svg_animate_element.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/core/css/css_property_names.h"
 #include "third_party/blink/renderer/core/svg/svg_animation_element.h"
 #include "third_party/blink/renderer/core/svg_names.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_animated_angle.h b/third_party/blink/renderer/core/svg/svg_animated_angle.h
index cdb3db5..83b0a385 100644
--- a/third_party/blink/renderer/core/svg/svg_animated_angle.h
+++ b/third_party/blink/renderer/core/svg/svg_animated_angle.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/svg/svg_angle_tear_off.h"
 #include "third_party/blink/renderer/core/svg/svg_animated_enumeration.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_animated_integer.h b/third_party/blink/renderer/core/svg/svg_animated_integer.h
index c072f59d..c3f2c4b 100644
--- a/third_party/blink/renderer/core/svg/svg_animated_integer.h
+++ b/third_party/blink/renderer/core/svg/svg_animated_integer.h
@@ -35,7 +35,6 @@
 #include "third_party/blink/renderer/core/svg/svg_integer.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.h b/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.h
index 62b8272..d29d2b0 100644
--- a/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.h
+++ b/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_animated_integer.h"
 #include "third_party/blink/renderer/core/svg/svg_integer_optional_integer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_animated_number.h b/third_party/blink/renderer/core/svg/svg_animated_number.h
index 9b1ff9d4..09479e4 100644
--- a/third_party/blink/renderer/core/svg/svg_animated_number.h
+++ b/third_party/blink/renderer/core/svg/svg_animated_number.h
@@ -35,7 +35,6 @@
 #include "third_party/blink/renderer/core/svg/svg_number_tear_off.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.h b/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.h
index 80b0f23..472e5af1 100644
--- a/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.h
+++ b/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_animated_number.h"
 #include "third_party/blink/renderer/core/svg/svg_number_optional_number.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_circle_element.h b/third_party/blink/renderer/core/svg/svg_circle_element.h
index 7ae9436..5a6b2c3 100644
--- a/third_party/blink/renderer/core/svg/svg_circle_element.h
+++ b/third_party/blink/renderer/core/svg/svg_circle_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_CIRCLE_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_geometry_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_clip_path_element.h b/third_party/blink/renderer/core/svg/svg_clip_path_element.h
index e34bc62..7f764d7 100644
--- a/third_party/blink/renderer/core/svg/svg_clip_path_element.h
+++ b/third_party/blink/renderer/core/svg/svg_clip_path_element.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/core/svg/svg_animated_enumeration.h"
 #include "third_party/blink/renderer/core/svg/svg_graphics_element.h"
 #include "third_party/blink/renderer/core/svg/svg_unit_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.h b/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.h
index ec47151c..0cf9fe17 100644
--- a/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.h
+++ b/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/core/svg/svg_animated_enumeration.h"
 #include "third_party/blink/renderer/core/svg/svg_element.h"
 #include "third_party/blink/renderer/platform/graphics/filters/fe_component_transfer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_document_extensions.h b/third_party/blink/renderer/core/svg/svg_document_extensions.h
index 8e37da9..fed22a8 100644
--- a/third_party/blink/renderer/core/svg/svg_document_extensions.h
+++ b/third_party/blink/renderer/core/svg/svg_document_extensions.h
@@ -24,7 +24,7 @@
 #include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "ui/gfx/geometry/point_f.h"
diff --git a/third_party/blink/renderer/core/svg/svg_element.h b/third_party/blink/renderer/core/svg/svg_element.h
index 5ff81ea..d5d1aecfe 100644
--- a/third_party/blink/renderer/core/svg/svg_element.h
+++ b/third_party/blink/renderer/core/svg/svg_element.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/svg/properties/svg_property_info.h"
 #include "third_party/blink/renderer/core/svg/svg_parsing_error.h"
 #include "third_party/blink/renderer/core/svg_names.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/core/svg/svg_element_rare_data.h b/third_party/blink/renderer/core/svg/svg_element_rare_data.h
index f06f79e..69433d4 100644
--- a/third_party/blink/renderer/core/svg/svg_element_rare_data.h
+++ b/third_party/blink/renderer/core/svg/svg_element_rare_data.h
@@ -22,7 +22,7 @@
 
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/core/svg/svg_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/transforms/affine_transform.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
diff --git a/third_party/blink/renderer/core/svg/svg_ellipse_element.h b/third_party/blink/renderer/core/svg/svg_ellipse_element.h
index 300bcd3..45afc309 100644
--- a/third_party/blink/renderer/core/svg/svg_ellipse_element.h
+++ b/third_party/blink/renderer/core/svg/svg_ellipse_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_ELLIPSE_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_geometry_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_blend_element.h b/third_party/blink/renderer/core/svg/svg_fe_blend_element.h
index 025980f..b59f3f9 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_blend_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_blend_element.h
@@ -23,7 +23,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_animated_enumeration.h"
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.h b/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.h
index 00deed6f..cc80808 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/core/svg/svg_animated_enumeration.h"
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
 #include "third_party/blink/renderer/platform/graphics/filters/fe_color_matrix.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.h b/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.h
index 676b1ea..54a3ba5 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_FE_COMPONENT_TRANSFER_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_composite_element.h b/third_party/blink/renderer/core/svg/svg_fe_composite_element.h
index 4c5730b..96dce3e2 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_composite_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_composite_element.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/core/svg/svg_animated_enumeration.h"
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
 #include "third_party/blink/renderer/platform/graphics/filters/fe_composite.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.h b/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.h
index 5c92d57..26fad2c 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.h
@@ -23,7 +23,7 @@
 #include "third_party/blink/renderer/core/svg/svg_animated_enumeration.h"
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
 #include "third_party/blink/renderer/platform/graphics/filters/fe_convolve_matrix.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.h b/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.h
index bcac4ab4..82d06d5 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.h
@@ -23,7 +23,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_FE_DIFFUSE_LIGHTING_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.h b/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.h
index 7ec6411..0dfc176 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.h
@@ -23,7 +23,7 @@
 #include "third_party/blink/renderer/core/svg/svg_animated_enumeration.h"
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
 #include "third_party/blink/renderer/platform/graphics/filters/fe_displacement_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.h b/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.h
index d56f7c1..e69bde8 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.h
@@ -21,7 +21,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_FE_DROP_SHADOW_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.h b/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.h
index 63858358..ba1f75f7 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_FE_GAUSSIAN_BLUR_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_image_element.h b/third_party/blink/renderer/core/svg/svg_fe_image_element.h
index 69310fcb..cf63453 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_image_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_image_element.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/core/loader/resource/image_resource_observer.h"
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
 #include "third_party/blink/renderer/core/svg/svg_uri_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/svg/svg_fe_light_element.h b/third_party/blink/renderer/core/svg/svg_fe_light_element.h
index 0e78191..5b3d6ff 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_light_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_light_element.h
@@ -25,7 +25,7 @@
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/core/svg/svg_element.h"
 #include "third_party/blink/renderer/core/svg_names.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace gfx {
 class Point3F;
diff --git a/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.h b/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.h
index eb29bff..a1ccd03 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_FE_MERGE_NODE_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_morphology_element.h b/third_party/blink/renderer/core/svg/svg_fe_morphology_element.h
index 8c579ff8..df73013 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_morphology_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_morphology_element.h
@@ -23,7 +23,7 @@
 #include "third_party/blink/renderer/core/svg/svg_animated_enumeration.h"
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
 #include "third_party/blink/renderer/platform/graphics/filters/fe_morphology.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_offset_element.h b/third_party/blink/renderer/core/svg/svg_fe_offset_element.h
index b72050e..cccaaac 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_offset_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_offset_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_FE_OFFSET_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.h b/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.h
index b12a250..b997d25 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.h
@@ -23,7 +23,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_FE_SPECULAR_LIGHTING_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_tile_element.h b/third_party/blink/renderer/core/svg/svg_fe_tile_element.h
index e7a2b10..2ee2199 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_tile_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_tile_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_FE_TILE_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.h b/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.h
index c9af372..75f87e5c 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.h
+++ b/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/core/svg/svg_animated_enumeration.h"
 #include "third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h"
 #include "third_party/blink/renderer/platform/graphics/filters/fe_turbulence.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_filter_element.h b/third_party/blink/renderer/core/svg/svg_filter_element.h
index f98ad53..64404e4 100644
--- a/third_party/blink/renderer/core/svg/svg_filter_element.h
+++ b/third_party/blink/renderer/core/svg/svg_filter_element.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/core/svg/svg_element.h"
 #include "third_party/blink/renderer/core/svg/svg_unit_types.h"
 #include "third_party/blink/renderer/core/svg/svg_uri_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h b/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h
index f2af3db8..9a0ed982 100644
--- a/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h
+++ b/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h
@@ -23,7 +23,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_element.h"
 #include "third_party/blink/renderer/core/svg/svg_unit_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace gfx {
 class RectF;
diff --git a/third_party/blink/renderer/core/svg/svg_foreign_object_element.h b/third_party/blink/renderer/core/svg/svg_foreign_object_element.h
index 44ab35e..4c1133ea 100644
--- a/third_party/blink/renderer/core/svg/svg_foreign_object_element.h
+++ b/third_party/blink/renderer/core/svg/svg_foreign_object_element.h
@@ -21,7 +21,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_FOREIGN_OBJECT_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_graphics_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_gradient_element.h b/third_party/blink/renderer/core/svg/svg_gradient_element.h
index b2652df..96fc971 100644
--- a/third_party/blink/renderer/core/svg/svg_gradient_element.h
+++ b/third_party/blink/renderer/core/svg/svg_gradient_element.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/core/svg/svg_uri_reference.h"
 #include "third_party/blink/renderer/core/svg_names.h"
 #include "third_party/blink/renderer/platform/graphics/gradient.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_graphics_element.h b/third_party/blink/renderer/core/svg/svg_graphics_element.h
index ecef7003..1d93fb4 100644
--- a/third_party/blink/renderer/core/svg/svg_graphics_element.h
+++ b/third_party/blink/renderer/core/svg/svg_graphics_element.h
@@ -25,7 +25,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/svg/svg_element.h"
 #include "third_party/blink/renderer/core/svg/svg_tests.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_image_element.h b/third_party/blink/renderer/core/svg/svg_image_element.h
index 5dcd827a..53ba450 100644
--- a/third_party/blink/renderer/core/svg/svg_image_element.h
+++ b/third_party/blink/renderer/core/svg/svg_image_element.h
@@ -26,7 +26,7 @@
 #include "third_party/blink/renderer/core/svg/svg_graphics_element.h"
 #include "third_party/blink/renderer/core/svg/svg_image_loader.h"
 #include "third_party/blink/renderer/core/svg/svg_uri_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_length.h b/third_party/blink/renderer/core/svg/svg_length.h
index d23594f3..807c1453 100644
--- a/third_party/blink/renderer/core/svg/svg_length.h
+++ b/third_party/blink/renderer/core/svg/svg_length.h
@@ -27,7 +27,7 @@
 #include "third_party/blink/renderer/core/svg/properties/svg_listable_property.h"
 #include "third_party/blink/renderer/core/svg/svg_length_context.h"
 #include "third_party/blink/renderer/core/svg/svg_parsing_error.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/svg/svg_line_element.h b/third_party/blink/renderer/core/svg/svg_line_element.h
index 72f49ec7..573f89dd 100644
--- a/third_party/blink/renderer/core/svg/svg_line_element.h
+++ b/third_party/blink/renderer/core/svg/svg_line_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_LINE_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_geometry_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_linear_gradient_element.h b/third_party/blink/renderer/core/svg/svg_linear_gradient_element.h
index fbd14b1..092ac08 100644
--- a/third_party/blink/renderer/core/svg/svg_linear_gradient_element.h
+++ b/third_party/blink/renderer/core/svg/svg_linear_gradient_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_LINEAR_GRADIENT_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_gradient_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_marker_element.h b/third_party/blink/renderer/core/svg/svg_marker_element.h
index 4062b26..67a8f4e 100644
--- a/third_party/blink/renderer/core/svg/svg_marker_element.h
+++ b/third_party/blink/renderer/core/svg/svg_marker_element.h
@@ -26,7 +26,7 @@
 #include "third_party/blink/renderer/core/svg/svg_animated_enumeration.h"
 #include "third_party/blink/renderer/core/svg/svg_element.h"
 #include "third_party/blink/renderer/core/svg/svg_fit_to_view_box.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_mask_element.h b/third_party/blink/renderer/core/svg/svg_mask_element.h
index f008ac7..98e80350 100644
--- a/third_party/blink/renderer/core/svg/svg_mask_element.h
+++ b/third_party/blink/renderer/core/svg/svg_mask_element.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/core/svg/svg_element.h"
 #include "third_party/blink/renderer/core/svg/svg_tests.h"
 #include "third_party/blink/renderer/core/svg/svg_unit_types.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_number_optional_number.h b/third_party/blink/renderer/core/svg/svg_number_optional_number.h
index 5cab29c..1047c3f 100644
--- a/third_party/blink/renderer/core/svg/svg_number_optional_number.h
+++ b/third_party/blink/renderer/core/svg/svg_number_optional_number.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_number.h"
 #include "third_party/blink/renderer/core/svg/svg_parsing_error.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/svg/svg_path_element.h b/third_party/blink/renderer/core/svg/svg_path_element.h
index 78e5f77..acb1f8f 100644
--- a/third_party/blink/renderer/core/svg/svg_path_element.h
+++ b/third_party/blink/renderer/core/svg/svg_path_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_PATH_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_geometry_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_pattern_element.h b/third_party/blink/renderer/core/svg/svg_pattern_element.h
index 4458010..6a0023e 100644
--- a/third_party/blink/renderer/core/svg/svg_pattern_element.h
+++ b/third_party/blink/renderer/core/svg/svg_pattern_element.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/core/svg/svg_tests.h"
 #include "third_party/blink/renderer/core/svg/svg_unit_types.h"
 #include "third_party/blink/renderer/core/svg/svg_uri_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_poly_element.h b/third_party/blink/renderer/core/svg/svg_poly_element.h
index 6c83fbe..1677c75 100644
--- a/third_party/blink/renderer/core/svg/svg_poly_element.h
+++ b/third_party/blink/renderer/core/svg/svg_poly_element.h
@@ -23,7 +23,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_geometry_element.h"
 #include "third_party/blink/renderer/core/svg_names.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_radial_gradient_element.h b/third_party/blink/renderer/core/svg/svg_radial_gradient_element.h
index feeb533..54c09f13 100644
--- a/third_party/blink/renderer/core/svg/svg_radial_gradient_element.h
+++ b/third_party/blink/renderer/core/svg/svg_radial_gradient_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_RADIAL_GRADIENT_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_gradient_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_rect_element.h b/third_party/blink/renderer/core/svg/svg_rect_element.h
index 92954722..b5932a8 100644
--- a/third_party/blink/renderer/core/svg/svg_rect_element.h
+++ b/third_party/blink/renderer/core/svg/svg_rect_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_RECT_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_geometry_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_resource.h b/third_party/blink/renderer/core/svg/svg_resource.h
index 5cf9e7e..d591682f 100644
--- a/third_party/blink/renderer/core/svg/svg_resource.h
+++ b/third_party/blink/renderer/core/svg/svg_resource.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_RESOURCE_H_
 
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_client.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/core/svg/svg_script_element.h b/third_party/blink/renderer/core/svg/svg_script_element.h
index 5c1727f..b49245c 100644
--- a/third_party/blink/renderer/core/svg/svg_script_element.h
+++ b/third_party/blink/renderer/core/svg/svg_script_element.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/core/svg/svg_uri_reference.h"
 #include "third_party/blink/renderer/core/svg_names.h"
 #include "third_party/blink/renderer/platform/bindings/parkable_string.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_static_string_list.h b/third_party/blink/renderer/core/svg/svg_static_string_list.h
index 9754e11..bd08cf0 100644
--- a/third_party/blink/renderer/core/svg/svg_static_string_list.h
+++ b/third_party/blink/renderer/core/svg/svg_static_string_list.h
@@ -34,7 +34,6 @@
 #include "third_party/blink/renderer/core/svg/properties/svg_animated_property.h"
 #include "third_party/blink/renderer/core/svg/svg_string_list_tear_off.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_stop_element.h b/third_party/blink/renderer/core/svg/svg_stop_element.h
index 86c7c33..37ca59f4 100644
--- a/third_party/blink/renderer/core/svg/svg_stop_element.h
+++ b/third_party/blink/renderer/core/svg/svg_stop_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_STOP_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_style_element.h b/third_party/blink/renderer/core/svg/svg_style_element.h
index f57c5d1..68bfc05 100644
--- a/third_party/blink/renderer/core/svg/svg_style_element.h
+++ b/third_party/blink/renderer/core/svg/svg_style_element.h
@@ -23,7 +23,7 @@
 
 #include "third_party/blink/renderer/core/css/style_element.h"
 #include "third_party/blink/renderer/core/svg/svg_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_svg_element.h b/third_party/blink/renderer/core/svg/svg_svg_element.h
index 203d426..64dedb07ac 100644
--- a/third_party/blink/renderer/core/svg/svg_svg_element.h
+++ b/third_party/blink/renderer/core/svg/svg_svg_element.h
@@ -26,7 +26,7 @@
 #include "third_party/blink/renderer/core/svg/svg_graphics_element.h"
 #include "third_party/blink/renderer/core/svg/svg_point.h"
 #include "third_party/blink/renderer/core/svg/svg_zoom_and_pan.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "ui/gfx/geometry/vector2d_f.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/svg/svg_text_content_element.h b/third_party/blink/renderer/core/svg/svg_text_content_element.h
index 348ed4e..f75e74e 100644
--- a/third_party/blink/renderer/core/svg/svg_text_content_element.h
+++ b/third_party/blink/renderer/core/svg/svg_text_content_element.h
@@ -23,7 +23,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_animated_enumeration.h"
 #include "third_party/blink/renderer/core/svg/svg_graphics_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_text_path_element.h b/third_party/blink/renderer/core/svg/svg_text_path_element.h
index 35b72fd..3787e106 100644
--- a/third_party/blink/renderer/core/svg/svg_text_path_element.h
+++ b/third_party/blink/renderer/core/svg/svg_text_path_element.h
@@ -22,7 +22,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_text_content_element.h"
 #include "third_party/blink/renderer/core/svg/svg_uri_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_text_positioning_element.h b/third_party/blink/renderer/core/svg/svg_text_positioning_element.h
index b5ca552..67353690 100644
--- a/third_party/blink/renderer/core/svg/svg_text_positioning_element.h
+++ b/third_party/blink/renderer/core/svg/svg_text_positioning_element.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_TEXT_POSITIONING_ELEMENT_H_
 
 #include "third_party/blink/renderer/core/svg/svg_text_content_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_tree_scope_resources.h b/third_party/blink/renderer/core/svg/svg_tree_scope_resources.h
index 584cf9a..3f48879 100644
--- a/third_party/blink/renderer/core/svg/svg_tree_scope_resources.h
+++ b/third_party/blink/renderer/core/svg/svg_tree_scope_resources.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_TREE_SCOPE_RESOURCES_H_
 
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
diff --git a/third_party/blink/renderer/core/svg/svg_use_element.h b/third_party/blink/renderer/core/svg/svg_use_element.h
index afebf94..31adf03 100644
--- a/third_party/blink/renderer/core/svg/svg_use_element.h
+++ b/third_party/blink/renderer/core/svg/svg_use_element.h
@@ -27,7 +27,7 @@
 #include "third_party/blink/renderer/core/svg/svg_geometry_element.h"
 #include "third_party/blink/renderer/core/svg/svg_graphics_element.h"
 #include "third_party/blink/renderer/core/svg/svg_uri_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_client.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/svg/svg_view_element.h b/third_party/blink/renderer/core/svg/svg_view_element.h
index 073cf7d..b3e4045 100644
--- a/third_party/blink/renderer/core/svg/svg_view_element.h
+++ b/third_party/blink/renderer/core/svg/svg_view_element.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/core/svg/svg_element.h"
 #include "third_party/blink/renderer/core/svg/svg_fit_to_view_box.h"
 #include "third_party/blink/renderer/core/svg/svg_zoom_and_pan.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/testing/dummy_modulator.h b/third_party/blink/renderer/core/testing/dummy_modulator.h
index 18c6b11..d7e3e8e8 100644
--- a/third_party/blink/renderer/core/testing/dummy_modulator.h
+++ b/third_party/blink/renderer/core/testing/dummy_modulator.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/module_request.h"
 #include "third_party/blink/renderer/core/script/import_map_error.h"
 #include "third_party/blink/renderer/core/script/modulator.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/testing/hit_test_layer_rect.h b/third_party/blink/renderer/core/testing/hit_test_layer_rect.h
index 187b338..d4628a0 100644
--- a/third_party/blink/renderer/core/testing/hit_test_layer_rect.h
+++ b/third_party/blink/renderer/core/testing/hit_test_layer_rect.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/dom/node.h"
 #include "third_party/blink/renderer/core/geometry/dom_rect_read_only.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/testing/hit_test_layer_rect_list.h b/third_party/blink/renderer/core/testing/hit_test_layer_rect_list.h
index 82e068ba..f80d744 100644
--- a/third_party/blink/renderer/core/testing/hit_test_layer_rect_list.h
+++ b/third_party/blink/renderer/core/testing/hit_test_layer_rect_list.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/testing/internal_settings.h b/third_party/blink/renderer/core/testing/internal_settings.h
index 352e078..967e901 100644
--- a/third_party/blink/renderer/core/testing/internal_settings.h
+++ b/third_party/blink/renderer/core/testing/internal_settings.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/public/mojom/webpreferences/web_preferences.mojom-blink.h"
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/core/testing/internal_settings_generated.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "ui/gfx/geometry/size.h"
diff --git a/third_party/blink/renderer/core/testing/internals.cc b/third_party/blink/renderer/core/testing/internals.cc
index 3a846b13..56e6612 100644
--- a/third_party/blink/renderer/core/testing/internals.cc
+++ b/third_party/blink/renderer/core/testing/internals.cc
@@ -176,7 +176,6 @@
 #include "third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h"
 #include "third_party/blink/renderer/platform/graphics/paint/raster_invalidation_tracking.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/instrumentation/instance_counters.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/language.h"
diff --git a/third_party/blink/renderer/core/testing/internals.h b/third_party/blink/renderer/core/testing/internals.h
index 37ae39e..260219e 100644
--- a/third_party/blink/renderer/core/testing/internals.h
+++ b/third_party/blink/renderer/core/testing/internals.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/testing/null_execution_context.h b/third_party/blink/renderer/core/testing/null_execution_context.h
index 00f482a9..699b2d0 100644
--- a/third_party/blink/renderer/core/testing/null_execution_context.h
+++ b/third_party/blink/renderer/core/testing/null_execution_context.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/inspector/console_message.h"
 #include "third_party/blink/renderer/core/inspector/inspector_audits_issue.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/testing/record_test.h b/third_party/blink/renderer/core/testing/record_test.h
index 458b9e3..96ac6f1 100644
--- a/third_party/blink/renderer/core/testing/record_test.h
+++ b/third_party/blink/renderer/core/testing/record_test.h
@@ -10,7 +10,7 @@
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/testing/sequence_test.h b/third_party/blink/renderer/core/testing/sequence_test.h
index e5f476e..73e17114 100644
--- a/third_party/blink/renderer/core/testing/sequence_test.h
+++ b/third_party/blink/renderer/core/testing/sequence_test.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/v8_food_enum.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/timing/dom_window_performance.h b/third_party/blink/renderer/core/timing/dom_window_performance.h
index bcb8383..ea953925 100644
--- a/third_party/blink/renderer/core/timing/dom_window_performance.h
+++ b/third_party/blink/renderer/core/timing/dom_window_performance.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/timing/window_performance.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/timing/performance.h b/third_party/blink/renderer/core/timing/performance.h
index 3cedaa19..711c95f 100644
--- a/third_party/blink/renderer/core/timing/performance.h
+++ b/third_party/blink/renderer/core/timing/performance.h
@@ -43,7 +43,7 @@
 #include "third_party/blink/renderer/core/timing/performance_paint_timing.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_deque.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/core/timing/performance_long_task_timing.h b/third_party/blink/renderer/core/timing/performance_long_task_timing.h
index 3bdb3fed..4d0dc2b 100644
--- a/third_party/blink/renderer/core/timing/performance_long_task_timing.h
+++ b/third_party/blink/renderer/core/timing/performance_long_task_timing.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/timing/performance_entry.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/timing/performance_navigation.h b/third_party/blink/renderer/core/timing/performance_navigation.h
index 1ddafc4..d4adbba2 100644
--- a/third_party/blink/renderer/core/timing/performance_navigation.h
+++ b/third_party/blink/renderer/core/timing/performance_navigation.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/timing/performance_observer.h b/third_party/blink/renderer/core/timing/performance_observer.h
index c79da407..7ed232c 100644
--- a/third_party/blink/renderer/core/timing/performance_observer.h
+++ b/third_party/blink/renderer/core/timing/performance_observer.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_state_observer.h"
 #include "third_party/blink/renderer/core/timing/performance_entry.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/timing/performance_observer_entry_list.h b/third_party/blink/renderer/core/timing/performance_observer_entry_list.h
index e4461f0..253f5748 100644
--- a/third_party/blink/renderer/core/timing/performance_observer_entry_list.h
+++ b/third_party/blink/renderer/core/timing/performance_observer_entry_list.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
diff --git a/third_party/blink/renderer/core/timing/performance_resource_timing.h b/third_party/blink/renderer/core/timing/performance_resource_timing.h
index 5ad10e6..c682729 100644
--- a/third_party/blink/renderer/core/timing/performance_resource_timing.h
+++ b/third_party/blink/renderer/core/timing/performance_resource_timing.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/timing/performance_entry.h"
 #include "third_party/blink/renderer/core/timing/performance_server_timing.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/timing/performance_timing.h b/third_party/blink/renderer/core/timing/performance_timing.h
index 7f983ef..f0e7d22 100644
--- a/third_party/blink/renderer/core/timing/performance_timing.h
+++ b/third_party/blink/renderer/core/timing/performance_timing.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/traced_value.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/timing/task_attribution_timing.h b/third_party/blink/renderer/core/timing/task_attribution_timing.h
index 7f33034e..c73d4fcd 100644
--- a/third_party/blink/renderer/core/timing/task_attribution_timing.h
+++ b/third_party/blink/renderer/core/timing/task_attribution_timing.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_TIMING_TASK_ATTRIBUTION_TIMING_H_
 
 #include "third_party/blink/renderer/core/timing/performance_entry.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/timing/worker_global_scope_performance.h b/third_party/blink/renderer/core/timing/worker_global_scope_performance.h
index 3c2b71e..51fc0b0 100644
--- a/third_party/blink/renderer/core/timing/worker_global_scope_performance.h
+++ b/third_party/blink/renderer/core/timing/worker_global_scope_performance.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/timing/worker_performance.h"
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/timing/worker_performance.h b/third_party/blink/renderer/core/timing/worker_performance.h
index e5b79862..24a5102 100644
--- a/third_party/blink/renderer/core/timing/worker_performance.h
+++ b/third_party/blink/renderer/core/timing/worker_performance.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/timing/performance.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h b/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h
index 87dc4f2..5db1dbe 100644
--- a/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h
+++ b/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h
@@ -8,7 +8,7 @@
 #include <type_traits>
 
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer_view.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/type_traits.h"
 
diff --git a/third_party/blink/renderer/core/url/dom_url.h b/third_party/blink/renderer/core/url/dom_url.h
index 5e2fff4b..e002458 100644
--- a/third_party/blink/renderer/core/url/dom_url.h
+++ b/third_party/blink/renderer/core/url/dom_url.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/url/dom_url_utils.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
diff --git a/third_party/blink/renderer/core/url/url_search_params.h b/third_party/blink/renderer/core/url/url_search_params.h
index 7f18f80..e91a07a 100644
--- a/third_party/blink/renderer/core/url/url_search_params.h
+++ b/third_party/blink/renderer/core/url/url_search_params.h
@@ -11,7 +11,7 @@
 #include "base/gtest_prod_util.h"
 #include "third_party/blink/renderer/bindings/core/v8/iterable.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/network/encoded_form_data.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/core/workers/abstract_worker.h b/third_party/blink/renderer/core/workers/abstract_worker.h
index 024a42c..894da8a 100644
--- a/third_party/blink/renderer/core/workers/abstract_worker.h
+++ b/third_party/blink/renderer/core/workers/abstract_worker.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_listener.h"
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_state_observer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.h b/third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.h
index 32f8a05c..7cbae61b 100644
--- a/third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.h
+++ b/third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.h
@@ -17,7 +17,7 @@
 #include "third_party/blink/renderer/core/workers/global_scope_creation_params.h"
 #include "third_party/blink/renderer/core/workers/threaded_messaging_proxy_base.h"
 #include "third_party/blink/renderer/core/workers/worker_backing_thread_startup_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/workers/parent_execution_context_task_runners.h b/third_party/blink/renderer/core/workers/parent_execution_context_task_runners.h
index d34d687..bbf3eb5 100644
--- a/third_party/blink/renderer/core/workers/parent_execution_context_task_runners.h
+++ b/third_party/blink/renderer/core/workers/parent_execution_context_task_runners.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/task_type_traits.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/threading_primitives.h"
diff --git a/third_party/blink/renderer/core/workers/shared_worker.h b/third_party/blink/renderer/core/workers/shared_worker.h
index 2198b064..3f990b2f 100644
--- a/third_party/blink/renderer/core/workers/shared_worker.h
+++ b/third_party/blink/renderer/core/workers/shared_worker.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/workers/abstract_worker.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope.h b/third_party/blink/renderer/core/workers/shared_worker_global_scope.h
index 2e730ae62..4fef3ef2 100644
--- a/third_party/blink/renderer/core/workers/shared_worker_global_scope.h
+++ b/third_party/blink/renderer/core/workers/shared_worker_global_scope.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/workers/global_scope_creation_params.h"
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.h b/third_party/blink/renderer/core/workers/worker_global_scope.h
index c6add2fa..ee776192 100644
--- a/third_party/blink/renderer/core/workers/worker_global_scope.h
+++ b/third_party/blink/renderer/core/workers/worker_global_scope.h
@@ -45,7 +45,7 @@
 #include "third_party/blink/renderer/core/workers/worker_classic_script_loader.h"
 #include "third_party/blink/renderer/core/workers/worker_or_worklet_global_scope.h"
 #include "third_party/blink/renderer/core/workers/worker_settings.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/code_cache_host.h"
 #include "third_party/blink/renderer/platform/loader/fetch/url_loader/cached_metadata_handler.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
diff --git a/third_party/blink/renderer/core/workers/worker_thread_test_helper.h b/third_party/blink/renderer/core/workers/worker_thread_test_helper.h
index d0db12d..2c8d14a 100644
--- a/third_party/blink/renderer/core/workers/worker_thread_test_helper.h
+++ b/third_party/blink/renderer/core/workers/worker_thread_test_helper.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
 #include "third_party/blink/renderer/core/workers/worker_reporting_proxy.h"
 #include "third_party/blink/renderer/core/workers/worker_thread.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/network/content_security_policy_parsers.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/core/workers/worklet.h b/third_party/blink/renderer/core/workers/worklet.h
index 6b112f6e..9275e6d 100644
--- a/third_party/blink/renderer/core/workers/worklet.h
+++ b/third_party/blink/renderer/core/workers/worklet.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/workers/worklet_global_scope_proxy.h"
 #include "third_party/blink/renderer/core/workers/worklet_module_responses_map.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/workers/worklet_global_scope.h b/third_party/blink/renderer/core/workers/worklet_global_scope.h
index a239f9e9..c421276e 100644
--- a/third_party/blink/renderer/core/workers/worklet_global_scope.h
+++ b/third_party/blink/renderer/core/workers/worklet_global_scope.h
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/core/workers/worker_or_worklet_global_scope.h"
 #include "third_party/blink/renderer/core/workers/worklet_module_responses_map.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/code_cache_host.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
diff --git a/third_party/blink/renderer/core/xml/document_xslt.h b/third_party/blink/renderer/core/xml/document_xslt.h
index ea34ef4..899267d 100644
--- a/third_party/blink/renderer/core/xml/document_xslt.h
+++ b/third_party/blink/renderer/core/xml/document_xslt.h
@@ -7,7 +7,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/xml/dom_parser.h b/third_party/blink/renderer/core/xml/dom_parser.h
index 0b08ded..7c4c4f0 100644
--- a/third_party/blink/renderer/core/xml/dom_parser.h
+++ b/third_party/blink/renderer/core/xml/dom_parser.h
@@ -22,7 +22,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/xml/parser/xml_document_parser.h b/third_party/blink/renderer/core/xml/parser/xml_document_parser.h
index 04534eab..da76aaa 100644
--- a/third_party/blink/renderer/core/xml/parser/xml_document_parser.h
+++ b/third_party/blink/renderer/core/xml/parser/xml_document_parser.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/core/script/xml_parser_script_runner.h"
 #include "third_party/blink/renderer/core/script/xml_parser_script_runner_host.h"
 #include "third_party/blink/renderer/core/xml/parser/xml_errors.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_client.h"
 #include "third_party/blink/renderer/platform/text/segmented_string.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/core/xml/parser/xml_errors.h b/third_party/blink/renderer/core/xml/parser/xml_errors.h
index a6b22ff..3fc1078 100644
--- a/third_party/blink/renderer/core/xml/parser/xml_errors.h
+++ b/third_party/blink/renderer/core/xml/parser/xml_errors.h
@@ -29,7 +29,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_XML_PARSER_XML_ERRORS_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_XML_PARSER_XML_ERRORS_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
diff --git a/third_party/blink/renderer/core/xml/xml_serializer.h b/third_party/blink/renderer/core/xml/xml_serializer.h
index 754b42b..1cdda9c 100644
--- a/third_party/blink/renderer/core/xml/xml_serializer.h
+++ b/third_party/blink/renderer/core/xml/xml_serializer.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_XML_XML_SERIALIZER_H_
 
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/xml/xpath_evaluator.h b/third_party/blink/renderer/core/xml/xpath_evaluator.h
index cd932471..5de2cb4f 100644
--- a/third_party/blink/renderer/core/xml/xpath_evaluator.h
+++ b/third_party/blink/renderer/core/xml/xpath_evaluator.h
@@ -28,7 +28,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_XML_XPATH_EVALUATOR_H_
 
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/xml/xpath_functions_test.cc b/third_party/blink/renderer/core/xml/xpath_functions_test.cc
index 5739c3e7..78cf383 100644
--- a/third_party/blink/renderer/core/xml/xpath_functions_test.cc
+++ b/third_party/blink/renderer/core/xml/xpath_functions_test.cc
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/xml/xpath_predicate.h"  // Number, StringExpression
 #include "third_party/blink/renderer/core/xml/xpath_value.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"  // HeapVector, Member, etc.
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"  // HeapVector, Member, etc.
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #include <cmath>
diff --git a/third_party/blink/renderer/core/xml/xpath_result.h b/third_party/blink/renderer/core/xml/xpath_result.h
index 06dd453..4394261 100644
--- a/third_party/blink/renderer/core/xml/xpath_result.h
+++ b/third_party/blink/renderer/core/xml/xpath_result.h
@@ -29,7 +29,7 @@
 
 #include "third_party/blink/renderer/core/xml/xpath_value.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.h b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.h
index 1e93f54..7e0dfc4 100644
--- a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.h
+++ b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.h
@@ -42,7 +42,7 @@
 #include "third_party/blink/renderer/platform/bindings/exception_code.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_string.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_response.h"
 #include "third_party/blink/renderer/platform/network/encoded_form_data.h"
 #include "third_party/blink/renderer/platform/network/http_header_map.h"
diff --git a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_progress_event_throttle.h b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_progress_event_throttle.h
index cddf0e49..43e7373 100644
--- a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_progress_event_throttle.h
+++ b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_progress_event_throttle.h
@@ -28,7 +28,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_XMLHTTPREQUEST_XML_HTTP_REQUEST_PROGRESS_EVENT_THROTTLE_H_
 
 #include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_upload.h b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_upload.h
index 791ef575..6ebc47b2 100644
--- a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_upload.h
+++ b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_upload.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/core/xmlhttprequest/xml_http_request.h"
 #include "third_party/blink/renderer/core/xmlhttprequest/xml_http_request_event_target.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.h b/third_party/blink/renderer/modules/accessibility/ax_object.h
index 1582192..93849ca 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_object.h
@@ -45,7 +45,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
index b7837120..a1c39f24 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
@@ -45,7 +45,7 @@
 #include "third_party/blink/renderer/modules/accessibility/ax_object.h"
 #include "third_party/blink/renderer/modules/accessibility/inspector_accessibility_agent.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/modules/accessibility/testing/accessibility_selection_test.cc b/third_party/blink/renderer/modules/accessibility/testing/accessibility_selection_test.cc
index 402e1a0..01980150 100644
--- a/third_party/blink/renderer/modules/accessibility/testing/accessibility_selection_test.cc
+++ b/third_party/blink/renderer/modules/accessibility/testing/accessibility_selection_test.cc
@@ -21,7 +21,7 @@
 #include "third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h"
 #include "third_party/blink/renderer/modules/accessibility/ax_position.h"
 #include "third_party/blink/renderer/modules/accessibility/ax_selection.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
 #include "third_party/blink/renderer/platform/wtf/shared_buffer.h"
diff --git a/third_party/blink/renderer/modules/ad_auction/navigator_auction.h b/third_party/blink/renderer/modules/ad_auction/navigator_auction.h
index 9872e46..e4d0c36 100644
--- a/third_party/blink/renderer/modules/ad_auction/navigator_auction.h
+++ b/third_party/blink/renderer/modules/ad_auction/navigator_auction.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/public/mojom/interest_group/ad_auction_service.mojom-blink.h"
 #include "third_party/blink/renderer/core/frame/navigator.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/animationworklet/animation_worklet.h b/third_party/blink/renderer/modules/animationworklet/animation_worklet.h
index 62e19ce..80bea92 100644
--- a/third_party/blink/renderer/modules/animationworklet/animation_worklet.h
+++ b/third_party/blink/renderer/modules/animationworklet/animation_worklet.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/graphics/animation_worklet_mutators_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client.cc b/third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client.cc
index 64c3360f..8d3bf6f 100644
--- a/third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client.cc
+++ b/third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client.cc
@@ -188,7 +188,7 @@
   if (--next_global_scope_switch_countdown_ < 0) {
     int last_global_scope_index = current_global_scope_index_;
     current_global_scope_index_ =
-        (++current_global_scope_index_ % global_scopes_.size());
+        (current_global_scope_index_ + 1) % global_scopes_.size();
     global_scopes_[last_global_scope_index]->MigrateAnimatorsTo(
         global_scopes_[current_global_scope_index_]);
     // Introduce an element of randomness in the switching interval to make
diff --git a/third_party/blink/renderer/modules/animationworklet/animator.h b/third_party/blink/renderer/modules/animationworklet/animator.h
index 009a641..cbb68c0 100644
--- a/third_party/blink/renderer/modules/animationworklet/animator.h
+++ b/third_party/blink/renderer/modules/animationworklet/animator.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
 #include "third_party/blink/renderer/platform/graphics/animation_worklet_mutators_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/modules/animationworklet/animator_definition.h b/third_party/blink/renderer/modules/animationworklet/animator_definition.h
index f451e11..a2f6e77 100644
--- a/third_party/blink/renderer/modules/animationworklet/animator_definition.h
+++ b/third_party/blink/renderer/modules/animationworklet/animator_definition.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/animationworklet/css_animation_worklet.h b/third_party/blink/renderer/modules/animationworklet/css_animation_worklet.h
index ec2a16c9..19a1aed 100644
--- a/third_party/blink/renderer/modules/animationworklet/css_animation_worklet.h
+++ b/third_party/blink/renderer/modules/animationworklet/css_animation_worklet.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
 #include "third_party/blink/renderer/modules/animationworklet/animation_worklet.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.h b/third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.h
index 21c8dd62..0f8c0f0 100644
--- a/third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.h
+++ b/third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/html/media/audio_output_device_controller.h"
 #include "third_party/blink/renderer/core/html/media/html_media_element.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_bridge.h b/third_party/blink/renderer/modules/background_fetch/background_fetch_bridge.h
index 6acfd7c..11566e79 100644
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_bridge.h
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_bridge.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/mojom/background_fetch/background_fetch.mojom-blink.h"
 #include "third_party/blink/renderer/modules/service_worker/service_worker_registration.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_event.h b/third_party/blink/renderer/modules/background_fetch/background_fetch_event.h
index 5511bf93..ae680524 100644
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_event.h
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_event.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/public/mojom/background_fetch/background_fetch.mojom-blink-forward.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/service_worker/extendable_event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.h b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.h
index 075de0f3..508571e 100644
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.h
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.h
@@ -13,7 +13,6 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 
 class SkBitmap;
 
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_record.h b/third_party/blink/renderer/modules/background_fetch/background_fetch_record.h
index 584e0869..bb2097c 100644
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_record.h
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_record.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_property.h"
 #include "third_party/blink/renderer/core/dom/dom_exception.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.h b/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.h
index 7ddd036..d125b2a 100644
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.h
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.h
@@ -13,7 +13,6 @@
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/background_fetch/service_worker_registration_background_fetch.h b/third_party/blink/renderer/modules/background_fetch/service_worker_registration_background_fetch.h
index 9c4d8b3b..5ba60acd 100644
--- a/third_party/blink/renderer/modules/background_fetch/service_worker_registration_background_fetch.h
+++ b/third_party/blink/renderer/modules/background_fetch/service_worker_registration_background_fetch.h
@@ -7,7 +7,6 @@
 
 #include "third_party/blink/renderer/modules/service_worker/service_worker_registration.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/background_sync/periodic_sync_event.h b/third_party/blink/renderer/modules/background_sync/periodic_sync_event.h
index 1a54020..695c3f4 100644
--- a/third_party/blink/renderer/modules/background_sync/periodic_sync_event.h
+++ b/third_party/blink/renderer/modules/background_sync/periodic_sync_event.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/event_modules.h"
 #include "third_party/blink/renderer/modules/service_worker/extendable_event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/background_sync/service_worker_registration_sync.h b/third_party/blink/renderer/modules/background_sync/service_worker_registration_sync.h
index 8ff6ac5..7038eb6 100644
--- a/third_party/blink/renderer/modules/background_sync/service_worker_registration_sync.h
+++ b/third_party/blink/renderer/modules/background_sync/service_worker_registration_sync.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_BACKGROUND_SYNC_SERVICE_WORKER_REGISTRATION_SYNC_H_
 
 #include "third_party/blink/renderer/modules/service_worker/service_worker_registration.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/background_sync/sync_event.h b/third_party/blink/renderer/modules/background_sync/sync_event.h
index 3e96e7f3..cbb0f68 100644
--- a/third_party/blink/renderer/modules/background_sync/sync_event.h
+++ b/third_party/blink/renderer/modules/background_sync/sync_event.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/event_modules.h"
 #include "third_party/blink/renderer/modules/service_worker/extendable_event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/background_sync/sync_manager.h b/third_party/blink/renderer/modules/background_sync/sync_manager.h
index 2e03474..5947134 100644
--- a/third_party/blink/renderer/modules/background_sync/sync_manager.h
+++ b/third_party/blink/renderer/modules/background_sync/sync_manager.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/mojom/background_sync/background_sync.mojom-blink.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/battery/battery_manager.h b/third_party/blink/renderer/modules/battery/battery_manager.h
index bce6a79..2a08029 100644
--- a/third_party/blink/renderer/modules/battery/battery_manager.h
+++ b/third_party/blink/renderer/modules/battery/battery_manager.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/modules/battery/battery_dispatcher.h"
 #include "third_party/blink/renderer/modules/battery/battery_status.h"
 #include "third_party/blink/renderer/modules/event_target_modules.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/beacon/navigator_beacon.h b/third_party/blink/renderer/modules/beacon/navigator_beacon.h
index 06302d57..fe4b3660 100644
--- a/third_party/blink/renderer/modules/beacon/navigator_beacon.h
+++ b/third_party/blink/renderer/modules/beacon/navigator_beacon.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/bindings/core/v8/v8_typedefs.h"
 #include "third_party/blink/renderer/core/frame/navigator.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/bluetooth/bluetooth.h b/third_party/blink/renderer/modules/bluetooth/bluetooth.h
index b9afab29..f94d51d 100644
--- a/third_party/blink/renderer/modules/bluetooth/bluetooth.h
+++ b/third_party/blink/renderer/modules/bluetooth/bluetooth.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/modules/bluetooth/bluetooth_advertising_event.h"
 #include "third_party/blink/renderer/modules/bluetooth/bluetooth_device.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver_set.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
diff --git a/third_party/blink/renderer/modules/bluetooth/bluetooth_attribute_instance_map.h b/third_party/blink/renderer/modules/bluetooth/bluetooth_attribute_instance_map.h
index 1a822ef..43bf167b 100644
--- a/third_party/blink/renderer/modules/bluetooth/bluetooth_attribute_instance_map.h
+++ b/third_party/blink/renderer/modules/bluetooth/bluetooth_attribute_instance_map.h
@@ -9,7 +9,6 @@
 #include "third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_descriptor.h"
 #include "third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_service.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_characteristic.h b/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_characteristic.h
index 571e6c8..7b17fb7 100644
--- a/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_characteristic.h
+++ b/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_characteristic.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/modules/event_target_modules.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_descriptor.h b/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_descriptor.h
index 4ffda76..32e0044 100644
--- a/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_descriptor.h
+++ b/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_descriptor.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_service.h"
 #include "third_party/blink/renderer/modules/event_target_modules.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_service.h b/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_service.h
index 9b29ffc8..84ce190 100644
--- a/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_service.h
+++ b/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_service.h
@@ -10,7 +10,6 @@
 #include "third_party/blink/renderer/modules/bluetooth/bluetooth_device.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/cache_storage/global_cache_storage.cc b/third_party/blink/renderer/modules/cache_storage/global_cache_storage.cc
index 8d60f27..0a1f66e 100644
--- a/third_party/blink/renderer/modules/cache_storage/global_cache_storage.cc
+++ b/third_party/blink/renderer/modules/cache_storage/global_cache_storage.cc
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
 #include "third_party/blink/renderer/modules/cache_storage/cache_storage.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_gradient.h b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_gradient.h
index 25f07d1..84afc80 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_gradient.h
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_gradient.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/graphics/gradient.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
index d961d9d0..b2fa43b14 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
@@ -1448,8 +1448,8 @@
       mojom::blink::PageVisibilityState::kHidden,
       /*is_initial_state=*/false);
   blink::test::RunPendingTasks();  // Run hibernation task.
-  // If enabled, hibernation should cause compositing update.
-  EXPECT_EQ(!!CANVAS2D_HIBERNATION_ENABLED, box->NeedsPaintPropertyUpdate());
+  // If enabled, hibernation should cause repaint of the painting layer.
+  EXPECT_FALSE(box->NeedsPaintPropertyUpdate());
   EXPECT_EQ(!!CANVAS2D_HIBERNATION_ENABLED, painting_layer->SelfNeedsRepaint());
   EXPECT_EQ(!!CANVAS2D_HIBERNATION_ENABLED,
             !CanvasElement().ResourceProvider());
@@ -1459,11 +1459,11 @@
   GetDocument().View()->UpdateAllLifecyclePhasesExceptPaint(
       DocumentUpdateReason::kTest);
 
-  // Wake up again, which should request a compositing update synchronously.
+  // Wake up again, which should request repaint of the painting layer.
   GetDocument().GetPage()->SetVisibilityState(
       mojom::blink::PageVisibilityState::kVisible,
       /*is_initial_state=*/false);
-  EXPECT_EQ(!!CANVAS2D_HIBERNATION_ENABLED, box->NeedsPaintPropertyUpdate());
+  EXPECT_FALSE(box->NeedsPaintPropertyUpdate());
   EXPECT_EQ(!!CANVAS2D_HIBERNATION_ENABLED, painting_layer->SelfNeedsRepaint());
 }
 
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.h b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.h
index a2d04d9..1e16d35b 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.h
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.h
@@ -29,7 +29,7 @@
 
 #include "cc/paint/paint_flags.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h b/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h
index a13d3f7..ef53922 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/modules/canvas/canvas2d/canvas_path.h"
 #include "third_party/blink/renderer/modules/canvas/canvas2d/identifiability_study_helper.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/transforms/affine_transform.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/content_index/content_index_event.h b/third_party/blink/renderer/modules/content_index/content_index_event.h
index 912389a..16d6602 100644
--- a/third_party/blink/renderer/modules/content_index/content_index_event.h
+++ b/third_party/blink/renderer/modules/content_index/content_index_event.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/modules/event_modules.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/service_worker/extendable_event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/content_index/service_worker_registration_content_index.h b/third_party/blink/renderer/modules/content_index/service_worker_registration_content_index.h
index 7af7169c..1c1b956 100644
--- a/third_party/blink/renderer/modules/content_index/service_worker_registration_content_index.h
+++ b/third_party/blink/renderer/modules/content_index/service_worker_registration_content_index.h
@@ -7,7 +7,6 @@
 
 #include "third_party/blink/renderer/modules/service_worker/service_worker_registration.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_change_event.h b/third_party/blink/renderer/modules/cookie_store/cookie_change_event.h
index 68f35bcf..e37e659 100644
--- a/third_party/blink/renderer/modules/cookie_store/cookie_change_event.h
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_change_event.h
@@ -11,7 +11,7 @@
 #include "services/network/public/mojom/cookie_manager.mojom-blink-forward.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_cookie_list_item.h"
 #include "third_party/blink/renderer/modules/event_modules.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
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 f897df3..e6d41069 100644
--- a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
@@ -29,7 +29,6 @@
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.h b/third_party/blink/renderer/modules/cookie_store/cookie_store.h
index 3a37c02..e972da0 100644
--- a/third_party/blink/renderer/modules/cookie_store/cookie_store.h
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store_manager.cc b/third_party/blink/renderer/modules/cookie_store/cookie_store_manager.cc
index 5614fa1..5b78997 100644
--- a/third_party/blink/renderer/modules/cookie_store/cookie_store_manager.cc
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_store_manager.cc
@@ -21,7 +21,6 @@
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store_manager.h b/third_party/blink/renderer/modules/cookie_store/cookie_store_manager.h
index 071b04d..031a3550 100644
--- a/third_party/blink/renderer/modules/cookie_store/cookie_store_manager.h
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_store_manager.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/modules/service_worker/service_worker_registration.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
diff --git a/third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.h b/third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.h
index e25dccc0..761e86ec 100644
--- a/third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.h
+++ b/third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/modules/event_modules.h"
 #include "third_party/blink/renderer/modules/service_worker/extendable_event.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/cookie_store/global_cookie_store.cc b/third_party/blink/renderer/modules/cookie_store/global_cookie_store.cc
index 6f252c4..0e4d858 100644
--- a/third_party/blink/renderer/modules/cookie_store/global_cookie_store.cc
+++ b/third_party/blink/renderer/modules/cookie_store/global_cookie_store.cc
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
 #include "third_party/blink/renderer/modules/cookie_store/cookie_store.h"
 #include "third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/credentialmanager/authenticator_response.h b/third_party/blink/renderer/modules/credentialmanager/authenticator_response.h
index 880ae82..fc2aa9e 100644
--- a/third_party/blink/renderer/modules/credentialmanager/authenticator_response.h
+++ b/third_party/blink/renderer/modules/credentialmanager/authenticator_response.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/credentialmanager/credential.h b/third_party/blink/renderer/modules/credentialmanager/credential.h
index 740be80..67c4181e 100644
--- a/third_party/blink/renderer/modules/credentialmanager/credential.h
+++ b/third_party/blink/renderer/modules/credentialmanager/credential.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/credentialmanager/credential_manager_proxy.h b/third_party/blink/renderer/modules/credentialmanager/credential_manager_proxy.h
index 32b788a7..704ae8315 100644
--- a/third_party/blink/renderer/modules/credentialmanager/credential_manager_proxy.h
+++ b/third_party/blink/renderer/modules/credentialmanager/credential_manager_proxy.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/public/mojom/webid/federated_auth_response.mojom-blink.h"
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
diff --git a/third_party/blink/renderer/modules/credentialmanager/credentials_container.h b/third_party/blink/renderer/modules/credentialmanager/credentials_container.h
index abbf1ca..739038b 100644
--- a/third_party/blink/renderer/modules/credentialmanager/credentials_container.h
+++ b/third_party/blink/renderer/modules/credentialmanager/credentials_container.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/credentialmanager/public_key_credential.h b/third_party/blink/renderer/modules/credentialmanager/public_key_credential.h
index fb49a8f..78015ae 100644
--- a/third_party/blink/renderer/modules/credentialmanager/public_key_credential.h
+++ b/third_party/blink/renderer/modules/credentialmanager/public_key_credential.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/modules/credentialmanager/authenticator_response.h"
 #include "third_party/blink/renderer/modules/credentialmanager/credential.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/crypto/crypto.h b/third_party/blink/renderer/modules/crypto/crypto.h
index 5d2ab8c..25196b61 100644
--- a/third_party/blink/renderer/modules/crypto/crypto.h
+++ b/third_party/blink/renderer/modules/crypto/crypto.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h"
 #include "third_party/blink/renderer/modules/crypto/subtle_crypto.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/crypto/dom_window_crypto.h b/third_party/blink/renderer/modules/crypto/dom_window_crypto.h
index 451888c4..f174836 100644
--- a/third_party/blink/renderer/modules/crypto/dom_window_crypto.h
+++ b/third_party/blink/renderer/modules/crypto/dom_window_crypto.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_CRYPTO_DOM_WINDOW_CRYPTO_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_CRYPTO_DOM_WINDOW_CRYPTO_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/crypto/worker_global_scope_crypto.h b/third_party/blink/renderer/modules/crypto/worker_global_scope_crypto.h
index e67f5c8e..0293ce47 100644
--- a/third_party/blink/renderer/modules/crypto/worker_global_scope_crypto.h
+++ b/third_party/blink/renderer/modules/crypto/worker_global_scope_crypto.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_CRYPTO_WORKER_GLOBAL_SCOPE_CRYPTO_H_
 
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/csspaint/css_paint_definition.h b/third_party/blink/renderer/modules/csspaint/css_paint_definition.h
index 00ad87dd..6a89144 100644
--- a/third_party/blink/renderer/modules/csspaint/css_paint_definition.h
+++ b/third_party/blink/renderer/modules/csspaint/css_paint_definition.h
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_record.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 #include "ui/gfx/geometry/size_f.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/modules/csspaint/css_paint_image_generator_impl.h b/third_party/blink/renderer/modules/csspaint/css_paint_image_generator_impl.h
index 7bbddb1..206cc90 100644
--- a/third_party/blink/renderer/modules/csspaint/css_paint_image_generator_impl.h
+++ b/third_party/blink/renderer/modules/csspaint/css_paint_image_generator_impl.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/css/cssom/css_style_value.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/scoped_persistent.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "ui/gfx/geometry/size_f.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/modules/csspaint/nativepaint/native_paint_definition.h b/third_party/blink/renderer/modules/csspaint/nativepaint/native_paint_definition.h
index 82caa1e..2f7e937c 100644
--- a/third_party/blink/renderer/modules/csspaint/nativepaint/native_paint_definition.h
+++ b/third_party/blink/renderer/modules/csspaint/nativepaint/native_paint_definition.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/modules/csspaint/paint_definition.h"
 #include "third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/csspaint/paint_definition.h b/third_party/blink/renderer/modules/csspaint/paint_definition.h
index 5c434e2..1525a38 100644
--- a/third_party/blink/renderer/modules/csspaint/paint_definition.h
+++ b/third_party/blink/renderer/modules/csspaint/paint_definition.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_record.h"
 #include "third_party/blink/renderer/platform/graphics/platform_paint_worklet_layer_painter.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet.h b/third_party/blink/renderer/modules/csspaint/paint_worklet.h
index bba57e6..17fc9cf 100644
--- a/third_party/blink/renderer/modules/csspaint/paint_worklet.h
+++ b/third_party/blink/renderer/modules/csspaint/paint_worklet.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/modules/csspaint/paint_worklet_pending_generator_registry.h"
 #include "third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/device_orientation/device_motion_data.h b/third_party/blink/renderer/modules/device_orientation/device_motion_data.h
index 0c059a0..ec27221 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_motion_data.h
+++ b/third_party/blink/renderer/modules/device_orientation/device_motion_data.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_DEVICE_ORIENTATION_DEVICE_MOTION_DATA_H_
 
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/device_orientation/device_motion_event.h b/third_party/blink/renderer/modules/device_orientation/device_motion_event.h
index 73b44e6..c04a1ec 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_motion_event.h
+++ b/third_party/blink/renderer/modules/device_orientation/device_motion_event.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_DEVICE_ORIENTATION_DEVICE_MOTION_EVENT_H_
 
 #include "third_party/blink/renderer/modules/event_modules.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump.h b/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump.h
index 9b8fa86..421c01b4 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump.h
+++ b/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/device_orientation/device_orientation_data.h b/third_party/blink/renderer/modules/device_orientation/device_orientation_data.h
index dac2d2f..1f6bfe3 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_orientation_data.h
+++ b/third_party/blink/renderer/modules/device_orientation/device_orientation_data.h
@@ -28,7 +28,7 @@
 
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/device_orientation/device_orientation_event.h b/third_party/blink/renderer/modules/device_orientation/device_orientation_event.h
index e5c4b435..6b5236b 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_orientation_event.h
+++ b/third_party/blink/renderer/modules/device_orientation/device_orientation_event.h
@@ -28,7 +28,7 @@
 
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/modules/event_modules.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/device_orientation/device_orientation_event_pump.h b/third_party/blink/renderer/modules/device_orientation/device_orientation_event_pump.h
index 302e5fb..f6f1818 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_orientation_event_pump.h
+++ b/third_party/blink/renderer/modules/device_orientation/device_orientation_event_pump.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/device_orientation/device_sensor_entry.h b/third_party/blink/renderer/modules/device_orientation/device_sensor_entry.h
index 22d09d6e..b7016870 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_sensor_entry.h
+++ b/third_party/blink/renderer/modules/device_orientation/device_sensor_entry.h
@@ -8,7 +8,7 @@
 #include "services/device/public/mojom/sensor.mojom-blink-forward.h"
 #include "services/device/public/mojom/sensor_provider.mojom-blink.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
diff --git a/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h b/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h
index 7ef1704b..8f9f41b5 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h
+++ b/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h
@@ -8,7 +8,7 @@
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "services/device/public/mojom/sensor_provider.mojom-blink.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/timer.h"
diff --git a/third_party/blink/renderer/modules/device_posture/navigator_device_posture.h b/third_party/blink/renderer/modules/device_posture/navigator_device_posture.h
index af6d00a..61e7eb9 100644
--- a/third_party/blink/renderer/modules/device_posture/navigator_device_posture.h
+++ b/third_party/blink/renderer/modules/device_posture/navigator_device_posture.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_DEVICE_POSTURE_NAVIGATOR_DEVICE_POSTURE_H_
 
 #include "third_party/blink/renderer/core/frame/navigator.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/encryptedmedia/html_media_element_encrypted_media.h b/third_party/blink/renderer/modules/encryptedmedia/html_media_element_encrypted_media.h
index b497cf82..734ad342 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/html_media_element_encrypted_media.h
+++ b/third_party/blink/renderer/modules/encryptedmedia/html_media_element_encrypted_media.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/html/media/html_media_element.h"
 #include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace media {
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_key_session.h b/third_party/blink/renderer/modules/encryptedmedia/media_key_session.h
index 8f173f7c..7715232 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/media_key_session.h
+++ b/third_party/blink/renderer/modules/encryptedmedia/media_key_session.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/modules/encryptedmedia/media_key_status_map.h"
 #include "third_party/blink/renderer/modules/event_target_modules.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_deque.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/timer.h"
 
diff --git a/third_party/blink/renderer/modules/eventsource/event_source.h b/third_party/blink/renderer/modules/eventsource/event_source.h
index 4512214..ea86a552 100644
--- a/third_party/blink/renderer/modules/eventsource/event_source.h
+++ b/third_party/blink/renderer/modules/eventsource/event_source.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/core/loader/threadable_loader_client.h"
 #include "third_party/blink/renderer/modules/eventsource/event_source_parser.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
diff --git a/third_party/blink/renderer/modules/eventsource/event_source_parser.h b/third_party/blink/renderer/modules/eventsource/event_source_parser.h
index 841f384..b17a05a7 100644
--- a/third_party/blink/renderer/modules/eventsource/event_source_parser.h
+++ b/third_party/blink/renderer/modules/eventsource/event_source_parser.h
@@ -7,7 +7,7 @@
 
 #include <memory>
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_codec.h"
diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.h b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.h
index 8e66ce7b..225bebe 100644
--- a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.h
+++ b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.h
@@ -41,7 +41,7 @@
 #include "third_party/blink/renderer/core/workers/worker_clients.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/service_worker/service_worker_content_settings_proxy.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/file_system_access/file_system_access_file_delegate.h b/third_party/blink/renderer/modules/file_system_access/file_system_access_file_delegate.h
index 8c0d27a..b5b22f9 100644
--- a/third_party/blink/renderer/modules/file_system_access/file_system_access_file_delegate.h
+++ b/third_party/blink/renderer/modules/file_system_access/file_system_access_file_delegate.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/public/mojom/file_system_access/file_system_access_capacity_allocation_host.mojom-blink.h"
 #include "third_party/blink/public/mojom/file_system_access/file_system_access_file_handle.mojom-blink.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/file_system_access/file_system_access_incognito_file_delegate.cc b/third_party/blink/renderer/modules/file_system_access/file_system_access_incognito_file_delegate.cc
index 737b63b6..ed48512 100644
--- a/third_party/blink/renderer/modules/file_system_access/file_system_access_incognito_file_delegate.cc
+++ b/third_party/blink/renderer/modules/file_system_access/file_system_access_incognito_file_delegate.cc
@@ -15,7 +15,7 @@
 #include "third_party/blink/public/common/blob/blob_utils.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/modules/file_system_access/file_system_access_file_delegate.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_copier.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
diff --git a/third_party/blink/renderer/modules/file_system_access/file_system_access_incognito_file_delegate.h b/third_party/blink/renderer/modules/file_system_access/file_system_access_incognito_file_delegate.h
index a7d3083..5aeb838 100644
--- a/third_party/blink/renderer/modules/file_system_access/file_system_access_incognito_file_delegate.h
+++ b/third_party/blink/renderer/modules/file_system_access/file_system_access_incognito_file_delegate.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/public/mojom/file_system_access/file_system_access_file_handle.mojom-blink.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/modules/file_system_access/file_system_access_file_delegate.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/file_system_access/file_system_access_regular_file_delegate.cc b/third_party/blink/renderer/modules/file_system_access/file_system_access_regular_file_delegate.cc
index bf5d3bda..8bf940e 100644
--- a/third_party/blink/renderer/modules/file_system_access/file_system_access_regular_file_delegate.cc
+++ b/third_party/blink/renderer/modules/file_system_access/file_system_access_regular_file_delegate.cc
@@ -12,7 +12,7 @@
 #include "third_party/blink/public/mojom/file_system_access/file_system_access_file_handle.mojom-blink.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/modules/file_system_access/file_system_access_capacity_tracker.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
 #include "third_party/blink/renderer/platform/scheduler/public/worker_pool.h"
diff --git a/third_party/blink/renderer/modules/file_system_access/file_system_access_regular_file_delegate.h b/third_party/blink/renderer/modules/file_system_access/file_system_access_regular_file_delegate.h
index 6ecde8f..38f25f5f 100644
--- a/third_party/blink/renderer/modules/file_system_access/file_system_access_regular_file_delegate.h
+++ b/third_party/blink/renderer/modules/file_system_access/file_system_access_regular_file_delegate.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/modules/file_system_access/file_system_access_capacity_tracker.h"
 #include "third_party/blink/renderer/modules/file_system_access/file_system_access_file_delegate.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 
diff --git a/third_party/blink/renderer/modules/file_system_access/file_system_handle.h b/third_party/blink/renderer/modules/file_system_access/file_system_handle.h
index bd7dffd..db69668 100644
--- a/third_party/blink/renderer/modules/file_system_access/file_system_handle.h
+++ b/third_party/blink/renderer/modules/file_system_access/file_system_handle.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/filesystem/directory_entry.h b/third_party/blink/renderer/modules/filesystem/directory_entry.h
index fffc809..2a3715e 100644
--- a/third_party/blink/renderer/modules/filesystem/directory_entry.h
+++ b/third_party/blink/renderer/modules/filesystem/directory_entry.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/modules/filesystem/entry.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/filesystem/directory_reader.h b/third_party/blink/renderer/modules/filesystem/directory_reader.h
index 0b8183e..7888314 100644
--- a/third_party/blink/renderer/modules/filesystem/directory_reader.h
+++ b/third_party/blink/renderer/modules/filesystem/directory_reader.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_error_callback.h"
 #include "third_party/blink/renderer/modules/filesystem/directory_reader_base.h"
 #include "third_party/blink/renderer/modules/filesystem/dom_file_system.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/filesystem/directory_reader_base.h b/third_party/blink/renderer/modules/filesystem/directory_reader_base.h
index c1c7e8b5..852f9bc 100644
--- a/third_party/blink/renderer/modules/filesystem/directory_reader_base.h
+++ b/third_party/blink/renderer/modules/filesystem/directory_reader_base.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/modules/filesystem/entry_heap_vector.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/filesystem/directory_reader_sync.h b/third_party/blink/renderer/modules/filesystem/directory_reader_sync.h
index f2d4dd02..aceccc3 100644
--- a/third_party/blink/renderer/modules/filesystem/directory_reader_sync.h
+++ b/third_party/blink/renderer/modules/filesystem/directory_reader_sync.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/fileapi/file_error.h"
 #include "third_party/blink/renderer/modules/filesystem/directory_reader_base.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/filesystem/dom_file_system.h b/third_party/blink/renderer/modules/filesystem/dom_file_system.h
index 33c8f8c5..090d784 100644
--- a/third_party/blink/renderer/modules/filesystem/dom_file_system.h
+++ b/third_party/blink/renderer/modules/filesystem/dom_file_system.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/filesystem/dom_file_system_base.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h b/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h
index b565178..ccb61fb9 100644
--- a/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h
+++ b/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/modules/filesystem/file_system_callbacks.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h b/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h
index 8fba495..d1dfaa9 100644
--- a/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h
+++ b/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_DOM_FILE_SYSTEM_SYNC_H_
 
 #include "third_party/blink/renderer/modules/filesystem/dom_file_system_base.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.h b/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.h
index a6e7173..9f263f9 100644
--- a/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.h
+++ b/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/clipboard/data_object.h"
 #include "third_party/blink/renderer/core/clipboard/dragged_isolated_file_system.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/filesystem/entry.h b/third_party/blink/renderer/modules/filesystem/entry.h
index 7a93045..6ed82f05 100644
--- a/third_party/blink/renderer/modules/filesystem/entry.h
+++ b/third_party/blink/renderer/modules/filesystem/entry.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/modules/filesystem/dom_file_system.h"
 #include "third_party/blink/renderer/modules/filesystem/entry_base.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/filesystem/entry_base.h b/third_party/blink/renderer/modules/filesystem/entry_base.h
index e4b9191..a90bb915 100644
--- a/third_party/blink/renderer/modules/filesystem/entry_base.h
+++ b/third_party/blink/renderer/modules/filesystem/entry_base.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/filesystem/entry_sync.h b/third_party/blink/renderer/modules/filesystem/entry_sync.h
index fb2bbe6..4f2f179b 100644
--- a/third_party/blink/renderer/modules/filesystem/entry_sync.h
+++ b/third_party/blink/renderer/modules/filesystem/entry_sync.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h"
 #include "third_party/blink/renderer/modules/filesystem/entry_base.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/filesystem/file_entry.h b/third_party/blink/renderer/modules/filesystem/file_entry.h
index 24c40ea..691b11d 100644
--- a/third_party/blink/renderer/modules/filesystem/file_entry.h
+++ b/third_party/blink/renderer/modules/filesystem/file_entry.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/modules/filesystem/entry.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/filesystem/file_entry_sync.h b/third_party/blink/renderer/modules/filesystem/file_entry_sync.h
index b79de76e..2fe7974 100644
--- a/third_party/blink/renderer/modules/filesystem/file_entry_sync.h
+++ b/third_party/blink/renderer/modules/filesystem/file_entry_sync.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_FILE_ENTRY_SYNC_H_
 
 #include "third_party/blink/renderer/modules/filesystem/entry_sync.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_dispatcher.h b/third_party/blink/renderer/modules/filesystem/file_system_dispatcher.h
index d9136b51..e6ba0316 100644
--- a/third_party/blink/renderer/modules/filesystem/file_system_dispatcher.h
+++ b/third_party/blink/renderer/modules/filesystem/file_system_dispatcher.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/public/mojom/filesystem/file_system.mojom-blink.h"
 #include "third_party/blink/renderer/modules/filesystem/file_system_callbacks.h"
 #include "third_party/blink/renderer/platform/heap/disallow_new_wrapper.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_unique_receiver_set.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
diff --git a/third_party/blink/renderer/modules/filesystem/file_writer.h b/third_party/blink/renderer/modules/filesystem/file_writer.h
index 609f831..10c0e44a 100644
--- a/third_party/blink/renderer/modules/filesystem/file_writer.h
+++ b/third_party/blink/renderer/modules/filesystem/file_writer.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/core/probe/async_task_context.h"
 #include "third_party/blink/renderer/modules/event_target_modules.h"
 #include "third_party/blink/renderer/modules/filesystem/file_writer_base.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/filesystem/file_writer_base.h b/third_party/blink/renderer/modules/filesystem/file_writer_base.h
index 114dbbb..7f1adc7 100644
--- a/third_party/blink/renderer/modules/filesystem/file_writer_base.h
+++ b/third_party/blink/renderer/modules/filesystem/file_writer_base.h
@@ -33,7 +33,7 @@
 
 #include "base/files/file.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/filesystem/file_writer_sync.h b/third_party/blink/renderer/modules/filesystem/file_writer_sync.h
index b8303f3..3935e93 100644
--- a/third_party/blink/renderer/modules/filesystem/file_writer_sync.h
+++ b/third_party/blink/renderer/modules/filesystem/file_writer_sync.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/fileapi/file_error.h"
 #include "third_party/blink/renderer/modules/filesystem/file_writer_base.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/filesystem/html_input_element_file_system.cc b/third_party/blink/renderer/modules/filesystem/html_input_element_file_system.cc
index 139c320..22a0ad979 100644
--- a/third_party/blink/renderer/modules/filesystem/html_input_element_file_system.cc
+++ b/third_party/blink/renderer/modules/filesystem/html_input_element_file_system.cc
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/modules/filesystem/file_entry.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/file_metadata.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/filesystem/local_file_system.h b/third_party/blink/renderer/modules/filesystem/local_file_system.h
index f764a14..168c150 100644
--- a/third_party/blink/renderer/modules/filesystem/local_file_system.h
+++ b/third_party/blink/renderer/modules/filesystem/local_file_system.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/public/mojom/filesystem/file_system.mojom-blink-forward.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
diff --git a/third_party/blink/renderer/modules/filesystem/sync_callback_helper.h b/third_party/blink/renderer/modules/filesystem/sync_callback_helper.h
index 307646c0..9cc3d6b2 100644
--- a/third_party/blink/renderer/modules/filesystem/sync_callback_helper.h
+++ b/third_party/blink/renderer/modules/filesystem/sync_callback_helper.h
@@ -34,7 +34,7 @@
 
 #include "third_party/blink/renderer/core/fileapi/file_error.h"
 #include "third_party/blink/renderer/modules/filesystem/file_system_callbacks.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad.h b/third_party/blink/renderer/modules/gamepad/gamepad.h
index 7a31d24c..5739bf34 100644
--- a/third_party/blink/renderer/modules/gamepad/gamepad.h
+++ b/third_party/blink/renderer/modules/gamepad/gamepad.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/modules/gamepad/gamepad_haptic_actuator.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad_shared_memory_reader.h b/third_party/blink/renderer/modules/gamepad/gamepad_shared_memory_reader.h
index 9d8bfc3..703f5daf 100644
--- a/third_party/blink/renderer/modules/gamepad/gamepad_shared_memory_reader.h
+++ b/third_party/blink/renderer/modules/gamepad/gamepad_shared_memory_reader.h
@@ -8,7 +8,7 @@
 #include "device/gamepad/public/mojom/gamepad.mojom-blink.h"
 #include "device/gamepad/public/mojom/gamepad_hardware_buffer.h"
 #include "mojo/public/cpp/system/buffer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
diff --git a/third_party/blink/renderer/modules/geolocation/geo_notifier.h b/third_party/blink/renderer/modules/geolocation/geo_notifier.h
index c4fb14a..642bcae 100644
--- a/third_party/blink/renderer/modules/geolocation/geo_notifier.h
+++ b/third_party/blink/renderer/modules/geolocation/geo_notifier.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_position_error_callback.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_position_options.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/geolocation/geolocation.h b/third_party/blink/renderer/modules/geolocation/geolocation.h
index 402fded..2846b06 100644
--- a/third_party/blink/renderer/modules/geolocation/geolocation.h
+++ b/third_party/blink/renderer/modules/geolocation/geolocation.h
@@ -42,7 +42,7 @@
 #include "third_party/blink/renderer/modules/geolocation/geoposition.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/timer.h"
diff --git a/third_party/blink/renderer/modules/geolocation/geolocation_watchers.h b/third_party/blink/renderer/modules/geolocation/geolocation_watchers.h
index 6942a18..22c42e0 100644
--- a/third_party/blink/renderer/modules/geolocation/geolocation_watchers.h
+++ b/third_party/blink/renderer/modules/geolocation/geolocation_watchers.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/geolocation/geoposition.h b/third_party/blink/renderer/modules/geolocation/geoposition.h
index 286e6d6..89773cb 100644
--- a/third_party/blink/renderer/modules/geolocation/geoposition.h
+++ b/third_party/blink/renderer/modules/geolocation/geoposition.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/modules/event_modules.h"
 #include "third_party/blink/renderer/modules/geolocation/geolocation_coordinates.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/hid/hid.h b/third_party/blink/renderer/modules/hid/hid.h
index 658b199a..9b2e520 100644
--- a/third_party/blink/renderer/modules/hid/hid.h
+++ b/third_party/blink/renderer/modules/hid/hid.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h"
diff --git a/third_party/blink/renderer/modules/hid/hid_connection_event.h b/third_party/blink/renderer/modules/hid/hid_connection_event.h
index 3d2a084..1c1e25d 100644
--- a/third_party/blink/renderer/modules/hid/hid_connection_event.h
+++ b/third_party/blink/renderer/modules/hid/hid_connection_event.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_HID_HID_CONNECTION_EVENT_H_
 
 #include "third_party/blink/renderer/modules/event_modules.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/hid/hid_input_report_event.h b/third_party/blink/renderer/modules/hid/hid_input_report_event.h
index db262df..a9bcb30 100644
--- a/third_party/blink/renderer/modules/hid/hid_input_report_event.h
+++ b/third_party/blink/renderer/modules/hid/hid_input_report_event.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_HID_HID_INPUT_REPORT_EVENT_H_
 
 #include "third_party/blink/renderer/modules/event_modules.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/indexeddb/global_indexed_db.cc b/third_party/blink/renderer/modules/indexeddb/global_indexed_db.cc
index 8adb942..cee2db1 100644
--- a/third_party/blink/renderer/modules/indexeddb/global_indexed_db.cc
+++ b/third_party/blink/renderer/modules/indexeddb/global_indexed_db.cc
@@ -7,7 +7,7 @@
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
 #include "third_party/blink/renderer/modules/indexeddb/idb_factory.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_database.h b/third_party/blink/renderer/modules/indexeddb/idb_database.h
index 2fa8ad4..4d88d5c 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_database.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_database.h
@@ -45,7 +45,7 @@
 #include "third_party/blink/renderer/modules/indexeddb/web_idb_database.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver.h"
 #include "third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request.cc b/third_party/blink/renderer/modules/indexeddb/idb_request.cc
index 3094e5d0..4ddc50d 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_request.cc
+++ b/third_party/blink/renderer/modules/indexeddb/idb_request.cc
@@ -52,7 +52,6 @@
 #include "third_party/blink/renderer/modules/indexeddb/web_idb_callbacks_impl.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 #include "third_party/blink/renderer/platform/wtf/shared_buffer.h"
 
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request.h b/third_party/blink/renderer/modules/indexeddb/idb_request.h
index 54dc51c..fea3232 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_request.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_request.h
@@ -51,7 +51,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/blob/blob_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_transaction.h b/third_party/blink/renderer/modules/indexeddb/idb_transaction.h
index f127fd4c..4d554c4 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_transaction.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_transaction.h
@@ -44,7 +44,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/modules/keyboard/navigator_keyboard.h b/third_party/blink/renderer/modules/keyboard/navigator_keyboard.h
index 60ff29c..9cb85b08 100644
--- a/third_party/blink/renderer/modules/keyboard/navigator_keyboard.h
+++ b/third_party/blink/renderer/modules/keyboard/navigator_keyboard.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/frame/navigator.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/launch/dom_window_launch_queue.h b/third_party/blink/renderer/modules/launch/dom_window_launch_queue.h
index 11b34c5d..d6ba37d 100644
--- a/third_party/blink/renderer/modules/launch/dom_window_launch_queue.h
+++ b/third_party/blink/renderer/modules/launch/dom_window_launch_queue.h
@@ -9,7 +9,6 @@
 #include "third_party/blink/renderer/modules/launch/launch_queue.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.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/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/modules/locks/lock.h b/third_party/blink/renderer/modules/locks/lock.h
index 46fe4b7f..32f0276 100644
--- a/third_party/blink/renderer/modules/locks/lock.h
+++ b/third_party/blink/renderer/modules/locks/lock.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/public/mojom/locks/lock_manager.mojom-blink.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/manifest/manifest_change_notifier.h b/third_party/blink/renderer/modules/manifest/manifest_change_notifier.h
index a8f44b4a..348e04e9 100644
--- a/third_party/blink/renderer/modules/manifest/manifest_change_notifier.h
+++ b/third_party/blink/renderer/modules/manifest/manifest_change_notifier.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/mojom/manifest/manifest_observer.mojom-blink.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_remote.h"
 
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_impl_test.cc b/third_party/blink/renderer/modules/media_controls/media_controls_impl_test.cc
index 6890b1c2..f49867f 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_impl_test.cc
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_impl_test.cc
@@ -50,7 +50,6 @@
 #include "third_party/blink/renderer/modules/media_controls/elements/media_control_volume_slider_element.h"
 #include "third_party/blink/renderer/modules/remoteplayback/remote_playback.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "third_party/blink/renderer/platform/testing/empty_web_media_player.h"
 #include "third_party/blink/renderer/platform/testing/histogram_tester.h"
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_text_track_manager.h b/third_party/blink/renderer/modules/media_controls/media_controls_text_track_manager.h
index 490faec6..e23ecbfe 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_text_track_manager.h
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_text_track_manager.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_MEDIA_CONTROLS_TEXT_TRACK_MANAGER_H_
 
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/auto_canvas_draw_listener.h b/third_party/blink/renderer/modules/mediacapturefromelement/auto_canvas_draw_listener.h
index c9c5a70..d49e5770 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/auto_canvas_draw_listener.h
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/auto_canvas_draw_listener.h
@@ -8,7 +8,7 @@
 #include <memory>
 #include "third_party/blink/renderer/core/html/canvas/canvas_draw_listener.h"
 #include "third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_media_stream_track.h b/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_media_stream_track.h
index 3ced9fbe..208b1036 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_media_stream_track.h
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_media_stream_track.h
@@ -8,7 +8,7 @@
 #include <memory>
 #include "third_party/blink/renderer/core/html/canvas/canvas_draw_listener.h"
 #include "third_party/blink/renderer/modules/mediastream/media_stream_track.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/on_request_canvas_draw_listener.h b/third_party/blink/renderer/modules/mediacapturefromelement/on_request_canvas_draw_listener.h
index ec100b50..36ec2be 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/on_request_canvas_draw_listener.h
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/on_request_canvas_draw_listener.h
@@ -9,7 +9,7 @@
 #include "base/memory/weak_ptr.h"
 #include "third_party/blink/renderer/modules/mediacapturefromelement/auto_canvas_draw_listener.h"
 #include "third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.h b/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.h
index 418dd3056..4cd4fe6 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.h
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.h
@@ -9,7 +9,7 @@
 #include "base/memory/weak_ptr.h"
 #include "third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.h"
 #include "third_party/blink/renderer/modules/mediacapturefromelement/on_request_canvas_draw_listener.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 
diff --git a/third_party/blink/renderer/modules/mediasession/media_metadata.h b/third_party/blink/renderer/modules/mediasession/media_metadata.h
index 3417597..553e16e 100644
--- a/third_party/blink/renderer/modules/mediasession/media_metadata.h
+++ b/third_party/blink/renderer/modules/mediasession/media_metadata.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/mediasession/media_session.h b/third_party/blink/renderer/modules/mediasession/media_session.h
index 4c19aec..2ad54214 100644
--- a/third_party/blink/renderer/modules/mediasession/media_session.h
+++ b/third_party/blink/renderer/modules/mediasession/media_session.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/public/mojom/mediasession/media_session.mojom-blink.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
diff --git a/third_party/blink/renderer/modules/mediasource/media_source.h b/third_party/blink/renderer/modules/mediasource/media_source.h
index 025d3641..921988ba 100644
--- a/third_party/blink/renderer/modules/mediasource/media_source.h
+++ b/third_party/blink/renderer/modules/mediasource/media_source.h
@@ -20,7 +20,7 @@
 #include "third_party/blink/renderer/modules/mediasource/source_buffer.h"
 #include "third_party/blink/renderer/modules/mediasource/source_buffer_list.h"
 #include "third_party/blink/renderer/platform/bindings/exception_code.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/threading_primitives.h"
 
diff --git a/third_party/blink/renderer/modules/mediasource/same_thread_media_source_tracer.h b/third_party/blink/renderer/modules/mediasource/same_thread_media_source_tracer.h
index f31c870..d9d46b38 100644
--- a/third_party/blink/renderer/modules/mediasource/same_thread_media_source_tracer.h
+++ b/third_party/blink/renderer/modules/mediasource/same_thread_media_source_tracer.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASOURCE_SAME_THREAD_MEDIA_SOURCE_TRACER_H_
 
 #include "third_party/blink/renderer/core/html/media/media_source_tracer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/mediasource/source_buffer_list.h b/third_party/blink/renderer/modules/mediasource/source_buffer_list.h
index 7c3d66e..f592844 100644
--- a/third_party/blink/renderer/modules/mediasource/source_buffer_list.h
+++ b/third_party/blink/renderer/modules/mediasource/source_buffer_list.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/event_target_modules.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/mediasource/track_default_list.h b/third_party/blink/renderer/modules/mediasource/track_default_list.h
index c14c3124..3c32aa5 100644
--- a/third_party/blink/renderer/modules/mediasource/track_default_list.h
+++ b/third_party/blink/renderer/modules/mediasource/track_default_list.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/modules/mediasource/track_default.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_track.cc b/third_party/blink/renderer/modules/mediastream/media_stream_track.cc
index 910c521..a5d4e7c8 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_track.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_track.cc
@@ -61,7 +61,7 @@
 #include "third_party/blink/renderer/modules/mediastream/user_media_controller.h"
 #include "third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mediastream/media_stream_audio_source.h"
 #include "third_party/blink/renderer/platform/mediastream/media_stream_component.h"
 #include "third_party/blink/renderer/platform/mediastream/media_stream_web_audio_source.h"
diff --git a/third_party/blink/renderer/modules/native_io/global_native_io.cc b/third_party/blink/renderer/modules/native_io/global_native_io.cc
index 5c3ae5b..ca33a302 100644
--- a/third_party/blink/renderer/modules/native_io/global_native_io.cc
+++ b/third_party/blink/renderer/modules/native_io/global_native_io.cc
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
 #include "third_party/blink/renderer/modules/native_io/native_io_capacity_tracker.h"
 #include "third_party/blink/renderer/modules/native_io/native_io_file_manager.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
diff --git a/third_party/blink/renderer/modules/native_io/native_io_capacity_tracker.h b/third_party/blink/renderer/modules/native_io/native_io_capacity_tracker.h
index f7b2f45..fab5d08 100644
--- a/third_party/blink/renderer/modules/native_io/native_io_capacity_tracker.h
+++ b/third_party/blink/renderer/modules/native_io/native_io_capacity_tracker.h
@@ -8,7 +8,7 @@
 #include "base/sequence_checker.h"
 #include "base/thread_annotations.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/native_io/native_io_file.h b/third_party/blink/renderer/modules/native_io/native_io_file.h
index 95d2da4a..15a7831 100644
--- a/third_party/blink/renderer/modules/native_io/native_io_file.h
+++ b/third_party/blink/renderer/modules/native_io/native_io_file.h
@@ -18,7 +18,7 @@
 #include "third_party/blink/renderer/modules/native_io/native_io_capacity_tracker.h"
 #include "third_party/blink/renderer/modules/native_io/native_io_file_utils.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/native_io/native_io_file_manager.h b/third_party/blink/renderer/modules/native_io/native_io_file_manager.h
index a737ed7..34571d4 100644
--- a/third_party/blink/renderer/modules/native_io/native_io_file_manager.h
+++ b/third_party/blink/renderer/modules/native_io/native_io_file_manager.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/native_io/native_io_capacity_tracker.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/modules/native_io/native_io_file_sync.h b/third_party/blink/renderer/modules/native_io/native_io_file_sync.h
index b77f2a4..8d9fd1b 100644
--- a/third_party/blink/renderer/modules/native_io/native_io_file_sync.h
+++ b/third_party/blink/renderer/modules/native_io/native_io_file_sync.h
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer_view.h"
 #include "third_party/blink/renderer/modules/native_io/native_io_capacity_tracker.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/modules/navigatorcontentutils/navigator_content_utils.h b/third_party/blink/renderer/modules/navigatorcontentutils/navigator_content_utils.h
index 18770b8..3ca6f6a4 100644
--- a/third_party/blink/renderer/modules/navigatorcontentutils/navigator_content_utils.h
+++ b/third_party/blink/renderer/modules/navigatorcontentutils/navigator_content_utils.h
@@ -29,7 +29,7 @@
 
 #include "third_party/blink/renderer/core/frame/navigator.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/navigatorcontentutils/navigator_content_utils_client.h b/third_party/blink/renderer/modules/navigatorcontentutils/navigator_content_utils_client.h
index 748a2c6..ca20df2 100644
--- a/third_party/blink/renderer/modules/navigatorcontentutils/navigator_content_utils_client.h
+++ b/third_party/blink/renderer/modules/navigatorcontentutils/navigator_content_utils_client.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_NAVIGATORCONTENTUTILS_NAVIGATOR_CONTENT_UTILS_CLIENT_H_
 
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/nfc/ndef_message.h b/third_party/blink/renderer/modules/nfc/ndef_message.h
index cd573f1..08fdb1c 100644
--- a/third_party/blink/renderer/modules/nfc/ndef_message.h
+++ b/third_party/blink/renderer/modules/nfc/ndef_message.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/nfc/ndef_reader.h b/third_party/blink/renderer/modules/nfc/ndef_reader.h
index be8ae5e..99815e2 100644
--- a/third_party/blink/renderer/modules/nfc/ndef_reader.h
+++ b/third_party/blink/renderer/modules/nfc/ndef_reader.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 
diff --git a/third_party/blink/renderer/modules/nfc/ndef_reading_event.h b/third_party/blink/renderer/modules/nfc/ndef_reading_event.h
index b60bee9..2440e9a 100644
--- a/third_party/blink/renderer/modules/nfc/ndef_reading_event.h
+++ b/third_party/blink/renderer/modules/nfc/ndef_reading_event.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_NFC_NDEF_READING_EVENT_H_
 
 #include "third_party/blink/renderer/modules/event_modules.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/nfc/ndef_record.h b/third_party/blink/renderer/modules/nfc/ndef_record.h
index ebbe5b3..d90270fc 100644
--- a/third_party/blink/renderer/modules/nfc/ndef_record.h
+++ b/third_party/blink/renderer/modules/nfc/ndef_record.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/notifications/notification.h b/third_party/blink/renderer/modules/notifications/notification.h
index 2441a876..2d20d7c 100644
--- a/third_party/blink/renderer/modules/notifications/notification.h
+++ b/third_party/blink/renderer/modules/notifications/notification.h
@@ -43,7 +43,7 @@
 #include "third_party/blink/renderer/modules/event_target_modules.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/vibration/vibration_controller.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/modules/notifications/notification_event.h b/third_party/blink/renderer/modules/notifications/notification_event.h
index 009cc6c..d97bbb3 100644
--- a/third_party/blink/renderer/modules/notifications/notification_event.h
+++ b/third_party/blink/renderer/modules/notifications/notification_event.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/notifications/notification.h"
 #include "third_party/blink/renderer/modules/service_worker/extendable_event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/notifications/notification_resources_loader.h b/third_party/blink/renderer/modules/notifications/notification_resources_loader.h
index b5d6a96..d81c2e7c 100644
--- a/third_party/blink/renderer/modules/notifications/notification_resources_loader.h
+++ b/third_party/blink/renderer/modules/notifications/notification_resources_loader.h
@@ -10,7 +10,6 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.cc b/third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.cc
index 77958f28..567c599 100644
--- a/third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.cc
+++ b/third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.cc
@@ -19,7 +19,7 @@
 #include "third_party/blink/renderer/modules/notifications/notification_resources_loader.h"
 #include "third_party/blink/renderer/modules/service_worker/service_worker_registration.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.h b/third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.h
index 250b6724..ee905a4 100644
--- a/third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.h
+++ b/third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.h
@@ -11,7 +11,6 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.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/supplementable.h"
 
diff --git a/third_party/blink/renderer/modules/payments/abort_payment_event.h b/third_party/blink/renderer/modules/payments/abort_payment_event.h
index f768cc1..651348b 100644
--- a/third_party/blink/renderer/modules/payments/abort_payment_event.h
+++ b/third_party/blink/renderer/modules/payments/abort_payment_event.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/modules/event_modules.h"
 #include "third_party/blink/renderer/modules/service_worker/extendable_event.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace WTF {
 class AtomicString;
diff --git a/third_party/blink/renderer/modules/payments/can_make_payment_event.h b/third_party/blink/renderer/modules/payments/can_make_payment_event.h
index 7af939d..de676b4 100644
--- a/third_party/blink/renderer/modules/payments/can_make_payment_event.h
+++ b/third_party/blink/renderer/modules/payments/can_make_payment_event.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_payment_method_data.h"
 #include "third_party/blink/renderer/modules/event_modules.h"
 #include "third_party/blink/renderer/modules/service_worker/extendable_event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace WTF {
 class AtomicString;
diff --git a/third_party/blink/renderer/modules/payments/html_iframe_element_payments.h b/third_party/blink/renderer/modules/payments/html_iframe_element_payments.h
index 40b4de1a..e6283c0 100644
--- a/third_party/blink/renderer/modules/payments/html_iframe_element_payments.h
+++ b/third_party/blink/renderer/modules/payments/html_iframe_element_payments.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_PAYMENTS_HTML_IFRAME_ELEMENT_PAYMENTS_H_
 
 #include "third_party/blink/renderer/core/html/html_iframe_element.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/payments/payment_app_service_worker_registration.h b/third_party/blink/renderer/modules/payments/payment_app_service_worker_registration.h
index f70a9cf..f9b903a 100644
--- a/third_party/blink/renderer/modules/payments/payment_app_service_worker_registration.h
+++ b/third_party/blink/renderer/modules/payments/payment_app_service_worker_registration.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_PAYMENTS_PAYMENT_APP_SERVICE_WORKER_REGISTRATION_H_
 
 #include "third_party/blink/renderer/modules/service_worker/service_worker_registration.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/payments/payment_instruments.h b/third_party/blink/renderer/modules/payments/payment_instruments.h
index 8132b24..bd8ea27 100644
--- a/third_party/blink/renderer/modules/payments/payment_instruments.h
+++ b/third_party/blink/renderer/modules/payments/payment_instruments.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/payments/payment_manager.h b/third_party/blink/renderer/modules/payments/payment_manager.h
index 9b5d429..f12fd507 100644
--- a/third_party/blink/renderer/modules/payments/payment_manager.h
+++ b/third_party/blink/renderer/modules/payments/payment_manager.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_payment_delegation.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/payments/payment_request.h b/third_party/blink/renderer/modules/payments/payment_request.h
index 81daf8ed..6169b25 100644
--- a/third_party/blink/renderer/modules/payments/payment_request.h
+++ b/third_party/blink/renderer/modules/payments/payment_request.h
@@ -19,7 +19,7 @@
 #include "third_party/blink/renderer/modules/payments/payment_request_delegate.h"
 #include "third_party/blink/renderer/modules/payments/payment_state_resolver.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
diff --git a/third_party/blink/renderer/modules/payments/payment_request_event.h b/third_party/blink/renderer/modules/payments/payment_request_event.h
index 51178c3..f09e5cc8 100644
--- a/third_party/blink/renderer/modules/payments/payment_request_event.h
+++ b/third_party/blink/renderer/modules/payments/payment_request_event.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_payment_request_event_init.h"
 #include "third_party/blink/renderer/modules/event_modules.h"
 #include "third_party/blink/renderer/modules/service_worker/extendable_event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 
diff --git a/third_party/blink/renderer/modules/payments/payment_request_update_event.h b/third_party/blink/renderer/modules/payments/payment_request_update_event.h
index bece91d9..e199f8d 100644
--- a/third_party/blink/renderer/modules/payments/payment_request_update_event.h
+++ b/third_party/blink/renderer/modules/payments/payment_request_update_event.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/dom/events/event.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/payments/payment_response.h b/third_party/blink/renderer/modules/payments/payment_response.h
index 9195b942..c045c933 100644
--- a/third_party/blink/renderer/modules/payments/payment_response.h
+++ b/third_party/blink/renderer/modules/payments/payment_response.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_data_channel.h b/third_party/blink/renderer/modules/peerconnection/rtc_data_channel.h
index 395c202..21bb393 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_data_channel.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_data_channel.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h"
 #include "third_party/blink/renderer/modules/event_target_modules.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h"
 #include "third_party/blink/renderer/platform/timer.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_controller.h b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_controller.h
index f628dbb..384ef0f 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_controller.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_controller.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_RTC_PEER_CONNECTION_CONTROLLER_H_
 
 #include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_session_description_request_impl.h b/third_party/blink/renderer/modules/peerconnection/rtc_session_description_request_impl.h
index 35c1a26..c5a929d6 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_session_description_request_impl.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_session_description_request_impl.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_session_description_callback.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/peerconnection/rtc_session_description_enums.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/peerconnection/rtc_session_description_request.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_stats_request_impl.h b/third_party/blink/renderer/modules/peerconnection/rtc_stats_request_impl.h
index c61bc33..76de3386 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_stats_request_impl.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_stats_request_impl.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_stats_callback.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/peerconnection/rtc_stats_response.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/peerconnection/rtc_stats_request.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_stats_response.h b/third_party/blink/renderer/modules/peerconnection/rtc_stats_response.h
index 6ee2e98..0ec9f0c 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_stats_response.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_stats_response.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/modules/peerconnection/rtc_legacy_stats_report.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/peerconnection/rtc_stats_response_base.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_void_request_impl.h b/third_party/blink/renderer/modules/peerconnection/rtc_void_request_impl.h
index 633b349..c41c4e61 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_void_request_impl.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_void_request_impl.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_peer_connection_error_callback.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/peerconnection/rtc_session_description_enums.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/peerconnection/rtc_void_request.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/permissions/permission_status.h b/third_party/blink/renderer/modules/permissions/permission_status.h
index cd0c79b95..12cfa6c8 100644
--- a/third_party/blink/renderer/modules/permissions/permission_status.h
+++ b/third_party/blink/renderer/modules/permissions/permission_status.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h"
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_state_observer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/permissions/permissions.h b/third_party/blink/renderer/modules/permissions/permissions.h
index 25818512..2898e753 100644
--- a/third_party/blink/renderer/modules/permissions/permissions.h
+++ b/third_party/blink/renderer/modules/permissions/permissions.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
diff --git a/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.h b/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.h
index 67cff8c..288a5f05 100644
--- a/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.h
+++ b/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/event_target_modules.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "ui/gfx/geometry/size.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/plugins/dom_mime_type.h b/third_party/blink/renderer/modules/plugins/dom_mime_type.h
index aa7daf94..8e0c5ad 100644
--- a/third_party/blink/renderer/modules/plugins/dom_mime_type.h
+++ b/third_party/blink/renderer/modules/plugins/dom_mime_type.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/page/plugin_data.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/plugins/dom_mime_type_array.h b/third_party/blink/renderer/modules/plugins/dom_mime_type_array.h
index 601aeec..c04921c 100644
--- a/third_party/blink/renderer/modules/plugins/dom_mime_type_array.h
+++ b/third_party/blink/renderer/modules/plugins/dom_mime_type_array.h
@@ -26,7 +26,7 @@
 #include "third_party/blink/renderer/modules/plugins/dom_mime_type.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/plugins/dom_plugin.h b/third_party/blink/renderer/modules/plugins/dom_plugin.h
index 7746644..223ffaf9 100644
--- a/third_party/blink/renderer/modules/plugins/dom_plugin.h
+++ b/third_party/blink/renderer/modules/plugins/dom_plugin.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/plugins/dom_mime_type.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/plugins/dom_plugin_array.h b/third_party/blink/renderer/modules/plugins/dom_plugin_array.h
index 36657de..916aef3 100644
--- a/third_party/blink/renderer/modules/plugins/dom_plugin_array.h
+++ b/third_party/blink/renderer/modules/plugins/dom_plugin_array.h
@@ -26,7 +26,7 @@
 #include "third_party/blink/renderer/modules/plugins/dom_plugin.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/modules/presentation/presentation.h b/third_party/blink/renderer/modules/presentation/presentation.h
index b61ba85..5fa2b7f 100644
--- a/third_party/blink/renderer/modules/presentation/presentation.h
+++ b/third_party/blink/renderer/modules/presentation/presentation.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/presentation/presentation_availability_callbacks.h b/third_party/blink/renderer/modules/presentation/presentation_availability_callbacks.h
index 6640d9f98..f5b432f 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_availability_callbacks.h
+++ b/third_party/blink/renderer/modules/presentation/presentation_availability_callbacks.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/presentation/presentation_promise_property.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/presentation/presentation_availability_state.h b/third_party/blink/renderer/modules/presentation/presentation_availability_state.h
index f25020ca..b066f6aa 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_availability_state.h
+++ b/third_party/blink/renderer/modules/presentation/presentation_availability_state.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/public/mojom/presentation/presentation.mojom-blink.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/presentation/presentation_availability_callbacks.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/presentation/presentation_connection.h b/third_party/blink/renderer/modules/presentation/presentation_connection.h
index 7d25c48b..dc19e82 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_connection.h
+++ b/third_party/blink/renderer/modules/presentation/presentation_connection.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_state_observer.h"
 #include "third_party/blink/renderer/core/fileapi/blob.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/modules/presentation/presentation_connection_available_event.h b/third_party/blink/renderer/modules/presentation/presentation_connection_available_event.h
index 6da9b3e..2d5a3fe 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_connection_available_event.h
+++ b/third_party/blink/renderer/modules/presentation/presentation_connection_available_event.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/event_modules.h"
 #include "third_party/blink/renderer/modules/presentation/presentation_connection.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace WTF {
 class AtomicString;
diff --git a/third_party/blink/renderer/modules/presentation/presentation_connection_close_event.h b/third_party/blink/renderer/modules/presentation/presentation_connection_close_event.h
index aa0bffb..bbf820ce 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_connection_close_event.h
+++ b/third_party/blink/renderer/modules/presentation/presentation_connection_close_event.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/event_modules.h"
 #include "third_party/blink/renderer/modules/presentation/presentation_connection.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/modules/presentation/presentation_connection_list.h b/third_party/blink/renderer/modules/presentation/presentation_connection_list.h
index abe3d59..434b993 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_connection_list.h
+++ b/third_party/blink/renderer/modules/presentation/presentation_connection_list.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/presentation/presentation_connection.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/presentation/presentation_controller.h b/third_party/blink/renderer/modules/presentation/presentation_controller.h
index a36f822..be94f5af 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_controller.h
+++ b/third_party/blink/renderer/modules/presentation/presentation_controller.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/presentation/presentation.h"
 #include "third_party/blink/renderer/modules/presentation/presentation_availability_callbacks.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/modules/presentation/presentation_receiver.h b/third_party/blink/renderer/modules/presentation/presentation_receiver.h
index 7dc327bd..eda46100 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_receiver.h
+++ b/third_party/blink/renderer/modules/presentation/presentation_receiver.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/dom/dom_exception.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 
diff --git a/third_party/blink/renderer/modules/presentation/presentation_request.h b/third_party/blink/renderer/modules/presentation/presentation_request.h
index e4e947dc..6546662 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_request.h
+++ b/third_party/blink/renderer/modules/presentation/presentation_request.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/presentation/presentation_promise_property.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/push_messaging/push_event.h b/third_party/blink/renderer/modules/push_messaging/push_event.h
index 841289a..e988d20 100644
--- a/third_party/blink/renderer/modules/push_messaging/push_event.h
+++ b/third_party/blink/renderer/modules/push_messaging/push_event.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/push_messaging/push_message_data.h"
 #include "third_party/blink/renderer/modules/service_worker/extendable_event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/push_messaging/push_manager.h b/third_party/blink/renderer/modules/push_messaging/push_manager.h
index d925872..3cf2e781 100644
--- a/third_party/blink/renderer/modules/push_messaging/push_manager.h
+++ b/third_party/blink/renderer/modules/push_messaging/push_manager.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/push_messaging/push_subscription.h b/third_party/blink/renderer/modules/push_messaging/push_subscription.h
index ea24970..dbbbd97 100644
--- a/third_party/blink/renderer/modules/push_messaging/push_subscription.h
+++ b/third_party/blink/renderer/modules/push_messaging/push_subscription.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/push_messaging/push_subscription_options.h b/third_party/blink/renderer/modules/push_messaging/push_subscription_options.h
index b0b83492..c7b1521 100644
--- a/third_party/blink/renderer/modules/push_messaging/push_subscription_options.h
+++ b/third_party/blink/renderer/modules/push_messaging/push_subscription_options.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/push_messaging/service_worker_registration_push.h b/third_party/blink/renderer/modules/push_messaging/service_worker_registration_push.h
index 3b02f35c3..e2a5476 100644
--- a/third_party/blink/renderer/modules/push_messaging/service_worker_registration_push.h
+++ b/third_party/blink/renderer/modules/push_messaging/service_worker_registration_push.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_PUSH_MESSAGING_SERVICE_WORKER_REGISTRATION_PUSH_H_
 
 #include "third_party/blink/renderer/modules/service_worker/service_worker_registration.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/quota/deprecated_storage_info.h b/third_party/blink/renderer/modules/quota/deprecated_storage_info.h
index fe83a649..2c958fd 100644
--- a/third_party/blink/renderer/modules/quota/deprecated_storage_info.h
+++ b/third_party/blink/renderer/modules/quota/deprecated_storage_info.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/modules/quota/deprecated_storage_quota.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/quota/deprecated_storage_quota.h b/third_party/blink/renderer/modules/quota/deprecated_storage_quota.h
index ad99ba9..dc46c0a 100644
--- a/third_party/blink/renderer/modules/quota/deprecated_storage_quota.h
+++ b/third_party/blink/renderer/modules/quota/deprecated_storage_quota.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/platform/bindings/exception_code.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 
diff --git a/third_party/blink/renderer/modules/quota/dom_error.h b/third_party/blink/renderer/modules/quota/dom_error.h
index 80da05cc..7cb5731 100644
--- a/third_party/blink/renderer/modules/quota/dom_error.h
+++ b/third_party/blink/renderer/modules/quota/dom_error.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/core/dom/dom_exception.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/quota/dom_window_quota.h b/third_party/blink/renderer/modules/quota/dom_window_quota.h
index b6a85556..ca4197b 100644
--- a/third_party/blink/renderer/modules/quota/dom_window_quota.h
+++ b/third_party/blink/renderer/modules/quota/dom_window_quota.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_QUOTA_DOM_WINDOW_QUOTA_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_QUOTA_DOM_WINDOW_QUOTA_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/quota/navigator_storage_quota.h b/third_party/blink/renderer/modules/quota/navigator_storage_quota.h
index 6693abd..45dde6a 100644
--- a/third_party/blink/renderer/modules/quota/navigator_storage_quota.h
+++ b/third_party/blink/renderer/modules/quota/navigator_storage_quota.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_QUOTA_NAVIGATOR_STORAGE_QUOTA_H_
 
 #include "third_party/blink/renderer/modules/quota/deprecated_storage_quota.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/remoteplayback/availability_callback_wrapper.h b/third_party/blink/renderer/modules/remoteplayback/availability_callback_wrapper.h
index b292863..e7ccf8cc 100644
--- a/third_party/blink/renderer/modules/remoteplayback/availability_callback_wrapper.h
+++ b/third_party/blink/renderer/modules/remoteplayback/availability_callback_wrapper.h
@@ -7,7 +7,7 @@
 
 #include "base/callback.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/remoteplayback/remote_playback.h b/third_party/blink/renderer/modules/remoteplayback/remote_playback.h
index c58481bb..31b6bd5 100644
--- a/third_party/blink/renderer/modules/remoteplayback/remote_playback.h
+++ b/third_party/blink/renderer/modules/remoteplayback/remote_playback.h
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/core/html/media/remote_playback_controller.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/presentation/presentation_availability_observer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
diff --git a/third_party/blink/renderer/modules/sanitizer_api/sanitizer_api_fuzzer.cc b/third_party/blink/renderer/modules/sanitizer_api/sanitizer_api_fuzzer.cc
index 981d462..2a5c4bbba 100644
--- a/third_party/blink/renderer/modules/sanitizer_api/sanitizer_api_fuzzer.cc
+++ b/third_party/blink/renderer/modules/sanitizer_api/sanitizer_api_fuzzer.cc
@@ -26,7 +26,7 @@
 #include "third_party/blink/renderer/modules/sanitizer_api/sanitizer_config.pb.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/testing/blink_fuzzer_test_support.h"
 #include "third_party/blink/renderer/platform/wtf/shared_buffer.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/scheduler/dom_scheduler.h b/third_party/blink/renderer/modules/scheduler/dom_scheduler.h
index 47cc9ac2..a7f0919 100644
--- a/third_party/blink/renderer/modules/scheduler/dom_scheduler.h
+++ b/third_party/blink/renderer/modules/scheduler/dom_scheduler.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/scheduler/public/web_scheduling_priority.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
diff --git a/third_party/blink/renderer/modules/scheduler/dom_task.h b/third_party/blink/renderer/modules/scheduler/dom_task.h
index d4a238f..4c92cf7f 100644
--- a/third_party/blink/renderer/modules/scheduler/dom_task.h
+++ b/third_party/blink/renderer/modules/scheduler/dom_task.h
@@ -8,7 +8,7 @@
 #include "base/time/time.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
 #include "third_party/blink/renderer/core/probe/async_task_context.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/scheduler/task_priority_change_event.cc b/third_party/blink/renderer/modules/scheduler/task_priority_change_event.cc
index 7d4ffee9..ce4ae7c 100644
--- a/third_party/blink/renderer/modules/scheduler/task_priority_change_event.cc
+++ b/third_party/blink/renderer/modules/scheduler/task_priority_change_event.cc
@@ -5,7 +5,7 @@
 #include "third_party/blink/renderer/modules/scheduler/task_priority_change_event.h"
 
 #include "third_party/blink/renderer/bindings/modules/v8/v8_task_priority_change_event_init.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/screen_enumeration/screen_details.h b/third_party/blink/renderer/modules/screen_enumeration/screen_details.h
index 93e171c..2ff1688b 100644
--- a/third_party/blink/renderer/modules/screen_enumeration/screen_details.h
+++ b/third_party/blink/renderer/modules/screen_enumeration/screen_details.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "ui/display/screen_infos.h"
 
diff --git a/third_party/blink/renderer/modules/screen_orientation/screen_orientation.h b/third_party/blink/renderer/modules/screen_orientation/screen_orientation.h
index 5e74390..41e7f90 100644
--- a/third_party/blink/renderer/modules/screen_orientation/screen_orientation.h
+++ b/third_party/blink/renderer/modules/screen_orientation/screen_orientation.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "ui/display/mojom/screen_orientation.mojom-blink.h"
diff --git a/third_party/blink/renderer/modules/screen_orientation/screen_screen_orientation.h b/third_party/blink/renderer/modules/screen_orientation/screen_screen_orientation.h
index aff83ca..ea2df02 100644
--- a/third_party/blink/renderer/modules/screen_orientation/screen_screen_orientation.h
+++ b/third_party/blink/renderer/modules/screen_orientation/screen_screen_orientation.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_SCREEN_ORIENTATION_SCREEN_SCREEN_ORIENTATION_H_
 
 #include "third_party/blink/renderer/core/frame/screen.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/sensor/sensor.h b/third_party/blink/renderer/modules/sensor/sensor.h
index a3fdbca..3cbc8642 100644
--- a/third_party/blink/renderer/modules/sensor/sensor.h
+++ b/third_party/blink/renderer/modules/sensor/sensor.h
@@ -18,7 +18,7 @@
 #include "third_party/blink/renderer/modules/sensor/sensor_proxy.h"
 #include "third_party/blink/renderer/platform/bindings/exception_code.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/sensor/sensor_error_event.h b/third_party/blink/renderer/modules/sensor/sensor_error_event.h
index 501801fa..b431776 100644
--- a/third_party/blink/renderer/modules/sensor/sensor_error_event.h
+++ b/third_party/blink/renderer/modules/sensor/sensor_error_event.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_sensor_error_event_init.h"
 #include "third_party/blink/renderer/core/dom/dom_exception.h"
 #include "third_party/blink/renderer/modules/event_modules.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/sensor/sensor_inspector_agent.h b/third_party/blink/renderer/modules/sensor/sensor_inspector_agent.h
index 665b9dc..cff2c40 100644
--- a/third_party/blink/renderer/modules/sensor/sensor_inspector_agent.h
+++ b/third_party/blink/renderer/modules/sensor/sensor_inspector_agent.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_SENSOR_SENSOR_INSPECTOR_AGENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_SENSOR_SENSOR_INSPECTOR_AGENT_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/sensor/sensor_provider_proxy.h b/third_party/blink/renderer/modules/sensor/sensor_provider_proxy.h
index dd01156f5..d08eb1c5 100644
--- a/third_party/blink/renderer/modules/sensor/sensor_provider_proxy.h
+++ b/third_party/blink/renderer/modules/sensor/sensor_provider_proxy.h
@@ -8,7 +8,7 @@
 #include "services/device/public/mojom/sensor.mojom-blink-forward.h"
 #include "services/device/public/mojom/sensor_provider.mojom-blink.h"
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
diff --git a/third_party/blink/renderer/modules/sensor/sensor_proxy.h b/third_party/blink/renderer/modules/sensor/sensor_proxy.h
index 8bf826e..87c4c07 100644
--- a/third_party/blink/renderer/modules/sensor/sensor_proxy.h
+++ b/third_party/blink/renderer/modules/sensor/sensor_proxy.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/page/page_visibility_observer.h"
 #include "third_party/blink/renderer/platform/bindings/exception_code.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.h b/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.h
index 178ecdc..f4759691a 100644
--- a/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.h
+++ b/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/sensor/sensor_proxy.h"
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/timer.h"
diff --git a/third_party/blink/renderer/modules/serial/serial.h b/third_party/blink/renderer/modules/serial/serial.h
index 4f9e66bb..3b2c242a 100644
--- a/third_party/blink/renderer/modules/serial/serial.h
+++ b/third_party/blink/renderer/modules/serial/serial.h
@@ -11,7 +11,6 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
diff --git a/third_party/blink/renderer/modules/serial/serial_port.h b/third_party/blink/renderer/modules/serial/serial_port.h
index ae87086..27d01e8 100644
--- a/third_party/blink/renderer/modules/serial/serial_port.h
+++ b/third_party/blink/renderer/modules/serial/serial_port.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
diff --git a/third_party/blink/renderer/modules/service_worker/fetch_event.h b/third_party/blink/renderer/modules/service_worker/fetch_event.h
index 53dcac0..d0e125d4 100644
--- a/third_party/blink/renderer/modules/service_worker/fetch_event.h
+++ b/third_party/blink/renderer/modules/service_worker/fetch_event.h
@@ -19,7 +19,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/service_worker/extendable_event.h"
 #include "third_party/blink/renderer/modules/service_worker/wait_until_observer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/data_pipe_bytes_consumer.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_response.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
diff --git a/third_party/blink/renderer/modules/service_worker/navigation_preload_manager.h b/third_party/blink/renderer/modules/service_worker/navigation_preload_manager.h
index 2c4d886d2..c914c68 100644
--- a/third_party/blink/renderer/modules/service_worker/navigation_preload_manager.h
+++ b/third_party/blink/renderer/modules/service_worker/navigation_preload_manager.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/service_worker/respond_with_observer.h b/third_party/blink/renderer/modules/service_worker/respond_with_observer.h
index 7b1429c..9101673 100644
--- a/third_party/blink/renderer/modules/service_worker/respond_with_observer.h
+++ b/third_party/blink/renderer/modules/service_worker/respond_with_observer.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_container.h b/third_party/blink/renderer/modules/service_worker/service_worker_container.h
index f9cb4f5..8ae3569 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_container.h
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_container.h
@@ -46,7 +46,7 @@
 #include "third_party/blink/renderer/modules/service_worker/service_worker.h"
 #include "third_party/blink/renderer/modules/service_worker/service_worker_registration.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
index a15a0b2..88d75ea 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
@@ -49,7 +49,7 @@
 #include "third_party/blink/renderer/modules/service_worker/service_worker_event_queue.h"
 #include "third_party/blink/renderer/modules/service_worker/service_worker_installed_scripts_manager.h"
 #include "third_party/blink/renderer/platform/heap/disallow_new_wrapper.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver_set.h"
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_script_cached_metadata_handler.h b/third_party/blink/renderer/modules/service_worker/service_worker_script_cached_metadata_handler.h
index 14c3234bf..14de1e6c 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_script_cached_metadata_handler.h
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_script_cached_metadata_handler.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_SERVICE_WORKER_SERVICE_WORKER_SCRIPT_CACHED_METADATA_HANDLER_H_
 
 #include <stdint.h>
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/loader/fetch/url_loader/cached_metadata_handler.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_window_client.h b/third_party/blink/renderer/modules/service_worker/service_worker_window_client.h
index 663ac79..8a7ee5f 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_window_client.h
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_window_client.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/service_worker/service_worker_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/shared_storage/shared_storage.h b/third_party/blink/renderer/modules/shared_storage/shared_storage.h
index 234fd4e..9c7b858 100644
--- a/third_party/blink/renderer/modules/shared_storage/shared_storage.h
+++ b/third_party/blink/renderer/modules/shared_storage/shared_storage.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet.h b/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet.h
index 4793326f..5bad8f2 100644
--- a/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet.h
+++ b/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/shared_storage/window_shared_storage.cc b/third_party/blink/renderer/modules/shared_storage/window_shared_storage.cc
index aad22dd..3b7df4e2 100644
--- a/third_party/blink/renderer/modules/shared_storage/window_shared_storage.cc
+++ b/third_party/blink/renderer/modules/shared_storage/window_shared_storage.cc
@@ -6,7 +6,7 @@
 
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
 #include "third_party/blink/renderer/modules/shared_storage/shared_storage.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/speech/speech_grammar_list.h b/third_party/blink/renderer/modules/speech/speech_grammar_list.h
index b580523..5abb1224 100644
--- a/third_party/blink/renderer/modules/speech/speech_grammar_list.h
+++ b/third_party/blink/renderer/modules/speech/speech_grammar_list.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/modules/speech/speech_grammar.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/speech/speech_recognition.h b/third_party/blink/renderer/modules/speech/speech_recognition.h
index b43d07c..70cc5697 100644
--- a/third_party/blink/renderer/modules/speech/speech_recognition.h
+++ b/third_party/blink/renderer/modules/speech/speech_recognition.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/speech/speech_grammar_list.h"
 #include "third_party/blink/renderer/modules/speech/speech_recognition_result.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/speech/speech_recognition_event.h b/third_party/blink/renderer/modules/speech/speech_recognition_event.h
index e5ccf8e..c8e7c27f 100644
--- a/third_party/blink/renderer/modules/speech/speech_recognition_event.h
+++ b/third_party/blink/renderer/modules/speech/speech_recognition_event.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/modules/event_modules.h"
 #include "third_party/blink/renderer/modules/speech/speech_recognition_result.h"
 #include "third_party/blink/renderer/modules/speech/speech_recognition_result_list.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/speech/speech_recognition_result.h b/third_party/blink/renderer/modules/speech/speech_recognition_result.h
index a129767..ad4f2320 100644
--- a/third_party/blink/renderer/modules/speech/speech_recognition_result.h
+++ b/third_party/blink/renderer/modules/speech/speech_recognition_result.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/modules/speech/speech_recognition_alternative.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/speech/speech_recognition_result_list.h b/third_party/blink/renderer/modules/speech/speech_recognition_result_list.h
index 665faee..481878d 100644
--- a/third_party/blink/renderer/modules/speech/speech_recognition_result_list.h
+++ b/third_party/blink/renderer/modules/speech/speech_recognition_result_list.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/modules/speech/speech_recognition_result.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/speech/speech_synthesis.h b/third_party/blink/renderer/modules/speech/speech_synthesis.h
index 18684d58..3ce8bd6 100644
--- a/third_party/blink/renderer/modules/speech/speech_synthesis.h
+++ b/third_party/blink/renderer/modules/speech/speech_synthesis.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/modules/speech/speech_synthesis_voice.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_deque.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
diff --git a/third_party/blink/renderer/modules/speech/speech_synthesis_utterance.h b/third_party/blink/renderer/modules/speech/speech_synthesis_utterance.h
index 5dee5f80..9ac8c8eb 100644
--- a/third_party/blink/renderer/modules/speech/speech_synthesis_utterance.h
+++ b/third_party/blink/renderer/modules/speech/speech_synthesis_utterance.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/event_target_modules.h"
 #include "third_party/blink/renderer/modules/speech/speech_synthesis_voice.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 
diff --git a/third_party/blink/renderer/modules/storage/dom_window_storage.h b/third_party/blink/renderer/modules/storage/dom_window_storage.h
index a7451969..29fa2e7 100644
--- a/third_party/blink/renderer/modules/storage/dom_window_storage.h
+++ b/third_party/blink/renderer/modules/storage/dom_window_storage.h
@@ -7,7 +7,7 @@
 
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "third_party/blink/public/mojom/dom_storage/storage_area.mojom-blink-forward.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/storage/dom_window_storage_controller.h b/third_party/blink/renderer/modules/storage/dom_window_storage_controller.h
index f8470f5..d0351b9 100644
--- a/third_party/blink/renderer/modules/storage/dom_window_storage_controller.h
+++ b/third_party/blink/renderer/modules/storage/dom_window_storage_controller.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/storage/storage_area.h b/third_party/blink/renderer/modules/storage/storage_area.h
index 827455a..fcdd9355 100644
--- a/third_party/blink/renderer/modules/storage/storage_area.h
+++ b/third_party/blink/renderer/modules/storage/storage_area.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/storage/cached_storage_area.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/storage/storage_event.h b/third_party/blink/renderer/modules/storage/storage_event.h
index fdb328b..d5dea5b5 100644
--- a/third_party/blink/renderer/modules/storage/storage_event.h
+++ b/third_party/blink/renderer/modules/storage/storage_event.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_STORAGE_STORAGE_EVENT_H_
 
 #include "third_party/blink/renderer/core/dom/events/event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/storage/storage_namespace.h b/third_party/blink/renderer/modules/storage/storage_namespace.h
index 32af59c24..4b107a08 100644
--- a/third_party/blink/renderer/modules/storage/storage_namespace.h
+++ b/third_party/blink/renderer/modules/storage/storage_namespace.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/public/mojom/dom_storage/storage_area.mojom-blink-forward.h"
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/storage/blink_storage_key.h"
diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.h b/third_party/blink/renderer/modules/vibration/vibration_controller.h
index a15908c6..2ab8a54 100644
--- a/third_party/blink/renderer/modules/vibration/vibration_controller.h
+++ b/third_party/blink/renderer/modules/vibration/vibration_controller.h
@@ -25,7 +25,6 @@
 #include "third_party/blink/renderer/core/page/page_visibility_observer.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/timer.h"
diff --git a/third_party/blink/renderer/modules/video_rvfc/video_frame_callback_requester_impl.h b/third_party/blink/renderer/modules/video_rvfc/video_frame_callback_requester_impl.h
index e4326b9..6f1c38e 100644
--- a/third_party/blink/renderer/modules/video_rvfc/video_frame_callback_requester_impl.h
+++ b/third_party/blink/renderer/modules/video_rvfc/video_frame_callback_requester_impl.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/video_rvfc/video_frame_request_callback_collection.h"
 #include "third_party/blink/renderer/modules/xr/xr_frame_provider.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/video_rvfc/video_frame_request_callback_collection.h b/third_party/blink/renderer/modules/video_rvfc/video_frame_request_callback_collection.h
index 013a63d5..f5e42c3b 100644
--- a/third_party/blink/renderer/modules/video_rvfc/video_frame_request_callback_collection.h
+++ b/third_party/blink/renderer/modules/video_rvfc/video_frame_request_callback_collection.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/wake_lock/wake_lock.h b/third_party/blink/renderer/modules/wake_lock/wake_lock.h
index 76e9ebb..0199fd7 100644
--- a/third_party/blink/renderer/modules/wake_lock/wake_lock.h
+++ b/third_party/blink/renderer/modules/wake_lock/wake_lock.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/wake_lock/wake_lock_type.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
diff --git a/third_party/blink/renderer/modules/wake_lock/wake_lock_manager.h b/third_party/blink/renderer/modules/wake_lock/wake_lock_manager.h
index 7dba3718..2cfd2ef 100644
--- a/third_party/blink/renderer/modules/wake_lock/wake_lock_manager.h
+++ b/third_party/blink/renderer/modules/wake_lock/wake_lock_manager.h
@@ -9,7 +9,7 @@
 #include "services/device/public/mojom/wake_lock.mojom-blink-forward.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/wake_lock/wake_lock_type.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 
diff --git a/third_party/blink/renderer/modules/wake_lock/wake_lock_manager_test.cc b/third_party/blink/renderer/modules/wake_lock/wake_lock_manager_test.cc
index f1745814..3cf5333 100644
--- a/third_party/blink/renderer/modules/wake_lock/wake_lock_manager_test.cc
+++ b/third_party/blink/renderer/modules/wake_lock/wake_lock_manager_test.cc
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/dom/dom_exception.h"
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
 #include "third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel.h b/third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel.h
index 8776829..97990dd1 100644
--- a/third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel.h
+++ b/third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/wake_lock/wake_lock_type.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel_test.cc b/third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel_test.cc
index a4bbcea..a0bf221f 100644
--- a/third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel_test.cc
+++ b/third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel_test.cc
@@ -17,7 +17,7 @@
 #include "third_party/blink/renderer/modules/wake_lock/wake_lock.h"
 #include "third_party/blink/renderer/modules/wake_lock/wake_lock_manager.h"
 #include "third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/wake_lock/wake_lock_test.cc b/third_party/blink/renderer/modules/wake_lock/wake_lock_test.cc
index ee35774c..7998ad97 100644
--- a/third_party/blink/renderer/modules/wake_lock/wake_lock_test.cc
+++ b/third_party/blink/renderer/modules/wake_lock/wake_lock_test.cc
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/frame/navigator.h"
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.h b/third_party/blink/renderer/modules/webaudio/audio_context.h
index 626b5b0..ecb98bca 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_context.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_audio_context_options.h"
 #include "third_party/blink/renderer/core/html/media/autoplay_policy.h"
 #include "third_party/blink/renderer/modules/webaudio/base_audio_context.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/self_keep_alive.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
diff --git a/third_party/blink/renderer/modules/webaudio/audio_graph_tracer.h b/third_party/blink/renderer/modules/webaudio/audio_graph_tracer.h
index 45572fcb6..c52211f 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_graph_tracer.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_graph_tracer.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/modules/webaudio/audio_listener.h b/third_party/blink/renderer/modules/webaudio/audio_listener.h
index 557314f0..1cbdf89 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_listener.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_listener.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/modules/webaudio/audio_param.h"
 #include "third_party/blink/renderer/modules/webaudio/inspector_helper_mixin.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "ui/gfx/geometry/point3_f.h"
 #include "ui/gfx/geometry/vector3d_f.h"
 
diff --git a/third_party/blink/renderer/modules/webaudio/audio_param_map.h b/third_party/blink/renderer/modules/webaudio/audio_param_map.h
index 85dcb81b..0f47d3f 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_param_map.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_param_map.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/modules/webaudio/audio_param.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet.h b/third_party/blink/renderer/modules/webaudio/audio_worklet.h
index 939d38e..7a738d0 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_worklet.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_worklet.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/workers/worklet.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_processor.h b/third_party/blink/renderer/modules/webaudio/audio_worklet_processor.h
index ea08d51..a252edb 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_worklet_processor.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_processor.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_processor_definition.h b/third_party/blink/renderer/modules/webaudio/audio_worklet_processor_definition.h
index 47f1418..b79d781 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_worklet_processor_definition.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_processor_definition.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
index 483639f..eda97708 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/modules/webaudio/offline_audio_worklet_thread.h"
 #include "third_party/blink/renderer/modules/webaudio/realtime_audio_worklet_thread.h"
 #include "third_party/blink/renderer/modules/webaudio/semi_realtime_audio_worklet_thread.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h"
 #include "third_party/blink/renderer/platform/testing/testing_platform_support.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/third_party/blink/renderer/modules/webaudio/base_audio_context.h
index a750cc4..c4baf9d 100644
--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.h
+++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.h
@@ -46,7 +46,7 @@
 #include "third_party/blink/renderer/platform/audio/audio_bus.h"
 #include "third_party/blink/renderer/platform/audio/audio_callback_metric_reporter.h"
 #include "third_party/blink/renderer/platform/audio/audio_io_callback.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/threading.h"
diff --git a/third_party/blink/renderer/modules/webaudio/inspector_helper_mixin.h b/third_party/blink/renderer/modules/webaudio/inspector_helper_mixin.h
index 656132e1..4b3e145 100644
--- a/third_party/blink/renderer/modules/webaudio/inspector_helper_mixin.h
+++ b/third_party/blink/renderer/modules/webaudio/inspector_helper_mixin.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBAUDIO_INSPECTOR_HELPER_MIXIN_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBAUDIO_INSPECTOR_HELPER_MIXIN_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/webaudio/periodic_wave.h b/third_party/blink/renderer/modules/webaudio/periodic_wave.h
index 2ae7dd9df..19c59b7 100644
--- a/third_party/blink/renderer/modules/webaudio/periodic_wave.h
+++ b/third_party/blink/renderer/modules/webaudio/periodic_wave.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/webcodecs/video_frame_transfer_list.h b/third_party/blink/renderer/modules/webcodecs/video_frame_transfer_list.h
index c49f32b..85842e8b 100644
--- a/third_party/blink/renderer/modules/webcodecs/video_frame_transfer_list.h
+++ b/third_party/blink/renderer/modules/webcodecs/video_frame_transfer_list.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/serialization/transferables.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/webdatabase/database_client.h b/third_party/blink/renderer/modules/webdatabase/database_client.h
index cfc568b..3cce2e8 100644
--- a/third_party/blink/renderer/modules/webdatabase/database_client.h
+++ b/third_party/blink/renderer/modules/webdatabase/database_client.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/modules/webdatabase/database_context.h b/third_party/blink/renderer/modules/webdatabase/database_context.h
index d3c0caa..010e3e31 100644
--- a/third_party/blink/renderer/modules/webdatabase/database_context.h
+++ b/third_party/blink/renderer/modules/webdatabase/database_context.h
@@ -29,7 +29,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_DATABASE_CONTEXT_H_
 
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/webdatabase/database_thread.h b/third_party/blink/renderer/modules/webdatabase/database_thread.h
index 8c84a1e..d669e0a 100644
--- a/third_party/blink/renderer/modules/webdatabase/database_thread.h
+++ b/third_party/blink/renderer/modules/webdatabase/database_thread.h
@@ -30,7 +30,7 @@
 
 #include <memory>
 #include "base/synchronization/waitable_event.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/modules/webdatabase/inspector_database_agent.h b/third_party/blink/renderer/modules/webdatabase/inspector_database_agent.h
index 4bbdcbd2..2e5e845 100644
--- a/third_party/blink/renderer/modules/webdatabase/inspector_database_agent.h
+++ b/third_party/blink/renderer/modules/webdatabase/inspector_database_agent.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/core/inspector/protocol/database.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/webdatabase/inspector_database_resource.h b/third_party/blink/renderer/modules/webdatabase/inspector_database_resource.h
index 98b7724..356c9f5 100644
--- a/third_party/blink/renderer/modules/webdatabase/inspector_database_resource.h
+++ b/third_party/blink/renderer/modules/webdatabase/inspector_database_resource.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_INSPECTOR_DATABASE_RESOURCE_H_
 
 #include "third_party/blink/renderer/core/inspector/protocol/database.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/webdatabase/sql_result_set.cc b/third_party/blink/renderer/modules/webdatabase/sql_result_set.cc
index 7d4bc96..83b9108c 100644
--- a/third_party/blink/renderer/modules/webdatabase/sql_result_set.cc
+++ b/third_party/blink/renderer/modules/webdatabase/sql_result_set.cc
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/modules/webdatabase/sql_result_set.h"
 
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/wtf.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webdatabase/sql_statement_backend.h b/third_party/blink/renderer/modules/webdatabase/sql_statement_backend.h
index 03fa6db..fb4e4ff 100644
--- a/third_party/blink/renderer/modules/webdatabase/sql_statement_backend.h
+++ b/third_party/blink/renderer/modules/webdatabase/sql_statement_backend.h
@@ -30,7 +30,7 @@
 
 #include <memory>
 #include "third_party/blink/renderer/modules/webdatabase/sqlite/sql_value.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/webdatabase/sql_transaction.h b/third_party/blink/renderer/modules/webdatabase/sql_transaction.h
index b10ff84..ee2c70e 100644
--- a/third_party/blink/renderer/modules/webdatabase/sql_transaction.h
+++ b/third_party/blink/renderer/modules/webdatabase/sql_transaction.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/modules/webdatabase/sql_statement.h"
 #include "third_party/blink/renderer/modules/webdatabase/sql_transaction_state_machine.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/webdatabase/sql_transaction_backend.h b/third_party/blink/renderer/modules/webdatabase/sql_transaction_backend.h
index e7de5b4..d54cada 100644
--- a/third_party/blink/renderer/modules/webdatabase/sql_transaction_backend.h
+++ b/third_party/blink/renderer/modules/webdatabase/sql_transaction_backend.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/modules/webdatabase/sql_statement.h"
 #include "third_party/blink/renderer/modules/webdatabase/sql_statement_backend.h"
 #include "third_party/blink/renderer/modules/webdatabase/sql_transaction_state_machine.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/threading_primitives.h"
diff --git a/third_party/blink/renderer/modules/webdatabase/sql_transaction_coordinator.h b/third_party/blink/renderer/modules/webdatabase/sql_transaction_coordinator.h
index e8ef61fc..5586258f6 100644
--- a/third_party/blink/renderer/modules/webdatabase/sql_transaction_coordinator.h
+++ b/third_party/blink/renderer/modules/webdatabase/sql_transaction_coordinator.h
@@ -32,7 +32,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQL_TRANSACTION_COORDINATOR_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQL_TRANSACTION_COORDINATOR_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/modules/webgl/webgl_extension.h b/third_party/blink/renderer/modules/webgl/webgl_extension.h
index 93437d6..bd107c3 100644
--- a/third_party/blink/renderer/modules/webgl/webgl_extension.h
+++ b/third_party/blink/renderer/modules/webgl/webgl_extension.h
@@ -28,7 +28,7 @@
 
 #include "third_party/blink/renderer/modules/webgl/webgl_extension_name.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webgl/webgl_vertex_array_object_base.h b/third_party/blink/renderer/modules/webgl/webgl_vertex_array_object_base.h
index 35cd529..289e605a 100644
--- a/third_party/blink/renderer/modules/webgl/webgl_vertex_array_object_base.h
+++ b/third_party/blink/renderer/modules/webgl/webgl_vertex_array_object_base.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/modules/webgl/webgl_buffer.h"
 #include "third_party/blink/renderer/modules/webgl/webgl_context_object.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_swap_chain.h b/third_party/blink/renderer/modules/webgpu/gpu_swap_chain.h
index 81dad2f..3b6a89b 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_swap_chain.h
+++ b/third_party/blink/renderer/modules/webgpu/gpu_swap_chain.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/modules/webgpu/dawn_object.h"
 #include "third_party/blink/renderer/platform/graphics/gpu/webgpu_swap_buffer_provider.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace cc {
 class Layer;
diff --git a/third_party/blink/renderer/modules/webid/navigator_web_id.h b/third_party/blink/renderer/modules/webid/navigator_web_id.h
index 257be8c2..7656b9c2 100644
--- a/third_party/blink/renderer/modules/webid/navigator_web_id.h
+++ b/third_party/blink/renderer/modules/webid/navigator_web_id.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBID_NAVIGATOR_WEB_ID_H_
 
 #include "third_party/blink/renderer/core/frame/navigator.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webmidi/midi_access.h b/third_party/blink/renderer/modules/webmidi/midi_access.h
index be182b6d..50d636f 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_access.h
+++ b/third_party/blink/renderer/modules/webmidi/midi_access.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/renderer/modules/event_target_modules.h"
 #include "third_party/blink/renderer/modules/webmidi/midi_access_initializer.h"
 #include "third_party/blink/renderer/modules/webmidi/midi_dispatcher.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webmidi/midi_dispatcher.h b/third_party/blink/renderer/modules/webmidi/midi_dispatcher.h
index a7d0eee..19ab440d 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_dispatcher.h
+++ b/third_party/blink/renderer/modules/webmidi/midi_dispatcher.h
@@ -7,7 +7,7 @@
 
 #include "media/midi/midi_service.mojom-blink.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/modules/webmidi/midi_input.cc b/third_party/blink/renderer/modules/webmidi/midi_input.cc
index cf2b13d..043e78d 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_input.cc
+++ b/third_party/blink/renderer/modules/webmidi/midi_input.cc
@@ -34,7 +34,6 @@
 #include "third_party/blink/renderer/modules/webmidi/midi_access.h"
 #include "third_party/blink/renderer/modules/webmidi/midi_message_event.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 
diff --git a/third_party/blink/renderer/modules/webmidi/midi_port.h b/third_party/blink/renderer/modules/webmidi/midi_port.h
index e5ea492..e3e70f9b 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_port.h
+++ b/third_party/blink/renderer/modules/webmidi/midi_port.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/event_target_modules.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/webmidi/midi_port_map.h b/third_party/blink/renderer/modules/webmidi/midi_port_map.h
index 81c0e86..29a954e 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_port_map.h
+++ b/third_party/blink/renderer/modules/webmidi/midi_port_map.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webmidi/navigator_web_midi.h b/third_party/blink/renderer/modules/webmidi/navigator_web_midi.h
index 648c5080..01121a7 100644
--- a/third_party/blink/renderer/modules/webmidi/navigator_web_midi.h
+++ b/third_party/blink/renderer/modules/webmidi/navigator_web_midi.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_midi_options.h"
 #include "third_party/blink/renderer/core/frame/navigator.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webshare/navigator_share.h b/third_party/blink/renderer/modules/webshare/navigator_share.h
index a4d8ce8..e6b572f 100644
--- a/third_party/blink/renderer/modules/webshare/navigator_share.h
+++ b/third_party/blink/renderer/modules/webshare/navigator_share.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/frame/navigator.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/modules/websockets/close_event.h b/third_party/blink/renderer/modules/websockets/close_event.h
index 6cb87945..4e58588c 100644
--- a/third_party/blink/renderer/modules/websockets/close_event.h
+++ b/third_party/blink/renderer/modules/websockets/close_event.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/core/event_type_names.h"
 #include "third_party/blink/renderer/modules/event_modules.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/websockets/dom_websocket.h b/third_party/blink/renderer/modules/websockets/dom_websocket.h
index 6f85955..7a20f3ef 100644
--- a/third_party/blink/renderer/modules/websockets/dom_websocket.h
+++ b/third_party/blink/renderer/modules/websockets/dom_websocket.h
@@ -46,7 +46,7 @@
 #include "third_party/blink/renderer/modules/websockets/websocket_channel_impl.h"
 #include "third_party/blink/renderer/modules/websockets/websocket_common.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
diff --git a/third_party/blink/renderer/modules/websockets/dom_websocket_test.cc b/third_party/blink/renderer/modules/websockets/dom_websocket_test.cc
index 6314a92..32ee8c83 100644
--- a/third_party/blink/renderer/modules/websockets/dom_websocket_test.cc
+++ b/third_party/blink/renderer/modules/websockets/dom_websocket_test.cc
@@ -22,7 +22,6 @@
 #include "third_party/blink/renderer/modules/websockets/mock_websocket_channel.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
diff --git a/third_party/blink/renderer/modules/websockets/web_pepper_socket_channel_client_proxy.h b/third_party/blink/renderer/modules/websockets/web_pepper_socket_channel_client_proxy.h
index 5c5bf02..dde5c6cc 100644
--- a/third_party/blink/renderer/modules/websockets/web_pepper_socket_channel_client_proxy.h
+++ b/third_party/blink/renderer/modules/websockets/web_pepper_socket_channel_client_proxy.h
@@ -9,7 +9,7 @@
 #include <memory>
 #include "third_party/blink/renderer/modules/websockets/web_pepper_socket_impl.h"
 #include "third_party/blink/renderer/modules/websockets/websocket_channel_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel.h b/third_party/blink/renderer/modules/websockets/websocket_channel.h
index c821c89..73133412 100644
--- a/third_party/blink/renderer/modules/websockets/websocket_channel.h
+++ b/third_party/blink/renderer/modules/websockets/websocket_channel.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h"
 #include "third_party/blink/renderer/bindings/core/v8/source_location.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_client.h b/third_party/blink/renderer/modules/websockets/websocket_channel_client.h
index 0c1da3b..07992169 100644
--- a/third_party/blink/renderer/modules/websockets/websocket_channel_client.h
+++ b/third_party/blink/renderer/modules/websockets/websocket_channel_client.h
@@ -34,7 +34,7 @@
 #include <stdint.h>
 #include "base/containers/span.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.h b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.h
index f8cbbed6..1e8823ce 100644
--- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.h
+++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.h
@@ -49,7 +49,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/websockets/websocket_channel.h"
 #include "third_party/blink/renderer/modules/websockets/websocket_message_chunk_accumulator.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl_test.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl_test.cc
index 6f58e1b5..3f3eecd 100644
--- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl_test.cc
+++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl_test.cc
@@ -27,7 +27,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h"
 #include "third_party/blink/renderer/modules/websockets/websocket_channel.h"
 #include "third_party/blink/renderer/modules/websockets/websocket_channel_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
diff --git a/third_party/blink/renderer/modules/webusb/usb.h b/third_party/blink/renderer/modules/webusb/usb.h
index 9758e50..9822203 100644
--- a/third_party/blink/renderer/modules/webusb/usb.h
+++ b/third_party/blink/renderer/modules/webusb/usb.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/execution_context/security_context.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
diff --git a/third_party/blink/renderer/modules/webusb/usb_configuration.h b/third_party/blink/renderer/modules/webusb/usb_configuration.h
index f066e11..3441fe6 100644
--- a/third_party/blink/renderer/modules/webusb/usb_configuration.h
+++ b/third_party/blink/renderer/modules/webusb/usb_configuration.h
@@ -8,7 +8,7 @@
 #include "services/device/public/mojom/usb_device.mojom-blink.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/webusb/usb_connection_event.h b/third_party/blink/renderer/modules/webusb/usb_connection_event.h
index 23de8318..5da20a0 100644
--- a/third_party/blink/renderer/modules/webusb/usb_connection_event.h
+++ b/third_party/blink/renderer/modules/webusb/usb_connection_event.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBUSB_USB_CONNECTION_EVENT_H_
 
 #include "third_party/blink/renderer/modules/event_modules.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/webusb/usb_device.h b/third_party/blink/renderer/modules/webusb/usb_device.h
index 21231db..38f01a6d 100644
--- a/third_party/blink/renderer/modules/webusb/usb_device.h
+++ b/third_party/blink/renderer/modules/webusb/usb_device.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_piece.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/webusb/usb_in_transfer_result.h b/third_party/blink/renderer/modules/webusb/usb_in_transfer_result.h
index b081f7f..83dcd89 100644
--- a/third_party/blink/renderer/modules/webusb/usb_in_transfer_result.h
+++ b/third_party/blink/renderer/modules/webusb/usb_in_transfer_result.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h"
 #include "third_party/blink/renderer/core/typed_arrays/dom_data_view.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/webusb/usb_isochronous_in_transfer_result.h b/third_party/blink/renderer/modules/webusb/usb_isochronous_in_transfer_result.h
index 9151d1d..5b3925c 100644
--- a/third_party/blink/renderer/modules/webusb/usb_isochronous_in_transfer_result.h
+++ b/third_party/blink/renderer/modules/webusb/usb_isochronous_in_transfer_result.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_data_view.h"
 #include "third_party/blink/renderer/modules/webusb/usb_isochronous_in_transfer_packet.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webusb/usb_isochronous_out_transfer_result.h b/third_party/blink/renderer/modules/webusb/usb_isochronous_out_transfer_result.h
index 5980e24..45b55ed 100644
--- a/third_party/blink/renderer/modules/webusb/usb_isochronous_out_transfer_result.h
+++ b/third_party/blink/renderer/modules/webusb/usb_isochronous_out_transfer_result.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_data_view.h"
 #include "third_party/blink/renderer/modules/webusb/usb_isochronous_out_transfer_packet.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webusb/usb_out_transfer_result.h b/third_party/blink/renderer/modules/webusb/usb_out_transfer_result.h
index 629d1ac..c088782c 100644
--- a/third_party/blink/renderer/modules/webusb/usb_out_transfer_result.h
+++ b/third_party/blink/renderer/modules/webusb/usb_out_transfer_result.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBUSB_USB_OUT_TRANSFER_RESULT_H_
 
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/xr/xr_canvas_input_provider.h b/third_party/blink/renderer/modules/xr/xr_canvas_input_provider.h
index 71dfa214..4300560 100644
--- a/third_party/blink/renderer/modules/xr/xr_canvas_input_provider.h
+++ b/third_party/blink/renderer/modules/xr/xr_canvas_input_provider.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_XR_XR_CANVAS_INPUT_PROVIDER_H_
 
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
diff --git a/third_party/blink/renderer/modules/xr/xr_depth_manager.h b/third_party/blink/renderer/modules/xr/xr_depth_manager.h
index da67c6b..2510d260 100644
--- a/third_party/blink/renderer/modules/xr/xr_depth_manager.h
+++ b/third_party/blink/renderer/modules/xr/xr_depth_manager.h
@@ -8,7 +8,7 @@
 #include "base/types/pass_key.h"
 #include "device/vr/public/mojom/vr_service.mojom-blink.h"
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/xr/xr_frame.h b/third_party/blink/renderer/modules/xr/xr_frame.h
index 7fc66dc..4773d01 100644
--- a/third_party/blink/renderer/modules/xr/xr_frame.h
+++ b/third_party/blink/renderer/modules/xr/xr_frame.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/modules/xr/xr_joint_pose.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/modules/xr/xr_frame_provider.h b/third_party/blink/renderer/modules/xr/xr_frame_provider.h
index d1336d4..f5bb044 100644
--- a/third_party/blink/renderer/modules/xr/xr_frame_provider.h
+++ b/third_party/blink/renderer/modules/xr/xr_frame_provider.h
@@ -9,7 +9,7 @@
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/disallow_new_wrapper.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
diff --git a/third_party/blink/renderer/modules/xr/xr_frame_request_callback_collection.h b/third_party/blink/renderer/modules/xr/xr_frame_request_callback_collection.h
index 37d03f5..68fd6ca 100644
--- a/third_party/blink/renderer/modules/xr/xr_frame_request_callback_collection.h
+++ b/third_party/blink/renderer/modules/xr/xr_frame_request_callback_collection.h
@@ -9,7 +9,7 @@
 
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/xr/xr_input_source.h b/third_party/blink/renderer/modules/xr/xr_input_source.h
index fda663b..6dc756e1 100644
--- a/third_party/blink/renderer/modules/xr/xr_input_source.h
+++ b/third_party/blink/renderer/modules/xr/xr_input_source.h
@@ -11,7 +11,7 @@
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/modules/gamepad/gamepad.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/modules/xr/xr_light_probe.h b/third_party/blink/renderer/modules/xr/xr_light_probe.h
index fd582663..ed351f1a 100644
--- a/third_party/blink/renderer/modules/xr/xr_light_probe.h
+++ b/third_party/blink/renderer/modules/xr/xr_light_probe.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/xr/xr_plane_manager.h b/third_party/blink/renderer/modules/xr/xr_plane_manager.h
index cf133fe1..0e0fe137 100644
--- a/third_party/blink/renderer/modules/xr/xr_plane_manager.h
+++ b/third_party/blink/renderer/modules/xr/xr_plane_manager.h
@@ -8,7 +8,7 @@
 #include "base/types/pass_key.h"
 #include "device/vr/public/mojom/vr_service.mojom-blink.h"
 #include "third_party/blink/renderer/modules/xr/xr_session.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/xr/xr_pose.h b/third_party/blink/renderer/modules/xr/xr_pose.h
index 3418a3b..92396df 100644
--- a/third_party/blink/renderer/modules/xr/xr_pose.h
+++ b/third_party/blink/renderer/modules/xr/xr_pose.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_XR_XR_POSE_H_
 
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
 
diff --git a/third_party/blink/renderer/modules/xr/xr_render_state.h b/third_party/blink/renderer/modules/xr/xr_render_state.h
index befe3dae..2d8d64d 100644
--- a/third_party/blink/renderer/modules/xr/xr_render_state.h
+++ b/third_party/blink/renderer/modules/xr/xr_render_state.h
@@ -7,7 +7,7 @@
 
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/xr/xr_session.h b/third_party/blink/renderer/modules/xr/xr_session.h
index 44a1331..6c70f9b9 100644
--- a/third_party/blink/renderer/modules/xr/xr_session.h
+++ b/third_party/blink/renderer/modules/xr/xr_session.h
@@ -22,7 +22,7 @@
 #include "third_party/blink/renderer/modules/xr/xr_input_source_array.h"
 #include "third_party/blink/renderer/modules/xr/xr_reference_space.h"
 #include "third_party/blink/renderer/platform/geometry/double_size.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
diff --git a/third_party/blink/renderer/modules/xr/xr_space.h b/third_party/blink/renderer/modules/xr/xr_space.h
index d7a642b..8574e38 100644
--- a/third_party/blink/renderer/modules/xr/xr_space.h
+++ b/third_party/blink/renderer/modules/xr/xr_space.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/modules/xr/xr_system.h b/third_party/blink/renderer/modules/xr/xr_system.h
index 19b2459..315552f 100644
--- a/third_party/blink/renderer/modules/xr/xr_system.h
+++ b/third_party/blink/renderer/modules/xr/xr_system.h
@@ -20,7 +20,7 @@
 #include "third_party/blink/renderer/modules/xr/xr_exit_fullscreen_observer.h"
 #include "third_party/blink/renderer/modules/xr/xr_session.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
diff --git a/third_party/blink/renderer/modules/xr/xr_view.h b/third_party/blink/renderer/modules/xr/xr_view.h
index d28a775a..c3ef764 100644
--- a/third_party/blink/renderer/modules/xr/xr_view.h
+++ b/third_party/blink/renderer/modules/xr/xr_view.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h"
 #include "third_party/blink/renderer/modules/xr/xr_viewport.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/audio/audio_source_provider_client.h b/third_party/blink/renderer/platform/audio/audio_source_provider_client.h
index b3605e6..e376f79c 100644
--- a/third_party/blink/renderer/platform/audio/audio_source_provider_client.h
+++ b/third_party/blink/renderer/platform/audio/audio_source_provider_client.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_AUDIO_AUDIO_SOURCE_PROVIDER_CLIENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_AUDIO_AUDIO_SOURCE_PROVIDER_CLIENT_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/bindings/active_script_wrappable_base.h b/third_party/blink/renderer/platform/bindings/active_script_wrappable_base.h
index 0af0d66..781c253fb 100644
--- a/third_party/blink/renderer/platform/bindings/active_script_wrappable_base.h
+++ b/third_party/blink/renderer/platform/bindings/active_script_wrappable_base.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_ACTIVE_SCRIPT_WRAPPABLE_BASE_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_ACTIVE_SCRIPT_WRAPPABLE_BASE_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/platform/bindings/active_script_wrappable_manager.h b/third_party/blink/renderer/platform/bindings/active_script_wrappable_manager.h
index 0683f60..eb351a7 100644
--- a/third_party/blink/renderer/platform/bindings/active_script_wrappable_manager.h
+++ b/third_party/blink/renderer/platform/bindings/active_script_wrappable_manager.h
@@ -9,7 +9,6 @@
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/bindings/callback_function_base.h b/third_party/blink/renderer/platform/bindings/callback_function_base.h
index bc50aa47..dcede63 100644
--- a/third_party/blink/renderer/platform/bindings/callback_function_base.h
+++ b/third_party/blink/renderer/platform/bindings/callback_function_base.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/bindings/callback_interface_base.h b/third_party/blink/renderer/platform/bindings/callback_interface_base.h
index 9c8c813..43cf545 100644
--- a/third_party/blink/renderer/platform/bindings/callback_interface_base.h
+++ b/third_party/blink/renderer/platform/bindings/callback_interface_base.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/bindings/custom_wrappable.h b/third_party/blink/renderer/platform/bindings/custom_wrappable.h
index 52dd133..225b165 100644
--- a/third_party/blink/renderer/platform/bindings/custom_wrappable.h
+++ b/third_party/blink/renderer/platform/bindings/custom_wrappable.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_CUSTOM_WRAPPABLE_H_
 
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/bindings/dictionary_base.h b/third_party/blink/renderer/platform/bindings/dictionary_base.h
index 431e08d0..b167aa6 100644
--- a/third_party/blink/renderer/platform/bindings/dictionary_base.h
+++ b/third_party/blink/renderer/platform/bindings/dictionary_base.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_DICTIONARY_BASE_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_DICTIONARY_BASE_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/platform/bindings/multi_worlds_v8_reference.h b/third_party/blink/renderer/platform/bindings/multi_worlds_v8_reference.h
index 7d794b3..6a2dd982 100644
--- a/third_party/blink/renderer/platform/bindings/multi_worlds_v8_reference.h
+++ b/third_party/blink/renderer/platform/bindings/multi_worlds_v8_reference.h
@@ -8,7 +8,7 @@
 #include "base/notreached.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/bindings/union_base.h b/third_party/blink/renderer/platform/bindings/union_base.h
index d0a9590..ea86287 100644
--- a/third_party/blink/renderer/platform/bindings/union_base.h
+++ b/third_party/blink/renderer/platform/bindings/union_base.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_UNION_BASE_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_UNION_BASE_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/platform/bindings/v8_object_data_store.h b/third_party/blink/renderer/platform/bindings/v8_object_data_store.h
index 6b602e6..c4242f29 100644
--- a/third_party/blink/renderer/platform/bindings/v8_object_data_store.h
+++ b/third_party/blink/renderer/platform/bindings/v8_object_data_store.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/platform/bindings/multi_worlds_v8_reference.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/bindings/v8_per_context_data.h b/third_party/blink/renderer/platform/bindings/v8_per_context_data.h
index e475bece..44e9d82 100644
--- a/third_party/blink/renderer/platform/bindings/v8_per_context_data.h
+++ b/third_party/blink/renderer/platform/bindings/v8_per_context_data.h
@@ -39,7 +39,6 @@
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h b/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h
index 1851bf42c..0f03682 100644
--- a/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h
+++ b/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/platform/bindings/runtime_call_stats.h"
 #include "third_party/blink/renderer/platform/bindings/scoped_persistent.h"
 #include "third_party/blink/renderer/platform/bindings/v8_global_value_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
diff --git a/third_party/blink/renderer/platform/content_decryption_module_result.h b/third_party/blink/renderer/platform/content_decryption_module_result.h
index e8a6e90..d80a3826 100644
--- a/third_party/blink/renderer/platform/content_decryption_module_result.h
+++ b/third_party/blink/renderer/platform/content_decryption_module_result.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/public/platform/web_content_decryption_module_exception.h"
 #include "third_party/blink/public/platform/web_content_decryption_module_result.h"
 #include "third_party/blink/public/platform/web_encrypted_media_key_information.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/context_lifecycle_notifier.h b/third_party/blink/renderer/platform/context_lifecycle_notifier.h
index 43024af..9577987 100644
--- a/third_party/blink/renderer/platform/context_lifecycle_notifier.h
+++ b/third_party/blink/renderer/platform/context_lifecycle_notifier.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_CONTEXT_LIFECYCLE_NOTIFIER_H_
 
 #include "base/dcheck_is_on.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap_observer_set.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/encrypted_media_request.h b/third_party/blink/renderer/platform/encrypted_media_request.h
index 7d2b8f8..b94411de 100644
--- a/third_party/blink/renderer/platform/encrypted_media_request.h
+++ b/third_party/blink/renderer/platform/encrypted_media_request.h
@@ -7,7 +7,7 @@
 
 #include <memory>
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/fonts/font_cache_client.h b/third_party/blink/renderer/platform/fonts/font_cache_client.h
index 89e0da6a..093a32b 100644
--- a/third_party/blink/renderer/platform/fonts/font_cache_client.h
+++ b/third_party/blink/renderer/platform/fonts/font_cache_client.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_FONT_CACHE_CLIENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_FONT_CACHE_CLIENT_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/fonts/font_fallback_map.h b/third_party/blink/renderer/platform/fonts/font_fallback_map.h
index e145c710..92ac912 100644
--- a/third_party/blink/renderer/platform/fonts/font_fallback_map.h
+++ b/third_party/blink/renderer/platform/fonts/font_fallback_map.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/platform/fonts/font_description.h"
 #include "third_party/blink/renderer/platform/fonts/font_fallback_list.h"
 #include "third_party/blink/renderer/platform/fonts/font_selector_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/fonts/font_selector_client.h b/third_party/blink/renderer/platform/fonts/font_selector_client.h
index 2a0ac92..bade335e 100644
--- a/third_party/blink/renderer/platform/fonts/font_selector_client.h
+++ b/third_party/blink/renderer/platform/fonts/font_selector_client.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_FONT_SELECTOR_CLIENT_H_
 
 #include "third_party/blink/renderer/platform/fonts/font_invalidation_reason.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/animation_worklet_mutator.h b/third_party/blink/renderer/platform/graphics/animation_worklet_mutator.h
index 46b1a96..de72427 100644
--- a/third_party/blink/renderer/platform/graphics/animation_worklet_mutator.h
+++ b/third_party/blink/renderer/platform/graphics/animation_worklet_mutator.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_ANIMATION_WORKLET_MUTATOR_H_
 
 #include "third_party/blink/renderer/platform/graphics/animation_worklet_mutators_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl_test.cc b/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl_test.cc
index 9e21c7d..bdf5792c 100644
--- a/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl_test.cc
+++ b/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl_test.cc
@@ -13,7 +13,7 @@
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/renderer/platform/graphics/animation_worklet_mutator.h"
 #include "third_party/blink/renderer/platform/graphics/compositor_mutator_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
diff --git a/third_party/blink/renderer/platform/graphics/begin_frame_provider.h b/third_party/blink/renderer/platform/graphics/begin_frame_provider.h
index 60a2f5d2..9e73c5b 100644
--- a/third_party/blink/renderer/platform/graphics/begin_frame_provider.h
+++ b/third_party/blink/renderer/platform/graphics/begin_frame_provider.h
@@ -13,7 +13,7 @@
 #include "mojo/public/cpp/bindings/remote.h"
 #include "services/viz/public/mojom/compositing/compositor_frame_sink.mojom-blink.h"
 #include "third_party/blink/public/mojom/frame_sinks/embedded_frame_sink.mojom-blink.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/graphics/filters/filter.h b/third_party/blink/renderer/platform/graphics/filters/filter.h
index 89915cab..ef7b22b41 100644
--- a/third_party/blink/renderer/platform/graphics/filters/filter.h
+++ b/third_party/blink/renderer/platform/graphics/filters/filter.h
@@ -21,7 +21,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_FILTERS_FILTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_FILTERS_FILTER_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "ui/gfx/geometry/point3_f.h"
diff --git a/third_party/blink/renderer/platform/graphics/filters/filter_effect.h b/third_party/blink/renderer/platform/graphics/filters/filter_effect.h
index f5f935e1..78af8a4 100644
--- a/third_party/blink/renderer/platform/graphics/filters/filter_effect.h
+++ b/third_party/blink/renderer/platform/graphics/filters/filter_effect.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/platform/graphics/interpolation_space.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_filter.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/platform/graphics/gpu/xr_frame_transport.h b/third_party/blink/renderer/platform/graphics/gpu/xr_frame_transport.h
index 420b4a4d..869c748c 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/xr_frame_transport.h
+++ b/third_party/blink/renderer/platform/graphics/gpu/xr_frame_transport.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/public/platform/web_graphics_context_3d_provider.h"
 #include "third_party/blink/renderer/platform/context_lifecycle_notifier.h"
 #include "third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/graphics/image_observer.h b/third_party/blink/renderer/platform/graphics/image_observer.h
index f0e6a72..7339460 100644
--- a/third_party/blink/renderer/platform/graphics/image_observer.h
+++ b/third_party/blink/renderer/platform/graphics/image_observer.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_IMAGE_OBSERVER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_IMAGE_OBSERVER_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/paint/display_item_client.h b/third_party/blink/renderer/platform/graphics/paint/display_item_client.h
index afb894d..dc1ff7a 100644
--- a/third_party/blink/renderer/platform/graphics/paint/display_item_client.h
+++ b/third_party/blink/renderer/platform/graphics/paint/display_item_client.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/platform/graphics/dom_node_id.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "ui/gfx/geometry/rect.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/foreign_layer_display_item.h b/third_party/blink/renderer/platform/graphics/paint/foreign_layer_display_item.h
index 87c8478b..6496bfb 100644
--- a/third_party/blink/renderer/platform/graphics/paint/foreign_layer_display_item.h
+++ b/third_party/blink/renderer/platform/graphics/paint/foreign_layer_display_item.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/display_item.h"
 #include "third_party/blink/renderer/platform/graphics/paint/display_item_client.h"
 #include "third_party/blink/renderer/platform/graphics/paint/property_tree_state.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/paint_worklet_painter.h b/third_party/blink/renderer/platform/graphics/paint_worklet_painter.h
index ea65999..79cb537b 100644
--- a/third_party/blink/renderer/platform/graphics/paint_worklet_painter.h
+++ b/third_party/blink/renderer/platform/graphics/paint_worklet_painter.h
@@ -8,7 +8,7 @@
 #include "cc/paint/paint_worklet_input.h"
 #include "cc/paint/paint_worklet_job.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_record.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 
diff --git a/third_party/blink/renderer/platform/heap/test/concurrent_marking_test.cc b/third_party/blink/renderer/platform/heap/test/concurrent_marking_test.cc
index e21da88..79fe679 100644
--- a/third_party/blink/renderer/platform/heap/test/concurrent_marking_test.cc
+++ b/third_party/blink/renderer/platform/heap/test/concurrent_marking_test.cc
@@ -289,21 +289,6 @@
   driver.FinishGC();
 }
 
-#define TEST_VECTOR_COLLECTION(name, type)                                \
-  TEST_F(ConcurrentMarkingTest, AddTo##name) { AddToCollection<type>(); } \
-  TEST_F(ConcurrentMarkingTest, RemoveFromBeginningOf##name) {            \
-    RemoveFromBeginningOfCollection<type>();                              \
-  }                                                                       \
-  TEST_F(ConcurrentMarkingTest, RemoveFromMiddleOf##name) {               \
-    RemoveFromMiddleOfCollection<type>();                                 \
-  }                                                                       \
-  TEST_F(ConcurrentMarkingTest, RemoveFromEndOf##name) {                  \
-    RemoveFromEndOfCollection<type>();                                    \
-  }                                                                       \
-  TEST_F(ConcurrentMarkingTest, Clear##name) { ClearCollection<type>(); } \
-  TEST_F(ConcurrentMarkingTest, Swap##name) { SwapCollections<type>(); }  \
-  TEST_F(ConcurrentMarkingTest, PopFrom##name) { PopFromCollection<type>(); }
-
 template <typename T, wtf_size_t inlineCapacity>
 struct MethodAdapter<HeapVector<T, inlineCapacity>>
     : public MethodAdapterBase<HeapVector<T, inlineCapacity>> {
diff --git a/third_party/blink/renderer/platform/heap/test/heap_compact_test.cc b/third_party/blink/renderer/platform/heap/test/heap_compact_test.cc
index b1eecd4..0bf56a0 100644
--- a/third_party/blink/renderer/platform/heap/test/heap_compact_test.cc
+++ b/third_party/blink/renderer/platform/heap/test/heap_compact_test.cc
@@ -7,7 +7,7 @@
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/heap_test_utilities.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
diff --git a/third_party/blink/renderer/platform/heap/test/heap_test.cc b/third_party/blink/renderer/platform/heap/test/heap_test.cc
index a9194b4..b74689d 100644
--- a/third_party/blink/renderer/platform/heap/test/heap_test.cc
+++ b/third_party/blink/renderer/platform/heap/test/heap_test.cc
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/heap_test_objects.h"
 #include "third_party/blink/renderer/platform/heap/heap_test_platform.h"
 #include "third_party/blink/renderer/platform/heap/heap_test_utilities.h"
diff --git a/third_party/blink/renderer/platform/heap/test/persistent_test.cc b/third_party/blink/renderer/platform/heap/test/persistent_test.cc
index dd9dab4..2bc4abb 100644
--- a/third_party/blink/renderer/platform/heap/test/persistent_test.cc
+++ b/third_party/blink/renderer/platform/heap/test/persistent_test.cc
@@ -6,7 +6,7 @@
 
 #include <memory>
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/heap_test_utilities.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
diff --git a/third_party/blink/renderer/platform/instrumentation/memory_pressure_listener.h b/third_party/blink/renderer/platform/instrumentation/memory_pressure_listener.h
index 842d153..eaa6c26 100644
--- a/third_party/blink/renderer/platform/instrumentation/memory_pressure_listener.h
+++ b/third_party/blink/renderer/platform/instrumentation/memory_pressure_listener.h
@@ -7,7 +7,7 @@
 
 #include "base/memory/memory_pressure_listener.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/threading_primitives.h"
diff --git a/third_party/blink/renderer/platform/instrumentation/tracing/memory_cache_dump_provider.h b/third_party/blink/renderer/platform/instrumentation/tracing/memory_cache_dump_provider.h
index cf7eb618..b8e13ff 100644
--- a/third_party/blink/renderer/platform/instrumentation/tracing/memory_cache_dump_provider.h
+++ b/third_party/blink/renderer/platform/instrumentation/tracing/memory_cache_dump_provider.h
@@ -7,7 +7,7 @@
 
 #include "base/trace_event/memory_dump_provider.h"
 #include "base/trace_event/process_memory_dump.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/web_process_memory_dump.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/instrumentation/use_counter.h b/third_party/blink/renderer/platform/instrumentation/use_counter.h
index bd1ffcb..80576428 100644
--- a/third_party/blink/renderer/platform/instrumentation/use_counter.h
+++ b/third_party/blink/renderer/platform/instrumentation/use_counter.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_INSTRUMENTATION_USE_COUNTER_H_
 
 #include "third_party/blink/public/mojom/web_feature/web_feature.mojom-blink-forward.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/loader/fetch/buffering_bytes_consumer.h b/third_party/blink/renderer/platform/loader/fetch/buffering_bytes_consumer.h
index ca7fed1..80837d9 100644
--- a/third_party/blink/renderer/platform/loader/fetch/buffering_bytes_consumer.h
+++ b/third_party/blink/renderer/platform/loader/fetch/buffering_bytes_consumer.h
@@ -7,7 +7,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "base/types/pass_key.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/bytes_consumer.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/timer.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/bytes_consumer.h b/third_party/blink/renderer/platform/loader/fetch/bytes_consumer.h
index 0bf772e..c9e196e6c 100644
--- a/third_party/blink/renderer/platform/loader/fetch/bytes_consumer.h
+++ b/third_party/blink/renderer/platform/loader/fetch/bytes_consumer.h
@@ -9,7 +9,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/blob/blob_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/network/encoded_form_data.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/data_pipe_bytes_consumer.h b/third_party/blink/renderer/platform/loader/fetch/data_pipe_bytes_consumer.h
index 0121d23..868460e 100644
--- a/third_party/blink/renderer/platform/loader/fetch/data_pipe_bytes_consumer.h
+++ b/third_party/blink/renderer/platform/loader/fetch/data_pipe_bytes_consumer.h
@@ -8,7 +8,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "mojo/public/cpp/system/data_pipe.h"
 #include "mojo/public/cpp/system/simple_watcher.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/loader/fetch/bytes_consumer.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h
index 293fb09..7070745 100644
--- a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h
+++ b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/public/mojom/timing/worker_timing_container.mojom-blink-forward.h"
 #include "third_party/blink/public/platform/resource_load_info_notifier_wrapper.h"
 #include "third_party/blink/public/platform/resource_request_blocked_reason.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_info.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_load_priority.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/null_resource_fetcher_properties.h b/third_party/blink/renderer/platform/loader/fetch/null_resource_fetcher_properties.h
index 120b4cc..271a4490 100644
--- a/third_party/blink/renderer/platform/loader/fetch/null_resource_fetcher_properties.h
+++ b/third_party/blink/renderer/platform/loader/fetch/null_resource_fetcher_properties.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_NULL_RESOURCE_FETCHER_PROPERTIES_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_NULL_RESOURCE_FETCHER_PROPERTIES_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher_properties.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/raw_resource_test.cc b/third_party/blink/renderer/platform/loader/fetch/raw_resource_test.cc
index 180ec4e..0e33123 100644
--- a/third_party/blink/renderer/platform/loader/fetch/raw_resource_test.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/raw_resource_test.cc
@@ -35,7 +35,7 @@
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/public/platform/web_url.h"
 #include "third_party/blink/public/platform/web_url_response.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/memory_cache.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_timing_info.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_client.h b/third_party/blink/renderer/platform/loader/fetch/resource_client.h
index 71ba9a7..267452c 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_client.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_client.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_RESOURCE_CLIENT_H_
 
 #include "base/gtest_prod_util.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_properties.h b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_properties.h
index b04a973..d9a6fda 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_properties.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_properties.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/mojom/service_worker/controller_service_worker_mode.mojom-blink.h"
 #include "third_party/blink/public/platform/web_url_loader.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/loader/fetch/loader_freeze_mode.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc
index a03ef2a..3c7f33b8 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc
@@ -46,7 +46,7 @@
 #include "third_party/blink/public/platform/web_url_loader_mock_factory.h"
 #include "third_party/blink/public/platform/web_url_response.h"
 #include "third_party/blink/renderer/platform/exported/wrapped_resource_response.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/loader/fetch/console_logger.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_info.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_finish_observer.h b/third_party/blink/renderer/platform/loader/fetch/resource_finish_observer.h
index 6de0a22..265bd01 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_finish_observer.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_finish_observer.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_RESOURCE_FINISH_OBSERVER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_RESOURCE_FINISH_OBSERVER_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader.h b/third_party/blink/renderer/platform/loader/fetch/resource_loader.h
index 07b111c..ddfe4b3 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_loader.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/public/mojom/blob/blob_registry.mojom-blink.h"
 #include "third_party/blink/public/platform/web_url_loader.h"
 #include "third_party/blink/public/platform/web_url_loader_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/loader/fetch/data_pipe_bytes_consumer.h"
 #include "third_party/blink/renderer/platform/loader/fetch/loader_freeze_mode.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/cached_metadata_handler.h b/third_party/blink/renderer/platform/loader/fetch/url_loader/cached_metadata_handler.h
index 560a0ceb..5a81fad 100644
--- a/third_party/blink/renderer/platform/loader/fetch/url_loader/cached_metadata_handler.h
+++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/cached_metadata_handler.h
@@ -8,7 +8,7 @@
 #include <stdint.h>
 #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
 #include "third_party/blink/public/mojom/loader/code_cache.mojom-blink-forward.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/worker_resource_timing_notifier.h b/third_party/blink/renderer/platform/loader/fetch/worker_resource_timing_notifier.h
index 54d2ac97..b15fd162 100644
--- a/third_party/blink/renderer/platform/loader/fetch/worker_resource_timing_notifier.h
+++ b/third_party/blink/renderer/platform/loader/fetch/worker_resource_timing_notifier.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/mojom/timing/resource_timing.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/timing/worker_timing_container.mojom-blink-forward.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/loader/testing/mock_resource_client.h b/third_party/blink/renderer/platform/loader/testing/mock_resource_client.h
index ec6f3d85..fe8a3170 100644
--- a/third_party/blink/renderer/platform/loader/testing/mock_resource_client.h
+++ b/third_party/blink/renderer/platform/loader/testing/mock_resource_client.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_TESTING_MOCK_RESOURCE_CLIENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_TESTING_MOCK_RESOURCE_CLIENT_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_client.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/mediastream/media_stream_component.h b/third_party/blink/renderer/platform/mediastream/media_stream_component.h
index e5ab2c637..3bbc512 100644
--- a/third_party/blink/renderer/platform/mediastream/media_stream_component.h
+++ b/third_party/blink/renderer/platform/mediastream/media_stream_component.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/public/platform/web_vector.h"
 #include "third_party/blink/renderer/platform/audio/audio_source_provider.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/prefinalizer.h"
 #include "third_party/blink/renderer/platform/mediastream/media_constraints.h"
 #include "third_party/blink/renderer/platform/mediastream/media_stream_track_platform.h"
diff --git a/third_party/blink/renderer/platform/mhtml/archive_resource.h b/third_party/blink/renderer/platform/mhtml/archive_resource.h
index 2ef8ae4c..de615f918 100644
--- a/third_party/blink/renderer/platform/mhtml/archive_resource.h
+++ b/third_party/blink/renderer/platform/mhtml/archive_resource.h
@@ -30,7 +30,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_MHTML_ARCHIVE_RESOURCE_H_
 
 #include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/shared_buffer.h"
diff --git a/third_party/blink/renderer/platform/mhtml/mhtml_archive.h b/third_party/blink/renderer/platform/mhtml/mhtml_archive.h
index 31e74a7..f72ea9f 100644
--- a/third_party/blink/renderer/platform/mhtml/mhtml_archive.h
+++ b/third_party/blink/renderer/platform/mhtml/mhtml_archive.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/public/mojom/loader/mhtml_load_result.mojom-blink-forward.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_answer_options_platform.h b/third_party/blink/renderer/platform/peerconnection/rtc_answer_options_platform.h
index 222b814..b4e00ad 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_answer_options_platform.h
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_answer_options_platform.h
@@ -6,7 +6,6 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_RTC_ANSWER_OPTIONS_PLATFORM_H_
 
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_dtmf_sender_handler.h b/third_party/blink/renderer/platform/peerconnection/rtc_dtmf_sender_handler.h
index 5fa4b8b..3fe4bf9 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_dtmf_sender_handler.h
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_dtmf_sender_handler.h
@@ -7,7 +7,7 @@
 
 #include "base/memory/weak_ptr.h"
 #include "base/sequence_checker.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_offer_options_platform.h b/third_party/blink/renderer/platform/peerconnection/rtc_offer_options_platform.h
index d529316..8cbe5fb 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_offer_options_platform.h
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_offer_options_platform.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_RTC_OFFER_OPTIONS_PLATFORM_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_RTC_OFFER_OPTIONS_PLATFORM_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_session_description_platform.h b/third_party/blink/renderer/platform/peerconnection/rtc_session_description_platform.h
index a9b8d46..7b2abdd3 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_session_description_platform.h
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_session_description_platform.h
@@ -6,7 +6,6 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_RTC_SESSION_DESCRIPTION_PLATFORM_H_
 
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_session_description_request.h b/third_party/blink/renderer/platform/peerconnection/rtc_session_description_request.h
index 34b7d773..65b5163 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_session_description_request.h
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_session_description_request.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_RTC_SESSION_DESCRIPTION_REQUEST_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_RTC_SESSION_DESCRIPTION_REQUEST_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace webrtc {
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_stats_request.h b/third_party/blink/renderer/platform/peerconnection/rtc_stats_request.h
index c5e52fb..12719fd 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_stats_request.h
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_stats_request.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_RTC_STATS_REQUEST_H_
 
 #include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_void_request.h b/third_party/blink/renderer/platform/peerconnection/rtc_void_request.h
index e773bec..e6477b1 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_void_request.h
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_void_request.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_RTC_VOID_REQUEST_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_RTC_VOID_REQUEST_H_
 
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/webrtc/api/rtc_error.h"
 
diff --git a/third_party/blink/renderer/platform/supplementable.h b/third_party/blink/renderer/platform/supplementable.h
index e5967a26..b141a6c 100644
--- a/third_party/blink/renderer/platform/supplementable.h
+++ b/third_party/blink/renderer/platform/supplementable.h
@@ -30,7 +30,7 @@
 
 #include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 
 #if DCHECK_IS_ON()
 #include "third_party/blink/renderer/platform/wtf/threading.h"
diff --git a/third_party/blink/renderer/platform/testing/fake_display_item_client.h b/third_party/blink/renderer/platform/testing/fake_display_item_client.h
index 24973c486..e8b21ea 100644
--- a/third_party/blink/renderer/platform/testing/fake_display_item_client.h
+++ b/third_party/blink/renderer/platform/testing/fake_display_item_client.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TESTING_FAKE_DISPLAY_ITEM_CLIENT_H_
 
 #include "third_party/blink/renderer/platform/graphics/paint/display_item_client.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 8e45faf..a8b5d11 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -1463,24 +1463,24 @@
 
 ### With LayoutNGPrinting enabled:
 
-crbug.com/1121942 virtual/layout_ng_printing/printing/absolute-position-headers-and-footers.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/absolute-positioned.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/block-with-overflow-in-bottom-aligned-fixedpos.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-position-composited-crash.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-but-static-headers-and-footers.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-child-repeats-even-when-html-and-body-are-zero-height.html [ Crash Pass ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-child-shouldnt-print.html [ Crash Pass ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-composited.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-headers-and-footers-absolute-covering-some-pages.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-headers-and-footers-clipped.html [ Crash ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/absolute-position-headers-and-footers.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/absolute-positioned.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/block-with-overflow-in-bottom-aligned-fixedpos.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-position-composited-crash.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-but-static-headers-and-footers.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-child-repeats-even-when-html-and-body-are-zero-height.html [ Crash Failure Pass ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-child-shouldnt-print.html [ Crash Failure Pass ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-composited.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-headers-and-footers-absolute-covering-some-pages.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-headers-and-footers-clipped.html [ Crash Failure ]
 crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-headers-and-footers-inside-transform.html [ Crash Failure ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-headers-and-footers-larger-than-page.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-headers-and-footers-transformed.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-headers-and-footers.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-overflow-scroll.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-scrolled.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/flexbox-with-overflow-in-bottom-aligned-fixedpos.html [ Crash ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-headers-and-footers-larger-than-page.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-headers-and-footers-transformed.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-headers-and-footers.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-overflow-scroll.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned-scrolled.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/fixed-positioned.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/flexbox-with-overflow-in-bottom-aligned-fixedpos.html [ Crash Failure ]
 crbug.com/1121942 virtual/layout_ng_printing/printing/forced-break-tree-dump-only.html [ Failure ]
 crbug.com/1121942 virtual/layout_ng_printing/printing/frameset.html [ Failure ]
 crbug.com/1121942 virtual/layout_ng_printing/printing/iframe-svg-in-object-print.html [ Failure ]
@@ -1494,12 +1494,12 @@
 crbug.com/1121942 virtual/layout_ng_printing/printing/page-orientation-propagated.html [ Failure ]
 crbug.com/1121942 virtual/layout_ng_printing/printing/page-orientation.html [ Failure ]
 crbug.com/1121942 virtual/layout_ng_printing/printing/pageProperty-with-multicol.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/print-subframe.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/simultaneous-position-float-change.html [ Crash ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/print-subframe.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/simultaneous-position-float-change.html [ Crash Failure ]
 crbug.com/1121942 virtual/layout_ng_printing/printing/single-line-must-not-be-split-into-two-pages.html [ Failure ]
 crbug.com/1121942 virtual/layout_ng_printing/printing/thead-under-multicol.html [ Failure ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/vertical-lr.html [ Crash ]
-crbug.com/1121942 virtual/layout_ng_printing/printing/vertical-rl.html [ Crash ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/vertical-lr.html [ Crash Failure ]
+crbug.com/1121942 virtual/layout_ng_printing/printing/vertical-rl.html [ Crash Failure ]
 crbug.com/1121942 virtual/layout_ng_printing/printing/webgl-oversized-printing.html [ Skip ]
 crbug.com/1121942 virtual/layout_ng_printing/printing/width-overflow.html [ Failure ]
 
@@ -5031,6 +5031,10 @@
 crbug.com/1179186 virtual/first-party-sets/http/tests/inspector-protocol/network/blocked-cookie-same-party-issue.js [ Pass ]
 crbug.com/1179186 virtual/first-party-sets/http/tests/inspector-protocol/network/blocked-setcookie-same-party-cross-party-issue.js [ Pass ]
 
+# Temporarily disabled to allow a change to DebuggerModel#scriptsForSourceUrl to land.
+crbug.com/1277403 http/tests/devtools/bindings/inline-styles-binding.js [ Pass Failure ]
+crbug.com/1277403 http/tests/devtools/sources/debugger-ui/script-snippet-model.js [ Pass Failure ]
+
 # Sheriff 2018-04-13
 crbug.com/833655 [ Linux ] media/controls/closed-captions-dynamic-update.html [ Skip ]
 crbug.com/833658 media/video-controls-focus-movement-on-hide.html [ Failure Pass ]
@@ -5814,13 +5818,6 @@
 # Sheriff 2020-03-08
 crbug.com/1059645 external/wpt/pointerevents/pointerevent_coalesced_events_attributes.html [ Failure Pass ]
 
-# Temporarily disable to land DevTools changes
-crbug.com/1205856 http/tests/devtools/application-panel/resources-panel-iframe-idb.js [ Failure Pass ]
-crbug.com/1205856 http/tests/devtools/application-panel/resources-panel-on-navigation.js [ Failure Pass ]
-crbug.com/1205856 http/tests/devtools/application-panel/resources-panel-resource-preview.js [ Failure Pass ]
-crbug.com/1205856 http/tests/devtools/application-panel/resources-panel-selection-on-reload.js [ Failure Pass ]
-crbug.com/1205856 http/tests/devtools/application-panel/resources-panel-websql.js [ Failure Pass ]
-
 # Failing on Fuchsia due to dependency on FuchsiaMediaResourceProvider, which is not implemented in content_shell.
 crbug.com/1061226 [ Fuchsia ] fast/mediastream/MediaStream-onactive-oninactive.html [ Skip ]
 crbug.com/1061226 [ Fuchsia ] external/wpt/html/cross-origin-embedder-policy/credentialless/video.tentative.https.window.html [ Skip ]
diff --git a/third_party/blink/web_tests/compositing/draws-content/canvas-background-layer-expected.txt b/third_party/blink/web_tests/compositing/draws-content/canvas-background-layer-expected.txt
index e8f0ca1..39c5fb4 100644
--- a/third_party/blink/web_tests/compositing/draws-content/canvas-background-layer-expected.txt
+++ b/third_party/blink/web_tests/compositing/draws-content/canvas-background-layer-expected.txt
@@ -8,182 +8,49 @@
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='canvas-simple'",
+      "position": [13, 8],
       "bounds": [50, 50],
-      "contentsOpaqueForText": true,
-      "drawsContent": false,
-      "transform": 1
-    },
-    {
-      "name": "LayoutHTMLCanvas CANVAS id='canvas-simple'",
-      "bounds": [50, 50],
-      "backgroundColor": "#008000",
-      "transform": 1
+      "backgroundColor": "#008000"
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='canvas-transparent-background'",
+      "position": [13, 73],
       "bounds": [50, 50],
-      "contentsOpaqueForText": true,
-      "drawsContent": false,
-      "transform": 2
-    },
-    {
-      "name": "LayoutHTMLCanvas CANVAS id='canvas-transparent-background'",
-      "bounds": [50, 50],
-      "backgroundColor": "#00FF0080",
-      "transform": 2
+      "backgroundColor": "#00FF0080"
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='canvas-padding'",
-      "bounds": [60, 60],
-      "contentsOpaque": true,
-      "backgroundColor": "#008000",
-      "transform": 3
-    },
-    {
-      "name": "LayoutHTMLCanvas CANVAS id='canvas-padding'",
-      "position": [5, 5],
-      "bounds": [50, 50],
-      "transform": 3
+      "position": [18, 143],
+      "bounds": [50, 50]
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='canvas-border'",
-      "bounds": [60, 60],
-      "contentsOpaque": true,
-      "backgroundColor": "#008000",
-      "transform": 4
-    },
-    {
-      "name": "LayoutHTMLCanvas CANVAS id='canvas-border'",
-      "position": [5, 5],
-      "bounds": [50, 50],
-      "transform": 4
+      "position": [18, 208],
+      "bounds": [50, 50]
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='canvas-image'",
-      "bounds": [50, 50],
-      "contentsOpaque": true,
-      "backgroundColor": "#008000",
-      "transform": 5
-    },
-    {
-      "name": "LayoutHTMLCanvas CANVAS id='canvas-image'",
-      "bounds": [50, 50],
-      "transform": 5
+      "position": [13, 268],
+      "bounds": [50, 50]
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='canvas-opaque'",
-      "bounds": [50, 50],
-      "contentsOpaqueForText": true,
-      "drawsContent": false,
-      "transform": 6
-    },
-    {
-      "name": "LayoutHTMLCanvas CANVAS id='canvas-opaque'",
+      "position": [13, 333],
       "bounds": [50, 50],
       "contentsOpaque": true,
-      "backgroundColor": "#008000",
-      "transform": 6
+      "backgroundColor": "#008000"
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='canvas-opaque-border'",
-      "bounds": [60, 60],
-      "contentsOpaque": true,
-      "backgroundColor": "#008000",
-      "transform": 7
-    },
-    {
-      "name": "LayoutHTMLCanvas CANVAS id='canvas-opaque-border'",
-      "position": [5, 5],
+      "position": [18, 403],
       "bounds": [50, 50],
-      "contentsOpaque": true,
-      "transform": 7
+      "contentsOpaque": true
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='canvas-opaque-box-shadow'",
-      "bounds": [60, 60],
-      "contentsOpaqueForText": true,
-      "backgroundColor": "#008000",
-      "transform": 8
-    },
-    {
-      "name": "LayoutHTMLCanvas CANVAS id='canvas-opaque-box-shadow'",
+      "position": [13, 463],
       "bounds": [50, 50],
-      "contentsOpaque": true,
-      "transform": 8
-    }
-  ],
-  "transforms": [
-    {
-      "id": 1,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [13, 8, 0, 1]
-      ]
-    },
-    {
-      "id": 2,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [13, 73, 0, 1]
-      ]
-    },
-    {
-      "id": 3,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [13, 138, 0, 1]
-      ]
-    },
-    {
-      "id": 4,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [13, 203, 0, 1]
-      ]
-    },
-    {
-      "id": 5,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [13, 268, 0, 1]
-      ]
-    },
-    {
-      "id": 6,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [13, 333, 0, 1]
-      ]
-    },
-    {
-      "id": 7,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [13, 398, 0, 1]
-      ]
-    },
-    {
-      "id": 8,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [13, 463, 0, 1]
-      ]
+      "contentsOpaque": true
     }
   ]
 }
diff --git a/third_party/blink/web_tests/compositing/draws-content/webgl-background-layer-expected.txt b/third_party/blink/web_tests/compositing/draws-content/webgl-background-layer-expected.txt
index a7d0be5..242b016 100644
--- a/third_party/blink/web_tests/compositing/draws-content/webgl-background-layer-expected.txt
+++ b/third_party/blink/web_tests/compositing/draws-content/webgl-background-layer-expected.txt
@@ -8,114 +8,30 @@
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='canvas-simple'",
+      "position": [13, 8],
       "bounds": [50, 50],
-      "contentsOpaqueForText": true,
-      "drawsContent": false,
-      "transform": 1
-    },
-    {
-      "name": "LayoutHTMLCanvas CANVAS id='canvas-simple'",
-      "bounds": [50, 50],
-      "backgroundColor": "#008000",
-      "transform": 1
+      "backgroundColor": "#008000"
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='canvas-padding'",
-      "bounds": [60, 60],
-      "contentsOpaque": true,
-      "backgroundColor": "#008000",
-      "transform": 2
-    },
-    {
-      "name": "LayoutHTMLCanvas CANVAS id='canvas-padding'",
-      "position": [5, 5],
-      "bounds": [50, 50],
-      "transform": 2
+      "position": [18, 78],
+      "bounds": [50, 50]
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='canvas-border'",
-      "bounds": [60, 60],
-      "contentsOpaque": true,
-      "backgroundColor": "#008000",
-      "transform": 3
-    },
-    {
-      "name": "LayoutHTMLCanvas CANVAS id='canvas-border'",
-      "position": [5, 5],
-      "bounds": [50, 50],
-      "transform": 3
+      "position": [18, 143],
+      "bounds": [50, 50]
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='canvas-image'",
-      "bounds": [50, 50],
-      "contentsOpaque": true,
-      "backgroundColor": "#008000",
-      "transform": 4
-    },
-    {
-      "name": "LayoutHTMLCanvas CANVAS id='canvas-image'",
-      "bounds": [50, 50],
-      "transform": 4
+      "position": [13, 203],
+      "bounds": [50, 50]
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='canvas-transparent-background'",
+      "position": [13, 268],
       "bounds": [50, 50],
-      "contentsOpaqueForText": true,
-      "drawsContent": false,
-      "transform": 5
-    },
-    {
-      "name": "LayoutHTMLCanvas CANVAS id='canvas-transparent-background'",
-      "bounds": [50, 50],
-      "backgroundColor": "#00FF0080",
-      "transform": 5
-    }
-  ],
-  "transforms": [
-    {
-      "id": 1,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [13, 8, 0, 1]
-      ]
-    },
-    {
-      "id": 2,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [13, 73, 0, 1]
-      ]
-    },
-    {
-      "id": 3,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [13, 138, 0, 1]
-      ]
-    },
-    {
-      "id": 4,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [13, 203, 0, 1]
-      ]
-    },
-    {
-      "id": 5,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [13, 268, 0, 1]
-      ]
+      "backgroundColor": "#00FF0080"
     }
   ]
 }
diff --git a/third_party/blink/web_tests/compositing/layer-creation/spanOverlapsCanvas-expected.txt b/third_party/blink/web_tests/compositing/layer-creation/spanOverlapsCanvas-expected.txt
index f76a40b..f0ef2b4 100644
--- a/third_party/blink/web_tests/compositing/layer-creation/spanOverlapsCanvas-expected.txt
+++ b/third_party/blink/web_tests/compositing/layer-creation/spanOverlapsCanvas-expected.txt
@@ -8,8 +8,8 @@
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='world'",
-      "bounds": [100, 50],
-      "transform": 1
+      "position": [8, 8],
+      "bounds": [100, 50]
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV id='output'",
@@ -18,17 +18,6 @@
       "contentsOpaque": true,
       "backgroundColor": "#008000"
     }
-  ],
-  "transforms": [
-    {
-      "id": 1,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [8, 8, 0, 1]
-      ]
-    }
   ]
 }
 
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/shared-worker.https.window-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/shared-worker.https.window-expected.txt
deleted file mode 100644
index c7cd66da..0000000
--- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/shared-worker.https.window-expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-This is a testharness.js-based test.
-FAIL treat-as-public to local: failed preflight. assert_equals: worker error expected (string) "unknown error" but got (undefined) undefined
-FAIL treat-as-public to local: success. assert_equals: worker error expected (undefined) undefined but got (string) "unknown error"
-FAIL treat-as-public to private: failed preflight. assert_equals: worker error expected (string) "unknown error" but got (undefined) undefined
-FAIL treat-as-public to private: success. assert_equals: worker error expected (undefined) undefined but got (string) "unknown error"
-PASS public to public: success.
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/shared-worker.window-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/shared-worker.window-expected.txt
deleted file mode 100644
index 8718ffde..0000000
--- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/shared-worker.window-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-FAIL treat-as-public to local: failure. assert_equals: worker error expected (string) "unknown error" but got (undefined) undefined
-FAIL treat-as-public to private: failure. assert_equals: worker error expected (string) "unknown error" but got (undefined) undefined
-PASS public to public: success.
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-fetch.https.window-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-fetch.https.window-expected.txt
index 0b54e1f..4ea413e 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-fetch.https.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-fetch.https.window-expected.txt
@@ -1,6 +1,6 @@
 This is a testharness.js-based test.
 PASS local to local: success.
-PASS private to local: failure.
+PASS private to local: failed preflight.
 PASS private to local: success.
 PASS private to private: success.
 PASS public to local: failed preflight.
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-fetch.https.window.js b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-fetch.https.window.js
index 78e51b0..528b556a 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-fetch.https.window.js
+++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-fetch.https.window.js
@@ -22,7 +22,7 @@
     behavior: { response: ResponseBehavior.allowCrossOrigin() },
   },
   expected: WorkerFetchTestResult.FAILURE,
-}), "private to local: failure.");
+}), "private to local: failed preflight.");
 
 promise_test(t => workerFetchTest(t, {
   source: { server: Server.HTTPS_PRIVATE },
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker.https.window-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker.https.window-expected.txt
deleted file mode 100644
index c7cd66da..0000000
--- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker.https.window-expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-This is a testharness.js-based test.
-FAIL treat-as-public to local: failed preflight. assert_equals: worker error expected (string) "unknown error" but got (undefined) undefined
-FAIL treat-as-public to local: success. assert_equals: worker error expected (undefined) undefined but got (string) "unknown error"
-FAIL treat-as-public to private: failed preflight. assert_equals: worker error expected (string) "unknown error" but got (undefined) undefined
-FAIL treat-as-public to private: success. assert_equals: worker error expected (undefined) undefined but got (string) "unknown error"
-PASS public to public: success.
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker.window-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker.window-expected.txt
deleted file mode 100644
index 8718ffde..0000000
--- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker.window-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-FAIL treat-as-public to local: failure. assert_equals: worker error expected (string) "unknown error" but got (undefined) undefined
-FAIL treat-as-public to private: failure. assert_equals: worker error expected (string) "unknown error" but got (undefined) undefined
-PASS public to public: success.
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/broadcast-channel.tentative.window.js b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/broadcast-channel.tentative.window.js
index 255a71920..ad64ddf5 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/broadcast-channel.tentative.window.js
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/broadcast-channel.tentative.window.js
@@ -1,3 +1,4 @@
+// META: timeout=long
 // META: script=/common/get-host-info.sub.js
 // META: script=/common/utils.js
 // META: script=/common/dispatcher/dispatcher.js
@@ -16,7 +17,15 @@
   bc.postMessage("${message}");
 `;
 
-promise_test(async test => {
+// For incorrect web browser implementations, some tests are failing by timing
+// out. Calling this function turns timeout into errors. This informs developers
+// about which precise test is failing.
+const errorOnTimeout = test =>
+  test.step_timeout(test.unreached_func("Timeout"), 9000);
+
+promise_test_parallel(async test => {
+  errorOnTimeout(test);
+
   const origin = get_host_info().HTTPS_REMOTE_ORIGIN;
   const key_1 = token();
   const key_2 = token();
@@ -53,4 +62,78 @@
   send(iframe_normal, emit_script(key_2, "msg_4"));
   assert_equals(await receive(queue_1), "msg_3");
   assert_equals(await receive(queue_2), "msg_4");
-})
+}, "Anonymous iframe and normal iframe aren't in the same partition")
+
+promise_test_parallel(async test => {
+  errorOnTimeout(test);
+
+  const origin = get_host_info().HTTPS_REMOTE_ORIGIN;
+  const key = token();
+
+  const iframe_anonymous_1 = newAnonymousIframe(origin);
+  const iframe_anonymous_2 = newAnonymousIframe(origin);
+  const queue = token();
+
+  send(iframe_anonymous_1 , listen_script(key, queue, queue));
+  assert_equals(await receive(queue), "registered");
+  send(iframe_anonymous_2, emit_script(key, "msg"));
+  assert_equals(await receive(queue), "msg");
+}, "Two sibling same-origin anonymous iframes are in the same partition");
+
+promise_test_parallel(async test => {
+  errorOnTimeout(test);
+
+  const origin = get_host_info().HTTPS_REMOTE_ORIGIN;
+  const key = token();
+  const queue = token();
+
+  const iframe_anonymous_1 = newAnonymousIframe(origin);
+  send(iframe_anonymous_1, `
+    const importScript = ${importScript};
+    await importScript("/common/utils.js");
+    await importScript("/html/cross-origin-embedder-policy/credentialless" +
+                       "/resources/common.js");
+    const newAnonymousIframe = ${newAnonymousIframe};
+    const iframe_anonymous_2 = newAnonymousIframe("${origin}");
+    send("${queue}", iframe_anonymous_2);
+  `);
+  const iframe_anonymous_2 = await receive(queue);
+
+  send(iframe_anonymous_1 , listen_script(key, queue, queue));
+  assert_equals(await receive(queue), "registered");
+  send(iframe_anonymous_2, emit_script(key, "msg"));
+  assert_equals(await receive(queue), "msg");
+}, "Nested same-origin anonymous iframe are in the same partition");
+
+promise_test_parallel(async test => {
+  errorOnTimeout(test);
+
+  const origin = get_host_info().HTTPS_REMOTE_ORIGIN;
+  const key = token();
+  const queue = token();
+
+  const iframe_anonymous_1 = newAnonymousIframe(origin);
+  const popup = newPopup(origin);
+  send(popup, `
+    const importScript = ${importScript};
+    await importScript("/common/utils.js");
+    await importScript("/html/cross-origin-embedder-policy/credentialless" +
+                       "/resources/common.js");
+    const newAnonymousIframe = ${newAnonymousIframe};
+    send("${queue}", newAnonymousIframe("${origin}"));
+  `);
+  const iframe_anonymous_2 = await receive(queue);
+
+  const unexpected_queue = token();
+  receive(unexpected_queue).then(test.unreached_func(
+    "Two same-origin anonymous iframe in different windows shouldn't be able " +
+    "to communicate using BroadcastChannel"));
+
+  send(iframe_anonymous_1 , listen_script(key, queue, unexpected_queue));
+  assert_equals(await receive(queue), "registered");
+  await send(iframe_anonymous_2, emit_script(key, "msg"));
+
+  // Wait a bit to give the opportunity for unexpected message to be received.
+  await new Promise(r => test.step_timeout(r, 500));
+}, "Two anonymous iframes in different windows do not share the same " +
+   "partition");
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/resources/common.js b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/resources/common.js
index e11e2307..4fd12a6 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/resources/common.js
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/resources/common.js
@@ -19,3 +19,20 @@
   document.body.appendChild(iframe);
   return sub_document_token;
 };
+
+// Create a popup. The new document will execute any scripts sent toward the
+// token it returns.
+const newPopup = (origin) => {
+  const popup_token = token();
+  const popup = window.open(origin + executor_path + `&uuid=${popup_token}`);
+  return popup_token;
+};
+
+const importScript = (url) => {
+  const script = document.createElement("script");
+  script.type = "text/javascript";
+  script.src = url;
+  const loaded = new Promise(resolve => script.onload = resolve);
+  document.body.appendChild(script);
+  return loaded;
+}
diff --git a/third_party/blink/web_tests/external/wpt/urlpattern/resources/urlpatterntestdata.json b/third_party/blink/web_tests/external/wpt/urlpattern/resources/urlpatterntestdata.json
index 8cb3fff..2cfb569d 100644
--- a/third_party/blink/web_tests/external/wpt/urlpattern/resources/urlpatterntestdata.json
+++ b/third_party/blink/web_tests/external/wpt/urlpattern/resources/urlpatterntestdata.json
@@ -2679,5 +2679,33 @@
     "expected_match": {
       "pathname": { "input": "/bar..", "groups": { "foo": "bar" } }
     }
+  },
+  {
+    "pattern": [{ "pathname": "./foo" }],
+    "inputs": [{ "pathname": "./foo" }],
+    "expected_match": {
+      "pathname": { "input": "./foo", "groups": {}}
+    }
+  },
+  {
+    "pattern": [{ "pathname": "../foo" }],
+    "inputs": [{ "pathname": "../foo" }],
+    "expected_match": {
+      "pathname": { "input": "../foo", "groups": {}}
+    }
+  },
+  {
+    "pattern": [{ "pathname": ":foo./" }],
+    "inputs": [{ "pathname": "bar./" }],
+    "expected_match": {
+      "pathname": { "input": "bar./", "groups": { "foo": "bar" }}
+    }
+  },
+  {
+    "pattern": [{ "pathname": ":foo../" }],
+    "inputs": [{ "pathname": "bar../" }],
+    "expected_match": {
+      "pathname": { "input": "bar../", "groups": { "foo": "bar" }}
+    }
   }
 ]
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/compositing/layer-creation/spanOverlapsCanvas-expected.txt b/third_party/blink/web_tests/flag-specific/disable-layout-ng/compositing/layer-creation/spanOverlapsCanvas-expected.txt
index b2ec52e..41362eb7 100644
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/compositing/layer-creation/spanOverlapsCanvas-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/compositing/layer-creation/spanOverlapsCanvas-expected.txt
@@ -8,8 +8,8 @@
     },
     {
       "name": "LayoutHTMLCanvas CANVAS id='world'",
-      "bounds": [100, 50],
-      "transform": 1
+      "position": [8, 8],
+      "bounds": [100, 50]
     },
     {
       "name": "LayoutBlockFlow (positioned) DIV id='output'",
@@ -18,17 +18,6 @@
       "contentsOpaque": true,
       "backgroundColor": "#008000"
     }
-  ],
-  "transforms": [
-    {
-      "id": 1,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [8, 8, 0, 1]
-      ]
-    }
   ]
 }
 
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/compositing/video/video-poster-expected.txt b/third_party/blink/web_tests/flag-specific/disable-layout-ng/compositing/video/video-poster-expected.txt
index 6571223..31eb852 100644
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/compositing/video/video-poster-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/compositing/video/video-poster-expected.txt
@@ -38,20 +38,31 @@
     },
     {
       "name": "LayoutVideo VIDEO",
-      "position": [8, 8],
-      "bounds": [352, 288]
+      "bounds": [352, 288],
+      "transform": 1
     },
     {
       "name": "LayoutFlexibleBox DIV class='sizing-small phase-pre-ready state-no-source'",
-      "position": [8, 8],
       "bounds": [352, 288],
-      "contentsOpaqueForText": true
+      "contentsOpaqueForText": true,
+      "transform": 1
     },
     {
       "name": "VerticalScrollbar",
       "position": [785, 0],
       "bounds": [15, 600]
     }
+  ],
+  "transforms": [
+    {
+      "id": 1,
+      "transform": [
+        [1, 0, 0, 0],
+        [0, 1, 0, 0],
+        [0, 0, 1, 0],
+        [8, 8, 0, 1]
+      ]
+    }
   ]
 }
 
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt b/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
index d39d912..060045c 100644
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
@@ -54,20 +54,31 @@
     },
     {
       "name": "LayoutVideo VIDEO id='video'",
-      "position": [15, 859],
-      "bounds": [150, 60]
+      "bounds": [150, 60],
+      "transform": 1
     },
     {
       "name": "LayoutFlexibleBox DIV class='sizing-small phase-pre-ready state-no-source'",
-      "position": [15, 859],
       "bounds": [150, 60],
-      "contentsOpaqueForText": true
+      "contentsOpaqueForText": true,
+      "transform": 1
     },
     {
       "name": "VerticalScrollbar",
       "position": [785, 0],
       "bounds": [15, 600]
     }
+  ],
+  "transforms": [
+    {
+      "id": 1,
+      "transform": [
+        [1, 0, 0, 0],
+        [0, 1, 0, 0],
+        [0, 0, 1, 0],
+        [15, 859, 0, 1]
+      ]
+    }
   ]
 }
 
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/video-paint-invalidation-expected.txt b/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/video-paint-invalidation-expected.txt
index 4bf6625..248e12a5 100644
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/video-paint-invalidation-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/video-paint-invalidation-expected.txt
@@ -8,13 +8,24 @@
     },
     {
       "name": "LayoutVideo VIDEO id='video'",
-      "position": [8, 8],
-      "bounds": [320, 240]
+      "bounds": [320, 240],
+      "transform": 1
     },
     {
       "name": "LayoutFlexibleBox DIV class='sizing-small test-mode phase-ready state-scrubbing'",
-      "position": [8, 8],
-      "bounds": [320, 240]
+      "bounds": [320, 240],
+      "transform": 1
+    }
+  ],
+  "transforms": [
+    {
+      "id": 1,
+      "transform": [
+        [1, 0, 0, 0],
+        [0, 1, 0, 0],
+        [0, 0, 1, 0],
+        [8, 8, 0, 1]
+      ]
     }
   ]
 }
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/virtual/backface-visibility-interop/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt b/third_party/blink/web_tests/flag-specific/disable-layout-ng/virtual/backface-visibility-interop/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
deleted file mode 100644
index d39d912..0000000
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/virtual/backface-visibility-interop/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling background of LayoutView #document",
-      "bounds": [785, 933],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "invalidations": [
-        [570, 564, 132, 42],
-        [570, 514, 132, 42],
-        [570, 464, 132, 42],
-        [570, 414, 132, 42],
-        [570, 364, 132, 42],
-        [570, 314, 132, 42],
-        [570, 264, 132, 42],
-        [570, 214, 132, 42],
-        [570, 164, 132, 42],
-        [570, 114, 132, 42],
-        [570, 64, 132, 42],
-        [428, 564, 132, 42],
-        [428, 514, 132, 42],
-        [428, 464, 132, 42],
-        [428, 414, 132, 42],
-        [428, 364, 132, 42],
-        [428, 314, 132, 42],
-        [428, 264, 132, 42],
-        [428, 214, 132, 42],
-        [428, 164, 132, 42],
-        [428, 114, 132, 42],
-        [428, 64, 132, 42],
-        [286, 564, 132, 42],
-        [286, 514, 132, 42],
-        [286, 464, 132, 42],
-        [286, 414, 132, 42],
-        [286, 364, 132, 42],
-        [286, 314, 132, 42],
-        [286, 264, 132, 42],
-        [286, 214, 132, 42],
-        [286, 164, 132, 42],
-        [286, 114, 132, 42],
-        [286, 64, 132, 42],
-        [144, 564, 132, 42],
-        [144, 514, 132, 42],
-        [144, 464, 132, 42],
-        [144, 414, 132, 42],
-        [144, 364, 132, 42],
-        [144, 314, 132, 42],
-        [144, 264, 132, 42],
-        [144, 214, 132, 42],
-        [144, 164, 132, 42],
-        [144, 114, 132, 42],
-        [144, 64, 132, 42]
-      ]
-    },
-    {
-      "name": "LayoutVideo VIDEO id='video'",
-      "position": [15, 859],
-      "bounds": [150, 60]
-    },
-    {
-      "name": "LayoutFlexibleBox DIV class='sizing-small phase-pre-ready state-no-source'",
-      "position": [15, 859],
-      "bounds": [150, 60],
-      "contentsOpaqueForText": true
-    },
-    {
-      "name": "VerticalScrollbar",
-      "position": [785, 0],
-      "bounds": [15, 600]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/virtual/backface-visibility-interop/paint/invalidation/video-paint-invalidation-expected.txt b/third_party/blink/web_tests/flag-specific/disable-layout-ng/virtual/backface-visibility-interop/paint/invalidation/video-paint-invalidation-expected.txt
deleted file mode 100644
index 4bf6625..0000000
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/virtual/backface-visibility-interop/paint/invalidation/video-paint-invalidation-expected.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling background of LayoutView #document",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF"
-    },
-    {
-      "name": "LayoutVideo VIDEO id='video'",
-      "position": [8, 8],
-      "bounds": [320, 240]
-    },
-    {
-      "name": "LayoutFlexibleBox DIV class='sizing-small test-mode phase-ready state-scrubbing'",
-      "position": [8, 8],
-      "bounds": [320, 240]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-iframe-idb-expected.txt b/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-iframe-idb-expected.txt
index 0e7a959..41fb3e89 100644
--- a/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-iframe-idb-expected.txt
+++ b/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-iframe-idb-expected.txt
@@ -32,6 +32,7 @@
  Payment Handler
  Periodic Background Sync
  Push Messaging
+ Reporting API
 Frames
  top
   indexeddb-in-iframe.html
@@ -66,6 +67,7 @@
  Payment Handler
  Periodic Background Sync
  Push Messaging
+ Reporting API
 Frames
  top
   inspected-page.html
@@ -102,6 +104,7 @@
  Payment Handler
  Periodic Background Sync
  Push Messaging
+ Reporting API
 Frames
  top
   indexeddb-in-iframe.html
diff --git a/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-on-navigation-expected.txt b/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-on-navigation-expected.txt
index 9f42677b..7acaec5 100644
--- a/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-on-navigation-expected.txt
+++ b/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-on-navigation-expected.txt
@@ -27,6 +27,7 @@
   Payment Handler
   Periodic Background Sync
   Push Messaging
+  Reporting API
 Frames
   top
     inspected-page.html
@@ -58,6 +59,7 @@
   Payment Handler
   Periodic Background Sync
   Push Messaging
+  Reporting API
 Frames
   top
     inspected-page.html
diff --git a/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-resource-preview-expected.txt b/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-resource-preview-expected.txt
index e2b66e4..416496e 100644
--- a/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-resource-preview-expected.txt
+++ b/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-resource-preview-expected.txt
@@ -25,6 +25,7 @@
   Payment Handler
   Periodic Background Sync
   Push Messaging
+  Reporting API
 Frames
   top
     Images
@@ -58,6 +59,7 @@
   Payment Handler
   Periodic Background Sync
   Push Messaging
+  Reporting API
 Frames
   top
     Images
@@ -91,6 +93,7 @@
   Payment Handler
   Periodic Background Sync
   Push Messaging
+  Reporting API
 Frames
   top
     Images
@@ -124,6 +127,7 @@
   Payment Handler
   Periodic Background Sync
   Push Messaging
+  Reporting API
 Frames
   top
     Images
diff --git a/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-selection-on-reload-expected.txt b/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-selection-on-reload-expected.txt
index 9f6b74b..08bc01df2f 100644
--- a/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-selection-on-reload-expected.txt
+++ b/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-selection-on-reload-expected.txt
@@ -27,6 +27,7 @@
   Payment Handler
   Periodic Background Sync
   Push Messaging
+  Reporting API
 Frames
   top
     inspected-page.html
@@ -59,6 +60,7 @@
   Payment Handler
   Periodic Background Sync
   Push Messaging
+  Reporting API
 Frames
   top
     inspected-page.html
diff --git a/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-websql-expected.txt b/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-websql-expected.txt
index 5f459959..b312a671 100644
--- a/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-websql-expected.txt
+++ b/third_party/blink/web_tests/http/tests/devtools/application-panel/resources-panel-websql-expected.txt
@@ -25,6 +25,7 @@
   Payment Handler
   Periodic Background Sync
   Push Messaging
+  Reporting API
 Frames
   top
     Scripts
@@ -57,6 +58,7 @@
   Payment Handler
   Periodic Background Sync
   Push Messaging
+  Reporting API
 Frames
   top
     Scripts
@@ -89,6 +91,7 @@
   Payment Handler
   Periodic Background Sync
   Push Messaging
+  Reporting API
 Frames
   top
     Scripts
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-user-agent-metadata-override-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-user-agent-metadata-override-expected.txt
index 52d4b7c3..31b19537 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-user-agent-metadata-override-expected.txt
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-user-agent-metadata-override-expected.txt
@@ -53,6 +53,27 @@
 sec-ch-ua-mobile: ?1
 sec-ch-ua-model: "QWERTY"
 
+Testing with specifying getHighEntropyValues
+{
+    architecture : Electromechanical
+    brands : [
+        [0] : {
+            brand : Ferrum
+            version : 42.0
+        }
+        [1] : {
+            brand : Iron
+            version : 3
+        }
+    ]
+    mobile : true
+    platform : Typewriter
+}
+sec-ch-ua: "Ferrum";v="42.0", "Iron";v="3"
+sec-ch-ua-arch: "Electromechanical"
+sec-ch-ua-platform: "Typewriter"
+sec-ch-ua-mobile: ?1
+
 Testing effect on navigation
 sec-ch-ua: "Ferrum";v="42.0", "Iron";v="3"
 sec-ch-ua-full-version: "42.0.3.14159"
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-user-agent-metadata-override.js b/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-user-agent-metadata-override.js
index 420fd90..d54860a3 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-user-agent-metadata-override.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-user-agent-metadata-override.js
@@ -56,6 +56,17 @@
   await printHeader('sec-ch-ua-mobile');
   await printHeader('sec-ch-ua-model');
 
+  // Verifying that the low-entropy UA-CH are returned in getHighEntropyValues() by default
+  testRunner.log('');
+  testRunner.log('Testing with specifying getHighEntropyValues');
+  testRunner.log(await session.evaluateAsync(
+    'navigator.userAgentData.getHighEntropyValues(' +
+        '["architecture"])'));
+  await printHeader('sec-ch-ua');
+  await printHeader('sec-ch-ua-arch');
+  await printHeader('sec-ch-ua-platform');
+  await printHeader('sec-ch-ua-mobile');
+
   // testing effect on navigation.
   testRunner.log('');
   testRunner.log('Testing effect on navigation');
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/fenced-frame/permissions-policy-fenced-frame-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/fenced-frame/permissions-policy-fenced-frame-expected.txt
new file mode 100644
index 0000000..3423c28
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/fenced-frame/permissions-policy-fenced-frame-expected.txt
@@ -0,0 +1,10 @@
+Tests that permission policy for fenced frame can be retrieved correctly
+{
+    allowed : false
+    feature : geolocation
+    locator : {
+        blockReason : InFencedFrameTree
+        frameId : <string>
+    }
+}
+
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/fenced-frame/permissions-policy-fenced-frame.js b/third_party/blink/web_tests/http/tests/inspector-protocol/fenced-frame/permissions-policy-fenced-frame.js
new file mode 100644
index 0000000..95e7525
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/fenced-frame/permissions-policy-fenced-frame.js
@@ -0,0 +1,21 @@
+(async function (testRunner) {
+  const { session, dp } = await testRunner.startURL('resources/page-with-fenced-frame.php',
+    'Tests that permission policy for fenced frame can be retrieved correctly');
+  await dp.Page.enable();
+
+  dp.Target.setAutoAttach({ autoAttach: true, waitForDebuggerOnStart: false, flatten: true });
+  let { sessionId } = (await dp.Target.onceAttachedToTarget()).params;
+  let ffdp = session.createChild(sessionId).protocol;
+
+  // Wait for FF to finish loading.
+  await ffdp.Page.enable();
+  ffdp.Page.setLifecycleEventsEnabled({ enabled: true });
+  await ffdp.Page.onceLifecycleEvent(event => event.params.name === 'load');
+
+  const frameId = (await ffdp.Page.getFrameTree()).result.frameTree.frame.id;
+  const states = (await ffdp.Page.getPermissionsPolicyState({frameId})).result.states
+  let geolocationState = states.find(state => state.feature === 'geolocation');
+  testRunner.log(geolocationState);
+
+  testRunner.completeTest();
+});
diff --git a/third_party/blink/web_tests/paint/invalidation/video-paint-invalidation-expected.txt b/third_party/blink/web_tests/paint/invalidation/video-paint-invalidation-expected.txt
index 2cec2134..0997b73 100644
--- a/third_party/blink/web_tests/paint/invalidation/video-paint-invalidation-expected.txt
+++ b/third_party/blink/web_tests/paint/invalidation/video-paint-invalidation-expected.txt
@@ -8,13 +8,24 @@
     },
     {
       "name": "LayoutVideo VIDEO id='video'",
-      "position": [8, 8],
-      "bounds": [320, 240]
+      "bounds": [320, 240],
+      "transform": 1
     },
     {
       "name": "LayoutNGFlexibleBox DIV class='sizing-small test-mode phase-ready state-scrubbing'",
-      "position": [8, 8],
-      "bounds": [320, 240]
+      "bounds": [320, 240],
+      "transform": 1
+    }
+  ],
+  "transforms": [
+    {
+      "id": 1,
+      "transform": [
+        [1, 0, 0, 0],
+        [0, 1, 0, 0],
+        [0, 0, 1, 0],
+        [8, 8, 0, 1]
+      ]
     }
   ]
 }
diff --git a/third_party/blink/web_tests/platform/linux/compositing/video/video-controls-squashing-expected.png b/third_party/blink/web_tests/platform/linux/compositing/video/video-controls-squashing-expected.png
index da73146f..094e7384 100644
--- a/third_party/blink/web_tests/platform/linux/compositing/video/video-controls-squashing-expected.png
+++ b/third_party/blink/web_tests/platform/linux/compositing/video/video-controls-squashing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-all-expected.png b/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-all-expected.png
index 3c4772bb..a190297 100644
--- a/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-all-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-all-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-border-expected.png b/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-border-expected.png
index c0fa13e..4cc8b6d3 100644
--- a/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-border-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-expected.png b/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-expected.png
index 6af0a7ab..dd4befb 100644
--- a/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-padding-expected.png b/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-padding-expected.png
index 24ef754..0597b0f 100644
--- a/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-padding-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-padding-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-with-mask-expected.png b/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-with-mask-expected.png
index 63ca9eb..f62301d 100644
--- a/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-with-mask-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-with-mask-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-with-shadow-expected.png b/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-with-shadow-expected.png
index fa8ce20..ba9b4ef 100644
--- a/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-with-shadow-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/borders/border-radius-mask-canvas-with-shadow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
index 62e8ada..eb16f6f 100644
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
@@ -54,20 +54,31 @@
     },
     {
       "name": "LayoutVideo VIDEO id='video'",
-      "position": [15, 859],
-      "bounds": [150, 60]
+      "bounds": [150, 60],
+      "transform": 1
     },
     {
       "name": "LayoutNGFlexibleBox DIV class='sizing-small phase-pre-ready state-no-source'",
-      "position": [15, 859],
       "bounds": [150, 60],
-      "contentsOpaqueForText": true
+      "contentsOpaqueForText": true,
+      "transform": 1
     },
     {
       "name": "VerticalScrollbar",
       "position": [785, 0],
       "bounds": [15, 600]
     }
+  ],
+  "transforms": [
+    {
+      "id": 1,
+      "transform": [
+        [1, 0, 0, 0],
+        [0, 1, 0, 0],
+        [0, 0, 1, 0],
+        [15, 859, 0, 1]
+      ]
+    }
   ]
 }
 
diff --git a/third_party/blink/web_tests/platform/linux/virtual/backface-visibility-interop/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt b/third_party/blink/web_tests/platform/linux/virtual/backface-visibility-interop/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
deleted file mode 100644
index 62e8ada..0000000
--- a/third_party/blink/web_tests/platform/linux/virtual/backface-visibility-interop/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling background of LayoutView #document",
-      "bounds": [785, 933],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "invalidations": [
-        [570, 564, 132, 42],
-        [570, 514, 132, 42],
-        [570, 464, 132, 42],
-        [570, 414, 132, 42],
-        [570, 364, 132, 42],
-        [570, 314, 132, 42],
-        [570, 264, 132, 42],
-        [570, 214, 132, 42],
-        [570, 164, 132, 42],
-        [570, 114, 132, 42],
-        [570, 64, 132, 42],
-        [428, 564, 132, 42],
-        [428, 514, 132, 42],
-        [428, 464, 132, 42],
-        [428, 414, 132, 42],
-        [428, 364, 132, 42],
-        [428, 314, 132, 42],
-        [428, 264, 132, 42],
-        [428, 214, 132, 42],
-        [428, 164, 132, 42],
-        [428, 114, 132, 42],
-        [428, 64, 132, 42],
-        [286, 564, 132, 42],
-        [286, 514, 132, 42],
-        [286, 464, 132, 42],
-        [286, 414, 132, 42],
-        [286, 364, 132, 42],
-        [286, 314, 132, 42],
-        [286, 264, 132, 42],
-        [286, 214, 132, 42],
-        [286, 164, 132, 42],
-        [286, 114, 132, 42],
-        [286, 64, 132, 42],
-        [144, 564, 132, 42],
-        [144, 514, 132, 42],
-        [144, 464, 132, 42],
-        [144, 414, 132, 42],
-        [144, 364, 132, 42],
-        [144, 314, 132, 42],
-        [144, 264, 132, 42],
-        [144, 214, 132, 42],
-        [144, 164, 132, 42],
-        [144, 114, 132, 42],
-        [144, 64, 132, 42]
-      ]
-    },
-    {
-      "name": "LayoutVideo VIDEO id='video'",
-      "position": [15, 859],
-      "bounds": [150, 60]
-    },
-    {
-      "name": "LayoutNGFlexibleBox DIV class='sizing-small phase-pre-ready state-no-source'",
-      "position": [15, 859],
-      "bounds": [150, 60],
-      "contentsOpaqueForText": true
-    },
-    {
-      "name": "VerticalScrollbar",
-      "position": [785, 0],
-      "bounds": [15, 600]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/compositing/video/video-controls-squashing-expected.png b/third_party/blink/web_tests/platform/mac-mac11-arm64/compositing/video/video-controls-squashing-expected.png
index 66407e0..81c6858 100644
--- a/third_party/blink/web_tests/platform/mac-mac11-arm64/compositing/video/video-controls-squashing-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/compositing/video/video-controls-squashing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/compositing/video/video-controls-squashing-expected.png b/third_party/blink/web_tests/platform/mac/compositing/video/video-controls-squashing-expected.png
index 459f405..d149eb9 100644
--- a/third_party/blink/web_tests/platform/mac/compositing/video/video-controls-squashing-expected.png
+++ b/third_party/blink/web_tests/platform/mac/compositing/video/video-controls-squashing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/compositing/video/video-poster-expected.txt b/third_party/blink/web_tests/platform/mac/compositing/video/video-poster-expected.txt
index d0c6078c..ae935f5 100644
--- a/third_party/blink/web_tests/platform/mac/compositing/video/video-poster-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/compositing/video/video-poster-expected.txt
@@ -38,20 +38,31 @@
     },
     {
       "name": "LayoutVideo VIDEO",
-      "position": [8, 8],
-      "bounds": [352, 288]
+      "bounds": [352, 288],
+      "transform": 1
     },
     {
       "name": "LayoutNGFlexibleBox DIV class='sizing-small phase-pre-ready state-no-source'",
-      "position": [8, 8],
       "bounds": [352, 288],
-      "contentsOpaqueForText": true
+      "contentsOpaqueForText": true,
+      "transform": 1
     },
     {
       "name": "VerticalScrollbar",
       "position": [785, 0],
       "bounds": [15, 600]
     }
+  ],
+  "transforms": [
+    {
+      "id": 1,
+      "transform": [
+        [1, 0, 0, 0],
+        [0, 1, 0, 0],
+        [0, 0, 1, 0],
+        [8, 8, 0, 1]
+      ]
+    }
   ]
 }
 
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-expected.png
index 74fc475f..844559a1 100644
--- a/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-expected.png
+++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-padding-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-padding-expected.png
index ae47ae2c..27340c6 100644
--- a/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-padding-expected.png
+++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-padding-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-with-mask-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-with-mask-expected.png
index 447b49e9..4672231 100644
--- a/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-with-mask-expected.png
+++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-with-mask-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-with-shadow-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-with-shadow-expected.png
index fcd91746..d1e86ff 100644
--- a/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-with-shadow-expected.png
+++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-radius-mask-canvas-with-shadow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt b/third_party/blink/web_tests/platform/mac/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
index 818b1a4..2280a61 100644
--- a/third_party/blink/web_tests/platform/mac/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
@@ -54,20 +54,31 @@
     },
     {
       "name": "LayoutVideo VIDEO id='video'",
-      "position": [15, 854],
-      "bounds": [150, 60]
+      "bounds": [150, 60],
+      "transform": 1
     },
     {
       "name": "LayoutNGFlexibleBox DIV class='sizing-small phase-pre-ready state-no-source'",
-      "position": [15, 854],
       "bounds": [150, 60],
-      "contentsOpaqueForText": true
+      "contentsOpaqueForText": true,
+      "transform": 1
     },
     {
       "name": "VerticalScrollbar",
       "position": [785, 0],
       "bounds": [15, 600]
     }
+  ],
+  "transforms": [
+    {
+      "id": 1,
+      "transform": [
+        [1, 0, 0, 0],
+        [0, 1, 0, 0],
+        [0, 0, 1, 0],
+        [15, 854, 0, 1]
+      ]
+    }
   ]
 }
 
diff --git a/third_party/blink/web_tests/platform/win/compositing/video/video-controls-squashing-expected.png b/third_party/blink/web_tests/platform/win/compositing/video/video-controls-squashing-expected.png
index 0f8c135..3ff853f 100644
--- a/third_party/blink/web_tests/platform/win/compositing/video/video-controls-squashing-expected.png
+++ b/third_party/blink/web_tests/platform/win/compositing/video/video-controls-squashing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/video/video-poster-expected.txt b/third_party/blink/web_tests/platform/win/compositing/video/video-poster-expected.txt
index 978825d..5db5b0d2 100644
--- a/third_party/blink/web_tests/platform/win/compositing/video/video-poster-expected.txt
+++ b/third_party/blink/web_tests/platform/win/compositing/video/video-poster-expected.txt
@@ -38,20 +38,31 @@
     },
     {
       "name": "LayoutVideo VIDEO",
-      "position": [8, 8],
-      "bounds": [352, 288]
+      "bounds": [352, 288],
+      "transform": 1
     },
     {
       "name": "LayoutNGFlexibleBox DIV class='sizing-small phase-pre-ready state-no-source'",
-      "position": [8, 8],
       "bounds": [352, 288],
-      "contentsOpaqueForText": true
+      "contentsOpaqueForText": true,
+      "transform": 1
     },
     {
       "name": "VerticalScrollbar",
       "position": [785, 0],
       "bounds": [15, 600]
     }
+  ],
+  "transforms": [
+    {
+      "id": 1,
+      "transform": [
+        [1, 0, 0, 0],
+        [0, 1, 0, 0],
+        [0, 0, 1, 0],
+        [8, 8, 0, 1]
+      ]
+    }
   ]
 }
 
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-all-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-all-expected.png
index a799151..6bd35ba 100644
--- a/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-all-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-all-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-border-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-border-expected.png
index d4a5345..e3e2c14 100644
--- a/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-expected.png
index 3d1018f..959605d1 100644
--- a/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-padding-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-padding-expected.png
index 10f2988..e382b10 100644
--- a/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-padding-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-padding-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-with-mask-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-with-mask-expected.png
index 862d9cc..bb20d43f 100644
--- a/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-with-mask-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-with-mask-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-with-shadow-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-with-shadow-expected.png
index 10fdc17..11a7ad0 100644
--- a/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-with-shadow-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/borders/border-radius-mask-canvas-with-shadow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
index 4b7c8f7..1f9ff19 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
@@ -54,20 +54,31 @@
     },
     {
       "name": "LayoutVideo VIDEO id='video'",
-      "position": [15, 859],
-      "bounds": [150, 60]
+      "bounds": [150, 60],
+      "transform": 1
     },
     {
       "name": "LayoutNGFlexibleBox DIV class='sizing-small phase-pre-ready state-no-source'",
-      "position": [15, 859],
       "bounds": [150, 60],
-      "contentsOpaqueForText": true
+      "contentsOpaqueForText": true,
+      "transform": 1
     },
     {
       "name": "VerticalScrollbar",
       "position": [785, 0],
       "bounds": [15, 600]
     }
+  ],
+  "transforms": [
+    {
+      "id": 1,
+      "transform": [
+        [1, 0, 0, 0],
+        [0, 1, 0, 0],
+        [0, 0, 1, 0],
+        [15, 859, 0, 1]
+      ]
+    }
   ]
 }
 
diff --git a/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/private-network-access/worker.https.window-expected.txt b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/private-network-access/worker.https.window-expected.txt
deleted file mode 100644
index c7cd66da..0000000
--- a/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/private-network-access/worker.https.window-expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-This is a testharness.js-based test.
-FAIL treat-as-public to local: failed preflight. assert_equals: worker error expected (string) "unknown error" but got (undefined) undefined
-FAIL treat-as-public to local: success. assert_equals: worker error expected (undefined) undefined but got (string) "unknown error"
-FAIL treat-as-public to private: failed preflight. assert_equals: worker error expected (string) "unknown error" but got (undefined) undefined
-FAIL treat-as-public to private: success. assert_equals: worker error expected (undefined) undefined but got (string) "unknown error"
-PASS public to public: success.
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/private-network-access/worker.window-expected.txt b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/private-network-access/worker.window-expected.txt
deleted file mode 100644
index 8718ffde..0000000
--- a/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/private-network-access/worker.window-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-FAIL treat-as-public to local: failure. assert_equals: worker error expected (string) "unknown error" but got (undefined) undefined
-FAIL treat-as-public to private: failure. assert_equals: worker error expected (string) "unknown error" but got (undefined) undefined
-PASS public to public: success.
-Harness: the test ran to completion.
-
diff --git a/tools/metrics/histograms/metadata/chromeos_hps/histograms.xml b/tools/metrics/histograms/metadata/chromeos_hps/histograms.xml
index 22046a1..bd9eb9a 100644
--- a/tools/metrics/histograms/metadata/chromeos_hps/histograms.xml
+++ b/tools/metrics/histograms/metadata/chromeos_hps/histograms.xml
@@ -22,6 +22,27 @@
 
 <histograms>
 
+<histogram name="ChromeOS.HPS.QuickDim.Enabled" enum="BooleanEnabled"
+    expires_after="2022-07-01">
+  <owner>evanbenn@chromium.org</owner>
+  <owner>avg@chromium.org</owner>
+  <owner>chromeos-hps-swe@google.com</owner>
+  <summary>
+    Records when users change the kQuickDim setting on the privacy page.
+  </summary>
+</histogram>
+
+<histogram name="ChromeOS.HPS.SnoopingProtection.Enabled" enum="BooleanEnabled"
+    expires_after="2022-07-01">
+  <owner>evanbenn@chromium.org</owner>
+  <owner>avg@chromium.org</owner>
+  <owner>chromeos-hps-swe@google.com</owner>
+  <summary>
+    Records when users change the kSnoopingProtectionEnabled setting on the
+    privacy page.
+  </summary>
+</histogram>
+
 <histogram name="ChromeOS.HPS.TurnOn.Result" enum="HpsTurnOnResult"
     expires_after="2022-07-01">
   <owner>evanbenn@chromium.org</owner>
diff --git a/tools/perf/benchmark.csv b/tools/perf/benchmark.csv
index 4def03eb..b8b48c9 100644
--- a/tools/perf/benchmark.csv
+++ b/tools/perf/benchmark.csv
@@ -51,7 +51,7 @@
 power.mobile,chrometto-team@google.com,,https://goto.google.com/power-mobile-benchmark,"2018,2019,2021,health_check,infinite_scroll,javascript_heavy"
 rasterize_and_record_micro.top_25,"pdr@chromium.org, wangxianzhu@chromium.org, vmpstr@chromium.org",Internals>Compositing>Rasterization,https://bit.ly/rasterize-and-record-benchmark,
 rendering.desktop,"behdadb@chromium.org, jonross@chromium.org, sadrul@chromium.org",Internals>GPU>Metrics,https://bit.ly/rendering-benchmarks,"backdrop_filter,gpu_rasterization,image_decoding,key_desktop_move,maps,motionmark,motionmark_ramp,repaint_desktop,representative_mac_desktop,representative_mobile,representative_win_desktop,required_webgl,simple_canvas,throughput_test,top_real_world_desktop,tough_animation,tough_canvas,tough_compositor,tough_filters,tough_image_decode,tough_path_rendering,tough_pinch_zoom,tough_scheduling,tough_scrollbar_scrolling,tough_scrolling,tough_texture_upload,tough_webgl,use_fake_camera_device"
-rendering.mobile,"behdadb@chromium.org, jonross@chromium.org, sadrul@chromium.org",Internals>GPU>Metrics,https://bit.ly/rendering-benchmarks,"backdrop_filter,fastpath,gpu_rasterization,image_decoding,key_hit_test,key_idle_power,key_noop,key_silk,maps,motionmark,motionmark_ramp,pathological_mobile_sites,polymer,representative_mac_desktop,representative_mobile,representative_win_desktop,required_webgl,simple_canvas,simple_mobile_sites,throughput_test,top_real_world_desktop,top_real_world_mobile,tough_animation,tough_canvas,tough_compositor,tough_filters,tough_image_decode,tough_path_rendering,tough_pinch_zoom_mobile,tough_scheduling,tough_scrollbar_scrolling,tough_scrolling,tough_texture_upload,tough_webgl,use_fake_camera_device"
+rendering.mobile,"behdadb@chromium.org, jonross@chromium.org, sadrul@chromium.org",Internals>GPU>Metrics,https://bit.ly/rendering-benchmarks,"backdrop_filter,fastpath,gpu_rasterization,image_decoding,key_idle_power,key_noop,key_silk,maps,motionmark,motionmark_ramp,pathological_mobile_sites,representative_mac_desktop,representative_mobile,representative_win_desktop,required_webgl,simple_canvas,simple_mobile_sites,throughput_test,top_real_world_desktop,top_real_world_mobile,tough_animation,tough_canvas,tough_compositor,tough_filters,tough_image_decode,tough_path_rendering,tough_pinch_zoom_mobile,tough_scheduling,tough_scrollbar_scrolling,tough_scrolling,tough_texture_upload,tough_webgl,use_fake_camera_device"
 resource_sizes_chrome_modern_minimal_apks,"agrieve@chromium.org, jbudorick@chromium.org",Build,https://chromium.googlesource.com/chromium/src/+/HEAD/tools/binary_size/README.md#resource_sizes_py,
 resource_sizes_chrome_modern_public_minimal_apks,"agrieve@chromium.org, jbudorick@chromium.org",Build,https://chromium.googlesource.com/chromium/src/+/HEAD/tools/binary_size/README.md#resource_sizes_py,
 resource_sizes_chromecast,"juke@chromium.org, eliribble@chromium.org",Chromecast,https://chromium.googlesource.com/chromium/src/+/HEAD/tools/binary_size/README.md#resource_sizes_py,
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index 1f72f6d4..1a4ec5e 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -6,7 +6,7 @@
         },
         "win": {
             "hash": "d6cb1144b9294741e65294ca97dba70916de332c",
-            "remote_path": "perfetto_binaries/trace_processor_shell/win/5a202e1c1c7fb14817bb4df498d5f0ea71915653/trace_processor_shell.exe"
+            "remote_path": "perfetto_binaries/trace_processor_shell/win/c581dd4f599dc73735f6d006ea1d25ea80ce3165/trace_processor_shell.exe"
         },
         "linux_arm": {
             "hash": "58893933be305d3bfe0a72ebebcacde2ac3ca893",
@@ -22,7 +22,7 @@
         },
         "linux": {
             "hash": "9ae761116a94bc1979e1940862dd29fdc32d3a82",
-            "remote_path": "perfetto_binaries/trace_processor_shell/linux/5a202e1c1c7fb14817bb4df498d5f0ea71915653/trace_processor_shell"
+            "remote_path": "perfetto_binaries/trace_processor_shell/linux/c581dd4f599dc73735f6d006ea1d25ea80ce3165/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel2-perf-fyi_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel2-perf-fyi_timing.json
index 09ff022..0eaaeff 100644
--- a/tools/perf/core/shard_maps/timing_data/android-pixel2-perf-fyi_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android-pixel2-perf-fyi_timing.json
@@ -284,10 +284,6 @@
         "name": "rendering.mobile/coordinated_animation"
     },
     {
-        "duration": "12.0",
-        "name": "rendering.mobile/core_scroll_header_panel"
-    },
-    {
         "duration": "29.0",
         "name": "rendering.mobile/crafty_mind"
     },
@@ -1136,42 +1132,6 @@
         "name": "rendering.mobile/overlay_background_color_css_transitions_page"
     },
     {
-        "duration": "13.0",
-        "name": "rendering.mobile/paper_button"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.mobile/paper_calculator"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.mobile/paper_calculator_hit_test"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.mobile/paper_checkbox"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.mobile/paper_fab"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.mobile/paper_icon_button"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.mobile/paper_shadow"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.mobile/paper_tabs"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.mobile/paper_toggle_button"
-    },
-    {
         "duration": "25.0",
         "name": "rendering.mobile/parallax_effect"
     },
@@ -1196,10 +1156,6 @@
         "name": "rendering.mobile/pinterest_mobile_2018"
     },
     {
-        "duration": "13.0",
-        "name": "rendering.mobile/polymer_topeka"
-    },
-    {
         "duration": "31.0",
         "name": "rendering.mobile/put_and_create_imagebitmap_from_imagedata"
     },
@@ -1284,10 +1240,6 @@
         "name": "rendering.mobile/slashdot_mobile_2018"
     },
     {
-        "duration": "25.0",
-        "name": "rendering.mobile/slide_drawer"
-    },
-    {
         "duration": "29.0",
         "name": "rendering.mobile/small_texture_uploads"
     },
@@ -1312,10 +1264,6 @@
         "name": "rendering.mobile/sticky_using_webkit"
     },
     {
-        "duration": "32.0",
-        "name": "rendering.mobile/stress_hidey_bars"
-    },
-    {
         "duration": "30.0",
         "name": "rendering.mobile/stroke_shapes"
     },
@@ -1324,10 +1272,6 @@
         "name": "rendering.mobile/svg_icon_raster"
     },
     {
-        "duration": "22.0",
-        "name": "rendering.mobile/swipe_action"
-    },
-    {
         "duration": "24.0",
         "name": "rendering.mobile/swipe_to_dismiss"
     },
@@ -1468,10 +1412,6 @@
         "name": "rendering.mobile/toBlob_small_canvas_in_worker.html"
     },
     {
-        "duration": "30.0",
-        "name": "rendering.mobile/toggle_drawer"
-    },
-    {
         "duration": "27.0",
         "name": "rendering.mobile/touch_handler_scrolling"
     },
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json
index b50fd5e..7eef0bd 100644
--- a/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json
@@ -2264,10 +2264,6 @@
         "name": "rendering.mobile/coordinated_animation"
     },
     {
-        "duration": "5.0",
-        "name": "rendering.mobile/core_scroll_header_panel"
-    },
-    {
         "duration": "23.0",
         "name": "rendering.mobile/crafty_mind"
     },
@@ -3156,42 +3152,6 @@
         "name": "rendering.mobile/overlay_background_color_css_transitions_page"
     },
     {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_button"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_calculator"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_calculator_hit_test"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_checkbox"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_fab"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_icon_button"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_shadow"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_tabs"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_toggle_button"
-    },
-    {
         "duration": "20.0",
         "name": "rendering.mobile/parallax_effect"
     },
@@ -3216,10 +3176,6 @@
         "name": "rendering.mobile/pinterest_mobile_2018"
     },
     {
-        "duration": "5.0",
-        "name": "rendering.mobile/polymer_topeka"
-    },
-    {
         "duration": "23.0",
         "name": "rendering.mobile/put_and_create_imagebitmap_from_imagedata"
     },
@@ -3304,10 +3260,6 @@
         "name": "rendering.mobile/slashdot_mobile_2018"
     },
     {
-        "duration": "92.0",
-        "name": "rendering.mobile/slide_drawer"
-    },
-    {
         "duration": "25.0",
         "name": "rendering.mobile/small_texture_uploads"
     },
@@ -3332,10 +3284,6 @@
         "name": "rendering.mobile/sticky_using_webkit"
     },
     {
-        "duration": "23.0",
-        "name": "rendering.mobile/stress_hidey_bars"
-    },
-    {
         "duration": "24.0",
         "name": "rendering.mobile/stroke_shapes"
     },
@@ -3344,10 +3292,6 @@
         "name": "rendering.mobile/svg_icon_raster"
     },
     {
-        "duration": "13.0",
-        "name": "rendering.mobile/swipe_action"
-    },
-    {
         "duration": "16.0",
         "name": "rendering.mobile/swipe_to_dismiss"
     },
@@ -3508,10 +3452,6 @@
         "name": "rendering.mobile/toBlob_small_canvas_in_worker.html"
     },
     {
-        "duration": "21.0",
-        "name": "rendering.mobile/toggle_drawer"
-    },
-    {
         "duration": "19.0",
         "name": "rendering.mobile/touch_handler_scrolling"
     },
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json
index 0b48f6d..03a50ced 100644
--- a/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json
@@ -2120,10 +2120,6 @@
         "name": "rendering.mobile/coordinated_animation"
     },
     {
-        "duration": "9.0",
-        "name": "rendering.mobile/core_scroll_header_panel"
-    },
-    {
         "duration": "25.0",
         "name": "rendering.mobile/crafty_mind"
     },
@@ -2972,42 +2968,6 @@
         "name": "rendering.mobile/overlay_background_color_css_transitions_page"
     },
     {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_button"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_calculator"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_calculator_hit_test"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_checkbox"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_fab"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_icon_button"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_shadow"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_tabs"
-    },
-    {
-        "duration": "5.0",
-        "name": "rendering.mobile/paper_toggle_button"
-    },
-    {
         "duration": "17.0",
         "name": "rendering.mobile/parallax_effect"
     },
@@ -3032,10 +2992,6 @@
         "name": "rendering.mobile/pinterest_mobile_2018"
     },
     {
-        "duration": "5.0",
-        "name": "rendering.mobile/polymer_topeka"
-    },
-    {
         "duration": "23.0",
         "name": "rendering.mobile/put_and_create_imagebitmap_from_imagedata"
     },
@@ -3120,10 +3076,6 @@
         "name": "rendering.mobile/slashdot_mobile_2018"
     },
     {
-        "duration": "17.0",
-        "name": "rendering.mobile/slide_drawer"
-    },
-    {
         "duration": "25.0",
         "name": "rendering.mobile/small_texture_uploads"
     },
@@ -3148,10 +3100,6 @@
         "name": "rendering.mobile/sticky_using_webkit"
     },
     {
-        "duration": "22.0",
-        "name": "rendering.mobile/stress_hidey_bars"
-    },
-    {
         "duration": "25.0",
         "name": "rendering.mobile/stroke_shapes"
     },
@@ -3160,10 +3108,6 @@
         "name": "rendering.mobile/svg_icon_raster"
     },
     {
-        "duration": "14.0",
-        "name": "rendering.mobile/swipe_action"
-    },
-    {
         "duration": "16.0",
         "name": "rendering.mobile/swipe_to_dismiss"
     },
@@ -3304,10 +3248,6 @@
         "name": "rendering.mobile/toBlob_small_canvas_in_worker.html"
     },
     {
-        "duration": "22.0",
-        "name": "rendering.mobile/toggle_drawer"
-    },
-    {
         "duration": "23.0",
         "name": "rendering.mobile/touch_handler_scrolling"
     },
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel4-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel4-perf_timing.json
index 5333a40..f97993148 100644
--- a/tools/perf/core/shard_maps/timing_data/android-pixel4-perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android-pixel4-perf_timing.json
@@ -2200,10 +2200,6 @@
         "name": "rendering.mobile/coordinated_animation"
     },
     {
-        "duration": "9.0",
-        "name": "rendering.mobile/core_scroll_header_panel"
-    },
-    {
         "duration": "24.0",
         "name": "rendering.mobile/crafty_mind"
     },
@@ -3032,42 +3028,6 @@
         "name": "rendering.mobile/overlay_background_color_css_transitions_page"
     },
     {
-        "duration": "11.0",
-        "name": "rendering.mobile/paper_button"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.mobile/paper_calculator"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.mobile/paper_calculator_hit_test"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.mobile/paper_checkbox"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.mobile/paper_fab"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.mobile/paper_icon_button"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.mobile/paper_shadow"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.mobile/paper_tabs"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.mobile/paper_toggle_button"
-    },
-    {
         "duration": "22.0",
         "name": "rendering.mobile/parallax_effect"
     },
@@ -3092,10 +3052,6 @@
         "name": "rendering.mobile/pinterest_mobile_2018"
     },
     {
-        "duration": "15.0",
-        "name": "rendering.mobile/polymer_topeka"
-    },
-    {
         "duration": "34.0",
         "name": "rendering.mobile/put_and_create_imagebitmap_from_imagedata"
     },
@@ -3180,10 +3136,6 @@
         "name": "rendering.mobile/slashdot_mobile_2018"
     },
     {
-        "duration": "22.0",
-        "name": "rendering.mobile/slide_drawer"
-    },
-    {
         "duration": "25.0",
         "name": "rendering.mobile/small_texture_uploads"
     },
@@ -3208,10 +3160,6 @@
         "name": "rendering.mobile/sticky_using_webkit"
     },
     {
-        "duration": "26.0",
-        "name": "rendering.mobile/stress_hidey_bars"
-    },
-    {
         "duration": "25.0",
         "name": "rendering.mobile/stroke_shapes"
     },
@@ -3220,10 +3168,6 @@
         "name": "rendering.mobile/svg_icon_raster"
     },
     {
-        "duration": "19.0",
-        "name": "rendering.mobile/swipe_action"
-    },
-    {
         "duration": "21.0",
         "name": "rendering.mobile/swipe_to_dismiss"
     },
@@ -3364,10 +3308,6 @@
         "name": "rendering.mobile/toBlob_small_canvas_in_worker.html"
     },
     {
-        "duration": "26.0",
-        "name": "rendering.mobile/toggle_drawer"
-    },
-    {
         "duration": "25.0",
         "name": "rendering.mobile/touch_handler_scrolling"
     },
diff --git a/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json b/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json
index 4e315e8..2f0c3cf 100644
--- a/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json
@@ -2216,10 +2216,6 @@
         "name": "rendering.mobile/coordinated_animation"
     },
     {
-        "duration": "4.0",
-        "name": "rendering.mobile/core_scroll_header_panel"
-    },
-    {
         "duration": "23.0",
         "name": "rendering.mobile/crafty_mind"
     },
@@ -3088,42 +3084,6 @@
         "name": "rendering.mobile/overlay_background_color_css_transitions_page"
     },
     {
-        "duration": "3.0",
-        "name": "rendering.mobile/paper_button"
-    },
-    {
-        "duration": "3.0",
-        "name": "rendering.mobile/paper_calculator"
-    },
-    {
-        "duration": "3.0",
-        "name": "rendering.mobile/paper_calculator_hit_test"
-    },
-    {
-        "duration": "3.0",
-        "name": "rendering.mobile/paper_checkbox"
-    },
-    {
-        "duration": "3.0",
-        "name": "rendering.mobile/paper_fab"
-    },
-    {
-        "duration": "3.0",
-        "name": "rendering.mobile/paper_icon_button"
-    },
-    {
-        "duration": "3.0",
-        "name": "rendering.mobile/paper_shadow"
-    },
-    {
-        "duration": "3.0",
-        "name": "rendering.mobile/paper_tabs"
-    },
-    {
-        "duration": "3.0",
-        "name": "rendering.mobile/paper_toggle_button"
-    },
-    {
         "duration": "16.0",
         "name": "rendering.mobile/parallax_effect"
     },
@@ -3148,10 +3108,6 @@
         "name": "rendering.mobile/pinterest_mobile_2018"
     },
     {
-        "duration": "3.0",
-        "name": "rendering.mobile/polymer_topeka"
-    },
-    {
         "duration": "22.0",
         "name": "rendering.mobile/put_and_create_imagebitmap_from_imagedata"
     },
@@ -3200,26 +3156,14 @@
         "name": "rendering.mobile/sfgate_mobile_2018"
     },
     {
-        "duration": "16.0",
-        "name": "rendering.mobile/slide_drawer"
-    },
-    {
         "duration": "14.0",
         "name": "rendering.mobile/sticky_using_webkit"
     },
     {
-        "duration": "22.0",
-        "name": "rendering.mobile/stress_hidey_bars"
-    },
-    {
         "duration": "25.0",
         "name": "rendering.mobile/svg_icon_raster"
     },
     {
-        "duration": "13.0",
-        "name": "rendering.mobile/swipe_action"
-    },
-    {
         "duration": "15.0",
         "name": "rendering.mobile/swipe_to_dismiss"
     },
@@ -3244,10 +3188,6 @@
         "name": "rendering.mobile/text_scrollbar_700_pixels_per_second"
     },
     {
-        "duration": "21.0",
-        "name": "rendering.mobile/toggle_drawer"
-    },
-    {
         "duration": "16.0",
         "name": "rendering.mobile/vertical_expansion"
     },
diff --git a/tools/perf/core/test_data/benchmarks_to_shard.json b/tools/perf/core/test_data/benchmarks_to_shard.json
index c3374be5..15fee7e 100644
--- a/tools/perf/core/test_data/benchmarks_to_shard.json
+++ b/tools/perf/core/test_data/benchmarks_to_shard.json
@@ -1153,7 +1153,6 @@
       "cnn_pathological_2018",
       "compositor_heavy_animation",
       "coordinated_animation",
-      "core_scroll_header_panel",
       "crafty_mind",
       "css_animations_many_keyframes",
       "css_animations_simultaneous_inline_style",
@@ -1312,15 +1311,6 @@
       "nytimes_mobile_2018",
       "nytimes_scroll_2018",
       "overlay_background_color_css_transitions_page",
-      "paper_button",
-      "paper_calculator",
-      "paper_calculator_hit_test",
-      "paper_checkbox",
-      "paper_fab",
-      "paper_icon_button",
-      "paper_shadow",
-      "paper_tabs",
-      "paper_toggle_button",
       "parallax_effect",
       "particles",
       "pbs_pathological_2018",
@@ -1329,7 +1319,6 @@
       "pinterest_desktop_gpu_raster_2018",
       "pinterest_mobile_2018",
       "pinterest_mobile_sync_scroll_2018",
-      "polymer_topeka",
       "put_get_image_data",
       "raf",
       "raf_animation",
@@ -1348,15 +1337,12 @@
       "simple_text_page",
       "simple_touch_drag",
       "slashdot_mobile_2018",
-      "slide_drawer",
       "small_texture_uploads",
       "smash_cat",
       "spielzeugz",
       "sticky_using_webkit",
-      "stress_hidey_bars",
       "stroke_shapes",
       "svg_icon_raster",
-      "swipe_action",
       "swipe_to_dismiss",
       "sync_scroll_offset",
       "techcrunch_2018",
@@ -1427,7 +1413,6 @@
       "theverge_article_mobile_sync_scroll_2018",
       "theverge_mobile_2018",
       "theverge_mobile_sync_scroll_2018",
-      "toggle_drawer",
       "touch_handler_scrolling",
       "transform_transitions",
       "transform_transitions_js_block",
diff --git a/tools/perf/expectations.config b/tools/perf/expectations.config
index 18dc1ad..e02495277 100644
--- a/tools/perf/expectations.config
+++ b/tools/perf/expectations.config
@@ -234,15 +234,6 @@
 crbug.com/755556 [ android ] rendering.mobile/balls_css_key_frame_animations_composited_transform [ Skip ]
 crbug.com/840964 [ android-nexus-5x ] rendering.mobile/web_animations_many_keyframes [ Skip ]
 crbug.com/653993 [ android-webview ] rendering.mobile/maps_perf_test [ Skip ]
-rendering.mobile/core_scroll_header_panel [ Skip ] # Polymer test, needs to be modernized.
-rendering.mobile/paper_button [ Skip ] # Polymer test, needs to be modernized.
-rendering.mobile/paper_calculator [ Skip ] # Polymer test, needs to be modernized.
-rendering.mobile/paper_checkbox [ Skip ] # Polymer test, needs to be modernized.
-rendering.mobile/paper_fab [ Skip ] # Polymer test, needs to be modernized.
-rendering.mobile/paper_icon_button [ Skip ] # Polymer test, needs to be modernized.
-rendering.mobile/paper_shadow [ Skip ] # Polymer test, needs to be modernized.
-rendering.mobile/paper_tabs [ Skip ] # Polymer test, needs to be modernized.
-rendering.mobile/paper_toggle_button [ Skip ] # Polymer test, needs to be modernized.
 crbug.com/785473 [ android-webview ] rendering.mobile/canvas_20000_pixels_per_second [ Skip ]
 crbug.com/785473 [ android-webview ] rendering.mobile/canvas_40000_pixels_per_second [ Skip ]
 crbug.com/785473 [ android-webview ] rendering.mobile/canvas_10000_pixels_per_second [ Skip ]
@@ -250,10 +241,8 @@
 crbug.com/785473 [ android-webview ] rendering.mobile/canvas_60000_pixels_per_second [ Skip ]
 crbug.com/785473 [ android-webview ] rendering.mobile/canvas_90000_pixels_per_second [ Skip ]
 crbug.com/850295 rendering.mobile/aquarium_20k [ Skip ]
-crbug.com/780525 rendering.mobile/polymer_topeka [ Skip ]
 crbug.com/461127 rendering.mobile/famo_us_twitter_demo [ Skip ]
 crbug.com/850295 rendering.mobile/aquarium_20k [ Skip ]
-crbug.com/750876 rendering.mobile/paper_calculator_hit_test [ Skip ]
 crbug.com/873013 [ android-webview ] rendering.mobile/yahoo_answers_mobile_2018 [ Skip ]
 crbug.com/893197 [ android-nexus-5x ] rendering.mobile/yahoo_answers_mobile_2018 [ Skip ]
 crbug.com/865400 [ android-pixel-2 ] rendering.mobile/yahoo_answers_mobile_2018 [ Skip ]
diff --git a/tools/perf/page_sets/data/key_silk_cases.json b/tools/perf/page_sets/data/key_silk_cases.json
index dc255c2..c321a96 100644
--- a/tools/perf/page_sets/data/key_silk_cases.json
+++ b/tools/perf/page_sets/data/key_silk_cases.json
@@ -62,9 +62,6 @@
         },
         "gws_boogie_expansion": {
             "DEFAULT": "key_silk_cases_017.wprgo"
-        },
-        "polymer_topeka": {
-            "DEFAULT": "key_silk_cases_018.wprgo"
         }
     },
     "description": "Describes the Web Page Replay archives for a story set. Don't edit by hand! Use record_wpr for updating.",
diff --git a/tools/perf/page_sets/data/key_silk_cases_018.wprgo.sha1 b/tools/perf/page_sets/data/key_silk_cases_018.wprgo.sha1
deleted file mode 100644
index 0c7d440..0000000
--- a/tools/perf/page_sets/data/key_silk_cases_018.wprgo.sha1
+++ /dev/null
@@ -1 +0,0 @@
-5ef089f33fe58ce5a4ac5dada9aab2fa5a20c447
\ No newline at end of file
diff --git a/tools/perf/page_sets/data/rendering_mobile.json b/tools/perf/page_sets/data/rendering_mobile.json
index 504e9b9..1fa19aa 100644
--- a/tools/perf/page_sets/data/rendering_mobile.json
+++ b/tools/perf/page_sets/data/rendering_mobile.json
@@ -129,9 +129,6 @@
         "coordinated_animation": {
             "DEFAULT": "rendering_mobile_020.wprgo"
         },
-        "core_scroll_header_panel": {
-            "DEFAULT": "rendering_mobile_017.wprgo"
-        },
         "crafty_mind": {
             "DEFAULT": "rendering_mobile_004.wprgo"
         },
@@ -489,30 +486,6 @@
         "nytimes_scroll_2018": {
             "DEFAULT": "rendering_mobile_016.wprgo"
         },
-        "paper_button": {
-            "DEFAULT": "rendering_mobile_017.wprgo"
-        },
-        "paper_calculator": {
-            "DEFAULT": "rendering_mobile_017.wprgo"
-        },
-        "paper_checkbox": {
-            "DEFAULT": "rendering_mobile_017.wprgo"
-        },
-        "paper_fab": {
-            "DEFAULT": "rendering_mobile_017.wprgo"
-        },
-        "paper_icon_button": {
-            "DEFAULT": "rendering_mobile_017.wprgo"
-        },
-        "paper_shadow": {
-            "DEFAULT": "rendering_mobile_017.wprgo"
-        },
-        "paper_tabs": {
-            "DEFAULT": "rendering_mobile_017.wprgo"
-        },
-        "paper_toggle_button": {
-            "DEFAULT": "rendering_mobile_017.wprgo"
-        },
         "parallax_effect": {
             "DEFAULT": "rendering_mobile_020.wprgo"
         },
@@ -534,9 +507,6 @@
         "pinterest_mobile_2018": {
             "DEFAULT": "rendering_mobile_011.wprgo"
         },
-        "polymer_topeka": {
-            "DEFAULT": "rendering_mobile_024.wprgo"
-        },
         "recode_pathological_2018": {
             "DEFAULT": "rendering_mobile_025.wprgo"
         },
diff --git a/tools/perf/page_sets/data/rendering_mobile_017.wprgo.sha1 b/tools/perf/page_sets/data/rendering_mobile_017.wprgo.sha1
deleted file mode 100644
index 2381d4c..0000000
--- a/tools/perf/page_sets/data/rendering_mobile_017.wprgo.sha1
+++ /dev/null
@@ -1 +0,0 @@
-f604a548b31291f508671addee9d1e63608f9508
\ No newline at end of file
diff --git a/tools/perf/page_sets/data/rendering_mobile_024.wprgo.sha1 b/tools/perf/page_sets/data/rendering_mobile_024.wprgo.sha1
deleted file mode 100644
index 0c7d440..0000000
--- a/tools/perf/page_sets/data/rendering_mobile_024.wprgo.sha1
+++ /dev/null
@@ -1 +0,0 @@
-5ef089f33fe58ce5a4ac5dada9aab2fa5a20c447
\ No newline at end of file
diff --git a/tools/perf/page_sets/key_hit_test_cases/paper-calculator-no-rendering.html b/tools/perf/page_sets/key_hit_test_cases/paper-calculator-no-rendering.html
deleted file mode 100644
index 111d8a5..0000000
--- a/tools/perf/page_sets/key_hit_test_cases/paper-calculator-no-rendering.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!--
-    @license
-    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
-    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-    Code distributed by Google as part of the polymer project is also
-    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
---><!DOCTYPE html><html><head><title>Paper Calculator</title><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-capable" content="yes"><script>window.WebComponents=window.WebComponents||{};(function(scope){var flags=scope.flags||{};var file="webcomponents.js";var script=document.querySelector('script[src*="'+file+'"]');var flags={};if(!flags.noOpts){location.search.slice(1).split("&").forEach(function(o){o=o.split("=");o[0]&&(flags[o[0]]=o[1]||true)});if(script){for(var i=0,a;a=script.attributes[i];i++){if(a.name!=="src"){flags[a.name]=a.value||true}}}if(flags.log){var parts=flags.log.split(",");flags.log={};parts.forEach(function(f){flags.log[f]=true})}else{flags.log={}}}flags.shadow=flags.shadow||flags.shadowdom||flags.polyfill;if(flags.shadow==="native"){flags.shadow=false}else{flags.shadow=flags.shadow||!HTMLElement.prototype.createShadowRoot}if(flags.register){window.CustomElements=window.CustomElements||{flags:{}};window.CustomElements.flags.register=flags.register}scope.flags=flags})(WebComponents);if(WebComponents.flags.shadow){if(typeof WeakMap==="undefined"){(function(){var defineProperty=Object.defineProperty;var counter=Date.now()%1e9;var WeakMap=function(){this.name="__st"+(Math.random()*1e9>>>0)+(counter++ +"__")};WeakMap.prototype={set:function(key,value){var entry=key[this.name];if(entry&&entry[0]===key)entry[1]=value;else defineProperty(key,this.name,{value:[key,value],writable:true});return this},get:function(key){var entry;return(entry=key[this.name])&&entry[0]===key?entry[1]:undefined},"delete":function(key){var entry=key[this.name];if(!entry||entry[0]!==key)return false;entry[0]=entry[1]=undefined;return true},has:function(key){var entry=key[this.name];if(!entry)return false;return entry[0]===key}};window.WeakMap=WeakMap})()}window.ShadowDOMPolyfill={};(function(scope){"use strict";var constructorTable=new WeakMap;var nativePrototypeTable=new WeakMap;var wrappers=Object.create(null);function detectEval(){if(typeof chrome!=="undefined"&&chrome.app&&chrome.app.runtime){return false}if(navigator.getDeviceStorage){return false}try{var f=new Function("return true;");return f()}catch(ex){return false}}var hasEval=detectEval();function assert(b){if(!b)throw new Error("Assertion failed")}var defineProperty=Object.defineProperty;var getOwnPropertyNames=Object.getOwnPropertyNames;var getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;function mixin(to,from){var names=getOwnPropertyNames(from);for(var i=0;i<names.length;i++){var name=names[i];defineProperty(to,name,getOwnPropertyDescriptor(from,name))}return to}function mixinStatics(to,from){var names=getOwnPropertyNames(from);for(var i=0;i<names.length;i++){var name=names[i];switch(name){case"arguments":case"caller":case"length":case"name":case"prototype":case"toString":continue}defineProperty(to,name,getOwnPropertyDescriptor(from,name))}return to}function oneOf(object,propertyNames){for(var i=0;i<propertyNames.length;i++){if(propertyNames[i]in object)return propertyNames[i]}}var nonEnumerableDataDescriptor={value:undefined,configurable:true,enumerable:false,writable:true};function defineNonEnumerableDataProperty(object,name,value){nonEnumerableDataDescriptor.value=value;defineProperty(object,name,nonEnumerableDataDescriptor)}getOwnPropertyNames(window);function getWrapperConstructor(node){var nativePrototype=node.__proto__||Object.getPrototypeOf(node);var wrapperConstructor=constructorTable.get(nativePrototype);if(wrapperConstructor)return wrapperConstructor;var parentWrapperConstructor=getWrapperConstructor(nativePrototype);var GeneratedWrapper=createWrapperConstructor(parentWrapperConstructor);registerInternal(nativePrototype,GeneratedWrapper,node);return GeneratedWrapper}function addForwardingProperties(nativePrototype,wrapperPrototype){installProperty(nativePrototype,wrapperPrototype,true)}function registerInstanceProperties(wrapperPrototype,instanceObject){installProperty(instanceObject,wrapperPrototype,false)}var isFirefox=/Firefox/.test(navigator.userAgent);var dummyDescriptor={get:function(){},set:function(v){},configurable:true,enumerable:true};function isEventHandlerName(name){return/^on[a-z]+$/.test(name)}function isIdentifierName(name){return/^\w[a-zA-Z_0-9]*$/.test(name)}function getGetter(name){return hasEval&&isIdentifierName(name)?new Function("return this.__impl4cf1e782hg__."+name):function(){return this.__impl4cf1e782hg__[name]}}function getSetter(name){return hasEval&&isIdentifierName(name)?new Function("v","this.__impl4cf1e782hg__."+name+" = v"):function(v){this.__impl4cf1e782hg__[name]=v}}function getMethod(name){return hasEval&&isIdentifierName(name)?new Function("return this.__impl4cf1e782hg__."+name+".apply(this.__impl4cf1e782hg__, arguments)"):function(){return this.__impl4cf1e782hg__[name].apply(this.__impl4cf1e782hg__,arguments)}}function getDescriptor(source,name){try{return Object.getOwnPropertyDescriptor(source,name)}catch(ex){return dummyDescriptor}}var isBrokenSafari=function(){var descr=Object.getOwnPropertyDescriptor(Node.prototype,"nodeType");return descr&&!descr.get&&!descr.set}();function installProperty(source,target,allowMethod,opt_blacklist){var names=getOwnPropertyNames(source);for(var i=0;i<names.length;i++){var name=names[i];if(name==="polymerBlackList_")continue;if(name in target)continue;if(source.polymerBlackList_&&source.polymerBlackList_[name])continue;if(isFirefox){source.__lookupGetter__(name)}var descriptor=getDescriptor(source,name);var getter,setter;if(allowMethod&&typeof descriptor.value==="function"){target[name]=getMethod(name);continue}var isEvent=isEventHandlerName(name);if(isEvent)getter=scope.getEventHandlerGetter(name);else getter=getGetter(name);if(descriptor.writable||descriptor.set||isBrokenSafari){if(isEvent)setter=scope.getEventHandlerSetter(name);else setter=getSetter(name)}defineProperty(target,name,{get:getter,set:setter,configurable:descriptor.configurable,enumerable:descriptor.enumerable})}}function register(nativeConstructor,wrapperConstructor,opt_instance){var nativePrototype=nativeConstructor.prototype;registerInternal(nativePrototype,wrapperConstructor,opt_instance);mixinStatics(wrapperConstructor,nativeConstructor)}function registerInternal(nativePrototype,wrapperConstructor,opt_instance){var wrapperPrototype=wrapperConstructor.prototype;assert(constructorTable.get(nativePrototype)===undefined);constructorTable.set(nativePrototype,wrapperConstructor);nativePrototypeTable.set(wrapperPrototype,nativePrototype);addForwardingProperties(nativePrototype,wrapperPrototype);if(opt_instance)registerInstanceProperties(wrapperPrototype,opt_instance);defineNonEnumerableDataProperty(wrapperPrototype,"constructor",wrapperConstructor);wrapperConstructor.prototype=wrapperPrototype}function isWrapperFor(wrapperConstructor,nativeConstructor){return constructorTable.get(nativeConstructor.prototype)===wrapperConstructor}function registerObject(object){var nativePrototype=Object.getPrototypeOf(object);var superWrapperConstructor=getWrapperConstructor(nativePrototype);var GeneratedWrapper=createWrapperConstructor(superWrapperConstructor);registerInternal(nativePrototype,GeneratedWrapper,object);return GeneratedWrapper}function createWrapperConstructor(superWrapperConstructor){function GeneratedWrapper(node){superWrapperConstructor.call(this,node)}var p=Object.create(superWrapperConstructor.prototype);p.constructor=GeneratedWrapper;GeneratedWrapper.prototype=p;return GeneratedWrapper}function isWrapper(object){return object&&object.__impl4cf1e782hg__}function isNative(object){return!isWrapper(object)}function wrap(impl){if(impl===null)return null;assert(isNative(impl));return impl.__wrapper8e3dd93a60__||(impl.__wrapper8e3dd93a60__=new(getWrapperConstructor(impl))(impl))}function unwrap(wrapper){if(wrapper===null)return null;assert(isWrapper(wrapper));return wrapper.__impl4cf1e782hg__}function unsafeUnwrap(wrapper){return wrapper.__impl4cf1e782hg__}function setWrapper(impl,wrapper){wrapper.__impl4cf1e782hg__=impl;impl.__wrapper8e3dd93a60__=wrapper}function unwrapIfNeeded(object){return object&&isWrapper(object)?unwrap(object):object}function wrapIfNeeded(object){return object&&!isWrapper(object)?wrap(object):object}function rewrap(node,wrapper){if(wrapper===null)return;assert(isNative(node));assert(wrapper===undefined||isWrapper(wrapper));node.__wrapper8e3dd93a60__=wrapper}var getterDescriptor={get:undefined,configurable:true,enumerable:true};function defineGetter(constructor,name,getter){getterDescriptor.get=getter;defineProperty(constructor.prototype,name,getterDescriptor)}function defineWrapGetter(constructor,name){defineGetter(constructor,name,function(){return wrap(this.__impl4cf1e782hg__[name])})}function forwardMethodsToWrapper(constructors,names){constructors.forEach(function(constructor){names.forEach(function(name){constructor.prototype[name]=function(){var w=wrapIfNeeded(this);return w[name].apply(w,arguments)}})})}scope.assert=assert;scope.constructorTable=constructorTable;scope.defineGetter=defineGetter;scope.defineWrapGetter=defineWrapGetter;scope.forwardMethodsToWrapper=forwardMethodsToWrapper;scope.isWrapper=isWrapper;scope.isWrapperFor=isWrapperFor;scope.mixin=mixin;scope.nativePrototypeTable=nativePrototypeTable;scope.oneOf=oneOf;scope.registerObject=registerObject;scope.registerWrapper=register;scope.rewrap=rewrap;scope.setWrapper=setWrapper;scope.unsafeUnwrap=unsafeUnwrap;scope.unwrap=unwrap;scope.unwrapIfNeeded=unwrapIfNeeded;scope.wrap=wrap;scope.wrapIfNeeded=wrapIfNeeded;scope.wrappers=wrappers})(window.ShadowDOMPolyfill);(function(scope){"use strict";function newSplice(index,removed,addedCount){return{index:index,removed:removed,addedCount:addedCount}}var EDIT_LEAVE=0;var EDIT_UPDATE=1;var EDIT_ADD=2;var EDIT_DELETE=3;function ArraySplice(){}ArraySplice.prototype={calcEditDistances:function(current,currentStart,currentEnd,old,oldStart,oldEnd){var rowCount=oldEnd-oldStart+1;var columnCount=currentEnd-currentStart+1;var distances=new Array(rowCount);for(var i=0;i<rowCount;i++){distances[i]=new Array(columnCount);distances[i][0]=i}for(var j=0;j<columnCount;j++)distances[0][j]=j;for(var i=1;i<rowCount;i++){for(var j=1;j<columnCount;j++){if(this.equals(current[currentStart+j-1],old[oldStart+i-1]))distances[i][j]=distances[i-1][j-1];else{var north=distances[i-1][j]+1;var west=distances[i][j-1]+1;distances[i][j]=north<west?north:west}}}return distances},spliceOperationsFromEditDistances:function(distances){var i=distances.length-1;var j=distances[0].length-1;var current=distances[i][j];var edits=[];while(i>0||j>0){if(i==0){edits.push(EDIT_ADD);j--;continue}if(j==0){edits.push(EDIT_DELETE);i--;continue}var northWest=distances[i-1][j-1];var west=distances[i-1][j];var north=distances[i][j-1];var min;if(west<north)min=west<northWest?west:northWest;else min=north<northWest?north:northWest;if(min==northWest){if(northWest==current){edits.push(EDIT_LEAVE)}else{edits.push(EDIT_UPDATE);current=northWest}i--;j--}else if(min==west){edits.push(EDIT_DELETE);i--;current=west}else{edits.push(EDIT_ADD);j--;current=north}}edits.reverse();return edits},calcSplices:function(current,currentStart,currentEnd,old,oldStart,oldEnd){var prefixCount=0;var suffixCount=0;var minLength=Math.min(currentEnd-currentStart,oldEnd-oldStart);if(currentStart==0&&oldStart==0)prefixCount=this.sharedPrefix(current,old,minLength);if(currentEnd==current.length&&oldEnd==old.length)suffixCount=this.sharedSuffix(current,old,minLength-prefixCount);currentStart+=prefixCount;oldStart+=prefixCount;currentEnd-=suffixCount;oldEnd-=suffixCount;if(currentEnd-currentStart==0&&oldEnd-oldStart==0)return[];if(currentStart==currentEnd){var splice=newSplice(currentStart,[],0);while(oldStart<oldEnd)splice.removed.push(old[oldStart++]);return[splice]}else if(oldStart==oldEnd)return[newSplice(currentStart,[],currentEnd-currentStart)];var ops=this.spliceOperationsFromEditDistances(this.calcEditDistances(current,currentStart,currentEnd,old,oldStart,oldEnd));var splice=undefined;var splices=[];var index=currentStart;var oldIndex=oldStart;for(var i=0;i<ops.length;i++){switch(ops[i]){case EDIT_LEAVE:if(splice){splices.push(splice);splice=undefined}index++;oldIndex++;break;case EDIT_UPDATE:if(!splice)splice=newSplice(index,[],0);splice.addedCount++;index++;splice.removed.push(old[oldIndex]);oldIndex++;break;case EDIT_ADD:if(!splice)splice=newSplice(index,[],0);splice.addedCount++;index++;break;case EDIT_DELETE:if(!splice)splice=newSplice(index,[],0);splice.removed.push(old[oldIndex]);oldIndex++;break}}if(splice){splices.push(splice)}return splices},sharedPrefix:function(current,old,searchLength){for(var i=0;i<searchLength;i++)if(!this.equals(current[i],old[i]))return i;return searchLength},sharedSuffix:function(current,old,searchLength){var index1=current.length;var index2=old.length;var count=0;while(count<searchLength&&this.equals(current[--index1],old[--index2]))count++;return count},calculateSplices:function(current,previous){return this.calcSplices(current,0,current.length,previous,0,previous.length)},equals:function(currentValue,previousValue){return currentValue===previousValue}};scope.ArraySplice=ArraySplice})(window.ShadowDOMPolyfill);(function(context){"use strict";var OriginalMutationObserver=window.MutationObserver;var callbacks=[];var pending=false;var timerFunc;function handle(){pending=false;var copies=callbacks.slice(0);callbacks=[];for(var i=0;i<copies.length;i++){(0,copies[i])()}}if(OriginalMutationObserver){var counter=1;var observer=new OriginalMutationObserver(handle);var textNode=document.createTextNode(counter);observer.observe(textNode,{characterData:true});timerFunc=function(){counter=(counter+1)%2;textNode.data=counter}}else{timerFunc=window.setTimeout}function setEndOfMicrotask(func){callbacks.push(func);if(pending)return;pending=true;timerFunc(handle,0)}context.setEndOfMicrotask=setEndOfMicrotask})(window.ShadowDOMPolyfill);(function(scope){"use strict";var setEndOfMicrotask=scope.setEndOfMicrotask;var wrapIfNeeded=scope.wrapIfNeeded;var wrappers=scope.wrappers;var registrationsTable=new WeakMap;var globalMutationObservers=[];var isScheduled=false;function scheduleCallback(observer){if(observer.scheduled_)return;observer.scheduled_=true;globalMutationObservers.push(observer);if(isScheduled)return;setEndOfMicrotask(notifyObservers);isScheduled=true}function notifyObservers(){isScheduled=false;while(globalMutationObservers.length){var notifyList=globalMutationObservers;globalMutationObservers=[];notifyList.sort(function(x,y){return x.uid_-y.uid_});for(var i=0;i<notifyList.length;i++){var mo=notifyList[i];mo.scheduled_=false;var queue=mo.takeRecords();removeTransientObserversFor(mo);if(queue.length){mo.callback_(queue,mo)}}}}function MutationRecord(type,target){this.type=type;this.target=target;this.addedNodes=new wrappers.NodeList;this.removedNodes=new wrappers.NodeList;this.previousSibling=null;this.nextSibling=null;this.attributeName=null;this.attributeNamespace=null;this.oldValue=null}function registerTransientObservers(ancestor,node){for(;ancestor;ancestor=ancestor.parentNode){var registrations=registrationsTable.get(ancestor);if(!registrations)continue;for(var i=0;i<registrations.length;i++){var registration=registrations[i];if(registration.options.subtree)registration.addTransientObserver(node)}}}function removeTransientObserversFor(observer){for(var i=0;i<observer.nodes_.length;i++){var node=observer.nodes_[i];var registrations=registrationsTable.get(node);if(!registrations)return;for(var j=0;j<registrations.length;j++){var registration=registrations[j];if(registration.observer===observer)registration.removeTransientObservers()}}}function enqueueMutation(target,type,data){var interestedObservers=Object.create(null);var associatedStrings=Object.create(null);for(var node=target;node;node=node.parentNode){var registrations=registrationsTable.get(node);if(!registrations)continue;for(var j=0;j<registrations.length;j++){var registration=registrations[j];var options=registration.options;if(node!==target&&!options.subtree)continue;if(type==="attributes"&&!options.attributes)continue;if(type==="attributes"&&options.attributeFilter&&(data.namespace!==null||options.attributeFilter.indexOf(data.name)===-1)){continue}if(type==="characterData"&&!options.characterData)continue;if(type==="childList"&&!options.childList)continue;var observer=registration.observer;interestedObservers[observer.uid_]=observer;if(type==="attributes"&&options.attributeOldValue||type==="characterData"&&options.characterDataOldValue){associatedStrings[observer.uid_]=data.oldValue}}}for(var uid in interestedObservers){var observer=interestedObservers[uid];var record=new MutationRecord(type,target);if("name"in data&&"namespace"in data){record.attributeName=data.name;record.attributeNamespace=data.namespace}if(data.addedNodes)record.addedNodes=data.addedNodes;if(data.removedNodes)record.removedNodes=data.removedNodes;if(data.previousSibling)record.previousSibling=data.previousSibling;if(data.nextSibling)record.nextSibling=data.nextSibling;if(associatedStrings[uid]!==undefined)record.oldValue=associatedStrings[uid];scheduleCallback(observer);observer.records_.push(record)}}var slice=Array.prototype.slice;function MutationObserverOptions(options){this.childList=!!options.childList;this.subtree=!!options.subtree;if(!("attributes"in options)&&("attributeOldValue"in options||"attributeFilter"in options)){this.attributes=true}else{this.attributes=!!options.attributes}if("characterDataOldValue"in options&&!("characterData"in options))this.characterData=true;else this.characterData=!!options.characterData;if(!this.attributes&&(options.attributeOldValue||"attributeFilter"in options)||!this.characterData&&options.characterDataOldValue){throw new TypeError}this.characterData=!!options.characterData;this.attributeOldValue=!!options.attributeOldValue;this.characterDataOldValue=!!options.characterDataOldValue;if("attributeFilter"in options){if(options.attributeFilter==null||typeof options.attributeFilter!=="object"){throw new TypeError}this.attributeFilter=slice.call(options.attributeFilter)}else{this.attributeFilter=null}}var uidCounter=0;function MutationObserver(callback){this.callback_=callback;this.nodes_=[];this.records_=[];this.uid_=++uidCounter;this.scheduled_=false}MutationObserver.prototype={constructor:MutationObserver,observe:function(target,options){target=wrapIfNeeded(target);var newOptions=new MutationObserverOptions(options);var registration;var registrations=registrationsTable.get(target);if(!registrations)registrationsTable.set(target,registrations=[]);for(var i=0;i<registrations.length;i++){if(registrations[i].observer===this){registration=registrations[i];registration.removeTransientObservers();registration.options=newOptions}}if(!registration){registration=new Registration(this,target,newOptions);registrations.push(registration);this.nodes_.push(target)}},disconnect:function(){this.nodes_.forEach(function(node){var registrations=registrationsTable.get(node);for(var i=0;i<registrations.length;i++){var registration=registrations[i];if(registration.observer===this){registrations.splice(i,1);break}}},this);this.records_=[]},takeRecords:function(){var copyOfRecords=this.records_;this.records_=[];return copyOfRecords}};function Registration(observer,target,options){this.observer=observer;this.target=target;this.options=options;this.transientObservedNodes=[]}Registration.prototype={addTransientObserver:function(node){if(node===this.target)return;scheduleCallback(this.observer);this.transientObservedNodes.push(node);var registrations=registrationsTable.get(node);if(!registrations)registrationsTable.set(node,registrations=[]);registrations.push(this)},removeTransientObservers:function(){var transientObservedNodes=this.transientObservedNodes;this.transientObservedNodes=[];for(var i=0;i<transientObservedNodes.length;i++){var node=transientObservedNodes[i];var registrations=registrationsTable.get(node);for(var j=0;j<registrations.length;j++){if(registrations[j]===this){registrations.splice(j,1);break}}}}};scope.enqueueMutation=enqueueMutation;scope.registerTransientObservers=registerTransientObservers;scope.wrappers.MutationObserver=MutationObserver;scope.wrappers.MutationRecord=MutationRecord})(window.ShadowDOMPolyfill);(function(scope){"use strict";function TreeScope(root,parent){this.root=root;this.parent=parent}TreeScope.prototype={get renderer(){if(this.root instanceof scope.wrappers.ShadowRoot){return scope.getRendererForHost(this.root.host)}return null},contains:function(treeScope){for(;treeScope;treeScope=treeScope.parent){if(treeScope===this)return true}return false}};function setTreeScope(node,treeScope){if(node.treeScope_!==treeScope){node.treeScope_=treeScope;for(var sr=node.shadowRoot;sr;sr=sr.olderShadowRoot){sr.treeScope_.parent=treeScope}for(var child=node.firstChild;child;child=child.nextSibling){setTreeScope(child,treeScope)}}}function getTreeScope(node){if(node instanceof scope.wrappers.Window){debugger}if(node.treeScope_)return node.treeScope_;var parent=node.parentNode;var treeScope;if(parent)treeScope=getTreeScope(parent);else treeScope=new TreeScope(node,null);return node.treeScope_=treeScope}scope.TreeScope=TreeScope;scope.getTreeScope=getTreeScope;scope.setTreeScope=setTreeScope})(window.ShadowDOMPolyfill);(function(scope){"use strict";var forwardMethodsToWrapper=scope.forwardMethodsToWrapper;var getTreeScope=scope.getTreeScope;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var setWrapper=scope.setWrapper;var unsafeUnwrap=scope.unsafeUnwrap;var unwrap=scope.unwrap;var wrap=scope.wrap;var wrappers=scope.wrappers;var wrappedFuns=new WeakMap;var listenersTable=new WeakMap;var handledEventsTable=new WeakMap;var currentlyDispatchingEvents=new WeakMap;var targetTable=new WeakMap;var currentTargetTable=new WeakMap;var relatedTargetTable=new WeakMap;var eventPhaseTable=new WeakMap;var stopPropagationTable=new WeakMap;var stopImmediatePropagationTable=new WeakMap;var eventHandlersTable=new WeakMap;var eventPathTable=new WeakMap;function isShadowRoot(node){return node instanceof wrappers.ShadowRoot}function rootOfNode(node){return getTreeScope(node).root}function getEventPath(node,event){var path=[];var current=node;path.push(current);while(current){var destinationInsertionPoints=getDestinationInsertionPoints(current);if(destinationInsertionPoints&&destinationInsertionPoints.length>0){for(var i=0;i<destinationInsertionPoints.length;i++){var insertionPoint=destinationInsertionPoints[i];if(isShadowInsertionPoint(insertionPoint)){var shadowRoot=rootOfNode(insertionPoint);var olderShadowRoot=shadowRoot.olderShadowRoot;if(olderShadowRoot)path.push(olderShadowRoot)}path.push(insertionPoint)}current=destinationInsertionPoints[destinationInsertionPoints.length-1]}else{if(isShadowRoot(current)){if(inSameTree(node,current)&&eventMustBeStopped(event)){break}current=current.host;path.push(current)}else{current=current.parentNode;if(current)path.push(current)}}}return path}function eventMustBeStopped(event){if(!event)return false;switch(event.type){case"abort":case"error":case"select":case"change":case"load":case"reset":case"resize":case"scroll":case"selectstart":return true}return false}function isShadowInsertionPoint(node){return node instanceof HTMLShadowElement}function getDestinationInsertionPoints(node){return scope.getDestinationInsertionPoints(node)}function eventRetargetting(path,currentTarget){if(path.length===0)return currentTarget;if(currentTarget instanceof wrappers.Window)currentTarget=currentTarget.document;var currentTargetTree=getTreeScope(currentTarget);var originalTarget=path[0];var originalTargetTree=getTreeScope(originalTarget);var relativeTargetTree=lowestCommonInclusiveAncestor(currentTargetTree,originalTargetTree);for(var i=0;i<path.length;i++){var node=path[i];if(getTreeScope(node)===relativeTargetTree)return node}return path[path.length-1]}function getTreeScopeAncestors(treeScope){var ancestors=[];for(;treeScope;treeScope=treeScope.parent){ancestors.push(treeScope)}return ancestors}function lowestCommonInclusiveAncestor(tsA,tsB){var ancestorsA=getTreeScopeAncestors(tsA);var ancestorsB=getTreeScopeAncestors(tsB);var result=null;while(ancestorsA.length>0&&ancestorsB.length>0){var a=ancestorsA.pop();var b=ancestorsB.pop();if(a===b)result=a;else break}return result}function getTreeScopeRoot(ts){if(!ts.parent)return ts;return getTreeScopeRoot(ts.parent)}function relatedTargetResolution(event,currentTarget,relatedTarget){if(currentTarget instanceof wrappers.Window)currentTarget=currentTarget.document;var currentTargetTree=getTreeScope(currentTarget);var relatedTargetTree=getTreeScope(relatedTarget);var relatedTargetEventPath=getEventPath(relatedTarget,event);var lowestCommonAncestorTree;var lowestCommonAncestorTree=lowestCommonInclusiveAncestor(currentTargetTree,relatedTargetTree);if(!lowestCommonAncestorTree)lowestCommonAncestorTree=relatedTargetTree.root;for(var commonAncestorTree=lowestCommonAncestorTree;commonAncestorTree;commonAncestorTree=commonAncestorTree.parent){var adjustedRelatedTarget;for(var i=0;i<relatedTargetEventPath.length;i++){var node=relatedTargetEventPath[i];if(getTreeScope(node)===commonAncestorTree)return node}}return null}function inSameTree(a,b){return getTreeScope(a)===getTreeScope(b)}var NONE=0;var CAPTURING_PHASE=1;var AT_TARGET=2;var BUBBLING_PHASE=3;var pendingError;function dispatchOriginalEvent(originalEvent){if(handledEventsTable.get(originalEvent))return;handledEventsTable.set(originalEvent,true);dispatchEvent(wrap(originalEvent),wrap(originalEvent.target));if(pendingError){var err=pendingError;pendingError=null;throw err}}function isLoadLikeEvent(event){switch(event.type){case"load":case"beforeunload":case"unload":return true}return false}function dispatchEvent(event,originalWrapperTarget){if(currentlyDispatchingEvents.get(event))throw new Error("InvalidStateError");currentlyDispatchingEvents.set(event,true);scope.renderAllPending();var eventPath;var overrideTarget;var win;if(isLoadLikeEvent(event)&&!event.bubbles){var doc=originalWrapperTarget;if(doc instanceof wrappers.Document&&(win=doc.defaultView)){overrideTarget=doc;eventPath=[]}}if(!eventPath){if(originalWrapperTarget instanceof wrappers.Window){win=originalWrapperTarget;eventPath=[]}else{eventPath=getEventPath(originalWrapperTarget,event);if(!isLoadLikeEvent(event)){var doc=eventPath[eventPath.length-1];if(doc instanceof wrappers.Document)win=doc.defaultView}}}eventPathTable.set(event,eventPath);if(dispatchCapturing(event,eventPath,win,overrideTarget)){if(dispatchAtTarget(event,eventPath,win,overrideTarget)){dispatchBubbling(event,eventPath,win,overrideTarget)}}eventPhaseTable.set(event,NONE);currentTargetTable.delete(event,null);currentlyDispatchingEvents.delete(event);return event.defaultPrevented}function dispatchCapturing(event,eventPath,win,overrideTarget){var phase=CAPTURING_PHASE;if(win){if(!invoke(win,event,phase,eventPath,overrideTarget))return false}for(var i=eventPath.length-1;i>0;i--){if(!invoke(eventPath[i],event,phase,eventPath,overrideTarget))return false}return true}function dispatchAtTarget(event,eventPath,win,overrideTarget){var phase=AT_TARGET;var currentTarget=eventPath[0]||win;return invoke(currentTarget,event,phase,eventPath,overrideTarget)}function dispatchBubbling(event,eventPath,win,overrideTarget){var phase=BUBBLING_PHASE;for(var i=1;i<eventPath.length;i++){if(!invoke(eventPath[i],event,phase,eventPath,overrideTarget))return}if(win&&eventPath.length>0){invoke(win,event,phase,eventPath,overrideTarget)}}function invoke(currentTarget,event,phase,eventPath,overrideTarget){var listeners=listenersTable.get(currentTarget);if(!listeners)return true;var target=overrideTarget||eventRetargetting(eventPath,currentTarget);if(target===currentTarget){if(phase===CAPTURING_PHASE)return true;if(phase===BUBBLING_PHASE)phase=AT_TARGET}else if(phase===BUBBLING_PHASE&&!event.bubbles){return true}if("relatedTarget"in event){var originalEvent=unwrap(event);var unwrappedRelatedTarget=originalEvent.relatedTarget;if(unwrappedRelatedTarget){if(unwrappedRelatedTarget instanceof Object&&unwrappedRelatedTarget.addEventListener){var relatedTarget=wrap(unwrappedRelatedTarget);var adjusted=relatedTargetResolution(event,currentTarget,relatedTarget);if(adjusted===target)return true}else{adjusted=null}relatedTargetTable.set(event,adjusted)}}eventPhaseTable.set(event,phase);var type=event.type;var anyRemoved=false;targetTable.set(event,target);currentTargetTable.set(event,currentTarget);listeners.depth++;for(var i=0,len=listeners.length;i<len;i++){var listener=listeners[i];if(listener.removed){anyRemoved=true;continue}if(listener.type!==type||!listener.capture&&phase===CAPTURING_PHASE||listener.capture&&phase===BUBBLING_PHASE){continue}try{if(typeof listener.handler==="function")listener.handler.call(currentTarget,event);else listener.handler.handleEvent(event);if(stopImmediatePropagationTable.get(event))return false}catch(ex){if(!pendingError)pendingError=ex}}listeners.depth--;if(anyRemoved&&listeners.depth===0){var copy=listeners.slice();listeners.length=0;for(var i=0;i<copy.length;i++){if(!copy[i].removed)listeners.push(copy[i])}}return!stopPropagationTable.get(event)}function Listener(type,handler,capture){this.type=type;this.handler=handler;this.capture=Boolean(capture)}Listener.prototype={equals:function(that){return this.handler===that.handler&&this.type===that.type&&this.capture===that.capture},get removed(){return this.handler===null},remove:function(){this.handler=null}};var OriginalEvent=window.Event;OriginalEvent.prototype.polymerBlackList_={returnValue:true,keyLocation:true};function Event(type,options){if(type instanceof OriginalEvent){var impl=type;if(!OriginalBeforeUnloadEvent&&impl.type==="beforeunload"&&!(this instanceof BeforeUnloadEvent)){return new BeforeUnloadEvent(impl)}setWrapper(impl,this)}else{return wrap(constructEvent(OriginalEvent,"Event",type,options))}}Event.prototype={get target(){return targetTable.get(this)},get currentTarget(){return currentTargetTable.get(this)},get eventPhase(){return eventPhaseTable.get(this)},get path(){var eventPath=eventPathTable.get(this);if(!eventPath)return[];return eventPath.slice()},stopPropagation:function(){stopPropagationTable.set(this,true)},stopImmediatePropagation:function(){stopPropagationTable.set(this,true);stopImmediatePropagationTable.set(this,true)}};registerWrapper(OriginalEvent,Event,document.createEvent("Event"));function unwrapOptions(options){if(!options||!options.relatedTarget)return options;return Object.create(options,{relatedTarget:{value:unwrap(options.relatedTarget)}})}function registerGenericEvent(name,SuperEvent,prototype){var OriginalEvent=window[name];var GenericEvent=function(type,options){if(type instanceof OriginalEvent)setWrapper(type,this);else return wrap(constructEvent(OriginalEvent,name,type,options))};GenericEvent.prototype=Object.create(SuperEvent.prototype);if(prototype)mixin(GenericEvent.prototype,prototype);if(OriginalEvent){try{registerWrapper(OriginalEvent,GenericEvent,new OriginalEvent("temp"))}catch(ex){registerWrapper(OriginalEvent,GenericEvent,document.createEvent(name))}}return GenericEvent}var UIEvent=registerGenericEvent("UIEvent",Event);var CustomEvent=registerGenericEvent("CustomEvent",Event);var relatedTargetProto={get relatedTarget(){var relatedTarget=relatedTargetTable.get(this);if(relatedTarget!==undefined)return relatedTarget;return wrap(unwrap(this).relatedTarget)}};function getInitFunction(name,relatedTargetIndex){return function(){arguments[relatedTargetIndex]=unwrap(arguments[relatedTargetIndex]);var impl=unwrap(this);impl[name].apply(impl,arguments)}}var mouseEventProto=mixin({initMouseEvent:getInitFunction("initMouseEvent",14)},relatedTargetProto);var focusEventProto=mixin({initFocusEvent:getInitFunction("initFocusEvent",5)},relatedTargetProto);var MouseEvent=registerGenericEvent("MouseEvent",UIEvent,mouseEventProto);var FocusEvent=registerGenericEvent("FocusEvent",UIEvent,focusEventProto);var defaultInitDicts=Object.create(null);var supportsEventConstructors=function(){try{new window.FocusEvent("focus")}catch(ex){return false}return true
-}();function constructEvent(OriginalEvent,name,type,options){if(supportsEventConstructors)return new OriginalEvent(type,unwrapOptions(options));var event=unwrap(document.createEvent(name));var defaultDict=defaultInitDicts[name];var args=[type];Object.keys(defaultDict).forEach(function(key){var v=options!=null&&key in options?options[key]:defaultDict[key];if(key==="relatedTarget")v=unwrap(v);args.push(v)});event["init"+name].apply(event,args);return event}if(!supportsEventConstructors){var configureEventConstructor=function(name,initDict,superName){if(superName){var superDict=defaultInitDicts[superName];initDict=mixin(mixin({},superDict),initDict)}defaultInitDicts[name]=initDict};configureEventConstructor("Event",{bubbles:false,cancelable:false});configureEventConstructor("CustomEvent",{detail:null},"Event");configureEventConstructor("UIEvent",{view:null,detail:0},"Event");configureEventConstructor("MouseEvent",{screenX:0,screenY:0,clientX:0,clientY:0,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false,button:0,relatedTarget:null},"UIEvent");configureEventConstructor("FocusEvent",{relatedTarget:null},"UIEvent")}var OriginalBeforeUnloadEvent=window.BeforeUnloadEvent;function BeforeUnloadEvent(impl){Event.call(this,impl)}BeforeUnloadEvent.prototype=Object.create(Event.prototype);mixin(BeforeUnloadEvent.prototype,{get returnValue(){return unsafeUnwrap(this).returnValue},set returnValue(v){unsafeUnwrap(this).returnValue=v}});if(OriginalBeforeUnloadEvent)registerWrapper(OriginalBeforeUnloadEvent,BeforeUnloadEvent);function isValidListener(fun){if(typeof fun==="function")return true;return fun&&fun.handleEvent}function isMutationEvent(type){switch(type){case"DOMAttrModified":case"DOMAttributeNameChanged":case"DOMCharacterDataModified":case"DOMElementNameChanged":case"DOMNodeInserted":case"DOMNodeInsertedIntoDocument":case"DOMNodeRemoved":case"DOMNodeRemovedFromDocument":case"DOMSubtreeModified":return true}return false}var OriginalEventTarget=window.EventTarget;function EventTarget(impl){setWrapper(impl,this)}var methodNames=["addEventListener","removeEventListener","dispatchEvent"];[Node,Window].forEach(function(constructor){var p=constructor.prototype;methodNames.forEach(function(name){Object.defineProperty(p,name+"_",{value:p[name]})})});function getTargetToListenAt(wrapper){if(wrapper instanceof wrappers.ShadowRoot)wrapper=wrapper.host;return unwrap(wrapper)}EventTarget.prototype={addEventListener:function(type,fun,capture){if(!isValidListener(fun)||isMutationEvent(type))return;var listener=new Listener(type,fun,capture);var listeners=listenersTable.get(this);if(!listeners){listeners=[];listeners.depth=0;listenersTable.set(this,listeners)}else{for(var i=0;i<listeners.length;i++){if(listener.equals(listeners[i]))return}}listeners.push(listener);var target=getTargetToListenAt(this);target.addEventListener_(type,dispatchOriginalEvent,true)},removeEventListener:function(type,fun,capture){capture=Boolean(capture);var listeners=listenersTable.get(this);if(!listeners)return;var count=0,found=false;for(var i=0;i<listeners.length;i++){if(listeners[i].type===type&&listeners[i].capture===capture){count++;if(listeners[i].handler===fun){found=true;listeners[i].remove()}}}if(found&&count===1){var target=getTargetToListenAt(this);target.removeEventListener_(type,dispatchOriginalEvent,true)}},dispatchEvent:function(event){var nativeEvent=unwrap(event);var eventType=nativeEvent.type;handledEventsTable.set(nativeEvent,false);scope.renderAllPending();var tempListener;if(!hasListenerInAncestors(this,eventType)){tempListener=function(){};this.addEventListener(eventType,tempListener,true)}try{return unwrap(this).dispatchEvent_(nativeEvent)}finally{if(tempListener)this.removeEventListener(eventType,tempListener,true)}}};function hasListener(node,type){var listeners=listenersTable.get(node);if(listeners){for(var i=0;i<listeners.length;i++){if(!listeners[i].removed&&listeners[i].type===type)return true}}return false}function hasListenerInAncestors(target,type){for(var node=unwrap(target);node;node=node.parentNode){if(hasListener(wrap(node),type))return true}return false}if(OriginalEventTarget)registerWrapper(OriginalEventTarget,EventTarget);function wrapEventTargetMethods(constructors){forwardMethodsToWrapper(constructors,methodNames)}var originalElementFromPoint=document.elementFromPoint;function elementFromPoint(self,document,x,y){scope.renderAllPending();var element=wrap(originalElementFromPoint.call(unsafeUnwrap(document),x,y));if(!element)return null;var path=getEventPath(element,null);var idx=path.lastIndexOf(self);if(idx==-1)return null;else path=path.slice(0,idx);return eventRetargetting(path,self)}function getEventHandlerGetter(name){return function(){var inlineEventHandlers=eventHandlersTable.get(this);return inlineEventHandlers&&inlineEventHandlers[name]&&inlineEventHandlers[name].value||null}}function getEventHandlerSetter(name){var eventType=name.slice(2);return function(value){var inlineEventHandlers=eventHandlersTable.get(this);if(!inlineEventHandlers){inlineEventHandlers=Object.create(null);eventHandlersTable.set(this,inlineEventHandlers)}var old=inlineEventHandlers[name];if(old)this.removeEventListener(eventType,old.wrapped,false);if(typeof value==="function"){var wrapped=function(e){var rv=value.call(this,e);if(rv===false)e.preventDefault();else if(name==="onbeforeunload"&&typeof rv==="string")e.returnValue=rv};this.addEventListener(eventType,wrapped,false);inlineEventHandlers[name]={value:value,wrapped:wrapped}}}}scope.elementFromPoint=elementFromPoint;scope.getEventHandlerGetter=getEventHandlerGetter;scope.getEventHandlerSetter=getEventHandlerSetter;scope.wrapEventTargetMethods=wrapEventTargetMethods;scope.wrappers.BeforeUnloadEvent=BeforeUnloadEvent;scope.wrappers.CustomEvent=CustomEvent;scope.wrappers.Event=Event;scope.wrappers.EventTarget=EventTarget;scope.wrappers.FocusEvent=FocusEvent;scope.wrappers.MouseEvent=MouseEvent;scope.wrappers.UIEvent=UIEvent})(window.ShadowDOMPolyfill);(function(scope){"use strict";var UIEvent=scope.wrappers.UIEvent;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var setWrapper=scope.setWrapper;var unsafeUnwrap=scope.unsafeUnwrap;var wrap=scope.wrap;var OriginalTouchEvent=window.TouchEvent;if(!OriginalTouchEvent)return;var nativeEvent;try{nativeEvent=document.createEvent("TouchEvent")}catch(ex){return}var nonEnumDescriptor={enumerable:false};function nonEnum(obj,prop){Object.defineProperty(obj,prop,nonEnumDescriptor)}function Touch(impl){setWrapper(impl,this)}Touch.prototype={get target(){return wrap(unsafeUnwrap(this).target)}};var descr={configurable:true,enumerable:true,get:null};["clientX","clientY","screenX","screenY","pageX","pageY","identifier","webkitRadiusX","webkitRadiusY","webkitRotationAngle","webkitForce"].forEach(function(name){descr.get=function(){return unsafeUnwrap(this)[name]};Object.defineProperty(Touch.prototype,name,descr)});function TouchList(){this.length=0;nonEnum(this,"length")}TouchList.prototype={item:function(index){return this[index]}};function wrapTouchList(nativeTouchList){var list=new TouchList;for(var i=0;i<nativeTouchList.length;i++){list[i]=new Touch(nativeTouchList[i])}list.length=i;return list}function TouchEvent(impl){UIEvent.call(this,impl)}TouchEvent.prototype=Object.create(UIEvent.prototype);mixin(TouchEvent.prototype,{get touches(){return wrapTouchList(unsafeUnwrap(this).touches)},get targetTouches(){return wrapTouchList(unsafeUnwrap(this).targetTouches)},get changedTouches(){return wrapTouchList(unsafeUnwrap(this).changedTouches)},initTouchEvent:function(){throw new Error("Not implemented")}});registerWrapper(OriginalTouchEvent,TouchEvent,nativeEvent);scope.wrappers.Touch=Touch;scope.wrappers.TouchEvent=TouchEvent;scope.wrappers.TouchList=TouchList})(window.ShadowDOMPolyfill);(function(scope){"use strict";var unsafeUnwrap=scope.unsafeUnwrap;var wrap=scope.wrap;var nonEnumDescriptor={enumerable:false};function nonEnum(obj,prop){Object.defineProperty(obj,prop,nonEnumDescriptor)}function NodeList(){this.length=0;nonEnum(this,"length")}NodeList.prototype={item:function(index){return this[index]}};nonEnum(NodeList.prototype,"item");function wrapNodeList(list){if(list==null)return list;var wrapperList=new NodeList;for(var i=0,length=list.length;i<length;i++){wrapperList[i]=wrap(list[i])}wrapperList.length=length;return wrapperList}function addWrapNodeListMethod(wrapperConstructor,name){wrapperConstructor.prototype[name]=function(){return wrapNodeList(unsafeUnwrap(this)[name].apply(unsafeUnwrap(this),arguments))}}scope.wrappers.NodeList=NodeList;scope.addWrapNodeListMethod=addWrapNodeListMethod;scope.wrapNodeList=wrapNodeList})(window.ShadowDOMPolyfill);(function(scope){"use strict";scope.wrapHTMLCollection=scope.wrapNodeList;scope.wrappers.HTMLCollection=scope.wrappers.NodeList})(window.ShadowDOMPolyfill);(function(scope){"use strict";var EventTarget=scope.wrappers.EventTarget;var NodeList=scope.wrappers.NodeList;var TreeScope=scope.TreeScope;var assert=scope.assert;var defineWrapGetter=scope.defineWrapGetter;var enqueueMutation=scope.enqueueMutation;var getTreeScope=scope.getTreeScope;var isWrapper=scope.isWrapper;var mixin=scope.mixin;var registerTransientObservers=scope.registerTransientObservers;var registerWrapper=scope.registerWrapper;var setTreeScope=scope.setTreeScope;var unsafeUnwrap=scope.unsafeUnwrap;var unwrap=scope.unwrap;var unwrapIfNeeded=scope.unwrapIfNeeded;var wrap=scope.wrap;var wrapIfNeeded=scope.wrapIfNeeded;var wrappers=scope.wrappers;function assertIsNodeWrapper(node){assert(node instanceof Node)}function createOneElementNodeList(node){var nodes=new NodeList;nodes[0]=node;nodes.length=1;return nodes}var surpressMutations=false;function enqueueRemovalForInsertedNodes(node,parent,nodes){enqueueMutation(parent,"childList",{removedNodes:nodes,previousSibling:node.previousSibling,nextSibling:node.nextSibling})}function enqueueRemovalForInsertedDocumentFragment(df,nodes){enqueueMutation(df,"childList",{removedNodes:nodes})}function collectNodes(node,parentNode,previousNode,nextNode){if(node instanceof DocumentFragment){var nodes=collectNodesForDocumentFragment(node);surpressMutations=true;for(var i=nodes.length-1;i>=0;i--){node.removeChild(nodes[i]);nodes[i].parentNode_=parentNode}surpressMutations=false;for(var i=0;i<nodes.length;i++){nodes[i].previousSibling_=nodes[i-1]||previousNode;nodes[i].nextSibling_=nodes[i+1]||nextNode}if(previousNode)previousNode.nextSibling_=nodes[0];if(nextNode)nextNode.previousSibling_=nodes[nodes.length-1];return nodes}var nodes=createOneElementNodeList(node);var oldParent=node.parentNode;if(oldParent){oldParent.removeChild(node)}node.parentNode_=parentNode;node.previousSibling_=previousNode;node.nextSibling_=nextNode;if(previousNode)previousNode.nextSibling_=node;if(nextNode)nextNode.previousSibling_=node;return nodes}function collectNodesNative(node){if(node instanceof DocumentFragment)return collectNodesForDocumentFragment(node);var nodes=createOneElementNodeList(node);var oldParent=node.parentNode;if(oldParent)enqueueRemovalForInsertedNodes(node,oldParent,nodes);return nodes}function collectNodesForDocumentFragment(node){var nodes=new NodeList;var i=0;for(var child=node.firstChild;child;child=child.nextSibling){nodes[i++]=child}nodes.length=i;enqueueRemovalForInsertedDocumentFragment(node,nodes);return nodes}function snapshotNodeList(nodeList){return nodeList}function nodeWasAdded(node,treeScope){setTreeScope(node,treeScope);node.nodeIsInserted_()}function nodesWereAdded(nodes,parent){var treeScope=getTreeScope(parent);for(var i=0;i<nodes.length;i++){nodeWasAdded(nodes[i],treeScope)}}function nodeWasRemoved(node){setTreeScope(node,new TreeScope(node,null))}function nodesWereRemoved(nodes){for(var i=0;i<nodes.length;i++){nodeWasRemoved(nodes[i])}}function ensureSameOwnerDocument(parent,child){var ownerDoc=parent.nodeType===Node.DOCUMENT_NODE?parent:parent.ownerDocument;if(ownerDoc!==child.ownerDocument)ownerDoc.adoptNode(child)}function adoptNodesIfNeeded(owner,nodes){if(!nodes.length)return;var ownerDoc=owner.ownerDocument;if(ownerDoc===nodes[0].ownerDocument)return;for(var i=0;i<nodes.length;i++){scope.adoptNodeNoRemove(nodes[i],ownerDoc)}}function unwrapNodesForInsertion(owner,nodes){adoptNodesIfNeeded(owner,nodes);var length=nodes.length;if(length===1)return unwrap(nodes[0]);var df=unwrap(owner.ownerDocument.createDocumentFragment());for(var i=0;i<length;i++){df.appendChild(unwrap(nodes[i]))}return df}function clearChildNodes(wrapper){if(wrapper.firstChild_!==undefined){var child=wrapper.firstChild_;while(child){var tmp=child;child=child.nextSibling_;tmp.parentNode_=tmp.previousSibling_=tmp.nextSibling_=undefined}}wrapper.firstChild_=wrapper.lastChild_=undefined}function removeAllChildNodes(wrapper){if(wrapper.invalidateShadowRenderer()){var childWrapper=wrapper.firstChild;while(childWrapper){assert(childWrapper.parentNode===wrapper);var nextSibling=childWrapper.nextSibling;var childNode=unwrap(childWrapper);var parentNode=childNode.parentNode;if(parentNode)originalRemoveChild.call(parentNode,childNode);childWrapper.previousSibling_=childWrapper.nextSibling_=childWrapper.parentNode_=null;childWrapper=nextSibling}wrapper.firstChild_=wrapper.lastChild_=null}else{var node=unwrap(wrapper);var child=node.firstChild;var nextSibling;while(child){nextSibling=child.nextSibling;originalRemoveChild.call(node,child);child=nextSibling}}}function invalidateParent(node){var p=node.parentNode;return p&&p.invalidateShadowRenderer()}function cleanupNodes(nodes){for(var i=0,n;i<nodes.length;i++){n=nodes[i];n.parentNode.removeChild(n)}}var originalImportNode=document.importNode;var originalCloneNode=window.Node.prototype.cloneNode;function cloneNode(node,deep,opt_doc){var clone;if(opt_doc)clone=wrap(originalImportNode.call(opt_doc,unsafeUnwrap(node),false));else clone=wrap(originalCloneNode.call(unsafeUnwrap(node),false));if(deep){for(var child=node.firstChild;child;child=child.nextSibling){clone.appendChild(cloneNode(child,true,opt_doc))}if(node instanceof wrappers.HTMLTemplateElement){var cloneContent=clone.content;for(var child=node.content.firstChild;child;child=child.nextSibling){cloneContent.appendChild(cloneNode(child,true,opt_doc))}}}return clone}function contains(self,child){if(!child||getTreeScope(self)!==getTreeScope(child))return false;for(var node=child;node;node=node.parentNode){if(node===self)return true}return false}var OriginalNode=window.Node;function Node(original){assert(original instanceof OriginalNode);EventTarget.call(this,original);this.parentNode_=undefined;this.firstChild_=undefined;this.lastChild_=undefined;this.nextSibling_=undefined;this.previousSibling_=undefined;this.treeScope_=undefined}var OriginalDocumentFragment=window.DocumentFragment;var originalAppendChild=OriginalNode.prototype.appendChild;var originalCompareDocumentPosition=OriginalNode.prototype.compareDocumentPosition;var originalInsertBefore=OriginalNode.prototype.insertBefore;var originalRemoveChild=OriginalNode.prototype.removeChild;var originalReplaceChild=OriginalNode.prototype.replaceChild;var isIe=/Trident/.test(navigator.userAgent);var removeChildOriginalHelper=isIe?function(parent,child){try{originalRemoveChild.call(parent,child)}catch(ex){if(!(parent instanceof OriginalDocumentFragment))throw ex}}:function(parent,child){originalRemoveChild.call(parent,child)};Node.prototype=Object.create(EventTarget.prototype);mixin(Node.prototype,{appendChild:function(childWrapper){return this.insertBefore(childWrapper,null)},insertBefore:function(childWrapper,refWrapper){assertIsNodeWrapper(childWrapper);var refNode;if(refWrapper){if(isWrapper(refWrapper)){refNode=unwrap(refWrapper)}else{refNode=refWrapper;refWrapper=wrap(refNode)}}else{refWrapper=null;refNode=null}refWrapper&&assert(refWrapper.parentNode===this);var nodes;var previousNode=refWrapper?refWrapper.previousSibling:this.lastChild;var useNative=!this.invalidateShadowRenderer()&&!invalidateParent(childWrapper);if(useNative)nodes=collectNodesNative(childWrapper);else nodes=collectNodes(childWrapper,this,previousNode,refWrapper);if(useNative){ensureSameOwnerDocument(this,childWrapper);clearChildNodes(this);originalInsertBefore.call(unsafeUnwrap(this),unwrap(childWrapper),refNode)}else{if(!previousNode)this.firstChild_=nodes[0];if(!refWrapper){this.lastChild_=nodes[nodes.length-1];if(this.firstChild_===undefined)this.firstChild_=this.firstChild}var parentNode=refNode?refNode.parentNode:unsafeUnwrap(this);if(parentNode){originalInsertBefore.call(parentNode,unwrapNodesForInsertion(this,nodes),refNode)}else{adoptNodesIfNeeded(this,nodes)}}enqueueMutation(this,"childList",{addedNodes:nodes,nextSibling:refWrapper,previousSibling:previousNode});nodesWereAdded(nodes,this);return childWrapper},removeChild:function(childWrapper){assertIsNodeWrapper(childWrapper);if(childWrapper.parentNode!==this){var found=false;var childNodes=this.childNodes;for(var ieChild=this.firstChild;ieChild;ieChild=ieChild.nextSibling){if(ieChild===childWrapper){found=true;break}}if(!found){throw new Error("NotFoundError")}}var childNode=unwrap(childWrapper);var childWrapperNextSibling=childWrapper.nextSibling;var childWrapperPreviousSibling=childWrapper.previousSibling;if(this.invalidateShadowRenderer()){var thisFirstChild=this.firstChild;var thisLastChild=this.lastChild;var parentNode=childNode.parentNode;if(parentNode)removeChildOriginalHelper(parentNode,childNode);if(thisFirstChild===childWrapper)this.firstChild_=childWrapperNextSibling;if(thisLastChild===childWrapper)this.lastChild_=childWrapperPreviousSibling;if(childWrapperPreviousSibling)childWrapperPreviousSibling.nextSibling_=childWrapperNextSibling;if(childWrapperNextSibling){childWrapperNextSibling.previousSibling_=childWrapperPreviousSibling}childWrapper.previousSibling_=childWrapper.nextSibling_=childWrapper.parentNode_=undefined}else{clearChildNodes(this);removeChildOriginalHelper(unsafeUnwrap(this),childNode)}if(!surpressMutations){enqueueMutation(this,"childList",{removedNodes:createOneElementNodeList(childWrapper),nextSibling:childWrapperNextSibling,previousSibling:childWrapperPreviousSibling})}registerTransientObservers(this,childWrapper);return childWrapper},replaceChild:function(newChildWrapper,oldChildWrapper){assertIsNodeWrapper(newChildWrapper);var oldChildNode;if(isWrapper(oldChildWrapper)){oldChildNode=unwrap(oldChildWrapper)}else{oldChildNode=oldChildWrapper;oldChildWrapper=wrap(oldChildNode)}if(oldChildWrapper.parentNode!==this){throw new Error("NotFoundError")}var nextNode=oldChildWrapper.nextSibling;var previousNode=oldChildWrapper.previousSibling;var nodes;var useNative=!this.invalidateShadowRenderer()&&!invalidateParent(newChildWrapper);if(useNative){nodes=collectNodesNative(newChildWrapper)}else{if(nextNode===newChildWrapper)nextNode=newChildWrapper.nextSibling;nodes=collectNodes(newChildWrapper,this,previousNode,nextNode)}if(!useNative){if(this.firstChild===oldChildWrapper)this.firstChild_=nodes[0];if(this.lastChild===oldChildWrapper)this.lastChild_=nodes[nodes.length-1];oldChildWrapper.previousSibling_=oldChildWrapper.nextSibling_=oldChildWrapper.parentNode_=undefined;if(oldChildNode.parentNode){originalReplaceChild.call(oldChildNode.parentNode,unwrapNodesForInsertion(this,nodes),oldChildNode)}}else{ensureSameOwnerDocument(this,newChildWrapper);clearChildNodes(this);originalReplaceChild.call(unsafeUnwrap(this),unwrap(newChildWrapper),oldChildNode)}enqueueMutation(this,"childList",{addedNodes:nodes,removedNodes:createOneElementNodeList(oldChildWrapper),nextSibling:nextNode,previousSibling:previousNode});nodeWasRemoved(oldChildWrapper);nodesWereAdded(nodes,this);return oldChildWrapper},nodeIsInserted_:function(){for(var child=this.firstChild;child;child=child.nextSibling){child.nodeIsInserted_()}},hasChildNodes:function(){return this.firstChild!==null},get parentNode(){return this.parentNode_!==undefined?this.parentNode_:wrap(unsafeUnwrap(this).parentNode)},get firstChild(){return this.firstChild_!==undefined?this.firstChild_:wrap(unsafeUnwrap(this).firstChild)},get lastChild(){return this.lastChild_!==undefined?this.lastChild_:wrap(unsafeUnwrap(this).lastChild)},get nextSibling(){return this.nextSibling_!==undefined?this.nextSibling_:wrap(unsafeUnwrap(this).nextSibling)},get previousSibling(){return this.previousSibling_!==undefined?this.previousSibling_:wrap(unsafeUnwrap(this).previousSibling)},get parentElement(){var p=this.parentNode;while(p&&p.nodeType!==Node.ELEMENT_NODE){p=p.parentNode}return p},get textContent(){var s="";for(var child=this.firstChild;child;child=child.nextSibling){if(child.nodeType!=Node.COMMENT_NODE){s+=child.textContent}}return s},set textContent(textContent){if(textContent==null)textContent="";var removedNodes=snapshotNodeList(this.childNodes);if(this.invalidateShadowRenderer()){removeAllChildNodes(this);if(textContent!==""){var textNode=unsafeUnwrap(this).ownerDocument.createTextNode(textContent);this.appendChild(textNode)}}else{clearChildNodes(this);unsafeUnwrap(this).textContent=textContent}var addedNodes=snapshotNodeList(this.childNodes);enqueueMutation(this,"childList",{addedNodes:addedNodes,removedNodes:removedNodes});nodesWereRemoved(removedNodes);nodesWereAdded(addedNodes,this)},get childNodes(){var wrapperList=new NodeList;var i=0;for(var child=this.firstChild;child;child=child.nextSibling){wrapperList[i++]=child}wrapperList.length=i;return wrapperList},cloneNode:function(deep){return cloneNode(this,deep)},contains:function(child){return contains(this,wrapIfNeeded(child))},compareDocumentPosition:function(otherNode){return originalCompareDocumentPosition.call(unsafeUnwrap(this),unwrapIfNeeded(otherNode))},normalize:function(){var nodes=snapshotNodeList(this.childNodes);var remNodes=[];var s="";var modNode;for(var i=0,n;i<nodes.length;i++){n=nodes[i];if(n.nodeType===Node.TEXT_NODE){if(!modNode&&!n.data.length)this.removeNode(n);else if(!modNode)modNode=n;else{s+=n.data;remNodes.push(n)}}else{if(modNode&&remNodes.length){modNode.data+=s;cleanupNodes(remNodes)}remNodes=[];s="";modNode=null;if(n.childNodes.length)n.normalize()}}if(modNode&&remNodes.length){modNode.data+=s;cleanupNodes(remNodes)}}});defineWrapGetter(Node,"ownerDocument");registerWrapper(OriginalNode,Node,document.createDocumentFragment());delete Node.prototype.querySelector;delete Node.prototype.querySelectorAll;Node.prototype=mixin(Object.create(EventTarget.prototype),Node.prototype);scope.cloneNode=cloneNode;scope.nodeWasAdded=nodeWasAdded;scope.nodeWasRemoved=nodeWasRemoved;scope.nodesWereAdded=nodesWereAdded;scope.nodesWereRemoved=nodesWereRemoved;scope.originalInsertBefore=originalInsertBefore;scope.originalRemoveChild=originalRemoveChild;scope.snapshotNodeList=snapshotNodeList;scope.wrappers.Node=Node})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLCollection=scope.wrappers.HTMLCollection;var NodeList=scope.wrappers.NodeList;var getTreeScope=scope.getTreeScope;var unsafeUnwrap=scope.unsafeUnwrap;var wrap=scope.wrap;var originalDocumentQuerySelector=document.querySelector;var originalElementQuerySelector=document.documentElement.querySelector;var originalDocumentQuerySelectorAll=document.querySelectorAll;var originalElementQuerySelectorAll=document.documentElement.querySelectorAll;var originalDocumentGetElementsByTagName=document.getElementsByTagName;var originalElementGetElementsByTagName=document.documentElement.getElementsByTagName;var originalDocumentGetElementsByTagNameNS=document.getElementsByTagNameNS;var originalElementGetElementsByTagNameNS=document.documentElement.getElementsByTagNameNS;var OriginalElement=window.Element;var OriginalDocument=window.HTMLDocument||window.Document;function filterNodeList(list,index,result,deep){var wrappedItem=null;var root=null;for(var i=0,length=list.length;i<length;i++){wrappedItem=wrap(list[i]);if(!deep&&(root=getTreeScope(wrappedItem).root)){if(root instanceof scope.wrappers.ShadowRoot){continue}}result[index++]=wrappedItem}return index}function shimSelector(selector){return String(selector).replace(/\/deep\//g," ")}function findOne(node,selector){var m,el=node.firstElementChild;while(el){if(el.matches(selector))return el;m=findOne(el,selector);if(m)return m;el=el.nextElementSibling}return null}function matchesSelector(el,selector){return el.matches(selector)}var XHTML_NS="http://www.w3.org/1999/xhtml";function matchesTagName(el,localName,localNameLowerCase){var ln=el.localName;return ln===localName||ln===localNameLowerCase&&el.namespaceURI===XHTML_NS}function matchesEveryThing(){return true}function matchesLocalNameOnly(el,ns,localName){return el.localName===localName}function matchesNameSpace(el,ns){return el.namespaceURI===ns}function matchesLocalNameNS(el,ns,localName){return el.namespaceURI===ns&&el.localName===localName}function findElements(node,index,result,p,arg0,arg1){var el=node.firstElementChild;while(el){if(p(el,arg0,arg1))result[index++]=el;index=findElements(el,index,result,p,arg0,arg1);el=el.nextElementSibling}return index}function querySelectorAllFiltered(p,index,result,selector,deep){var target=unsafeUnwrap(this);var list;var root=getTreeScope(this).root;if(root instanceof scope.wrappers.ShadowRoot){return findElements(this,index,result,p,selector,null)}else if(target instanceof OriginalElement){list=originalElementQuerySelectorAll.call(target,selector)}else if(target instanceof OriginalDocument){list=originalDocumentQuerySelectorAll.call(target,selector)}else{return findElements(this,index,result,p,selector,null)}return filterNodeList(list,index,result,deep)}var SelectorsInterface={querySelector:function(selector){var shimmed=shimSelector(selector);var deep=shimmed!==selector;selector=shimmed;var target=unsafeUnwrap(this);var wrappedItem;var root=getTreeScope(this).root;if(root instanceof scope.wrappers.ShadowRoot){return findOne(this,selector)}else if(target instanceof OriginalElement){wrappedItem=wrap(originalElementQuerySelector.call(target,selector))}else if(target instanceof OriginalDocument){wrappedItem=wrap(originalDocumentQuerySelector.call(target,selector))}else{return findOne(this,selector)}if(!wrappedItem){return wrappedItem}else if(!deep&&(root=getTreeScope(wrappedItem).root)){if(root instanceof scope.wrappers.ShadowRoot){return findOne(this,selector)}}return wrappedItem},querySelectorAll:function(selector){var shimmed=shimSelector(selector);var deep=shimmed!==selector;selector=shimmed;var result=new NodeList;result.length=querySelectorAllFiltered.call(this,matchesSelector,0,result,selector,deep);return result}};function getElementsByTagNameFiltered(p,index,result,localName,lowercase){var target=unsafeUnwrap(this);var list;var root=getTreeScope(this).root;if(root instanceof scope.wrappers.ShadowRoot){return findElements(this,index,result,p,localName,lowercase)}else if(target instanceof OriginalElement){list=originalElementGetElementsByTagName.call(target,localName,lowercase)}else if(target instanceof OriginalDocument){list=originalDocumentGetElementsByTagName.call(target,localName,lowercase)}else{return findElements(this,index,result,p,localName,lowercase)}return filterNodeList(list,index,result,false)}function getElementsByTagNameNSFiltered(p,index,result,ns,localName){var target=unsafeUnwrap(this);var list;var root=getTreeScope(this).root;if(root instanceof scope.wrappers.ShadowRoot){return findElements(this,index,result,p,ns,localName)}else if(target instanceof OriginalElement){list=originalElementGetElementsByTagNameNS.call(target,ns,localName)}else if(target instanceof OriginalDocument){list=originalDocumentGetElementsByTagNameNS.call(target,ns,localName)}else{return findElements(this,index,result,p,ns,localName)}return filterNodeList(list,index,result,false)}var GetElementsByInterface={getElementsByTagName:function(localName){var result=new HTMLCollection;var match=localName==="*"?matchesEveryThing:matchesTagName;result.length=getElementsByTagNameFiltered.call(this,match,0,result,localName,localName.toLowerCase());return result},getElementsByClassName:function(className){return this.querySelectorAll("."+className)},getElementsByTagNameNS:function(ns,localName){var result=new HTMLCollection;var match=null;if(ns==="*"){match=localName==="*"?matchesEveryThing:matchesLocalNameOnly}else{match=localName==="*"?matchesNameSpace:matchesLocalNameNS}result.length=getElementsByTagNameNSFiltered.call(this,match,0,result,ns||null,localName);return result}};scope.GetElementsByInterface=GetElementsByInterface;scope.SelectorsInterface=SelectorsInterface})(window.ShadowDOMPolyfill);(function(scope){"use strict";var NodeList=scope.wrappers.NodeList;function forwardElement(node){while(node&&node.nodeType!==Node.ELEMENT_NODE){node=node.nextSibling}return node}function backwardsElement(node){while(node&&node.nodeType!==Node.ELEMENT_NODE){node=node.previousSibling}return node}var ParentNodeInterface={get firstElementChild(){return forwardElement(this.firstChild)},get lastElementChild(){return backwardsElement(this.lastChild)},get childElementCount(){var count=0;for(var child=this.firstElementChild;child;child=child.nextElementSibling){count++}return count},get children(){var wrapperList=new NodeList;var i=0;for(var child=this.firstElementChild;child;child=child.nextElementSibling){wrapperList[i++]=child}wrapperList.length=i;return wrapperList},remove:function(){var p=this.parentNode;if(p)p.removeChild(this)}};var ChildNodeInterface={get nextElementSibling(){return forwardElement(this.nextSibling)},get previousElementSibling(){return backwardsElement(this.previousSibling)}};scope.ChildNodeInterface=ChildNodeInterface;scope.ParentNodeInterface=ParentNodeInterface})(window.ShadowDOMPolyfill);(function(scope){"use strict";var ChildNodeInterface=scope.ChildNodeInterface;var Node=scope.wrappers.Node;var enqueueMutation=scope.enqueueMutation;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var unsafeUnwrap=scope.unsafeUnwrap;var OriginalCharacterData=window.CharacterData;function CharacterData(node){Node.call(this,node)}CharacterData.prototype=Object.create(Node.prototype);mixin(CharacterData.prototype,{get textContent(){return this.data},set textContent(value){this.data=value},get data(){return unsafeUnwrap(this).data},set data(value){var oldValue=unsafeUnwrap(this).data;enqueueMutation(this,"characterData",{oldValue:oldValue});unsafeUnwrap(this).data=value}});mixin(CharacterData.prototype,ChildNodeInterface);registerWrapper(OriginalCharacterData,CharacterData,document.createTextNode(""));scope.wrappers.CharacterData=CharacterData})(window.ShadowDOMPolyfill);(function(scope){"use strict";var CharacterData=scope.wrappers.CharacterData;var enqueueMutation=scope.enqueueMutation;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;function toUInt32(x){return x>>>0}var OriginalText=window.Text;function Text(node){CharacterData.call(this,node)}Text.prototype=Object.create(CharacterData.prototype);mixin(Text.prototype,{splitText:function(offset){offset=toUInt32(offset);var s=this.data;if(offset>s.length)throw new Error("IndexSizeError");var head=s.slice(0,offset);var tail=s.slice(offset);this.data=head;var newTextNode=this.ownerDocument.createTextNode(tail);if(this.parentNode)this.parentNode.insertBefore(newTextNode,this.nextSibling);return newTextNode}});registerWrapper(OriginalText,Text,document.createTextNode(""));scope.wrappers.Text=Text})(window.ShadowDOMPolyfill);(function(scope){"use strict";var setWrapper=scope.setWrapper;var unsafeUnwrap=scope.unsafeUnwrap;function invalidateClass(el){scope.invalidateRendererBasedOnAttribute(el,"class")}function DOMTokenList(impl,ownerElement){setWrapper(impl,this);this.ownerElement_=ownerElement}DOMTokenList.prototype={constructor:DOMTokenList,get length(){return unsafeUnwrap(this).length},item:function(index){return unsafeUnwrap(this).item(index)},contains:function(token){return unsafeUnwrap(this).contains(token)},add:function(){unsafeUnwrap(this).add.apply(unsafeUnwrap(this),arguments);invalidateClass(this.ownerElement_)},remove:function(){unsafeUnwrap(this).remove.apply(unsafeUnwrap(this),arguments);
-invalidateClass(this.ownerElement_)},toggle:function(token){var rv=unsafeUnwrap(this).toggle.apply(unsafeUnwrap(this),arguments);invalidateClass(this.ownerElement_);return rv},toString:function(){return unsafeUnwrap(this).toString()}};scope.wrappers.DOMTokenList=DOMTokenList})(window.ShadowDOMPolyfill);(function(scope){"use strict";var ChildNodeInterface=scope.ChildNodeInterface;var GetElementsByInterface=scope.GetElementsByInterface;var Node=scope.wrappers.Node;var DOMTokenList=scope.wrappers.DOMTokenList;var ParentNodeInterface=scope.ParentNodeInterface;var SelectorsInterface=scope.SelectorsInterface;var addWrapNodeListMethod=scope.addWrapNodeListMethod;var enqueueMutation=scope.enqueueMutation;var mixin=scope.mixin;var oneOf=scope.oneOf;var registerWrapper=scope.registerWrapper;var unsafeUnwrap=scope.unsafeUnwrap;var wrappers=scope.wrappers;var OriginalElement=window.Element;var matchesNames=["matches","mozMatchesSelector","msMatchesSelector","webkitMatchesSelector"].filter(function(name){return OriginalElement.prototype[name]});var matchesName=matchesNames[0];var originalMatches=OriginalElement.prototype[matchesName];function invalidateRendererBasedOnAttribute(element,name){var p=element.parentNode;if(!p||!p.shadowRoot)return;var renderer=scope.getRendererForHost(p);if(renderer.dependsOnAttribute(name))renderer.invalidate()}function enqueAttributeChange(element,name,oldValue){enqueueMutation(element,"attributes",{name:name,namespace:null,oldValue:oldValue})}var classListTable=new WeakMap;function Element(node){Node.call(this,node)}Element.prototype=Object.create(Node.prototype);mixin(Element.prototype,{createShadowRoot:function(){var newShadowRoot=new wrappers.ShadowRoot(this);unsafeUnwrap(this).polymerShadowRoot_=newShadowRoot;var renderer=scope.getRendererForHost(this);renderer.invalidate();return newShadowRoot},get shadowRoot(){return unsafeUnwrap(this).polymerShadowRoot_||null},setAttribute:function(name,value){var oldValue=unsafeUnwrap(this).getAttribute(name);unsafeUnwrap(this).setAttribute(name,value);enqueAttributeChange(this,name,oldValue);invalidateRendererBasedOnAttribute(this,name)},removeAttribute:function(name){var oldValue=unsafeUnwrap(this).getAttribute(name);unsafeUnwrap(this).removeAttribute(name);enqueAttributeChange(this,name,oldValue);invalidateRendererBasedOnAttribute(this,name)},matches:function(selector){return originalMatches.call(unsafeUnwrap(this),selector)},get classList(){var list=classListTable.get(this);if(!list){classListTable.set(this,list=new DOMTokenList(unsafeUnwrap(this).classList,this))}return list},get className(){return unsafeUnwrap(this).className},set className(v){this.setAttribute("class",v)},get id(){return unsafeUnwrap(this).id},set id(v){this.setAttribute("id",v)}});matchesNames.forEach(function(name){if(name!=="matches"){Element.prototype[name]=function(selector){return this.matches(selector)}}});if(OriginalElement.prototype.webkitCreateShadowRoot){Element.prototype.webkitCreateShadowRoot=Element.prototype.createShadowRoot}mixin(Element.prototype,ChildNodeInterface);mixin(Element.prototype,GetElementsByInterface);mixin(Element.prototype,ParentNodeInterface);mixin(Element.prototype,SelectorsInterface);registerWrapper(OriginalElement,Element,document.createElementNS(null,"x"));scope.invalidateRendererBasedOnAttribute=invalidateRendererBasedOnAttribute;scope.matchesNames=matchesNames;scope.wrappers.Element=Element})(window.ShadowDOMPolyfill);(function(scope){"use strict";var Element=scope.wrappers.Element;var defineGetter=scope.defineGetter;var enqueueMutation=scope.enqueueMutation;var mixin=scope.mixin;var nodesWereAdded=scope.nodesWereAdded;var nodesWereRemoved=scope.nodesWereRemoved;var registerWrapper=scope.registerWrapper;var snapshotNodeList=scope.snapshotNodeList;var unsafeUnwrap=scope.unsafeUnwrap;var unwrap=scope.unwrap;var wrap=scope.wrap;var wrappers=scope.wrappers;var escapeAttrRegExp=/[&\u00A0"]/g;var escapeDataRegExp=/[&\u00A0<>]/g;function escapeReplace(c){switch(c){case"&":return"&amp;";case"<":return"&lt;";case">":return"&gt;";case'"':return"&quot;";case" ":return"&nbsp;"}}function escapeAttr(s){return s.replace(escapeAttrRegExp,escapeReplace)}function escapeData(s){return s.replace(escapeDataRegExp,escapeReplace)}function makeSet(arr){var set={};for(var i=0;i<arr.length;i++){set[arr[i]]=true}return set}var voidElements=makeSet(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]);var plaintextParents=makeSet(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function getOuterHTML(node,parentNode){switch(node.nodeType){case Node.ELEMENT_NODE:var tagName=node.tagName.toLowerCase();var s="<"+tagName;var attrs=node.attributes;for(var i=0,attr;attr=attrs[i];i++){s+=" "+attr.name+'="'+escapeAttr(attr.value)+'"'}s+=">";if(voidElements[tagName])return s;return s+getInnerHTML(node)+"</"+tagName+">";case Node.TEXT_NODE:var data=node.data;if(parentNode&&plaintextParents[parentNode.localName])return data;return escapeData(data);case Node.COMMENT_NODE:return"<!--"+node.data+"-->";default:console.error(node);throw new Error("not implemented")}}function getInnerHTML(node){if(node instanceof wrappers.HTMLTemplateElement)node=node.content;var s="";for(var child=node.firstChild;child;child=child.nextSibling){s+=getOuterHTML(child,node)}return s}function setInnerHTML(node,value,opt_tagName){var tagName=opt_tagName||"div";node.textContent="";var tempElement=unwrap(node.ownerDocument.createElement(tagName));tempElement.innerHTML=value;var firstChild;while(firstChild=tempElement.firstChild){node.appendChild(wrap(firstChild))}}var oldIe=/MSIE/.test(navigator.userAgent);var OriginalHTMLElement=window.HTMLElement;var OriginalHTMLTemplateElement=window.HTMLTemplateElement;function HTMLElement(node){Element.call(this,node)}HTMLElement.prototype=Object.create(Element.prototype);mixin(HTMLElement.prototype,{get innerHTML(){return getInnerHTML(this)},set innerHTML(value){if(oldIe&&plaintextParents[this.localName]){this.textContent=value;return}var removedNodes=snapshotNodeList(this.childNodes);if(this.invalidateShadowRenderer()){if(this instanceof wrappers.HTMLTemplateElement)setInnerHTML(this.content,value);else setInnerHTML(this,value,this.tagName)}else if(!OriginalHTMLTemplateElement&&this instanceof wrappers.HTMLTemplateElement){setInnerHTML(this.content,value)}else{unsafeUnwrap(this).innerHTML=value}var addedNodes=snapshotNodeList(this.childNodes);enqueueMutation(this,"childList",{addedNodes:addedNodes,removedNodes:removedNodes});nodesWereRemoved(removedNodes);nodesWereAdded(addedNodes,this)},get outerHTML(){return getOuterHTML(this,this.parentNode)},set outerHTML(value){var p=this.parentNode;if(p){p.invalidateShadowRenderer();var df=frag(p,value);p.replaceChild(df,this)}},insertAdjacentHTML:function(position,text){var contextElement,refNode;switch(String(position).toLowerCase()){case"beforebegin":contextElement=this.parentNode;refNode=this;break;case"afterend":contextElement=this.parentNode;refNode=this.nextSibling;break;case"afterbegin":contextElement=this;refNode=this.firstChild;break;case"beforeend":contextElement=this;refNode=null;break;default:return}var df=frag(contextElement,text);contextElement.insertBefore(df,refNode)},get hidden(){return this.hasAttribute("hidden")},set hidden(v){if(v){this.setAttribute("hidden","")}else{this.removeAttribute("hidden")}}});function frag(contextElement,html){var p=unwrap(contextElement.cloneNode(false));p.innerHTML=html;var df=unwrap(document.createDocumentFragment());var c;while(c=p.firstChild){df.appendChild(c)}return wrap(df)}function getter(name){return function(){scope.renderAllPending();return unsafeUnwrap(this)[name]}}function getterRequiresRendering(name){defineGetter(HTMLElement,name,getter(name))}["clientHeight","clientLeft","clientTop","clientWidth","offsetHeight","offsetLeft","offsetTop","offsetWidth","scrollHeight","scrollWidth"].forEach(getterRequiresRendering);function getterAndSetterRequiresRendering(name){Object.defineProperty(HTMLElement.prototype,name,{get:getter(name),set:function(v){scope.renderAllPending();unsafeUnwrap(this)[name]=v},configurable:true,enumerable:true})}["scrollLeft","scrollTop"].forEach(getterAndSetterRequiresRendering);function methodRequiresRendering(name){Object.defineProperty(HTMLElement.prototype,name,{value:function(){scope.renderAllPending();return unsafeUnwrap(this)[name].apply(unsafeUnwrap(this),arguments)},configurable:true,enumerable:true})}["getBoundingClientRect","getClientRects","scrollIntoView"].forEach(methodRequiresRendering);registerWrapper(OriginalHTMLElement,HTMLElement,document.createElement("b"));scope.wrappers.HTMLElement=HTMLElement;scope.getInnerHTML=getInnerHTML;scope.setInnerHTML=setInnerHTML})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLElement=scope.wrappers.HTMLElement;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var unsafeUnwrap=scope.unsafeUnwrap;var wrap=scope.wrap;var OriginalHTMLCanvasElement=window.HTMLCanvasElement;function HTMLCanvasElement(node){HTMLElement.call(this,node)}HTMLCanvasElement.prototype=Object.create(HTMLElement.prototype);mixin(HTMLCanvasElement.prototype,{getContext:function(){var context=unsafeUnwrap(this).getContext.apply(unsafeUnwrap(this),arguments);return context&&wrap(context)}});registerWrapper(OriginalHTMLCanvasElement,HTMLCanvasElement,document.createElement("canvas"));scope.wrappers.HTMLCanvasElement=HTMLCanvasElement})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLElement=scope.wrappers.HTMLElement;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var OriginalHTMLContentElement=window.HTMLContentElement;function HTMLContentElement(node){HTMLElement.call(this,node)}HTMLContentElement.prototype=Object.create(HTMLElement.prototype);mixin(HTMLContentElement.prototype,{constructor:HTMLContentElement,get select(){return this.getAttribute("select")},set select(value){this.setAttribute("select",value)},setAttribute:function(n,v){HTMLElement.prototype.setAttribute.call(this,n,v);if(String(n).toLowerCase()==="select")this.invalidateShadowRenderer(true)}});if(OriginalHTMLContentElement)registerWrapper(OriginalHTMLContentElement,HTMLContentElement);scope.wrappers.HTMLContentElement=HTMLContentElement})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLElement=scope.wrappers.HTMLElement;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var wrapHTMLCollection=scope.wrapHTMLCollection;var unwrap=scope.unwrap;var OriginalHTMLFormElement=window.HTMLFormElement;function HTMLFormElement(node){HTMLElement.call(this,node)}HTMLFormElement.prototype=Object.create(HTMLElement.prototype);mixin(HTMLFormElement.prototype,{get elements(){return wrapHTMLCollection(unwrap(this).elements)}});registerWrapper(OriginalHTMLFormElement,HTMLFormElement,document.createElement("form"));scope.wrappers.HTMLFormElement=HTMLFormElement})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLElement=scope.wrappers.HTMLElement;var registerWrapper=scope.registerWrapper;var unwrap=scope.unwrap;var rewrap=scope.rewrap;var OriginalHTMLImageElement=window.HTMLImageElement;function HTMLImageElement(node){HTMLElement.call(this,node)}HTMLImageElement.prototype=Object.create(HTMLElement.prototype);registerWrapper(OriginalHTMLImageElement,HTMLImageElement,document.createElement("img"));function Image(width,height){if(!(this instanceof Image)){throw new TypeError("DOM object constructor cannot be called as a function.")}var node=unwrap(document.createElement("img"));HTMLElement.call(this,node);rewrap(node,this);if(width!==undefined)node.width=width;if(height!==undefined)node.height=height}Image.prototype=HTMLImageElement.prototype;scope.wrappers.HTMLImageElement=HTMLImageElement;scope.wrappers.Image=Image})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLElement=scope.wrappers.HTMLElement;var mixin=scope.mixin;var NodeList=scope.wrappers.NodeList;var registerWrapper=scope.registerWrapper;var OriginalHTMLShadowElement=window.HTMLShadowElement;function HTMLShadowElement(node){HTMLElement.call(this,node)}HTMLShadowElement.prototype=Object.create(HTMLElement.prototype);HTMLShadowElement.prototype.constructor=HTMLShadowElement;if(OriginalHTMLShadowElement)registerWrapper(OriginalHTMLShadowElement,HTMLShadowElement);scope.wrappers.HTMLShadowElement=HTMLShadowElement})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLElement=scope.wrappers.HTMLElement;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var unsafeUnwrap=scope.unsafeUnwrap;var unwrap=scope.unwrap;var wrap=scope.wrap;var contentTable=new WeakMap;var templateContentsOwnerTable=new WeakMap;function getTemplateContentsOwner(doc){if(!doc.defaultView)return doc;var d=templateContentsOwnerTable.get(doc);if(!d){d=doc.implementation.createHTMLDocument("");while(d.lastChild){d.removeChild(d.lastChild)}templateContentsOwnerTable.set(doc,d)}return d}function extractContent(templateElement){var doc=getTemplateContentsOwner(templateElement.ownerDocument);var df=unwrap(doc.createDocumentFragment());var child;while(child=templateElement.firstChild){df.appendChild(child)}return df}var OriginalHTMLTemplateElement=window.HTMLTemplateElement;function HTMLTemplateElement(node){HTMLElement.call(this,node);if(!OriginalHTMLTemplateElement){var content=extractContent(node);contentTable.set(this,wrap(content))}}HTMLTemplateElement.prototype=Object.create(HTMLElement.prototype);mixin(HTMLTemplateElement.prototype,{constructor:HTMLTemplateElement,get content(){if(OriginalHTMLTemplateElement)return wrap(unsafeUnwrap(this).content);return contentTable.get(this)}});if(OriginalHTMLTemplateElement)registerWrapper(OriginalHTMLTemplateElement,HTMLTemplateElement);scope.wrappers.HTMLTemplateElement=HTMLTemplateElement})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLElement=scope.wrappers.HTMLElement;var registerWrapper=scope.registerWrapper;var OriginalHTMLMediaElement=window.HTMLMediaElement;if(!OriginalHTMLMediaElement)return;function HTMLMediaElement(node){HTMLElement.call(this,node)}HTMLMediaElement.prototype=Object.create(HTMLElement.prototype);registerWrapper(OriginalHTMLMediaElement,HTMLMediaElement,document.createElement("audio"));scope.wrappers.HTMLMediaElement=HTMLMediaElement})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLMediaElement=scope.wrappers.HTMLMediaElement;var registerWrapper=scope.registerWrapper;var unwrap=scope.unwrap;var rewrap=scope.rewrap;var OriginalHTMLAudioElement=window.HTMLAudioElement;if(!OriginalHTMLAudioElement)return;function HTMLAudioElement(node){HTMLMediaElement.call(this,node)}HTMLAudioElement.prototype=Object.create(HTMLMediaElement.prototype);registerWrapper(OriginalHTMLAudioElement,HTMLAudioElement,document.createElement("audio"));function Audio(src){if(!(this instanceof Audio)){throw new TypeError("DOM object constructor cannot be called as a function.")}var node=unwrap(document.createElement("audio"));HTMLMediaElement.call(this,node);rewrap(node,this);node.setAttribute("preload","auto");if(src!==undefined)node.setAttribute("src",src)}Audio.prototype=HTMLAudioElement.prototype;scope.wrappers.HTMLAudioElement=HTMLAudioElement;scope.wrappers.Audio=Audio})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLElement=scope.wrappers.HTMLElement;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var rewrap=scope.rewrap;var unwrap=scope.unwrap;var wrap=scope.wrap;var OriginalHTMLOptionElement=window.HTMLOptionElement;function trimText(s){return s.replace(/\s+/g," ").trim()}function HTMLOptionElement(node){HTMLElement.call(this,node)}HTMLOptionElement.prototype=Object.create(HTMLElement.prototype);mixin(HTMLOptionElement.prototype,{get text(){return trimText(this.textContent)},set text(value){this.textContent=trimText(String(value))},get form(){return wrap(unwrap(this).form)}});registerWrapper(OriginalHTMLOptionElement,HTMLOptionElement,document.createElement("option"));function Option(text,value,defaultSelected,selected){if(!(this instanceof Option)){throw new TypeError("DOM object constructor cannot be called as a function.")}var node=unwrap(document.createElement("option"));HTMLElement.call(this,node);rewrap(node,this);if(text!==undefined)node.text=text;if(value!==undefined)node.setAttribute("value",value);if(defaultSelected===true)node.setAttribute("selected","");node.selected=selected===true}Option.prototype=HTMLOptionElement.prototype;scope.wrappers.HTMLOptionElement=HTMLOptionElement;scope.wrappers.Option=Option})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLElement=scope.wrappers.HTMLElement;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var unwrap=scope.unwrap;var wrap=scope.wrap;var OriginalHTMLSelectElement=window.HTMLSelectElement;function HTMLSelectElement(node){HTMLElement.call(this,node)}HTMLSelectElement.prototype=Object.create(HTMLElement.prototype);mixin(HTMLSelectElement.prototype,{add:function(element,before){if(typeof before==="object")before=unwrap(before);unwrap(this).add(unwrap(element),before)},remove:function(indexOrNode){if(indexOrNode===undefined){HTMLElement.prototype.remove.call(this);return}if(typeof indexOrNode==="object")indexOrNode=unwrap(indexOrNode);unwrap(this).remove(indexOrNode)},get form(){return wrap(unwrap(this).form)}});registerWrapper(OriginalHTMLSelectElement,HTMLSelectElement,document.createElement("select"));scope.wrappers.HTMLSelectElement=HTMLSelectElement})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLElement=scope.wrappers.HTMLElement;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var unwrap=scope.unwrap;var wrap=scope.wrap;var wrapHTMLCollection=scope.wrapHTMLCollection;var OriginalHTMLTableElement=window.HTMLTableElement;function HTMLTableElement(node){HTMLElement.call(this,node)}HTMLTableElement.prototype=Object.create(HTMLElement.prototype);mixin(HTMLTableElement.prototype,{get caption(){return wrap(unwrap(this).caption)},createCaption:function(){return wrap(unwrap(this).createCaption())},get tHead(){return wrap(unwrap(this).tHead)},createTHead:function(){return wrap(unwrap(this).createTHead())},createTFoot:function(){return wrap(unwrap(this).createTFoot())},get tFoot(){return wrap(unwrap(this).tFoot)},get tBodies(){return wrapHTMLCollection(unwrap(this).tBodies)},createTBody:function(){return wrap(unwrap(this).createTBody())},get rows(){return wrapHTMLCollection(unwrap(this).rows)},insertRow:function(index){return wrap(unwrap(this).insertRow(index))}});registerWrapper(OriginalHTMLTableElement,HTMLTableElement,document.createElement("table"));scope.wrappers.HTMLTableElement=HTMLTableElement})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLElement=scope.wrappers.HTMLElement;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var wrapHTMLCollection=scope.wrapHTMLCollection;var unwrap=scope.unwrap;var wrap=scope.wrap;var OriginalHTMLTableSectionElement=window.HTMLTableSectionElement;function HTMLTableSectionElement(node){HTMLElement.call(this,node)}HTMLTableSectionElement.prototype=Object.create(HTMLElement.prototype);mixin(HTMLTableSectionElement.prototype,{constructor:HTMLTableSectionElement,get rows(){return wrapHTMLCollection(unwrap(this).rows)},insertRow:function(index){return wrap(unwrap(this).insertRow(index))}});registerWrapper(OriginalHTMLTableSectionElement,HTMLTableSectionElement,document.createElement("thead"));scope.wrappers.HTMLTableSectionElement=HTMLTableSectionElement})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLElement=scope.wrappers.HTMLElement;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var wrapHTMLCollection=scope.wrapHTMLCollection;var unwrap=scope.unwrap;var wrap=scope.wrap;var OriginalHTMLTableRowElement=window.HTMLTableRowElement;function HTMLTableRowElement(node){HTMLElement.call(this,node)}HTMLTableRowElement.prototype=Object.create(HTMLElement.prototype);mixin(HTMLTableRowElement.prototype,{get cells(){return wrapHTMLCollection(unwrap(this).cells)},insertCell:function(index){return wrap(unwrap(this).insertCell(index))}});registerWrapper(OriginalHTMLTableRowElement,HTMLTableRowElement,document.createElement("tr"));scope.wrappers.HTMLTableRowElement=HTMLTableRowElement})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLContentElement=scope.wrappers.HTMLContentElement;var HTMLElement=scope.wrappers.HTMLElement;var HTMLShadowElement=scope.wrappers.HTMLShadowElement;var HTMLTemplateElement=scope.wrappers.HTMLTemplateElement;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var OriginalHTMLUnknownElement=window.HTMLUnknownElement;function HTMLUnknownElement(node){switch(node.localName){case"content":return new HTMLContentElement(node);case"shadow":return new HTMLShadowElement(node);case"template":return new HTMLTemplateElement(node)}HTMLElement.call(this,node)}HTMLUnknownElement.prototype=Object.create(HTMLElement.prototype);registerWrapper(OriginalHTMLUnknownElement,HTMLUnknownElement);scope.wrappers.HTMLUnknownElement=HTMLUnknownElement})(window.ShadowDOMPolyfill);(function(scope){"use strict";var Element=scope.wrappers.Element;var HTMLElement=scope.wrappers.HTMLElement;var registerObject=scope.registerObject;var SVG_NS="http://www.w3.org/2000/svg";var svgTitleElement=document.createElementNS(SVG_NS,"title");var SVGTitleElement=registerObject(svgTitleElement);var SVGElement=Object.getPrototypeOf(SVGTitleElement.prototype).constructor;if(!("classList"in svgTitleElement)){var descr=Object.getOwnPropertyDescriptor(Element.prototype,"classList");Object.defineProperty(HTMLElement.prototype,"classList",descr);delete Element.prototype.classList}scope.wrappers.SVGElement=SVGElement})(window.ShadowDOMPolyfill);(function(scope){"use strict";var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var unwrap=scope.unwrap;var wrap=scope.wrap;var OriginalSVGUseElement=window.SVGUseElement;var SVG_NS="http://www.w3.org/2000/svg";var gWrapper=wrap(document.createElementNS(SVG_NS,"g"));var useElement=document.createElementNS(SVG_NS,"use");var SVGGElement=gWrapper.constructor;var parentInterfacePrototype=Object.getPrototypeOf(SVGGElement.prototype);var parentInterface=parentInterfacePrototype.constructor;function SVGUseElement(impl){parentInterface.call(this,impl)}SVGUseElement.prototype=Object.create(parentInterfacePrototype);if("instanceRoot"in useElement){mixin(SVGUseElement.prototype,{get instanceRoot(){return wrap(unwrap(this).instanceRoot)},get animatedInstanceRoot(){return wrap(unwrap(this).animatedInstanceRoot)}})}registerWrapper(OriginalSVGUseElement,SVGUseElement,useElement);scope.wrappers.SVGUseElement=SVGUseElement})(window.ShadowDOMPolyfill);(function(scope){"use strict";var EventTarget=scope.wrappers.EventTarget;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var unsafeUnwrap=scope.unsafeUnwrap;var wrap=scope.wrap;var OriginalSVGElementInstance=window.SVGElementInstance;if(!OriginalSVGElementInstance)return;function SVGElementInstance(impl){EventTarget.call(this,impl)}SVGElementInstance.prototype=Object.create(EventTarget.prototype);mixin(SVGElementInstance.prototype,{get correspondingElement(){return wrap(unsafeUnwrap(this).correspondingElement)},get correspondingUseElement(){return wrap(unsafeUnwrap(this).correspondingUseElement)},get parentNode(){return wrap(unsafeUnwrap(this).parentNode)},get childNodes(){throw new Error("Not implemented")},get firstChild(){return wrap(unsafeUnwrap(this).firstChild)},get lastChild(){return wrap(unsafeUnwrap(this).lastChild)},get previousSibling(){return wrap(unsafeUnwrap(this).previousSibling)},get nextSibling(){return wrap(unsafeUnwrap(this).nextSibling)}});registerWrapper(OriginalSVGElementInstance,SVGElementInstance);scope.wrappers.SVGElementInstance=SVGElementInstance})(window.ShadowDOMPolyfill);(function(scope){"use strict";var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var setWrapper=scope.setWrapper;var unsafeUnwrap=scope.unsafeUnwrap;var unwrap=scope.unwrap;var unwrapIfNeeded=scope.unwrapIfNeeded;var wrap=scope.wrap;var OriginalCanvasRenderingContext2D=window.CanvasRenderingContext2D;function CanvasRenderingContext2D(impl){setWrapper(impl,this)}mixin(CanvasRenderingContext2D.prototype,{get canvas(){return wrap(unsafeUnwrap(this).canvas)},drawImage:function(){arguments[0]=unwrapIfNeeded(arguments[0]);unsafeUnwrap(this).drawImage.apply(unsafeUnwrap(this),arguments)},createPattern:function(){arguments[0]=unwrap(arguments[0]);return unsafeUnwrap(this).createPattern.apply(unsafeUnwrap(this),arguments)}});registerWrapper(OriginalCanvasRenderingContext2D,CanvasRenderingContext2D,document.createElement("canvas").getContext("2d"));scope.wrappers.CanvasRenderingContext2D=CanvasRenderingContext2D})(window.ShadowDOMPolyfill);(function(scope){"use strict";var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var setWrapper=scope.setWrapper;var unsafeUnwrap=scope.unsafeUnwrap;var unwrapIfNeeded=scope.unwrapIfNeeded;var wrap=scope.wrap;var OriginalWebGLRenderingContext=window.WebGLRenderingContext;if(!OriginalWebGLRenderingContext)return;function WebGLRenderingContext(impl){setWrapper(impl,this)}mixin(WebGLRenderingContext.prototype,{get canvas(){return wrap(unsafeUnwrap(this).canvas)},texImage2D:function(){arguments[5]=unwrapIfNeeded(arguments[5]);unsafeUnwrap(this).texImage2D.apply(unsafeUnwrap(this),arguments)},texSubImage2D:function(){arguments[6]=unwrapIfNeeded(arguments[6]);unsafeUnwrap(this).texSubImage2D.apply(unsafeUnwrap(this),arguments)}});var instanceProperties=/WebKit/.test(navigator.userAgent)?{drawingBufferHeight:null,drawingBufferWidth:null}:{};registerWrapper(OriginalWebGLRenderingContext,WebGLRenderingContext,instanceProperties);scope.wrappers.WebGLRenderingContext=WebGLRenderingContext})(window.ShadowDOMPolyfill);(function(scope){"use strict";var registerWrapper=scope.registerWrapper;var setWrapper=scope.setWrapper;var unsafeUnwrap=scope.unsafeUnwrap;var unwrap=scope.unwrap;var unwrapIfNeeded=scope.unwrapIfNeeded;var wrap=scope.wrap;var OriginalRange=window.Range;function Range(impl){setWrapper(impl,this)}Range.prototype={get startContainer(){return wrap(unsafeUnwrap(this).startContainer)},get endContainer(){return wrap(unsafeUnwrap(this).endContainer)},get commonAncestorContainer(){return wrap(unsafeUnwrap(this).commonAncestorContainer)},setStart:function(refNode,offset){unsafeUnwrap(this).setStart(unwrapIfNeeded(refNode),offset)},setEnd:function(refNode,offset){unsafeUnwrap(this).setEnd(unwrapIfNeeded(refNode),offset)},setStartBefore:function(refNode){unsafeUnwrap(this).setStartBefore(unwrapIfNeeded(refNode))},setStartAfter:function(refNode){unsafeUnwrap(this).setStartAfter(unwrapIfNeeded(refNode))},setEndBefore:function(refNode){unsafeUnwrap(this).setEndBefore(unwrapIfNeeded(refNode))},setEndAfter:function(refNode){unsafeUnwrap(this).setEndAfter(unwrapIfNeeded(refNode))},selectNode:function(refNode){unsafeUnwrap(this).selectNode(unwrapIfNeeded(refNode))},selectNodeContents:function(refNode){unsafeUnwrap(this).selectNodeContents(unwrapIfNeeded(refNode))},compareBoundaryPoints:function(how,sourceRange){return unsafeUnwrap(this).compareBoundaryPoints(how,unwrap(sourceRange))},extractContents:function(){return wrap(unsafeUnwrap(this).extractContents())},cloneContents:function(){return wrap(unsafeUnwrap(this).cloneContents())},insertNode:function(node){unsafeUnwrap(this).insertNode(unwrapIfNeeded(node))},surroundContents:function(newParent){unsafeUnwrap(this).surroundContents(unwrapIfNeeded(newParent))},cloneRange:function(){return wrap(unsafeUnwrap(this).cloneRange())},isPointInRange:function(node,offset){return unsafeUnwrap(this).isPointInRange(unwrapIfNeeded(node),offset)},comparePoint:function(node,offset){return unsafeUnwrap(this).comparePoint(unwrapIfNeeded(node),offset)},intersectsNode:function(node){return unsafeUnwrap(this).intersectsNode(unwrapIfNeeded(node))},toString:function(){return unsafeUnwrap(this).toString()}};if(OriginalRange.prototype.createContextualFragment){Range.prototype.createContextualFragment=function(html){return wrap(unsafeUnwrap(this).createContextualFragment(html))}}registerWrapper(window.Range,Range,document.createRange());scope.wrappers.Range=Range})(window.ShadowDOMPolyfill);(function(scope){"use strict";var GetElementsByInterface=scope.GetElementsByInterface;var ParentNodeInterface=scope.ParentNodeInterface;var SelectorsInterface=scope.SelectorsInterface;var mixin=scope.mixin;var registerObject=scope.registerObject;var DocumentFragment=registerObject(document.createDocumentFragment());mixin(DocumentFragment.prototype,ParentNodeInterface);mixin(DocumentFragment.prototype,SelectorsInterface);mixin(DocumentFragment.prototype,GetElementsByInterface);var Comment=registerObject(document.createComment(""));scope.wrappers.Comment=Comment;scope.wrappers.DocumentFragment=DocumentFragment})(window.ShadowDOMPolyfill);(function(scope){"use strict";var DocumentFragment=scope.wrappers.DocumentFragment;var TreeScope=scope.TreeScope;var elementFromPoint=scope.elementFromPoint;var getInnerHTML=scope.getInnerHTML;var getTreeScope=scope.getTreeScope;var mixin=scope.mixin;var rewrap=scope.rewrap;var setInnerHTML=scope.setInnerHTML;var unsafeUnwrap=scope.unsafeUnwrap;var unwrap=scope.unwrap;var shadowHostTable=new WeakMap;var nextOlderShadowTreeTable=new WeakMap;var spaceCharRe=/[ \t\n\r\f]/;function ShadowRoot(hostWrapper){var node=unwrap(unsafeUnwrap(hostWrapper).ownerDocument.createDocumentFragment());DocumentFragment.call(this,node);rewrap(node,this);var oldShadowRoot=hostWrapper.shadowRoot;nextOlderShadowTreeTable.set(this,oldShadowRoot);this.treeScope_=new TreeScope(this,getTreeScope(oldShadowRoot||hostWrapper));shadowHostTable.set(this,hostWrapper)}ShadowRoot.prototype=Object.create(DocumentFragment.prototype);mixin(ShadowRoot.prototype,{constructor:ShadowRoot,get innerHTML(){return getInnerHTML(this)},set innerHTML(value){setInnerHTML(this,value);this.invalidateShadowRenderer()},get olderShadowRoot(){return nextOlderShadowTreeTable.get(this)||null},get host(){return shadowHostTable.get(this)||null},invalidateShadowRenderer:function(){return shadowHostTable.get(this).invalidateShadowRenderer()},elementFromPoint:function(x,y){return elementFromPoint(this,this.ownerDocument,x,y)},getElementById:function(id){if(spaceCharRe.test(id))return null;return this.querySelector('[id="'+id+'"]')}});scope.wrappers.ShadowRoot=ShadowRoot})(window.ShadowDOMPolyfill);(function(scope){"use strict";var Element=scope.wrappers.Element;var HTMLContentElement=scope.wrappers.HTMLContentElement;var HTMLShadowElement=scope.wrappers.HTMLShadowElement;var Node=scope.wrappers.Node;var ShadowRoot=scope.wrappers.ShadowRoot;var assert=scope.assert;var getTreeScope=scope.getTreeScope;var mixin=scope.mixin;var oneOf=scope.oneOf;var unsafeUnwrap=scope.unsafeUnwrap;var unwrap=scope.unwrap;var wrap=scope.wrap;var ArraySplice=scope.ArraySplice;function updateWrapperUpAndSideways(wrapper){wrapper.previousSibling_=wrapper.previousSibling;wrapper.nextSibling_=wrapper.nextSibling;wrapper.parentNode_=wrapper.parentNode}function updateWrapperDown(wrapper){wrapper.firstChild_=wrapper.firstChild;wrapper.lastChild_=wrapper.lastChild}function updateAllChildNodes(parentNodeWrapper){assert(parentNodeWrapper instanceof Node);for(var childWrapper=parentNodeWrapper.firstChild;childWrapper;childWrapper=childWrapper.nextSibling){updateWrapperUpAndSideways(childWrapper)}updateWrapperDown(parentNodeWrapper)}function insertBefore(parentNodeWrapper,newChildWrapper,refChildWrapper){var parentNode=unwrap(parentNodeWrapper);var newChild=unwrap(newChildWrapper);var refChild=refChildWrapper?unwrap(refChildWrapper):null;remove(newChildWrapper);updateWrapperUpAndSideways(newChildWrapper);if(!refChildWrapper){parentNodeWrapper.lastChild_=parentNodeWrapper.lastChild;if(parentNodeWrapper.lastChild===parentNodeWrapper.firstChild)parentNodeWrapper.firstChild_=parentNodeWrapper.firstChild;
-var lastChildWrapper=wrap(parentNode.lastChild);if(lastChildWrapper)lastChildWrapper.nextSibling_=lastChildWrapper.nextSibling}else{if(parentNodeWrapper.firstChild===refChildWrapper)parentNodeWrapper.firstChild_=refChildWrapper;refChildWrapper.previousSibling_=refChildWrapper.previousSibling}scope.originalInsertBefore.call(parentNode,newChild,refChild)}function remove(nodeWrapper){var node=unwrap(nodeWrapper);var parentNode=node.parentNode;if(!parentNode)return;var parentNodeWrapper=wrap(parentNode);updateWrapperUpAndSideways(nodeWrapper);if(nodeWrapper.previousSibling)nodeWrapper.previousSibling.nextSibling_=nodeWrapper;if(nodeWrapper.nextSibling)nodeWrapper.nextSibling.previousSibling_=nodeWrapper;if(parentNodeWrapper.lastChild===nodeWrapper)parentNodeWrapper.lastChild_=nodeWrapper;if(parentNodeWrapper.firstChild===nodeWrapper)parentNodeWrapper.firstChild_=nodeWrapper;scope.originalRemoveChild.call(parentNode,node)}var distributedNodesTable=new WeakMap;var destinationInsertionPointsTable=new WeakMap;var rendererForHostTable=new WeakMap;function resetDistributedNodes(insertionPoint){distributedNodesTable.set(insertionPoint,[])}function getDistributedNodes(insertionPoint){var rv=distributedNodesTable.get(insertionPoint);if(!rv)distributedNodesTable.set(insertionPoint,rv=[]);return rv}function getChildNodesSnapshot(node){var result=[],i=0;for(var child=node.firstChild;child;child=child.nextSibling){result[i++]=child}return result}var request=oneOf(window,["requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout"]);var pendingDirtyRenderers=[];var renderTimer;function renderAllPending(){for(var i=0;i<pendingDirtyRenderers.length;i++){var renderer=pendingDirtyRenderers[i];var parentRenderer=renderer.parentRenderer;if(parentRenderer&&parentRenderer.dirty)continue;renderer.render()}pendingDirtyRenderers=[]}function handleRequestAnimationFrame(){renderTimer=null;renderAllPending()}function getRendererForHost(host){var renderer=rendererForHostTable.get(host);if(!renderer){renderer=new ShadowRenderer(host);rendererForHostTable.set(host,renderer)}return renderer}function getShadowRootAncestor(node){var root=getTreeScope(node).root;if(root instanceof ShadowRoot)return root;return null}function getRendererForShadowRoot(shadowRoot){return getRendererForHost(shadowRoot.host)}var spliceDiff=new ArraySplice;spliceDiff.equals=function(renderNode,rawNode){return unwrap(renderNode.node)===rawNode};function RenderNode(node){this.skip=false;this.node=node;this.childNodes=[]}RenderNode.prototype={append:function(node){var rv=new RenderNode(node);this.childNodes.push(rv);return rv},sync:function(opt_added){if(this.skip)return;var nodeWrapper=this.node;var newChildren=this.childNodes;var oldChildren=getChildNodesSnapshot(unwrap(nodeWrapper));var added=opt_added||new WeakMap;var splices=spliceDiff.calculateSplices(newChildren,oldChildren);var newIndex=0,oldIndex=0;var lastIndex=0;for(var i=0;i<splices.length;i++){var splice=splices[i];for(;lastIndex<splice.index;lastIndex++){oldIndex++;newChildren[newIndex++].sync(added)}var removedCount=splice.removed.length;for(var j=0;j<removedCount;j++){var wrapper=wrap(oldChildren[oldIndex++]);if(!added.get(wrapper))remove(wrapper)}var addedCount=splice.addedCount;var refNode=oldChildren[oldIndex]&&wrap(oldChildren[oldIndex]);for(var j=0;j<addedCount;j++){var newChildRenderNode=newChildren[newIndex++];var newChildWrapper=newChildRenderNode.node;insertBefore(nodeWrapper,newChildWrapper,refNode);added.set(newChildWrapper,true);newChildRenderNode.sync(added)}lastIndex+=addedCount}for(var i=lastIndex;i<newChildren.length;i++){newChildren[i].sync(added)}}};function ShadowRenderer(host){this.host=host;this.dirty=false;this.invalidateAttributes();this.associateNode(host)}ShadowRenderer.prototype={render:function(opt_renderNode){if(!this.dirty)return;this.invalidateAttributes();var host=this.host;this.distribution(host);var renderNode=opt_renderNode||new RenderNode(host);this.buildRenderTree(renderNode,host);var topMostRenderer=!opt_renderNode;if(topMostRenderer)renderNode.sync();this.dirty=false},get parentRenderer(){return getTreeScope(this.host).renderer},invalidate:function(){if(!this.dirty){this.dirty=true;var parentRenderer=this.parentRenderer;if(parentRenderer)parentRenderer.invalidate();pendingDirtyRenderers.push(this);if(renderTimer)return;renderTimer=window[request](handleRequestAnimationFrame,0)}},distribution:function(root){this.resetAllSubtrees(root);this.distributionResolution(root)},resetAll:function(node){if(isInsertionPoint(node))resetDistributedNodes(node);else resetDestinationInsertionPoints(node);this.resetAllSubtrees(node)},resetAllSubtrees:function(node){for(var child=node.firstChild;child;child=child.nextSibling){this.resetAll(child)}if(node.shadowRoot)this.resetAll(node.shadowRoot);if(node.olderShadowRoot)this.resetAll(node.olderShadowRoot)},distributionResolution:function(node){if(isShadowHost(node)){var shadowHost=node;var pool=poolPopulation(shadowHost);var shadowTrees=getShadowTrees(shadowHost);for(var i=0;i<shadowTrees.length;i++){this.poolDistribution(shadowTrees[i],pool)}for(var i=shadowTrees.length-1;i>=0;i--){var shadowTree=shadowTrees[i];var shadow=getShadowInsertionPoint(shadowTree);if(shadow){var olderShadowRoot=shadowTree.olderShadowRoot;if(olderShadowRoot){pool=poolPopulation(olderShadowRoot)}for(var j=0;j<pool.length;j++){destributeNodeInto(pool[j],shadow)}}this.distributionResolution(shadowTree)}}for(var child=node.firstChild;child;child=child.nextSibling){this.distributionResolution(child)}},poolDistribution:function(node,pool){if(node instanceof HTMLShadowElement)return;if(node instanceof HTMLContentElement){var content=node;this.updateDependentAttributes(content.getAttribute("select"));var anyDistributed=false;for(var i=0;i<pool.length;i++){var node=pool[i];if(!node)continue;if(matches(node,content)){destributeNodeInto(node,content);pool[i]=undefined;anyDistributed=true}}if(!anyDistributed){for(var child=content.firstChild;child;child=child.nextSibling){destributeNodeInto(child,content)}}return}for(var child=node.firstChild;child;child=child.nextSibling){this.poolDistribution(child,pool)}},buildRenderTree:function(renderNode,node){var children=this.compose(node);for(var i=0;i<children.length;i++){var child=children[i];var childRenderNode=renderNode.append(child);this.buildRenderTree(childRenderNode,child)}if(isShadowHost(node)){var renderer=getRendererForHost(node);renderer.dirty=false}},compose:function(node){var children=[];var p=node.shadowRoot||node;for(var child=p.firstChild;child;child=child.nextSibling){if(isInsertionPoint(child)){this.associateNode(p);var distributedNodes=getDistributedNodes(child);for(var j=0;j<distributedNodes.length;j++){var distributedNode=distributedNodes[j];if(isFinalDestination(child,distributedNode))children.push(distributedNode)}}else{children.push(child)}}return children},invalidateAttributes:function(){this.attributes=Object.create(null)},updateDependentAttributes:function(selector){if(!selector)return;var attributes=this.attributes;if(/\.\w+/.test(selector))attributes["class"]=true;if(/#\w+/.test(selector))attributes["id"]=true;selector.replace(/\[\s*([^\s=\|~\]]+)/g,function(_,name){attributes[name]=true})},dependsOnAttribute:function(name){return this.attributes[name]},associateNode:function(node){unsafeUnwrap(node).polymerShadowRenderer_=this}};function poolPopulation(node){var pool=[];for(var child=node.firstChild;child;child=child.nextSibling){if(isInsertionPoint(child)){pool.push.apply(pool,getDistributedNodes(child))}else{pool.push(child)}}return pool}function getShadowInsertionPoint(node){if(node instanceof HTMLShadowElement)return node;if(node instanceof HTMLContentElement)return null;for(var child=node.firstChild;child;child=child.nextSibling){var res=getShadowInsertionPoint(child);if(res)return res}return null}function destributeNodeInto(child,insertionPoint){getDistributedNodes(insertionPoint).push(child);var points=destinationInsertionPointsTable.get(child);if(!points)destinationInsertionPointsTable.set(child,[insertionPoint]);else points.push(insertionPoint)}function getDestinationInsertionPoints(node){return destinationInsertionPointsTable.get(node)}function resetDestinationInsertionPoints(node){destinationInsertionPointsTable.set(node,undefined)}var selectorStartCharRe=/^(:not\()?[*.#[a-zA-Z_|]/;function matches(node,contentElement){var select=contentElement.getAttribute("select");if(!select)return true;select=select.trim();if(!select)return true;if(!(node instanceof Element))return false;if(!selectorStartCharRe.test(select))return false;try{return node.matches(select)}catch(ex){return false}}function isFinalDestination(insertionPoint,node){var points=getDestinationInsertionPoints(node);return points&&points[points.length-1]===insertionPoint}function isInsertionPoint(node){return node instanceof HTMLContentElement||node instanceof HTMLShadowElement}function isShadowHost(shadowHost){return shadowHost.shadowRoot}function getShadowTrees(host){var trees=[];for(var tree=host.shadowRoot;tree;tree=tree.olderShadowRoot){trees.push(tree)}return trees}function render(host){new ShadowRenderer(host).render()}Node.prototype.invalidateShadowRenderer=function(force){var renderer=unsafeUnwrap(this).polymerShadowRenderer_;if(renderer){renderer.invalidate();return true}return false};HTMLContentElement.prototype.getDistributedNodes=HTMLShadowElement.prototype.getDistributedNodes=function(){renderAllPending();return getDistributedNodes(this)};Element.prototype.getDestinationInsertionPoints=function(){renderAllPending();return getDestinationInsertionPoints(this)||[]};HTMLContentElement.prototype.nodeIsInserted_=HTMLShadowElement.prototype.nodeIsInserted_=function(){this.invalidateShadowRenderer();var shadowRoot=getShadowRootAncestor(this);var renderer;if(shadowRoot)renderer=getRendererForShadowRoot(shadowRoot);unsafeUnwrap(this).polymerShadowRenderer_=renderer;if(renderer)renderer.invalidate()};scope.getRendererForHost=getRendererForHost;scope.getShadowTrees=getShadowTrees;scope.renderAllPending=renderAllPending;scope.getDestinationInsertionPoints=getDestinationInsertionPoints;scope.visual={insertBefore:insertBefore,remove:remove}})(window.ShadowDOMPolyfill);(function(scope){"use strict";var HTMLElement=scope.wrappers.HTMLElement;var assert=scope.assert;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var unwrap=scope.unwrap;var wrap=scope.wrap;var elementsWithFormProperty=["HTMLButtonElement","HTMLFieldSetElement","HTMLInputElement","HTMLKeygenElement","HTMLLabelElement","HTMLLegendElement","HTMLObjectElement","HTMLOutputElement","HTMLTextAreaElement"];function createWrapperConstructor(name){if(!window[name])return;assert(!scope.wrappers[name]);var GeneratedWrapper=function(node){HTMLElement.call(this,node)};GeneratedWrapper.prototype=Object.create(HTMLElement.prototype);mixin(GeneratedWrapper.prototype,{get form(){return wrap(unwrap(this).form)}});registerWrapper(window[name],GeneratedWrapper,document.createElement(name.slice(4,-7)));scope.wrappers[name]=GeneratedWrapper}elementsWithFormProperty.forEach(createWrapperConstructor)})(window.ShadowDOMPolyfill);(function(scope){"use strict";var registerWrapper=scope.registerWrapper;var setWrapper=scope.setWrapper;var unsafeUnwrap=scope.unsafeUnwrap;var unwrap=scope.unwrap;var unwrapIfNeeded=scope.unwrapIfNeeded;var wrap=scope.wrap;var OriginalSelection=window.Selection;function Selection(impl){setWrapper(impl,this)}Selection.prototype={get anchorNode(){return wrap(unsafeUnwrap(this).anchorNode)},get focusNode(){return wrap(unsafeUnwrap(this).focusNode)},addRange:function(range){unsafeUnwrap(this).addRange(unwrap(range))},collapse:function(node,index){unsafeUnwrap(this).collapse(unwrapIfNeeded(node),index)},containsNode:function(node,allowPartial){return unsafeUnwrap(this).containsNode(unwrapIfNeeded(node),allowPartial)},extend:function(node,offset){unsafeUnwrap(this).extend(unwrapIfNeeded(node),offset)},getRangeAt:function(index){return wrap(unsafeUnwrap(this).getRangeAt(index))},removeRange:function(range){unsafeUnwrap(this).removeRange(unwrap(range))},selectAllChildren:function(node){unsafeUnwrap(this).selectAllChildren(unwrapIfNeeded(node))},toString:function(){return unsafeUnwrap(this).toString()}};registerWrapper(window.Selection,Selection,window.getSelection());scope.wrappers.Selection=Selection})(window.ShadowDOMPolyfill);(function(scope){"use strict";var GetElementsByInterface=scope.GetElementsByInterface;var Node=scope.wrappers.Node;var ParentNodeInterface=scope.ParentNodeInterface;var Selection=scope.wrappers.Selection;var SelectorsInterface=scope.SelectorsInterface;var ShadowRoot=scope.wrappers.ShadowRoot;var TreeScope=scope.TreeScope;var cloneNode=scope.cloneNode;var defineWrapGetter=scope.defineWrapGetter;var elementFromPoint=scope.elementFromPoint;var forwardMethodsToWrapper=scope.forwardMethodsToWrapper;var matchesNames=scope.matchesNames;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var renderAllPending=scope.renderAllPending;var rewrap=scope.rewrap;var setWrapper=scope.setWrapper;var unsafeUnwrap=scope.unsafeUnwrap;var unwrap=scope.unwrap;var wrap=scope.wrap;var wrapEventTargetMethods=scope.wrapEventTargetMethods;var wrapNodeList=scope.wrapNodeList;var implementationTable=new WeakMap;function Document(node){Node.call(this,node);this.treeScope_=new TreeScope(this,null)}Document.prototype=Object.create(Node.prototype);defineWrapGetter(Document,"documentElement");defineWrapGetter(Document,"body");defineWrapGetter(Document,"head");function wrapMethod(name){var original=document[name];Document.prototype[name]=function(){return wrap(original.apply(unsafeUnwrap(this),arguments))}}["createComment","createDocumentFragment","createElement","createElementNS","createEvent","createEventNS","createRange","createTextNode","getElementById"].forEach(wrapMethod);var originalAdoptNode=document.adoptNode;function adoptNodeNoRemove(node,doc){originalAdoptNode.call(unsafeUnwrap(doc),unwrap(node));adoptSubtree(node,doc)}function adoptSubtree(node,doc){if(node.shadowRoot)doc.adoptNode(node.shadowRoot);if(node instanceof ShadowRoot)adoptOlderShadowRoots(node,doc);for(var child=node.firstChild;child;child=child.nextSibling){adoptSubtree(child,doc)}}function adoptOlderShadowRoots(shadowRoot,doc){var oldShadowRoot=shadowRoot.olderShadowRoot;if(oldShadowRoot)doc.adoptNode(oldShadowRoot)}var originalGetSelection=document.getSelection;mixin(Document.prototype,{adoptNode:function(node){if(node.parentNode)node.parentNode.removeChild(node);adoptNodeNoRemove(node,this);return node},elementFromPoint:function(x,y){return elementFromPoint(this,this,x,y)},importNode:function(node,deep){return cloneNode(node,deep,unsafeUnwrap(this))},getSelection:function(){renderAllPending();return new Selection(originalGetSelection.call(unwrap(this)))},getElementsByName:function(name){return SelectorsInterface.querySelectorAll.call(this,"[name="+JSON.stringify(String(name))+"]")}});if(document.registerElement){var originalRegisterElement=document.registerElement;Document.prototype.registerElement=function(tagName,object){var prototype,extendsOption;if(object!==undefined){prototype=object.prototype;extendsOption=object.extends}if(!prototype)prototype=Object.create(HTMLElement.prototype);if(scope.nativePrototypeTable.get(prototype)){throw new Error("NotSupportedError")}var proto=Object.getPrototypeOf(prototype);var nativePrototype;var prototypes=[];while(proto){nativePrototype=scope.nativePrototypeTable.get(proto);if(nativePrototype)break;prototypes.push(proto);proto=Object.getPrototypeOf(proto)}if(!nativePrototype){throw new Error("NotSupportedError")}var newPrototype=Object.create(nativePrototype);for(var i=prototypes.length-1;i>=0;i--){newPrototype=Object.create(newPrototype)}["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"].forEach(function(name){var f=prototype[name];if(!f)return;newPrototype[name]=function(){if(!(wrap(this)instanceof CustomElementConstructor)){rewrap(this)}f.apply(wrap(this),arguments)}});var p={prototype:newPrototype};if(extendsOption)p.extends=extendsOption;function CustomElementConstructor(node){if(!node){if(extendsOption){return document.createElement(extendsOption,tagName)}else{return document.createElement(tagName)}}setWrapper(node,this)}CustomElementConstructor.prototype=prototype;CustomElementConstructor.prototype.constructor=CustomElementConstructor;scope.constructorTable.set(newPrototype,CustomElementConstructor);scope.nativePrototypeTable.set(prototype,newPrototype);var nativeConstructor=originalRegisterElement.call(unwrap(this),tagName,p);return CustomElementConstructor};forwardMethodsToWrapper([window.HTMLDocument||window.Document],["registerElement"])}forwardMethodsToWrapper([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement,window.HTMLHtmlElement],["appendChild","compareDocumentPosition","contains","getElementsByClassName","getElementsByTagName","getElementsByTagNameNS","insertBefore","querySelector","querySelectorAll","removeChild","replaceChild"].concat(matchesNames));forwardMethodsToWrapper([window.HTMLDocument||window.Document],["adoptNode","importNode","contains","createComment","createDocumentFragment","createElement","createElementNS","createEvent","createEventNS","createRange","createTextNode","elementFromPoint","getElementById","getElementsByName","getSelection"]);mixin(Document.prototype,GetElementsByInterface);mixin(Document.prototype,ParentNodeInterface);mixin(Document.prototype,SelectorsInterface);mixin(Document.prototype,{get implementation(){var implementation=implementationTable.get(this);if(implementation)return implementation;implementation=new DOMImplementation(unwrap(this).implementation);implementationTable.set(this,implementation);return implementation},get defaultView(){return wrap(unwrap(this).defaultView)}});registerWrapper(window.Document,Document,document.implementation.createHTMLDocument(""));if(window.HTMLDocument)registerWrapper(window.HTMLDocument,Document);wrapEventTargetMethods([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement]);function DOMImplementation(impl){setWrapper(impl,this)}function wrapImplMethod(constructor,name){var original=document.implementation[name];constructor.prototype[name]=function(){return wrap(original.apply(unsafeUnwrap(this),arguments))}}function forwardImplMethod(constructor,name){var original=document.implementation[name];constructor.prototype[name]=function(){return original.apply(unsafeUnwrap(this),arguments)}}wrapImplMethod(DOMImplementation,"createDocumentType");wrapImplMethod(DOMImplementation,"createDocument");wrapImplMethod(DOMImplementation,"createHTMLDocument");forwardImplMethod(DOMImplementation,"hasFeature");registerWrapper(window.DOMImplementation,DOMImplementation);forwardMethodsToWrapper([window.DOMImplementation],["createDocumentType","createDocument","createHTMLDocument","hasFeature"]);scope.adoptNodeNoRemove=adoptNodeNoRemove;scope.wrappers.DOMImplementation=DOMImplementation;scope.wrappers.Document=Document})(window.ShadowDOMPolyfill);(function(scope){"use strict";var EventTarget=scope.wrappers.EventTarget;var Selection=scope.wrappers.Selection;var mixin=scope.mixin;var registerWrapper=scope.registerWrapper;var renderAllPending=scope.renderAllPending;var unwrap=scope.unwrap;var unwrapIfNeeded=scope.unwrapIfNeeded;var wrap=scope.wrap;var OriginalWindow=window.Window;var originalGetComputedStyle=window.getComputedStyle;var originalGetDefaultComputedStyle=window.getDefaultComputedStyle;var originalGetSelection=window.getSelection;function Window(impl){EventTarget.call(this,impl)}Window.prototype=Object.create(EventTarget.prototype);OriginalWindow.prototype.getComputedStyle=function(el,pseudo){return wrap(this||window).getComputedStyle(unwrapIfNeeded(el),pseudo)};if(originalGetDefaultComputedStyle){OriginalWindow.prototype.getDefaultComputedStyle=function(el,pseudo){return wrap(this||window).getDefaultComputedStyle(unwrapIfNeeded(el),pseudo)}}OriginalWindow.prototype.getSelection=function(){return wrap(this||window).getSelection()};delete window.getComputedStyle;delete window.getDefaultComputedStyle;delete window.getSelection;["addEventListener","removeEventListener","dispatchEvent"].forEach(function(name){OriginalWindow.prototype[name]=function(){var w=wrap(this||window);return w[name].apply(w,arguments)};delete window[name]});mixin(Window.prototype,{getComputedStyle:function(el,pseudo){renderAllPending();return originalGetComputedStyle.call(unwrap(this),unwrapIfNeeded(el),pseudo)},getSelection:function(){renderAllPending();return new Selection(originalGetSelection.call(unwrap(this)))},get document(){return wrap(unwrap(this).document)}});if(originalGetDefaultComputedStyle){Window.prototype.getDefaultComputedStyle=function(el,pseudo){renderAllPending();return originalGetDefaultComputedStyle.call(unwrap(this),unwrapIfNeeded(el),pseudo)}}registerWrapper(OriginalWindow,Window,window);scope.wrappers.Window=Window})(window.ShadowDOMPolyfill);(function(scope){"use strict";var unwrap=scope.unwrap;var OriginalDataTransfer=window.DataTransfer||window.Clipboard;var OriginalDataTransferSetDragImage=OriginalDataTransfer.prototype.setDragImage;if(OriginalDataTransferSetDragImage){OriginalDataTransfer.prototype.setDragImage=function(image,x,y){OriginalDataTransferSetDragImage.call(this,unwrap(image),x,y)}}})(window.ShadowDOMPolyfill);(function(scope){"use strict";var registerWrapper=scope.registerWrapper;var setWrapper=scope.setWrapper;var unwrap=scope.unwrap;var OriginalFormData=window.FormData;if(!OriginalFormData)return;function FormData(formElement){var impl;if(formElement instanceof OriginalFormData){impl=formElement}else{impl=new OriginalFormData(formElement&&unwrap(formElement))}setWrapper(impl,this)}registerWrapper(OriginalFormData,FormData,new OriginalFormData);scope.wrappers.FormData=FormData})(window.ShadowDOMPolyfill);(function(scope){"use strict";var unwrapIfNeeded=scope.unwrapIfNeeded;var originalSend=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(obj){return originalSend.call(this,unwrapIfNeeded(obj))}})(window.ShadowDOMPolyfill);(function(scope){"use strict";var isWrapperFor=scope.isWrapperFor;var elements={a:"HTMLAnchorElement",area:"HTMLAreaElement",audio:"HTMLAudioElement",base:"HTMLBaseElement",body:"HTMLBodyElement",br:"HTMLBRElement",button:"HTMLButtonElement",canvas:"HTMLCanvasElement",caption:"HTMLTableCaptionElement",col:"HTMLTableColElement",content:"HTMLContentElement",data:"HTMLDataElement",datalist:"HTMLDataListElement",del:"HTMLModElement",dir:"HTMLDirectoryElement",div:"HTMLDivElement",dl:"HTMLDListElement",embed:"HTMLEmbedElement",fieldset:"HTMLFieldSetElement",font:"HTMLFontElement",form:"HTMLFormElement",frame:"HTMLFrameElement",frameset:"HTMLFrameSetElement",h1:"HTMLHeadingElement",head:"HTMLHeadElement",hr:"HTMLHRElement",html:"HTMLHtmlElement",iframe:"HTMLIFrameElement",img:"HTMLImageElement",input:"HTMLInputElement",keygen:"HTMLKeygenElement",label:"HTMLLabelElement",legend:"HTMLLegendElement",li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",marquee:"HTMLMarqueeElement",menu:"HTMLMenuElement",menuitem:"HTMLMenuItemElement",meta:"HTMLMetaElement",meter:"HTMLMeterElement",object:"HTMLObjectElement",ol:"HTMLOListElement",optgroup:"HTMLOptGroupElement",option:"HTMLOptionElement",output:"HTMLOutputElement",p:"HTMLParagraphElement",param:"HTMLParamElement",pre:"HTMLPreElement",progress:"HTMLProgressElement",q:"HTMLQuoteElement",script:"HTMLScriptElement",select:"HTMLSelectElement",shadow:"HTMLShadowElement",source:"HTMLSourceElement",span:"HTMLSpanElement",style:"HTMLStyleElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",template:"HTMLTemplateElement",textarea:"HTMLTextAreaElement",thead:"HTMLTableSectionElement",time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",ul:"HTMLUListElement",video:"HTMLVideoElement"};function overrideConstructor(tagName){var nativeConstructorName=elements[tagName];var nativeConstructor=window[nativeConstructorName];if(!nativeConstructor)return;var element=document.createElement(tagName);var wrapperConstructor=element.constructor;window[nativeConstructorName]=wrapperConstructor}Object.keys(elements).forEach(overrideConstructor);Object.getOwnPropertyNames(scope.wrappers).forEach(function(name){window[name]=scope.wrappers[name]})})(window.ShadowDOMPolyfill);(function(scope){var ShadowCSS={strictStyling:false,registry:{},shimStyling:function(root,name,extendsName){var scopeStyles=this.prepareRoot(root,name,extendsName);var typeExtension=this.isTypeExtension(extendsName);var scopeSelector=this.makeScopeSelector(name,typeExtension);var cssText=stylesToCssText(scopeStyles,true);cssText=this.scopeCssText(cssText,scopeSelector);if(root){root.shimmedStyle=cssText}this.addCssToDocument(cssText,name)},shimStyle:function(style,selector){return this.shimCssText(style.textContent,selector)},shimCssText:function(cssText,selector){cssText=this.insertDirectives(cssText);return this.scopeCssText(cssText,selector)},makeScopeSelector:function(name,typeExtension){if(name){return typeExtension?"[is="+name+"]":name}return""},isTypeExtension:function(extendsName){return extendsName&&extendsName.indexOf("-")<0},prepareRoot:function(root,name,extendsName){var def=this.registerRoot(root,name,extendsName);this.replaceTextInStyles(def.rootStyles,this.insertDirectives);this.removeStyles(root,def.rootStyles);if(this.strictStyling){this.applyScopeToContent(root,name)}return def.scopeStyles},removeStyles:function(root,styles){for(var i=0,l=styles.length,s;i<l&&(s=styles[i]);i++){s.parentNode.removeChild(s)}},registerRoot:function(root,name,extendsName){var def=this.registry[name]={root:root,name:name,extendsName:extendsName};var styles=this.findStyles(root);def.rootStyles=styles;def.scopeStyles=def.rootStyles;var extendee=this.registry[def.extendsName];if(extendee){def.scopeStyles=extendee.scopeStyles.concat(def.scopeStyles)}return def},findStyles:function(root){if(!root){return[]}var styles=root.querySelectorAll("style");return Array.prototype.filter.call(styles,function(s){return!s.hasAttribute(NO_SHIM_ATTRIBUTE)})},applyScopeToContent:function(root,name){if(root){Array.prototype.forEach.call(root.querySelectorAll("*"),function(node){node.setAttribute(name,"")});Array.prototype.forEach.call(root.querySelectorAll("template"),function(template){this.applyScopeToContent(template.content,name)},this)}},insertDirectives:function(cssText){cssText=this.insertPolyfillDirectivesInCssText(cssText);return this.insertPolyfillRulesInCssText(cssText)},insertPolyfillDirectivesInCssText:function(cssText){cssText=cssText.replace(cssCommentNextSelectorRe,function(match,p1){return p1.slice(0,-2)+"{"});return cssText.replace(cssContentNextSelectorRe,function(match,p1){return p1+" {"})},insertPolyfillRulesInCssText:function(cssText){cssText=cssText.replace(cssCommentRuleRe,function(match,p1){return p1.slice(0,-1)});return cssText.replace(cssContentRuleRe,function(match,p1,p2,p3){var rule=match.replace(p1,"").replace(p2,"");return p3+rule})},scopeCssText:function(cssText,scopeSelector){var unscoped=this.extractUnscopedRulesFromCssText(cssText);cssText=this.insertPolyfillHostInCssText(cssText);cssText=this.convertColonHost(cssText);cssText=this.convertColonHostContext(cssText);cssText=this.convertShadowDOMSelectors(cssText);if(scopeSelector){var self=this,cssText;withCssRules(cssText,function(rules){cssText=self.scopeRules(rules,scopeSelector)})}cssText=cssText+"\n"+unscoped;return cssText.trim()},extractUnscopedRulesFromCssText:function(cssText){var r="",m;while(m=cssCommentUnscopedRuleRe.exec(cssText)){r+=m[1].slice(0,-1)+"\n\n"}while(m=cssContentUnscopedRuleRe.exec(cssText)){r+=m[0].replace(m[2],"").replace(m[1],m[3])+"\n\n"}return r},convertColonHost:function(cssText){return this.convertColonRule(cssText,cssColonHostRe,this.colonHostPartReplacer)},convertColonHostContext:function(cssText){return this.convertColonRule(cssText,cssColonHostContextRe,this.colonHostContextPartReplacer)},convertColonRule:function(cssText,regExp,partReplacer){return cssText.replace(regExp,function(m,p1,p2,p3){p1=polyfillHostNoCombinator;if(p2){var parts=p2.split(","),r=[];for(var i=0,l=parts.length,p;i<l&&(p=parts[i]);i++){p=p.trim();r.push(partReplacer(p1,p,p3))}return r.join(",")}else{return p1+p3}})},colonHostContextPartReplacer:function(host,part,suffix){if(part.match(polyfillHost)){return this.colonHostPartReplacer(host,part,suffix)}else{return host+part+suffix+", "+part+" "+host+suffix}},colonHostPartReplacer:function(host,part,suffix){return host+part.replace(polyfillHost,"")+suffix},convertShadowDOMSelectors:function(cssText){for(var i=0;i<shadowDOMSelectorsRe.length;i++){cssText=cssText.replace(shadowDOMSelectorsRe[i]," ")}return cssText},scopeRules:function(cssRules,scopeSelector){var cssText="";if(cssRules){Array.prototype.forEach.call(cssRules,function(rule){if(rule.selectorText&&(rule.style&&rule.style.cssText!==undefined)){cssText+=this.scopeSelector(rule.selectorText,scopeSelector,this.strictStyling)+" {\n	";cssText+=this.propertiesFromRule(rule)+"\n}\n\n"}else if(rule.type===CSSRule.MEDIA_RULE){cssText+="@media "+rule.media.mediaText+" {\n";cssText+=this.scopeRules(rule.cssRules,scopeSelector);cssText+="\n}\n\n"}else{try{if(rule.cssText){cssText+=rule.cssText+"\n\n"}}catch(x){if(rule.type===CSSRule.KEYFRAMES_RULE&&rule.cssRules){cssText+=this.ieSafeCssTextFromKeyFrameRule(rule)}}}},this)}return cssText},ieSafeCssTextFromKeyFrameRule:function(rule){var cssText="@keyframes "+rule.name+" {";Array.prototype.forEach.call(rule.cssRules,function(rule){cssText+=" "+rule.keyText+" {"+rule.style.cssText+"}"});cssText+=" }";return cssText},scopeSelector:function(selector,scopeSelector,strict){var r=[],parts=selector.split(",");parts.forEach(function(p){p=p.trim();if(this.selectorNeedsScoping(p,scopeSelector)){p=strict&&!p.match(polyfillHostNoCombinator)?this.applyStrictSelectorScope(p,scopeSelector):this.applySelectorScope(p,scopeSelector)}r.push(p)},this);return r.join(", ")},selectorNeedsScoping:function(selector,scopeSelector){if(Array.isArray(scopeSelector)){return true}var re=this.makeScopeMatcher(scopeSelector);return!selector.match(re)},makeScopeMatcher:function(scopeSelector){scopeSelector=scopeSelector.replace(/\[/g,"\\[").replace(/\[/g,"\\]");return new RegExp("^("+scopeSelector+")"+selectorReSuffix,"m")},applySelectorScope:function(selector,selectorScope){return Array.isArray(selectorScope)?this.applySelectorScopeList(selector,selectorScope):this.applySimpleSelectorScope(selector,selectorScope)},applySelectorScopeList:function(selector,scopeSelectorList){var r=[];for(var i=0,s;s=scopeSelectorList[i];i++){r.push(this.applySimpleSelectorScope(selector,s))}return r.join(", ")},applySimpleSelectorScope:function(selector,scopeSelector){if(selector.match(polyfillHostRe)){selector=selector.replace(polyfillHostNoCombinator,scopeSelector);return selector.replace(polyfillHostRe,scopeSelector+" ")}else{return scopeSelector+" "+selector}},applyStrictSelectorScope:function(selector,scopeSelector){scopeSelector=scopeSelector.replace(/\[is=([^\]]*)\]/g,"$1");var splits=[" ",">","+","~"],scoped=selector,attrName="["+scopeSelector+"]";splits.forEach(function(sep){var parts=scoped.split(sep);scoped=parts.map(function(p){var t=p.trim().replace(polyfillHostRe,"");if(t&&splits.indexOf(t)<0&&t.indexOf(attrName)<0){p=t.replace(/([^:]*)(:*)(.*)/,"$1"+attrName+"$2$3")}return p}).join(sep)});return scoped},insertPolyfillHostInCssText:function(selector){return selector.replace(colonHostContextRe,polyfillHostContext).replace(colonHostRe,polyfillHost)},propertiesFromRule:function(rule){var cssText=rule.style.cssText;if(rule.style.content&&!rule.style.content.match(/['"]+|attr/)){cssText=cssText.replace(/content:[^;]*;/g,"content: '"+rule.style.content+"';")}var style=rule.style;
-for(var i in style){if(style[i]==="initial"){cssText+=i+": initial; "}}return cssText},replaceTextInStyles:function(styles,action){if(styles&&action){if(!(styles instanceof Array)){styles=[styles]}Array.prototype.forEach.call(styles,function(s){s.textContent=action.call(this,s.textContent)},this)}},addCssToDocument:function(cssText,name){if(cssText.match("@import")){addOwnSheet(cssText,name)}else{addCssToDocument(cssText)}}};var selectorRe=/([^{]*)({[\s\S]*?})/gim,cssCommentRe=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,cssCommentNextSelectorRe=/\/\*\s*@polyfill ([^*]*\*+([^/*][^*]*\*+)*\/)([^{]*?){/gim,cssContentNextSelectorRe=/polyfill-next-selector[^}]*content\:[\s]*?['"](.*?)['"][;\s]*}([^{]*?){/gim,cssCommentRuleRe=/\/\*\s@polyfill-rule([^*]*\*+([^/*][^*]*\*+)*)\//gim,cssContentRuleRe=/(polyfill-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,cssCommentUnscopedRuleRe=/\/\*\s@polyfill-unscoped-rule([^*]*\*+([^/*][^*]*\*+)*)\//gim,cssContentUnscopedRuleRe=/(polyfill-unscoped-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,cssPseudoRe=/::(x-[^\s{,(]*)/gim,cssPartRe=/::part\(([^)]*)\)/gim,polyfillHost="-shadowcsshost",polyfillHostContext="-shadowcsscontext",parenSuffix=")(?:\\(("+"(?:\\([^)(]*\\)|[^)(]*)+?"+")\\))?([^,{]*)";var cssColonHostRe=new RegExp("("+polyfillHost+parenSuffix,"gim"),cssColonHostContextRe=new RegExp("("+polyfillHostContext+parenSuffix,"gim"),selectorReSuffix="([>\\s~+[.,{:][\\s\\S]*)?$",colonHostRe=/\:host/gim,colonHostContextRe=/\:host-context/gim,polyfillHostNoCombinator=polyfillHost+"-no-combinator",polyfillHostRe=new RegExp(polyfillHost,"gim"),polyfillHostContextRe=new RegExp(polyfillHostContext,"gim"),shadowDOMSelectorsRe=[/\^\^/g,/\^/g,/\/shadow\//g,/\/shadow-deep\//g,/::shadow/g,/\/deep\//g,/::content/g];function stylesToCssText(styles,preserveComments){var cssText="";Array.prototype.forEach.call(styles,function(s){cssText+=s.textContent+"\n\n"});if(!preserveComments){cssText=cssText.replace(cssCommentRe,"")}return cssText}function cssTextToStyle(cssText){var style=document.createElement("style");style.textContent=cssText;return style}function cssToRules(cssText){var style=cssTextToStyle(cssText);document.head.appendChild(style);var rules=[];if(style.sheet){try{rules=style.sheet.cssRules}catch(e){}}else{console.warn("sheet not found",style)}style.parentNode.removeChild(style);return rules}var frame=document.createElement("iframe");frame.style.display="none";function initFrame(){frame.initialized=true;document.body.appendChild(frame);var doc=frame.contentDocument;var base=doc.createElement("base");base.href=document.baseURI;doc.head.appendChild(base)}function inFrame(fn){if(!frame.initialized){initFrame()}document.body.appendChild(frame);fn(frame.contentDocument);document.body.removeChild(frame)}var isChrome=navigator.userAgent.match("Chrome");function withCssRules(cssText,callback){if(!callback){return}var rules;if(cssText.match("@import")&&isChrome){var style=cssTextToStyle(cssText);inFrame(function(doc){doc.head.appendChild(style.impl);rules=Array.prototype.slice.call(style.sheet.cssRules,0);callback(rules)})}else{rules=cssToRules(cssText);callback(rules)}}function rulesToCss(cssRules){for(var i=0,css=[];i<cssRules.length;i++){css.push(cssRules[i].cssText)}return css.join("\n\n")}function addCssToDocument(cssText){if(cssText){getSheet().appendChild(document.createTextNode(cssText))}}function addOwnSheet(cssText,name){var style=cssTextToStyle(cssText);style.setAttribute(name,"");style.setAttribute(SHIMMED_ATTRIBUTE,"");document.head.appendChild(style)}var SHIM_ATTRIBUTE="shim-shadowdom";var SHIMMED_ATTRIBUTE="shim-shadowdom-css";var NO_SHIM_ATTRIBUTE="no-shim";var sheet;function getSheet(){if(!sheet){sheet=document.createElement("style");sheet.setAttribute(SHIMMED_ATTRIBUTE,"");sheet[SHIMMED_ATTRIBUTE]=true}return sheet}if(window.ShadowDOMPolyfill){addCssToDocument("style { display: none !important; }\n");var doc=ShadowDOMPolyfill.wrap(document);var head=doc.querySelector("head");head.insertBefore(getSheet(),head.childNodes[0]);document.addEventListener("DOMContentLoaded",function(){var urlResolver=scope.urlResolver;if(window.HTMLImports&&!HTMLImports.useNative){var SHIM_SHEET_SELECTOR="link[rel=stylesheet]"+"["+SHIM_ATTRIBUTE+"]";var SHIM_STYLE_SELECTOR="style["+SHIM_ATTRIBUTE+"]";HTMLImports.importer.documentPreloadSelectors+=","+SHIM_SHEET_SELECTOR;HTMLImports.importer.importsPreloadSelectors+=","+SHIM_SHEET_SELECTOR;HTMLImports.parser.documentSelectors=[HTMLImports.parser.documentSelectors,SHIM_SHEET_SELECTOR,SHIM_STYLE_SELECTOR].join(",");var originalParseGeneric=HTMLImports.parser.parseGeneric;HTMLImports.parser.parseGeneric=function(elt){if(elt[SHIMMED_ATTRIBUTE]){return}var style=elt.__importElement||elt;if(!style.hasAttribute(SHIM_ATTRIBUTE)){originalParseGeneric.call(this,elt);return}if(elt.__resource){style=elt.ownerDocument.createElement("style");style.textContent=elt.__resource}HTMLImports.path.resolveUrlsInStyle(style);style.textContent=ShadowCSS.shimStyle(style);style.removeAttribute(SHIM_ATTRIBUTE,"");style.setAttribute(SHIMMED_ATTRIBUTE,"");style[SHIMMED_ATTRIBUTE]=true;if(style.parentNode!==head){if(elt.parentNode===head){head.replaceChild(style,elt)}else{this.addElementToDocument(style)}}style.__importParsed=true;this.markParsingComplete(elt);this.parseNext()};var hasResource=HTMLImports.parser.hasResource;HTMLImports.parser.hasResource=function(node){if(node.localName==="link"&&node.rel==="stylesheet"&&node.hasAttribute(SHIM_ATTRIBUTE)){return node.__resource}else{return hasResource.call(this,node)}}}})}scope.ShadowCSS=ShadowCSS})(window.WebComponents)}(function(scope){if(window.ShadowDOMPolyfill){window.wrap=ShadowDOMPolyfill.wrapIfNeeded;window.unwrap=ShadowDOMPolyfill.unwrapIfNeeded}else{window.wrap=window.unwrap=function(n){return n}}})(window.WebComponents);(function(global){var registrationsTable=new WeakMap;var setImmediate;if(/Trident/.test(navigator.userAgent)){setImmediate=setTimeout}else if(window.setImmediate){setImmediate=window.setImmediate}else{var setImmediateQueue=[];var sentinel=String(Math.random());window.addEventListener("message",function(e){if(e.data===sentinel){var queue=setImmediateQueue;setImmediateQueue=[];queue.forEach(function(func){func()})}});setImmediate=function(func){setImmediateQueue.push(func);window.postMessage(sentinel,"*")}}var isScheduled=false;var scheduledObservers=[];function scheduleCallback(observer){scheduledObservers.push(observer);if(!isScheduled){isScheduled=true;setImmediate(dispatchCallbacks)}}function wrapIfNeeded(node){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(node)||node}function dispatchCallbacks(){isScheduled=false;var observers=scheduledObservers;scheduledObservers=[];observers.sort(function(o1,o2){return o1.uid_-o2.uid_});var anyNonEmpty=false;observers.forEach(function(observer){var queue=observer.takeRecords();removeTransientObserversFor(observer);if(queue.length){observer.callback_(queue,observer);anyNonEmpty=true}});if(anyNonEmpty)dispatchCallbacks()}function removeTransientObserversFor(observer){observer.nodes_.forEach(function(node){var registrations=registrationsTable.get(node);if(!registrations)return;registrations.forEach(function(registration){if(registration.observer===observer)registration.removeTransientObservers()})})}function forEachAncestorAndObserverEnqueueRecord(target,callback){for(var node=target;node;node=node.parentNode){var registrations=registrationsTable.get(node);if(registrations){for(var j=0;j<registrations.length;j++){var registration=registrations[j];var options=registration.options;if(node!==target&&!options.subtree)continue;var record=callback(options);if(record)registration.enqueue(record)}}}}var uidCounter=0;function JsMutationObserver(callback){this.callback_=callback;this.nodes_=[];this.records_=[];this.uid_=++uidCounter}JsMutationObserver.prototype={observe:function(target,options){target=wrapIfNeeded(target);if(!options.childList&&!options.attributes&&!options.characterData||options.attributeOldValue&&!options.attributes||options.attributeFilter&&options.attributeFilter.length&&!options.attributes||options.characterDataOldValue&&!options.characterData){throw new SyntaxError}var registrations=registrationsTable.get(target);if(!registrations)registrationsTable.set(target,registrations=[]);var registration;for(var i=0;i<registrations.length;i++){if(registrations[i].observer===this){registration=registrations[i];registration.removeListeners();registration.options=options;break}}if(!registration){registration=new Registration(this,target,options);registrations.push(registration);this.nodes_.push(target)}registration.addListeners()},disconnect:function(){this.nodes_.forEach(function(node){var registrations=registrationsTable.get(node);for(var i=0;i<registrations.length;i++){var registration=registrations[i];if(registration.observer===this){registration.removeListeners();registrations.splice(i,1);break}}},this);this.records_=[]},takeRecords:function(){var copyOfRecords=this.records_;this.records_=[];return copyOfRecords}};function MutationRecord(type,target){this.type=type;this.target=target;this.addedNodes=[];this.removedNodes=[];this.previousSibling=null;this.nextSibling=null;this.attributeName=null;this.attributeNamespace=null;this.oldValue=null}function copyMutationRecord(original){var record=new MutationRecord(original.type,original.target);record.addedNodes=original.addedNodes.slice();record.removedNodes=original.removedNodes.slice();record.previousSibling=original.previousSibling;record.nextSibling=original.nextSibling;record.attributeName=original.attributeName;record.attributeNamespace=original.attributeNamespace;record.oldValue=original.oldValue;return record}var currentRecord,recordWithOldValue;function getRecord(type,target){return currentRecord=new MutationRecord(type,target)}function getRecordWithOldValue(oldValue){if(recordWithOldValue)return recordWithOldValue;recordWithOldValue=copyMutationRecord(currentRecord);recordWithOldValue.oldValue=oldValue;return recordWithOldValue}function clearRecords(){currentRecord=recordWithOldValue=undefined}function recordRepresentsCurrentMutation(record){return record===recordWithOldValue||record===currentRecord}function selectRecord(lastRecord,newRecord){if(lastRecord===newRecord)return lastRecord;if(recordWithOldValue&&recordRepresentsCurrentMutation(lastRecord))return recordWithOldValue;return null}function Registration(observer,target,options){this.observer=observer;this.target=target;this.options=options;this.transientObservedNodes=[]}Registration.prototype={enqueue:function(record){var records=this.observer.records_;var length=records.length;if(records.length>0){var lastRecord=records[length-1];var recordToReplaceLast=selectRecord(lastRecord,record);if(recordToReplaceLast){records[length-1]=recordToReplaceLast;return}}else{scheduleCallback(this.observer)}records[length]=record},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(node){var options=this.options;if(options.attributes)node.addEventListener("DOMAttrModified",this,true);if(options.characterData)node.addEventListener("DOMCharacterDataModified",this,true);if(options.childList)node.addEventListener("DOMNodeInserted",this,true);if(options.childList||options.subtree)node.addEventListener("DOMNodeRemoved",this,true)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(node){var options=this.options;if(options.attributes)node.removeEventListener("DOMAttrModified",this,true);if(options.characterData)node.removeEventListener("DOMCharacterDataModified",this,true);if(options.childList)node.removeEventListener("DOMNodeInserted",this,true);if(options.childList||options.subtree)node.removeEventListener("DOMNodeRemoved",this,true)},addTransientObserver:function(node){if(node===this.target)return;this.addListeners_(node);this.transientObservedNodes.push(node);var registrations=registrationsTable.get(node);if(!registrations)registrationsTable.set(node,registrations=[]);registrations.push(this)},removeTransientObservers:function(){var transientObservedNodes=this.transientObservedNodes;this.transientObservedNodes=[];transientObservedNodes.forEach(function(node){this.removeListeners_(node);var registrations=registrationsTable.get(node);for(var i=0;i<registrations.length;i++){if(registrations[i]===this){registrations.splice(i,1);break}}},this)},handleEvent:function(e){e.stopImmediatePropagation();switch(e.type){case"DOMAttrModified":var name=e.attrName;var namespace=e.relatedNode.namespaceURI;var target=e.target;var record=new getRecord("attributes",target);record.attributeName=name;record.attributeNamespace=namespace;var oldValue=e.attrChange===MutationEvent.ADDITION?null:e.prevValue;forEachAncestorAndObserverEnqueueRecord(target,function(options){if(!options.attributes)return;if(options.attributeFilter&&options.attributeFilter.length&&options.attributeFilter.indexOf(name)===-1&&options.attributeFilter.indexOf(namespace)===-1){return}if(options.attributeOldValue)return getRecordWithOldValue(oldValue);return record});break;case"DOMCharacterDataModified":var target=e.target;var record=getRecord("characterData",target);var oldValue=e.prevValue;forEachAncestorAndObserverEnqueueRecord(target,function(options){if(!options.characterData)return;if(options.characterDataOldValue)return getRecordWithOldValue(oldValue);return record});break;case"DOMNodeRemoved":this.addTransientObserver(e.target);case"DOMNodeInserted":var target=e.relatedNode;var changedNode=e.target;var addedNodes,removedNodes;if(e.type==="DOMNodeInserted"){addedNodes=[changedNode];removedNodes=[]}else{addedNodes=[];removedNodes=[changedNode]}var previousSibling=changedNode.previousSibling;var nextSibling=changedNode.nextSibling;var record=getRecord("childList",target);record.addedNodes=addedNodes;record.removedNodes=removedNodes;record.previousSibling=previousSibling;record.nextSibling=nextSibling;forEachAncestorAndObserverEnqueueRecord(target,function(options){if(!options.childList)return;return record})}clearRecords()}};global.JsMutationObserver=JsMutationObserver;if(!global.MutationObserver)global.MutationObserver=JsMutationObserver})(this);window.HTMLImports=window.HTMLImports||{flags:{}};(function(scope){var IMPORT_LINK_TYPE="import";var useNative=Boolean(IMPORT_LINK_TYPE in document.createElement("link"));var hasShadowDOMPolyfill=Boolean(window.ShadowDOMPolyfill);var wrap=function(node){return hasShadowDOMPolyfill?ShadowDOMPolyfill.wrapIfNeeded(node):node};var rootDocument=wrap(document);var currentScriptDescriptor={get:function(){var script=HTMLImports.currentScript||document.currentScript||(document.readyState!=="complete"?document.scripts[document.scripts.length-1]:null);return wrap(script)},configurable:true};Object.defineProperty(document,"_currentScript",currentScriptDescriptor);Object.defineProperty(rootDocument,"_currentScript",currentScriptDescriptor);var isIE=/Trident/.test(navigator.userAgent);function whenReady(callback,doc){doc=doc||rootDocument;whenDocumentReady(function(){watchImportsLoad(callback,doc)},doc)}var requiredReadyState=isIE?"complete":"interactive";var READY_EVENT="readystatechange";function isDocumentReady(doc){return doc.readyState==="complete"||doc.readyState===requiredReadyState}function whenDocumentReady(callback,doc){if(!isDocumentReady(doc)){var checkReady=function(){if(doc.readyState==="complete"||doc.readyState===requiredReadyState){doc.removeEventListener(READY_EVENT,checkReady);whenDocumentReady(callback,doc)}};doc.addEventListener(READY_EVENT,checkReady)}else if(callback){callback()}}function markTargetLoaded(event){event.target.__loaded=true}function watchImportsLoad(callback,doc){var imports=doc.querySelectorAll("link[rel=import]");var loaded=0,l=imports.length;function checkDone(d){if(loaded==l&&callback){callback()}}function loadedImport(e){markTargetLoaded(e);loaded++;checkDone()}if(l){for(var i=0,imp;i<l&&(imp=imports[i]);i++){if(isImportLoaded(imp)){loadedImport.call(imp,{target:imp})}else{imp.addEventListener("load",loadedImport);imp.addEventListener("error",loadedImport)}}}else{checkDone()}}function isImportLoaded(link){return useNative?link.__loaded||link.import&&link.import.readyState!=="loading":link.__importParsed}if(useNative){new MutationObserver(function(mxns){for(var i=0,l=mxns.length,m;i<l&&(m=mxns[i]);i++){if(m.addedNodes){handleImports(m.addedNodes)}}}).observe(document.head,{childList:true});function handleImports(nodes){for(var i=0,l=nodes.length,n;i<l&&(n=nodes[i]);i++){if(isImport(n)){handleImport(n)}}}function isImport(element){return element.localName==="link"&&element.rel==="import"}function handleImport(element){var loaded=element.import;if(loaded){markTargetLoaded({target:element})}else{element.addEventListener("load",markTargetLoaded);element.addEventListener("error",markTargetLoaded)}}(function(){if(document.readyState==="loading"){var imports=document.querySelectorAll("link[rel=import]");for(var i=0,l=imports.length,imp;i<l&&(imp=imports[i]);i++){handleImport(imp)}}})()}whenReady(function(){HTMLImports.ready=true;HTMLImports.readyTime=(new Date).getTime();rootDocument.dispatchEvent(new CustomEvent("HTMLImportsLoaded",{bubbles:true}))});scope.IMPORT_LINK_TYPE=IMPORT_LINK_TYPE;scope.useNative=useNative;scope.rootDocument=rootDocument;scope.whenReady=whenReady;scope.isIE=isIE})(HTMLImports);(function(scope){var modules=[];var addModule=function(module){modules.push(module)};var initializeModules=function(){modules.forEach(function(module){module(scope)})};scope.addModule=addModule;scope.initializeModules=initializeModules})(HTMLImports);HTMLImports.addModule(function(scope){var CSS_URL_REGEXP=/(url\()([^)]*)(\))/g;var CSS_IMPORT_REGEXP=/(@import[\s]+(?!url\())([^;]*)(;)/g;var path={resolveUrlsInStyle:function(style){var doc=style.ownerDocument;var resolver=doc.createElement("a");style.textContent=this.resolveUrlsInCssText(style.textContent,resolver);return style},resolveUrlsInCssText:function(cssText,urlObj){var r=this.replaceUrls(cssText,urlObj,CSS_URL_REGEXP);r=this.replaceUrls(r,urlObj,CSS_IMPORT_REGEXP);return r},replaceUrls:function(text,urlObj,regexp){return text.replace(regexp,function(m,pre,url,post){var urlPath=url.replace(/["']/g,"");urlObj.href=urlPath;urlPath=urlObj.href;return pre+"'"+urlPath+"'"+post})}};scope.path=path});HTMLImports.addModule(function(scope){xhr={async:true,ok:function(request){return request.status>=200&&request.status<300||request.status===304||request.status===0},load:function(url,next,nextContext){var request=new XMLHttpRequest;if(scope.flags.debug||scope.flags.bust){url+="?"+Math.random()}request.open("GET",url,xhr.async);request.addEventListener("readystatechange",function(e){if(request.readyState===4){var locationHeader=request.getResponseHeader("Location");var redirectedUrl=null;if(locationHeader){var redirectedUrl=locationHeader.substr(0,1)==="/"?location.origin+locationHeader:locationHeader}next.call(nextContext,!xhr.ok(request)&&request,request.response||request.responseText,redirectedUrl)}});request.send();return request},loadDocument:function(url,next,nextContext){this.load(url,next,nextContext).responseType="document"}};scope.xhr=xhr});HTMLImports.addModule(function(scope){var xhr=scope.xhr;var flags=scope.flags;var Loader=function(onLoad,onComplete){this.cache={};this.onload=onLoad;this.oncomplete=onComplete;this.inflight=0;this.pending={}};Loader.prototype={addNodes:function(nodes){this.inflight+=nodes.length;for(var i=0,l=nodes.length,n;i<l&&(n=nodes[i]);i++){this.require(n)}this.checkDone()},addNode:function(node){this.inflight++;this.require(node);this.checkDone()},require:function(elt){var url=elt.src||elt.href;elt.__nodeUrl=url;if(!this.dedupe(url,elt)){this.fetch(url,elt)}},dedupe:function(url,elt){if(this.pending[url]){this.pending[url].push(elt);return true}var resource;if(this.cache[url]){this.onload(url,elt,this.cache[url]);this.tail();return true}this.pending[url]=[elt];return false},fetch:function(url,elt){flags.load&&console.log("fetch",url,elt);if(url.match(/^data:/)){var pieces=url.split(",");var header=pieces[0];var body=pieces[1];if(header.indexOf(";base64")>-1){body=atob(body)}else{body=decodeURIComponent(body)}setTimeout(function(){this.receive(url,elt,null,body)}.bind(this),0)}else{var receiveXhr=function(err,resource,redirectedUrl){this.receive(url,elt,err,resource,redirectedUrl)}.bind(this);xhr.load(url,receiveXhr)}},receive:function(url,elt,err,resource,redirectedUrl){this.cache[url]=resource;var $p=this.pending[url];for(var i=0,l=$p.length,p;i<l&&(p=$p[i]);i++){this.onload(url,p,resource,err,redirectedUrl);this.tail()}this.pending[url]=null},tail:function(){--this.inflight;this.checkDone()},checkDone:function(){if(!this.inflight){this.oncomplete()}}};scope.Loader=Loader});HTMLImports.addModule(function(scope){var Observer=function(addCallback){this.addCallback=addCallback;this.mo=new MutationObserver(this.handler.bind(this))};Observer.prototype={handler:function(mutations){for(var i=0,l=mutations.length,m;i<l&&(m=mutations[i]);i++){if(m.type==="childList"&&m.addedNodes.length){this.addedNodes(m.addedNodes)}}},addedNodes:function(nodes){if(this.addCallback){this.addCallback(nodes)}for(var i=0,l=nodes.length,n,loading;i<l&&(n=nodes[i]);i++){if(n.children&&n.children.length){this.addedNodes(n.children)}}},observe:function(root){this.mo.observe(root,{childList:true,subtree:true})}};scope.Observer=Observer});HTMLImports.addModule(function(scope){var path=scope.path;var rootDocument=scope.rootDocument;var flags=scope.flags;var isIE=scope.isIE;var IMPORT_LINK_TYPE=scope.IMPORT_LINK_TYPE;var IMPORT_SELECTOR="link[rel="+IMPORT_LINK_TYPE+"]";var importParser={documentSelectors:IMPORT_SELECTOR,importsSelectors:[IMPORT_SELECTOR,"link[rel=stylesheet]","style","script:not([type])",'script[type="text/javascript"]'].join(","),map:{link:"parseLink",script:"parseScript",style:"parseStyle"},dynamicElements:[],parseNext:function(){var next=this.nextToParse();if(next){this.parse(next)}},parse:function(elt){if(this.isParsed(elt)){flags.parse&&console.log("[%s] is already parsed",elt.localName);return}var fn=this[this.map[elt.localName]];if(fn){this.markParsing(elt);fn.call(this,elt)}},parseDynamic:function(elt,quiet){this.dynamicElements.push(elt);if(!quiet){this.parseNext()}},markParsing:function(elt){flags.parse&&console.log("parsing",elt);this.parsingElement=elt},markParsingComplete:function(elt){elt.__importParsed=true;this.markDynamicParsingComplete(elt);if(elt.__importElement){elt.__importElement.__importParsed=true;this.markDynamicParsingComplete(elt.__importElement)}this.parsingElement=null;flags.parse&&console.log("completed",elt)},markDynamicParsingComplete:function(elt){var i=this.dynamicElements.indexOf(elt);if(i>=0){this.dynamicElements.splice(i,1)}},parseImport:function(elt){if(HTMLImports.__importsParsingHook){HTMLImports.__importsParsingHook(elt)}if(elt.import){elt.import.__importParsed=true}this.markParsingComplete(elt);if(elt.__resource&&!elt.__error){elt.dispatchEvent(new CustomEvent("load",{bubbles:false}))}else{elt.dispatchEvent(new CustomEvent("error",{bubbles:false}))}if(elt.__pending){var fn;while(elt.__pending.length){fn=elt.__pending.shift();if(fn){fn({target:elt})}}}this.parseNext()},parseLink:function(linkElt){if(nodeIsImport(linkElt)){this.parseImport(linkElt)}else{linkElt.href=linkElt.href;this.parseGeneric(linkElt)}},parseStyle:function(elt){var src=elt;elt=cloneStyle(elt);elt.__importElement=src;this.parseGeneric(elt)},parseGeneric:function(elt){this.trackElement(elt);this.addElementToDocument(elt)},rootImportForElement:function(elt){var n=elt;while(n.ownerDocument.__importLink){n=n.ownerDocument.__importLink}return n},addElementToDocument:function(elt){var port=this.rootImportForElement(elt.__importElement||elt);var l=port.__insertedElements=port.__insertedElements||0;var refNode=port.nextElementSibling;for(var i=0;i<l;i++){refNode=refNode&&refNode.nextElementSibling}port.parentNode.insertBefore(elt,refNode)},trackElement:function(elt,callback){var self=this;var done=function(e){if(callback){callback(e)}self.markParsingComplete(elt);self.parseNext()};elt.addEventListener("load",done);elt.addEventListener("error",done);if(isIE&&elt.localName==="style"){var fakeLoad=false;if(elt.textContent.indexOf("@import")==-1){fakeLoad=true}else if(elt.sheet){fakeLoad=true;var csr=elt.sheet.cssRules;var len=csr?csr.length:0;for(var i=0,r;i<len&&(r=csr[i]);i++){if(r.type===CSSRule.IMPORT_RULE){fakeLoad=fakeLoad&&Boolean(r.styleSheet)}}}if(fakeLoad){elt.dispatchEvent(new CustomEvent("load",{bubbles:false}))}}},parseScript:function(scriptElt){var script=document.createElement("script");script.__importElement=scriptElt;script.src=scriptElt.src?scriptElt.src:generateScriptDataUrl(scriptElt);scope.currentScript=scriptElt;this.trackElement(script,function(e){script.parentNode.removeChild(script);scope.currentScript=null});this.addElementToDocument(script)},nextToParse:function(){this._mayParse=[];return!this.parsingElement&&(this.nextToParseInDoc(rootDocument)||this.nextToParseDynamic())},nextToParseInDoc:function(doc,link){if(doc&&this._mayParse.indexOf(doc)<0){this._mayParse.push(doc);var nodes=doc.querySelectorAll(this.parseSelectorsForNode(doc));for(var i=0,l=nodes.length,p=0,n;i<l&&(n=nodes[i]);i++){if(!this.isParsed(n)){if(this.hasResource(n)){return nodeIsImport(n)?this.nextToParseInDoc(n.import,n):n}else{return}}}}return link},nextToParseDynamic:function(){return this.dynamicElements[0]},parseSelectorsForNode:function(node){var doc=node.ownerDocument||node;return doc===rootDocument?this.documentSelectors:this.importsSelectors},isParsed:function(node){return node.__importParsed},needsDynamicParsing:function(elt){return this.dynamicElements.indexOf(elt)>=0},hasResource:function(node){if(nodeIsImport(node)&&node.import===undefined){return false}return true}};function nodeIsImport(elt){return elt.localName==="link"&&elt.rel===IMPORT_LINK_TYPE}function generateScriptDataUrl(script){var scriptContent=generateScriptContent(script);return"data:text/javascript;charset=utf-8,"+encodeURIComponent(scriptContent)}function generateScriptContent(script){return script.textContent+generateSourceMapHint(script)}function generateSourceMapHint(script){var owner=script.ownerDocument;owner.__importedScripts=owner.__importedScripts||0;var moniker=script.ownerDocument.baseURI;var num=owner.__importedScripts?"-"+owner.__importedScripts:"";owner.__importedScripts++;return"\n//# sourceURL="+moniker+num+".js\n"}function cloneStyle(style){var clone=style.ownerDocument.createElement("style");clone.textContent=style.textContent;path.resolveUrlsInStyle(clone);return clone}scope.parser=importParser;scope.IMPORT_SELECTOR=IMPORT_SELECTOR});HTMLImports.addModule(function(scope){var flags=scope.flags;var IMPORT_LINK_TYPE=scope.IMPORT_LINK_TYPE;var IMPORT_SELECTOR=scope.IMPORT_SELECTOR;var rootDocument=scope.rootDocument;var Loader=scope.Loader;var Observer=scope.Observer;var parser=scope.parser;var importer={documents:{},documentPreloadSelectors:IMPORT_SELECTOR,importsPreloadSelectors:[IMPORT_SELECTOR].join(","),loadNode:function(node){importLoader.addNode(node)},loadSubtree:function(parent){var nodes=this.marshalNodes(parent);importLoader.addNodes(nodes)},marshalNodes:function(parent){return parent.querySelectorAll(this.loadSelectorsForNode(parent))},loadSelectorsForNode:function(node){var doc=node.ownerDocument||node;return doc===rootDocument?this.documentPreloadSelectors:this.importsPreloadSelectors},loaded:function(url,elt,resource,err,redirectedUrl){flags.load&&console.log("loaded",url,elt);elt.__resource=resource;elt.__error=err;if(isImportLink(elt)){var doc=this.documents[url];if(doc===undefined){doc=err?null:makeDocument(resource,redirectedUrl||url);if(doc){doc.__importLink=elt;this.bootDocument(doc)}this.documents[url]=doc}elt.import=doc}parser.parseNext()},bootDocument:function(doc){this.loadSubtree(doc);this.observer.observe(doc);parser.parseNext()},loadedAll:function(){parser.parseNext()}};var importLoader=new Loader(importer.loaded.bind(importer),importer.loadedAll.bind(importer));importer.observer=new Observer;function isImportLink(elt){return isLinkRel(elt,IMPORT_LINK_TYPE)}function isLinkRel(elt,rel){return elt.localName==="link"&&elt.getAttribute("rel")===rel}function makeDocument(resource,url){var doc=document.implementation.createHTMLDocument(IMPORT_LINK_TYPE);doc._URL=url;var base=doc.createElement("base");base.setAttribute("href",url);if(!doc.baseURI){doc.baseURI=url}var meta=doc.createElement("meta");meta.setAttribute("charset","utf-8");doc.head.appendChild(meta);doc.head.appendChild(base);doc.body.innerHTML=resource;if(window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap){HTMLTemplateElement.bootstrap(doc)}return doc}if(!document.baseURI){var baseURIDescriptor={get:function(){var base=document.querySelector("base");return base?base.href:window.location.href},configurable:true};Object.defineProperty(document,"baseURI",baseURIDescriptor);Object.defineProperty(rootDocument,"baseURI",baseURIDescriptor)}scope.importer=importer;scope.importLoader=importLoader});HTMLImports.addModule(function(scope){var parser=scope.parser;var importer=scope.importer;var dynamic={added:function(nodes){var owner,parsed;for(var i=0,l=nodes.length,n;i<l&&(n=nodes[i]);i++){if(!owner){owner=n.ownerDocument;parsed=parser.isParsed(owner)}loading=this.shouldLoadNode(n);if(loading){importer.loadNode(n)}if(this.shouldParseNode(n)&&parsed){parser.parseDynamic(n,loading)}}},shouldLoadNode:function(node){return node.nodeType===1&&matches.call(node,importer.loadSelectorsForNode(node))},shouldParseNode:function(node){return node.nodeType===1&&matches.call(node,parser.parseSelectorsForNode(node))}};importer.observer.addCallback=dynamic.added.bind(dynamic);var matches=HTMLElement.prototype.matches||HTMLElement.prototype.matchesSelector||HTMLElement.prototype.webkitMatchesSelector||HTMLElement.prototype.mozMatchesSelector||HTMLElement.prototype.msMatchesSelector});(function(scope){initializeModules=scope.initializeModules;if(scope.useNative){return}if(typeof window.CustomEvent!=="function"){window.CustomEvent=function(inType,dictionary){var e=document.createEvent("HTMLEvents");e.initEvent(inType,dictionary.bubbles===false?false:true,dictionary.cancelable===false?false:true,dictionary.detail);return e}}initializeModules();var rootDocument=scope.rootDocument;function bootstrap(){HTMLImports.importer.bootDocument(rootDocument)}if(document.readyState==="complete"||document.readyState==="interactive"&&!window.attachEvent){bootstrap()}else{document.addEventListener("DOMContentLoaded",bootstrap)}})(HTMLImports);window.CustomElements=window.CustomElements||{flags:{}};(function(scope){var flags=scope.flags;var modules=[];var addModule=function(module){modules.push(module)};var initializeModules=function(){modules.forEach(function(module){module(scope)})};scope.addModule=addModule;scope.initializeModules=initializeModules;scope.hasNative=Boolean(document.registerElement);scope.useNative=!flags.register&&scope.hasNative&&!window.ShadowDOMPolyfill&&(!window.HTMLImports||HTMLImports.useNative)})(CustomElements);CustomElements.addModule(function(scope){var IMPORT_LINK_TYPE=window.HTMLImports?HTMLImports.IMPORT_LINK_TYPE:"none";function forSubtree(node,cb){findAllElements(node,function(e){if(cb(e)){return true}forRoots(e,cb)});forRoots(node,cb)}function findAllElements(node,find,data){var e=node.firstElementChild;if(!e){e=node.firstChild;while(e&&e.nodeType!==Node.ELEMENT_NODE){e=e.nextSibling}}while(e){if(find(e,data)!==true){findAllElements(e,find,data)}e=e.nextElementSibling}return null}function forRoots(node,cb){var root=node.shadowRoot;while(root){forSubtree(root,cb);root=root.olderShadowRoot}}var processingDocuments;function forDocumentTree(doc,cb){processingDocuments=[];_forDocumentTree(doc,cb);processingDocuments=null}function _forDocumentTree(doc,cb){doc=wrap(doc);if(processingDocuments.indexOf(doc)>=0){return
-}processingDocuments.push(doc);var imports=doc.querySelectorAll("link[rel="+IMPORT_LINK_TYPE+"]");for(var i=0,l=imports.length,n;i<l&&(n=imports[i]);i++){if(n.import){_forDocumentTree(n.import,cb)}}cb(doc)}scope.forDocumentTree=forDocumentTree;scope.forSubtree=forSubtree});CustomElements.addModule(function(scope){var flags=scope.flags;var forSubtree=scope.forSubtree;var forDocumentTree=scope.forDocumentTree;function addedNode(node){return added(node)||addedSubtree(node)}function added(node){if(scope.upgrade(node)){return true}attached(node)}function addedSubtree(node){forSubtree(node,function(e){if(added(e)){return true}})}function attachedNode(node){attached(node);if(inDocument(node)){forSubtree(node,function(e){attached(e)})}}var hasPolyfillMutations=!window.MutationObserver||window.MutationObserver===window.JsMutationObserver;scope.hasPolyfillMutations=hasPolyfillMutations;var isPendingMutations=false;var pendingMutations=[];function deferMutation(fn){pendingMutations.push(fn);if(!isPendingMutations){isPendingMutations=true;setTimeout(takeMutations)}}function takeMutations(){isPendingMutations=false;var $p=pendingMutations;for(var i=0,l=$p.length,p;i<l&&(p=$p[i]);i++){p()}pendingMutations=[]}function attached(element){if(hasPolyfillMutations){deferMutation(function(){_attached(element)})}else{_attached(element)}}function _attached(element){if(element.__upgraded__&&(element.attachedCallback||element.detachedCallback)){if(!element.__attached&&inDocument(element)){element.__attached=true;if(element.attachedCallback){element.attachedCallback()}}}}function detachedNode(node){detached(node);forSubtree(node,function(e){detached(e)})}function detached(element){if(hasPolyfillMutations){deferMutation(function(){_detached(element)})}else{_detached(element)}}function _detached(element){if(element.__upgraded__&&(element.attachedCallback||element.detachedCallback)){if(element.__attached&&!inDocument(element)){element.__attached=false;if(element.detachedCallback){element.detachedCallback()}}}}function inDocument(element){var p=element;var doc=wrap(document);while(p){if(p==doc){return true}p=p.parentNode||p.host}}function watchShadow(node){if(node.shadowRoot&&!node.shadowRoot.__watched){flags.dom&&console.log("watching shadow-root for: ",node.localName);var root=node.shadowRoot;while(root){observe(root);root=root.olderShadowRoot}}}function handler(mutations){if(flags.dom){var mx=mutations[0];if(mx&&mx.type==="childList"&&mx.addedNodes){if(mx.addedNodes){var d=mx.addedNodes[0];while(d&&d!==document&&!d.host){d=d.parentNode}var u=d&&(d.URL||d._URL||d.host&&d.host.localName)||"";u=u.split("/?").shift().split("/").pop()}}console.group("mutations (%d) [%s]",mutations.length,u||"")}mutations.forEach(function(mx){if(mx.type==="childList"){forEach(mx.addedNodes,function(n){if(!n.localName){return}addedNode(n)});forEach(mx.removedNodes,function(n){if(!n.localName){return}detachedNode(n)})}});flags.dom&&console.groupEnd()}function takeRecords(node){node=wrap(node);if(!node){node=wrap(document)}while(node.parentNode){node=node.parentNode}var observer=node.__observer;if(observer){handler(observer.takeRecords());takeMutations()}}var forEach=Array.prototype.forEach.call.bind(Array.prototype.forEach);function observe(inRoot){if(inRoot.__observer){return}var observer=new MutationObserver(handler);observer.observe(inRoot,{childList:true,subtree:true});inRoot.__observer=observer}function upgradeDocument(doc){doc=wrap(doc);flags.dom&&console.group("upgradeDocument: ",doc.baseURI.split("/").pop());addedNode(doc);observe(doc);flags.dom&&console.groupEnd()}function upgradeDocumentTree(doc){forDocumentTree(doc,upgradeDocument)}var originalCreateShadowRoot=Element.prototype.createShadowRoot;Element.prototype.createShadowRoot=function(){var root=originalCreateShadowRoot.call(this);CustomElements.watchShadow(this);return root};scope.watchShadow=watchShadow;scope.upgradeDocumentTree=upgradeDocumentTree;scope.upgradeSubtree=addedSubtree;scope.upgradeAll=addedNode;scope.attachedNode=attachedNode;scope.takeRecords=takeRecords});CustomElements.addModule(function(scope){var flags=scope.flags;function upgrade(node){if(!node.__upgraded__&&node.nodeType===Node.ELEMENT_NODE){var is=node.getAttribute("is");var definition=scope.getRegisteredDefinition(is||node.localName);if(definition){if(is&&definition.tag==node.localName){return upgradeWithDefinition(node,definition)}else if(!is&&!definition.extends){return upgradeWithDefinition(node,definition)}}}}function upgradeWithDefinition(element,definition){flags.upgrade&&console.group("upgrade:",element.localName);if(definition.is){element.setAttribute("is",definition.is)}implementPrototype(element,definition);element.__upgraded__=true;created(element);scope.attachedNode(element);scope.upgradeSubtree(element);flags.upgrade&&console.groupEnd();return element}function implementPrototype(element,definition){if(Object.__proto__){element.__proto__=definition.prototype}else{customMixin(element,definition.prototype,definition.native);element.__proto__=definition.prototype}}function customMixin(inTarget,inSrc,inNative){var used={};var p=inSrc;while(p!==inNative&&p!==HTMLElement.prototype){var keys=Object.getOwnPropertyNames(p);for(var i=0,k;k=keys[i];i++){if(!used[k]){Object.defineProperty(inTarget,k,Object.getOwnPropertyDescriptor(p,k));used[k]=1}}p=Object.getPrototypeOf(p)}}function created(element){if(element.createdCallback){element.createdCallback()}}scope.upgrade=upgrade;scope.upgradeWithDefinition=upgradeWithDefinition;scope.implementPrototype=implementPrototype});CustomElements.addModule(function(scope){var upgradeDocumentTree=scope.upgradeDocumentTree;var upgrade=scope.upgrade;var upgradeWithDefinition=scope.upgradeWithDefinition;var implementPrototype=scope.implementPrototype;var useNative=scope.useNative;function register(name,options){var definition=options||{};if(!name){throw new Error("document.registerElement: first argument `name` must not be empty")}if(name.indexOf("-")<0){throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '"+String(name)+"'.")}if(isReservedTag(name)){throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '"+String(name)+"'. The type name is invalid.")}if(getRegisteredDefinition(name)){throw new Error("DuplicateDefinitionError: a type with name '"+String(name)+"' is already registered")}if(!definition.prototype){definition.prototype=Object.create(HTMLElement.prototype)}definition.__name=name.toLowerCase();definition.lifecycle=definition.lifecycle||{};definition.ancestry=ancestry(definition.extends);resolveTagName(definition);resolvePrototypeChain(definition);overrideAttributeApi(definition.prototype);registerDefinition(definition.__name,definition);definition.ctor=generateConstructor(definition);definition.ctor.prototype=definition.prototype;definition.prototype.constructor=definition.ctor;if(scope.ready){upgradeDocumentTree(document)}return definition.ctor}function overrideAttributeApi(prototype){if(prototype.setAttribute._polyfilled){return}var setAttribute=prototype.setAttribute;prototype.setAttribute=function(name,value){changeAttribute.call(this,name,value,setAttribute)};var removeAttribute=prototype.removeAttribute;prototype.removeAttribute=function(name){changeAttribute.call(this,name,null,removeAttribute)};prototype.setAttribute._polyfilled=true}function changeAttribute(name,value,operation){name=name.toLowerCase();var oldValue=this.getAttribute(name);operation.apply(this,arguments);var newValue=this.getAttribute(name);if(this.attributeChangedCallback&&newValue!==oldValue){this.attributeChangedCallback(name,oldValue,newValue)}}function isReservedTag(name){for(var i=0;i<reservedTagList.length;i++){if(name===reservedTagList[i]){return true}}}var reservedTagList=["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"];function ancestry(extnds){var extendee=getRegisteredDefinition(extnds);if(extendee){return ancestry(extendee.extends).concat([extendee])}return[]}function resolveTagName(definition){var baseTag=definition.extends;for(var i=0,a;a=definition.ancestry[i];i++){baseTag=a.is&&a.tag}definition.tag=baseTag||definition.__name;if(baseTag){definition.is=definition.__name}}function resolvePrototypeChain(definition){if(!Object.__proto__){var nativePrototype=HTMLElement.prototype;if(definition.is){var inst=document.createElement(definition.tag);var expectedPrototype=Object.getPrototypeOf(inst);if(expectedPrototype===definition.prototype){nativePrototype=expectedPrototype}}var proto=definition.prototype,ancestor;while(proto&&proto!==nativePrototype){ancestor=Object.getPrototypeOf(proto);proto.__proto__=ancestor;proto=ancestor}definition.native=nativePrototype}}function instantiate(definition){return upgradeWithDefinition(domCreateElement(definition.tag),definition)}var registry={};function getRegisteredDefinition(name){if(name){return registry[name.toLowerCase()]}}function registerDefinition(name,definition){registry[name]=definition}function generateConstructor(definition){return function(){return instantiate(definition)}}var HTML_NAMESPACE="http://www.w3.org/1999/xhtml";function createElementNS(namespace,tag,typeExtension){if(namespace===HTML_NAMESPACE){return createElement(tag,typeExtension)}else{return domCreateElementNS(namespace,tag)}}function createElement(tag,typeExtension){var definition=getRegisteredDefinition(typeExtension||tag);if(definition){if(tag==definition.tag&&typeExtension==definition.is){return new definition.ctor}if(!typeExtension&&!definition.is){return new definition.ctor}}var element;if(typeExtension){element=createElement(tag);element.setAttribute("is",typeExtension);return element}element=domCreateElement(tag);if(tag.indexOf("-")>=0){implementPrototype(element,HTMLElement)}return element}function cloneNode(deep){var n=domCloneNode.call(this,deep);upgrade(n);return n}var domCreateElement=document.createElement.bind(document);var domCreateElementNS=document.createElementNS.bind(document);var domCloneNode=Node.prototype.cloneNode;var isInstance;if(!Object.__proto__&&!useNative){isInstance=function(obj,ctor){var p=obj;while(p){if(p===ctor.prototype){return true}p=p.__proto__}return false}}else{isInstance=function(obj,base){return obj instanceof base}}document.registerElement=register;document.createElement=createElement;document.createElementNS=createElementNS;Node.prototype.cloneNode=cloneNode;scope.registry=registry;scope.instanceof=isInstance;scope.reservedTagList=reservedTagList;scope.getRegisteredDefinition=getRegisteredDefinition;document.register=document.registerElement});(function(scope){var useNative=scope.useNative;var initializeModules=scope.initializeModules;if(useNative){var nop=function(){};scope.watchShadow=nop;scope.upgrade=nop;scope.upgradeAll=nop;scope.upgradeDocumentTree=nop;scope.upgradeSubtree=nop;scope.takeRecords=nop;scope.instanceof=function(obj,base){return obj instanceof base}}else{initializeModules()}var upgradeDocumentTree=scope.upgradeDocumentTree;if(!window.wrap){if(window.ShadowDOMPolyfill){window.wrap=ShadowDOMPolyfill.wrapIfNeeded;window.unwrap=ShadowDOMPolyfill.unwrapIfNeeded}else{window.wrap=window.unwrap=function(node){return node}}}function bootstrap(){upgradeDocumentTree(wrap(document));if(window.HTMLImports){HTMLImports.__importsParsingHook=function(elt){upgradeDocumentTree(wrap(elt.import))}}CustomElements.ready=true;setTimeout(function(){CustomElements.readyTime=Date.now();if(window.HTMLImports){CustomElements.elapsed=CustomElements.readyTime-HTMLImports.readyTime}document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:true}))})}if(typeof window.CustomEvent!=="function"){window.CustomEvent=function(inType,params){params=params||{};var e=document.createEvent("CustomEvent");e.initCustomEvent(inType,Boolean(params.bubbles),Boolean(params.cancelable),params.detail);return e};window.CustomEvent.prototype=window.Event.prototype}if(document.readyState==="complete"||scope.flags.eager){bootstrap()}else if(document.readyState==="interactive"&&!window.attachEvent&&(!window.HTMLImports||window.HTMLImports.ready)){bootstrap()}else{var loadEvent=window.HTMLImports&&!HTMLImports.ready?"HTMLImportsLoaded":"DOMContentLoaded";window.addEventListener(loadEvent,bootstrap)}})(window.CustomElements);(function(scope){if(!Function.prototype.bind){Function.prototype.bind=function(scope){var self=this;var args=Array.prototype.slice.call(arguments,1);return function(){var args2=args.slice();args2.push.apply(args2,arguments);return self.apply(scope,args2)}}}})(window.WebComponents);(function(scope){"use strict";if(!window.performance){var start=Date.now();window.performance={now:function(){return Date.now()-start}}}if(!window.requestAnimationFrame){window.requestAnimationFrame=function(){var nativeRaf=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame;return nativeRaf?function(callback){return nativeRaf(function(){callback(performance.now())})}:function(callback){return window.setTimeout(callback,1e3/60)}}()}if(!window.cancelAnimationFrame){window.cancelAnimationFrame=function(){return window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(id){clearTimeout(id)}}()}var elementDeclarations=[];var polymerStub=function(name,dictionary){if(typeof name!=="string"&&arguments.length===1){Array.prototype.push.call(arguments,document._currentScript)}elementDeclarations.push(arguments)};window.Polymer=polymerStub;scope.consumeDeclarations=function(callback){scope.consumeDeclarations=function(){throw"Possible attempt to load Polymer twice"};if(callback){callback(elementDeclarations)}elementDeclarations=null};function installPolymerWarning(){if(window.Polymer===polymerStub){window.Polymer=function(){throw new Error("You tried to use polymer without loading it first. To "+'load polymer, <link rel="import" href="'+'components/polymer/polymer.html">')}}}if(HTMLImports.useNative){installPolymerWarning()}else{addEventListener("DOMContentLoaded",installPolymerWarning)}})(window.WebComponents);(function(scope){var style=document.createElement("style");style.textContent=""+"body {"+"transition: opacity ease-in 0.2s;"+" } \n"+"body[unresolved] {"+"opacity: 0; display: block; overflow: hidden; position: relative;"+" } \n";var head=document.querySelector("head");head.insertBefore(style,head.firstChild)})(window.WebComponents);(function(scope){window.Platform=scope})(window.WebComponents);</script><style shim-shadowdom="">html /deep/ [layout][horizontal],html /deep/ [layout][vertical]{display:-ms-flexbox;display:-webkit-flex;display:flex}html /deep/ [layout][horizontal][inline],html /deep/ [layout][vertical][inline]{display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-flex}html /deep/ [layout][horizontal]{-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}html /deep/ [layout][horizontal][reverse]{-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}html /deep/ [layout][vertical]{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}html /deep/ [layout][vertical][reverse]{-ms-flex-direction:column-reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}html /deep/ [layout][wrap]{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}html /deep/ [layout][wrap-reverse]{-ms-flex-wrap:wrap-reverse;-webkit-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}html /deep/ [flex]{-ms-flex:1 1 0;-webkit-flex:1;flex:1;-webkit-flex-basis:0;flex-basis:0}html /deep/ [vertical][layout]>[flex][auto-vertical],html /deep/ [vertical][layout]::shadow [flex][auto-vertical]{-ms-flex:1 1 auto;-webkit-flex-basis:auto;flex-basis:auto}html /deep/ [flex][auto]{-ms-flex:1 1 auto;-webkit-flex-basis:auto;flex-basis:auto}html /deep/ [flex][none]{-ms-flex:none;-webkit-flex:none;flex:none}html /deep/ [flex][one]{-ms-flex:1;-webkit-flex:1;flex:1}html /deep/ [flex][two]{-ms-flex:2;-webkit-flex:2;flex:2}html /deep/ [flex][three]{-ms-flex:3;-webkit-flex:3;flex:3}html /deep/ [flex][four]{-ms-flex:4;-webkit-flex:4;flex:4}html /deep/ [flex][five]{-ms-flex:5;-webkit-flex:5;flex:5}html /deep/ [flex][six]{-ms-flex:6;-webkit-flex:6;flex:6}html /deep/ [flex][seven]{-ms-flex:7;-webkit-flex:7;flex:7}html /deep/ [flex][eight]{-ms-flex:8;-webkit-flex:8;flex:8}html /deep/ [flex][nine]{-ms-flex:9;-webkit-flex:9;flex:9}html /deep/ [flex][ten]{-ms-flex:10;-webkit-flex:10;flex:10}html /deep/ [flex][eleven]{-ms-flex:11;-webkit-flex:11;flex:11}html /deep/ [flex][twelve]{-ms-flex:12;-webkit-flex:12;flex:12}html /deep/ [layout][start]{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}html /deep/ [layout][center],html /deep/ [layout][center-center]{-ms-flex-align:center;-webkit-align-items:center;align-items:center}html /deep/ [layout][end]{-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end}html /deep/ [layout][start-justified]{-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}html /deep/ [layout][center-justified],html /deep/ [layout][center-center]{-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}html /deep/ [layout][end-justified]{-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}html /deep/ [layout][around-justified]{-ms-flex-pack:distribute;-webkit-justify-content:space-around;justify-content:space-around}html /deep/ [layout][justified]{-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}html /deep/ [self-start]{-ms-align-self:flex-start;-webkit-align-self:flex-start;align-self:flex-start}html /deep/ [self-center]{-ms-align-self:center;-webkit-align-self:center;align-self:center}html /deep/ [self-end]{-ms-align-self:flex-end;-webkit-align-self:flex-end;align-self:flex-end}html /deep/ [self-stretch]{-ms-align-self:stretch;-webkit-align-self:stretch;align-self:stretch}html /deep/ [block]{display:block}html /deep/ [hidden]{display:none!important}html /deep/ [relative]{position:relative}html /deep/ [fit]{position:absolute;top:0;right:0;bottom:0;left:0}body[fullbleed]{margin:0;height:100vh}html /deep/ [segment],html /deep/ segment{display:block;position:relative;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;margin:1em .5em;padding:1em;background-color:#fff;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);border-radius:5px 5px 5px 5px}</style><script>window.PolymerGestures={};(function(scope){var HAS_FULL_PATH=false;var pathTest=document.createElement("meta");if(pathTest.createShadowRoot){var sr=pathTest.createShadowRoot();var s=document.createElement("span");sr.appendChild(s);pathTest.addEventListener("testpath",function(ev){if(ev.path){HAS_FULL_PATH=ev.path[0]===s}ev.stopPropagation()});var ev=new CustomEvent("testpath",{bubbles:true});document.head.appendChild(pathTest);s.dispatchEvent(ev);pathTest.parentNode.removeChild(pathTest);sr=s=null}pathTest=null;var target={shadow:function(inEl){if(inEl){return inEl.shadowRoot||inEl.webkitShadowRoot}},canTarget:function(shadow){return shadow&&Boolean(shadow.elementFromPoint)},targetingShadow:function(inEl){var s=this.shadow(inEl);if(this.canTarget(s)){return s}},olderShadow:function(shadow){var os=shadow.olderShadowRoot;if(!os){var se=shadow.querySelector("shadow");if(se){os=se.olderShadowRoot}}return os},allShadows:function(element){var shadows=[],s=this.shadow(element);while(s){shadows.push(s);s=this.olderShadow(s)}return shadows},searchRoot:function(inRoot,x,y){var t,st,sr,os;if(inRoot){t=inRoot.elementFromPoint(x,y);if(t){sr=this.targetingShadow(t)}else if(inRoot!==document){sr=this.olderShadow(inRoot)}return this.searchRoot(sr,x,y)||t}},owner:function(element){if(!element){return document}var s=element;while(s.parentNode){s=s.parentNode}if(s.nodeType!=Node.DOCUMENT_NODE&&s.nodeType!=Node.DOCUMENT_FRAGMENT_NODE){s=document}return s},findTarget:function(inEvent){if(HAS_FULL_PATH&&inEvent.path&&inEvent.path.length){return inEvent.path[0]}var x=inEvent.clientX,y=inEvent.clientY;var s=this.owner(inEvent.target);if(!s.elementFromPoint(x,y)){s=document}return this.searchRoot(s,x,y)},findTouchAction:function(inEvent){var n;if(HAS_FULL_PATH&&inEvent.path&&inEvent.path.length){var path=inEvent.path;for(var i=0;i<path.length;i++){n=path[i];if(n.nodeType===Node.ELEMENT_NODE&&n.hasAttribute("touch-action")){return n.getAttribute("touch-action")}}}else{n=inEvent.target;while(n){if(n.nodeType===Node.ELEMENT_NODE&&n.hasAttribute("touch-action")){return n.getAttribute("touch-action")}n=n.parentNode||n.host}}return"auto"},LCA:function(a,b){if(a===b){return a}if(a&&!b){return a}if(b&&!a){return b}if(!b&&!a){return document}if(a.contains&&a.contains(b)){return a}if(b.contains&&b.contains(a)){return b}var adepth=this.depth(a);var bdepth=this.depth(b);var d=adepth-bdepth;if(d>=0){a=this.walk(a,d)}else{b=this.walk(b,-d)}while(a&&b&&a!==b){a=a.parentNode||a.host;b=b.parentNode||b.host}return a},walk:function(n,u){for(var i=0;n&&i<u;i++){n=n.parentNode||n.host}return n},depth:function(n){var d=0;while(n){d++;n=n.parentNode||n.host}return d},deepContains:function(a,b){var common=this.LCA(a,b);return common===a},insideNode:function(node,x,y){var rect=node.getBoundingClientRect();return rect.left<=x&&x<=rect.right&&rect.top<=y&&y<=rect.bottom},path:function(event){var p;if(HAS_FULL_PATH&&event.path&&event.path.length){p=event.path}else{p=[];var n=this.findTarget(event);while(n){p.push(n);n=n.parentNode||n.host}}return p}};scope.targetFinding=target;scope.findTarget=target.findTarget.bind(target);scope.deepContains=target.deepContains.bind(target);scope.insideNode=target.insideNode})(window.PolymerGestures);(function(){function shadowSelector(v){return"html /deep/ "+selector(v)}function selector(v){return'[touch-action="'+v+'"]'}function rule(v){return"{ -ms-touch-action: "+v+"; touch-action: "+v+";}"}var attrib2css=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]},"manipulation"];var styles="";var hasTouchAction=typeof document.head.style.touchAction==="string";var hasShadowRoot=!window.ShadowDOMPolyfill&&document.head.createShadowRoot;if(hasTouchAction){attrib2css.forEach(function(r){if(String(r)===r){styles+=selector(r)+rule(r)+"\n";if(hasShadowRoot){styles+=shadowSelector(r)+rule(r)+"\n"}}else{styles+=r.selectors.map(selector)+rule(r.rule)+"\n";if(hasShadowRoot){styles+=r.selectors.map(shadowSelector)+rule(r.rule)+"\n"}}});var el=document.createElement("style");el.textContent=styles;document.head.appendChild(el)}})();(function(scope){var MOUSE_PROPS=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","pageX","pageY"];var MOUSE_DEFAULTS=[false,false,null,null,0,0,0,0,false,false,false,false,0,null,0,0];var NOP_FACTORY=function(){return function(){}};var eventFactory={preventTap:NOP_FACTORY,makeBaseEvent:function(inType,inDict){var e=document.createEvent("Event");e.initEvent(inType,inDict.bubbles||false,inDict.cancelable||false);e.preventTap=eventFactory.preventTap(e);return e},makeGestureEvent:function(inType,inDict){inDict=inDict||Object.create(null);var e=this.makeBaseEvent(inType,inDict);for(var i=0,keys=Object.keys(inDict),k;i<keys.length;i++){k=keys[i];e[k]=inDict[k]}return e},makePointerEvent:function(inType,inDict){inDict=inDict||Object.create(null);var e=this.makeBaseEvent(inType,inDict);for(var i=0,p;i<MOUSE_PROPS.length;i++){p=MOUSE_PROPS[i];e[p]=inDict[p]||MOUSE_DEFAULTS[i]}e.buttons=inDict.buttons||0;var pressure=0;if(inDict.pressure){pressure=inDict.pressure}else{pressure=e.buttons?.5:0}e.x=e.clientX;e.y=e.clientY;e.pointerId=inDict.pointerId||0;e.width=inDict.width||0;e.height=inDict.height||0;e.pressure=pressure;e.tiltX=inDict.tiltX||0;e.tiltY=inDict.tiltY||0;e.pointerType=inDict.pointerType||"";e.hwTimestamp=inDict.hwTimestamp||0;e.isPrimary=inDict.isPrimary||false;e._source=inDict._source||"";return e}};scope.eventFactory=eventFactory})(window.PolymerGestures);(function(scope){var USE_MAP=window.Map&&window.Map.prototype.forEach;var POINTERS_FN=function(){return this.size};function PointerMap(){if(USE_MAP){var m=new Map;m.pointers=POINTERS_FN;return m}else{this.keys=[];this.values=[]}}PointerMap.prototype={set:function(inId,inEvent){var i=this.keys.indexOf(inId);if(i>-1){this.values[i]=inEvent}else{this.keys.push(inId);this.values.push(inEvent)}},has:function(inId){return this.keys.indexOf(inId)>-1},"delete":function(inId){var i=this.keys.indexOf(inId);if(i>-1){this.keys.splice(i,1);this.values.splice(i,1)}},get:function(inId){var i=this.keys.indexOf(inId);return this.values[i]},clear:function(){this.keys.length=0;this.values.length=0},forEach:function(callback,thisArg){this.values.forEach(function(v,i){callback.call(thisArg,v,this.keys[i],this)},this)},pointers:function(){return this.keys.length}};scope.PointerMap=PointerMap})(window.PolymerGestures);(function(scope){var CLONE_PROPS=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which","pageX","pageY","timeStamp","preventTap","tapPrevented","_source"];var CLONE_DEFAULTS=[false,false,null,null,0,0,0,0,false,false,false,false,0,null,0,0,0,0,0,0,0,"",0,false,"",null,null,0,0,0,0,function(){},false];var HAS_SVG_INSTANCE=typeof SVGElementInstance!=="undefined";var eventFactory=scope.eventFactory;var currentGestures;var dispatcher={IS_IOS:false,pointermap:new scope.PointerMap,requiredGestures:new scope.PointerMap,eventMap:Object.create(null),eventSources:Object.create(null),eventSourceList:[],gestures:[],dependencyMap:{down:{listeners:0,index:-1},up:{listeners:0,index:-1}},gestureQueue:[],registerSource:function(name,source){var s=source;var newEvents=s.events;if(newEvents){newEvents.forEach(function(e){if(s[e]){this.eventMap[e]=s[e].bind(s)}},this);this.eventSources[name]=s;this.eventSourceList.push(s)}},registerGesture:function(name,source){var obj=Object.create(null);obj.listeners=0;obj.index=this.gestures.length;for(var i=0,g;i<source.exposes.length;i++){g=source.exposes[i].toLowerCase();this.dependencyMap[g]=obj}this.gestures.push(source)},register:function(element,initial){var l=this.eventSourceList.length;for(var i=0,es;i<l&&(es=this.eventSourceList[i]);i++){es.register.call(es,element,initial)}},unregister:function(element){var l=this.eventSourceList.length;for(var i=0,es;i<l&&(es=this.eventSourceList[i]);i++){es.unregister.call(es,element)}},down:function(inEvent){this.requiredGestures.set(inEvent.pointerId,currentGestures);this.fireEvent("down",inEvent)},move:function(inEvent){inEvent.type="move";this.fillGestureQueue(inEvent)},up:function(inEvent){this.fireEvent("up",inEvent);this.requiredGestures.delete(inEvent.pointerId)},cancel:function(inEvent){inEvent.tapPrevented=true;this.fireEvent("up",inEvent);this.requiredGestures.delete(inEvent.pointerId)},addGestureDependency:function(node,currentGestures){var gesturesWanted=node._pgEvents;if(gesturesWanted&&currentGestures){var gk=Object.keys(gesturesWanted);for(var i=0,r,ri,g;i<gk.length;i++){g=gk[i];if(gesturesWanted[g]>0){r=this.dependencyMap[g];ri=r?r.index:-1;currentGestures[ri]=true}}}},eventHandler:function(inEvent){var type=inEvent.type;if(type==="touchstart"||type==="mousedown"||type==="pointerdown"||type==="MSPointerDown"){if(!inEvent._handledByPG){currentGestures={}}if(this.IS_IOS){var ev=inEvent;if(type==="touchstart"){var ct=inEvent.changedTouches[0];ev={target:inEvent.target,clientX:ct.clientX,clientY:ct.clientY,path:inEvent.path}}var nodes=inEvent.path||scope.targetFinding.path(ev);for(var i=0,n;i<nodes.length;i++){n=nodes[i];this.addGestureDependency(n,currentGestures)}}else{this.addGestureDependency(inEvent.currentTarget,currentGestures)}}if(inEvent._handledByPG){return}var fn=this.eventMap&&this.eventMap[type];if(fn){fn(inEvent)}inEvent._handledByPG=true},listen:function(target,events){for(var i=0,l=events.length,e;i<l&&(e=events[i]);i++){this.addEvent(target,e)}},unlisten:function(target,events){for(var i=0,l=events.length,e;i<l&&(e=events[i]);i++){this.removeEvent(target,e)}},addEvent:function(target,eventName){target.addEventListener(eventName,this.boundHandler)},removeEvent:function(target,eventName){target.removeEventListener(eventName,this.boundHandler)},makeEvent:function(inType,inEvent){var e=eventFactory.makePointerEvent(inType,inEvent);e.preventDefault=inEvent.preventDefault;e.tapPrevented=inEvent.tapPrevented;e._target=e._target||inEvent.target;return e},fireEvent:function(inType,inEvent){var e=this.makeEvent(inType,inEvent);return this.dispatchEvent(e)},cloneEvent:function(inEvent){var eventCopy=Object.create(null),p;for(var i=0;i<CLONE_PROPS.length;i++){p=CLONE_PROPS[i];eventCopy[p]=inEvent[p]||CLONE_DEFAULTS[i];if(p==="target"||p==="relatedTarget"){if(HAS_SVG_INSTANCE&&eventCopy[p]instanceof SVGElementInstance){eventCopy[p]=eventCopy[p].correspondingUseElement}}}eventCopy.preventDefault=function(){inEvent.preventDefault()};return eventCopy},dispatchEvent:function(inEvent){var t=inEvent._target;if(t){t.dispatchEvent(inEvent);var clone=this.cloneEvent(inEvent);clone.target=t;this.fillGestureQueue(clone)}},gestureTrigger:function(){for(var i=0,e,rg;i<this.gestureQueue.length;i++){e=this.gestureQueue[i];rg=e._requiredGestures;if(rg){for(var j=0,g,fn;j<this.gestures.length;j++){if(rg[j]){g=this.gestures[j];fn=g[e.type];if(fn){fn.call(g,e)}}}}}this.gestureQueue.length=0},fillGestureQueue:function(ev){if(!this.gestureQueue.length){requestAnimationFrame(this.boundGestureTrigger)}ev._requiredGestures=this.requiredGestures.get(ev.pointerId);this.gestureQueue.push(ev)}};dispatcher.boundHandler=dispatcher.eventHandler.bind(dispatcher);dispatcher.boundGestureTrigger=dispatcher.gestureTrigger.bind(dispatcher);scope.dispatcher=dispatcher;scope.activateGesture=function(node,gesture){var g=gesture.toLowerCase();var dep=dispatcher.dependencyMap[g];if(dep){var recognizer=dispatcher.gestures[dep.index];if(!node._pgListeners){dispatcher.register(node);node._pgListeners=0}if(recognizer){var touchAction=recognizer.defaultActions&&recognizer.defaultActions[g];var actionNode;switch(node.nodeType){case Node.ELEMENT_NODE:actionNode=node;break;case Node.DOCUMENT_FRAGMENT_NODE:actionNode=node.host;break;default:actionNode=null;break}if(touchAction&&actionNode&&!actionNode.hasAttribute("touch-action")){actionNode.setAttribute("touch-action",touchAction)}}if(!node._pgEvents){node._pgEvents={}}node._pgEvents[g]=(node._pgEvents[g]||0)+1;node._pgListeners++}return Boolean(dep)};scope.addEventListener=function(node,gesture,handler,capture){if(handler){scope.activateGesture(node,gesture);node.addEventListener(gesture,handler,capture)}};scope.deactivateGesture=function(node,gesture){var g=gesture.toLowerCase();var dep=dispatcher.dependencyMap[g];if(dep){if(node._pgListeners>0){node._pgListeners--}if(node._pgListeners===0){dispatcher.unregister(node)}if(node._pgEvents){if(node._pgEvents[g]>0){node._pgEvents[g]--}else{node._pgEvents[g]=0}}}return Boolean(dep)};scope.removeEventListener=function(node,gesture,handler,capture){if(handler){scope.deactivateGesture(node,gesture);node.removeEventListener(gesture,handler,capture)}}})(window.PolymerGestures);(function(scope){var dispatcher=scope.dispatcher;var pointermap=dispatcher.pointermap;var DEDUP_DIST=25;var WHICH_TO_BUTTONS=[0,1,4,2];var CURRENT_BUTTONS=0;var HAS_BUTTONS=false;try{HAS_BUTTONS=new MouseEvent("test",{buttons:1}).buttons===1}catch(e){}var mouseEvents={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup"],exposes:["down","up","move"],register:function(target){dispatcher.listen(target,this.events)},unregister:function(target){if(target===document){return}dispatcher.unlisten(target,this.events)},lastTouches:[],isEventSimulatedFromTouch:function(inEvent){var lts=this.lastTouches;var x=inEvent.clientX,y=inEvent.clientY;for(var i=0,l=lts.length,t;i<l&&(t=lts[i]);i++){var dx=Math.abs(x-t.x),dy=Math.abs(y-t.y);if(dx<=DEDUP_DIST&&dy<=DEDUP_DIST){return true}}},prepareEvent:function(inEvent){var e=dispatcher.cloneEvent(inEvent);e.pointerId=this.POINTER_ID;e.isPrimary=true;e.pointerType=this.POINTER_TYPE;e._source="mouse";if(!HAS_BUTTONS){var type=inEvent.type;var bit=WHICH_TO_BUTTONS[inEvent.which]||0;if(type==="mousedown"){CURRENT_BUTTONS|=bit}else if(type==="mouseup"){CURRENT_BUTTONS&=~bit}e.buttons=CURRENT_BUTTONS}return e},mousedown:function(inEvent){if(!this.isEventSimulatedFromTouch(inEvent)){var p=pointermap.has(this.POINTER_ID);var e=this.prepareEvent(inEvent);e.target=scope.findTarget(inEvent);pointermap.set(this.POINTER_ID,e.target);dispatcher.down(e)}},mousemove:function(inEvent){if(!this.isEventSimulatedFromTouch(inEvent)){var target=pointermap.get(this.POINTER_ID);if(target){var e=this.prepareEvent(inEvent);e.target=target;if((HAS_BUTTONS?e.buttons:e.which)===0){if(!HAS_BUTTONS){CURRENT_BUTTONS=e.buttons=0}dispatcher.cancel(e);this.cleanupMouse(e.buttons)}else{dispatcher.move(e)}}}},mouseup:function(inEvent){if(!this.isEventSimulatedFromTouch(inEvent)){var e=this.prepareEvent(inEvent);e.relatedTarget=scope.findTarget(inEvent);e.target=pointermap.get(this.POINTER_ID);dispatcher.up(e);this.cleanupMouse(e.buttons)}},cleanupMouse:function(buttons){if(buttons===0){pointermap.delete(this.POINTER_ID)}}};scope.mouseEvents=mouseEvents})(window.PolymerGestures);(function(scope){var dispatcher=scope.dispatcher;var allShadows=scope.targetFinding.allShadows.bind(scope.targetFinding);var pointermap=dispatcher.pointermap;var touchMap=Array.prototype.map.call.bind(Array.prototype.map);var DEDUP_TIMEOUT=2500;var DEDUP_DIST=25;var CLICK_COUNT_TIMEOUT=200;var HYSTERESIS=20;var ATTRIB="touch-action";var HAS_TOUCH_ACTION=false;var touchEvents={IS_IOS:false,events:["touchstart","touchmove","touchend","touchcancel"],exposes:["down","up","move"],register:function(target,initial){if(this.IS_IOS?initial:!initial){dispatcher.listen(target,this.events)}},unregister:function(target){if(!this.IS_IOS){dispatcher.unlisten(target,this.events)}},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y"},touchActionToScrollType:function(touchAction){var t=touchAction;var st=this.scrollTypes;if(t===st.EMITTER){return"none"}else if(t===st.XSCROLLER){return"X"}else if(t===st.YSCROLLER){return"Y"}else{return"XY"}},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(inTouch){return this.firstTouch===inTouch.identifier},setPrimaryTouch:function(inTouch){if(pointermap.pointers()===0||pointermap.pointers()===1&&pointermap.has(1)){this.firstTouch=inTouch.identifier;this.firstXY={X:inTouch.clientX,Y:inTouch.clientY};this.firstTarget=inTouch.target;this.scrolling=null;this.cancelResetClickCount()}},removePrimaryPointer:function(inPointer){if(inPointer.isPrimary){this.firstTouch=null;this.firstXY=null;this.resetClickCount()}},clickCount:0,resetId:null,resetClickCount:function(){var fn=function(){this.clickCount=0;this.resetId=null}.bind(this);this.resetId=setTimeout(fn,CLICK_COUNT_TIMEOUT)},cancelResetClickCount:function(){if(this.resetId){clearTimeout(this.resetId)}},typeToButtons:function(type){var ret=0;if(type==="touchstart"||type==="touchmove"){ret=1}return ret},findTarget:function(touch,id){if(this.currentTouchEvent.type==="touchstart"){if(this.isPrimaryTouch(touch)){var fastPath={clientX:touch.clientX,clientY:touch.clientY,path:this.currentTouchEvent.path,target:this.currentTouchEvent.target};return scope.findTarget(fastPath)}else{return scope.findTarget(touch)}}return pointermap.get(id)},touchToPointer:function(inTouch){var cte=this.currentTouchEvent;var e=dispatcher.cloneEvent(inTouch);var id=e.pointerId=inTouch.identifier+2;e.target=this.findTarget(inTouch,id);e.bubbles=true;e.cancelable=true;e.detail=this.clickCount;e.buttons=this.typeToButtons(cte.type);e.width=inTouch.webkitRadiusX||inTouch.radiusX||0;e.height=inTouch.webkitRadiusY||inTouch.radiusY||0;e.pressure=inTouch.webkitForce||inTouch.force||.5;e.isPrimary=this.isPrimaryTouch(inTouch);e.pointerType=this.POINTER_TYPE;e._source="touch";var self=this;e.preventDefault=function(){self.scrolling=false;self.firstXY=null;cte.preventDefault()};return e},processTouches:function(inEvent,inFunction){var tl=inEvent.changedTouches;this.currentTouchEvent=inEvent;for(var i=0,t,p;i<tl.length;i++){t=tl[i];p=this.touchToPointer(t);if(inEvent.type==="touchstart"){pointermap.set(p.pointerId,p.target)}if(pointermap.has(p.pointerId)){inFunction.call(this,p)}if(inEvent.type==="touchend"||inEvent._cancel){this.cleanUpPointer(p)}}},shouldScroll:function(inEvent){if(this.firstXY){var ret;var touchAction=scope.targetFinding.findTouchAction(inEvent);var scrollAxis=this.touchActionToScrollType(touchAction);if(scrollAxis==="none"){ret=false}else if(scrollAxis==="XY"){ret=true}else{var t=inEvent.changedTouches[0];var a=scrollAxis;var oa=scrollAxis==="Y"?"X":"Y";var da=Math.abs(t["client"+a]-this.firstXY[a]);var doa=Math.abs(t["client"+oa]-this.firstXY[oa]);ret=da>=doa}return ret}},findTouch:function(inTL,inId){for(var i=0,l=inTL.length,t;i<l&&(t=inTL[i]);i++){if(t.identifier===inId){return true}}},vacuumTouches:function(inEvent){var tl=inEvent.touches;if(pointermap.pointers()>=tl.length){var d=[];pointermap.forEach(function(value,key){if(key!==1&&!this.findTouch(tl,key-2)){var p=value;d.push(p)}},this);d.forEach(function(p){this.cancel(p);pointermap.delete(p.pointerId)})}},touchstart:function(inEvent){this.vacuumTouches(inEvent);this.setPrimaryTouch(inEvent.changedTouches[0]);this.dedupSynthMouse(inEvent);if(!this.scrolling){this.clickCount++;this.processTouches(inEvent,this.down)}},down:function(inPointer){dispatcher.down(inPointer)},touchmove:function(inEvent){if(HAS_TOUCH_ACTION){if(inEvent.cancelable){this.processTouches(inEvent,this.move)}}else{if(!this.scrolling){if(this.scrolling===null&&this.shouldScroll(inEvent)){this.scrolling=true}else{this.scrolling=false;inEvent.preventDefault();this.processTouches(inEvent,this.move)}}else if(this.firstXY){var t=inEvent.changedTouches[0];var dx=t.clientX-this.firstXY.X;var dy=t.clientY-this.firstXY.Y;var dd=Math.sqrt(dx*dx+dy*dy);if(dd>=HYSTERESIS){this.touchcancel(inEvent);this.scrolling=true;this.firstXY=null}}}},move:function(inPointer){dispatcher.move(inPointer)},touchend:function(inEvent){this.dedupSynthMouse(inEvent);this.processTouches(inEvent,this.up)},up:function(inPointer){inPointer.relatedTarget=scope.findTarget(inPointer);dispatcher.up(inPointer)},cancel:function(inPointer){dispatcher.cancel(inPointer)},touchcancel:function(inEvent){inEvent._cancel=true;this.processTouches(inEvent,this.cancel)},cleanUpPointer:function(inPointer){pointermap["delete"](inPointer.pointerId);this.removePrimaryPointer(inPointer)},dedupSynthMouse:function(inEvent){var lts=scope.mouseEvents.lastTouches;var t=inEvent.changedTouches[0];if(this.isPrimaryTouch(t)){var lt={x:t.clientX,y:t.clientY};lts.push(lt);var fn=function(lts,lt){var i=lts.indexOf(lt);if(i>-1){lts.splice(i,1)}}.bind(null,lts,lt);setTimeout(fn,DEDUP_TIMEOUT)}}};var STOP_PROP_FN=Event.prototype.stopImmediatePropagation||Event.prototype.stopPropagation;document.addEventListener("click",function(ev){var x=ev.clientX,y=ev.clientY;var closeTo=function(touch){var dx=Math.abs(x-touch.x),dy=Math.abs(y-touch.y);return dx<=DEDUP_DIST&&dy<=DEDUP_DIST};var wasTouched=scope.mouseEvents.lastTouches.some(closeTo);var path=scope.targetFinding.path(ev);if(wasTouched){for(var i=0;i<path.length;i++){if(path[i]===touchEvents.firstTarget){return}}ev.preventDefault();STOP_PROP_FN.call(ev)}},true);scope.touchEvents=touchEvents})(window.PolymerGestures);(function(scope){var dispatcher=scope.dispatcher;var pointermap=dispatcher.pointermap;var HAS_BITMAP_TYPE=window.MSPointerEvent&&typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE==="number";var msEvents={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerCancel"],register:function(target){dispatcher.listen(target,this.events)},unregister:function(target){if(target===document){return}dispatcher.unlisten(target,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(inEvent){var e=inEvent;e=dispatcher.cloneEvent(inEvent);if(HAS_BITMAP_TYPE){e.pointerType=this.POINTER_TYPES[inEvent.pointerType]}e._source="ms";return e},cleanup:function(id){pointermap["delete"](id)},MSPointerDown:function(inEvent){var e=this.prepareEvent(inEvent);e.target=scope.findTarget(inEvent);pointermap.set(inEvent.pointerId,e.target);dispatcher.down(e)},MSPointerMove:function(inEvent){var target=pointermap.get(inEvent.pointerId);if(target){var e=this.prepareEvent(inEvent);e.target=target;dispatcher.move(e)}},MSPointerUp:function(inEvent){var e=this.prepareEvent(inEvent);e.relatedTarget=scope.findTarget(inEvent);e.target=pointermap.get(e.pointerId);dispatcher.up(e);this.cleanup(inEvent.pointerId)},MSPointerCancel:function(inEvent){var e=this.prepareEvent(inEvent);e.relatedTarget=scope.findTarget(inEvent);e.target=pointermap.get(e.pointerId);dispatcher.cancel(e);this.cleanup(inEvent.pointerId)}};scope.msEvents=msEvents})(window.PolymerGestures);(function(scope){var dispatcher=scope.dispatcher;var pointermap=dispatcher.pointermap;var pointerEvents={events:["pointerdown","pointermove","pointerup","pointercancel"],prepareEvent:function(inEvent){var e=dispatcher.cloneEvent(inEvent);e._source="pointer";return e},register:function(target){dispatcher.listen(target,this.events)},unregister:function(target){if(target===document){return}dispatcher.unlisten(target,this.events)},cleanup:function(id){pointermap["delete"](id)},pointerdown:function(inEvent){var e=this.prepareEvent(inEvent);e.target=scope.findTarget(inEvent);pointermap.set(e.pointerId,e.target);dispatcher.down(e)},pointermove:function(inEvent){var target=pointermap.get(inEvent.pointerId);if(target){var e=this.prepareEvent(inEvent);e.target=target;dispatcher.move(e)}},pointerup:function(inEvent){var e=this.prepareEvent(inEvent);e.relatedTarget=scope.findTarget(inEvent);e.target=pointermap.get(e.pointerId);dispatcher.up(e);this.cleanup(inEvent.pointerId)},pointercancel:function(inEvent){var e=this.prepareEvent(inEvent);e.relatedTarget=scope.findTarget(inEvent);e.target=pointermap.get(e.pointerId);dispatcher.cancel(e);this.cleanup(inEvent.pointerId)}};scope.pointerEvents=pointerEvents})(window.PolymerGestures);(function(scope){var dispatcher=scope.dispatcher;var nav=window.navigator;if(window.PointerEvent){dispatcher.registerSource("pointer",scope.pointerEvents)}else if(nav.msPointerEnabled){dispatcher.registerSource("ms",scope.msEvents)}else{dispatcher.registerSource("mouse",scope.mouseEvents);if(window.ontouchstart!==undefined){dispatcher.registerSource("touch",scope.touchEvents)}}var ua=navigator.userAgent;var IS_IOS=ua.match(/iPad|iPhone|iPod/)&&"ontouchstart"in window;dispatcher.IS_IOS=IS_IOS;scope.touchEvents.IS_IOS=IS_IOS;dispatcher.register(document,true)})(window.PolymerGestures);(function(scope){var dispatcher=scope.dispatcher;var eventFactory=scope.eventFactory;var pointermap=new scope.PointerMap;var track={events:["down","move","up"],exposes:["trackstart","track","trackx","tracky","trackend"],defaultActions:{track:"none",trackx:"pan-y",tracky:"pan-x"},WIGGLE_THRESHOLD:4,clampDir:function(inDelta){return inDelta>0?1:-1},calcPositionDelta:function(inA,inB){var x=0,y=0;if(inA&&inB){x=inB.pageX-inA.pageX;y=inB.pageY-inA.pageY}return{x:x,y:y}},fireTrack:function(inType,inEvent,inTrackingData){var t=inTrackingData;var d=this.calcPositionDelta(t.downEvent,inEvent);var dd=this.calcPositionDelta(t.lastMoveEvent,inEvent);if(dd.x){t.xDirection=this.clampDir(dd.x)}else if(inType==="trackx"){return}if(dd.y){t.yDirection=this.clampDir(dd.y)}else if(inType==="tracky"){return}var gestureProto={bubbles:true,cancelable:true,trackInfo:t.trackInfo,relatedTarget:inEvent.relatedTarget,pointerType:inEvent.pointerType,pointerId:inEvent.pointerId,_source:"track"};if(inType!=="tracky"){gestureProto.x=inEvent.x;gestureProto.dx=d.x;gestureProto.ddx=dd.x;gestureProto.clientX=inEvent.clientX;gestureProto.pageX=inEvent.pageX;gestureProto.screenX=inEvent.screenX;gestureProto.xDirection=t.xDirection}if(inType!=="trackx"){gestureProto.dy=d.y;gestureProto.ddy=dd.y;gestureProto.y=inEvent.y;gestureProto.clientY=inEvent.clientY;gestureProto.pageY=inEvent.pageY;gestureProto.screenY=inEvent.screenY;gestureProto.yDirection=t.yDirection}var e=eventFactory.makeGestureEvent(inType,gestureProto);t.downTarget.dispatchEvent(e)},down:function(inEvent){if(inEvent.isPrimary&&(inEvent.pointerType==="mouse"?inEvent.buttons===1:true)){var p={downEvent:inEvent,downTarget:inEvent.target,trackInfo:{},lastMoveEvent:null,xDirection:0,yDirection:0,tracking:false};pointermap.set(inEvent.pointerId,p)}},move:function(inEvent){var p=pointermap.get(inEvent.pointerId);if(p){if(!p.tracking){var d=this.calcPositionDelta(p.downEvent,inEvent);var move=d.x*d.x+d.y*d.y;if(move>this.WIGGLE_THRESHOLD){p.tracking=true;p.lastMoveEvent=p.downEvent;this.fireTrack("trackstart",inEvent,p)}}if(p.tracking){this.fireTrack("track",inEvent,p);this.fireTrack("trackx",inEvent,p);this.fireTrack("tracky",inEvent,p)}p.lastMoveEvent=inEvent}},up:function(inEvent){var p=pointermap.get(inEvent.pointerId);if(p){if(p.tracking){this.fireTrack("trackend",inEvent,p)}pointermap.delete(inEvent.pointerId)}}};dispatcher.registerGesture("track",track)})(window.PolymerGestures);(function(scope){var dispatcher=scope.dispatcher;var eventFactory=scope.eventFactory;var hold={HOLD_DELAY:200,WIGGLE_THRESHOLD:16,events:["down","move","up"],exposes:["hold","holdpulse","release"],heldPointer:null,holdJob:null,pulse:function(){var hold=Date.now()-this.heldPointer.timeStamp;var type=this.held?"holdpulse":"hold";this.fireHold(type,hold);this.held=true},cancel:function(){clearInterval(this.holdJob);if(this.held){this.fireHold("release")}this.held=false;this.heldPointer=null;this.target=null;this.holdJob=null},down:function(inEvent){if(inEvent.isPrimary&&!this.heldPointer){this.heldPointer=inEvent;this.target=inEvent.target;this.holdJob=setInterval(this.pulse.bind(this),this.HOLD_DELAY)}},up:function(inEvent){if(this.heldPointer&&this.heldPointer.pointerId===inEvent.pointerId){this.cancel()}},move:function(inEvent){if(this.heldPointer&&this.heldPointer.pointerId===inEvent.pointerId){var x=inEvent.clientX-this.heldPointer.clientX;var y=inEvent.clientY-this.heldPointer.clientY;if(x*x+y*y>this.WIGGLE_THRESHOLD){this.cancel()}}},fireHold:function(inType,inHoldTime){var p={bubbles:true,cancelable:true,pointerType:this.heldPointer.pointerType,pointerId:this.heldPointer.pointerId,x:this.heldPointer.clientX,y:this.heldPointer.clientY,_source:"hold"};if(inHoldTime){p.holdTime=inHoldTime}var e=eventFactory.makeGestureEvent(inType,p);this.target.dispatchEvent(e)}};dispatcher.registerGesture("hold",hold)})(window.PolymerGestures);(function(scope){var dispatcher=scope.dispatcher;var eventFactory=scope.eventFactory;var pointermap=new scope.PointerMap;var tap={events:["down","up"],exposes:["tap"],down:function(inEvent){if(inEvent.isPrimary&&!inEvent.tapPrevented){pointermap.set(inEvent.pointerId,{target:inEvent.target,buttons:inEvent.buttons,x:inEvent.clientX,y:inEvent.clientY})}},shouldTap:function(e,downState){var tap=true;if(e.pointerType==="mouse"){tap=e.buttons^1&&downState.buttons&1}return tap&&!e.tapPrevented},up:function(inEvent){var start=pointermap.get(inEvent.pointerId);if(start&&this.shouldTap(inEvent,start)){var t=scope.targetFinding.LCA(start.target,inEvent.relatedTarget);if(t){var e=eventFactory.makeGestureEvent("tap",{bubbles:true,cancelable:true,x:inEvent.clientX,y:inEvent.clientY,detail:inEvent.detail,pointerType:inEvent.pointerType,pointerId:inEvent.pointerId,altKey:inEvent.altKey,ctrlKey:inEvent.ctrlKey,metaKey:inEvent.metaKey,shiftKey:inEvent.shiftKey,_source:"tap"});t.dispatchEvent(e)}}pointermap.delete(inEvent.pointerId)}};eventFactory.preventTap=function(e){return function(){e.tapPrevented=true;pointermap.delete(e.pointerId)}};dispatcher.registerGesture("tap",tap)})(window.PolymerGestures);(function(scope){var dispatcher=scope.dispatcher;var eventFactory=scope.eventFactory;var pointermap=new scope.PointerMap;var RAD_TO_DEG=180/Math.PI;var pinch={events:["down","up","move","cancel"],exposes:["pinch","rotate"],defaultActions:{pinch:"none",rotate:"none"},reference:{},down:function(inEvent){pointermap.set(inEvent.pointerId,inEvent);if(pointermap.pointers()==2){var points=this.calcChord();var angle=this.calcAngle(points);this.reference={angle:angle,diameter:points.diameter,target:scope.targetFinding.LCA(points.a.target,points.b.target)}}},up:function(inEvent){var p=pointermap.get(inEvent.pointerId);if(p){pointermap.delete(inEvent.pointerId)}},move:function(inEvent){if(pointermap.has(inEvent.pointerId)){pointermap.set(inEvent.pointerId,inEvent);if(pointermap.pointers()>1){this.calcPinchRotate()}}},cancel:function(inEvent){this.up(inEvent)},firePinch:function(diameter,points){var zoom=diameter/this.reference.diameter;var e=eventFactory.makeGestureEvent("pinch",{bubbles:true,cancelable:true,scale:zoom,centerX:points.center.x,centerY:points.center.y,_source:"pinch"});this.reference.target.dispatchEvent(e)},fireRotate:function(angle,points){var diff=Math.round((angle-this.reference.angle)%360);var e=eventFactory.makeGestureEvent("rotate",{bubbles:true,cancelable:true,angle:diff,centerX:points.center.x,centerY:points.center.y,_source:"pinch"});this.reference.target.dispatchEvent(e)},calcPinchRotate:function(){var points=this.calcChord();var diameter=points.diameter;var angle=this.calcAngle(points);if(diameter!=this.reference.diameter){this.firePinch(diameter,points)}if(angle!=this.reference.angle){this.fireRotate(angle,points)}},calcChord:function(){var pointers=[];pointermap.forEach(function(p){pointers.push(p)});var dist=0;var points={a:pointers[0],b:pointers[1]};var x,y,d;for(var i=0;i<pointers.length;i++){var a=pointers[i];for(var j=i+1;j<pointers.length;j++){var b=pointers[j];x=Math.abs(a.clientX-b.clientX);y=Math.abs(a.clientY-b.clientY);d=x+y;if(d>dist){dist=d;points={a:a,b:b}}}}x=Math.abs(points.a.clientX+points.b.clientX)/2;y=Math.abs(points.a.clientY+points.b.clientY)/2;points.center={x:x,y:y};points.diameter=dist;return points},calcAngle:function(points){var x=points.a.clientX-points.b.clientX;var y=points.a.clientY-points.b.clientY;return(360+Math.atan2(y,x)*RAD_TO_DEG)%360
-}};dispatcher.registerGesture("pinch",pinch)})(window.PolymerGestures);(function(global){"use strict";var Token,TokenName,Syntax,Messages,source,index,length,delegate,lookahead,state;Token={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8};TokenName={};TokenName[Token.BooleanLiteral]="Boolean";TokenName[Token.EOF]="<end>";TokenName[Token.Identifier]="Identifier";TokenName[Token.Keyword]="Keyword";TokenName[Token.NullLiteral]="Null";TokenName[Token.NumericLiteral]="Numeric";TokenName[Token.Punctuator]="Punctuator";TokenName[Token.StringLiteral]="String";Syntax={ArrayExpression:"ArrayExpression",BinaryExpression:"BinaryExpression",CallExpression:"CallExpression",ConditionalExpression:"ConditionalExpression",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",Identifier:"Identifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ThisExpression:"ThisExpression",UnaryExpression:"UnaryExpression"};Messages={UnexpectedToken:"Unexpected token %0",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared"};function assert(condition,message){if(!condition){throw new Error("ASSERT: "+message)}}function isDecimalDigit(ch){return ch>=48&&ch<=57}function isWhiteSpace(ch){return ch===32||ch===9||ch===11||ch===12||ch===160||ch>=5760&&" ᠎              ".indexOf(String.fromCharCode(ch))>0}function isLineTerminator(ch){return ch===10||ch===13||ch===8232||ch===8233}function isIdentifierStart(ch){return ch===36||ch===95||ch>=65&&ch<=90||ch>=97&&ch<=122}function isIdentifierPart(ch){return ch===36||ch===95||ch>=65&&ch<=90||ch>=97&&ch<=122||ch>=48&&ch<=57}function isKeyword(id){return id==="this"}function skipWhitespace(){while(index<length&&isWhiteSpace(source.charCodeAt(index))){++index}}function getIdentifier(){var start,ch;start=index++;while(index<length){ch=source.charCodeAt(index);if(isIdentifierPart(ch)){++index}else{break}}return source.slice(start,index)}function scanIdentifier(){var start,id,type;start=index;id=getIdentifier();if(id.length===1){type=Token.Identifier}else if(isKeyword(id)){type=Token.Keyword}else if(id==="null"){type=Token.NullLiteral}else if(id==="true"||id==="false"){type=Token.BooleanLiteral}else{type=Token.Identifier}return{type:type,value:id,range:[start,index]}}function scanPunctuator(){var start=index,code=source.charCodeAt(index),code2,ch1=source[index],ch2;switch(code){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:++index;return{type:Token.Punctuator,value:String.fromCharCode(code),range:[start,index]};default:code2=source.charCodeAt(index+1);if(code2===61){switch(code){case 37:case 38:case 42:case 43:case 45:case 47:case 60:case 62:case 124:index+=2;return{type:Token.Punctuator,value:String.fromCharCode(code)+String.fromCharCode(code2),range:[start,index]};case 33:case 61:index+=2;if(source.charCodeAt(index)===61){++index}return{type:Token.Punctuator,value:source.slice(start,index),range:[start,index]};default:break}}break}ch2=source[index+1];if(ch1===ch2&&"&|".indexOf(ch1)>=0){index+=2;return{type:Token.Punctuator,value:ch1+ch2,range:[start,index]}}if("<>=!+-*%&|^/".indexOf(ch1)>=0){++index;return{type:Token.Punctuator,value:ch1,range:[start,index]}}throwError({},Messages.UnexpectedToken,"ILLEGAL")}function scanNumericLiteral(){var number,start,ch;ch=source[index];assert(isDecimalDigit(ch.charCodeAt(0))||ch===".","Numeric literal must start with a decimal digit or a decimal point");start=index;number="";if(ch!=="."){number=source[index++];ch=source[index];if(number==="0"){if(ch&&isDecimalDigit(ch.charCodeAt(0))){throwError({},Messages.UnexpectedToken,"ILLEGAL")}}while(isDecimalDigit(source.charCodeAt(index))){number+=source[index++]}ch=source[index]}if(ch==="."){number+=source[index++];while(isDecimalDigit(source.charCodeAt(index))){number+=source[index++]}ch=source[index]}if(ch==="e"||ch==="E"){number+=source[index++];ch=source[index];if(ch==="+"||ch==="-"){number+=source[index++]}if(isDecimalDigit(source.charCodeAt(index))){while(isDecimalDigit(source.charCodeAt(index))){number+=source[index++]}}else{throwError({},Messages.UnexpectedToken,"ILLEGAL")}}if(isIdentifierStart(source.charCodeAt(index))){throwError({},Messages.UnexpectedToken,"ILLEGAL")}return{type:Token.NumericLiteral,value:parseFloat(number),range:[start,index]}}function scanStringLiteral(){var str="",quote,start,ch,octal=false;quote=source[index];assert(quote==="'"||quote==='"',"String literal must starts with a quote");start=index;++index;while(index<length){ch=source[index++];if(ch===quote){quote="";break}else if(ch==="\\"){ch=source[index++];if(!ch||!isLineTerminator(ch.charCodeAt(0))){switch(ch){case"n":str+="\n";break;case"r":str+="\r";break;case"t":str+="	";break;case"b":str+="\b";break;case"f":str+="\f";break;case"v":str+="";break;default:str+=ch;break}}else{if(ch==="\r"&&source[index]==="\n"){++index}}}else if(isLineTerminator(ch.charCodeAt(0))){break}else{str+=ch}}if(quote!==""){throwError({},Messages.UnexpectedToken,"ILLEGAL")}return{type:Token.StringLiteral,value:str,octal:octal,range:[start,index]}}function isIdentifierName(token){return token.type===Token.Identifier||token.type===Token.Keyword||token.type===Token.BooleanLiteral||token.type===Token.NullLiteral}function advance(){var ch;skipWhitespace();if(index>=length){return{type:Token.EOF,range:[index,index]}}ch=source.charCodeAt(index);if(ch===40||ch===41||ch===58){return scanPunctuator()}if(ch===39||ch===34){return scanStringLiteral()}if(isIdentifierStart(ch)){return scanIdentifier()}if(ch===46){if(isDecimalDigit(source.charCodeAt(index+1))){return scanNumericLiteral()}return scanPunctuator()}if(isDecimalDigit(ch)){return scanNumericLiteral()}return scanPunctuator()}function lex(){var token;token=lookahead;index=token.range[1];lookahead=advance();index=token.range[1];return token}function peek(){var pos;pos=index;lookahead=advance();index=pos}function throwError(token,messageFormat){var error,args=Array.prototype.slice.call(arguments,2),msg=messageFormat.replace(/%(\d)/g,function(whole,index){assert(index<args.length,"Message reference must be in range");return args[index]});error=new Error(msg);error.index=index;error.description=msg;throw error}function throwUnexpected(token){throwError(token,Messages.UnexpectedToken,token.value)}function expect(value){var token=lex();if(token.type!==Token.Punctuator||token.value!==value){throwUnexpected(token)}}function match(value){return lookahead.type===Token.Punctuator&&lookahead.value===value}function matchKeyword(keyword){return lookahead.type===Token.Keyword&&lookahead.value===keyword}function consumeSemicolon(){if(source.charCodeAt(index)===59){lex();return}skipWhitespace();if(match(";")){lex();return}if(lookahead.type!==Token.EOF&&!match("}")){throwUnexpected(lookahead)}}function parseArrayInitialiser(){var elements=[];expect("[");while(!match("]")){if(match(",")){lex();elements.push(null)}else{elements.push(parseExpression());if(!match("]")){expect(",")}}}expect("]");return delegate.createArrayExpression(elements)}function parseObjectPropertyKey(){var token;skipWhitespace();token=lex();if(token.type===Token.StringLiteral||token.type===Token.NumericLiteral){return delegate.createLiteral(token)}return delegate.createIdentifier(token.value)}function parseObjectProperty(){var token,key;token=lookahead;skipWhitespace();if(token.type===Token.EOF||token.type===Token.Punctuator){throwUnexpected(token)}key=parseObjectPropertyKey();expect(":");return delegate.createProperty("init",key,parseExpression())}function parseObjectInitialiser(){var properties=[];expect("{");while(!match("}")){properties.push(parseObjectProperty());if(!match("}")){expect(",")}}expect("}");return delegate.createObjectExpression(properties)}function parseGroupExpression(){var expr;expect("(");expr=parseExpression();expect(")");return expr}function parsePrimaryExpression(){var type,token,expr;if(match("(")){return parseGroupExpression()}type=lookahead.type;if(type===Token.Identifier){expr=delegate.createIdentifier(lex().value)}else if(type===Token.StringLiteral||type===Token.NumericLiteral){expr=delegate.createLiteral(lex())}else if(type===Token.Keyword){if(matchKeyword("this")){lex();expr=delegate.createThisExpression()}}else if(type===Token.BooleanLiteral){token=lex();token.value=token.value==="true";expr=delegate.createLiteral(token)}else if(type===Token.NullLiteral){token=lex();token.value=null;expr=delegate.createLiteral(token)}else if(match("[")){expr=parseArrayInitialiser()}else if(match("{")){expr=parseObjectInitialiser()}if(expr){return expr}throwUnexpected(lex())}function parseArguments(){var args=[];expect("(");if(!match(")")){while(index<length){args.push(parseExpression());if(match(")")){break}expect(",")}}expect(")");return args}function parseNonComputedProperty(){var token;token=lex();if(!isIdentifierName(token)){throwUnexpected(token)}return delegate.createIdentifier(token.value)}function parseNonComputedMember(){expect(".");return parseNonComputedProperty()}function parseComputedMember(){var expr;expect("[");expr=parseExpression();expect("]");return expr}function parseLeftHandSideExpression(){var expr,args,property;expr=parsePrimaryExpression();while(true){if(match("[")){property=parseComputedMember();expr=delegate.createMemberExpression("[",expr,property)}else if(match(".")){property=parseNonComputedMember();expr=delegate.createMemberExpression(".",expr,property)}else if(match("(")){args=parseArguments();expr=delegate.createCallExpression(expr,args)}else{break}}return expr}var parsePostfixExpression=parseLeftHandSideExpression;function parseUnaryExpression(){var token,expr;if(lookahead.type!==Token.Punctuator&&lookahead.type!==Token.Keyword){expr=parsePostfixExpression()}else if(match("+")||match("-")||match("!")){token=lex();expr=parseUnaryExpression();expr=delegate.createUnaryExpression(token.value,expr)}else if(matchKeyword("delete")||matchKeyword("void")||matchKeyword("typeof")){throwError({},Messages.UnexpectedToken)}else{expr=parsePostfixExpression()}return expr}function binaryPrecedence(token){var prec=0;if(token.type!==Token.Punctuator&&token.type!==Token.Keyword){return 0}switch(token.value){case"||":prec=1;break;case"&&":prec=2;break;case"==":case"!=":case"===":case"!==":prec=6;break;case"<":case">":case"<=":case">=":case"instanceof":prec=7;break;case"in":prec=7;break;case"+":case"-":prec=9;break;case"*":case"/":case"%":prec=11;break;default:break}return prec}function parseBinaryExpression(){var expr,token,prec,stack,right,operator,left,i;left=parseUnaryExpression();token=lookahead;prec=binaryPrecedence(token);if(prec===0){return left}token.prec=prec;lex();right=parseUnaryExpression();stack=[left,token,right];while((prec=binaryPrecedence(lookahead))>0){while(stack.length>2&&prec<=stack[stack.length-2].prec){right=stack.pop();operator=stack.pop().value;left=stack.pop();expr=delegate.createBinaryExpression(operator,left,right);stack.push(expr)}token=lex();token.prec=prec;stack.push(token);expr=parseUnaryExpression();stack.push(expr)}i=stack.length-1;expr=stack[i];while(i>1){expr=delegate.createBinaryExpression(stack[i-1].value,stack[i-2],expr);i-=2}return expr}function parseConditionalExpression(){var expr,consequent,alternate;expr=parseBinaryExpression();if(match("?")){lex();consequent=parseConditionalExpression();expect(":");alternate=parseConditionalExpression();expr=delegate.createConditionalExpression(expr,consequent,alternate)}return expr}var parseExpression=parseConditionalExpression;function parseFilter(){var identifier,args;identifier=lex();if(identifier.type!==Token.Identifier){throwUnexpected(identifier)}args=match("(")?parseArguments():[];return delegate.createFilter(identifier.value,args)}function parseFilters(){while(match("|")){lex();parseFilter()}}function parseTopLevel(){skipWhitespace();peek();var expr=parseExpression();if(expr){if(lookahead.value===","||lookahead.value=="in"&&expr.type===Syntax.Identifier){parseInExpression(expr)}else{parseFilters();if(lookahead.value==="as"){parseAsExpression(expr)}else{delegate.createTopLevel(expr)}}}if(lookahead.type!==Token.EOF){throwUnexpected(lookahead)}}function parseAsExpression(expr){lex();var identifier=lex().value;delegate.createAsExpression(expr,identifier)}function parseInExpression(identifier){var indexName;if(lookahead.value===","){lex();if(lookahead.type!==Token.Identifier)throwUnexpected(lookahead);indexName=lex().value}lex();var expr=parseExpression();parseFilters();delegate.createInExpression(identifier.name,indexName,expr)}function parse(code,inDelegate){delegate=inDelegate;source=code;index=0;length=source.length;lookahead=null;state={labelSet:{}};return parseTopLevel()}global.esprima={parse:parse}})(this);(function(global){"use strict";function prepareBinding(expressionText,name,node,filterRegistry){var expression;try{expression=getExpression(expressionText);if(expression.scopeIdent&&(node.nodeType!==Node.ELEMENT_NODE||node.tagName!=="TEMPLATE"||name!=="bind"&&name!=="repeat")){throw Error("as and in can only be used within <template bind/repeat>")}}catch(ex){console.error("Invalid expression syntax: "+expressionText,ex);return}return function(model,node,oneTime){var binding=expression.getBinding(model,filterRegistry,oneTime);if(expression.scopeIdent&&binding){node.polymerExpressionScopeIdent_=expression.scopeIdent;if(expression.indexIdent)node.polymerExpressionIndexIdent_=expression.indexIdent}return binding}}var expressionParseCache=Object.create(null);function getExpression(expressionText){var expression=expressionParseCache[expressionText];if(!expression){var delegate=new ASTDelegate;esprima.parse(expressionText,delegate);expression=new Expression(delegate);expressionParseCache[expressionText]=expression}return expression}function Literal(value){this.value=value;this.valueFn_=undefined}Literal.prototype={valueFn:function(){if(!this.valueFn_){var value=this.value;this.valueFn_=function(){return value}}return this.valueFn_}};function IdentPath(name){this.name=name;this.path=Path.get(name)}IdentPath.prototype={valueFn:function(){if(!this.valueFn_){var name=this.name;var path=this.path;this.valueFn_=function(model,observer){if(observer)observer.addPath(model,path);return path.getValueFrom(model)}}return this.valueFn_},setValue:function(model,newValue){if(this.path.length==1);model=findScope(model,this.path[0]);return this.path.setValueFrom(model,newValue)}};function MemberExpression(object,property,accessor){this.computed=accessor=="[";this.dynamicDeps=typeof object=="function"||object.dynamicDeps||this.computed&&!(property instanceof Literal);this.simplePath=!this.dynamicDeps&&(property instanceof IdentPath||property instanceof Literal)&&(object instanceof MemberExpression||object instanceof IdentPath);this.object=this.simplePath?object:getFn(object);this.property=!this.computed||this.simplePath?property:getFn(property)}MemberExpression.prototype={get fullPath(){if(!this.fullPath_){var parts=this.object instanceof MemberExpression?this.object.fullPath.slice():[this.object.name];parts.push(this.property instanceof IdentPath?this.property.name:this.property.value);this.fullPath_=Path.get(parts)}return this.fullPath_},valueFn:function(){if(!this.valueFn_){var object=this.object;if(this.simplePath){var path=this.fullPath;this.valueFn_=function(model,observer){if(observer)observer.addPath(model,path);return path.getValueFrom(model)}}else if(!this.computed){var path=Path.get(this.property.name);this.valueFn_=function(model,observer,filterRegistry){var context=object(model,observer,filterRegistry);if(observer)observer.addPath(context,path);return path.getValueFrom(context)}}else{var property=this.property;this.valueFn_=function(model,observer,filterRegistry){var context=object(model,observer,filterRegistry);var propName=property(model,observer,filterRegistry);if(observer)observer.addPath(context,[propName]);return context?context[propName]:undefined}}}return this.valueFn_},setValue:function(model,newValue){if(this.simplePath){this.fullPath.setValueFrom(model,newValue);return newValue}var object=this.object(model);var propName=this.property instanceof IdentPath?this.property.name:this.property(model);return object[propName]=newValue}};function Filter(name,args){this.name=name;this.args=[];for(var i=0;i<args.length;i++){this.args[i]=getFn(args[i])}}Filter.prototype={transform:function(model,observer,filterRegistry,toModelDirection,initialArgs){var fn=filterRegistry[this.name];var context=model;if(fn){context=undefined}else{fn=context[this.name];if(!fn){console.error("Cannot find function or filter: "+this.name);return}}if(toModelDirection){fn=fn.toModel}else if(typeof fn.toDOM=="function"){fn=fn.toDOM}if(typeof fn!="function"){console.error("Cannot find function or filter: "+this.name);return}var args=initialArgs||[];for(var i=0;i<this.args.length;i++){args.push(getFn(this.args[i])(model,observer,filterRegistry))}return fn.apply(context,args)}};function notImplemented(){throw Error("Not Implemented")}var unaryOperators={"+":function(v){return+v},"-":function(v){return-v},"!":function(v){return!v}};var binaryOperators={"+":function(l,r){return l+r},"-":function(l,r){return l-r},"*":function(l,r){return l*r},"/":function(l,r){return l/r},"%":function(l,r){return l%r},"<":function(l,r){return l<r},">":function(l,r){return l>r},"<=":function(l,r){return l<=r},">=":function(l,r){return l>=r},"==":function(l,r){return l==r},"!=":function(l,r){return l!=r},"===":function(l,r){return l===r},"!==":function(l,r){return l!==r},"&&":function(l,r){return l&&r},"||":function(l,r){return l||r}};function getFn(arg){return typeof arg=="function"?arg:arg.valueFn()}function ASTDelegate(){this.expression=null;this.filters=[];this.deps={};this.currentPath=undefined;this.scopeIdent=undefined;this.indexIdent=undefined;this.dynamicDeps=false}ASTDelegate.prototype={createUnaryExpression:function(op,argument){if(!unaryOperators[op])throw Error("Disallowed operator: "+op);argument=getFn(argument);return function(model,observer,filterRegistry){return unaryOperators[op](argument(model,observer,filterRegistry))}},createBinaryExpression:function(op,left,right){if(!binaryOperators[op])throw Error("Disallowed operator: "+op);left=getFn(left);right=getFn(right);switch(op){case"||":this.dynamicDeps=true;return function(model,observer,filterRegistry){return left(model,observer,filterRegistry)||right(model,observer,filterRegistry)};case"&&":this.dynamicDeps=true;return function(model,observer,filterRegistry){return left(model,observer,filterRegistry)&&right(model,observer,filterRegistry)}}return function(model,observer,filterRegistry){return binaryOperators[op](left(model,observer,filterRegistry),right(model,observer,filterRegistry))}},createConditionalExpression:function(test,consequent,alternate){test=getFn(test);consequent=getFn(consequent);alternate=getFn(alternate);this.dynamicDeps=true;return function(model,observer,filterRegistry){return test(model,observer,filterRegistry)?consequent(model,observer,filterRegistry):alternate(model,observer,filterRegistry)}},createIdentifier:function(name){var ident=new IdentPath(name);ident.type="Identifier";return ident},createMemberExpression:function(accessor,object,property){var ex=new MemberExpression(object,property,accessor);if(ex.dynamicDeps)this.dynamicDeps=true;return ex},createCallExpression:function(expression,args){if(!(expression instanceof IdentPath))throw Error("Only identifier function invocations are allowed");var filter=new Filter(expression.name,args);return function(model,observer,filterRegistry){return filter.transform(model,observer,filterRegistry,false)}},createLiteral:function(token){return new Literal(token.value)},createArrayExpression:function(elements){for(var i=0;i<elements.length;i++)elements[i]=getFn(elements[i]);return function(model,observer,filterRegistry){var arr=[];for(var i=0;i<elements.length;i++)arr.push(elements[i](model,observer,filterRegistry));return arr}},createProperty:function(kind,key,value){return{key:key instanceof IdentPath?key.name:key.value,value:value}},createObjectExpression:function(properties){for(var i=0;i<properties.length;i++)properties[i].value=getFn(properties[i].value);return function(model,observer,filterRegistry){var obj={};for(var i=0;i<properties.length;i++)obj[properties[i].key]=properties[i].value(model,observer,filterRegistry);return obj}},createFilter:function(name,args){this.filters.push(new Filter(name,args))},createAsExpression:function(expression,scopeIdent){this.expression=expression;this.scopeIdent=scopeIdent},createInExpression:function(scopeIdent,indexIdent,expression){this.expression=expression;this.scopeIdent=scopeIdent;this.indexIdent=indexIdent},createTopLevel:function(expression){this.expression=expression},createThisExpression:notImplemented};function ConstantObservable(value){this.value_=value}ConstantObservable.prototype={open:function(){return this.value_},discardChanges:function(){return this.value_},deliver:function(){},close:function(){}};function Expression(delegate){this.scopeIdent=delegate.scopeIdent;this.indexIdent=delegate.indexIdent;if(!delegate.expression)throw Error("No expression found.");this.expression=delegate.expression;getFn(this.expression);this.filters=delegate.filters;this.dynamicDeps=delegate.dynamicDeps}Expression.prototype={getBinding:function(model,filterRegistry,oneTime){if(oneTime)return this.getValue(model,undefined,filterRegistry);var observer=new CompoundObserver;var firstValue=this.getValue(model,observer,filterRegistry);var firstTime=true;var self=this;function valueFn(){if(firstTime){firstTime=false;return firstValue}if(self.dynamicDeps)observer.startReset();var value=self.getValue(model,self.dynamicDeps?observer:undefined,filterRegistry);if(self.dynamicDeps)observer.finishReset();return value}function setValueFn(newValue){self.setValue(model,newValue,filterRegistry);return newValue}return new ObserverTransform(observer,valueFn,setValueFn,true)},getValue:function(model,observer,filterRegistry){var value=getFn(this.expression)(model,observer,filterRegistry);for(var i=0;i<this.filters.length;i++){value=this.filters[i].transform(model,observer,filterRegistry,false,[value])}return value},setValue:function(model,newValue,filterRegistry){var count=this.filters?this.filters.length:0;while(count-->0){newValue=this.filters[count].transform(model,undefined,filterRegistry,true,[newValue])}if(this.expression.setValue)return this.expression.setValue(model,newValue)}};function convertStylePropertyName(name){return String(name).replace(/[A-Z]/g,function(c){return"-"+c.toLowerCase()})}var parentScopeName="@"+Math.random().toString(36).slice(2);function findScope(model,prop){while(model[parentScopeName]&&!Object.prototype.hasOwnProperty.call(model,prop)){model=model[parentScopeName]}return model}function isLiteralExpression(pathString){switch(pathString){case"":return false;case"false":case"null":case"true":return true}if(!isNaN(Number(pathString)))return true;return false}function PolymerExpressions(){}PolymerExpressions.prototype={styleObject:function(value){var parts=[];for(var key in value){parts.push(convertStylePropertyName(key)+": "+value[key])}return parts.join("; ")},tokenList:function(value){var tokens=[];for(var key in value){if(value[key])tokens.push(key)}return tokens.join(" ")},prepareInstancePositionChanged:function(template){var indexIdent=template.polymerExpressionIndexIdent_;if(!indexIdent)return;return function(templateInstance,index){templateInstance.model[indexIdent]=index}},prepareBinding:function(pathString,name,node){var path=Path.get(pathString);if(!isLiteralExpression(pathString)&&path.valid){if(path.length==1){return function(model,node,oneTime){if(oneTime)return path.getValueFrom(model);var scope=findScope(model,path[0]);return new PathObserver(scope,path)}}return}return prepareBinding(pathString,name,node,this)},prepareInstanceModel:function(template){var scopeName=template.polymerExpressionScopeIdent_;if(!scopeName)return;var parentScope=template.templateInstance?template.templateInstance.model:template.model;var indexName=template.polymerExpressionIndexIdent_;return function(model){return createScopeObject(parentScope,model,scopeName,indexName)}}};var createScopeObject="__proto__"in{}?function(parentScope,model,scopeName,indexName){var scope={};scope[scopeName]=model;scope[indexName]=undefined;scope[parentScopeName]=parentScope;scope.__proto__=parentScope;return scope}:function(parentScope,model,scopeName,indexName){var scope=Object.create(parentScope);Object.defineProperty(scope,scopeName,{value:model,configurable:true,writable:true});Object.defineProperty(scope,indexName,{value:undefined,configurable:true,writable:true});Object.defineProperty(scope,parentScopeName,{value:parentScope,configurable:true,writable:true});return scope};global.PolymerExpressions=PolymerExpressions;PolymerExpressions.getExpression=getExpression})(this);Polymer={version:"0.5.1"};if(typeof window.Polymer==="function"){Polymer={}}(function(scope){function withDependencies(task,depends){depends=depends||[];if(!depends.map){depends=[depends]}return task.apply(this,depends.map(marshal))}function module(name,dependsOrFactory,moduleFactory){var module;switch(arguments.length){case 0:return;case 1:module=null;break;case 2:module=dependsOrFactory.apply(this);break;default:module=withDependencies(moduleFactory,dependsOrFactory);break}modules[name]=module}function marshal(name){return modules[name]}var modules={};function using(depends,task){HTMLImports.whenImportsReady(function(){withDependencies(task,depends)})}scope.marshal=marshal;scope.modularize=module;scope.using=using})(window);if(!window.WebComponents){if(!window.WebComponents){WebComponents={flush:function(){},flags:{log:{}}};Platform=WebComponents;CustomElements={useNative:true,ready:true,takeRecords:function(){},"instanceof":function(obj,base){return obj instanceof base}};HTMLImports={useNative:true};addEventListener("HTMLImportsLoaded",function(){document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:true}))});ShadowDOMPolyfill=null;wrap=unwrap=function(n){return n}}window.HTMLImports=window.HTMLImports||{flags:{}};(function(scope){var IMPORT_LINK_TYPE="import";var useNative=Boolean(IMPORT_LINK_TYPE in document.createElement("link"));var hasShadowDOMPolyfill=Boolean(window.ShadowDOMPolyfill);var wrap=function(node){return hasShadowDOMPolyfill?ShadowDOMPolyfill.wrapIfNeeded(node):node};var rootDocument=wrap(document);var currentScriptDescriptor={get:function(){var script=HTMLImports.currentScript||document.currentScript||(document.readyState!=="complete"?document.scripts[document.scripts.length-1]:null);return wrap(script)},configurable:true};Object.defineProperty(document,"_currentScript",currentScriptDescriptor);Object.defineProperty(rootDocument,"_currentScript",currentScriptDescriptor);var isIE=/Trident/.test(navigator.userAgent);function whenReady(callback,doc){doc=doc||rootDocument;whenDocumentReady(function(){watchImportsLoad(callback,doc)},doc)}var requiredReadyState=isIE?"complete":"interactive";var READY_EVENT="readystatechange";function isDocumentReady(doc){return doc.readyState==="complete"||doc.readyState===requiredReadyState}function whenDocumentReady(callback,doc){if(!isDocumentReady(doc)){var checkReady=function(){if(doc.readyState==="complete"||doc.readyState===requiredReadyState){doc.removeEventListener(READY_EVENT,checkReady);whenDocumentReady(callback,doc)}};doc.addEventListener(READY_EVENT,checkReady)}else if(callback){callback()}}function markTargetLoaded(event){event.target.__loaded=true}function watchImportsLoad(callback,doc){var imports=doc.querySelectorAll("link[rel=import]");var loaded=0,l=imports.length;function checkDone(d){if(loaded==l&&callback){callback()}}function loadedImport(e){markTargetLoaded(e);loaded++;checkDone()}if(l){for(var i=0,imp;i<l&&(imp=imports[i]);i++){if(isImportLoaded(imp)){loadedImport.call(imp,{target:imp})}else{imp.addEventListener("load",loadedImport);imp.addEventListener("error",loadedImport)}}}else{checkDone()}}function isImportLoaded(link){return useNative?link.__loaded||link.import&&link.import.readyState!=="loading":link.__importParsed}if(useNative){new MutationObserver(function(mxns){for(var i=0,l=mxns.length,m;i<l&&(m=mxns[i]);i++){if(m.addedNodes){handleImports(m.addedNodes)}}}).observe(document.head,{childList:true});function handleImports(nodes){for(var i=0,l=nodes.length,n;i<l&&(n=nodes[i]);i++){if(isImport(n)){handleImport(n)}}}function isImport(element){return element.localName==="link"&&element.rel==="import"}function handleImport(element){var loaded=element.import;if(loaded){markTargetLoaded({target:element})}else{element.addEventListener("load",markTargetLoaded);element.addEventListener("error",markTargetLoaded)}}(function(){if(document.readyState==="loading"){var imports=document.querySelectorAll("link[rel=import]");for(var i=0,l=imports.length,imp;i<l&&(imp=imports[i]);i++){handleImport(imp)}}})()}whenReady(function(){HTMLImports.ready=true;HTMLImports.readyTime=(new Date).getTime();rootDocument.dispatchEvent(new CustomEvent("HTMLImportsLoaded",{bubbles:true}))});scope.IMPORT_LINK_TYPE=IMPORT_LINK_TYPE;scope.useNative=useNative;scope.rootDocument=rootDocument;scope.whenReady=whenReady;scope.isIE=isIE})(HTMLImports);(function(scope){var style=document.createElement("style");style.textContent=""+"body {"+"transition: opacity ease-in 0.2s;"+" } \n"+"body[unresolved] {"+"opacity: 0; display: block; overflow: hidden;"+" } \n";var head=document.querySelector("head");head.insertBefore(style,head.firstChild)})(Platform)}(function(global){"use strict";var testingExposeCycleCount=global.testingExposeCycleCount;function detectObjectObserve(){if(typeof Object.observe!=="function"||typeof Array.observe!=="function"){return false}var records=[];function callback(recs){records=recs}var test={};var arr=[];Object.observe(test,callback);Array.observe(arr,callback);test.id=1;test.id=2;delete test.id;arr.push(1,2);arr.length=0;Object.deliverChangeRecords(callback);if(records.length!==5)return false;if(records[0].type!="add"||records[1].type!="update"||records[2].type!="delete"||records[3].type!="splice"||records[4].type!="splice"){return false}Object.unobserve(test,callback);Array.unobserve(arr,callback);return true}var hasObserve=detectObjectObserve();function detectEval(){if(typeof chrome!=="undefined"&&chrome.app&&chrome.app.runtime){return false}if(typeof navigator!="undefined"&&navigator.getDeviceStorage){return false}try{var f=new Function("","return true;");return f()}catch(ex){return false}}var hasEval=detectEval();function isIndex(s){return+s===s>>>0&&s!==""}function toNumber(s){return+s}function isObject(obj){return obj===Object(obj)}var numberIsNaN=global.Number.isNaN||function(value){return typeof value==="number"&&global.isNaN(value)};function areSameValue(left,right){if(left===right)return left!==0||1/left===1/right;if(numberIsNaN(left)&&numberIsNaN(right))return true;return left!==left&&right!==right}var createObject="__proto__"in{}?function(obj){return obj}:function(obj){var proto=obj.__proto__;if(!proto)return obj;var newObject=Object.create(proto);Object.getOwnPropertyNames(obj).forEach(function(name){Object.defineProperty(newObject,name,Object.getOwnPropertyDescriptor(obj,name))});return newObject};var identStart="[$_a-zA-Z]";var identPart="[$_a-zA-Z0-9]";var identRegExp=new RegExp("^"+identStart+"+"+identPart+"*"+"$");function getPathCharType(char){if(char===undefined)return"eof";var code=char.charCodeAt(0);switch(code){case 91:case 93:case 46:case 34:case 39:case 48:return char;case 95:case 36:return"ident";case 32:case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}if(97<=code&&code<=122||65<=code&&code<=90)return"ident";if(49<=code&&code<=57)return"number";return"else"
-}var pathStateMachine={beforePath:{ws:["beforePath"],ident:["inIdent","append"],"[":["beforeElement"],eof:["afterPath"]},inPath:{ws:["inPath"],".":["beforeIdent"],"[":["beforeElement"],eof:["afterPath"]},beforeIdent:{ws:["beforeIdent"],ident:["inIdent","append"]},inIdent:{ident:["inIdent","append"],0:["inIdent","append"],number:["inIdent","append"],ws:["inPath","push"],".":["beforeIdent","push"],"[":["beforeElement","push"],eof:["afterPath","push"]},beforeElement:{ws:["beforeElement"],0:["afterZero","append"],number:["inIndex","append"],"'":["inSingleQuote","append",""],'"':["inDoubleQuote","append",""]},afterZero:{ws:["afterElement","push"],"]":["inPath","push"]},inIndex:{0:["inIndex","append"],number:["inIndex","append"],ws:["afterElement"],"]":["inPath","push"]},inSingleQuote:{"'":["afterElement"],eof:["error"],"else":["inSingleQuote","append"]},inDoubleQuote:{'"':["afterElement"],eof:["error"],"else":["inDoubleQuote","append"]},afterElement:{ws:["afterElement"],"]":["inPath","push"]}};function noop(){}function parsePath(path){var keys=[];var index=-1;var c,newChar,key,type,transition,action,typeMap,mode="beforePath";var actions={push:function(){if(key===undefined)return;keys.push(key);key=undefined},append:function(){if(key===undefined)key=newChar;else key+=newChar}};function maybeUnescapeQuote(){if(index>=path.length)return;var nextChar=path[index+1];if(mode=="inSingleQuote"&&nextChar=="'"||mode=="inDoubleQuote"&&nextChar=='"'){index++;newChar=nextChar;actions.append();return true}}while(mode){index++;c=path[index];if(c=="\\"&&maybeUnescapeQuote(mode))continue;type=getPathCharType(c);typeMap=pathStateMachine[mode];transition=typeMap[type]||typeMap["else"]||"error";if(transition=="error")return;mode=transition[0];action=actions[transition[1]]||noop;newChar=transition[2]===undefined?c:transition[2];action();if(mode==="afterPath"){return keys}}return}function isIdent(s){return identRegExp.test(s)}var constructorIsPrivate={};function Path(parts,privateToken){if(privateToken!==constructorIsPrivate)throw Error("Use Path.get to retrieve path objects");for(var i=0;i<parts.length;i++){this.push(String(parts[i]))}if(hasEval&&this.length){this.getValueFrom=this.compiledGetValueFromFn()}}var pathCache={};function getPath(pathString){if(pathString instanceof Path)return pathString;if(pathString==null||pathString.length==0)pathString="";if(typeof pathString!="string"){if(isIndex(pathString.length)){return new Path(pathString,constructorIsPrivate)}pathString=String(pathString)}var path=pathCache[pathString];if(path)return path;var parts=parsePath(pathString);if(!parts)return invalidPath;var path=new Path(parts,constructorIsPrivate);pathCache[pathString]=path;return path}Path.get=getPath;function formatAccessor(key){if(isIndex(key)){return"["+key+"]"}else{return'["'+key.replace(/"/g,'\\"')+'"]'}}Path.prototype=createObject({__proto__:[],valid:true,toString:function(){var pathString="";for(var i=0;i<this.length;i++){var key=this[i];if(isIdent(key)){pathString+=i?"."+key:key}else{pathString+=formatAccessor(key)}}return pathString},getValueFrom:function(obj,directObserver){for(var i=0;i<this.length;i++){if(obj==null)return;obj=obj[this[i]]}return obj},iterateObjects:function(obj,observe){for(var i=0;i<this.length;i++){if(i)obj=obj[this[i-1]];if(!isObject(obj))return;observe(obj,this[i])}},compiledGetValueFromFn:function(){var str="";var pathString="obj";str+="if (obj != null";var i=0;var key;for(;i<this.length-1;i++){key=this[i];pathString+=isIdent(key)?"."+key:formatAccessor(key);str+=" &&\n     "+pathString+" != null"}str+=")\n";var key=this[i];pathString+=isIdent(key)?"."+key:formatAccessor(key);str+="  return "+pathString+";\nelse\n  return undefined;";return new Function("obj",str)},setValueFrom:function(obj,value){if(!this.length)return false;for(var i=0;i<this.length-1;i++){if(!isObject(obj))return false;obj=obj[this[i]]}if(!isObject(obj))return false;obj[this[i]]=value;return true}});var invalidPath=new Path("",constructorIsPrivate);invalidPath.valid=false;invalidPath.getValueFrom=invalidPath.setValueFrom=function(){};var MAX_DIRTY_CHECK_CYCLES=1e3;function dirtyCheck(observer){var cycles=0;while(cycles<MAX_DIRTY_CHECK_CYCLES&&observer.check_()){cycles++}if(testingExposeCycleCount)global.dirtyCheckCycleCount=cycles;return cycles>0}function objectIsEmpty(object){for(var prop in object)return false;return true}function diffIsEmpty(diff){return objectIsEmpty(diff.added)&&objectIsEmpty(diff.removed)&&objectIsEmpty(diff.changed)}function diffObjectFromOldObject(object,oldObject){var added={};var removed={};var changed={};for(var prop in oldObject){var newValue=object[prop];if(newValue!==undefined&&newValue===oldObject[prop])continue;if(!(prop in object)){removed[prop]=undefined;continue}if(newValue!==oldObject[prop])changed[prop]=newValue}for(var prop in object){if(prop in oldObject)continue;added[prop]=object[prop]}if(Array.isArray(object)&&object.length!==oldObject.length)changed.length=object.length;return{added:added,removed:removed,changed:changed}}var eomTasks=[];function runEOMTasks(){if(!eomTasks.length)return false;for(var i=0;i<eomTasks.length;i++){eomTasks[i]()}eomTasks.length=0;return true}var runEOM=hasObserve?function(){return function(fn){return Promise.resolve().then(fn)}}():function(){return function(fn){eomTasks.push(fn)}}();var observedObjectCache=[];function newObservedObject(){var observer;var object;var discardRecords=false;var first=true;function callback(records){if(observer&&observer.state_===OPENED&&!discardRecords)observer.check_(records)}return{open:function(obs){if(observer)throw Error("ObservedObject in use");if(!first)Object.deliverChangeRecords(callback);observer=obs;first=false},observe:function(obj,arrayObserve){object=obj;if(arrayObserve)Array.observe(object,callback);else Object.observe(object,callback)},deliver:function(discard){discardRecords=discard;Object.deliverChangeRecords(callback);discardRecords=false},close:function(){observer=undefined;Object.unobserve(object,callback);observedObjectCache.push(this)}}}function getObservedObject(observer,object,arrayObserve){var dir=observedObjectCache.pop()||newObservedObject();dir.open(observer);dir.observe(object,arrayObserve);return dir}var observedSetCache=[];function newObservedSet(){var observerCount=0;var observers=[];var objects=[];var rootObj;var rootObjProps;function observe(obj,prop){if(!obj)return;if(obj===rootObj)rootObjProps[prop]=true;if(objects.indexOf(obj)<0){objects.push(obj);Object.observe(obj,callback)}observe(Object.getPrototypeOf(obj),prop)}function allRootObjNonObservedProps(recs){for(var i=0;i<recs.length;i++){var rec=recs[i];if(rec.object!==rootObj||rootObjProps[rec.name]||rec.type==="setPrototype"){return false}}return true}function callback(recs){if(allRootObjNonObservedProps(recs))return;var observer;for(var i=0;i<observers.length;i++){observer=observers[i];if(observer.state_==OPENED){observer.iterateObjects_(observe)}}for(var i=0;i<observers.length;i++){observer=observers[i];if(observer.state_==OPENED){observer.check_()}}}var record={objects:objects,get rootObject(){return rootObj},set rootObject(value){rootObj=value;rootObjProps={}},open:function(obs,object){observers.push(obs);observerCount++;obs.iterateObjects_(observe)},close:function(obs){observerCount--;if(observerCount>0){return}for(var i=0;i<objects.length;i++){Object.unobserve(objects[i],callback);Observer.unobservedCount++}observers.length=0;objects.length=0;rootObj=undefined;rootObjProps=undefined;observedSetCache.push(this);if(lastObservedSet===this)lastObservedSet=null}};return record}var lastObservedSet;function getObservedSet(observer,obj){if(!lastObservedSet||lastObservedSet.rootObject!==obj){lastObservedSet=observedSetCache.pop()||newObservedSet();lastObservedSet.rootObject=obj}lastObservedSet.open(observer,obj);return lastObservedSet}var UNOPENED=0;var OPENED=1;var CLOSED=2;var RESETTING=3;var nextObserverId=1;function Observer(){this.state_=UNOPENED;this.callback_=undefined;this.target_=undefined;this.directObserver_=undefined;this.value_=undefined;this.id_=nextObserverId++}Observer.prototype={open:function(callback,target){if(this.state_!=UNOPENED)throw Error("Observer has already been opened.");addToAll(this);this.callback_=callback;this.target_=target;this.connect_();this.state_=OPENED;return this.value_},close:function(){if(this.state_!=OPENED)return;removeFromAll(this);this.disconnect_();this.value_=undefined;this.callback_=undefined;this.target_=undefined;this.state_=CLOSED},deliver:function(){if(this.state_!=OPENED)return;dirtyCheck(this)},report_:function(changes){try{this.callback_.apply(this.target_,changes)}catch(ex){Observer._errorThrownDuringCallback=true;console.error("Exception caught during observer callback: "+(ex.stack||ex))}},discardChanges:function(){this.check_(undefined,true);return this.value_}};var collectObservers=!hasObserve;var allObservers;Observer._allObserversCount=0;if(collectObservers){allObservers=[]}function addToAll(observer){Observer._allObserversCount++;if(!collectObservers)return;allObservers.push(observer)}function removeFromAll(observer){Observer._allObserversCount--}var runningMicrotaskCheckpoint=false;global.Platform=global.Platform||{};global.Platform.performMicrotaskCheckpoint=function(){if(runningMicrotaskCheckpoint)return;if(!collectObservers)return;runningMicrotaskCheckpoint=true;var cycles=0;var anyChanged,toCheck;do{cycles++;toCheck=allObservers;allObservers=[];anyChanged=false;for(var i=0;i<toCheck.length;i++){var observer=toCheck[i];if(observer.state_!=OPENED)continue;if(observer.check_())anyChanged=true;allObservers.push(observer)}if(runEOMTasks())anyChanged=true}while(cycles<MAX_DIRTY_CHECK_CYCLES&&anyChanged);if(testingExposeCycleCount)global.dirtyCheckCycleCount=cycles;runningMicrotaskCheckpoint=false};if(collectObservers){global.Platform.clearObservers=function(){allObservers=[]}}function ObjectObserver(object){Observer.call(this);this.value_=object;this.oldObject_=undefined}ObjectObserver.prototype=createObject({__proto__:Observer.prototype,arrayObserve:false,connect_:function(callback,target){if(hasObserve){this.directObserver_=getObservedObject(this,this.value_,this.arrayObserve)}else{this.oldObject_=this.copyObject(this.value_)}},copyObject:function(object){var copy=Array.isArray(object)?[]:{};for(var prop in object){copy[prop]=object[prop]}if(Array.isArray(object))copy.length=object.length;return copy},check_:function(changeRecords,skipChanges){var diff;var oldValues;if(hasObserve){if(!changeRecords)return false;oldValues={};diff=diffObjectFromChangeRecords(this.value_,changeRecords,oldValues)}else{oldValues=this.oldObject_;diff=diffObjectFromOldObject(this.value_,this.oldObject_)}if(diffIsEmpty(diff))return false;if(!hasObserve)this.oldObject_=this.copyObject(this.value_);this.report_([diff.added||{},diff.removed||{},diff.changed||{},function(property){return oldValues[property]}]);return true},disconnect_:function(){if(hasObserve){this.directObserver_.close();this.directObserver_=undefined}else{this.oldObject_=undefined}},deliver:function(){if(this.state_!=OPENED)return;if(hasObserve)this.directObserver_.deliver(false);else dirtyCheck(this)},discardChanges:function(){if(this.directObserver_)this.directObserver_.deliver(true);else this.oldObject_=this.copyObject(this.value_);return this.value_}});function ArrayObserver(array){if(!Array.isArray(array))throw Error("Provided object is not an Array");ObjectObserver.call(this,array)}ArrayObserver.prototype=createObject({__proto__:ObjectObserver.prototype,arrayObserve:true,copyObject:function(arr){return arr.slice()},check_:function(changeRecords){var splices;if(hasObserve){if(!changeRecords)return false;splices=projectArraySplices(this.value_,changeRecords)}else{splices=calcSplices(this.value_,0,this.value_.length,this.oldObject_,0,this.oldObject_.length)}if(!splices||!splices.length)return false;if(!hasObserve)this.oldObject_=this.copyObject(this.value_);this.report_([splices]);return true}});ArrayObserver.applySplices=function(previous,current,splices){splices.forEach(function(splice){var spliceArgs=[splice.index,splice.removed.length];var addIndex=splice.index;while(addIndex<splice.index+splice.addedCount){spliceArgs.push(current[addIndex]);addIndex++}Array.prototype.splice.apply(previous,spliceArgs)})};function PathObserver(object,path){Observer.call(this);this.object_=object;this.path_=getPath(path);this.directObserver_=undefined}PathObserver.prototype=createObject({__proto__:Observer.prototype,get path(){return this.path_},connect_:function(){if(hasObserve)this.directObserver_=getObservedSet(this,this.object_);this.check_(undefined,true)},disconnect_:function(){this.value_=undefined;if(this.directObserver_){this.directObserver_.close(this);this.directObserver_=undefined}},iterateObjects_:function(observe){this.path_.iterateObjects(this.object_,observe)},check_:function(changeRecords,skipChanges){var oldValue=this.value_;this.value_=this.path_.getValueFrom(this.object_);if(skipChanges||areSameValue(this.value_,oldValue))return false;this.report_([this.value_,oldValue,this]);return true},setValue:function(newValue){if(this.path_)this.path_.setValueFrom(this.object_,newValue)}});function CompoundObserver(reportChangesOnOpen){Observer.call(this);this.reportChangesOnOpen_=reportChangesOnOpen;this.value_=[];this.directObserver_=undefined;this.observed_=[]}var observerSentinel={};CompoundObserver.prototype=createObject({__proto__:Observer.prototype,connect_:function(){if(hasObserve){var object;var needsDirectObserver=false;for(var i=0;i<this.observed_.length;i+=2){object=this.observed_[i];if(object!==observerSentinel){needsDirectObserver=true;break}}if(needsDirectObserver)this.directObserver_=getObservedSet(this,object)}this.check_(undefined,!this.reportChangesOnOpen_)},disconnect_:function(){for(var i=0;i<this.observed_.length;i+=2){if(this.observed_[i]===observerSentinel)this.observed_[i+1].close()}this.observed_.length=0;this.value_.length=0;if(this.directObserver_){this.directObserver_.close(this);this.directObserver_=undefined}},addPath:function(object,path){if(this.state_!=UNOPENED&&this.state_!=RESETTING)throw Error("Cannot add paths once started.");var path=getPath(path);this.observed_.push(object,path);if(!this.reportChangesOnOpen_)return;var index=this.observed_.length/2-1;this.value_[index]=path.getValueFrom(object)},addObserver:function(observer){if(this.state_!=UNOPENED&&this.state_!=RESETTING)throw Error("Cannot add observers once started.");this.observed_.push(observerSentinel,observer);if(!this.reportChangesOnOpen_)return;var index=this.observed_.length/2-1;this.value_[index]=observer.open(this.deliver,this)},startReset:function(){if(this.state_!=OPENED)throw Error("Can only reset while open");this.state_=RESETTING;this.disconnect_()},finishReset:function(){if(this.state_!=RESETTING)throw Error("Can only finishReset after startReset");this.state_=OPENED;this.connect_();return this.value_},iterateObjects_:function(observe){var object;for(var i=0;i<this.observed_.length;i+=2){object=this.observed_[i];if(object!==observerSentinel)this.observed_[i+1].iterateObjects(object,observe)}},check_:function(changeRecords,skipChanges){var oldValues;for(var i=0;i<this.observed_.length;i+=2){var object=this.observed_[i];var path=this.observed_[i+1];var value;if(object===observerSentinel){var observable=path;value=this.state_===UNOPENED?observable.open(this.deliver,this):observable.discardChanges()}else{value=path.getValueFrom(object)}if(skipChanges){this.value_[i/2]=value;continue}if(areSameValue(value,this.value_[i/2]))continue;oldValues=oldValues||[];oldValues[i/2]=this.value_[i/2];this.value_[i/2]=value}if(!oldValues)return false;this.report_([this.value_,oldValues,this.observed_]);return true}});function identFn(value){return value}function ObserverTransform(observable,getValueFn,setValueFn,dontPassThroughSet){this.callback_=undefined;this.target_=undefined;this.value_=undefined;this.observable_=observable;this.getValueFn_=getValueFn||identFn;this.setValueFn_=setValueFn||identFn;this.dontPassThroughSet_=dontPassThroughSet}ObserverTransform.prototype={open:function(callback,target){this.callback_=callback;this.target_=target;this.value_=this.getValueFn_(this.observable_.open(this.observedCallback_,this));return this.value_},observedCallback_:function(value){value=this.getValueFn_(value);if(areSameValue(value,this.value_))return;var oldValue=this.value_;this.value_=value;this.callback_.call(this.target_,this.value_,oldValue)},discardChanges:function(){this.value_=this.getValueFn_(this.observable_.discardChanges());return this.value_},deliver:function(){return this.observable_.deliver()},setValue:function(value){value=this.setValueFn_(value);if(!this.dontPassThroughSet_&&this.observable_.setValue)return this.observable_.setValue(value)},close:function(){if(this.observable_)this.observable_.close();this.callback_=undefined;this.target_=undefined;this.observable_=undefined;this.value_=undefined;this.getValueFn_=undefined;this.setValueFn_=undefined}};var expectedRecordTypes={add:true,update:true,"delete":true};function diffObjectFromChangeRecords(object,changeRecords,oldValues){var added={};var removed={};for(var i=0;i<changeRecords.length;i++){var record=changeRecords[i];if(!expectedRecordTypes[record.type]){console.error("Unknown changeRecord type: "+record.type);console.error(record);continue}if(!(record.name in oldValues))oldValues[record.name]=record.oldValue;if(record.type=="update")continue;if(record.type=="add"){if(record.name in removed)delete removed[record.name];else added[record.name]=true;continue}if(record.name in added){delete added[record.name];delete oldValues[record.name]}else{removed[record.name]=true}}for(var prop in added)added[prop]=object[prop];for(var prop in removed)removed[prop]=undefined;var changed={};for(var prop in oldValues){if(prop in added||prop in removed)continue;var newValue=object[prop];if(oldValues[prop]!==newValue)changed[prop]=newValue}return{added:added,removed:removed,changed:changed}}function newSplice(index,removed,addedCount){return{index:index,removed:removed,addedCount:addedCount}}var EDIT_LEAVE=0;var EDIT_UPDATE=1;var EDIT_ADD=2;var EDIT_DELETE=3;function ArraySplice(){}ArraySplice.prototype={calcEditDistances:function(current,currentStart,currentEnd,old,oldStart,oldEnd){var rowCount=oldEnd-oldStart+1;var columnCount=currentEnd-currentStart+1;var distances=new Array(rowCount);for(var i=0;i<rowCount;i++){distances[i]=new Array(columnCount);distances[i][0]=i}for(var j=0;j<columnCount;j++)distances[0][j]=j;for(var i=1;i<rowCount;i++){for(var j=1;j<columnCount;j++){if(this.equals(current[currentStart+j-1],old[oldStart+i-1]))distances[i][j]=distances[i-1][j-1];else{var north=distances[i-1][j]+1;var west=distances[i][j-1]+1;distances[i][j]=north<west?north:west}}}return distances},spliceOperationsFromEditDistances:function(distances){var i=distances.length-1;var j=distances[0].length-1;var current=distances[i][j];var edits=[];while(i>0||j>0){if(i==0){edits.push(EDIT_ADD);j--;continue}if(j==0){edits.push(EDIT_DELETE);i--;continue}var northWest=distances[i-1][j-1];var west=distances[i-1][j];var north=distances[i][j-1];var min;if(west<north)min=west<northWest?west:northWest;else min=north<northWest?north:northWest;if(min==northWest){if(northWest==current){edits.push(EDIT_LEAVE)}else{edits.push(EDIT_UPDATE);current=northWest}i--;j--}else if(min==west){edits.push(EDIT_DELETE);i--;current=west}else{edits.push(EDIT_ADD);j--;current=north}}edits.reverse();return edits},calcSplices:function(current,currentStart,currentEnd,old,oldStart,oldEnd){var prefixCount=0;var suffixCount=0;var minLength=Math.min(currentEnd-currentStart,oldEnd-oldStart);if(currentStart==0&&oldStart==0)prefixCount=this.sharedPrefix(current,old,minLength);if(currentEnd==current.length&&oldEnd==old.length)suffixCount=this.sharedSuffix(current,old,minLength-prefixCount);currentStart+=prefixCount;oldStart+=prefixCount;currentEnd-=suffixCount;oldEnd-=suffixCount;if(currentEnd-currentStart==0&&oldEnd-oldStart==0)return[];if(currentStart==currentEnd){var splice=newSplice(currentStart,[],0);while(oldStart<oldEnd)splice.removed.push(old[oldStart++]);return[splice]}else if(oldStart==oldEnd)return[newSplice(currentStart,[],currentEnd-currentStart)];var ops=this.spliceOperationsFromEditDistances(this.calcEditDistances(current,currentStart,currentEnd,old,oldStart,oldEnd));var splice=undefined;var splices=[];var index=currentStart;var oldIndex=oldStart;for(var i=0;i<ops.length;i++){switch(ops[i]){case EDIT_LEAVE:if(splice){splices.push(splice);splice=undefined}index++;oldIndex++;break;case EDIT_UPDATE:if(!splice)splice=newSplice(index,[],0);splice.addedCount++;index++;splice.removed.push(old[oldIndex]);oldIndex++;break;case EDIT_ADD:if(!splice)splice=newSplice(index,[],0);splice.addedCount++;index++;break;case EDIT_DELETE:if(!splice)splice=newSplice(index,[],0);splice.removed.push(old[oldIndex]);oldIndex++;break}}if(splice){splices.push(splice)}return splices},sharedPrefix:function(current,old,searchLength){for(var i=0;i<searchLength;i++)if(!this.equals(current[i],old[i]))return i;return searchLength},sharedSuffix:function(current,old,searchLength){var index1=current.length;var index2=old.length;var count=0;while(count<searchLength&&this.equals(current[--index1],old[--index2]))count++;return count},calculateSplices:function(current,previous){return this.calcSplices(current,0,current.length,previous,0,previous.length)},equals:function(currentValue,previousValue){return currentValue===previousValue}};var arraySplice=new ArraySplice;function calcSplices(current,currentStart,currentEnd,old,oldStart,oldEnd){return arraySplice.calcSplices(current,currentStart,currentEnd,old,oldStart,oldEnd)}function intersect(start1,end1,start2,end2){if(end1<start2||end2<start1)return-1;if(end1==start2||end2==start1)return 0;if(start1<start2){if(end1<end2)return end1-start2;else return end2-start2}else{if(end2<end1)return end2-start1;else return end1-start1}}function mergeSplice(splices,index,removed,addedCount){var splice=newSplice(index,removed,addedCount);var inserted=false;var insertionOffset=0;for(var i=0;i<splices.length;i++){var current=splices[i];current.index+=insertionOffset;if(inserted)continue;var intersectCount=intersect(splice.index,splice.index+splice.removed.length,current.index,current.index+current.addedCount);if(intersectCount>=0){splices.splice(i,1);i--;insertionOffset-=current.addedCount-current.removed.length;splice.addedCount+=current.addedCount-intersectCount;var deleteCount=splice.removed.length+current.removed.length-intersectCount;if(!splice.addedCount&&!deleteCount){inserted=true}else{var removed=current.removed;if(splice.index<current.index){var prepend=splice.removed.slice(0,current.index-splice.index);Array.prototype.push.apply(prepend,removed);removed=prepend}if(splice.index+splice.removed.length>current.index+current.addedCount){var append=splice.removed.slice(current.index+current.addedCount-splice.index);Array.prototype.push.apply(removed,append)}splice.removed=removed;if(current.index<splice.index){splice.index=current.index}}}else if(splice.index<current.index){inserted=true;splices.splice(i,0,splice);i++;var offset=splice.addedCount-splice.removed.length;current.index+=offset;insertionOffset+=offset}}if(!inserted)splices.push(splice)}function createInitialSplices(array,changeRecords){var splices=[];for(var i=0;i<changeRecords.length;i++){var record=changeRecords[i];switch(record.type){case"splice":mergeSplice(splices,record.index,record.removed.slice(),record.addedCount);break;case"add":case"update":case"delete":if(!isIndex(record.name))continue;var index=toNumber(record.name);if(index<0)continue;mergeSplice(splices,index,[record.oldValue],1);break;default:console.error("Unexpected record type: "+JSON.stringify(record));break}}return splices}function projectArraySplices(array,changeRecords){var splices=[];createInitialSplices(array,changeRecords).forEach(function(splice){if(splice.addedCount==1&&splice.removed.length==1){if(splice.removed[0]!==array[splice.index])splices.push(splice);return}splices=splices.concat(calcSplices(array,splice.index,splice.index+splice.addedCount,splice.removed,0,splice.removed.length))});return splices}var expose=global;if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){expose=exports=module.exports}expose=exports}expose.Observer=Observer;expose.Observer.runEOM_=runEOM;expose.Observer.observerSentinel_=observerSentinel;expose.Observer.hasObjectObserve=hasObserve;expose.ArrayObserver=ArrayObserver;expose.ArrayObserver.calculateSplices=function(current,previous){return arraySplice.calculateSplices(current,previous)};expose.ArraySplice=ArraySplice;expose.ObjectObserver=ObjectObserver;expose.PathObserver=PathObserver;expose.CompoundObserver=CompoundObserver;expose.Path=Path;expose.ObserverTransform=ObserverTransform})(typeof global!=="undefined"&&global&&typeof module!=="undefined"&&module?global:this||window);(function(global){"use strict";var filter=Array.prototype.filter.call.bind(Array.prototype.filter);function getTreeScope(node){while(node.parentNode){node=node.parentNode}return typeof node.getElementById==="function"?node:null}Node.prototype.bind=function(name,observable){console.error("Unhandled binding to Node: ",this,name,observable)};Node.prototype.bindFinished=function(){};function updateBindings(node,name,binding){var bindings=node.bindings_;if(!bindings)bindings=node.bindings_={};if(bindings[name])binding[name].close();return bindings[name]=binding}function returnBinding(node,name,binding){return binding}function sanitizeValue(value){return value==null?"":value}function updateText(node,value){node.data=sanitizeValue(value)}function textBinding(node){return function(value){return updateText(node,value)}}var maybeUpdateBindings=returnBinding;Object.defineProperty(Platform,"enableBindingsReflection",{get:function(){return maybeUpdateBindings===updateBindings},set:function(enable){maybeUpdateBindings=enable?updateBindings:returnBinding;return enable},configurable:true});Text.prototype.bind=function(name,value,oneTime){if(name!=="textContent")return Node.prototype.bind.call(this,name,value,oneTime);if(oneTime)return updateText(this,value);var observable=value;updateText(this,observable.open(textBinding(this)));return maybeUpdateBindings(this,name,observable)};function updateAttribute(el,name,conditional,value){if(conditional){if(value)el.setAttribute(name,"");else el.removeAttribute(name);return}el.setAttribute(name,sanitizeValue(value))}function attributeBinding(el,name,conditional){return function(value){updateAttribute(el,name,conditional,value)}}Element.prototype.bind=function(name,value,oneTime){var conditional=name[name.length-1]=="?";if(conditional){this.removeAttribute(name);name=name.slice(0,-1)}if(oneTime)return updateAttribute(this,name,conditional,value);var observable=value;updateAttribute(this,name,conditional,observable.open(attributeBinding(this,name,conditional)));return maybeUpdateBindings(this,name,observable)};var checkboxEventType;(function(){var div=document.createElement("div");var checkbox=div.appendChild(document.createElement("input"));checkbox.setAttribute("type","checkbox");var first;var count=0;checkbox.addEventListener("click",function(e){count++;first=first||"click"});checkbox.addEventListener("change",function(){count++;first=first||"change"});var event=document.createEvent("MouseEvent");event.initMouseEvent("click",true,true,window,0,0,0,0,0,false,false,false,false,0,null);checkbox.dispatchEvent(event);checkboxEventType=count==1?"change":first})();function getEventForInputType(element){switch(element.type){case"checkbox":return checkboxEventType;case"radio":case"select-multiple":case"select-one":return"change";case"range":if(/Trident|MSIE/.test(navigator.userAgent))return"change";default:return"input"}}function updateInput(input,property,value,santizeFn){input[property]=(santizeFn||sanitizeValue)(value)}function inputBinding(input,property,santizeFn){return function(value){return updateInput(input,property,value,santizeFn)}}function noop(){}function bindInputEvent(input,property,observable,postEventFn){var eventType=getEventForInputType(input);function eventHandler(){observable.setValue(input[property]);observable.discardChanges();(postEventFn||noop)(input);Platform.performMicrotaskCheckpoint()}input.addEventListener(eventType,eventHandler);return{close:function(){input.removeEventListener(eventType,eventHandler);observable.close()},observable_:observable}}function booleanSanitize(value){return Boolean(value)}function getAssociatedRadioButtons(element){if(element.form){return filter(element.form.elements,function(el){return el!=element&&el.tagName=="INPUT"&&el.type=="radio"&&el.name==element.name})}else{var treeScope=getTreeScope(element);if(!treeScope)return[];var radios=treeScope.querySelectorAll('input[type="radio"][name="'+element.name+'"]');return filter(radios,function(el){return el!=element&&!el.form})}}function checkedPostEvent(input){if(input.tagName==="INPUT"&&input.type==="radio"){getAssociatedRadioButtons(input).forEach(function(radio){var checkedBinding=radio.bindings_.checked;if(checkedBinding){checkedBinding.observable_.setValue(false)}})}}HTMLInputElement.prototype.bind=function(name,value,oneTime){if(name!=="value"&&name!=="checked")return HTMLElement.prototype.bind.call(this,name,value,oneTime);this.removeAttribute(name);var sanitizeFn=name=="checked"?booleanSanitize:sanitizeValue;var postEventFn=name=="checked"?checkedPostEvent:noop;if(oneTime)return updateInput(this,name,value,sanitizeFn);var observable=value;var binding=bindInputEvent(this,name,observable,postEventFn);updateInput(this,name,observable.open(inputBinding(this,name,sanitizeFn)),sanitizeFn);return updateBindings(this,name,binding)};HTMLTextAreaElement.prototype.bind=function(name,value,oneTime){if(name!=="value")return HTMLElement.prototype.bind.call(this,name,value,oneTime);this.removeAttribute("value");if(oneTime)return updateInput(this,"value",value);var observable=value;var binding=bindInputEvent(this,"value",observable);updateInput(this,"value",observable.open(inputBinding(this,"value",sanitizeValue)));return maybeUpdateBindings(this,name,binding)};function updateOption(option,value){var parentNode=option.parentNode;var select;var selectBinding;var oldValue;if(parentNode instanceof HTMLSelectElement&&parentNode.bindings_&&parentNode.bindings_.value){select=parentNode;selectBinding=select.bindings_.value;oldValue=select.value}option.value=sanitizeValue(value);if(select&&select.value!=oldValue){selectBinding.observable_.setValue(select.value);selectBinding.observable_.discardChanges();Platform.performMicrotaskCheckpoint()}}function optionBinding(option){return function(value){updateOption(option,value)}}HTMLOptionElement.prototype.bind=function(name,value,oneTime){if(name!=="value")return HTMLElement.prototype.bind.call(this,name,value,oneTime);this.removeAttribute("value");if(oneTime)return updateOption(this,value);var observable=value;var binding=bindInputEvent(this,"value",observable);updateOption(this,observable.open(optionBinding(this)));return maybeUpdateBindings(this,name,binding)};HTMLSelectElement.prototype.bind=function(name,value,oneTime){if(name==="selectedindex")name="selectedIndex";if(name!=="selectedIndex"&&name!=="value")return HTMLElement.prototype.bind.call(this,name,value,oneTime);this.removeAttribute(name);if(oneTime)return updateInput(this,name,value);var observable=value;var binding=bindInputEvent(this,name,observable);updateInput(this,name,observable.open(inputBinding(this,name)));return updateBindings(this,name,binding)}})(this);(function(global){"use strict";function assert(v){if(!v)throw new Error("Assertion failed")}var forEach=Array.prototype.forEach.call.bind(Array.prototype.forEach);function getFragmentRoot(node){var p;while(p=node.parentNode){node=p}return node}function searchRefId(node,id){if(!id)return;
-var ref;var selector="#"+id;while(!ref){node=getFragmentRoot(node);if(node.protoContent_)ref=node.protoContent_.querySelector(selector);else if(node.getElementById)ref=node.getElementById(id);if(ref||!node.templateCreator_)break;node=node.templateCreator_}return ref}function getInstanceRoot(node){while(node.parentNode){node=node.parentNode}return node.templateCreator_?node:null}var Map;if(global.Map&&typeof global.Map.prototype.forEach==="function"){Map=global.Map}else{Map=function(){this.keys=[];this.values=[]};Map.prototype={set:function(key,value){var index=this.keys.indexOf(key);if(index<0){this.keys.push(key);this.values.push(value)}else{this.values[index]=value}},get:function(key){var index=this.keys.indexOf(key);if(index<0)return;return this.values[index]},"delete":function(key,value){var index=this.keys.indexOf(key);if(index<0)return false;this.keys.splice(index,1);this.values.splice(index,1);return true},forEach:function(f,opt_this){for(var i=0;i<this.keys.length;i++)f.call(opt_this||this,this.values[i],this.keys[i],this)}}}var createObject="__proto__"in{}?function(obj){return obj}:function(obj){var proto=obj.__proto__;if(!proto)return obj;var newObject=Object.create(proto);Object.getOwnPropertyNames(obj).forEach(function(name){Object.defineProperty(newObject,name,Object.getOwnPropertyDescriptor(obj,name))});return newObject};if(typeof document.contains!="function"){Document.prototype.contains=function(node){if(node===this||node.parentNode===this)return true;return this.documentElement.contains(node)}}var BIND="bind";var REPEAT="repeat";var IF="if";var templateAttributeDirectives={template:true,repeat:true,bind:true,ref:true};var semanticTemplateElements={THEAD:true,TBODY:true,TFOOT:true,TH:true,TR:true,TD:true,COLGROUP:true,COL:true,CAPTION:true,OPTION:true,OPTGROUP:true};var hasTemplateElement=typeof HTMLTemplateElement!=="undefined";if(hasTemplateElement){(function(){var t=document.createElement("template");var d=t.content.ownerDocument;var html=d.appendChild(d.createElement("html"));var head=html.appendChild(d.createElement("head"));var base=d.createElement("base");base.href=document.baseURI;head.appendChild(base)})()}var allTemplatesSelectors="template, "+Object.keys(semanticTemplateElements).map(function(tagName){return tagName.toLowerCase()+"[template]"}).join(", ");function isSVGTemplate(el){return el.tagName=="template"&&el.namespaceURI=="http://www.w3.org/2000/svg"}function isHTMLTemplate(el){return el.tagName=="TEMPLATE"&&el.namespaceURI=="http://www.w3.org/1999/xhtml"}function isAttributeTemplate(el){return Boolean(semanticTemplateElements[el.tagName]&&el.hasAttribute("template"))}function isTemplate(el){if(el.isTemplate_===undefined)el.isTemplate_=el.tagName=="TEMPLATE"||isAttributeTemplate(el);return el.isTemplate_}document.addEventListener("DOMContentLoaded",function(e){bootstrapTemplatesRecursivelyFrom(document);Platform.performMicrotaskCheckpoint()},false);function forAllTemplatesFrom(node,fn){var subTemplates=node.querySelectorAll(allTemplatesSelectors);if(isTemplate(node))fn(node);forEach(subTemplates,fn)}function bootstrapTemplatesRecursivelyFrom(node){function bootstrap(template){if(!HTMLTemplateElement.decorate(template))bootstrapTemplatesRecursivelyFrom(template.content)}forAllTemplatesFrom(node,bootstrap)}if(!hasTemplateElement){global.HTMLTemplateElement=function(){throw TypeError("Illegal constructor")}}var hasProto="__proto__"in{};function mixin(to,from){Object.getOwnPropertyNames(from).forEach(function(name){Object.defineProperty(to,name,Object.getOwnPropertyDescriptor(from,name))})}function getOrCreateTemplateContentsOwner(template){var doc=template.ownerDocument;if(!doc.defaultView)return doc;var d=doc.templateContentsOwner_;if(!d){d=doc.implementation.createHTMLDocument("");while(d.lastChild){d.removeChild(d.lastChild)}doc.templateContentsOwner_=d}return d}function getTemplateStagingDocument(template){if(!template.stagingDocument_){var owner=template.ownerDocument;if(!owner.stagingDocument_){owner.stagingDocument_=owner.implementation.createHTMLDocument("");owner.stagingDocument_.isStagingDocument=true;var base=owner.stagingDocument_.createElement("base");base.href=document.baseURI;owner.stagingDocument_.head.appendChild(base);owner.stagingDocument_.stagingDocument_=owner.stagingDocument_}template.stagingDocument_=owner.stagingDocument_}return template.stagingDocument_}function extractTemplateFromAttributeTemplate(el){var template=el.ownerDocument.createElement("template");el.parentNode.insertBefore(template,el);var attribs=el.attributes;var count=attribs.length;while(count-->0){var attrib=attribs[count];if(templateAttributeDirectives[attrib.name]){if(attrib.name!=="template")template.setAttribute(attrib.name,attrib.value);el.removeAttribute(attrib.name)}}return template}function extractTemplateFromSVGTemplate(el){var template=el.ownerDocument.createElement("template");el.parentNode.insertBefore(template,el);var attribs=el.attributes;var count=attribs.length;while(count-->0){var attrib=attribs[count];template.setAttribute(attrib.name,attrib.value);el.removeAttribute(attrib.name)}el.parentNode.removeChild(el);return template}function liftNonNativeTemplateChildrenIntoContent(template,el,useRoot){var content=template.content;if(useRoot){content.appendChild(el);return}var child;while(child=el.firstChild){content.appendChild(child)}}var templateObserver;if(typeof MutationObserver=="function"){templateObserver=new MutationObserver(function(records){for(var i=0;i<records.length;i++){records[i].target.refChanged_()}})}HTMLTemplateElement.decorate=function(el,opt_instanceRef){if(el.templateIsDecorated_)return false;var templateElement=el;templateElement.templateIsDecorated_=true;var isNativeHTMLTemplate=isHTMLTemplate(templateElement)&&hasTemplateElement;var bootstrapContents=isNativeHTMLTemplate;var liftContents=!isNativeHTMLTemplate;var liftRoot=false;if(!isNativeHTMLTemplate){if(isAttributeTemplate(templateElement)){assert(!opt_instanceRef);templateElement=extractTemplateFromAttributeTemplate(el);templateElement.templateIsDecorated_=true;isNativeHTMLTemplate=hasTemplateElement;liftRoot=true}else if(isSVGTemplate(templateElement)){templateElement=extractTemplateFromSVGTemplate(el);templateElement.templateIsDecorated_=true;isNativeHTMLTemplate=hasTemplateElement}}if(!isNativeHTMLTemplate){fixTemplateElementPrototype(templateElement);var doc=getOrCreateTemplateContentsOwner(templateElement);templateElement.content_=doc.createDocumentFragment()}if(opt_instanceRef){templateElement.instanceRef_=opt_instanceRef}else if(liftContents){liftNonNativeTemplateChildrenIntoContent(templateElement,el,liftRoot)}else if(bootstrapContents){bootstrapTemplatesRecursivelyFrom(templateElement.content)}return true};HTMLTemplateElement.bootstrap=bootstrapTemplatesRecursivelyFrom;var htmlElement=global.HTMLUnknownElement||HTMLElement;var contentDescriptor={get:function(){return this.content_},enumerable:true,configurable:true};if(!hasTemplateElement){HTMLTemplateElement.prototype=Object.create(htmlElement.prototype);Object.defineProperty(HTMLTemplateElement.prototype,"content",contentDescriptor)}function fixTemplateElementPrototype(el){if(hasProto)el.__proto__=HTMLTemplateElement.prototype;else mixin(el,HTMLTemplateElement.prototype)}function ensureSetModelScheduled(template){if(!template.setModelFn_){template.setModelFn_=function(){template.setModelFnScheduled_=false;var map=getBindings(template,template.delegate_&&template.delegate_.prepareBinding);processBindings(template,map,template.model_)}}if(!template.setModelFnScheduled_){template.setModelFnScheduled_=true;Observer.runEOM_(template.setModelFn_)}}mixin(HTMLTemplateElement.prototype,{bind:function(name,value,oneTime){if(name!="ref")return Element.prototype.bind.call(this,name,value,oneTime);var self=this;var ref=oneTime?value:value.open(function(ref){self.setAttribute("ref",ref);self.refChanged_()});this.setAttribute("ref",ref);this.refChanged_();if(oneTime)return;if(!this.bindings_){this.bindings_={ref:value}}else{this.bindings_.ref=value}return value},processBindingDirectives_:function(directives){if(this.iterator_)this.iterator_.closeDeps();if(!directives.if&&!directives.bind&&!directives.repeat){if(this.iterator_){this.iterator_.close();this.iterator_=undefined}return}if(!this.iterator_){this.iterator_=new TemplateIterator(this)}this.iterator_.updateDependencies(directives,this.model_);if(templateObserver){templateObserver.observe(this,{attributes:true,attributeFilter:["ref"]})}return this.iterator_},createInstance:function(model,bindingDelegate,delegate_){if(bindingDelegate)delegate_=this.newDelegate_(bindingDelegate);else if(!delegate_)delegate_=this.delegate_;if(!this.refContent_)this.refContent_=this.ref_.content;var content=this.refContent_;if(content.firstChild===null)return emptyInstance;var map=getInstanceBindingMap(content,delegate_);var stagingDocument=getTemplateStagingDocument(this);var instance=stagingDocument.createDocumentFragment();instance.templateCreator_=this;instance.protoContent_=content;instance.bindings_=[];instance.terminator_=null;var instanceRecord=instance.templateInstance_={firstNode:null,lastNode:null,model:model};var i=0;var collectTerminator=false;for(var child=content.firstChild;child;child=child.nextSibling){if(child.nextSibling===null)collectTerminator=true;var clone=cloneAndBindInstance(child,instance,stagingDocument,map.children[i++],model,delegate_,instance.bindings_);clone.templateInstance_=instanceRecord;if(collectTerminator)instance.terminator_=clone}instanceRecord.firstNode=instance.firstChild;instanceRecord.lastNode=instance.lastChild;instance.templateCreator_=undefined;instance.protoContent_=undefined;return instance},get model(){return this.model_},set model(model){this.model_=model;ensureSetModelScheduled(this)},get bindingDelegate(){return this.delegate_&&this.delegate_.raw},refChanged_:function(){if(!this.iterator_||this.refContent_===this.ref_.content)return;this.refContent_=undefined;this.iterator_.valueChanged();this.iterator_.updateIteratedValue(this.iterator_.getUpdatedValue())},clear:function(){this.model_=undefined;this.delegate_=undefined;if(this.bindings_&&this.bindings_.ref)this.bindings_.ref.close();this.refContent_=undefined;if(!this.iterator_)return;this.iterator_.valueChanged();this.iterator_.close();this.iterator_=undefined},setDelegate_:function(delegate){this.delegate_=delegate;this.bindingMap_=undefined;if(this.iterator_){this.iterator_.instancePositionChangedFn_=undefined;this.iterator_.instanceModelFn_=undefined}},newDelegate_:function(bindingDelegate){if(!bindingDelegate)return;function delegateFn(name){var fn=bindingDelegate&&bindingDelegate[name];if(typeof fn!="function")return;return function(){return fn.apply(bindingDelegate,arguments)}}return{bindingMaps:{},raw:bindingDelegate,prepareBinding:delegateFn("prepareBinding"),prepareInstanceModel:delegateFn("prepareInstanceModel"),prepareInstancePositionChanged:delegateFn("prepareInstancePositionChanged")}},set bindingDelegate(bindingDelegate){if(this.delegate_){throw Error("Template must be cleared before a new bindingDelegate "+"can be assigned")}this.setDelegate_(this.newDelegate_(bindingDelegate))},get ref_(){var ref=searchRefId(this,this.getAttribute("ref"));if(!ref)ref=this.instanceRef_;if(!ref)return this;var nextRef=ref.ref_;return nextRef?nextRef:ref}});function parseMustaches(s,name,node,prepareBindingFn){if(!s||!s.length)return;var tokens;var length=s.length;var startIndex=0,lastIndex=0,endIndex=0;var onlyOneTime=true;while(lastIndex<length){var startIndex=s.indexOf("{{",lastIndex);var oneTimeStart=s.indexOf("[[",lastIndex);var oneTime=false;var terminator="}}";if(oneTimeStart>=0&&(startIndex<0||oneTimeStart<startIndex)){startIndex=oneTimeStart;oneTime=true;terminator="]]"}endIndex=startIndex<0?-1:s.indexOf(terminator,startIndex+2);if(endIndex<0){if(!tokens)return;tokens.push(s.slice(lastIndex));break}tokens=tokens||[];tokens.push(s.slice(lastIndex,startIndex));var pathString=s.slice(startIndex+2,endIndex).trim();tokens.push(oneTime);onlyOneTime=onlyOneTime&&oneTime;var delegateFn=prepareBindingFn&&prepareBindingFn(pathString,name,node);if(delegateFn==null){tokens.push(Path.get(pathString))}else{tokens.push(null)}tokens.push(delegateFn);lastIndex=endIndex+2}if(lastIndex===length)tokens.push("");tokens.hasOnePath=tokens.length===5;tokens.isSimplePath=tokens.hasOnePath&&tokens[0]==""&&tokens[4]=="";tokens.onlyOneTime=onlyOneTime;tokens.combinator=function(values){var newValue=tokens[0];for(var i=1;i<tokens.length;i+=4){var value=tokens.hasOnePath?values:values[(i-1)/4];if(value!==undefined)newValue+=value;newValue+=tokens[i+3]}return newValue};return tokens}function processOneTimeBinding(name,tokens,node,model){if(tokens.hasOnePath){var delegateFn=tokens[3];var value=delegateFn?delegateFn(model,node,true):tokens[2].getValueFrom(model);return tokens.isSimplePath?value:tokens.combinator(value)}var values=[];for(var i=1;i<tokens.length;i+=4){var delegateFn=tokens[i+2];values[(i-1)/4]=delegateFn?delegateFn(model,node):tokens[i+1].getValueFrom(model)}return tokens.combinator(values)}function processSinglePathBinding(name,tokens,node,model){var delegateFn=tokens[3];var observer=delegateFn?delegateFn(model,node,false):new PathObserver(model,tokens[2]);return tokens.isSimplePath?observer:new ObserverTransform(observer,tokens.combinator)}function processBinding(name,tokens,node,model){if(tokens.onlyOneTime)return processOneTimeBinding(name,tokens,node,model);if(tokens.hasOnePath)return processSinglePathBinding(name,tokens,node,model);var observer=new CompoundObserver;for(var i=1;i<tokens.length;i+=4){var oneTime=tokens[i];var delegateFn=tokens[i+2];if(delegateFn){var value=delegateFn(model,node,oneTime);if(oneTime)observer.addPath(value);else observer.addObserver(value);continue}var path=tokens[i+1];if(oneTime)observer.addPath(path.getValueFrom(model));else observer.addPath(model,path)}return new ObserverTransform(observer,tokens.combinator)}function processBindings(node,bindings,model,instanceBindings){for(var i=0;i<bindings.length;i+=2){var name=bindings[i];var tokens=bindings[i+1];var value=processBinding(name,tokens,node,model);var binding=node.bind(name,value,tokens.onlyOneTime);if(binding&&instanceBindings)instanceBindings.push(binding)}node.bindFinished();if(!bindings.isTemplate)return;node.model_=model;var iter=node.processBindingDirectives_(bindings);if(instanceBindings&&iter)instanceBindings.push(iter)}function parseWithDefault(el,name,prepareBindingFn){var v=el.getAttribute(name);return parseMustaches(v==""?"{{}}":v,name,el,prepareBindingFn)}function parseAttributeBindings(element,prepareBindingFn){assert(element);var bindings=[];var ifFound=false;var bindFound=false;for(var i=0;i<element.attributes.length;i++){var attr=element.attributes[i];var name=attr.name;var value=attr.value;while(name[0]==="_"){name=name.substring(1)}if(isTemplate(element)&&(name===IF||name===BIND||name===REPEAT)){continue}var tokens=parseMustaches(value,name,element,prepareBindingFn);if(!tokens)continue;bindings.push(name,tokens)}if(isTemplate(element)){bindings.isTemplate=true;bindings.if=parseWithDefault(element,IF,prepareBindingFn);bindings.bind=parseWithDefault(element,BIND,prepareBindingFn);bindings.repeat=parseWithDefault(element,REPEAT,prepareBindingFn);if(bindings.if&&!bindings.bind&&!bindings.repeat)bindings.bind=parseMustaches("{{}}",BIND,element,prepareBindingFn)}return bindings}function getBindings(node,prepareBindingFn){if(node.nodeType===Node.ELEMENT_NODE)return parseAttributeBindings(node,prepareBindingFn);if(node.nodeType===Node.TEXT_NODE){var tokens=parseMustaches(node.data,"textContent",node,prepareBindingFn);if(tokens)return["textContent",tokens]}return[]}function cloneAndBindInstance(node,parent,stagingDocument,bindings,model,delegate,instanceBindings,instanceRecord){var clone=parent.appendChild(stagingDocument.importNode(node,false));var i=0;for(var child=node.firstChild;child;child=child.nextSibling){cloneAndBindInstance(child,clone,stagingDocument,bindings.children[i++],model,delegate,instanceBindings)}if(bindings.isTemplate){HTMLTemplateElement.decorate(clone,node);if(delegate)clone.setDelegate_(delegate)}processBindings(clone,bindings,model,instanceBindings);return clone}function createInstanceBindingMap(node,prepareBindingFn){var map=getBindings(node,prepareBindingFn);map.children={};var index=0;for(var child=node.firstChild;child;child=child.nextSibling){map.children[index++]=createInstanceBindingMap(child,prepareBindingFn)}return map}var contentUidCounter=1;function getContentUid(content){var id=content.id_;if(!id)id=content.id_=contentUidCounter++;return id}function getInstanceBindingMap(content,delegate_){var contentId=getContentUid(content);if(delegate_){var map=delegate_.bindingMaps[contentId];if(!map){map=delegate_.bindingMaps[contentId]=createInstanceBindingMap(content,delegate_.prepareBinding)||[]}return map}var map=content.bindingMap_;if(!map){map=content.bindingMap_=createInstanceBindingMap(content,undefined)||[]}return map}Object.defineProperty(Node.prototype,"templateInstance",{get:function(){var instance=this.templateInstance_;return instance?instance:this.parentNode?this.parentNode.templateInstance:undefined}});var emptyInstance=document.createDocumentFragment();emptyInstance.bindings_=[];emptyInstance.terminator_=null;function TemplateIterator(templateElement){this.closed=false;this.templateElement_=templateElement;this.instances=[];this.deps=undefined;this.iteratedValue=[];this.presentValue=undefined;this.arrayObserver=undefined}TemplateIterator.prototype={closeDeps:function(){var deps=this.deps;if(deps){if(deps.ifOneTime===false)deps.ifValue.close();if(deps.oneTime===false)deps.value.close()}},updateDependencies:function(directives,model){this.closeDeps();var deps=this.deps={};var template=this.templateElement_;var ifValue=true;if(directives.if){deps.hasIf=true;deps.ifOneTime=directives.if.onlyOneTime;deps.ifValue=processBinding(IF,directives.if,template,model);ifValue=deps.ifValue;if(deps.ifOneTime&&!ifValue){this.valueChanged();return}if(!deps.ifOneTime)ifValue=ifValue.open(this.updateIfValue,this)}if(directives.repeat){deps.repeat=true;deps.oneTime=directives.repeat.onlyOneTime;deps.value=processBinding(REPEAT,directives.repeat,template,model)}else{deps.repeat=false;deps.oneTime=directives.bind.onlyOneTime;deps.value=processBinding(BIND,directives.bind,template,model)}var value=deps.value;if(!deps.oneTime)value=value.open(this.updateIteratedValue,this);if(!ifValue){this.valueChanged();return}this.updateValue(value)},getUpdatedValue:function(){var value=this.deps.value;if(!this.deps.oneTime)value=value.discardChanges();return value},updateIfValue:function(ifValue){if(!ifValue){this.valueChanged();return}this.updateValue(this.getUpdatedValue())},updateIteratedValue:function(value){if(this.deps.hasIf){var ifValue=this.deps.ifValue;if(!this.deps.ifOneTime)ifValue=ifValue.discardChanges();if(!ifValue){this.valueChanged();return}}this.updateValue(value)},updateValue:function(value){if(!this.deps.repeat)value=[value];var observe=this.deps.repeat&&!this.deps.oneTime&&Array.isArray(value);this.valueChanged(value,observe)},valueChanged:function(value,observeValue){if(!Array.isArray(value))value=[];if(value===this.iteratedValue)return;this.unobserve();this.presentValue=value;if(observeValue){this.arrayObserver=new ArrayObserver(this.presentValue);this.arrayObserver.open(this.handleSplices,this)}this.handleSplices(ArrayObserver.calculateSplices(this.presentValue,this.iteratedValue))},getLastInstanceNode:function(index){if(index==-1)return this.templateElement_;var instance=this.instances[index];var terminator=instance.terminator_;if(!terminator)return this.getLastInstanceNode(index-1);if(terminator.nodeType!==Node.ELEMENT_NODE||this.templateElement_===terminator){return terminator}var subtemplateIterator=terminator.iterator_;if(!subtemplateIterator)return terminator;return subtemplateIterator.getLastTemplateNode()},getLastTemplateNode:function(){return this.getLastInstanceNode(this.instances.length-1)},insertInstanceAt:function(index,fragment){var previousInstanceLast=this.getLastInstanceNode(index-1);var parent=this.templateElement_.parentNode;this.instances.splice(index,0,fragment);parent.insertBefore(fragment,previousInstanceLast.nextSibling)},extractInstanceAt:function(index){var previousInstanceLast=this.getLastInstanceNode(index-1);var lastNode=this.getLastInstanceNode(index);var parent=this.templateElement_.parentNode;var instance=this.instances.splice(index,1)[0];while(lastNode!==previousInstanceLast){var node=previousInstanceLast.nextSibling;if(node==lastNode)lastNode=previousInstanceLast;instance.appendChild(parent.removeChild(node))}return instance},getDelegateFn:function(fn){fn=fn&&fn(this.templateElement_);return typeof fn==="function"?fn:null},handleSplices:function(splices){if(this.closed||!splices.length)return;var template=this.templateElement_;if(!template.parentNode){this.close();return}ArrayObserver.applySplices(this.iteratedValue,this.presentValue,splices);var delegate=template.delegate_;if(this.instanceModelFn_===undefined){this.instanceModelFn_=this.getDelegateFn(delegate&&delegate.prepareInstanceModel)}if(this.instancePositionChangedFn_===undefined){this.instancePositionChangedFn_=this.getDelegateFn(delegate&&delegate.prepareInstancePositionChanged)}var instanceCache=new Map;var removeDelta=0;for(var i=0;i<splices.length;i++){var splice=splices[i];var removed=splice.removed;for(var j=0;j<removed.length;j++){var model=removed[j];var instance=this.extractInstanceAt(splice.index+removeDelta);if(instance!==emptyInstance){instanceCache.set(model,instance)}}removeDelta-=splice.addedCount}for(var i=0;i<splices.length;i++){var splice=splices[i];var addIndex=splice.index;for(;addIndex<splice.index+splice.addedCount;addIndex++){var model=this.iteratedValue[addIndex];var instance=instanceCache.get(model);if(instance){instanceCache.delete(model)}else{if(this.instanceModelFn_){model=this.instanceModelFn_(model)}if(model===undefined){instance=emptyInstance}else{instance=template.createInstance(model,undefined,delegate)}}this.insertInstanceAt(addIndex,instance)}}instanceCache.forEach(function(instance){this.closeInstanceBindings(instance)},this);if(this.instancePositionChangedFn_)this.reportInstancesMoved(splices)},reportInstanceMoved:function(index){var instance=this.instances[index];if(instance===emptyInstance)return;this.instancePositionChangedFn_(instance.templateInstance_,index)},reportInstancesMoved:function(splices){var index=0;var offset=0;for(var i=0;i<splices.length;i++){var splice=splices[i];if(offset!=0){while(index<splice.index){this.reportInstanceMoved(index);index++}}else{index=splice.index}while(index<splice.index+splice.addedCount){this.reportInstanceMoved(index);index++}offset+=splice.addedCount-splice.removed.length}if(offset==0)return;var length=this.instances.length;while(index<length){this.reportInstanceMoved(index);index++}},closeInstanceBindings:function(instance){var bindings=instance.bindings_;for(var i=0;i<bindings.length;i++){bindings[i].close()}},unobserve:function(){if(!this.arrayObserver)return;this.arrayObserver.close();this.arrayObserver=undefined},close:function(){if(this.closed)return;this.unobserve();for(var i=0;i<this.instances.length;i++){this.closeInstanceBindings(this.instances[i])}this.instances.length=0;this.closeDeps();this.templateElement_.iterator_=undefined;this.closed=true}};HTMLTemplateElement.forAllTemplatesFrom_=forAllTemplatesFrom})(this);(function(scope){"use strict";var hasWorkingUrl=false;if(!scope.forceJURL){try{var u=new URL("b","http://a");hasWorkingUrl=u.href==="http://a/b"}catch(e){}}if(hasWorkingUrl)return;var relative=Object.create(null);relative["ftp"]=21;relative["file"]=0;relative["gopher"]=70;relative["http"]=80;relative["https"]=443;relative["ws"]=80;relative["wss"]=443;var relativePathDotMapping=Object.create(null);relativePathDotMapping["%2e"]=".";relativePathDotMapping[".%2e"]="..";relativePathDotMapping["%2e."]="..";relativePathDotMapping["%2e%2e"]="..";function isRelativeScheme(scheme){return relative[scheme]!==undefined}function invalid(){clear.call(this);this._isInvalid=true}function IDNAToASCII(h){if(""==h){invalid.call(this)}return h.toLowerCase()}function percentEscape(c){var unicode=c.charCodeAt(0);if(unicode>32&&unicode<127&&[34,35,60,62,63,96].indexOf(unicode)==-1){return c}return encodeURIComponent(c)}function percentEscapeQuery(c){var unicode=c.charCodeAt(0);if(unicode>32&&unicode<127&&[34,35,60,62,96].indexOf(unicode)==-1){return c}return encodeURIComponent(c)}var EOF=undefined,ALPHA=/[a-zA-Z]/,ALPHANUMERIC=/[a-zA-Z0-9\+\-\.]/;function parse(input,stateOverride,base){function err(message){errors.push(message)}var state=stateOverride||"scheme start",cursor=0,buffer="",seenAt=false,seenBracket=false,errors=[];loop:while((input[cursor-1]!=EOF||cursor==0)&&!this._isInvalid){var c=input[cursor];switch(state){case"scheme start":if(c&&ALPHA.test(c)){buffer+=c.toLowerCase();state="scheme"}else if(!stateOverride){buffer="";state="no scheme";continue}else{err("Invalid scheme.");break loop}break;case"scheme":if(c&&ALPHANUMERIC.test(c)){buffer+=c.toLowerCase()}else if(":"==c){this._scheme=buffer;buffer="";if(stateOverride){break loop}if(isRelativeScheme(this._scheme)){this._isRelative=true}if("file"==this._scheme){state="relative"}else if(this._isRelative&&base&&base._scheme==this._scheme){state="relative or authority"}else if(this._isRelative){state="authority first slash"}else{state="scheme data"}}else if(!stateOverride){buffer="";cursor=0;state="no scheme";continue}else if(EOF==c){break loop}else{err("Code point not allowed in scheme: "+c);break loop}break;case"scheme data":if("?"==c){query="?";state="query"}else if("#"==c){this._fragment="#";state="fragment"}else{if(EOF!=c&&"	"!=c&&"\n"!=c&&"\r"!=c){this._schemeData+=percentEscape(c)}}break;case"no scheme":if(!base||!isRelativeScheme(base._scheme)){err("Missing scheme.");invalid.call(this)}else{state="relative";continue}break;case"relative or authority":if("/"==c&&"/"==input[cursor+1]){state="authority ignore slashes"}else{err("Expected /, got: "+c);state="relative";continue}break;case"relative":this._isRelative=true;if("file"!=this._scheme)this._scheme=base._scheme;if(EOF==c){this._host=base._host;this._port=base._port;this._path=base._path.slice();this._query=base._query;break loop}else if("/"==c||"\\"==c){if("\\"==c)err("\\ is an invalid code point.");state="relative slash"}else if("?"==c){this._host=base._host;this._port=base._port;this._path=base._path.slice();this._query="?";state="query"}else if("#"==c){this._host=base._host;this._port=base._port;this._path=base._path.slice();this._query=base._query;this._fragment="#";state="fragment"}else{var nextC=input[cursor+1];var nextNextC=input[cursor+2];if("file"!=this._scheme||!ALPHA.test(c)||nextC!=":"&&nextC!="|"||EOF!=nextNextC&&"/"!=nextNextC&&"\\"!=nextNextC&&"?"!=nextNextC&&"#"!=nextNextC){this._host=base._host;this._port=base._port;this._path=base._path.slice();this._path.pop()}state="relative path";continue}break;case"relative slash":if("/"==c||"\\"==c){if("\\"==c){err("\\ is an invalid code point.")}if("file"==this._scheme){state="file host"}else{state="authority ignore slashes"}}else{if("file"!=this._scheme){this._host=base._host;this._port=base._port}state="relative path";continue}break;case"authority first slash":if("/"==c){state="authority second slash"}else{err("Expected '/', got: "+c);state="authority ignore slashes";continue}break;case"authority second slash":state="authority ignore slashes";if("/"!=c){err("Expected '/', got: "+c);continue}break;case"authority ignore slashes":if("/"!=c&&"\\"!=c){state="authority";continue}else{err("Expected authority, got: "+c)}break;case"authority":if("@"==c){if(seenAt){err("@ already seen.");buffer+="%40"}seenAt=true;for(var i=0;i<buffer.length;i++){var cp=buffer[i];if("	"==cp||"\n"==cp||"\r"==cp){err("Invalid whitespace in authority.");continue}if(":"==cp&&null===this._password){this._password="";continue}var tempC=percentEscape(cp);null!==this._password?this._password+=tempC:this._username+=tempC}buffer=""}else if(EOF==c||"/"==c||"\\"==c||"?"==c||"#"==c){cursor-=buffer.length;buffer="";state="host";continue}else{buffer+=c}break;case"file host":if(EOF==c||"/"==c||"\\"==c||"?"==c||"#"==c){if(buffer.length==2&&ALPHA.test(buffer[0])&&(buffer[1]==":"||buffer[1]=="|")){state="relative path"}else if(buffer.length==0){state="relative path start"}else{this._host=IDNAToASCII.call(this,buffer);buffer="";state="relative path start"}continue}else if("	"==c||"\n"==c||"\r"==c){err("Invalid whitespace in file host.")}else{buffer+=c}break;case"host":case"hostname":if(":"==c&&!seenBracket){this._host=IDNAToASCII.call(this,buffer);buffer="";state="port";if("hostname"==stateOverride){break loop}}else if(EOF==c||"/"==c||"\\"==c||"?"==c||"#"==c){this._host=IDNAToASCII.call(this,buffer);buffer="";state="relative path start";if(stateOverride){break loop}continue}else if("	"!=c&&"\n"!=c&&"\r"!=c){if("["==c){seenBracket=true}else if("]"==c){seenBracket=false}buffer+=c}else{err("Invalid code point in host/hostname: "+c)}break;case"port":if(/[0-9]/.test(c)){buffer+=c}else if(EOF==c||"/"==c||"\\"==c||"?"==c||"#"==c||stateOverride){if(""!=buffer){var temp=parseInt(buffer,10);if(temp!=relative[this._scheme]){this._port=temp+""}buffer=""}if(stateOverride){break loop}state="relative path start";continue}else if("	"==c||"\n"==c||"\r"==c){err("Invalid code point in port: "+c)}else{invalid.call(this)}break;case"relative path start":if("\\"==c)err("'\\' not allowed in path.");state="relative path";if("/"!=c&&"\\"!=c){continue}break;case"relative path":if(EOF==c||"/"==c||"\\"==c||!stateOverride&&("?"==c||"#"==c)){if("\\"==c){err("\\ not allowed in relative path.")}var tmp;if(tmp=relativePathDotMapping[buffer.toLowerCase()]){buffer=tmp}if(".."==buffer){this._path.pop();if("/"!=c&&"\\"!=c){this._path.push("")}}else if("."==buffer&&"/"!=c&&"\\"!=c){this._path.push("")}else if("."!=buffer){if("file"==this._scheme&&this._path.length==0&&buffer.length==2&&ALPHA.test(buffer[0])&&buffer[1]=="|"){buffer=buffer[0]+":"}this._path.push(buffer)}buffer="";if("?"==c){this._query="?";state="query"}else if("#"==c){this._fragment="#";state="fragment"}}else if("	"!=c&&"\n"!=c&&"\r"!=c){buffer+=percentEscape(c)}break;case"query":if(!stateOverride&&"#"==c){this._fragment="#";state="fragment"}else if(EOF!=c&&"	"!=c&&"\n"!=c&&"\r"!=c){this._query+=percentEscapeQuery(c)}break;case"fragment":if(EOF!=c&&"	"!=c&&"\n"!=c&&"\r"!=c){this._fragment+=c}break}cursor++}}function clear(){this._scheme="";this._schemeData="";this._username="";this._password=null;this._host="";this._port="";this._path=[];this._query="";this._fragment="";this._isInvalid=false;this._isRelative=false}function jURL(url,base){if(base!==undefined&&!(base instanceof jURL))base=new jURL(String(base));this._url=url;clear.call(this);var input=url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g,"");parse.call(this,input,null,base)}jURL.prototype={get href(){if(this._isInvalid)return this._url;var authority="";if(""!=this._username||null!=this._password){authority=this._username+(null!=this._password?":"+this._password:"")+"@"}return this.protocol+(this._isRelative?"//"+authority+this.host:"")+this.pathname+this._query+this._fragment},set href(href){clear.call(this);parse.call(this,href)},get protocol(){return this._scheme+":"},set protocol(protocol){if(this._isInvalid)return;parse.call(this,protocol+":","scheme start")},get host(){return this._isInvalid?"":this._port?this._host+":"+this._port:this._host},set host(host){if(this._isInvalid||!this._isRelative)return;parse.call(this,host,"host")},get hostname(){return this._host},set hostname(hostname){if(this._isInvalid||!this._isRelative)return;parse.call(this,hostname,"hostname")},get port(){return this._port},set port(port){if(this._isInvalid||!this._isRelative)return;parse.call(this,port,"port")},get pathname(){return this._isInvalid?"":this._isRelative?"/"+this._path.join("/"):this._schemeData
-},set pathname(pathname){if(this._isInvalid||!this._isRelative)return;this._path=[];parse.call(this,pathname,"relative path start")},get search(){return this._isInvalid||!this._query||"?"==this._query?"":this._query},set search(search){if(this._isInvalid||!this._isRelative)return;this._query="?";if("?"==search[0])search=search.slice(1);parse.call(this,search,"query")},get hash(){return this._isInvalid||!this._fragment||"#"==this._fragment?"":this._fragment},set hash(hash){if(this._isInvalid)return;this._fragment="#";if("#"==hash[0])hash=hash.slice(1);parse.call(this,hash,"fragment")},get origin(){var host;if(this._isInvalid||!this._scheme){return""}switch(this._scheme){case"data":case"file":case"javascript":case"mailto":return"null"}host=this.host;if(!host){return""}return this._scheme+"://"+host}};var OriginalURL=scope.URL;if(OriginalURL){jURL.createObjectURL=function(blob){return OriginalURL.createObjectURL.apply(OriginalURL,arguments)};jURL.revokeObjectURL=function(url){OriginalURL.revokeObjectURL(url)}}scope.URL=jURL})(this);(function(scope){var iterations=0;var callbacks=[];var twiddle=document.createTextNode("");function endOfMicrotask(callback){twiddle.textContent=iterations++;callbacks.push(callback)}function atEndOfMicrotask(){while(callbacks.length){callbacks.shift()()}}new(window.MutationObserver||JsMutationObserver)(atEndOfMicrotask).observe(twiddle,{characterData:true});scope.endOfMicrotask=endOfMicrotask;Platform.endOfMicrotask=endOfMicrotask})(Polymer);(function(scope){var endOfMicrotask=scope.endOfMicrotask;var log=window.WebComponents?WebComponents.flags.log:{};var style=document.createElement("style");style.textContent="template {display: none !important;} /* injected by platform.js */";var head=document.querySelector("head");head.insertBefore(style,head.firstChild);var flushing;function flush(){if(!flushing){flushing=true;endOfMicrotask(function(){flushing=false;log.data&&console.group("flush");Platform.performMicrotaskCheckpoint();log.data&&console.groupEnd()})}}if(!Observer.hasObjectObserve){var FLUSH_POLL_INTERVAL=125;window.addEventListener("WebComponentsReady",function(){flush();var visibilityHandler=function(){if(document.visibilityState==="hidden"){if(scope.flushPoll){clearInterval(scope.flushPoll)}}else{scope.flushPoll=setInterval(flush,FLUSH_POLL_INTERVAL)}};if(typeof document.visibilityState==="string"){document.addEventListener("visibilitychange",visibilityHandler)}visibilityHandler()})}else{flush=function(){}}if(window.CustomElements&&!CustomElements.useNative){var originalImportNode=Document.prototype.importNode;Document.prototype.importNode=function(node,deep){var imported=originalImportNode.call(this,node,deep);CustomElements.upgradeAll(imported);return imported}}scope.flush=flush;Platform.flush=flush})(window.Polymer);(function(scope){var urlResolver={resolveDom:function(root,url){url=url||baseUrl(root);this.resolveAttributes(root,url);this.resolveStyles(root,url);var templates=root.querySelectorAll("template");if(templates){for(var i=0,l=templates.length,t;i<l&&(t=templates[i]);i++){if(t.content){this.resolveDom(t.content,url)}}}},resolveTemplate:function(template){this.resolveDom(template.content,baseUrl(template))},resolveStyles:function(root,url){var styles=root.querySelectorAll("style");if(styles){for(var i=0,l=styles.length,s;i<l&&(s=styles[i]);i++){this.resolveStyle(s,url)}}},resolveStyle:function(style,url){url=url||baseUrl(style);style.textContent=this.resolveCssText(style.textContent,url)},resolveCssText:function(cssText,baseUrl,keepAbsolute){cssText=replaceUrlsInCssText(cssText,baseUrl,keepAbsolute,CSS_URL_REGEXP);return replaceUrlsInCssText(cssText,baseUrl,keepAbsolute,CSS_IMPORT_REGEXP)},resolveAttributes:function(root,url){if(root.hasAttributes&&root.hasAttributes()){this.resolveElementAttributes(root,url)}var nodes=root&&root.querySelectorAll(URL_ATTRS_SELECTOR);if(nodes){for(var i=0,l=nodes.length,n;i<l&&(n=nodes[i]);i++){this.resolveElementAttributes(n,url)}}},resolveElementAttributes:function(node,url){url=url||baseUrl(node);URL_ATTRS.forEach(function(v){var attr=node.attributes[v];var value=attr&&attr.value;var replacement;if(value&&value.search(URL_TEMPLATE_SEARCH)<0){if(v==="style"){replacement=replaceUrlsInCssText(value,url,false,CSS_URL_REGEXP)}else{replacement=resolveRelativeUrl(url,value)}attr.value=replacement}})}};var CSS_URL_REGEXP=/(url\()([^)]*)(\))/g;var CSS_IMPORT_REGEXP=/(@import[\s]+(?!url\())([^;]*)(;)/g;var URL_ATTRS=["href","src","action","style","url"];var URL_ATTRS_SELECTOR="["+URL_ATTRS.join("],[")+"]";var URL_TEMPLATE_SEARCH="{{.*}}";var URL_HASH="#";function baseUrl(node){var u=new URL(node.ownerDocument.baseURI);u.search="";u.hash="";return u}function replaceUrlsInCssText(cssText,baseUrl,keepAbsolute,regexp){return cssText.replace(regexp,function(m,pre,url,post){var urlPath=url.replace(/["']/g,"");urlPath=resolveRelativeUrl(baseUrl,urlPath,keepAbsolute);return pre+"'"+urlPath+"'"+post})}function resolveRelativeUrl(baseUrl,url,keepAbsolute){if(url&&url[0]==="/"){return url}var u=new URL(url,baseUrl);return keepAbsolute?u.href:makeDocumentRelPath(u.href)}function makeDocumentRelPath(url){var root=baseUrl(document.documentElement);var u=new URL(url,root);if(u.host===root.host&&u.port===root.port&&u.protocol===root.protocol){return makeRelPath(root,u)}else{return url}}function makeRelPath(sourceUrl,targetUrl){var source=sourceUrl.pathname;var target=targetUrl.pathname;var s=source.split("/");var t=target.split("/");while(s.length&&s[0]===t[0]){s.shift();t.shift()}for(var i=0,l=s.length-1;i<l;i++){t.unshift("..")}var hash=targetUrl.href.slice(-1)===URL_HASH?URL_HASH:targetUrl.hash;return t.join("/")+targetUrl.search+hash}scope.urlResolver=urlResolver})(Polymer);(function(scope){var endOfMicrotask=Polymer.endOfMicrotask;function Loader(regex){this.cache=Object.create(null);this.map=Object.create(null);this.requests=0;this.regex=regex}Loader.prototype={extractUrls:function(text,base){var matches=[];var matched,u;while(matched=this.regex.exec(text)){u=new URL(matched[1],base);matches.push({matched:matched[0],url:u.href})}return matches},process:function(text,root,callback){var matches=this.extractUrls(text,root);var done=callback.bind(null,this.map);this.fetch(matches,done)},fetch:function(matches,callback){var inflight=matches.length;if(!inflight){return callback()}var done=function(){if(--inflight===0){callback()}};var m,req,url;for(var i=0;i<inflight;i++){m=matches[i];url=m.url;req=this.cache[url];if(!req){req=this.xhr(url);req.match=m;this.cache[url]=req}req.wait(done)}},handleXhr:function(request){var match=request.match;var url=match.url;var response=request.response||request.responseText||"";this.map[url]=response;this.fetch(this.extractUrls(response,url),request.resolve)},xhr:function(url){this.requests++;var request=new XMLHttpRequest;request.open("GET",url,true);request.send();request.onerror=request.onload=this.handleXhr.bind(this,request);request.pending=[];request.resolve=function(){var pending=request.pending;for(var i=0;i<pending.length;i++){pending[i]()}request.pending=null};request.wait=function(fn){if(request.pending){request.pending.push(fn)}else{endOfMicrotask(fn)}};return request}};scope.Loader=Loader})(Polymer);(function(scope){var urlResolver=scope.urlResolver;var Loader=scope.Loader;function StyleResolver(){this.loader=new Loader(this.regex)}StyleResolver.prototype={regex:/@import\s+(?:url)?["'\(]*([^'"\)]*)['"\)]*;/g,resolve:function(text,url,callback){var done=function(map){callback(this.flatten(text,url,map))}.bind(this);this.loader.process(text,url,done)},resolveNode:function(style,url,callback){var text=style.textContent;var done=function(text){style.textContent=text;callback(style)};this.resolve(text,url,done)},flatten:function(text,base,map){var matches=this.loader.extractUrls(text,base);var match,url,intermediate;for(var i=0;i<matches.length;i++){match=matches[i];url=match.url;intermediate=urlResolver.resolveCssText(map[url],url,true);intermediate=this.flatten(intermediate,base,map);text=text.replace(match.matched,intermediate)}return text},loadStyles:function(styles,base,callback){var loaded=0,l=styles.length;function loadedStyle(style){loaded++;if(loaded===l&&callback){callback()}}for(var i=0,s;i<l&&(s=styles[i]);i++){this.resolveNode(s,base,loadedStyle)}}};var styleResolver=new StyleResolver;scope.styleResolver=styleResolver})(Polymer);(function(scope){function extend(prototype,api){if(prototype&&api){Object.getOwnPropertyNames(api).forEach(function(n){var pd=Object.getOwnPropertyDescriptor(api,n);if(pd){Object.defineProperty(prototype,n,pd);if(typeof pd.value=="function"){pd.value.nom=n}}})}return prototype}function mixin(inObj){var obj=inObj||{};for(var i=1;i<arguments.length;i++){var p=arguments[i];try{for(var n in p){copyProperty(n,p,obj)}}catch(x){}}return obj}function copyProperty(inName,inSource,inTarget){var pd=getPropertyDescriptor(inSource,inName);Object.defineProperty(inTarget,inName,pd)}function getPropertyDescriptor(inObject,inName){if(inObject){var pd=Object.getOwnPropertyDescriptor(inObject,inName);return pd||getPropertyDescriptor(Object.getPrototypeOf(inObject),inName)}}scope.extend=extend;scope.mixin=mixin;Platform.mixin=mixin})(Polymer);(function(scope){var Job=function(inContext){this.context=inContext;this.boundComplete=this.complete.bind(this)};Job.prototype={go:function(callback,wait){this.callback=callback;var h;if(!wait){h=requestAnimationFrame(this.boundComplete);this.handle=function(){cancelAnimationFrame(h)}}else{h=setTimeout(this.boundComplete,wait);this.handle=function(){clearTimeout(h)}}},stop:function(){if(this.handle){this.handle();this.handle=null}},complete:function(){if(this.handle){this.stop();this.callback.call(this.context)}}};function job(job,callback,wait){if(job){job.stop()}else{job=new Job(this)}job.go(callback,wait);return job}scope.job=job})(Polymer);(function(scope){var registry={};HTMLElement.register=function(tag,prototype){registry[tag]=prototype};HTMLElement.getPrototypeForTag=function(tag){var prototype=!tag?HTMLElement.prototype:registry[tag];return prototype||Object.getPrototypeOf(document.createElement(tag))};var originalStopPropagation=Event.prototype.stopPropagation;Event.prototype.stopPropagation=function(){this.cancelBubble=true;originalStopPropagation.apply(this,arguments)};var add=DOMTokenList.prototype.add;var remove=DOMTokenList.prototype.remove;DOMTokenList.prototype.add=function(){for(var i=0;i<arguments.length;i++){add.call(this,arguments[i])}};DOMTokenList.prototype.remove=function(){for(var i=0;i<arguments.length;i++){remove.call(this,arguments[i])}};DOMTokenList.prototype.toggle=function(name,bool){if(arguments.length==1){bool=!this.contains(name)}bool?this.add(name):this.remove(name)};DOMTokenList.prototype.switch=function(oldName,newName){oldName&&this.remove(oldName);newName&&this.add(newName)};var ArraySlice=function(){return Array.prototype.slice.call(this)};var namedNodeMap=window.NamedNodeMap||window.MozNamedAttrMap||{};NodeList.prototype.array=ArraySlice;namedNodeMap.prototype.array=ArraySlice;HTMLCollection.prototype.array=ArraySlice;function createDOM(inTagOrNode,inHTML,inAttrs){var dom=typeof inTagOrNode=="string"?document.createElement(inTagOrNode):inTagOrNode.cloneNode(true);dom.innerHTML=inHTML;if(inAttrs){for(var n in inAttrs){dom.setAttribute(n,inAttrs[n])}}return dom}scope.createDOM=createDOM})(Polymer);(function(scope){function $super(arrayOfArgs){var caller=$super.caller;var nom=caller.nom;var _super=caller._super;if(!_super){if(!nom){nom=caller.nom=nameInThis.call(this,caller)}if(!nom){console.warn("called super() on a method not installed declaratively (has no .nom property)")}_super=memoizeSuper(caller,nom,getPrototypeOf(this))}var fn=_super[nom];if(fn){if(!fn._super){memoizeSuper(fn,nom,_super)}return fn.apply(this,arrayOfArgs||[])}}function nameInThis(value){var p=this.__proto__;while(p&&p!==HTMLElement.prototype){var n$=Object.getOwnPropertyNames(p);for(var i=0,l=n$.length,n;i<l&&(n=n$[i]);i++){var d=Object.getOwnPropertyDescriptor(p,n);if(typeof d.value==="function"&&d.value===value){return n}}p=p.__proto__}}function memoizeSuper(method,name,proto){var s=nextSuper(proto,name,method);if(s[name]){s[name].nom=name}return method._super=s}function nextSuper(proto,name,caller){while(proto){if(proto[name]!==caller&&proto[name]){return proto}proto=getPrototypeOf(proto)}return Object}function getPrototypeOf(prototype){return prototype.__proto__}function hintSuper(prototype){for(var n in prototype){var pd=Object.getOwnPropertyDescriptor(prototype,n);if(pd&&typeof pd.value==="function"){pd.value.nom=n}}}scope.super=$super})(Polymer);(function(scope){function noopHandler(value){return value}var typeHandlers={string:noopHandler,undefined:noopHandler,date:function(value){return new Date(Date.parse(value)||Date.now())},"boolean":function(value){if(value===""){return true}return value==="false"?false:!!value},number:function(value){var n=parseFloat(value);if(n===0){n=parseInt(value)}return isNaN(n)?value:n},object:function(value,currentValue){if(currentValue===null){return value}try{return JSON.parse(value.replace(/'/g,'"'))}catch(e){return value}},"function":function(value,currentValue){return currentValue}};function deserializeValue(value,currentValue){var inferredType=typeof currentValue;if(currentValue instanceof Date){inferredType="date"}return typeHandlers[inferredType](value,currentValue)}scope.deserializeValue=deserializeValue})(Polymer);(function(scope){var extend=scope.extend;var api={};api.declaration={};api.instance={};api.publish=function(apis,prototype){for(var n in apis){extend(prototype,apis[n])}};scope.api=api})(Polymer);(function(scope){var utils={async:function(method,args,timeout){Polymer.flush();args=args&&args.length?args:[args];var fn=function(){(this[method]||method).apply(this,args)}.bind(this);var handle=timeout?setTimeout(fn,timeout):requestAnimationFrame(fn);return timeout?handle:~handle},cancelAsync:function(handle){if(handle<0){cancelAnimationFrame(~handle)}else{clearTimeout(handle)}},fire:function(type,detail,onNode,bubbles,cancelable){var node=onNode||this;var detail=detail===null||detail===undefined?{}:detail;var event=new CustomEvent(type,{bubbles:bubbles!==undefined?bubbles:true,cancelable:cancelable!==undefined?cancelable:true,detail:detail});node.dispatchEvent(event);return event},asyncFire:function(){this.async("fire",arguments)},classFollows:function(anew,old,className){if(old){old.classList.remove(className)}if(anew){anew.classList.add(className)}},injectBoundHTML:function(html,element){var template=document.createElement("template");template.innerHTML=html;var fragment=this.instanceTemplate(template);if(element){element.textContent="";element.appendChild(fragment)}return fragment}};var nop=function(){};var nob={};utils.asyncMethod=utils.async;scope.api.instance.utils=utils;scope.nop=nop;scope.nob=nob})(Polymer);(function(scope){var log=window.WebComponents?WebComponents.flags.log:{};var EVENT_PREFIX="on-";var events={EVENT_PREFIX:EVENT_PREFIX,addHostListeners:function(){var events=this.eventDelegates;log.events&&Object.keys(events).length>0&&console.log("[%s] addHostListeners:",this.localName,events);for(var type in events){var methodName=events[type];PolymerGestures.addEventListener(this,type,this.element.getEventHandler(this,this,methodName))}},dispatchMethod:function(obj,method,args){if(obj){log.events&&console.group("[%s] dispatch [%s]",obj.localName,method);var fn=typeof method==="function"?method:obj[method];if(fn){fn[args?"apply":"call"](obj,args)}log.events&&console.groupEnd();Polymer.flush()}}};scope.api.instance.events=events;scope.addEventListener=function(node,eventType,handlerFn,capture){PolymerGestures.addEventListener(wrap(node),eventType,handlerFn,capture)};scope.removeEventListener=function(node,eventType,handlerFn,capture){PolymerGestures.removeEventListener(wrap(node),eventType,handlerFn,capture)}})(Polymer);(function(scope){var attributes={copyInstanceAttributes:function(){var a$=this._instanceAttributes;for(var k in a$){if(!this.hasAttribute(k)){this.setAttribute(k,a$[k])}}},takeAttributes:function(){if(this._publishLC){for(var i=0,a$=this.attributes,l=a$.length,a;(a=a$[i])&&i<l;i++){this.attributeToProperty(a.name,a.value)}}},attributeToProperty:function(name,value){var name=this.propertyForAttribute(name);if(name){if(value&&value.search(scope.bindPattern)>=0){return}var currentValue=this[name];var value=this.deserializeValue(value,currentValue);if(value!==currentValue){this[name]=value}}},propertyForAttribute:function(name){var match=this._publishLC&&this._publishLC[name];return match},deserializeValue:function(stringValue,currentValue){return scope.deserializeValue(stringValue,currentValue)},serializeValue:function(value,inferredType){if(inferredType==="boolean"){return value?"":undefined}else if(inferredType!=="object"&&inferredType!=="function"&&value!==undefined){return value}},reflectPropertyToAttribute:function(name){var inferredType=typeof this[name];var serializedValue=this.serializeValue(this[name],inferredType);if(serializedValue!==undefined){this.setAttribute(name,serializedValue)}else if(inferredType==="boolean"){this.removeAttribute(name)}}};scope.api.instance.attributes=attributes})(Polymer);(function(scope){var log=window.WebComponents?WebComponents.flags.log:{};var OBSERVE_SUFFIX="Changed";var empty=[];var updateRecord={object:undefined,type:"update",name:undefined,oldValue:undefined};var numberIsNaN=Number.isNaN||function(value){return typeof value==="number"&&isNaN(value)};function areSameValue(left,right){if(left===right)return left!==0||1/left===1/right;if(numberIsNaN(left)&&numberIsNaN(right))return true;return left!==left&&right!==right}function resolveBindingValue(oldValue,value){if(value===undefined&&oldValue===null){return value}return value===null||value===undefined?oldValue:value}var properties={createPropertyObserver:function(){var n$=this._observeNames;if(n$&&n$.length){var o=this._propertyObserver=new CompoundObserver(true);this.registerObserver(o);for(var i=0,l=n$.length,n;i<l&&(n=n$[i]);i++){o.addPath(this,n);this.observeArrayValue(n,this[n],null)}}},openPropertyObserver:function(){if(this._propertyObserver){this._propertyObserver.open(this.notifyPropertyChanges,this)}},notifyPropertyChanges:function(newValues,oldValues,paths){var name,method,called={};for(var i in oldValues){name=paths[2*i+1];method=this.observe[name];if(method){var ov=oldValues[i],nv=newValues[i];this.observeArrayValue(name,nv,ov);if(!called[method]){if(ov!==undefined&&ov!==null||nv!==undefined&&nv!==null){called[method]=true;this.invokeMethod(method,[ov,nv,arguments])}}}}},invokeMethod:function(method,args){var fn=this[method]||method;if(typeof fn==="function"){fn.apply(this,args)}},deliverChanges:function(){if(this._propertyObserver){this._propertyObserver.deliver()}},observeArrayValue:function(name,value,old){var callbackName=this.observe[name];if(callbackName){if(Array.isArray(old)){log.observe&&console.log("[%s] observeArrayValue: unregister observer [%s]",this.localName,name);this.closeNamedObserver(name+"__array")}if(Array.isArray(value)){log.observe&&console.log("[%s] observeArrayValue: register observer [%s]",this.localName,name,value);var observer=new ArrayObserver(value);observer.open(function(splices){this.invokeMethod(callbackName,[splices])},this);this.registerNamedObserver(name+"__array",observer)}}},emitPropertyChangeRecord:function(name,value,oldValue){var object=this;if(areSameValue(value,oldValue)){return}this._propertyChanged(name,value,oldValue);if(!Observer.hasObjectObserve){return}var notifier=this._objectNotifier;if(!notifier){notifier=this._objectNotifier=Object.getNotifier(this)}updateRecord.object=this;updateRecord.name=name;updateRecord.oldValue=oldValue;notifier.notify(updateRecord)},_propertyChanged:function(name,value,oldValue){if(this.reflect[name]){this.reflectPropertyToAttribute(name)}},bindProperty:function(property,observable,oneTime){if(oneTime){this[property]=observable;return}var computed=this.element.prototype.computed;if(computed&&computed[property]){var privateComputedBoundValue=property+"ComputedBoundObservable_";this[privateComputedBoundValue]=observable;return}return this.bindToAccessor(property,observable,resolveBindingValue)},bindToAccessor:function(name,observable,resolveFn){var privateName=name+"_";var privateObservable=name+"Observable_";var privateComputedBoundValue=name+"ComputedBoundObservable_";this[privateObservable]=observable;var oldValue=this[privateName];var self=this;function updateValue(value,oldValue){self[privateName]=value;var setObserveable=self[privateComputedBoundValue];if(setObserveable&&typeof setObserveable.setValue=="function"){setObserveable.setValue(value)}self.emitPropertyChangeRecord(name,value,oldValue)}var value=observable.open(updateValue);if(resolveFn&&!areSameValue(oldValue,value)){var resolvedValue=resolveFn(oldValue,value);if(!areSameValue(value,resolvedValue)){value=resolvedValue;if(observable.setValue){observable.setValue(value)}}}updateValue(value,oldValue);var observer={close:function(){observable.close();self[privateObservable]=undefined;self[privateComputedBoundValue]=undefined}};this.registerObserver(observer);return observer},createComputedProperties:function(){if(!this._computedNames){return}for(var i=0;i<this._computedNames.length;i++){var name=this._computedNames[i];var expressionText=this.computed[name];try{var expression=PolymerExpressions.getExpression(expressionText);var observable=expression.getBinding(this,this.element.syntax);this.bindToAccessor(name,observable)}catch(ex){console.error("Failed to create computed property",ex)}}},registerObserver:function(observer){if(!this._observers){this._observers=[observer];return}this._observers.push(observer)},closeObservers:function(){if(!this._observers){return}var observers=this._observers;for(var i=0;i<observers.length;i++){var observer=observers[i];if(observer&&typeof observer.close=="function"){observer.close()}}this._observers=[]},registerNamedObserver:function(name,observer){var o$=this._namedObservers||(this._namedObservers={});o$[name]=observer},closeNamedObserver:function(name){var o$=this._namedObservers;if(o$&&o$[name]){o$[name].close();o$[name]=null;return true}},closeNamedObservers:function(){if(this._namedObservers){for(var i in this._namedObservers){this.closeNamedObserver(i)}this._namedObservers={}}}};var LOG_OBSERVE="[%s] watching [%s]";var LOG_OBSERVED="[%s#%s] watch: [%s] now [%s] was [%s]";var LOG_CHANGED="[%s#%s] propertyChanged: [%s] now [%s] was [%s]";scope.api.instance.properties=properties})(Polymer);(function(scope){var log=window.WebComponents?WebComponents.flags.log:{};var mdv={instanceTemplate:function(template){HTMLTemplateElement.decorate(template);var syntax=this.syntax||!template.bindingDelegate&&this.element.syntax;var dom=template.createInstance(this,syntax);var observers=dom.bindings_;for(var i=0;i<observers.length;i++){this.registerObserver(observers[i])}return dom},bind:function(name,observable,oneTime){var property=this.propertyForAttribute(name);if(!property){return this.mixinSuper(arguments)}else{var observer=this.bindProperty(property,observable,oneTime);if(Platform.enableBindingsReflection&&observer){observer.path=observable.path_;this._recordBinding(property,observer)}if(this.reflect[property]){this.reflectPropertyToAttribute(property)}return observer}},_recordBinding:function(name,observer){this.bindings_=this.bindings_||{};this.bindings_[name]=observer},bindFinished:function(){this.makeElementReady()},asyncUnbindAll:function(){if(!this._unbound){log.unbind&&console.log("[%s] asyncUnbindAll",this.localName);this._unbindAllJob=this.job(this._unbindAllJob,this.unbindAll,0)}},unbindAll:function(){if(!this._unbound){this.closeObservers();this.closeNamedObservers();this._unbound=true}},cancelUnbindAll:function(){if(this._unbound){log.unbind&&console.warn("[%s] already unbound, cannot cancel unbindAll",this.localName);return}log.unbind&&console.log("[%s] cancelUnbindAll",this.localName);if(this._unbindAllJob){this._unbindAllJob=this._unbindAllJob.stop()}}};function unbindNodeTree(node){forNodeTree(node,_nodeUnbindAll)}function _nodeUnbindAll(node){node.unbindAll()}function forNodeTree(node,callback){if(node){callback(node);for(var child=node.firstChild;child;child=child.nextSibling){forNodeTree(child,callback)}}}var mustachePattern=/\{\{([^{}]*)}}/;scope.bindPattern=mustachePattern;scope.api.instance.mdv=mdv})(Polymer);(function(scope){var base={PolymerBase:true,job:function(job,callback,wait){if(typeof job==="string"){var n="___"+job;this[n]=Polymer.job.call(this,this[n],callback,wait)}else{return Polymer.job.call(this,job,callback,wait)}},"super":Polymer.super,created:function(){},ready:function(){},createdCallback:function(){if(this.templateInstance&&this.templateInstance.model){console.warn("Attributes on "+this.localName+" were data bound "+"prior to Polymer upgrading the element. This may result in "+"incorrect binding types.")}this.created();this.prepareElement();if(!this.ownerDocument.isStagingDocument){this.makeElementReady()}},prepareElement:function(){if(this._elementPrepared){console.warn("Element already prepared",this.localName);return}this._elementPrepared=true;this.shadowRoots={};this.createPropertyObserver();this.openPropertyObserver();this.copyInstanceAttributes();this.takeAttributes();this.addHostListeners()},makeElementReady:function(){if(this._readied){return}this._readied=true;this.createComputedProperties();this.parseDeclarations(this.__proto__);this.removeAttribute("unresolved");this.ready()},attributeChangedCallback:function(name,oldValue){if(name!=="class"&&name!=="style"){this.attributeToProperty(name,this.getAttribute(name))}if(this.attributeChanged){this.attributeChanged.apply(this,arguments)}},attachedCallback:function(){this.cancelUnbindAll();if(this.attached){this.attached()}if(!this.hasBeenAttached){this.hasBeenAttached=true;if(this.domReady){this.async("domReady")}}},detachedCallback:function(){if(!this.preventDispose){this.asyncUnbindAll()}if(this.detached){this.detached()}if(this.leftView){this.leftView()}},parseDeclarations:function(p){if(p&&p.element){this.parseDeclarations(p.__proto__);p.parseDeclaration.call(this,p.element)}},parseDeclaration:function(elementElement){var template=this.fetchTemplate(elementElement);if(template){var root=this.shadowFromTemplate(template);this.shadowRoots[elementElement.name]=root}},fetchTemplate:function(elementElement){return elementElement.querySelector("template")},shadowFromTemplate:function(template){if(template){var root=this.createShadowRoot();var dom=this.instanceTemplate(template);root.appendChild(dom);this.shadowRootReady(root,template);return root}},lightFromTemplate:function(template,refNode){if(template){this.eventController=this;var dom=this.instanceTemplate(template);if(refNode){this.insertBefore(dom,refNode)}else{this.appendChild(dom)}this.shadowRootReady(this);return dom}},shadowRootReady:function(root){this.marshalNodeReferences(root)},marshalNodeReferences:function(root){var $=this.$=this.$||{};if(root){var n$=root.querySelectorAll("[id]");for(var i=0,l=n$.length,n;i<l&&(n=n$[i]);i++){$[n.id]=n}}},onMutation:function(node,listener){var observer=new MutationObserver(function(mutations){listener.call(this,observer,mutations);observer.disconnect()}.bind(this));observer.observe(node,{childList:true,subtree:true})}};function isBase(object){return object.hasOwnProperty("PolymerBase")}function PolymerBase(){}PolymerBase.prototype=base;base.constructor=PolymerBase;scope.Base=PolymerBase;scope.isBase=isBase;scope.api.instance.base=base})(Polymer);(function(scope){var log=window.WebComponents?WebComponents.flags.log:{};var hasShadowDOMPolyfill=window.ShadowDOMPolyfill;var STYLE_SCOPE_ATTRIBUTE="element";var STYLE_CONTROLLER_SCOPE="controller";var styles={STYLE_SCOPE_ATTRIBUTE:STYLE_SCOPE_ATTRIBUTE,installControllerStyles:function(){var scope=this.findStyleScope();if(scope&&!this.scopeHasNamedStyle(scope,this.localName)){var proto=getPrototypeOf(this),cssText="";while(proto&&proto.element){cssText+=proto.element.cssTextForScope(STYLE_CONTROLLER_SCOPE);proto=getPrototypeOf(proto)}if(cssText){this.installScopeCssText(cssText,scope)}}},installScopeStyle:function(style,name,scope){var scope=scope||this.findStyleScope(),name=name||"";if(scope&&!this.scopeHasNamedStyle(scope,this.localName+name)){var cssText="";if(style instanceof Array){for(var i=0,l=style.length,s;i<l&&(s=style[i]);i++){cssText+=s.textContent+"\n\n"}}else{cssText=style.textContent}this.installScopeCssText(cssText,scope,name)}},installScopeCssText:function(cssText,scope,name){scope=scope||this.findStyleScope();name=name||"";if(!scope){return}if(hasShadowDOMPolyfill){cssText=shimCssText(cssText,scope.host)}var style=this.element.cssTextToScopeStyle(cssText,STYLE_CONTROLLER_SCOPE);Polymer.applyStyleToScope(style,scope);this.styleCacheForScope(scope)[this.localName+name]=true},findStyleScope:function(node){var n=node||this;while(n.parentNode){n=n.parentNode}return n},scopeHasNamedStyle:function(scope,name){var cache=this.styleCacheForScope(scope);return cache[name]},styleCacheForScope:function(scope){if(hasShadowDOMPolyfill){var scopeName=scope.host?scope.host.localName:scope.localName;return polyfillScopeStyleCache[scopeName]||(polyfillScopeStyleCache[scopeName]={})}else{return scope._scopeStyles=scope._scopeStyles||{}}}};var polyfillScopeStyleCache={};function getPrototypeOf(prototype){return prototype.__proto__}function shimCssText(cssText,host){var name="",is=false;if(host){name=host.localName;is=host.hasAttribute("is")}var selector=WebComponents.ShadowCSS.makeScopeSelector(name,is);return WebComponents.ShadowCSS.shimCssText(cssText,selector)}scope.api.instance.styles=styles})(Polymer);(function(scope){var extend=scope.extend;var api=scope.api;function element(name,prototype){if(typeof name!=="string"){var script=prototype||document._currentScript;prototype=name;name=script&&script.parentNode&&script.parentNode.getAttribute?script.parentNode.getAttribute("name"):"";if(!name){throw"Element name could not be inferred."}}if(getRegisteredPrototype(name)){throw"Already registered (Polymer) prototype for element "+name}registerPrototype(name,prototype);notifyPrototype(name)}function waitingForPrototype(name,client){waitPrototype[name]=client}var waitPrototype={};function notifyPrototype(name){if(waitPrototype[name]){waitPrototype[name].registerWhenReady();delete waitPrototype[name]}}var prototypesByName={};function registerPrototype(name,prototype){return prototypesByName[name]=prototype||{}}function getRegisteredPrototype(name){return prototypesByName[name]}function instanceOfType(element,type){if(typeof type!=="string"){return false}var proto=HTMLElement.getPrototypeForTag(type);var ctor=proto&&proto.constructor;if(!ctor){return false}if(CustomElements.instanceof){return CustomElements.instanceof(element,ctor)}return element instanceof ctor}scope.getRegisteredPrototype=getRegisteredPrototype;scope.waitingForPrototype=waitingForPrototype;scope.instanceOfType=instanceOfType;window.Polymer=element;extend(Polymer,scope);if(WebComponents.consumeDeclarations){WebComponents.consumeDeclarations(function(declarations){if(declarations){for(var i=0,l=declarations.length,d;i<l&&(d=declarations[i]);i++){element.apply(null,d)}}})}})(Polymer);(function(scope){var path={resolveElementPaths:function(node){Polymer.urlResolver.resolveDom(node)},addResolvePathApi:function(){var assetPath=this.getAttribute("assetpath")||"";var root=new URL(assetPath,this.ownerDocument.baseURI);this.prototype.resolvePath=function(urlPath,base){var u=new URL(urlPath,base||root);return u.href}}};scope.api.declaration.path=path})(Polymer);(function(scope){var log=window.WebComponents?WebComponents.flags.log:{};var api=scope.api.instance.styles;var STYLE_SCOPE_ATTRIBUTE=api.STYLE_SCOPE_ATTRIBUTE;var hasShadowDOMPolyfill=window.ShadowDOMPolyfill;var STYLE_SELECTOR="style";
-var STYLE_LOADABLE_MATCH="@import";var SHEET_SELECTOR="link[rel=stylesheet]";var STYLE_GLOBAL_SCOPE="global";var SCOPE_ATTR="polymer-scope";var styles={loadStyles:function(callback){var template=this.fetchTemplate();var content=template&&this.templateContent();if(content){this.convertSheetsToStyles(content);var styles=this.findLoadableStyles(content);if(styles.length){var templateUrl=template.ownerDocument.baseURI;return Polymer.styleResolver.loadStyles(styles,templateUrl,callback)}}if(callback){callback()}},convertSheetsToStyles:function(root){var s$=root.querySelectorAll(SHEET_SELECTOR);for(var i=0,l=s$.length,s,c;i<l&&(s=s$[i]);i++){c=createStyleElement(importRuleForSheet(s,this.ownerDocument.baseURI),this.ownerDocument);this.copySheetAttributes(c,s);s.parentNode.replaceChild(c,s)}},copySheetAttributes:function(style,link){for(var i=0,a$=link.attributes,l=a$.length,a;(a=a$[i])&&i<l;i++){if(a.name!=="rel"&&a.name!=="href"){style.setAttribute(a.name,a.value)}}},findLoadableStyles:function(root){var loadables=[];if(root){var s$=root.querySelectorAll(STYLE_SELECTOR);for(var i=0,l=s$.length,s;i<l&&(s=s$[i]);i++){if(s.textContent.match(STYLE_LOADABLE_MATCH)){loadables.push(s)}}}return loadables},installSheets:function(){this.cacheSheets();this.cacheStyles();this.installLocalSheets();this.installGlobalStyles()},cacheSheets:function(){this.sheets=this.findNodes(SHEET_SELECTOR);this.sheets.forEach(function(s){if(s.parentNode){s.parentNode.removeChild(s)}})},cacheStyles:function(){this.styles=this.findNodes(STYLE_SELECTOR+"["+SCOPE_ATTR+"]");this.styles.forEach(function(s){if(s.parentNode){s.parentNode.removeChild(s)}})},installLocalSheets:function(){var sheets=this.sheets.filter(function(s){return!s.hasAttribute(SCOPE_ATTR)});var content=this.templateContent();if(content){var cssText="";sheets.forEach(function(sheet){cssText+=cssTextFromSheet(sheet)+"\n"});if(cssText){var style=createStyleElement(cssText,this.ownerDocument);content.insertBefore(style,content.firstChild)}}},findNodes:function(selector,matcher){var nodes=this.querySelectorAll(selector).array();var content=this.templateContent();if(content){var templateNodes=content.querySelectorAll(selector).array();nodes=nodes.concat(templateNodes)}return matcher?nodes.filter(matcher):nodes},installGlobalStyles:function(){var style=this.styleForScope(STYLE_GLOBAL_SCOPE);applyStyleToScope(style,document.head)},cssTextForScope:function(scopeDescriptor){var cssText="";var selector="["+SCOPE_ATTR+"="+scopeDescriptor+"]";var matcher=function(s){return matchesSelector(s,selector)};var sheets=this.sheets.filter(matcher);sheets.forEach(function(sheet){cssText+=cssTextFromSheet(sheet)+"\n\n"});var styles=this.styles.filter(matcher);styles.forEach(function(style){cssText+=style.textContent+"\n\n"});return cssText},styleForScope:function(scopeDescriptor){var cssText=this.cssTextForScope(scopeDescriptor);return this.cssTextToScopeStyle(cssText,scopeDescriptor)},cssTextToScopeStyle:function(cssText,scopeDescriptor){if(cssText){var style=createStyleElement(cssText);style.setAttribute(STYLE_SCOPE_ATTRIBUTE,this.getAttribute("name")+"-"+scopeDescriptor);return style}}};function importRuleForSheet(sheet,baseUrl){var href=new URL(sheet.getAttribute("href"),baseUrl).href;return"@import '"+href+"';"}function applyStyleToScope(style,scope){if(style){if(scope===document){scope=document.head}if(hasShadowDOMPolyfill){scope=document.head}var clone=createStyleElement(style.textContent);var attr=style.getAttribute(STYLE_SCOPE_ATTRIBUTE);if(attr){clone.setAttribute(STYLE_SCOPE_ATTRIBUTE,attr)}var refNode=scope.firstElementChild;if(scope===document.head){var selector="style["+STYLE_SCOPE_ATTRIBUTE+"]";var s$=document.head.querySelectorAll(selector);if(s$.length){refNode=s$[s$.length-1].nextElementSibling}}scope.insertBefore(clone,refNode)}}function createStyleElement(cssText,scope){scope=scope||document;scope=scope.createElement?scope:scope.ownerDocument;var style=scope.createElement("style");style.textContent=cssText;return style}function cssTextFromSheet(sheet){return sheet&&sheet.__resource||""}function matchesSelector(node,inSelector){if(matches){return matches.call(node,inSelector)}}var p=HTMLElement.prototype;var matches=p.matches||p.matchesSelector||p.webkitMatchesSelector||p.mozMatchesSelector;scope.api.declaration.styles=styles;scope.applyStyleToScope=applyStyleToScope})(Polymer);(function(scope){var log=window.WebComponents?WebComponents.flags.log:{};var api=scope.api.instance.events;var EVENT_PREFIX=api.EVENT_PREFIX;var mixedCaseEventTypes={};["webkitAnimationStart","webkitAnimationEnd","webkitTransitionEnd","DOMFocusOut","DOMFocusIn","DOMMouseScroll"].forEach(function(e){mixedCaseEventTypes[e.toLowerCase()]=e});var events={parseHostEvents:function(){var delegates=this.prototype.eventDelegates;this.addAttributeDelegates(delegates)},addAttributeDelegates:function(delegates){for(var i=0,a;a=this.attributes[i];i++){if(this.hasEventPrefix(a.name)){delegates[this.removeEventPrefix(a.name)]=a.value.replace("{{","").replace("}}","").trim()}}},hasEventPrefix:function(n){return n&&n[0]==="o"&&n[1]==="n"&&n[2]==="-"},removeEventPrefix:function(n){return n.slice(prefixLength)},findController:function(node){while(node.parentNode){if(node.eventController){return node.eventController}node=node.parentNode}return node.host},getEventHandler:function(controller,target,method){var events=this;return function(e){if(!controller||!controller.PolymerBase){controller=events.findController(target)}var args=[e,e.detail,e.currentTarget];controller.dispatchMethod(controller,method,args)}},prepareEventBinding:function(pathString,name,node){if(!this.hasEventPrefix(name))return;var eventType=this.removeEventPrefix(name);eventType=mixedCaseEventTypes[eventType]||eventType;var events=this;return function(model,node,oneTime){var handler=events.getEventHandler(undefined,node,pathString);PolymerGestures.addEventListener(node,eventType,handler);if(oneTime)return;function bindingValue(){return"{{ "+pathString+" }}"}return{open:bindingValue,discardChanges:bindingValue,close:function(){PolymerGestures.removeEventListener(node,eventType,handler)}}}}};var prefixLength=EVENT_PREFIX.length;scope.api.declaration.events=events})(Polymer);(function(scope){var observationBlacklist=["attribute"];var properties={inferObservers:function(prototype){var observe=prototype.observe,property;for(var n in prototype){if(n.slice(-7)==="Changed"){property=n.slice(0,-7);if(this.canObserveProperty(property)){if(!observe){observe=prototype.observe={}}observe[property]=observe[property]||n}}}},canObserveProperty:function(property){return observationBlacklist.indexOf(property)<0},explodeObservers:function(prototype){var o=prototype.observe;if(o){var exploded={};for(var n in o){var names=n.split(" ");for(var i=0,ni;ni=names[i];i++){exploded[ni]=o[n]}}prototype.observe=exploded}},optimizePropertyMaps:function(prototype){if(prototype.observe){var a=prototype._observeNames=[];for(var n in prototype.observe){var names=n.split(" ");for(var i=0,ni;ni=names[i];i++){a.push(ni)}}}if(prototype.publish){var a=prototype._publishNames=[];for(var n in prototype.publish){a.push(n)}}if(prototype.computed){var a=prototype._computedNames=[];for(var n in prototype.computed){a.push(n)}}},publishProperties:function(prototype,base){var publish=prototype.publish;if(publish){this.requireProperties(publish,prototype,base);this.filterInvalidAccessorNames(publish);prototype._publishLC=this.lowerCaseMap(publish)}var computed=prototype.computed;if(computed){this.filterInvalidAccessorNames(computed)}},filterInvalidAccessorNames:function(propertyNames){for(var name in propertyNames){if(this.propertyNameBlacklist[name]){console.warn('Cannot define property "'+name+'" for element "'+this.name+'" because it has the same name as an HTMLElement '+"property, and not all browsers support overriding that. "+"Consider giving it a different name.");delete propertyNames[name]}}},requireProperties:function(propertyInfos,prototype,base){prototype.reflect=prototype.reflect||{};for(var n in propertyInfos){var value=propertyInfos[n];if(value&&value.reflect!==undefined){prototype.reflect[n]=Boolean(value.reflect);value=value.value}if(value!==undefined){prototype[n]=value}}},lowerCaseMap:function(properties){var map={};for(var n in properties){map[n.toLowerCase()]=n}return map},createPropertyAccessor:function(name,ignoreWrites){var proto=this.prototype;var privateName=name+"_";var privateObservable=name+"Observable_";proto[privateName]=proto[name];Object.defineProperty(proto,name,{get:function(){var observable=this[privateObservable];if(observable)observable.deliver();return this[privateName]},set:function(value){if(ignoreWrites){return this[privateName]}var observable=this[privateObservable];if(observable){observable.setValue(value);return}var oldValue=this[privateName];this[privateName]=value;this.emitPropertyChangeRecord(name,value,oldValue);return value},configurable:true})},createPropertyAccessors:function(prototype){var n$=prototype._computedNames;if(n$&&n$.length){for(var i=0,l=n$.length,n,fn;i<l&&(n=n$[i]);i++){this.createPropertyAccessor(n,true)}}var n$=prototype._publishNames;if(n$&&n$.length){for(var i=0,l=n$.length,n,fn;i<l&&(n=n$[i]);i++){if(!prototype.computed||!prototype.computed[n]){this.createPropertyAccessor(n)}}}},propertyNameBlacklist:{children:1,"class":1,id:1,hidden:1,style:1,title:1}};scope.api.declaration.properties=properties})(Polymer);(function(scope){var ATTRIBUTES_ATTRIBUTE="attributes";var ATTRIBUTES_REGEX=/\s|,/;var attributes={inheritAttributesObjects:function(prototype){this.inheritObject(prototype,"publishLC");this.inheritObject(prototype,"_instanceAttributes")},publishAttributes:function(prototype,base){var attributes=this.getAttribute(ATTRIBUTES_ATTRIBUTE);if(attributes){var publish=prototype.publish||(prototype.publish={});var names=attributes.split(ATTRIBUTES_REGEX);for(var i=0,l=names.length,n;i<l;i++){n=names[i].trim();if(n&&publish[n]===undefined){publish[n]=undefined}}}},accumulateInstanceAttributes:function(){var clonable=this.prototype._instanceAttributes;var a$=this.attributes;for(var i=0,l=a$.length,a;i<l&&(a=a$[i]);i++){if(this.isInstanceAttribute(a.name)){clonable[a.name]=a.value}}},isInstanceAttribute:function(name){return!this.blackList[name]&&name.slice(0,3)!=="on-"},blackList:{name:1,"extends":1,constructor:1,noscript:1,assetpath:1,"cache-csstext":1}};attributes.blackList[ATTRIBUTES_ATTRIBUTE]=1;scope.api.declaration.attributes=attributes})(Polymer);(function(scope){var events=scope.api.declaration.events;var syntax=new PolymerExpressions;var prepareBinding=syntax.prepareBinding;syntax.prepareBinding=function(pathString,name,node){return events.prepareEventBinding(pathString,name,node)||prepareBinding.call(syntax,pathString,name,node)};var mdv={syntax:syntax,fetchTemplate:function(){return this.querySelector("template")},templateContent:function(){var template=this.fetchTemplate();return template&&template.content},installBindingDelegate:function(template){if(template){template.bindingDelegate=this.syntax}}};scope.api.declaration.mdv=mdv})(Polymer);(function(scope){var api=scope.api;var isBase=scope.isBase;var extend=scope.extend;var hasShadowDOMPolyfill=window.ShadowDOMPolyfill;var prototype={register:function(name,extendeeName){this.buildPrototype(name,extendeeName);this.registerPrototype(name,extendeeName);this.publishConstructor()},buildPrototype:function(name,extendeeName){var extension=scope.getRegisteredPrototype(name);var base=this.generateBasePrototype(extendeeName);this.desugarBeforeChaining(extension,base);this.prototype=this.chainPrototypes(extension,base);this.desugarAfterChaining(name,extendeeName)},desugarBeforeChaining:function(prototype,base){prototype.element=this;this.publishAttributes(prototype,base);this.publishProperties(prototype,base);this.inferObservers(prototype);this.explodeObservers(prototype)},chainPrototypes:function(prototype,base){this.inheritMetaData(prototype,base);var chained=this.chainObject(prototype,base);ensurePrototypeTraversal(chained);return chained},inheritMetaData:function(prototype,base){this.inheritObject("observe",prototype,base);this.inheritObject("publish",prototype,base);this.inheritObject("reflect",prototype,base);this.inheritObject("_publishLC",prototype,base);this.inheritObject("_instanceAttributes",prototype,base);this.inheritObject("eventDelegates",prototype,base)},desugarAfterChaining:function(name,extendee){this.optimizePropertyMaps(this.prototype);this.createPropertyAccessors(this.prototype);this.installBindingDelegate(this.fetchTemplate());this.installSheets();this.resolveElementPaths(this);this.accumulateInstanceAttributes();this.parseHostEvents();this.addResolvePathApi();if(hasShadowDOMPolyfill){WebComponents.ShadowCSS.shimStyling(this.templateContent(),name,extendee)}if(this.prototype.registerCallback){this.prototype.registerCallback(this)}},publishConstructor:function(){var symbol=this.getAttribute("constructor");if(symbol){window[symbol]=this.ctor}},generateBasePrototype:function(extnds){var prototype=this.findBasePrototype(extnds);if(!prototype){var prototype=HTMLElement.getPrototypeForTag(extnds);prototype=this.ensureBaseApi(prototype);memoizedBases[extnds]=prototype}return prototype},findBasePrototype:function(name){return memoizedBases[name]},ensureBaseApi:function(prototype){if(prototype.PolymerBase){return prototype}var extended=Object.create(prototype);api.publish(api.instance,extended);this.mixinMethod(extended,prototype,api.instance.mdv,"bind");return extended},mixinMethod:function(extended,prototype,api,name){var $super=function(args){return prototype[name].apply(this,args)};extended[name]=function(){this.mixinSuper=$super;return api[name].apply(this,arguments)}},inheritObject:function(name,prototype,base){var source=prototype[name]||{};prototype[name]=this.chainObject(source,base[name])},registerPrototype:function(name,extendee){var info={prototype:this.prototype};var typeExtension=this.findTypeExtension(extendee);if(typeExtension){info.extends=typeExtension}HTMLElement.register(name,this.prototype);this.ctor=document.registerElement(name,info)},findTypeExtension:function(name){if(name&&name.indexOf("-")<0){return name}else{var p=this.findBasePrototype(name);if(p.element){return this.findTypeExtension(p.element.extends)}}}};var memoizedBases={};if(Object.__proto__){prototype.chainObject=function(object,inherited){if(object&&inherited&&object!==inherited){object.__proto__=inherited}return object}}else{prototype.chainObject=function(object,inherited){if(object&&inherited&&object!==inherited){var chained=Object.create(inherited);object=extend(chained,object)}return object}}function ensurePrototypeTraversal(prototype){if(!Object.__proto__){var ancestor=Object.getPrototypeOf(prototype);prototype.__proto__=ancestor;if(isBase(ancestor)){ancestor.__proto__=Object.getPrototypeOf(ancestor)}}}api.declaration.prototype=prototype})(Polymer);(function(scope){var queue={wait:function(element){if(!element.__queue){element.__queue={};elements.push(element)}},enqueue:function(element,check,go){var shouldAdd=element.__queue&&!element.__queue.check;if(shouldAdd){queueForElement(element).push(element);element.__queue.check=check;element.__queue.go=go}return this.indexOf(element)!==0},indexOf:function(element){var i=queueForElement(element).indexOf(element);if(i>=0&&document.contains(element)){i+=HTMLImports.useNative||HTMLImports.ready?importQueue.length:1e9}return i},go:function(element){var readied=this.remove(element);if(readied){element.__queue.flushable=true;this.addToFlushQueue(readied);this.check()}},remove:function(element){var i=this.indexOf(element);if(i!==0){return}return queueForElement(element).shift()},check:function(){var element=this.nextElement();if(element){element.__queue.check.call(element)}if(this.canReady()){this.ready();return true}},nextElement:function(){return nextQueued()},canReady:function(){return!this.waitToReady&&this.isEmpty()},isEmpty:function(){for(var i=0,l=elements.length,e;i<l&&(e=elements[i]);i++){if(e.__queue&&!e.__queue.flushable){return}}return true},addToFlushQueue:function(element){flushQueue.push(element)},flush:function(){if(this.flushing){return}this.flushing=true;var element;while(flushQueue.length){element=flushQueue.shift();element.__queue.go.call(element);element.__queue=null}this.flushing=false},ready:function(){var polyfillWasReady=CustomElements.ready;CustomElements.ready=false;this.flush();if(!CustomElements.useNative){CustomElements.upgradeDocumentTree(document)}CustomElements.ready=polyfillWasReady;Polymer.flush();requestAnimationFrame(this.flushReadyCallbacks)},addReadyCallback:function(callback){if(callback){readyCallbacks.push(callback)}},flushReadyCallbacks:function(){if(readyCallbacks){var fn;while(readyCallbacks.length){fn=readyCallbacks.shift();fn()}}},waitingFor:function(){var e$=[];for(var i=0,l=elements.length,e;i<l&&(e=elements[i]);i++){if(e.__queue&&!e.__queue.flushable){e$.push(e)}}return e$},waitToReady:true};var elements=[];var flushQueue=[];var importQueue=[];var mainQueue=[];var readyCallbacks=[];function queueForElement(element){return document.contains(element)?mainQueue:importQueue}function nextQueued(){return importQueue.length?importQueue[0]:mainQueue[0]}function whenReady(callback){queue.waitToReady=true;Polymer.endOfMicrotask(function(){HTMLImports.whenReady(function(){queue.addReadyCallback(callback);queue.waitToReady=false;queue.check()})})}function forceReady(timeout){if(timeout===undefined){queue.ready();return}var handle=setTimeout(function(){queue.ready()},timeout);Polymer.whenReady(function(){clearTimeout(handle)})}scope.elements=elements;scope.waitingFor=queue.waitingFor.bind(queue);scope.forceReady=forceReady;scope.queue=queue;scope.whenReady=scope.whenPolymerReady=whenReady})(Polymer);(function(scope){var extend=scope.extend;var api=scope.api;var queue=scope.queue;var whenReady=scope.whenReady;var getRegisteredPrototype=scope.getRegisteredPrototype;var waitingForPrototype=scope.waitingForPrototype;var prototype=extend(Object.create(HTMLElement.prototype),{createdCallback:function(){if(this.getAttribute("name")){this.init()}},init:function(){this.name=this.getAttribute("name");this.extends=this.getAttribute("extends");queue.wait(this);this.loadResources();this.registerWhenReady()},registerWhenReady:function(){if(this.registered||this.waitingForPrototype(this.name)||this.waitingForQueue()||this.waitingForResources()){return}queue.go(this)},_register:function(){if(isCustomTag(this.extends)&&!isRegistered(this.extends)){console.warn("%s is attempting to extend %s, an unregistered element "+"or one that was not registered with Polymer.",this.name,this.extends)}this.register(this.name,this.extends);this.registered=true},waitingForPrototype:function(name){if(!getRegisteredPrototype(name)){waitingForPrototype(name,this);this.handleNoScript(name);return true}},handleNoScript:function(name){if(this.hasAttribute("noscript")&&!this.noscript){this.noscript=true;Polymer(name)}},waitingForResources:function(){return this._needsResources},waitingForQueue:function(){return queue.enqueue(this,this.registerWhenReady,this._register)},loadResources:function(){this._needsResources=true;this.loadStyles(function(){this._needsResources=false;this.registerWhenReady()}.bind(this))}});api.publish(api.declaration,prototype);function isRegistered(name){return Boolean(HTMLElement.getPrototypeForTag(name))}function isCustomTag(name){return name&&name.indexOf("-")>=0}whenReady(function(){document.body.removeAttribute("unresolved");document.dispatchEvent(new CustomEvent("polymer-ready",{bubbles:true}))});document.registerElement("polymer-element",{prototype:prototype})})(Polymer);(function(scope){var whenReady=scope.whenReady;function importElements(node,callback){if(node){document.head.appendChild(node);whenReady(callback)}else if(callback){callback()}}function _import(urls,callback){if(urls&&urls.length){var frag=document.createDocumentFragment();for(var i=0,l=urls.length,url,link;i<l&&(url=urls[i]);i++){link=document.createElement("link");link.rel="import";link.href=url;frag.appendChild(link)}importElements(frag,callback)}else if(callback){callback()}}scope.import=_import;scope.importElements=importElements})(Polymer);(function(){var element=document.createElement("polymer-element");element.setAttribute("name","auto-binding");element.setAttribute("extends","template");element.init();Polymer("auto-binding",{createdCallback:function(){this.syntax=this.bindingDelegate=this.makeSyntax();Polymer.whenPolymerReady(function(){this.model=this;this.setAttribute("bind","");this.async(function(){this.marshalNodeReferences(this.parentNode);this.fire("template-bound")})}.bind(this))},makeSyntax:function(){var events=Object.create(Polymer.api.declaration.events);var self=this;events.findController=function(){return self.model};var syntax=new PolymerExpressions;var prepareBinding=syntax.prepareBinding;syntax.prepareBinding=function(pathString,name,node){return events.prepareEventBinding(pathString,name,node)||prepareBinding.call(syntax,pathString,name,node)};return syntax}})})();</script><style>body,html{height:100%}body{font-family:RobotoDraft,'Helvetica Neue',Helvetica,Arial;margin:0}paper-calculator{width:100%;height:100%}@media screen and (max-height:400px){body{font-size:13px}}</style></head><body unresolved=""><div hidden=""><polymer-element name="core-media-query" attributes="query queryMatches" assetpath="../core-media-query/"><template>
-    <style>:host{display:none}</style>
-  </template><script>Polymer("core-media-query",{queryMatches:false,query:"",ready:function(){this._mqHandler=this.queryHandler.bind(this);this._mq=null},queryChanged:function(){if(this._mq){this._mq.removeListener(this._mqHandler)}var query=this.query;if(query[0]!=="("){query="("+this.query+")"}this._mq=window.matchMedia(query);this._mq.addListener(this._mqHandler);this.queryHandler(this._mq)},queryHandler:function(mq){this.queryMatches=mq.matches;this.asyncFire("core-media-change",mq)}});</script></polymer-element><polymer-element name="paper-calculator-output" attributes="expression result error" assetpath=""><template>
-
-    <style>:host{display:block}.output{position:relative;width:100%;height:100%;padding-right:30px;box-sizing:border-box;-moz-box-sizing:border-box;background-color:transparent;color:#b3b3b3;overflow:hidden}.output.show-result{color:#eee}.expression-outer{width:100%;height:100%;font-size:5.625em;font-weight:100;text-align:right;overflow:hidden}.show-result>.expression-outer{height:38%;font-size:2.5em;font-weight:400}#expression{white-space:nowrap}.output.error #expression{display:none}#error{display:none;color:#eee}.output.error #error{display:block}.result{visibility:hidden}.show-result>.result{visibility:visible;height:62%;font-weight:400}.result-equal{padding:0 30px;font-size:2.5em}.result-value{font-size:5em;overflow:hidden}</style>
-
-    <div class="output {{ {error: error, 'show-result': result &amp;&amp; !error } | tokenList }}">
-
-      <div class="expression-outer" horizontal="" end-justified="" center="" layout="">
-        <div id="expression">{{expression}}</div>
-        <div id="error">{{error}}</div>
-      </div>
-
-      <div class="result" horizontal="" center="" layout="">
-
-        <div class="result-equal">=</div>
-        <div class="result-value" flex="" horizontal="" end-justified="" layout="">{{result}}</div>
-
-      </div>
-
-    </div>
-
-  </template><script>Polymer("paper-calculator-output");</script></polymer-element><polymer-element name="paper-ripple" attributes="initialOpacity opacityDecayVelocity" assetpath="../paper-ripple/"><template>
-
-  <style>:host{display:block;position:relative;border-radius:inherit;overflow:hidden}:host-context([noink]){pointer-events:none}#bg,#waves,.wave-container,.wave{pointer-events:none;position:absolute;top:0;left:0;width:100%;height:100%}#bg,.wave{opacity:0}#waves,.wave{overflow:hidden}.wave-container,.wave{border-radius:50%}:host(.circle) #bg,:host(.circle) #waves{border-radius:50%}:host(.circle) .wave-container{overflow:hidden}</style>
-
-  <div id="bg"></div>
-  <div id="waves">
-  </div>
-
-</template><script>(function(){var waveMaxRadius=150;function waveRadiusFn(touchDownMs,touchUpMs,anim){var touchDown=touchDownMs/1e3;var touchUp=touchUpMs/1e3;var totalElapsed=touchDown+touchUp;var ww=anim.width,hh=anim.height;var waveRadius=Math.min(Math.sqrt(ww*ww+hh*hh),waveMaxRadius)*1.1+5;var duration=1.1-.2*(waveRadius/waveMaxRadius);var tt=totalElapsed/duration;var size=waveRadius*(1-Math.pow(80,-tt));return Math.abs(size)}function waveOpacityFn(td,tu,anim){var touchDown=td/1e3;var touchUp=tu/1e3;var totalElapsed=touchDown+touchUp;if(tu<=0){return anim.initialOpacity}return Math.max(0,anim.initialOpacity-touchUp*anim.opacityDecayVelocity)}function waveOuterOpacityFn(td,tu,anim){var touchDown=td/1e3;var touchUp=tu/1e3;var outerOpacity=touchDown*.3;var waveOpacity=waveOpacityFn(td,tu,anim);return Math.max(0,Math.min(outerOpacity,waveOpacity))}function waveDidFinish(wave,radius,anim){var waveOpacity=waveOpacityFn(wave.tDown,wave.tUp,anim);return waveOpacity<.01&&radius>=Math.min(wave.maxRadius,waveMaxRadius)}function waveAtMaximum(wave,radius,anim){var waveOpacity=waveOpacityFn(wave.tDown,wave.tUp,anim);return waveOpacity>=anim.initialOpacity&&radius>=Math.min(wave.maxRadius,waveMaxRadius)}function drawRipple(ctx,x,y,radius,innerAlpha,outerAlpha){if(outerAlpha!==undefined){ctx.bg.style.opacity=outerAlpha}ctx.wave.style.opacity=innerAlpha;var s=radius/(ctx.containerSize/2);var dx=x-ctx.containerWidth/2;var dy=y-ctx.containerHeight/2;ctx.wc.style.webkitTransform="translate3d("+dx+"px,"+dy+"px,0)";ctx.wc.style.transform="translate3d("+dx+"px,"+dy+"px,0)";ctx.wave.style.webkitTransform="scale("+s+","+s+")";ctx.wave.style.transform="scale3d("+s+","+s+",1)"}function createWave(elem){var elementStyle=window.getComputedStyle(elem);var fgColor=elementStyle.color;var inner=document.createElement("div");inner.style.backgroundColor=fgColor;inner.classList.add("wave");var outer=document.createElement("div");outer.classList.add("wave-container");outer.appendChild(inner);var container=elem.$.waves;container.appendChild(outer);elem.$.bg.style.backgroundColor=fgColor;var wave={bg:elem.$.bg,wc:outer,wave:inner,waveColor:fgColor,maxRadius:0,isMouseDown:false,mouseDownStart:0,mouseUpStart:0,tDown:0,tUp:0};return wave}function removeWaveFromScope(scope,wave){if(scope.waves){var pos=scope.waves.indexOf(wave);scope.waves.splice(pos,1);wave.wc.remove()}}var pow=Math.pow;var now=Date.now;if(window.performance&&performance.now){now=performance.now.bind(performance)}function cssColorWithAlpha(cssColor,alpha){var parts=cssColor.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(typeof alpha=="undefined"){alpha=1}if(!parts){return"rgba(255, 255, 255, "+alpha+")"}return"rgba("+parts[1]+", "+parts[2]+", "+parts[3]+", "+alpha+")"}function dist(p1,p2){return Math.sqrt(pow(p1.x-p2.x,2)+pow(p1.y-p2.y,2))}function distanceFromPointToFurthestCorner(point,size){var tl_d=dist(point,{x:0,y:0});var tr_d=dist(point,{x:size.w,y:0});var bl_d=dist(point,{x:0,y:size.h});var br_d=dist(point,{x:size.w,y:size.h});return Math.max(tl_d,tr_d,bl_d,br_d)}Polymer("paper-ripple",{initialOpacity:.25,opacityDecayVelocity:.8,backgroundFill:true,pixelDensity:2,eventDelegates:{down:"downAction",up:"upAction"},ready:function(){this.waves=[]},downAction:function(e){var wave=createWave(this);this.cancelled=false;wave.isMouseDown=true;wave.tDown=0;wave.tUp=0;wave.mouseUpStart=0;wave.mouseDownStart=now();var rect=this.getBoundingClientRect();var width=rect.width;var height=rect.height;var touchX=e.x-rect.left;var touchY=e.y-rect.top;wave.startPosition={x:touchX,y:touchY};if(this.classList.contains("recenteringTouch")){wave.endPosition={x:width/2,y:height/2};wave.slideDistance=dist(wave.startPosition,wave.endPosition)}wave.containerSize=Math.max(width,height);wave.containerWidth=width;wave.containerHeight=height;wave.maxRadius=distanceFromPointToFurthestCorner(wave.startPosition,{w:width,h:height});wave.wc.style.top=(wave.containerHeight-wave.containerSize)/2+"px";wave.wc.style.left=(wave.containerWidth-wave.containerSize)/2+"px";wave.wc.style.width=wave.containerSize+"px";wave.wc.style.height=wave.containerSize+"px";this.waves.push(wave);if(!this._loop){this._loop=this.animate.bind(this,{width:width,height:height});requestAnimationFrame(this._loop)}},upAction:function(){for(var i=0;i<this.waves.length;i++){var wave=this.waves[i];if(wave.isMouseDown){wave.isMouseDown=false;wave.mouseUpStart=now();wave.mouseDownStart=0;wave.tUp=0;break}}this._loop&&requestAnimationFrame(this._loop)},cancel:function(){this.cancelled=true},animate:function(ctx){var shouldRenderNextFrame=false;var deleteTheseWaves=[];var longestTouchDownDuration=0;var longestTouchUpDuration=0;var lastWaveColor=null;var anim={initialOpacity:this.initialOpacity,opacityDecayVelocity:this.opacityDecayVelocity,height:ctx.height,width:ctx.width};for(var i=0;i<this.waves.length;i++){var wave=this.waves[i];if(wave.mouseDownStart>0){wave.tDown=now()-wave.mouseDownStart}if(wave.mouseUpStart>0){wave.tUp=now()-wave.mouseUpStart}var tUp=wave.tUp;var tDown=wave.tDown;longestTouchDownDuration=Math.max(longestTouchDownDuration,tDown);longestTouchUpDuration=Math.max(longestTouchUpDuration,tUp);var radius=waveRadiusFn(tDown,tUp,anim);var waveAlpha=waveOpacityFn(tDown,tUp,anim);var waveColor=cssColorWithAlpha(wave.waveColor,waveAlpha);lastWaveColor=wave.waveColor;var x=wave.startPosition.x;var y=wave.startPosition.y;if(wave.endPosition){var translateFraction=Math.min(1,radius/wave.containerSize*2/Math.sqrt(2));x+=translateFraction*(wave.endPosition.x-wave.startPosition.x);y+=translateFraction*(wave.endPosition.y-wave.startPosition.y)}var bgFillColor=null;if(this.backgroundFill){var bgFillAlpha=waveOuterOpacityFn(tDown,tUp,anim);bgFillColor=cssColorWithAlpha(wave.waveColor,bgFillAlpha)}drawRipple(wave,x,y,radius,waveAlpha,bgFillAlpha);var maximumWave=waveAtMaximum(wave,radius,anim);var waveDissipated=waveDidFinish(wave,radius,anim);var shouldKeepWave=!waveDissipated||maximumWave;var shouldRenderWaveAgain=wave.mouseUpStart?!waveDissipated:!maximumWave;shouldRenderNextFrame=shouldRenderNextFrame||shouldRenderWaveAgain;if(!shouldKeepWave||this.cancelled){deleteTheseWaves.push(wave)}}if(shouldRenderNextFrame){requestAnimationFrame(this._loop)}for(var i=0;i<deleteTheseWaves.length;++i){var wave=deleteTheseWaves[i];removeWaveFromScope(this,wave)}if(!this.waves.length&&this._loop){this.$.bg.style.backgroundColor=null;this._loop=null;this.fire("core-transitionend")}}})})();</script></polymer-element><polymer-element name="paper-calculator-key" assetpath=""><template>
-
-    <style>:host{display:block;position:relative}#keyLabel,.ink-container{position:absolute;top:0;right:0;bottom:0;left:0}#keyLabel{pointer-events:none}.ink-center{position:relative;width:0;height:0}#ink{position:absolute;top:-30px;left:-30px;width:60px;height:60px;color:#f1fa41;pointer-events:none}.small{font-size:smaller}</style>
-
-    <div class="ink-container" horizontal="" center-justified="" center="" layout="">
-      <div class="ink-center">
-        <paper-ripple id="ink" class="circle recenteringTouch" initialopacity="0.85" opacitydecayvelocity="2"></paper-ripple>
-      </div>
-    </div>
-
-    <div id="keyLabel" horizontal="" center-justified="" center="" layout="">{{label}}</div>
-
-  </template><script>Polymer("paper-calculator-key",{publish:{label:{reflect:true}},labelChanged:function(){this.$.keyLabel.classList.toggle("small",this.label==="DEL")},downAction:function(e){this.$.ink.downAction(e)},upAction:function(){this.$.ink.upAction()},cancelKey:function(e){e.preventTap();this.resetInk()},resetInk:function(){this.$.ink.cancel()}});</script></polymer-element><polymer-element name="paper-calculator-keygrid" attributes="keys" assetpath=""><template>
-  
-    <style>:host{position:relative}#keys{width:100%;height:100%}.handle-bar{position:absolute;top:0;left:0;bottom:0;width:24px}</style>
-    
-    <div id="keys" horizontal="" layout="">
-    
-      <template repeat="{{col in keys}}">
-      
-        <div flex="" vertical="" layout="">
-        
-          <template repeat="{{col}}">
-          
-            <paper-calculator-key flex="" label="{{}}"></paper-calculator-key>
-            
-          </template>
-          
-        </div>
-        
-      </template>
-      
-    </div>
-    
-    <div class="handle-bar" on-tap="{{handleBarTap}}"></div>
-    
-  </template><script>Polymer("paper-calculator-keygrid",{keyTap:function(e){this.fire("cal-keytap",{key:e.target.templateInstance.model})},handleBarTap:function(e){e.preventDefault()},findKey:function(label){return this.$.keys.querySelector('[label="'+label+'"]')}});</script></polymer-element><polymer-element name="paper-calculator-panels" attributes="drawerWidthRatio opened margin wideMode responsiveWidth" assetpath=""><template>
-    
-    <style>:host{display:block;overflow:hidden}#panelContainer{display:block;position:relative;height:100%}#main{position:absolute;top:0;right:0;bottom:0;left:0}#panelContainer.wide-layout>#main{right:auto}#drawer{position:absolute;top:0;bottom:0;left:100%;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transition:-webkit-transform .13s linear;transition:transform .13s linear}#drawer.dragging{transition:none}polyfill-next-selector{content:'#main > *, #drawer > *'}::content>*{position:absolute;top:0;right:0;bottom:0;left:0}</style>
-    
-    <div id="panelContainer" class="{{wideMode ? 'wide-layout' : ''}}">
-    
-      <div id="main">
-        <content select="[main]"></content>
-      </div>
-      
-      <div id="drawer" on-trackstart="{{trackStart}}" on-trackx="{{trackx}}" on-trackend="{{trackEnd}}">
-        <content select="[drawer]"></content>
-      </div>
-    
-    </div>
-    
-    <core-media-query query="min-width: {{responsiveWidth}}" querymatches="{{wideMode}}"></core-media-query>
-    
-  </template><script>Polymer("paper-calculator-panels",{wideMode:false,responsiveWidth:"",margin:10,drawerWidthRatio:0,opened:false,observe:{wideMode:"updateSize",drawerWidthRatio:"updateSize"},marginChanged:function(){this.$.panelContainer.style.width="calc(100% - "+(this.wideMode?0:this.margin)+"px)"},updateSize:function(){var w=1/(1+this.drawerWidthRatio)*100;this.$.main.style.width=this.$.drawer.style.left=this.wideMode?w+"%":"";this.$.drawer.style.width=this.wideMode?100-w+"%":this.drawerWidthRatio*100+"%";this.opened=false;this.marginChanged()},openedChanged:function(){this.positionDrawer(this.opened?"calc("+this.margin+"px - 100%)":null)},positionDrawer:function(x){var s=this.$.drawer.style;s.webkitTransform=s.transform=x?"translate3d("+x+", 0, 0)":""},trackStart:function(e){if(this.wideMode){return}var w=this.$.drawer.offsetWidth;var m=this.margin;this._startx=this.opened?m-w:0;this._min=this.opened?0:m-w;this._max=this.opened?w-m:0;this.$.drawer.classList.add("dragging");e.preventTap();e.stopPropagation()},trackx:function(e){if(this.wideMode){return}var x=Math.max(this._min,Math.min(this._max,e.dx));this.positionDrawer(this._startx+x+"px");e.stopPropagation()},trackEnd:function(e){if(this.wideMode){return}this.$.drawer.classList.remove("dragging");var old=this.opened;this.opened=e.xDirection===-1;if(old==this.opened){this.openedChanged()}e.stopPropagation()}});</script></polymer-element><polymer-element name="paper-calculator-keypad" attributes="wideMode standardKeys advancedKeys modeKeys" assetpath=""><template>
-
-    <style>:host{display:block;position:relative;cursor:pointer}#outerPanels{width:100%;height:100%}#standard{background-color:#4c4c4c;font-weight:300;font-size:2em;color:#fff}#standard::shadow #keys>div:nth-of-type(4){background-color:#666;border-left:1px solid #444}.narrow #standard,.narrow #standard::shadow #keys>div:nth-of-type(4){box-shadow:inset 0 12px 12px rgba(0,0,0,.25)}#innerPanels{background-color:#40bd9e}[drawer]{-webkit-transform:translateZ(0);transform:translateZ(0)}.narrow #innerPanels{box-shadow:-4px 0 4px rgba(0,0,0,.2)}#advanced{background-color:#40bd9e;font-weight:400;font-size:1.125em;color:#f7f7f7}.narrow #advanced{box-shadow:inset 0 7px 7px rgba(0,0,0,.25)}#mode{background-color:#1de9b6;font-weight:400;font-size:1em;color:#777}.narrow #mode{box-shadow:-4px 0 4px rgba(0,0,0,.2),inset 0 5px 5px rgba(0,0,0,.25)}</style>
-    
-    <paper-calculator-panels id="outerPanels" class="{{ {narrow : !wideMode} | tokenList}}" margin="{{margin}}" widemode="{{wideMode}}" drawerwidthratio="0.8">
-    
-      <paper-calculator-keygrid id="standard" main="" keys="{{standardKeys}}"></paper-calculator-keygrid>
-    
-      <paper-calculator-panels id="innerPanels" drawer="" margin="{{margin}}" widemode="{{wideMode}}" drawerwidthratio="0.3">
-      
-        <paper-calculator-keygrid id="advanced" main="" keys="{{advancedKeys}}"></paper-calculator-keygrid>
-        
-        <paper-calculator-keygrid id="mode" drawer="" keys="{{modeKeys}}"></paper-calculator-keygrid>
-        
-      </paper-calculator-panels>
-      
-    </paper-calculator-panels>
-    
-  </template><script>Polymer("paper-calculator-keypad",{margin:24,findKey:function(label){var ps=[this.$.standard,this.$.advanced,this.$.mode];for(var i=0,p;p=ps[i];i++){var key=p.findKey(label);if(key){return key}}},get equalKey(){return this.$.standard.findKey("=")}});</script></polymer-element><polymer-element name="paper-calculator-math" attributes="expression result" assetpath=""><script>Polymer("paper-calculator-math",{eval:function(){var s=this.expression;s=s.replace(/\u00D7/g,"*").replace(/\u00F7/g,"/");try{this.result=eval(s)}catch(x){this.result="?"}}});</script></polymer-element><polymer-element name="paper-calculator" attributes="expression result wideMode responsiveWidth" tabindex="0" assetpath=""><template>
-
-    <style>:host{display:block;position:relative;background-color:#eee;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-font-smoothing:antialiased}#output{position:absolute;top:0;left:0;width:100%;height:38%;z-index:1}#output.wide{box-shadow:0 5px 4px rgba(0,0,0,.3)}#keypad{position:absolute;top:38%;bottom:0;width:100%}#resultInk{position:absolute;border-radius:50%;background-color:#73daeb;-webkit-transform:translateZ(0) scale(0);transform:translateZ(0) scale(0)}#resultInk.error{background-color:#f50057}#resultInk.spill{-webkit-transform:translateZ(0) scale(1);transform:translateZ(0) scale(1);-webkit-transition:-webkit-transform .38s ease-out;transition:transform .38s ease-out}</style>
-
-    <div id="resultInk" class="{{ {spill : result, error : error} | tokenList }}"></div>
-
-    <paper-calculator-output id="output" class="{{ {wide : wideMatches || wideMode} | tokenList}}" expression="{{expression}}" result="{{result}}" error="{{error}}"></paper-calculator-output>
-
-    <paper-calculator-keypad id="keypad" widemode="{{wideMatches || wideMode}}" standardkeys="{{standardKeys}}" advancedkeys="{{advancedKeys}}" modekeys="{{modeKeys}}"></paper-calculator-keypad>
-
-    <paper-calculator-math id="math" expression="{{expression}}" result="{{result}}" error="{{error}}"></paper-calculator-math>
-
-    <core-media-query query="min-width: {{responsiveWidth}}" querymatches="{{wideMatches}}"></core-media-query>
-
-  </template><script>Polymer("paper-calculator",{domReady:function(){this.updateResultInk();window.addEventListener("resize",this.updateResultInk.bind(this))},standardKeys:[["7","4","1","."],["8","5","2","0"],["9","6","3","="],["DEL","+","-","÷","×"]],advancedKeys:[["2nd","1/x","x!","sin","sinh","EXP"],["(","x²","√","cos","cosh","Π"],[")","x³","ⁿ √y","tan","tanh","EE"],["%","yⁿ","log","ln","eⁿ","Rand"]],modeKeys:[["Deg","Rad","func","Table","Graph",""]],errorMsgs:["error...","umm...",":-("],wideMode:false,responsiveWidth:"",expression:"",result:"",eventDelegates:{},clear:function(){this.expression="";this.result="";this.error=""},del:function(){this.expression=this.expression.slice(0,-1)},eval:function(){this.$.math.eval()},keyTap:function(e){var k=e.detail.key;if(this.modeKeys[0].indexOf(k)<0){this.processKey(k)}},keyDown:function(e){if(e.keyCode===8){this.del();e.preventDefault()}},keyPress:function(e){var c=e.keyCode,k;if(c===13){k="="}else{k=String.fromCharCode(c)}var key=this.$.keypad.findKey(k);this.processKey(k);e.preventDefault()},processKey:function(k){if(this.result&&k!=="="){this.clear()}if(k==="="){this.async(this.eval)}else if(k==="DEL"){this.del()}else{this.expression+=k}},updateResultInk:function(){var rect=this.getBoundingClientRect();var keyRect=this.$.keypad.equalKey.getBoundingClientRect();var s=this.$.resultInk.style;var t=keyRect.top-rect.top+keyRect.height/2;s.top=-t+"px";s.left=-t*2+(keyRect.left-rect.left+keyRect.width/2)+"px";s.width=s.height=4*t+"px"},resultChanged:function(){if(this.result==="?"){this.error=this.errorMsgs[Math.floor(Math.random()*this.errorMsgs.length)]}}});</script></polymer-element></div><paper-calculator responsivewidth="800px"></paper-calculator></body></html>
\ No newline at end of file
diff --git a/tools/perf/page_sets/key_silk_cases/inbox_app.html b/tools/perf/page_sets/key_silk_cases/inbox_app.html
deleted file mode 100644
index c5a906ad..0000000
--- a/tools/perf/page_sets/key_silk_cases/inbox_app.html
+++ /dev/null
@@ -1,2812 +0,0 @@
-<!doctype html>
-<!--
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
--->
-<html>
-  <head>
-    <title>app-widgets</title>
-    <script>/**
- * @license
- * Copyright (c) 2012-2014 The Polymer Authors. All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- *    * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *    * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-// @version: 0.2.1-59f745d
-function PointerGestureEvent(a,b){var c=b||{},d=document.createEvent("Event"),e={bubbles:Boolean(c.bubbles)===c.bubbles||!0,cancelable:Boolean(c.cancelable)===c.cancelable||!0};d.initEvent(a,e.bubbles,e.cancelable);for(var f,g=Object.keys(c),h=0;h<g.length;h++)f=g[h],d[f]=c[f];return d.preventTap=this.preventTap,d}"undefined"==typeof WeakMap&&!function(){var a=Object.defineProperty,b=Date.now()%1e9,c=function(){this.name="__st"+(1e9*Math.random()>>>0)+(b++ +"__")};c.prototype={set:function(b,c){var d=b[this.name];d&&d[0]===b?d[1]=c:a(b,this.name,{value:[b,c],writable:!0})},get:function(a){var b;return(b=a[this.name])&&b[0]===a?b[1]:void 0},"delete":function(a){this.set(a,void 0)}},window.WeakMap=c}(),function(global){"use strict";function detectObjectObserve(){function a(a){b=a}if("function"!=typeof Object.observe||"function"!=typeof Array.observe)return!1;var b=[],c={},d=[];return Object.observe(c,a),Array.observe(d,a),c.id=1,c.id=2,delete c.id,d.push(1,2),d.length=0,Object.deliverChangeRecords(a),5!==b.length?!1:"add"!=b[0].type||"update"!=b[1].type||"delete"!=b[2].type||"splice"!=b[3].type||"splice"!=b[4].type?!1:(Object.unobserve(c,a),Array.unobserve(d,a),!0)}function detectEval(){if(global.document&&"securityPolicy"in global.document&&!global.document.securityPolicy.allowsEval)return!1;try{var a=new Function("","return true;");return a()}catch(b){return!1}}function isIndex(a){return+a===a>>>0}function toNumber(a){return+a}function isObject(a){return a===Object(a)}function areSameValue(a,b){return a===b?0!==a||1/a===1/b:numberIsNaN(a)&&numberIsNaN(b)?!0:a!==a&&b!==b}function isPathValid(a){return"string"!=typeof a?!1:(a=a.trim(),""==a?!0:"."==a[0]?!1:pathRegExp.test(a))}function Path(a,b){if(b!==constructorIsPrivate)throw Error("Use Path.get to retrieve path objects");return""==a.trim()?this:isIndex(a)?(this.push(a),this):(a.split(/\s*\.\s*/).filter(function(a){return a}).forEach(function(a){this.push(a)},this),void(hasEval&&this.length&&(this.getValueFrom=this.compiledGetValueFromFn())))}function getPath(a){if(a instanceof Path)return a;null==a&&(a=""),"string"!=typeof a&&(a=String(a));var b=pathCache[a];if(b)return b;if(!isPathValid(a))return invalidPath;var b=new Path(a,constructorIsPrivate);return pathCache[a]=b,b}function dirtyCheck(a){for(var b=0;MAX_DIRTY_CHECK_CYCLES>b&&a.check_();)b++;return global.testingExposeCycleCount&&(global.dirtyCheckCycleCount=b),b>0}function objectIsEmpty(a){for(var b in a)return!1;return!0}function diffIsEmpty(a){return objectIsEmpty(a.added)&&objectIsEmpty(a.removed)&&objectIsEmpty(a.changed)}function diffObjectFromOldObject(a,b){var c={},d={},e={};for(var f in b){var g=a[f];(void 0===g||g!==b[f])&&(f in a?g!==b[f]&&(e[f]=g):d[f]=void 0)}for(var f in a)f in b||(c[f]=a[f]);return Array.isArray(a)&&a.length!==b.length&&(e.length=a.length),{added:c,removed:d,changed:e}}function runEOMTasks(){if(!eomTasks.length)return!1;for(var a=0;a<eomTasks.length;a++)eomTasks[a]();return eomTasks.length=0,!0}function newObservedObject(){function a(a){b&&b.state_===OPENED&&!d&&b.check_(a)}var b,c,d=!1,e=!0;return{open:function(c){if(b)throw Error("ObservedObject in use");e||Object.deliverChangeRecords(a),b=c,e=!1},observe:function(b,d){c=b,d?Array.observe(c,a):Object.observe(c,a)},deliver:function(b){d=b,Object.deliverChangeRecords(a),d=!1},close:function(){b=void 0,Object.unobserve(c,a),observedObjectCache.push(this)}}}function getObservedObject(a,b,c){var d=observedObjectCache.pop()||newObservedObject();return d.open(a),d.observe(b,c),d}function newObservedSet(){function a(b){if(b){var c=i.indexOf(b);c>=0?(i[c]=void 0,h.push(b)):h.indexOf(b)<0&&(h.push(b),Object.observe(b,e)),a(Object.getPrototypeOf(b))}}function b(){var b=i===emptyArray?[]:i;i=h,h=b;var c;for(var d in f)c=f[d],c&&c.state_==OPENED&&c.iterateObjects_(a);for(var g=0;g<i.length;g++){var j=i[g];j&&Object.unobserve(j,e)}i.length=0}function c(){k=!1,j&&b()}function d(){k||(j=!0,k=!0,runEOM(c))}function e(){b();var a;for(var c in f)a=f[c],a&&a.state_==OPENED&&a.check_()}var f=[],g=0,h=[],i=emptyArray,j=!1,k=!1,l={object:void 0,objects:h,open:function(b){f[b.id_]=b,g++,b.iterateObjects_(a)},close:function(a){if(f[a.id_]=void 0,g--,g)return void d();j=!1;for(var b=0;b<h.length;b++)Object.unobserve(h[b],e),Observer.unobservedCount++;f.length=0,h.length=0,observedSetCache.push(this)},reset:d};return l}function getObservedSet(a,b){return lastObservedSet&&lastObservedSet.object===b||(lastObservedSet=observedSetCache.pop()||newObservedSet(),lastObservedSet.object=b),lastObservedSet.open(a),lastObservedSet}function Observer(){this.state_=UNOPENED,this.callback_=void 0,this.target_=void 0,this.directObserver_=void 0,this.value_=void 0,this.id_=nextObserverId++}function addToAll(a){Observer._allObserversCount++,collectObservers&&allObservers.push(a)}function removeFromAll(){Observer._allObserversCount--}function ObjectObserver(a){Observer.call(this),this.value_=a,this.oldObject_=void 0}function ArrayObserver(a){if(!Array.isArray(a))throw Error("Provided object is not an Array");ObjectObserver.call(this,a)}function PathObserver(a,b){Observer.call(this),this.object_=a,this.path_=b instanceof Path?b:getPath(b),this.directObserver_=void 0}function CompoundObserver(){Observer.call(this),this.value_=[],this.directObserver_=void 0,this.observed_=[]}function identFn(a){return a}function ObserverTransform(a,b,c,d){this.callback_=void 0,this.target_=void 0,this.value_=void 0,this.observable_=a,this.getValueFn_=b||identFn,this.setValueFn_=c||identFn,this.dontPassThroughSet_=d}function notifyFunction(a,b){if("function"==typeof Object.observe){var c=Object.getNotifier(a);return function(d,e){var f={object:a,type:d,name:b};2===arguments.length&&(f.oldValue=e),c.notify(f)}}}function diffObjectFromChangeRecords(a,b,c){for(var d={},e={},f=0;f<b.length;f++){var g=b[f];expectedRecordTypes[g.type]?(g.name in c||(c[g.name]=g.oldValue),"update"!=g.type&&("add"!=g.type?g.name in d?(delete d[g.name],delete c[g.name]):e[g.name]=!0:g.name in e?delete e[g.name]:d[g.name]=!0)):(console.error("Unknown changeRecord type: "+g.type),console.error(g))}for(var h in d)d[h]=a[h];for(var h in e)e[h]=void 0;var i={};for(var h in c)if(!(h in d||h in e)){var j=a[h];c[h]!==j&&(i[h]=j)}return{added:d,removed:e,changed:i}}function newSplice(a,b,c){return{index:a,removed:b,addedCount:c}}function ArraySplice(){}function calcSplices(a,b,c,d,e,f){return arraySplice.calcSplices(a,b,c,d,e,f)}function intersect(a,b,c,d){return c>b||a>d?-1:b==c||d==a?0:c>a?d>b?b-c:d-c:b>d?d-a:b-a}function mergeSplice(a,b,c,d){for(var e=newSplice(b,c,d),f=!1,g=0,h=0;h<a.length;h++){var i=a[h];if(i.index+=g,!f){var j=intersect(e.index,e.index+e.removed.length,i.index,i.index+i.addedCount);if(j>=0){a.splice(h,1),h--,g-=i.addedCount-i.removed.length,e.addedCount+=i.addedCount-j;var k=e.removed.length+i.removed.length-j;if(e.addedCount||k){var c=i.removed;if(e.index<i.index){var l=e.removed.slice(0,i.index-e.index);Array.prototype.push.apply(l,c),c=l}if(e.index+e.removed.length>i.index+i.addedCount){var m=e.removed.slice(i.index+i.addedCount-e.index);Array.prototype.push.apply(c,m)}e.removed=c,i.index<e.index&&(e.index=i.index)}else f=!0}else if(e.index<i.index){f=!0,a.splice(h,0,e),h++;var n=e.addedCount-e.removed.length;i.index+=n,g+=n}}}f||a.push(e)}function createInitialSplices(a,b){for(var c=[],d=0;d<b.length;d++){var e=b[d];switch(e.type){case"splice":mergeSplice(c,e.index,e.removed.slice(),e.addedCount);break;case"add":case"update":case"delete":if(!isIndex(e.name))continue;var f=toNumber(e.name);if(0>f)continue;mergeSplice(c,f,[e.oldValue],1);break;default:console.error("Unexpected record type: "+JSON.stringify(e))}}return c}function projectArraySplices(a,b){var c=[];return createInitialSplices(a,b).forEach(function(b){return 1==b.addedCount&&1==b.removed.length?void(b.removed[0]!==a[b.index]&&c.push(b)):void(c=c.concat(calcSplices(a,b.index,b.index+b.addedCount,b.removed,0,b.removed.length)))}),c}var hasObserve=detectObjectObserve(),hasEval=detectEval(),numberIsNaN=global.Number.isNaN||function(a){return"number"==typeof a&&global.isNaN(a)},createObject="__proto__"in{}?function(a){return a}:function(a){var b=a.__proto__;if(!b)return a;var c=Object.create(b);return Object.getOwnPropertyNames(a).forEach(function(b){Object.defineProperty(c,b,Object.getOwnPropertyDescriptor(a,b))}),c},identStart="[$_a-zA-Z]",identPart="[$_a-zA-Z0-9]",ident=identStart+"+"+identPart+"*",elementIndex="(?:[0-9]|[1-9]+[0-9]+)",identOrElementIndex="(?:"+ident+"|"+elementIndex+")",path="(?:"+identOrElementIndex+")(?:\\s*\\.\\s*"+identOrElementIndex+")*",pathRegExp=new RegExp("^"+path+"$"),constructorIsPrivate={},pathCache={};Path.get=getPath,Path.prototype=createObject({__proto__:[],valid:!0,toString:function(){return this.join(".")},getValueFrom:function(a){for(var b=0;b<this.length;b++){if(null==a)return;a=a[this[b]]}return a},iterateObjects:function(a,b){for(var c=0;c<this.length;c++){if(c&&(a=a[this[c-1]]),!isObject(a))return;b(a)}},compiledGetValueFromFn:function(){var a=this.map(function(a){return isIndex(a)?'["'+a+'"]':"."+a}),b="",c="obj";b+="if (obj != null";for(var d=0;d<this.length-1;d++){{this[d]}c+=a[d],b+=" &&\n     "+c+" != null"}return b+=")\n",c+=a[d],b+="  return "+c+";\nelse\n  return undefined;",new Function("obj",b)},setValueFrom:function(a,b){if(!this.length)return!1;for(var c=0;c<this.length-1;c++){if(!isObject(a))return!1;a=a[this[c]]}return isObject(a)?(a[this[c]]=b,!0):!1}});var invalidPath=new Path("",constructorIsPrivate);invalidPath.valid=!1,invalidPath.getValueFrom=invalidPath.setValueFrom=function(){};var MAX_DIRTY_CHECK_CYCLES=1e3,eomTasks=[],runEOM=hasObserve?function(){var a={pingPong:!0},b=!1;return Object.observe(a,function(){runEOMTasks(),b=!1}),function(c){eomTasks.push(c),b||(b=!0,a.pingPong=!a.pingPong)}}():function(){return function(a){eomTasks.push(a)}}(),observedObjectCache=[],emptyArray=[],observedSetCache=[],lastObservedSet,UNOPENED=0,OPENED=1,CLOSED=2,RESETTING=3,nextObserverId=1;Observer.prototype={open:function(a,b){if(this.state_!=UNOPENED)throw Error("Observer has already been opened.");return addToAll(this),this.callback_=a,this.target_=b,this.state_=OPENED,this.connect_(),this.value_},close:function(){this.state_==OPENED&&(removeFromAll(this),this.state_=CLOSED,this.disconnect_(),this.value_=void 0,this.callback_=void 0,this.target_=void 0)},deliver:function(){this.state_==OPENED&&dirtyCheck(this)},report_:function(a){try{this.callback_.apply(this.target_,a)}catch(b){Observer._errorThrownDuringCallback=!0,console.error("Exception caught during observer callback: "+(b.stack||b))}},discardChanges:function(){return this.check_(void 0,!0),this.value_}};var collectObservers=!hasObserve,allObservers;Observer._allObserversCount=0,collectObservers&&(allObservers=[]);var runningMicrotaskCheckpoint=!1,hasDebugForceFullDelivery=hasObserve&&function(){try{return eval("%RunMicrotasks()"),!0}catch(ex){return!1}}();global.Platform=global.Platform||{},global.Platform.performMicrotaskCheckpoint=function(){if(!runningMicrotaskCheckpoint){if(hasDebugForceFullDelivery)return void eval("%RunMicrotasks()");if(collectObservers){runningMicrotaskCheckpoint=!0;var cycles=0,anyChanged,toCheck;do{cycles++,toCheck=allObservers,allObservers=[],anyChanged=!1;for(var i=0;i<toCheck.length;i++){var observer=toCheck[i];observer.state_==OPENED&&(observer.check_()&&(anyChanged=!0),allObservers.push(observer))}runEOMTasks()&&(anyChanged=!0)}while(MAX_DIRTY_CHECK_CYCLES>cycles&&anyChanged);global.testingExposeCycleCount&&(global.dirtyCheckCycleCount=cycles),runningMicrotaskCheckpoint=!1}}},collectObservers&&(global.Platform.clearObservers=function(){allObservers=[]}),ObjectObserver.prototype=createObject({__proto__:Observer.prototype,arrayObserve:!1,connect_:function(){hasObserve?this.directObserver_=getObservedObject(this,this.value_,this.arrayObserve):this.oldObject_=this.copyObject(this.value_)},copyObject:function(a){var b=Array.isArray(a)?[]:{};for(var c in a)b[c]=a[c];return Array.isArray(a)&&(b.length=a.length),b},check_:function(a){var b,c;if(hasObserve){if(!a)return!1;c={},b=diffObjectFromChangeRecords(this.value_,a,c)}else c=this.oldObject_,b=diffObjectFromOldObject(this.value_,this.oldObject_);return diffIsEmpty(b)?!1:(hasObserve||(this.oldObject_=this.copyObject(this.value_)),this.report_([b.added||{},b.removed||{},b.changed||{},function(a){return c[a]}]),!0)},disconnect_:function(){hasObserve?(this.directObserver_.close(),this.directObserver_=void 0):this.oldObject_=void 0},deliver:function(){this.state_==OPENED&&(hasObserve?this.directObserver_.deliver(!1):dirtyCheck(this))},discardChanges:function(){return this.directObserver_?this.directObserver_.deliver(!0):this.oldObject_=this.copyObject(this.value_),this.value_}}),ArrayObserver.prototype=createObject({__proto__:ObjectObserver.prototype,arrayObserve:!0,copyObject:function(a){return a.slice()},check_:function(a){var b;if(hasObserve){if(!a)return!1;b=projectArraySplices(this.value_,a)}else b=calcSplices(this.value_,0,this.value_.length,this.oldObject_,0,this.oldObject_.length);return b&&b.length?(hasObserve||(this.oldObject_=this.copyObject(this.value_)),this.report_([b]),!0):!1}}),ArrayObserver.applySplices=function(a,b,c){c.forEach(function(c){for(var d=[c.index,c.removed.length],e=c.index;e<c.index+c.addedCount;)d.push(b[e]),e++;Array.prototype.splice.apply(a,d)})},PathObserver.prototype=createObject({__proto__:Observer.prototype,connect_:function(){hasObserve&&(this.directObserver_=getObservedSet(this,this.object_)),this.check_(void 0,!0)},disconnect_:function(){this.value_=void 0,this.directObserver_&&(this.directObserver_.close(this),this.directObserver_=void 0)},iterateObjects_:function(a){this.path_.iterateObjects(this.object_,a)},check_:function(a,b){var c=this.value_;return this.value_=this.path_.getValueFrom(this.object_),b||areSameValue(this.value_,c)?!1:(this.report_([this.value_,c]),!0)},setValue:function(a){this.path_&&this.path_.setValueFrom(this.object_,a)}});var observerSentinel={};CompoundObserver.prototype=createObject({__proto__:Observer.prototype,connect_:function(){if(this.check_(void 0,!0),hasObserve){for(var a,b=!1,c=0;c<this.observed_.length;c+=2)if(a=this.observed_[c],a!==observerSentinel){b=!0;break}return this.directObserver_?b?void this.directObserver_.reset():(this.directObserver_.close(),void(this.directObserver_=void 0)):void(b&&(this.directObserver_=getObservedSet(this,a)))}},closeObservers_:function(){for(var a=0;a<this.observed_.length;a+=2)this.observed_[a]===observerSentinel&&this.observed_[a+1].close();this.observed_.length=0},disconnect_:function(){this.value_=void 0,this.directObserver_&&(this.directObserver_.close(this),this.directObserver_=void 0),this.closeObservers_()},addPath:function(a,b){if(this.state_!=UNOPENED&&this.state_!=RESETTING)throw Error("Cannot add paths once started.");this.observed_.push(a,b instanceof Path?b:getPath(b))},addObserver:function(a){if(this.state_!=UNOPENED&&this.state_!=RESETTING)throw Error("Cannot add observers once started.");a.open(this.deliver,this),this.observed_.push(observerSentinel,a)},startReset:function(){if(this.state_!=OPENED)throw Error("Can only reset while open");this.state_=RESETTING,this.closeObservers_()},finishReset:function(){if(this.state_!=RESETTING)throw Error("Can only finishReset after startReset");return this.state_=OPENED,this.connect_(),this.value_},iterateObjects_:function(a){for(var b,c=0;c<this.observed_.length;c+=2)b=this.observed_[c],b!==observerSentinel&&this.observed_[c+1].iterateObjects(b,a)},check_:function(a,b){for(var c,d=0;d<this.observed_.length;d+=2){var e=this.observed_[d+1],f=this.observed_[d],g=f===observerSentinel?e.discardChanges():e.getValueFrom(f);b?this.value_[d/2]=g:areSameValue(g,this.value_[d/2])||(c=c||[],c[d/2]=this.value_[d/2],this.value_[d/2]=g)}return c?(this.report_([this.value_,c,this.observed_]),!0):!1}}),ObserverTransform.prototype={open:function(a,b){return this.callback_=a,this.target_=b,this.value_=this.getValueFn_(this.observable_.open(this.observedCallback_,this)),this.value_},observedCallback_:function(a){if(a=this.getValueFn_(a),!areSameValue(a,this.value_)){var b=this.value_;this.value_=a,this.callback_.call(this.target_,this.value_,b)}},discardChanges:function(){return this.value_=this.getValueFn_(this.observable_.discardChanges()),this.value_},deliver:function(){return this.observable_.deliver()},setValue:function(a){return a=this.setValueFn_(a),!this.dontPassThroughSet_&&this.observable_.setValue?this.observable_.setValue(a):void 0},close:function(){this.observable_&&this.observable_.close(),this.callback_=void 0,this.target_=void 0,this.observable_=void 0,this.value_=void 0,this.getValueFn_=void 0,this.setValueFn_=void 0}};var expectedRecordTypes={add:!0,update:!0,"delete":!0};Observer.defineComputedProperty=function(a,b,c){var d=notifyFunction(a,b),e=c.open(function(a,b){e=a,d&&d("update",b)});return Object.defineProperty(a,b,{get:function(){return c.deliver(),e},set:function(a){return c.setValue(a),a},configurable:!0}),{close:function(){c.close(),Object.defineProperty(a,b,{value:e,writable:!0,configurable:!0})}}};var EDIT_LEAVE=0,EDIT_UPDATE=1,EDIT_ADD=2,EDIT_DELETE=3;ArraySplice.prototype={calcEditDistances:function(a,b,c,d,e,f){for(var g=f-e+1,h=c-b+1,i=new Array(g),j=0;g>j;j++)i[j]=new Array(h),i[j][0]=j;for(var k=0;h>k;k++)i[0][k]=k;for(var j=1;g>j;j++)for(var k=1;h>k;k++)if(this.equals(a[b+k-1],d[e+j-1]))i[j][k]=i[j-1][k-1];else{var l=i[j-1][k]+1,m=i[j][k-1]+1;i[j][k]=m>l?l:m}return i},spliceOperationsFromEditDistances:function(a){for(var b=a.length-1,c=a[0].length-1,d=a[b][c],e=[];b>0||c>0;)if(0!=b)if(0!=c){var f,g=a[b-1][c-1],h=a[b-1][c],i=a[b][c-1];f=i>h?g>h?h:g:g>i?i:g,f==g?(g==d?e.push(EDIT_LEAVE):(e.push(EDIT_UPDATE),d=g),b--,c--):f==h?(e.push(EDIT_DELETE),b--,d=h):(e.push(EDIT_ADD),c--,d=i)}else e.push(EDIT_DELETE),b--;else e.push(EDIT_ADD),c--;return e.reverse(),e},calcSplices:function(a,b,c,d,e,f){var g=0,h=0,i=Math.min(c-b,f-e);if(0==b&&0==e&&(g=this.sharedPrefix(a,d,i)),c==a.length&&f==d.length&&(h=this.sharedSuffix(a,d,i-g)),b+=g,e+=g,c-=h,f-=h,c-b==0&&f-e==0)return[];if(b==c){for(var j=newSplice(b,[],0);f>e;)j.removed.push(d[e++]);return[j]}if(e==f)return[newSplice(b,[],c-b)];for(var k=this.spliceOperationsFromEditDistances(this.calcEditDistances(a,b,c,d,e,f)),j=void 0,l=[],m=b,n=e,o=0;o<k.length;o++)switch(k[o]){case EDIT_LEAVE:j&&(l.push(j),j=void 0),m++,n++;break;case EDIT_UPDATE:j||(j=newSplice(m,[],0)),j.addedCount++,m++,j.removed.push(d[n]),n++;break;case EDIT_ADD:j||(j=newSplice(m,[],0)),j.addedCount++,m++;break;case EDIT_DELETE:j||(j=newSplice(m,[],0)),j.removed.push(d[n]),n++}return j&&l.push(j),l},sharedPrefix:function(a,b,c){for(var d=0;c>d;d++)if(!this.equals(a[d],b[d]))return d;return c},sharedSuffix:function(a,b,c){for(var d=a.length,e=b.length,f=0;c>f&&this.equals(a[--d],b[--e]);)f++;return f},calculateSplices:function(a,b){return this.calcSplices(a,0,a.length,b,0,b.length)},equals:function(a,b){return a===b}};var arraySplice=new ArraySplice;global.Observer=Observer,global.Observer.runEOM_=runEOM,global.Observer.hasObjectObserve=hasObserve,global.ArrayObserver=ArrayObserver,global.ArrayObserver.calculateSplices=function(a,b){return arraySplice.calculateSplices(a,b)},global.ArraySplice=ArraySplice,global.ObjectObserver=ObjectObserver,global.PathObserver=PathObserver,global.CompoundObserver=CompoundObserver,global.Path=Path,global.ObserverTransform=ObserverTransform}("undefined"!=typeof global&&global&&"undefined"!=typeof module&&module?global:this||window),window.Platform=window.Platform||{},window.logFlags=window.logFlags||{},function(a){var b=a.flags||{};location.search.slice(1).split("&").forEach(function(a){a=a.split("="),a[0]&&(b[a[0]]=a[1]||!0)});var c=document.currentScript||document.querySelector('script[src*="platform.js"]');if(c)for(var d,e=c.attributes,f=0;f<e.length;f++)d=e[f],"src"!==d.name&&(b[d.name]=d.value||!0);b.log&&b.log.split(",").forEach(function(a){window.logFlags[a]=!0}),b.shadow=b.shadow||b.shadowdom||b.polyfill,b.shadow="native"===b.shadow?!1:b.shadow||!HTMLElement.prototype.createShadowRoot,b.register&&(window.CustomElements=window.CustomElements||{flags:{}},window.CustomElements.flags.register=b.register),b.imports&&(window.HTMLImports=window.HTMLImports||{flags:{}},window.HTMLImports.flags.imports=b.imports),a.flags=b}(Platform),Platform.flags.shadow?(window.ShadowDOMPolyfill={},function(a){"use strict";function b(a){if(!a)throw new Error("Assertion failed")}function c(a,b){return L(b).forEach(function(c){K(a,c,M(b,c))}),a}function d(a,b){return L(b).forEach(function(c){switch(c){case"arguments":case"caller":case"length":case"name":case"prototype":case"toString":return}K(a,c,M(b,c))}),a}function e(a,b){for(var c=0;c<b.length;c++)if(b[c]in a)return b[c]}function f(a){var b=a.__proto__||Object.getPrototypeOf(a),c=E.get(b);if(c)return c;var d=f(b),e=t(d);return q(b,e,a),e}function g(a,b){o(a,b,!0)}function h(a,b){o(b,a,!1)}function i(a){return/^on[a-z]+$/.test(a)}function j(a){return/^\w[a-zA-Z_0-9]*$/.test(a)}function k(a){return H&&j(a)?new Function("return this.impl."+a):function(){return this.impl[a]}}function l(a){return H&&j(a)?new Function("v","this.impl."+a+" = v"):function(b){this.impl[a]=b}}function m(a){return H&&j(a)?new Function("return this.impl."+a+".apply(this.impl, arguments)"):function(){return this.impl[a].apply(this.impl,arguments)}}function n(a,b){try{return Object.getOwnPropertyDescriptor(a,b)}catch(c){return O}}function o(b,c,d){for(var e=L(b),f=0;f<e.length;f++){var g=e[f];if("polymerBlackList_"!==g&&!(g in c||b.polymerBlackList_&&b.polymerBlackList_[g])){N&&b.__lookupGetter__(g);var h,j,o=n(b,g);if(d&&"function"==typeof o.value)c[g]=m(g);else{var p=i(g);h=p?a.getEventHandlerGetter(g):k(g),(o.writable||o.set)&&(j=p?a.getEventHandlerSetter(g):l(g)),K(c,g,{get:h,set:j,configurable:o.configurable,enumerable:o.enumerable})}}}}function p(a,b,c){var e=a.prototype;q(e,b,c),d(b,a)}function q(a,c,d){var e=c.prototype;b(void 0===E.get(a)),E.set(a,c),F.set(e,a),g(a,e),d&&h(e,d),K(e,"constructor",{value:c,configurable:!0,enumerable:!1,writable:!0}),c.prototype=e}function r(a,b){return E.get(b.prototype)===a}function s(a){var b=Object.getPrototypeOf(a),c=f(b),d=t(c);return q(b,d,a),d}function t(a){function b(b){a.call(this,b)}var c=Object.create(a.prototype);return c.constructor=b,b.prototype=c,b}function u(a){return a instanceof G.EventTarget||a instanceof G.Event||a instanceof G.Range||a instanceof G.DOMImplementation||a instanceof G.CanvasRenderingContext2D||G.WebGLRenderingContext&&a instanceof G.WebGLRenderingContext}function v(a){return Q&&a instanceof Q||a instanceof S||a instanceof R||a instanceof T||a instanceof U||a instanceof P||a instanceof V||W&&a instanceof W||X&&a instanceof X}function w(a){return null===a?null:(b(v(a)),a.polymerWrapper_||(a.polymerWrapper_=new(f(a))(a)))}function x(a){return null===a?null:(b(u(a)),a.impl)}function y(a){return a&&u(a)?x(a):a}function z(a){return a&&!u(a)?w(a):a}function A(a,c){null!==c&&(b(v(a)),b(void 0===c||u(c)),a.polymerWrapper_=c)}function B(a,b,c){K(a.prototype,b,{get:c,configurable:!0,enumerable:!0})}function C(a,b){B(a,b,function(){return w(this.impl[b])})}function D(a,b){a.forEach(function(a){b.forEach(function(b){a.prototype[b]=function(){var a=z(this);return a[b].apply(a,arguments)}})})}var E=new WeakMap,F=new WeakMap,G=Object.create(null),H=!("securityPolicy"in document)||document.securityPolicy.allowsEval;if(H)try{var I=new Function("","return true;");H=I()}catch(J){H=!1}var K=Object.defineProperty,L=Object.getOwnPropertyNames,M=Object.getOwnPropertyDescriptor;L(window);var N=/Firefox/.test(navigator.userAgent),O={get:function(){},set:function(){},configurable:!0,enumerable:!0},P=window.DOMImplementation,Q=window.EventTarget,R=window.Event,S=window.Node,T=window.Window,U=window.Range,V=window.CanvasRenderingContext2D,W=window.WebGLRenderingContext,X=window.SVGElementInstance;a.assert=b,a.constructorTable=E,a.defineGetter=B,a.defineWrapGetter=C,a.forwardMethodsToWrapper=D,a.isWrapper=u,a.isWrapperFor=r,a.mixin=c,a.nativePrototypeTable=F,a.oneOf=e,a.registerObject=s,a.registerWrapper=p,a.rewrap=A,a.unwrap=x,a.unwrapIfNeeded=y,a.wrap=w,a.wrapIfNeeded=z,a.wrappers=G}(window.ShadowDOMPolyfill),function(a){"use strict";function b(){g=!1;var a=f.slice(0);f=[];for(var b=0;b<a.length;b++)a[b]()}function c(a){f.push(a),g||(g=!0,d(b,0))}var d,e=window.MutationObserver,f=[],g=!1;if(e){var h=1,i=new e(b),j=document.createTextNode(h);i.observe(j,{characterData:!0}),d=function(){h=(h+1)%2,j.data=h}}else d=window.setImmediate||window.setTimeout;a.setEndOfMicrotask=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(){p||(k(c),p=!0)}function c(){p=!1;do for(var a=o.slice(),b=!1,c=0;c<a.length;c++){var d=a[c],e=d.takeRecords();f(d),e.length&&(d.callback_(e,d),b=!0)}while(b)}function d(a,b){this.type=a,this.target=b,this.addedNodes=new m.NodeList,this.removedNodes=new m.NodeList,this.previousSibling=null,this.nextSibling=null,this.attributeName=null,this.attributeNamespace=null,this.oldValue=null}function e(a,b){for(;a;a=a.parentNode){var c=n.get(a);if(c)for(var d=0;d<c.length;d++){var e=c[d];e.options.subtree&&e.addTransientObserver(b)}}}function f(a){for(var b=0;b<a.nodes_.length;b++){var c=a.nodes_[b],d=n.get(c);if(!d)return;for(var e=0;e<d.length;e++){var f=d[e];f.observer===a&&f.removeTransientObservers()}}}function g(a,c,e){for(var f=Object.create(null),g=Object.create(null),h=a;h;h=h.parentNode){var i=n.get(h);if(i)for(var j=0;j<i.length;j++){var k=i[j],l=k.options;if((h===a||l.subtree)&&!("attributes"===c&&!l.attributes||"attributes"===c&&l.attributeFilter&&(null!==e.namespace||-1===l.attributeFilter.indexOf(e.name))||"characterData"===c&&!l.characterData||"childList"===c&&!l.childList)){var m=k.observer;f[m.uid_]=m,("attributes"===c&&l.attributeOldValue||"characterData"===c&&l.characterDataOldValue)&&(g[m.uid_]=e.oldValue)}}}var o=!1;for(var p in f){var m=f[p],q=new d(c,a);"name"in e&&"namespace"in e&&(q.attributeName=e.name,q.attributeNamespace=e.namespace),e.addedNodes&&(q.addedNodes=e.addedNodes),e.removedNodes&&(q.removedNodes=e.removedNodes),e.previousSibling&&(q.previousSibling=e.previousSibling),e.nextSibling&&(q.nextSibling=e.nextSibling),void 0!==g[p]&&(q.oldValue=g[p]),m.records_.push(q),o=!0}o&&b()}function h(a){if(this.childList=!!a.childList,this.subtree=!!a.subtree,this.attributes="attributes"in a||!("attributeOldValue"in a||"attributeFilter"in a)?!!a.attributes:!0,this.characterData="characterDataOldValue"in a&&!("characterData"in a)?!0:!!a.characterData,!this.attributes&&(a.attributeOldValue||"attributeFilter"in a)||!this.characterData&&a.characterDataOldValue)throw new TypeError;if(this.characterData=!!a.characterData,this.attributeOldValue=!!a.attributeOldValue,this.characterDataOldValue=!!a.characterDataOldValue,"attributeFilter"in a){if(null==a.attributeFilter||"object"!=typeof a.attributeFilter)throw new TypeError;this.attributeFilter=q.call(a.attributeFilter)}else this.attributeFilter=null}function i(a){this.callback_=a,this.nodes_=[],this.records_=[],this.uid_=++r,o.push(this)}function j(a,b,c){this.observer=a,this.target=b,this.options=c,this.transientObservedNodes=[]}var k=a.setEndOfMicrotask,l=a.wrapIfNeeded,m=a.wrappers,n=new WeakMap,o=[],p=!1,q=Array.prototype.slice,r=0;i.prototype={observe:function(a,b){a=l(a);var c,d=new h(b),e=n.get(a);e||n.set(a,e=[]);for(var f=0;f<e.length;f++)e[f].observer===this&&(c=e[f],c.removeTransientObservers(),c.options=d);c||(c=new j(this,a,d),e.push(c),this.nodes_.push(a))},disconnect:function(){this.nodes_.forEach(function(a){for(var b=n.get(a),c=0;c<b.length;c++){var d=b[c];if(d.observer===this){b.splice(c,1);break}}},this),this.records_=[]},takeRecords:function(){var a=this.records_;return this.records_=[],a}},j.prototype={addTransientObserver:function(a){if(a!==this.target){this.transientObservedNodes.push(a);var b=n.get(a);b||n.set(a,b=[]),b.push(this)}},removeTransientObservers:function(){var a=this.transientObservedNodes;this.transientObservedNodes=[];for(var b=0;b<a.length;b++)for(var c=a[b],d=n.get(c),e=0;e<d.length;e++)if(d[e]===this){d.splice(e,1);break}}},a.enqueueMutation=g,a.registerTransientObservers=e,a.wrappers.MutationObserver=i,a.wrappers.MutationRecord=d}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a,b){this.root=a,this.parent=b}function c(a,b){if(a.treeScope_!==b){a.treeScope_=b;for(var d=a.shadowRoot;d;d=d.olderShadowRoot)d.treeScope_.parent=b;for(var e=a.firstChild;e;e=e.nextSibling)c(e,b)}}function d(a){if(a.treeScope_)return a.treeScope_;var c,e=a.parentNode;return c=e?d(e):new b(a,null),a.treeScope_=c}b.prototype={get renderer(){return this.root instanceof a.wrappers.ShadowRoot?a.getRendererForHost(this.root.host):null},contains:function(a){for(;a;a=a.parent)if(a===this)return!0;return!1}},a.TreeScope=b,a.getTreeScope=d,a.setTreeScope=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){return a instanceof Q.ShadowRoot}function c(a){var b=a.localName;return"content"===b||"shadow"===b}function d(a){return!!a.shadowRoot}function e(a){var b;return a.parentNode||(b=a.defaultView)&&P(b)||null}function f(f,g,h){if(h.length)return h.shift();if(b(f))return j(f)||f.host;var i=a.eventParentsTable.get(f);if(i){for(var k=1;k<i.length;k++)h[k-1]=i[k];return i[0]}if(g&&c(f)){var l=f.parentNode;if(l&&d(l))for(var m=a.getShadowTrees(l),n=j(g),k=0;k<m.length;k++)if(m[k].contains(n))return n}return e(f)}function g(a){for(var d=[],e=a,g=[],i=[];e;){var j=null;if(c(e)){j=h(d);var k=d[d.length-1]||e;d.push(k)}else d.length||d.push(e);var l=d[d.length-1];g.push({target:l,currentTarget:e}),b(e)&&d.pop(),e=f(e,j,i)}return g}function h(a){for(var b=a.length-1;b>=0;b--)if(!c(a[b]))return a[b];return null}function i(a,d){for(var e=[];a;){for(var g=[],i=d,j=void 0;i;){var m=null;if(g.length){if(c(i)&&(m=h(g),k(j))){var n=g[g.length-1];g.push(n)}}else g.push(i);if(l(i,a))return g[g.length-1];b(i)&&g.pop(),j=i,i=f(i,m,e)}a=b(a)?a.host:a.parentNode}}function j(b){return a.insertionParentTable.get(b)}function k(a){return j(a)}function l(a,b){return L(a)===L(b)}function m(a){S.get(a)||(S.set(a,!0),o(P(a),P(a.target)))}function n(a){switch(a.type){case"beforeunload":case"load":case"unload":return!0}return!1}function o(b,c){if(T.get(b))throw new Error("InvalidStateError");T.set(b,!0),a.renderAllPending();var d=g(c);return 2===d.length&&d[0].target instanceof Q.Document&&n(b)&&d.shift(),_.set(b,d),p(b,d)&&q(b,d)&&r(b,d),X.set(b,u.NONE),V.delete(b,null),T.delete(b),b.defaultPrevented}function p(a,b){for(var c,d=b.length-1;d>0;d--){var e=b[d].target,f=b[d].currentTarget;if(e!==f&&(c=u.CAPTURING_PHASE,!s(b[d],a,c)))return!1}return!0}function q(a,b){var c=u.AT_TARGET;return s(b[0],a,c)}function r(a,b){for(var c,d=a.bubbles,e=1;e<b.length;e++){var f=b[e].target,g=b[e].currentTarget;if(f===g)c=u.AT_TARGET;else{if(!d||Z.get(a))continue;c=u.BUBBLING_PHASE}if(!s(b[e],a,c))return}}function s(a,b,c){var d=a.target,e=a.currentTarget,f=R.get(e);if(!f)return!0;if("relatedTarget"in b){var g=O(b),h=g.relatedTarget;if(h&&h instanceof Object&&h.addEventListener){var j=P(h),k=i(e,j);if(k===d)return!0;W.set(b,k)}}X.set(b,c);var l=b.type,m=!1;U.set(b,d),V.set(b,e);for(var n=0;n<f.length;n++){var o=f[n];if(o.removed)m=!0;else if(!(o.type!==l||!o.capture&&c===u.CAPTURING_PHASE||o.capture&&c===u.BUBBLING_PHASE))try{if("function"==typeof o.handler?o.handler.call(e,b):o.handler.handleEvent(b),Z.get(b))return!1}catch(p){window.onerror?window.onerror(p.message):console.error(p,p.stack)}}if(m){var q=f.slice();f.length=0;for(var n=0;n<q.length;n++)q[n].removed||f.push(q[n])}return!Y.get(b)}function t(a,b,c){this.type=a,this.handler=b,this.capture=Boolean(c)}function u(a,b){if(!(a instanceof ab))return P(y(ab,"Event",a,b));var c=a;return lb||"beforeunload"!==c.type?void(this.impl=c):new z(c)}function v(a){return a&&a.relatedTarget?Object.create(a,{relatedTarget:{value:O(a.relatedTarget)}}):a
-}function w(a,b,c){var d=window[a],e=function(b,c){return b instanceof d?void(this.impl=b):P(y(d,a,b,c))};if(e.prototype=Object.create(b.prototype),c&&M(e.prototype,c),d)try{N(d,e,new d("temp"))}catch(f){N(d,e,document.createEvent(a))}return e}function x(a,b){return function(){arguments[b]=O(arguments[b]);var c=O(this);c[a].apply(c,arguments)}}function y(a,b,c,d){if(jb)return new a(c,v(d));var e=O(document.createEvent(b)),f=ib[b],g=[c];return Object.keys(f).forEach(function(a){var b=null!=d&&a in d?d[a]:f[a];"relatedTarget"===a&&(b=O(b)),g.push(b)}),e["init"+b].apply(e,g),e}function z(a){u.call(this,a)}function A(a){return"function"==typeof a?!0:a&&a.handleEvent}function B(a){switch(a){case"DOMAttrModified":case"DOMAttributeNameChanged":case"DOMCharacterDataModified":case"DOMElementNameChanged":case"DOMNodeInserted":case"DOMNodeInsertedIntoDocument":case"DOMNodeRemoved":case"DOMNodeRemovedFromDocument":case"DOMSubtreeModified":return!0}return!1}function C(a){this.impl=a}function D(a){return a instanceof Q.ShadowRoot&&(a=a.host),O(a)}function E(a,b){var c=R.get(a);if(c)for(var d=0;d<c.length;d++)if(!c[d].removed&&c[d].type===b)return!0;return!1}function F(a,b){for(var c=O(a);c;c=c.parentNode)if(E(P(c),b))return!0;return!1}function G(a){K(a,nb)}function H(b,c,d,e){a.renderAllPending();for(var f=P(ob.call(c.impl,d,e)),h=g(f,this),i=0;i<h.length;i++){var j=h[i];if(j.currentTarget===b)return j.target}return null}function I(a){return function(){var b=$.get(this);return b&&b[a]&&b[a].value||null}}function J(a){var b=a.slice(2);return function(c){var d=$.get(this);d||(d=Object.create(null),$.set(this,d));var e=d[a];if(e&&this.removeEventListener(b,e.wrapped,!1),"function"==typeof c){var f=function(b){var d=c.call(this,b);d===!1?b.preventDefault():"onbeforeunload"===a&&"string"==typeof d&&(b.returnValue=d)};this.addEventListener(b,f,!1),d[a]={value:c,wrapped:f}}}}var K=a.forwardMethodsToWrapper,L=a.getTreeScope,M=a.mixin,N=a.registerWrapper,O=a.unwrap,P=a.wrap,Q=a.wrappers,R=(new WeakMap,new WeakMap),S=new WeakMap,T=new WeakMap,U=new WeakMap,V=new WeakMap,W=new WeakMap,X=new WeakMap,Y=new WeakMap,Z=new WeakMap,$=new WeakMap,_=new WeakMap;t.prototype={equals:function(a){return this.handler===a.handler&&this.type===a.type&&this.capture===a.capture},get removed(){return null===this.handler},remove:function(){this.handler=null}};var ab=window.Event;ab.prototype.polymerBlackList_={returnValue:!0,keyLocation:!0},u.prototype={get target(){return U.get(this)},get currentTarget(){return V.get(this)},get eventPhase(){return X.get(this)},get path(){var a=new Q.NodeList,b=_.get(this);if(b){for(var c=0,d=b.length-1,e=L(V.get(this)),f=0;d>=f;f++){var g=b[f].currentTarget,h=L(g);h.contains(e)&&(f!==d||g instanceof Q.Node)&&(a[c++]=g)}a.length=c}return a},stopPropagation:function(){Y.set(this,!0)},stopImmediatePropagation:function(){Y.set(this,!0),Z.set(this,!0)}},N(ab,u,document.createEvent("Event"));var bb=w("UIEvent",u),cb=w("CustomEvent",u),db={get relatedTarget(){return W.get(this)||P(O(this).relatedTarget)}},eb=M({initMouseEvent:x("initMouseEvent",14)},db),fb=M({initFocusEvent:x("initFocusEvent",5)},db),gb=w("MouseEvent",bb,eb),hb=w("FocusEvent",bb,fb),ib=Object.create(null),jb=function(){try{new window.FocusEvent("focus")}catch(a){return!1}return!0}();if(!jb){var kb=function(a,b,c){if(c){var d=ib[c];b=M(M({},d),b)}ib[a]=b};kb("Event",{bubbles:!1,cancelable:!1}),kb("CustomEvent",{detail:null},"Event"),kb("UIEvent",{view:null,detail:0},"Event"),kb("MouseEvent",{screenX:0,screenY:0,clientX:0,clientY:0,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null},"UIEvent"),kb("FocusEvent",{relatedTarget:null},"UIEvent")}var lb=window.BeforeUnloadEvent;z.prototype=Object.create(u.prototype),M(z.prototype,{get returnValue(){return this.impl.returnValue},set returnValue(a){this.impl.returnValue=a}}),lb&&N(lb,z);var mb=window.EventTarget,nb=["addEventListener","removeEventListener","dispatchEvent"];[Node,Window].forEach(function(a){var b=a.prototype;nb.forEach(function(a){Object.defineProperty(b,a+"_",{value:b[a]})})}),C.prototype={addEventListener:function(a,b,c){if(A(b)&&!B(a)){var d=new t(a,b,c),e=R.get(this);if(e){for(var f=0;f<e.length;f++)if(d.equals(e[f]))return}else e=[],R.set(this,e);e.push(d);var g=D(this);g.addEventListener_(a,m,!0)}},removeEventListener:function(a,b,c){c=Boolean(c);var d=R.get(this);if(d){for(var e=0,f=!1,g=0;g<d.length;g++)d[g].type===a&&d[g].capture===c&&(e++,d[g].handler===b&&(f=!0,d[g].remove()));if(f&&1===e){var h=D(this);h.removeEventListener_(a,m,!0)}}},dispatchEvent:function(b){var c=O(b),d=c.type;S.set(c,!1),a.renderAllPending();var e;F(this,d)||(e=function(){},this.addEventListener(d,e,!0));try{return O(this).dispatchEvent_(c)}finally{e&&this.removeEventListener(d,e,!0)}}},mb&&N(mb,C);var ob=document.elementFromPoint;a.adjustRelatedTarget=i,a.elementFromPoint=H,a.getEventHandlerGetter=I,a.getEventHandlerSetter=J,a.wrapEventTargetMethods=G,a.wrappers.BeforeUnloadEvent=z,a.wrappers.CustomEvent=cb,a.wrappers.Event=u,a.wrappers.EventTarget=C,a.wrappers.FocusEvent=hb,a.wrappers.MouseEvent=gb,a.wrappers.UIEvent=bb}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a,b){Object.defineProperty(a,b,{enumerable:!1})}function c(){this.length=0,b(this,"length")}function d(a){if(null==a)return a;for(var b=new c,d=0,e=a.length;e>d;d++)b[d]=f(a[d]);return b.length=e,b}function e(a,b){a.prototype[b]=function(){return d(this.impl[b].apply(this.impl,arguments))}}var f=a.wrap;c.prototype={item:function(a){return this[a]}},b(c.prototype,"item"),a.wrappers.NodeList=c,a.addWrapNodeListMethod=e,a.wrapNodeList=d}(window.ShadowDOMPolyfill),function(a){"use strict";a.wrapHTMLCollection=a.wrapNodeList,a.wrappers.HTMLCollection=a.wrappers.NodeList}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){A(a instanceof w)}function c(a){var b=new y;return b[0]=a,b.length=1,b}function d(a,b,c){C(b,"childList",{removedNodes:c,previousSibling:a.previousSibling,nextSibling:a.nextSibling})}function e(a,b){C(a,"childList",{removedNodes:b})}function f(a,b,d,e){if(a instanceof DocumentFragment){var f=h(a);N=!0;for(var g=f.length-1;g>=0;g--)a.removeChild(f[g]),f[g].parentNode_=b;N=!1;for(var g=0;g<f.length;g++)f[g].previousSibling_=f[g-1]||d,f[g].nextSibling_=f[g+1]||e;return d&&(d.nextSibling_=f[0]),e&&(e.previousSibling_=f[f.length-1]),f}var f=c(a),i=a.parentNode;return i&&i.removeChild(a),a.parentNode_=b,a.previousSibling_=d,a.nextSibling_=e,d&&(d.nextSibling_=a),e&&(e.previousSibling_=a),f}function g(a){if(a instanceof DocumentFragment)return h(a);var b=c(a),e=a.parentNode;return e&&d(a,e,b),b}function h(a){for(var b=new y,c=0,d=a.firstChild;d;d=d.nextSibling)b[c++]=d;return b.length=c,e(a,b),b}function i(a){return a}function j(a,b){I(a,b),a.nodeIsInserted_()}function k(a,b){for(var c=D(b),d=0;d<a.length;d++)j(a[d],c)}function l(a){I(a,new z(a,null))}function m(a){for(var b=0;b<a.length;b++)l(a[b])}function n(a,b){var c=a.nodeType===w.DOCUMENT_NODE?a:a.ownerDocument;c!==b.ownerDocument&&c.adoptNode(b)}function o(b,c){if(c.length){var d=b.ownerDocument;if(d!==c[0].ownerDocument)for(var e=0;e<c.length;e++)a.adoptNodeNoRemove(c[e],d)}}function p(a,b){o(a,b);var c=b.length;if(1===c)return J(b[0]);for(var d=J(a.ownerDocument.createDocumentFragment()),e=0;c>e;e++)d.appendChild(J(b[e]));return d}function q(a){if(void 0!==a.firstChild_)for(var b=a.firstChild_;b;){var c=b;b=b.nextSibling_,c.parentNode_=c.previousSibling_=c.nextSibling_=void 0}a.firstChild_=a.lastChild_=void 0}function r(a){if(a.invalidateShadowRenderer()){for(var b=a.firstChild;b;){A(b.parentNode===a);var c=b.nextSibling,d=J(b),e=d.parentNode;e&&U.call(e,d),b.previousSibling_=b.nextSibling_=b.parentNode_=null,b=c}a.firstChild_=a.lastChild_=null}else for(var c,f=J(a),g=f.firstChild;g;)c=g.nextSibling,U.call(f,g),g=c}function s(a){var b=a.parentNode;return b&&b.invalidateShadowRenderer()}function t(a){for(var b,c=0;c<a.length;c++)b=a[c],b.parentNode.removeChild(b)}function u(a,b,c){var d;if(d=K(c?O.call(c,a.impl,!1):P.call(a.impl,!1)),b){for(var e=a.firstChild;e;e=e.nextSibling)d.appendChild(u(e,!0,c));if(a instanceof M.HTMLTemplateElement)for(var f=d.content,e=a.content.firstChild;e;e=e.nextSibling)f.appendChild(u(e,!0,c))}return d}function v(a,b){if(!b||D(a)!==D(b))return!1;for(var c=b;c;c=c.parentNode)if(c===a)return!0;return!1}function w(a){A(a instanceof Q),x.call(this,a),this.parentNode_=void 0,this.firstChild_=void 0,this.lastChild_=void 0,this.nextSibling_=void 0,this.previousSibling_=void 0,this.treeScope_=void 0}var x=a.wrappers.EventTarget,y=a.wrappers.NodeList,z=a.TreeScope,A=a.assert,B=a.defineWrapGetter,C=a.enqueueMutation,D=a.getTreeScope,E=a.isWrapper,F=a.mixin,G=a.registerTransientObservers,H=a.registerWrapper,I=a.setTreeScope,J=a.unwrap,K=a.wrap,L=a.wrapIfNeeded,M=a.wrappers,N=!1,O=document.importNode,P=window.Node.prototype.cloneNode,Q=window.Node,R=window.DocumentFragment,S=(Q.prototype.appendChild,Q.prototype.compareDocumentPosition),T=Q.prototype.insertBefore,U=Q.prototype.removeChild,V=Q.prototype.replaceChild,W=/Trident/.test(navigator.userAgent),X=W?function(a,b){try{U.call(a,b)}catch(c){if(!(a instanceof R))throw c}}:function(a,b){U.call(a,b)};w.prototype=Object.create(x.prototype),F(w.prototype,{appendChild:function(a){return this.insertBefore(a,null)},insertBefore:function(a,c){b(a);var d;c?E(c)?d=J(c):(d=c,c=K(d)):(c=null,d=null),c&&A(c.parentNode===this);var e,h=c?c.previousSibling:this.lastChild,i=!this.invalidateShadowRenderer()&&!s(a);if(e=i?g(a):f(a,this,h,c),i)n(this,a),q(this),T.call(this.impl,J(a),d);else{h||(this.firstChild_=e[0]),c||(this.lastChild_=e[e.length-1]);var j=d?d.parentNode:this.impl;j?T.call(j,p(this,e),d):o(this,e)}return C(this,"childList",{addedNodes:e,nextSibling:c,previousSibling:h}),k(e,this),a},removeChild:function(a){if(b(a),a.parentNode!==this){for(var d=!1,e=(this.childNodes,this.firstChild);e;e=e.nextSibling)if(e===a){d=!0;break}if(!d)throw new Error("NotFoundError")}var f=J(a),g=a.nextSibling,h=a.previousSibling;if(this.invalidateShadowRenderer()){var i=this.firstChild,j=this.lastChild,k=f.parentNode;k&&X(k,f),i===a&&(this.firstChild_=g),j===a&&(this.lastChild_=h),h&&(h.nextSibling_=g),g&&(g.previousSibling_=h),a.previousSibling_=a.nextSibling_=a.parentNode_=void 0}else q(this),X(this.impl,f);return N||C(this,"childList",{removedNodes:c(a),nextSibling:g,previousSibling:h}),G(this,a),a},replaceChild:function(a,d){b(a);var e;if(E(d)?e=J(d):(e=d,d=K(e)),d.parentNode!==this)throw new Error("NotFoundError");var h,i=d.nextSibling,j=d.previousSibling,m=!this.invalidateShadowRenderer()&&!s(a);return m?h=g(a):(i===a&&(i=a.nextSibling),h=f(a,this,j,i)),m?(n(this,a),q(this),V.call(this.impl,J(a),e)):(this.firstChild===d&&(this.firstChild_=h[0]),this.lastChild===d&&(this.lastChild_=h[h.length-1]),d.previousSibling_=d.nextSibling_=d.parentNode_=void 0,e.parentNode&&V.call(e.parentNode,p(this,h),e)),C(this,"childList",{addedNodes:h,removedNodes:c(d),nextSibling:i,previousSibling:j}),l(d),k(h,this),d},nodeIsInserted_:function(){for(var a=this.firstChild;a;a=a.nextSibling)a.nodeIsInserted_()},hasChildNodes:function(){return null!==this.firstChild},get parentNode(){return void 0!==this.parentNode_?this.parentNode_:K(this.impl.parentNode)},get firstChild(){return void 0!==this.firstChild_?this.firstChild_:K(this.impl.firstChild)},get lastChild(){return void 0!==this.lastChild_?this.lastChild_:K(this.impl.lastChild)},get nextSibling(){return void 0!==this.nextSibling_?this.nextSibling_:K(this.impl.nextSibling)},get previousSibling(){return void 0!==this.previousSibling_?this.previousSibling_:K(this.impl.previousSibling)},get parentElement(){for(var a=this.parentNode;a&&a.nodeType!==w.ELEMENT_NODE;)a=a.parentNode;return a},get textContent(){for(var a="",b=this.firstChild;b;b=b.nextSibling)b.nodeType!=w.COMMENT_NODE&&(a+=b.textContent);return a},set textContent(a){var b=i(this.childNodes);if(this.invalidateShadowRenderer()){if(r(this),""!==a){var c=this.impl.ownerDocument.createTextNode(a);this.appendChild(c)}}else q(this),this.impl.textContent=a;var d=i(this.childNodes);C(this,"childList",{addedNodes:d,removedNodes:b}),m(b),k(d,this)},get childNodes(){for(var a=new y,b=0,c=this.firstChild;c;c=c.nextSibling)a[b++]=c;return a.length=b,a},cloneNode:function(a){return u(this,a)},contains:function(a){return v(this,L(a))},compareDocumentPosition:function(a){return S.call(this.impl,J(a))},normalize:function(){for(var a,b,c=i(this.childNodes),d=[],e="",f=0;f<c.length;f++)b=c[f],b.nodeType===w.TEXT_NODE?a||b.data.length?a?(e+=b.data,d.push(b)):a=b:this.removeNode(b):(a&&d.length&&(a.data+=e,cleanUpNodes(d)),d=[],e="",a=null,b.childNodes.length&&b.normalize());a&&d.length&&(a.data+=e,t(d))}}),B(w,"ownerDocument"),H(Q,w,document.createDocumentFragment()),delete w.prototype.querySelector,delete w.prototype.querySelectorAll,w.prototype=F(Object.create(x.prototype),w.prototype),a.cloneNode=u,a.nodeWasAdded=j,a.nodeWasRemoved=l,a.nodesWereAdded=k,a.nodesWereRemoved=m,a.snapshotNodeList=i,a.wrappers.Node=w}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a,c){for(var d,e=a.firstElementChild;e;){if(e.matches(c))return e;if(d=b(e,c))return d;e=e.nextElementSibling}return null}function c(a,b,d){for(var e=a.firstElementChild;e;)e.matches(b)&&(d[d.length++]=e),c(e,b,d),e=e.nextElementSibling;return d}var d={querySelector:function(a){return b(this,a)},querySelectorAll:function(a){return c(this,a,new NodeList)}},e={getElementsByTagName:function(a){return this.querySelectorAll(a)},getElementsByClassName:function(a){return this.querySelectorAll("."+a)},getElementsByTagNameNS:function(a,b){if("*"===a)return this.getElementsByTagName(b);for(var c=new NodeList,d=this.getElementsByTagName(b),e=0,f=0;e<d.length;e++)d[e].namespaceURI===a&&(c[f++]=d[e]);return c.length=f,c}};a.GetElementsByInterface=e,a.SelectorsInterface=d}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){for(;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.nextSibling;return a}function c(a){for(;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.previousSibling;return a}var d=a.wrappers.NodeList,e={get firstElementChild(){return b(this.firstChild)},get lastElementChild(){return c(this.lastChild)},get childElementCount(){for(var a=0,b=this.firstElementChild;b;b=b.nextElementSibling)a++;return a},get children(){for(var a=new d,b=0,c=this.firstElementChild;c;c=c.nextElementSibling)a[b++]=c;return a.length=b,a},remove:function(){var a=this.parentNode;a&&a.removeChild(this)}},f={get nextElementSibling(){return b(this.nextSibling)},get previousElementSibling(){return c(this.previousSibling)}};a.ChildNodeInterface=f,a.ParentNodeInterface=e}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){d.call(this,a)}var c=a.ChildNodeInterface,d=a.wrappers.Node,e=a.enqueueMutation,f=a.mixin,g=a.registerWrapper,h=window.CharacterData;b.prototype=Object.create(d.prototype),f(b.prototype,{get textContent(){return this.data},set textContent(a){this.data=a},get data(){return this.impl.data},set data(a){var b=this.impl.data;e(this,"characterData",{oldValue:b}),this.impl.data=a}}),f(b.prototype,c),g(h,b,document.createTextNode("")),a.wrappers.CharacterData=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){return a>>>0}function c(a){d.call(this,a)}var d=a.wrappers.CharacterData,e=(a.enqueueMutation,a.mixin),f=a.registerWrapper,g=window.Text;c.prototype=Object.create(d.prototype),e(c.prototype,{splitText:function(a){a=b(a);var c=this.data;if(a>c.length)throw new Error("IndexSizeError");var d=c.slice(0,a),e=c.slice(a);this.data=d;var f=this.ownerDocument.createTextNode(e);return this.parentNode&&this.parentNode.insertBefore(f,this.nextSibling),f}}),f(g,c,document.createTextNode("")),a.wrappers.Text=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(b,c){var d=b.parentNode;if(d&&d.shadowRoot){var e=a.getRendererForHost(d);e.dependsOnAttribute(c)&&e.invalidate()}}function c(a,b,c){k(a,"attributes",{name:b,namespace:null,oldValue:c})}function d(a){h.call(this,a)}function e(a,c,d){var e=d||c;Object.defineProperty(a,c,{get:function(){return this.impl[c]},set:function(a){this.impl[c]=a,b(this,e)},configurable:!0,enumerable:!0})}var f=a.ChildNodeInterface,g=a.GetElementsByInterface,h=a.wrappers.Node,i=a.ParentNodeInterface,j=a.SelectorsInterface,k=(a.addWrapNodeListMethod,a.enqueueMutation),l=a.mixin,m=(a.oneOf,a.registerWrapper),n=a.wrappers,o=window.Element,p=["matches","mozMatchesSelector","msMatchesSelector","webkitMatchesSelector"].filter(function(a){return o.prototype[a]}),q=p[0],r=o.prototype[q];d.prototype=Object.create(h.prototype),l(d.prototype,{createShadowRoot:function(){var b=new n.ShadowRoot(this);this.impl.polymerShadowRoot_=b;var c=a.getRendererForHost(this);return c.invalidate(),b},get shadowRoot(){return this.impl.polymerShadowRoot_||null},setAttribute:function(a,d){var e=this.impl.getAttribute(a);this.impl.setAttribute(a,d),c(this,a,e),b(this,a)},removeAttribute:function(a){var d=this.impl.getAttribute(a);this.impl.removeAttribute(a),c(this,a,d),b(this,a)},matches:function(a){return r.call(this.impl,a)}}),p.forEach(function(a){"matches"!==a&&(d.prototype[a]=function(a){return this.matches(a)})}),o.prototype.webkitCreateShadowRoot&&(d.prototype.webkitCreateShadowRoot=d.prototype.createShadowRoot),e(d.prototype,"id"),e(d.prototype,"className","class"),l(d.prototype,f),l(d.prototype,g),l(d.prototype,i),l(d.prototype,j),m(o,d,document.createElementNS(null,"x")),a.matchesNames=p,a.wrappers.Element=d}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){switch(a){case"&":return"&amp;";case"<":return"&lt;";case">":return"&gt;";case'"':return"&quot;";case"Â ":return"&nbsp;"}}function c(a){return a.replace(z,b)}function d(a){return a.replace(A,b)}function e(a){for(var b={},c=0;c<a.length;c++)b[a[c]]=!0;return b}function f(a,b){switch(a.nodeType){case Node.ELEMENT_NODE:for(var e,f=a.tagName.toLowerCase(),h="<"+f,i=a.attributes,j=0;e=i[j];j++)h+=" "+e.name+'="'+c(e.value)+'"';return h+=">",B[f]?h:h+g(a)+"</"+f+">";case Node.TEXT_NODE:var k=a.data;return b&&C[b.localName]?k:d(k);case Node.COMMENT_NODE:return"<!--"+a.data+"-->";default:throw console.error(a),new Error("not implemented")}}function g(a){a instanceof y.HTMLTemplateElement&&(a=a.content);for(var b="",c=a.firstChild;c;c=c.nextSibling)b+=f(c,a);return b}function h(a,b,c){var d=c||"div";a.textContent="";var e=w(a.ownerDocument.createElement(d));e.innerHTML=b;for(var f;f=e.firstChild;)a.appendChild(x(f))}function i(a){o.call(this,a)}function j(a,b){var c=w(a.cloneNode(!1));c.innerHTML=b;for(var d,e=w(document.createDocumentFragment());d=c.firstChild;)e.appendChild(d);return x(e)}function k(b){return function(){return a.renderAllPending(),this.impl[b]}}function l(a){p(i,a,k(a))}function m(b){Object.defineProperty(i.prototype,b,{get:k(b),set:function(c){a.renderAllPending(),this.impl[b]=c},configurable:!0,enumerable:!0})}function n(b){Object.defineProperty(i.prototype,b,{value:function(){return a.renderAllPending(),this.impl[b].apply(this.impl,arguments)},configurable:!0,enumerable:!0})}var o=a.wrappers.Element,p=a.defineGetter,q=a.enqueueMutation,r=a.mixin,s=a.nodesWereAdded,t=a.nodesWereRemoved,u=a.registerWrapper,v=a.snapshotNodeList,w=a.unwrap,x=a.wrap,y=a.wrappers,z=/[&\u00A0"]/g,A=/[&\u00A0<>]/g,B=e(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),C=e(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]),D=/MSIE/.test(navigator.userAgent),E=window.HTMLElement,F=window.HTMLTemplateElement;i.prototype=Object.create(o.prototype),r(i.prototype,{get innerHTML(){return g(this)},set innerHTML(a){if(D&&C[this.localName])return void(this.textContent=a);var b=v(this.childNodes);this.invalidateShadowRenderer()?this instanceof y.HTMLTemplateElement?h(this.content,a):h(this,a,this.tagName):!F&&this instanceof y.HTMLTemplateElement?h(this.content,a):this.impl.innerHTML=a;var c=v(this.childNodes);q(this,"childList",{addedNodes:c,removedNodes:b}),t(b),s(c,this)},get outerHTML(){return f(this,this.parentNode)},set outerHTML(a){var b=this.parentNode;if(b){b.invalidateShadowRenderer();var c=j(b,a);b.replaceChild(c,this)}},insertAdjacentHTML:function(a,b){var c,d;switch(String(a).toLowerCase()){case"beforebegin":c=this.parentNode,d=this;break;case"afterend":c=this.parentNode,d=this.nextSibling;break;case"afterbegin":c=this,d=this.firstChild;break;case"beforeend":c=this,d=null;break;default:return}var e=j(c,b);c.insertBefore(e,d)}}),["clientHeight","clientLeft","clientTop","clientWidth","offsetHeight","offsetLeft","offsetTop","offsetWidth","scrollHeight","scrollWidth"].forEach(l),["scrollLeft","scrollTop"].forEach(m),["getBoundingClientRect","getClientRects","scrollIntoView"].forEach(n),u(E,i,document.createElement("b")),a.wrappers.HTMLElement=i,a.getInnerHTML=g,a.setInnerHTML=h}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.wrap,g=window.HTMLCanvasElement;b.prototype=Object.create(c.prototype),d(b.prototype,{getContext:function(){var a=this.impl.getContext.apply(this.impl,arguments);return a&&f(a)}}),e(g,b,document.createElement("canvas")),a.wrappers.HTMLCanvasElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=window.HTMLContentElement;b.prototype=Object.create(c.prototype),d(b.prototype,{get select(){return this.getAttribute("select")},set select(a){this.setAttribute("select",a)},setAttribute:function(a,b){c.prototype.setAttribute.call(this,a,b),"select"===String(a).toLowerCase()&&this.invalidateShadowRenderer(!0)}}),f&&e(f,b),a.wrappers.HTMLContentElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){d.call(this,a)}function c(a,b){if(!(this instanceof c))throw new TypeError("DOM object constructor cannot be called as a function.");var e=f(document.createElement("img"));d.call(this,e),g(e,this),void 0!==a&&(e.width=a),void 0!==b&&(e.height=b)}var d=a.wrappers.HTMLElement,e=a.registerWrapper,f=a.unwrap,g=a.rewrap,h=window.HTMLImageElement;b.prototype=Object.create(d.prototype),e(h,b,document.createElement("img")),c.prototype=b.prototype,a.wrappers.HTMLImageElement=b,a.wrappers.Image=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=window.HTMLShadowElement;b.prototype=Object.create(c.prototype),d(b.prototype,{}),f&&e(f,b),a.wrappers.HTMLShadowElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){if(!a.defaultView)return a;var b=k.get(a);if(!b){for(b=a.implementation.createHTMLDocument("");b.lastChild;)b.removeChild(b.lastChild);k.set(a,b)}return b}function c(a){for(var c,d=b(a.ownerDocument),e=h(d.createDocumentFragment());c=a.firstChild;)e.appendChild(c);return e}function d(a){if(e.call(this,a),!l){var b=c(a);j.set(this,i(b))}}var e=a.wrappers.HTMLElement,f=a.mixin,g=a.registerWrapper,h=a.unwrap,i=a.wrap,j=new WeakMap,k=new WeakMap,l=window.HTMLTemplateElement;d.prototype=Object.create(e.prototype),f(d.prototype,{get content(){return l?i(this.impl.content):j.get(this)}}),l&&g(l,d),a.wrappers.HTMLTemplateElement=d}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.registerWrapper,e=window.HTMLMediaElement;b.prototype=Object.create(c.prototype),d(e,b,document.createElement("audio")),a.wrappers.HTMLMediaElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){d.call(this,a)}function c(a){if(!(this instanceof c))throw new TypeError("DOM object constructor cannot be called as a function.");var b=f(document.createElement("audio"));d.call(this,b),g(b,this),b.setAttribute("preload","auto"),void 0!==a&&b.setAttribute("src",a)}var d=a.wrappers.HTMLMediaElement,e=a.registerWrapper,f=a.unwrap,g=a.rewrap,h=window.HTMLAudioElement;b.prototype=Object.create(d.prototype),e(h,b,document.createElement("audio")),c.prototype=b.prototype,a.wrappers.HTMLAudioElement=b,a.wrappers.Audio=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){return a.replace(/\s+/g," ").trim()}function c(a){e.call(this,a)}function d(a,b,c,f){if(!(this instanceof d))throw new TypeError("DOM object constructor cannot be called as a function.");var g=i(document.createElement("option"));e.call(this,g),h(g,this),void 0!==a&&(g.text=a),void 0!==b&&g.setAttribute("value",b),c===!0&&g.setAttribute("selected",""),g.selected=f===!0}var e=a.wrappers.HTMLElement,f=a.mixin,g=a.registerWrapper,h=a.rewrap,i=a.unwrap,j=a.wrap,k=window.HTMLOptionElement;c.prototype=Object.create(e.prototype),f(c.prototype,{get text(){return b(this.textContent)},set text(a){this.textContent=b(String(a))},get form(){return j(i(this).form)}}),g(k,c,document.createElement("option")),d.prototype=c.prototype,a.wrappers.HTMLOptionElement=c,a.wrappers.Option=d}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.unwrap,g=a.wrap,h=window.HTMLSelectElement;b.prototype=Object.create(c.prototype),d(b.prototype,{add:function(a,b){"object"==typeof b&&(b=f(b)),f(this).add(f(a),b)},remove:function(a){return void 0===a?void c.prototype.remove.call(this):("object"==typeof a&&(a=f(a)),void f(this).remove(a))},get form(){return g(f(this).form)}}),e(h,b,document.createElement("select")),a.wrappers.HTMLSelectElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.unwrap,g=a.wrap,h=a.wrapHTMLCollection,i=window.HTMLTableElement;b.prototype=Object.create(c.prototype),d(b.prototype,{get caption(){return g(f(this).caption)},createCaption:function(){return g(f(this).createCaption())},get tHead(){return g(f(this).tHead)},createTHead:function(){return g(f(this).createTHead())},createTFoot:function(){return g(f(this).createTFoot())},get tFoot(){return g(f(this).tFoot)},get tBodies(){return h(f(this).tBodies)},createTBody:function(){return g(f(this).createTBody())},get rows(){return h(f(this).rows)},insertRow:function(a){return g(f(this).insertRow(a))}}),e(i,b,document.createElement("table")),a.wrappers.HTMLTableElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.wrapHTMLCollection,g=a.unwrap,h=a.wrap,i=window.HTMLTableSectionElement;b.prototype=Object.create(c.prototype),d(b.prototype,{get rows(){return f(g(this).rows)},insertRow:function(a){return h(g(this).insertRow(a))}}),e(i,b,document.createElement("thead")),a.wrappers.HTMLTableSectionElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.wrapHTMLCollection,g=a.unwrap,h=a.wrap,i=window.HTMLTableRowElement;b.prototype=Object.create(c.prototype),d(b.prototype,{get cells(){return f(g(this).cells)},insertCell:function(a){return h(g(this).insertCell(a))}}),e(i,b,document.createElement("tr")),a.wrappers.HTMLTableRowElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){switch(a.localName){case"content":return new c(a);case"shadow":return new e(a);case"template":return new f(a)}d.call(this,a)}var c=a.wrappers.HTMLContentElement,d=a.wrappers.HTMLElement,e=a.wrappers.HTMLShadowElement,f=a.wrappers.HTMLTemplateElement,g=(a.mixin,a.registerWrapper),h=window.HTMLUnknownElement;b.prototype=Object.create(d.prototype),g(h,b),a.wrappers.HTMLUnknownElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";var b=a.registerObject,c="http://www.w3.org/2000/svg",d=document.createElementNS(c,"title"),e=b(d),f=Object.getPrototypeOf(e.prototype).constructor;a.wrappers.SVGElement=f}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){m.call(this,a)}var c=a.mixin,d=a.registerWrapper,e=a.unwrap,f=a.wrap,g=window.SVGUseElement,h="http://www.w3.org/2000/svg",i=f(document.createElementNS(h,"g")),j=document.createElementNS(h,"use"),k=i.constructor,l=Object.getPrototypeOf(k.prototype),m=l.constructor;b.prototype=Object.create(l),"instanceRoot"in j&&c(b.prototype,{get instanceRoot(){return f(e(this).instanceRoot)},get animatedInstanceRoot(){return f(e(this).animatedInstanceRoot)}}),d(g,b,j),a.wrappers.SVGUseElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.EventTarget,d=a.mixin,e=a.registerWrapper,f=a.wrap,g=window.SVGElementInstance;g&&(b.prototype=Object.create(c.prototype),d(b.prototype,{get correspondingElement(){return f(this.impl.correspondingElement)},get correspondingUseElement(){return f(this.impl.correspondingUseElement)},get parentNode(){return f(this.impl.parentNode)},get childNodes(){throw new Error("Not implemented")},get firstChild(){return f(this.impl.firstChild)},get lastChild(){return f(this.impl.lastChild)},get previousSibling(){return f(this.impl.previousSibling)},get nextSibling(){return f(this.impl.nextSibling)}}),e(g,b),a.wrappers.SVGElementInstance=b)}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){this.impl=a}var c=a.mixin,d=a.registerWrapper,e=a.unwrap,f=a.unwrapIfNeeded,g=a.wrap,h=window.CanvasRenderingContext2D;c(b.prototype,{get canvas(){return g(this.impl.canvas)},drawImage:function(){arguments[0]=f(arguments[0]),this.impl.drawImage.apply(this.impl,arguments)},createPattern:function(){return arguments[0]=e(arguments[0]),this.impl.createPattern.apply(this.impl,arguments)}}),d(h,b,document.createElement("canvas").getContext("2d")),a.wrappers.CanvasRenderingContext2D=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){this.impl=a}var c=a.mixin,d=a.registerWrapper,e=a.unwrapIfNeeded,f=a.wrap,g=window.WebGLRenderingContext;if(g){c(b.prototype,{get canvas(){return f(this.impl.canvas)},texImage2D:function(){arguments[5]=e(arguments[5]),this.impl.texImage2D.apply(this.impl,arguments)},texSubImage2D:function(){arguments[6]=e(arguments[6]),this.impl.texSubImage2D.apply(this.impl,arguments)}});var h=/WebKit/.test(navigator.userAgent)?{drawingBufferHeight:null,drawingBufferWidth:null}:{};d(g,b,h),a.wrappers.WebGLRenderingContext=b}}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){this.impl=a}var c=a.registerWrapper,d=a.unwrap,e=a.unwrapIfNeeded,f=a.wrap,g=window.Range;b.prototype={get startContainer(){return f(this.impl.startContainer)},get endContainer(){return f(this.impl.endContainer)},get commonAncestorContainer(){return f(this.impl.commonAncestorContainer)},setStart:function(a,b){this.impl.setStart(e(a),b)},setEnd:function(a,b){this.impl.setEnd(e(a),b)},setStartBefore:function(a){this.impl.setStartBefore(e(a))},setStartAfter:function(a){this.impl.setStartAfter(e(a))},setEndBefore:function(a){this.impl.setEndBefore(e(a))},setEndAfter:function(a){this.impl.setEndAfter(e(a))},selectNode:function(a){this.impl.selectNode(e(a))},selectNodeContents:function(a){this.impl.selectNodeContents(e(a))},compareBoundaryPoints:function(a,b){return this.impl.compareBoundaryPoints(a,d(b))},extractContents:function(){return f(this.impl.extractContents())},cloneContents:function(){return f(this.impl.cloneContents())},insertNode:function(a){this.impl.insertNode(e(a))},surroundContents:function(a){this.impl.surroundContents(e(a))},cloneRange:function(){return f(this.impl.cloneRange())},isPointInRange:function(a,b){return this.impl.isPointInRange(e(a),b)},comparePoint:function(a,b){return this.impl.comparePoint(e(a),b)},intersectsNode:function(a){return this.impl.intersectsNode(e(a))},toString:function(){return this.impl.toString()}},g.prototype.createContextualFragment&&(b.prototype.createContextualFragment=function(a){return f(this.impl.createContextualFragment(a))}),c(window.Range,b,document.createRange()),a.wrappers.Range=b}(window.ShadowDOMPolyfill),function(a){"use strict";var b=a.GetElementsByInterface,c=a.ParentNodeInterface,d=a.SelectorsInterface,e=a.mixin,f=a.registerObject,g=f(document.createDocumentFragment());
-e(g.prototype,c),e(g.prototype,d),e(g.prototype,b);var h=f(document.createComment(""));a.wrappers.Comment=h,a.wrappers.DocumentFragment=g}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){var b=k(a.impl.ownerDocument.createDocumentFragment());c.call(this,b),i(b,this),this.treeScope_=new d(this,g(a));var e=a.shadowRoot;m.set(this,e),l.set(this,a)}var c=a.wrappers.DocumentFragment,d=a.TreeScope,e=a.elementFromPoint,f=a.getInnerHTML,g=a.getTreeScope,h=a.mixin,i=a.rewrap,j=a.setInnerHTML,k=a.unwrap,l=new WeakMap,m=new WeakMap,n=/[ \t\n\r\f]/;b.prototype=Object.create(c.prototype),h(b.prototype,{get innerHTML(){return f(this)},set innerHTML(a){j(this,a),this.invalidateShadowRenderer()},get olderShadowRoot(){return m.get(this)||null},get host(){return l.get(this)||null},invalidateShadowRenderer:function(){return l.get(this).invalidateShadowRenderer()},elementFromPoint:function(a,b){return e(this,this.ownerDocument,a,b)},getElementById:function(a){return n.test(a)?null:this.querySelector('[id="'+a+'"]')}}),a.wrappers.ShadowRoot=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){a.previousSibling_=a.previousSibling,a.nextSibling_=a.nextSibling,a.parentNode_=a.parentNode}function c(a,c,e){var f=G(a),g=G(c),h=e?G(e):null;if(d(c),b(c),e)a.firstChild===e&&(a.firstChild_=e),e.previousSibling_=e.previousSibling;else{a.lastChild_=a.lastChild,a.lastChild===a.firstChild&&(a.firstChild_=a.firstChild);var i=H(f.lastChild);i&&(i.nextSibling_=i.nextSibling)}f.insertBefore(g,h)}function d(a){var c=G(a),d=c.parentNode;if(d){var e=H(d);b(a),a.previousSibling&&(a.previousSibling.nextSibling_=a),a.nextSibling&&(a.nextSibling.previousSibling_=a),e.lastChild===a&&(e.lastChild_=a),e.firstChild===a&&(e.firstChild_=a),d.removeChild(c)}}function e(a,b){g(b).push(a),x(a,b);var c=J.get(a);c||J.set(a,c=[]),c.push(b)}function f(a){I.set(a,[])}function g(a){var b=I.get(a);return b||I.set(a,b=[]),b}function h(a){for(var b=[],c=0,d=a.firstChild;d;d=d.nextSibling)b[c++]=d;return b}function i(a,b,c){for(var d=a.firstChild;d;d=d.nextSibling)if(b(d)){if(c(d)===!1)return}else i(d,b,c)}function j(a,b){var c=b.getAttribute("select");if(!c)return!0;if(c=c.trim(),!c)return!0;if(!(a instanceof z))return!1;if("*"===c||c===a.localName)return!0;if(!M.test(c))return!1;if(":"===c[0]&&!N.test(c))return!1;try{return a.matches(c)}catch(d){return!1}}function k(){for(var a=0;a<P.length;a++){var b=P[a],c=b.parentRenderer;c&&c.dirty||b.render()}P=[]}function l(){y=null,k()}function m(a){var b=L.get(a);return b||(b=new q(a),L.set(a,b)),b}function n(a){var b=E(a).root;return b instanceof D?b:null}function o(a){return m(a.host)}function p(a){this.skip=!1,this.node=a,this.childNodes=[]}function q(a){this.host=a,this.dirty=!1,this.invalidateAttributes(),this.associateNode(a)}function r(a){return a instanceof A}function s(a){return a instanceof A}function t(a){return a instanceof B}function u(a){return a instanceof B}function v(a){return a.shadowRoot}function w(a){for(var b=[],c=a.shadowRoot;c;c=c.olderShadowRoot)b.push(c);return b}function x(a,b){K.set(a,b)}var y,z=a.wrappers.Element,A=a.wrappers.HTMLContentElement,B=a.wrappers.HTMLShadowElement,C=a.wrappers.Node,D=a.wrappers.ShadowRoot,E=(a.assert,a.getTreeScope),F=(a.mixin,a.oneOf),G=a.unwrap,H=a.wrap,I=new WeakMap,J=new WeakMap,K=new WeakMap,L=new WeakMap,M=/^[*.:#[a-zA-Z_|]/,N=new RegExp("^:("+["link","visited","target","enabled","disabled","checked","indeterminate","nth-child","nth-last-child","nth-of-type","nth-last-of-type","first-child","last-child","first-of-type","last-of-type","only-of-type"].join("|")+")"),O=F(window,["requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout"]),P=[],Q=new ArraySplice;Q.equals=function(a,b){return G(a.node)===b},p.prototype={append:function(a){var b=new p(a);return this.childNodes.push(b),b},sync:function(a){if(!this.skip){for(var b=this.node,e=this.childNodes,f=h(G(b)),g=a||new WeakMap,i=Q.calculateSplices(e,f),j=0,k=0,l=0,m=0;m<i.length;m++){for(var n=i[m];l<n.index;l++)k++,e[j++].sync(g);for(var o=n.removed.length,p=0;o>p;p++){var q=H(f[k++]);g.get(q)||d(q)}for(var r=n.addedCount,s=f[k]&&H(f[k]),p=0;r>p;p++){var t=e[j++],u=t.node;c(b,u,s),g.set(u,!0),t.sync(g)}l+=r}for(var m=l;m<e.length;m++)e[m].sync(g)}}},q.prototype={render:function(a){if(this.dirty){this.invalidateAttributes(),this.treeComposition();var b=this.host,c=b.shadowRoot;this.associateNode(b);for(var d=!e,e=a||new p(b),f=c.firstChild;f;f=f.nextSibling)this.renderNode(c,e,f,!1);d&&e.sync(),this.dirty=!1}},get parentRenderer(){return E(this.host).renderer},invalidate:function(){if(!this.dirty){if(this.dirty=!0,P.push(this),y)return;y=window[O](l,0)}},renderNode:function(a,b,c,d){if(v(c)){b=b.append(c);var e=m(c);e.dirty=!0,e.render(b)}else r(c)?this.renderInsertionPoint(a,b,c,d):t(c)?this.renderShadowInsertionPoint(a,b,c):this.renderAsAnyDomTree(a,b,c,d)},renderAsAnyDomTree:function(a,b,c,d){if(b=b.append(c),v(c)){var e=m(c);b.skip=!e.dirty,e.render(b)}else for(var f=c.firstChild;f;f=f.nextSibling)this.renderNode(a,b,f,d)},renderInsertionPoint:function(a,b,c,d){var e=g(c);if(e.length){this.associateNode(c);for(var f=0;f<e.length;f++){var h=e[f];r(h)&&d?this.renderInsertionPoint(a,b,h,d):this.renderAsAnyDomTree(a,b,h,d)}}else this.renderFallbackContent(a,b,c);this.associateNode(c.parentNode)},renderShadowInsertionPoint:function(a,b,c){var d=a.olderShadowRoot;if(d){x(d,c),this.associateNode(c.parentNode);for(var e=d.firstChild;e;e=e.nextSibling)this.renderNode(d,b,e,!0)}else this.renderFallbackContent(a,b,c)},renderFallbackContent:function(a,b,c){this.associateNode(c),this.associateNode(c.parentNode);for(var d=c.firstChild;d;d=d.nextSibling)this.renderAsAnyDomTree(a,b,d,!1)},invalidateAttributes:function(){this.attributes=Object.create(null)},updateDependentAttributes:function(a){if(a){var b=this.attributes;/\.\w+/.test(a)&&(b["class"]=!0),/#\w+/.test(a)&&(b.id=!0),a.replace(/\[\s*([^\s=\|~\]]+)/g,function(a,c){b[c]=!0})}},dependsOnAttribute:function(a){return this.attributes[a]},distribute:function(a,b){var c=this;i(a,s,function(a){f(a),c.updateDependentAttributes(a.getAttribute("select"));for(var d=0;d<b.length;d++){var g=b[d];void 0!==g&&j(g,a)&&(e(g,a),b[d]=void 0)}})},treeComposition:function(){for(var a=this.host,b=a.shadowRoot,c=[],d=a.firstChild;d;d=d.nextSibling)if(r(d)){var e=g(d);e&&e.length||(e=h(d)),c.push.apply(c,e)}else c.push(d);for(var f,j;b;){if(f=void 0,i(b,u,function(a){return f=a,!1}),j=f,this.distribute(b,c),j){var k=b.olderShadowRoot;if(k){b=k,x(b,j);continue}break}break}},associateNode:function(a){a.impl.polymerShadowRenderer_=this}},C.prototype.invalidateShadowRenderer=function(){var a=this.impl.polymerShadowRenderer_;return a?(a.invalidate(),!0):!1},A.prototype.getDistributedNodes=function(){return k(),g(this)},B.prototype.nodeIsInserted_=A.prototype.nodeIsInserted_=function(){this.invalidateShadowRenderer();var a,b=n(this);b&&(a=o(b)),this.impl.polymerShadowRenderer_=a,a&&a.invalidate()},a.eventParentsTable=J,a.getRendererForHost=m,a.getShadowTrees=w,a.insertionParentTable=K,a.renderAllPending=k,a.visual={insertBefore:c,remove:d}}(window.ShadowDOMPolyfill),function(a){"use strict";function b(b){if(window[b]){d(!a.wrappers[b]);var i=function(a){c.call(this,a)};i.prototype=Object.create(c.prototype),e(i.prototype,{get form(){return h(g(this).form)}}),f(window[b],i,document.createElement(b.slice(4,-7))),a.wrappers[b]=i}}var c=a.wrappers.HTMLElement,d=a.assert,e=a.mixin,f=a.registerWrapper,g=a.unwrap,h=a.wrap,i=["HTMLButtonElement","HTMLFieldSetElement","HTMLInputElement","HTMLKeygenElement","HTMLLabelElement","HTMLLegendElement","HTMLObjectElement","HTMLOutputElement","HTMLTextAreaElement"];i.forEach(b)}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){this.impl=a}{var c=a.registerWrapper,d=a.unwrap,e=a.unwrapIfNeeded,f=a.wrap;window.Selection}b.prototype={get anchorNode(){return f(this.impl.anchorNode)},get focusNode(){return f(this.impl.focusNode)},addRange:function(a){this.impl.addRange(d(a))},collapse:function(a,b){this.impl.collapse(e(a),b)},containsNode:function(a,b){return this.impl.containsNode(e(a),b)},extend:function(a,b){this.impl.extend(e(a),b)},getRangeAt:function(a){return f(this.impl.getRangeAt(a))},removeRange:function(a){this.impl.removeRange(d(a))},selectAllChildren:function(a){this.impl.selectAllChildren(e(a))},toString:function(){return this.impl.toString()}},c(window.Selection,b,window.getSelection()),a.wrappers.Selection=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){k.call(this,a),this.treeScope_=new p(this,null)}function c(a){var c=document[a];b.prototype[a]=function(){return A(c.apply(this.impl,arguments))}}function d(a,b){D.call(b.impl,z(a)),e(a,b)}function e(a,b){a.shadowRoot&&b.adoptNode(a.shadowRoot),a instanceof o&&f(a,b);for(var c=a.firstChild;c;c=c.nextSibling)e(c,b)}function f(a,b){var c=a.olderShadowRoot;c&&b.adoptNode(c)}function g(a){this.impl=a}function h(a,b){var c=document.implementation[b];a.prototype[b]=function(){return A(c.apply(this.impl,arguments))}}function i(a,b){var c=document.implementation[b];a.prototype[b]=function(){return c.apply(this.impl,arguments)}}var j=a.GetElementsByInterface,k=a.wrappers.Node,l=a.ParentNodeInterface,m=a.wrappers.Selection,n=a.SelectorsInterface,o=a.wrappers.ShadowRoot,p=a.TreeScope,q=a.cloneNode,r=a.defineWrapGetter,s=a.elementFromPoint,t=a.forwardMethodsToWrapper,u=a.matchesNames,v=a.mixin,w=a.registerWrapper,x=a.renderAllPending,y=a.rewrap,z=a.unwrap,A=a.wrap,B=a.wrapEventTargetMethods,C=(a.wrapNodeList,new WeakMap);b.prototype=Object.create(k.prototype),r(b,"documentElement"),r(b,"body"),r(b,"head"),["createComment","createDocumentFragment","createElement","createElementNS","createEvent","createEventNS","createRange","createTextNode","getElementById"].forEach(c);var D=document.adoptNode,E=document.getSelection;if(v(b.prototype,{adoptNode:function(a){return a.parentNode&&a.parentNode.removeChild(a),d(a,this),a},elementFromPoint:function(a,b){return s(this,this,a,b)},importNode:function(a,b){return q(a,b,this.impl)},getSelection:function(){return x(),new m(E.call(z(this)))}}),document.registerElement){var F=document.registerElement;b.prototype.registerElement=function(b,c){function d(a){return a?void(this.impl=a):c.extends?document.createElement(c.extends,b):document.createElement(b)}var e=c.prototype;if(a.nativePrototypeTable.get(e))throw new Error("NotSupportedError");for(var f,g=Object.getPrototypeOf(e),h=[];g&&!(f=a.nativePrototypeTable.get(g));)h.push(g),g=Object.getPrototypeOf(g);if(!f)throw new Error("NotSupportedError");for(var i=Object.create(f),j=h.length-1;j>=0;j--)i=Object.create(i);["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"].forEach(function(a){var b=e[a];b&&(i[a]=function(){A(this)instanceof d||y(this),b.apply(A(this),arguments)})});var k={prototype:i};c.extends&&(k.extends=c.extends),d.prototype=e,d.prototype.constructor=d,a.constructorTable.set(i,d),a.nativePrototypeTable.set(e,i);F.call(z(this),b,k);return d},t([window.HTMLDocument||window.Document],["registerElement"])}t([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement,window.HTMLHtmlElement],["appendChild","compareDocumentPosition","contains","getElementsByClassName","getElementsByTagName","getElementsByTagNameNS","insertBefore","querySelector","querySelectorAll","removeChild","replaceChild"].concat(u)),t([window.HTMLDocument||window.Document],["adoptNode","importNode","contains","createComment","createDocumentFragment","createElement","createElementNS","createEvent","createEventNS","createRange","createTextNode","elementFromPoint","getElementById","getSelection"]),v(b.prototype,j),v(b.prototype,l),v(b.prototype,n),v(b.prototype,{get implementation(){var a=C.get(this);return a?a:(a=new g(z(this).implementation),C.set(this,a),a)}}),w(window.Document,b,document.implementation.createHTMLDocument("")),window.HTMLDocument&&w(window.HTMLDocument,b),B([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement]),h(g,"createDocumentType"),h(g,"createDocument"),h(g,"createHTMLDocument"),i(g,"hasFeature"),w(window.DOMImplementation,g),t([window.DOMImplementation],["createDocumentType","createDocument","createHTMLDocument","hasFeature"]),a.adoptNodeNoRemove=d,a.wrappers.DOMImplementation=g,a.wrappers.Document=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.EventTarget,d=a.wrappers.Selection,e=a.mixin,f=a.registerWrapper,g=a.renderAllPending,h=a.unwrap,i=a.unwrapIfNeeded,j=a.wrap,k=window.Window,l=window.getComputedStyle,m=window.getSelection;b.prototype=Object.create(c.prototype),k.prototype.getComputedStyle=function(a,b){return j(this||window).getComputedStyle(i(a),b)},k.prototype.getSelection=function(){return j(this||window).getSelection()},delete window.getComputedStyle,delete window.getSelection,["addEventListener","removeEventListener","dispatchEvent"].forEach(function(a){k.prototype[a]=function(){var b=j(this||window);return b[a].apply(b,arguments)},delete window[a]}),e(b.prototype,{getComputedStyle:function(a,b){return g(),l.call(h(this),i(a),b)},getSelection:function(){return g(),new d(m.call(h(this)))}}),f(k,b),a.wrappers.Window=b}(window.ShadowDOMPolyfill),function(a){"use strict";var b=a.unwrap,c=window.DataTransfer||window.Clipboard,d=c.prototype.setDragImage;c.prototype.setDragImage=function(a,c,e){d.call(this,b(a),c,e)}}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){var b=c[a],d=window[b];if(d){var e=document.createElement(a),f=e.constructor;window[b]=f}}var c=(a.isWrapperFor,{a:"HTMLAnchorElement",area:"HTMLAreaElement",audio:"HTMLAudioElement",base:"HTMLBaseElement",body:"HTMLBodyElement",br:"HTMLBRElement",button:"HTMLButtonElement",canvas:"HTMLCanvasElement",caption:"HTMLTableCaptionElement",col:"HTMLTableColElement",content:"HTMLContentElement",data:"HTMLDataElement",datalist:"HTMLDataListElement",del:"HTMLModElement",dir:"HTMLDirectoryElement",div:"HTMLDivElement",dl:"HTMLDListElement",embed:"HTMLEmbedElement",fieldset:"HTMLFieldSetElement",font:"HTMLFontElement",form:"HTMLFormElement",frame:"HTMLFrameElement",frameset:"HTMLFrameSetElement",h1:"HTMLHeadingElement",head:"HTMLHeadElement",hr:"HTMLHRElement",html:"HTMLHtmlElement",iframe:"HTMLIFrameElement",img:"HTMLImageElement",input:"HTMLInputElement",keygen:"HTMLKeygenElement",label:"HTMLLabelElement",legend:"HTMLLegendElement",li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",marquee:"HTMLMarqueeElement",menu:"HTMLMenuElement",menuitem:"HTMLMenuItemElement",meta:"HTMLMetaElement",meter:"HTMLMeterElement",object:"HTMLObjectElement",ol:"HTMLOListElement",optgroup:"HTMLOptGroupElement",option:"HTMLOptionElement",output:"HTMLOutputElement",p:"HTMLParagraphElement",param:"HTMLParamElement",pre:"HTMLPreElement",progress:"HTMLProgressElement",q:"HTMLQuoteElement",script:"HTMLScriptElement",select:"HTMLSelectElement",shadow:"HTMLShadowElement",source:"HTMLSourceElement",span:"HTMLSpanElement",style:"HTMLStyleElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",template:"HTMLTemplateElement",textarea:"HTMLTextAreaElement",thead:"HTMLTableSectionElement",time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",ul:"HTMLUListElement",video:"HTMLVideoElement"});Object.keys(c).forEach(b),Object.getOwnPropertyNames(a.wrappers).forEach(function(b){window[b]=a.wrappers[b]})}(window.ShadowDOMPolyfill),function(){window.wrap=ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=ShadowDOMPolyfill.unwrapIfNeeded,Object.defineProperty(Element.prototype,"webkitShadowRoot",Object.getOwnPropertyDescriptor(Element.prototype,"shadowRoot"));var a=Element.prototype.createShadowRoot;Element.prototype.createShadowRoot=function(){var b=a.call(this);return CustomElements.watchShadow(this),b},Element.prototype.webkitCreateShadowRoot=Element.prototype.createShadowRoot}(),function(a){function b(a,b){var c="";return Array.prototype.forEach.call(a,function(a){c+=a.textContent+"\n\n"}),b||(c=c.replace(l,"")),c}function c(a){var b=document.createElement("style");return b.textContent=a,b}function d(a){var b=c(a);document.head.appendChild(b);var d=[];if(b.sheet)try{d=b.sheet.cssRules}catch(e){}else console.warn("sheet not found",b);return b.parentNode.removeChild(b),d}function e(){v.initialized=!0,document.body.appendChild(v);var a=v.contentDocument,b=a.createElement("base");b.href=document.baseURI,a.head.appendChild(b)}function f(a){v.initialized||e(),document.body.appendChild(v),a(v.contentDocument),document.body.removeChild(v)}function g(a,b){if(b){var e;if(a.match("@import")&&x){var g=c(a);f(function(a){a.head.appendChild(g.impl),e=g.sheet.cssRules,b(e)})}else e=d(a),b(e)}}function h(a){a&&j().appendChild(document.createTextNode(a))}function i(a,b){var d=c(a);d.setAttribute(b,""),d.setAttribute(z,""),document.head.appendChild(d)}function j(){return w||(w=document.createElement("style"),w.setAttribute(z,""),w[z]=!0),w}var k={strictStyling:!1,registry:{},shimStyling:function(a,c,d){var e=this.prepareRoot(a,c,d),f=this.isTypeExtension(d),g=this.makeScopeSelector(c,f),h=b(e,!0);h=this.scopeCssText(h,g),a&&(a.shimmedStyle=h),this.addCssToDocument(h,c)},shimStyle:function(a,b){return this.shimCssText(a.textContent,b)},shimCssText:function(a,b){return a=this.insertDirectives(a),this.scopeCssText(a,b)},makeScopeSelector:function(a,b){return a?b?"[is="+a+"]":a:""},isTypeExtension:function(a){return a&&a.indexOf("-")<0},prepareRoot:function(a,b,c){var d=this.registerRoot(a,b,c);return this.replaceTextInStyles(d.rootStyles,this.insertDirectives),this.removeStyles(a,d.rootStyles),this.strictStyling&&this.applyScopeToContent(a,b),d.scopeStyles},removeStyles:function(a,b){for(var c,d=0,e=b.length;e>d&&(c=b[d]);d++)c.parentNode.removeChild(c)},registerRoot:function(a,b,c){var d=this.registry[b]={root:a,name:b,extendsName:c},e=this.findStyles(a);d.rootStyles=e,d.scopeStyles=d.rootStyles;var f=this.registry[d.extendsName];return!f||a&&!a.querySelector("shadow")||(d.scopeStyles=f.scopeStyles.concat(d.scopeStyles)),d},findStyles:function(a){if(!a)return[];var b=a.querySelectorAll("style");return Array.prototype.filter.call(b,function(a){return!a.hasAttribute(A)})},applyScopeToContent:function(a,b){a&&(Array.prototype.forEach.call(a.querySelectorAll("*"),function(a){a.setAttribute(b,"")}),Array.prototype.forEach.call(a.querySelectorAll("template"),function(a){this.applyScopeToContent(a.content,b)},this))},insertDirectives:function(a){return a=this.insertPolyfillDirectivesInCssText(a),this.insertPolyfillRulesInCssText(a)},insertPolyfillDirectivesInCssText:function(a){return a=a.replace(m,function(a,b){return b.slice(0,-2)+"{"}),a.replace(n,function(a,b){return b+" {"})},insertPolyfillRulesInCssText:function(a){return a=a.replace(o,function(a,b){return b.slice(0,-1)}),a.replace(p,function(a,b,c,d){var e=a.replace(b,"").replace(c,"");return d+e})},scopeCssText:function(a,b){var c=this.extractUnscopedRulesFromCssText(a);if(a=this.insertPolyfillHostInCssText(a),a=this.convertColonHost(a),a=this.convertColonAncestor(a),a=this.convertCombinators(a),b){var a,d=this;g(a,function(c){a=d.scopeRules(c,b)})}return a=a+"\n"+c,a.trim()},extractUnscopedRulesFromCssText:function(a){for(var b,c="";b=q.exec(a);)c+=b[1].slice(0,-1)+"\n\n";for(;b=r.exec(a);)c+=b[0].replace(b[2],"").replace(b[1],b[3])+"\n\n";return c},convertColonHost:function(a){return this.convertColonRule(a,cssColonHostRe,this.colonHostPartReplacer)},convertColonAncestor:function(a){return this.convertColonRule(a,cssColonAncestorRe,this.colonAncestorPartReplacer)},convertColonRule:function(a,b,c){return a.replace(b,function(a,b,d,e){if(b=polyfillHostNoCombinator,d){for(var f,g=d.split(","),h=[],i=0,j=g.length;j>i&&(f=g[i]);i++)f=f.trim(),h.push(c(b,f,e));return h.join(",")}return b+e})},colonAncestorPartReplacer:function(a,b,c){return b.match(s)?this.colonHostPartReplacer(a,b,c):a+b+c+", "+b+" "+a+c},colonHostPartReplacer:function(a,b,c){return a+b.replace(s,"")+c},convertCombinators:function(a){for(var b=0;b<combinatorsRe.length;b++)a=a.replace(combinatorsRe[b]," ");return a},scopeRules:function(a,b){var c="";return a&&Array.prototype.forEach.call(a,function(a){a.selectorText&&a.style&&a.style.cssText?(c+=this.scopeSelector(a.selectorText,b,this.strictStyling)+" {\n  ",c+=this.propertiesFromRule(a)+"\n}\n\n"):a.type===CSSRule.MEDIA_RULE?(c+="@media "+a.media.mediaText+" {\n",c+=this.scopeRules(a.cssRules,b),c+="\n}\n\n"):a.cssText&&(c+=a.cssText+"\n\n")},this),c},scopeSelector:function(a,b,c){var d=[],e=a.split(",");return e.forEach(function(a){a=a.trim(),this.selectorNeedsScoping(a,b)&&(a=c&&!a.match(polyfillHostNoCombinator)?this.applyStrictSelectorScope(a,b):this.applySimpleSelectorScope(a,b)),d.push(a)},this),d.join(", ")},selectorNeedsScoping:function(a,b){var c=this.makeScopeMatcher(b);return!a.match(c)},makeScopeMatcher:function(a){return a=a.replace(/\[/g,"\\[").replace(/\[/g,"\\]"),new RegExp("^("+a+")"+selectorReSuffix,"m")},applySimpleSelectorScope:function(a,b){return a.match(polyfillHostRe)?(a=a.replace(polyfillHostNoCombinator,b),a.replace(polyfillHostRe,b+" ")):b+" "+a},applyStrictSelectorScope:function(a,b){b=b.replace(/\[is=([^\]]*)\]/g,"$1");var c=[" ",">","+","~"],d=a,e="["+b+"]";return c.forEach(function(a){var b=d.split(a);d=b.map(function(a){var b=a.trim().replace(polyfillHostRe,"");return b&&c.indexOf(b)<0&&b.indexOf(e)<0&&(a=b.replace(/([^:]*)(:*)(.*)/,"$1"+e+"$2$3")),a}).join(a)}),d},insertPolyfillHostInCssText:function(a){return a.replace(hostRe,s).replace(colonHostRe,s).replace(colonAncestorRe,t)},propertiesFromRule:function(a){return a.style.content&&!a.style.content.match(/['"]+/)?a.style.cssText.replace(/content:[^;]*;/g,"content: '"+a.style.content+"';"):a.style.cssText},replaceTextInStyles:function(a,b){a&&b&&(a instanceof Array||(a=[a]),Array.prototype.forEach.call(a,function(a){a.textContent=b.call(this,a.textContent)},this))},addCssToDocument:function(a,b){a.match("@import")?i(a,b):h(a)}},l=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,m=/\/\*\s*@polyfill ([^*]*\*+([^/*][^*]*\*+)*\/)([^{]*?){/gim,n=/polyfill-next-selector[^}]*content\:[\s]*'([^']*)'[^}]*}([^{]*?){/gim,o=/\/\*\s@polyfill-rule([^*]*\*+([^/*][^*]*\*+)*)\//gim,p=/(polyfill-rule)[^}]*(content\:[\s]*'([^']*)'[^;]*;)[^}]*}/gim,q=/\/\*\s@polyfill-unscoped-rule([^*]*\*+([^/*][^*]*\*+)*)\//gim,r=/(polyfill-unscoped-rule)[^}]*(content\:[\s]*'([^']*)'[^;]*;)[^}]*}/gim,s="-shadowcsshost",t="-shadowcssancestor",u=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)";cssColonHostRe=new RegExp("("+s+u,"gim"),cssColonAncestorRe=new RegExp("("+t+u,"gim"),selectorReSuffix="([>\\s~+[.,{:][\\s\\S]*)?$",hostRe=/@host/gim,colonHostRe=/\:host/gim,colonAncestorRe=/\:ancestor/gim,polyfillHostNoCombinator=s+"-no-combinator",polyfillHostRe=new RegExp(s,"gim"),polyfillAncestorRe=new RegExp(t,"gim"),combinatorsRe=[/\^\^/g,/\^/g,/\/shadow\//g,/\/shadow-deep\//g];var v=document.createElement("iframe");v.style.display="none";var w,x=navigator.userAgent.match("Chrome"),y="shim-shadowdom",z="shim-shadowdom-css",A="no-shim";if(window.ShadowDOMPolyfill){h("style { display: none !important; }\n");var B=wrap(document),C=B.querySelector("head");C.insertBefore(j(),C.childNodes[0]),document.addEventListener("DOMContentLoaded",function(){var b=a.urlResolver;if(window.HTMLImports&&!HTMLImports.useNative){var c="link[rel=stylesheet]["+y+"]",d="style["+y+"]";HTMLImports.importer.documentPreloadSelectors+=","+c,HTMLImports.importer.importsPreloadSelectors+=","+c,HTMLImports.parser.documentSelectors=[HTMLImports.parser.documentSelectors,c,d].join(",");var e=HTMLImports.parser.parseGeneric;HTMLImports.parser.parseGeneric=function(a){if(!a[z]){var c=a.__importElement||a;if(!c.hasAttribute(y))return void e.call(this,a);a.__resource?(c=a.ownerDocument.createElement("style"),c.textContent=b.resolveCssText(a.__resource,a.href)):b.resolveStyle(c),c.textContent=k.shimStyle(c),c.removeAttribute(y,""),c.setAttribute(z,""),c[z]=!0,c.parentNode!==C&&(a.parentNode===C?C.replaceChild(c,a):C.appendChild(c)),c.__importParsed=!0,this.markParsingComplete(a)}};var f=HTMLImports.parser.hasResource;HTMLImports.parser.hasResource=function(a){return"link"===a.localName&&"stylesheet"===a.rel&&a.hasAttribute(y)?a.__resource:f.call(this,a)}}})}a.ShadowCSS=k}(window.Platform)):!function(){window.templateContent=window.templateContent||function(a){return a.content},window.wrap=window.unwrap=function(a){return a},addEventListener("DOMContentLoaded",function(){if(CustomElements.useNative===!1){var a=Element.prototype.createShadowRoot;Element.prototype.createShadowRoot=function(){var b=a.call(this);return CustomElements.watchShadow(this),b}}}),window.templateContent=function(a){if(window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(a),!a.content&&!a._content){for(var b=document.createDocumentFragment();a.firstChild;)b.appendChild(a.firstChild);a._content=b}return a.content||a._content}}(),function(a){"use strict";function b(a){return void 0!==m[a]}function c(){h.call(this),this._isInvalid=!0}function d(a){return""==a&&c.call(this),a.toLowerCase()}function e(a){var b=a.charCodeAt(0);return b>32&&127>b&&-1==[34,35,60,62,63,96].indexOf(b)?a:encodeURIComponent(a)}function f(a){var b=a.charCodeAt(0);return b>32&&127>b&&-1==[34,35,60,62,96].indexOf(b)?a:encodeURIComponent(a)}function g(a,g,h){function i(a){t.push(a)}var j=g||"scheme start",k=0,l="",r=!1,s=!1,t=[];a:for(;(a[k-1]!=o||0==k)&&!this._isInvalid;){var u=a[k];switch(j){case"scheme start":if(!u||!p.test(u)){if(g){i("Invalid scheme.");break a}l="",j="no scheme";continue}l+=u.toLowerCase(),j="scheme";break;case"scheme":if(u&&q.test(u))l+=u.toLowerCase();else{if(":"!=u){if(g){if(o==u)break a;i("Code point not allowed in scheme: "+u);break a}l="",k=0,j="no scheme";continue}if(this._scheme=l,l="",g)break a;b(this._scheme)&&(this._isRelative=!0),j="file"==this._scheme?"relative":this._isRelative&&h&&h._scheme==this._scheme?"relative or authority":this._isRelative?"authority first slash":"scheme data"}break;case"scheme data":"?"==u?(query="?",j="query"):"#"==u?(this._fragment="#",j="fragment"):o!=u&&" "!=u&&"\n"!=u&&"\r"!=u&&(this._schemeData+=e(u));break;case"no scheme":if(h&&b(h._scheme)){j="relative";continue}i("Missing scheme."),c.call(this);break;case"relative or authority":if("/"!=u||"/"!=a[k+1]){i("Expected /, got: "+u),j="relative";continue}j="authority ignore slashes";break;case"relative":if(this._isRelative=!0,"file"!=this._scheme&&(this._scheme=h._scheme),o==u){this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query=h._query;break a}if("/"==u||"\\"==u)"\\"==u&&i("\\ is an invalid code point."),j="relative slash";else if("?"==u)this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query="?",j="query";else{if("#"!=u){var v=a[k+1],w=a[k+2];("file"!=this._scheme||!p.test(u)||":"!=v&&"|"!=v||o!=w&&"/"!=w&&"\\"!=w&&"?"!=w&&"#"!=w)&&(this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._path.pop()),j="relative path";continue}this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query=h._query,this._fragment="#",j="fragment"}break;case"relative slash":if("/"!=u&&"\\"!=u){"file"!=this._scheme&&(this._host=h._host,this._port=h._port),j="relative path";continue}"\\"==u&&i("\\ is an invalid code point."),j="file"==this._scheme?"file host":"authority ignore slashes";break;case"authority first slash":if("/"!=u){i("Expected '/', got: "+u),j="authority ignore slashes";continue}j="authority second slash";break;case"authority second slash":if(j="authority ignore slashes","/"!=u){i("Expected '/', got: "+u);continue}break;case"authority ignore slashes":if("/"!=u&&"\\"!=u){j="authority";continue}i("Expected authority, got: "+u);break;case"authority":if("@"==u){r&&(i("@ already seen."),l+="%40"),r=!0;for(var x=0;x<l.length;x++){var y=l[x];if(" "!=y&&"\n"!=y&&"\r"!=y)if(":"!=y||null!==this._password){var z=e(y);null!==this._password?this._password+=z:this._username+=z}else this._password="";else i("Invalid whitespace in authority.")}l=""}else{if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u){k-=l.length,l="",j="host";continue}l+=u}break;case"file host":if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u){2!=l.length||!p.test(l[0])||":"!=l[1]&&"|"!=l[1]?0==l.length?j="relative path start":(this._host=d.call(this,l),l="",j="relative path start"):j="relative path";continue}"  "==u||"\n"==u||"\r"==u?i("Invalid whitespace in file host."):l+=u;break;case"host":case"hostname":if(":"!=u||s){if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u){if(this._host=d.call(this,l),l="",j="relative path start",g)break a;continue}"  "!=u&&"\n"!=u&&"\r"!=u?("["==u?s=!0:"]"==u&&(s=!1),l+=u):i("Invalid code point in host/hostname: "+u)}else if(this._host=d.call(this,l),l="",j="port","hostname"==g)break a;break;case"port":if(/[0-9]/.test(u))l+=u;else{if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u||g){if(""!=l){var A=parseInt(l,10);A!=m[this._scheme]&&(this._port=A+""),l=""}if(g)break a;j="relative path start";continue}"  "==u||"\n"==u||"\r"==u?i("Invalid code point in port: "+u):c.call(this)}break;case"relative path start":if("\\"==u&&i("'\\' not allowed in path."),j="relative path","/"!=u&&"\\"!=u)continue;break;case"relative path":if(o!=u&&"/"!=u&&"\\"!=u&&(g||"?"!=u&&"#"!=u))" "!=u&&"\n"!=u&&"\r"!=u&&(l+=e(u));else{"\\"==u&&i("\\ not allowed in relative path.");var B;(B=n[l.toLowerCase()])&&(l=B),".."==l?(this._path.pop(),"/"!=u&&"\\"!=u&&this._path.push("")):"."==l&&"/"!=u&&"\\"!=u?this._path.push(""):"."!=l&&("file"==this._scheme&&0==this._path.length&&2==l.length&&p.test(l[0])&&"|"==l[1]&&(l=l[0]+":"),this._path.push(l)),l="","?"==u?(this._query="?",j="query"):"#"==u&&(this._fragment="#",j="fragment")}break;case"query":g||"#"!=u?o!=u&&" "!=u&&"\n"!=u&&"\r"!=u&&(this._query+=f(u)):(this._fragment="#",j="fragment");break;case"fragment":o!=u&&"  "!=u&&"\n"!=u&&"\r"!=u&&(this._fragment+=u)}k++}}function h(){this._scheme="",this._schemeData="",this._username="",this._password=null,this._host="",this._port="",this._path=[],this._query="",this._fragment="",this._isInvalid=!1,this._isRelative=!1}function i(a,b){void 0===b||b instanceof i||(b=new i(String(b))),this._url=a,h.call(this);var c=a.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g,"");g.call(this,c,null,b)}var j=!1;if(!a.forceJURL)try{var k=new URL("b","http://a");j="http://a/b"===k.href}catch(l){}if(!j){var m=Object.create(null);m.ftp=21,m.file=0,m.gopher=70,m.http=80,m.https=443,m.ws=80,m.wss=443;var n=Object.create(null);n["%2e"]=".",n[".%2e"]="..",n["%2e."]="..",n["%2e%2e"]="..";var o=void 0,p=/[a-zA-Z]/,q=/[a-zA-Z0-9\+\-\.]/;i.prototype={get href(){if(this._isInvalid)return this._url;var a="";return(""!=this._username||null!=this._password)&&(a=this._username+(null!=this._password?":"+this._password:"")+"@"),this.protocol+(this._isRelative?"//"+a+this.host:"")+this.pathname+this._query+this._fragment},set href(a){h.call(this),g.call(this,a)},get protocol(){return this._scheme+":"},set protocol(a){this._isInvalid||g.call(this,a+":","scheme start")},get host(){return this._isInvalid?"":this._port?this._host+":"+this._port:this._host},set host(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"host")},get hostname(){return this._host},set hostname(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"hostname")},get port(){return this._port},set port(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"port")},get pathname(){return this._isInvalid?"":this._isRelative?"/"+this._path.join("/"):this._schemeData},set pathname(a){!this._isInvalid&&this._isRelative&&(this._path=[],g.call(this,a,"relative path start"))},get search(){return this._isInvalid||!this._query||"?"==this._query?"":this._query},set search(a){!this._isInvalid&&this._isRelative&&(this._query="?","?"==a[0]&&(a=a.slice(1)),g.call(this,a,"query"))},get hash(){return this._isInvalid||!this._fragment||"#"==this._fragment?"":this._fragment
-},set hash(a){this._isInvalid||(this._fragment="#","#"==a[0]&&(a=a.slice(1)),g.call(this,a,"fragment"))}},a.URL=i}}(window),function(a){function b(a){for(var b=a||{},d=1;d<arguments.length;d++){var e=arguments[d];try{for(var f in e)c(f,e,b)}catch(g){}}return b}function c(a,b,c){var e=d(b,a);Object.defineProperty(c,a,e)}function d(a,b){if(a){var c=Object.getOwnPropertyDescriptor(a,b);return c||d(Object.getPrototypeOf(a),b)}}Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=Array.prototype.slice.call(arguments,1);return function(){var d=c.slice();return d.push.apply(d,arguments),b.apply(a,d)}}),a.mixin=b}(window.Platform),function(a){"use strict";function b(a,b,c){var d="string"==typeof a?document.createElement(a):a.cloneNode(!0);if(d.innerHTML=b,c)for(var e in c)d.setAttribute(e,c[e]);return d}var c=DOMTokenList.prototype.add,d=DOMTokenList.prototype.remove;DOMTokenList.prototype.add=function(){for(var a=0;a<arguments.length;a++)c.call(this,arguments[a])},DOMTokenList.prototype.remove=function(){for(var a=0;a<arguments.length;a++)d.call(this,arguments[a])},DOMTokenList.prototype.toggle=function(a,b){1==arguments.length&&(b=!this.contains(a)),b?this.add(a):this.remove(a)},DOMTokenList.prototype.switch=function(a,b){a&&this.remove(a),b&&this.add(b)};var e=function(){return Array.prototype.slice.call(this)},f=window.NamedNodeMap||window.MozNamedAttrMap||{};if(NodeList.prototype.array=e,f.prototype.array=e,HTMLCollection.prototype.array=e,!window.performance){var g=Date.now();window.performance={now:function(){return Date.now()-g}}}window.requestAnimationFrame||(window.requestAnimationFrame=function(){var a=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame;return a?function(b){return a(function(){b(performance.now())})}:function(a){return window.setTimeout(a,1e3/60)}}()),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(){return window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(a){clearTimeout(a)}}());var h=[],i=function(){h.push(arguments)};window.Polymer=i,a.deliverDeclarations=function(){return a.deliverDeclarations=function(){throw"Possible attempt to load Polymer twice"},h},window.addEventListener("DOMContentLoaded",function(){window.Polymer===i&&(window.Polymer=function(){console.error('You tried to use polymer without loading it first. To load polymer, <link rel="import" href="components/polymer/polymer.html">')})}),a.createDOM=b}(window.Platform),window.templateContent=window.templateContent||function(a){return a.content},function(a){a=a||(window.Inspector={});var b;window.sinspect=function(a,d){b||(b=window.open("","ShadowDOM Inspector",null,!0),b.document.write(c),b.api={shadowize:shadowize}),f(a||wrap(document.body),d)};var c=["<!DOCTYPE html>","<html>","  <head>","    <title>ShadowDOM Inspector</title>","    <style>","      body {","      }","      pre {",'        font: 9pt "Courier New", monospace;',"        line-height: 1.5em;","      }","      tag {","        color: purple;","      }","      ul {","         margin: 0;","         padding: 0;","         list-style: none;","      }","      li {","         display: inline-block;","         background-color: #f1f1f1;","         padding: 4px 6px;","         border-radius: 4px;","         margin-right: 4px;","      }","    </style>","  </head>","  <body>",'    <ul id="crumbs">',"    </ul>",'    <div id="tree"></div>',"  </body>","</html>"].join("\n"),d=[],e=function(){var a=b.document,c=a.querySelector("#crumbs");c.textContent="";for(var e,g=0;e=d[g];g++){var h=a.createElement("a");h.href="#",h.textContent=e.localName,h.idx=g,h.onclick=function(a){for(var b;d.length>this.idx;)b=d.pop();f(b.shadow||b,b),a.preventDefault()},c.appendChild(a.createElement("li")).appendChild(h)}},f=function(a,c){var f=b.document;k=[];var g=c||a;d.push(g),e(),f.body.querySelector("#tree").innerHTML="<pre>"+j(a,a.childNodes)+"</pre>"},g=Array.prototype.forEach.call.bind(Array.prototype.forEach),h={STYLE:1,SCRIPT:1,"#comment":1,TEMPLATE:1},i=function(a){return h[a.nodeName]},j=function(a,b,c){if(i(a))return"";var d=c||"";if(a.localName||11==a.nodeType){var e=a.localName||"shadow-root",f=d+l(a);"content"==e&&(b=a.getDistributedNodes()),f+="<br/>";var h=d+"&nbsp;&nbsp;";g(b,function(a){f+=j(a,a.childNodes,h)}),f+=d,{br:1}[e]||(f+="<tag>&lt;/"+e+"&gt;</tag>",f+="<br/>")}else{var k=a.textContent.trim();f=k?d+'"'+k+'"<br/>':""}return f},k=[],l=function(a){var b="<tag>&lt;",c=a.localName||"shadow-root";return a.webkitShadowRoot||a.shadowRoot?(b+=' <button idx="'+k.length+'" onclick="api.shadowize.call(this)">'+c+"</button>",k.push(a)):b+=c||"shadow-root",a.attributes&&g(a.attributes,function(a){b+=" "+a.name+(a.value?'="'+a.value+'"':"")}),b+="&gt;</tag>"};shadowize=function(){var a=Number(this.attributes.idx.value),b=k[a];b?f(b.webkitShadowRoot||b.shadowRoot,b):(console.log("bad shadowize node"),console.dir(this))},a.output=j}(window.Inspector),function(){var a=document.createElement("style");a.textContent="body {transition: opacity ease-in 0.2s; } \nbody[unresolved] {opacity: 0; display: block; overflow: hidden; } \n";var b=document.querySelector("head");b.insertBefore(a,b.firstChild)}(Platform),function(a){function b(a,b){return b=b||[],b.map||(b=[b]),a.apply(this,b.map(d))}function c(a,c,d){var e;switch(arguments.length){case 0:return;case 1:e=null;break;case 2:e=c.apply(this);break;default:e=b(d,c)}f[a]=e}function d(a){return f[a]}function e(a,c){HTMLImports.whenImportsReady(function(){b(c,a)})}var f={};a.marshal=d,a.module=c,a.using=e}(window),function(a){function b(a){f.textContent=d++,e.push(a)}function c(){for(;e.length;)e.shift()()}var d=0,e=[],f=document.createTextNode("");new(window.MutationObserver||JsMutationObserver)(c).observe(f,{characterData:!0}),a.endOfMicrotask=b}(Platform),function(a){function b(a,b,d){return a.replace(d,function(a,d,e,f){var g=e.replace(/["']/g,"");return g=c(b,g),d+"'"+g+"'"+f})}function c(a,b){var c=new URL(b,a);return d(c.href)}function d(a){var b=document.baseURI,c=new URL(a,b);return c.host===b.host&&c.port===b.port&&c.protocol===b.protocol?e(b.pathname,c.pathname):a}function e(a,b){for(var c=a.split("/"),d=b.split("/");c.length&&c[0]===d[0];)c.shift(),d.shift();for(var e=0,f=c.length-1;f>e;e++)d.unshift("..");return d.join("/")}var f={resolveDom:function(a,b){b=b||a.ownerDocument.baseURI,this.resolveAttributes(a,b),this.resolveStyles(a,b);var c=a.querySelectorAll("template");if(c)for(var d,e=0,f=c.length;f>e&&(d=c[e]);e++)d.content&&this.resolveDom(d.content,b)},resolveTemplate:function(a){this.resolveDom(a.content,a.ownerDocument.baseURI)},resolveStyles:function(a,b){var c=a.querySelectorAll("style");if(c)for(var d,e=0,f=c.length;f>e&&(d=c[e]);e++)this.resolveStyle(d,b)},resolveStyle:function(a,b){b=b||a.ownerDocument.baseURI,a.textContent=this.resolveCssText(a.textContent,b)},resolveCssText:function(a,c){return a=b(a,c,g),b(a,c,h)},resolveAttributes:function(a,b){a.hasAttributes&&a.hasAttributes()&&this.resolveElementAttributes(a,b);var c=a&&a.querySelectorAll(j);if(c)for(var d,e=0,f=c.length;f>e&&(d=c[e]);e++)this.resolveElementAttributes(d,b)},resolveElementAttributes:function(a,b){b=b||a.ownerDocument.baseURI,i.forEach(function(d){var e=a.attributes[d];if(e&&e.value&&e.value.search(k)<0){var f=c(b,e.value);e.value=f}})}},g=/(url\()([^)]*)(\))/g,h=/(@import[\s]+(?!url\())([^;]*)(;)/g,i=["href","src","action"],j="["+i.join("],[")+"]",k="{{.*}}";a.urlResolver=f}(Platform),function(a){function b(a){u.push(a),t||(t=!0,q(d))}function c(a){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(a)||a}function d(){t=!1;var a=u;u=[],a.sort(function(a,b){return a.uid_-b.uid_});var b=!1;a.forEach(function(a){var c=a.takeRecords();e(a),c.length&&(a.callback_(c,a),b=!0)}),b&&d()}function e(a){a.nodes_.forEach(function(b){var c=p.get(b);c&&c.forEach(function(b){b.observer===a&&b.removeTransientObservers()})})}function f(a,b){for(var c=a;c;c=c.parentNode){var d=p.get(c);if(d)for(var e=0;e<d.length;e++){var f=d[e],g=f.options;if(c===a||g.subtree){var h=b(g);h&&f.enqueue(h)}}}}function g(a){this.callback_=a,this.nodes_=[],this.records_=[],this.uid_=++v}function h(a,b){this.type=a,this.target=b,this.addedNodes=[],this.removedNodes=[],this.previousSibling=null,this.nextSibling=null,this.attributeName=null,this.attributeNamespace=null,this.oldValue=null}function i(a){var b=new h(a.type,a.target);return b.addedNodes=a.addedNodes.slice(),b.removedNodes=a.removedNodes.slice(),b.previousSibling=a.previousSibling,b.nextSibling=a.nextSibling,b.attributeName=a.attributeName,b.attributeNamespace=a.attributeNamespace,b.oldValue=a.oldValue,b}function j(a,b){return w=new h(a,b)}function k(a){return x?x:(x=i(w),x.oldValue=a,x)}function l(){w=x=void 0}function m(a){return a===x||a===w}function n(a,b){return a===b?a:x&&m(a)?x:null}function o(a,b,c){this.observer=a,this.target=b,this.options=c,this.transientObservedNodes=[]}var p=new WeakMap,q=window.msSetImmediate;if(!q){var r=[],s=String(Math.random());window.addEventListener("message",function(a){if(a.data===s){var b=r;r=[],b.forEach(function(a){a()})}}),q=function(a){r.push(a),window.postMessage(s,"*")}}var t=!1,u=[],v=0;g.prototype={observe:function(a,b){if(a=c(a),!b.childList&&!b.attributes&&!b.characterData||b.attributeOldValue&&!b.attributes||b.attributeFilter&&b.attributeFilter.length&&!b.attributes||b.characterDataOldValue&&!b.characterData)throw new SyntaxError;var d=p.get(a);d||p.set(a,d=[]);for(var e,f=0;f<d.length;f++)if(d[f].observer===this){e=d[f],e.removeListeners(),e.options=b;break}e||(e=new o(this,a,b),d.push(e),this.nodes_.push(a)),e.addListeners()},disconnect:function(){this.nodes_.forEach(function(a){for(var b=p.get(a),c=0;c<b.length;c++){var d=b[c];if(d.observer===this){d.removeListeners(),b.splice(c,1);break}}},this),this.records_=[]},takeRecords:function(){var a=this.records_;return this.records_=[],a}};var w,x;o.prototype={enqueue:function(a){var c=this.observer.records_,d=c.length;if(c.length>0){var e=c[d-1],f=n(e,a);if(f)return void(c[d-1]=f)}else b(this.observer);c[d]=a},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(a){var b=this.options;b.attributes&&a.addEventListener("DOMAttrModified",this,!0),b.characterData&&a.addEventListener("DOMCharacterDataModified",this,!0),b.childList&&a.addEventListener("DOMNodeInserted",this,!0),(b.childList||b.subtree)&&a.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(a){var b=this.options;b.attributes&&a.removeEventListener("DOMAttrModified",this,!0),b.characterData&&a.removeEventListener("DOMCharacterDataModified",this,!0),b.childList&&a.removeEventListener("DOMNodeInserted",this,!0),(b.childList||b.subtree)&&a.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(a){if(a!==this.target){this.addListeners_(a),this.transientObservedNodes.push(a);var b=p.get(a);b||p.set(a,b=[]),b.push(this)}},removeTransientObservers:function(){var a=this.transientObservedNodes;this.transientObservedNodes=[],a.forEach(function(a){this.removeListeners_(a);for(var b=p.get(a),c=0;c<b.length;c++)if(b[c]===this){b.splice(c,1);break}},this)},handleEvent:function(a){switch(a.stopImmediatePropagation(),a.type){case"DOMAttrModified":var b=a.attrName,c=a.relatedNode.namespaceURI,d=a.target,e=new j("attributes",d);e.attributeName=b,e.attributeNamespace=c;var g=a.attrChange===MutationEvent.ADDITION?null:a.prevValue;f(d,function(a){return!a.attributes||a.attributeFilter&&a.attributeFilter.length&&-1===a.attributeFilter.indexOf(b)&&-1===a.attributeFilter.indexOf(c)?void 0:a.attributeOldValue?k(g):e});break;case"DOMCharacterDataModified":var d=a.target,e=j("characterData",d),g=a.prevValue;f(d,function(a){return a.characterData?a.characterDataOldValue?k(g):e:void 0});break;case"DOMNodeRemoved":this.addTransientObserver(a.target);case"DOMNodeInserted":var h,i,d=a.relatedNode,m=a.target;"DOMNodeInserted"===a.type?(h=[m],i=[]):(h=[],i=[m]);var n=m.previousSibling,o=m.nextSibling,e=j("childList",d);e.addedNodes=h,e.removedNodes=i,e.previousSibling=n,e.nextSibling=o,f(d,function(a){return a.childList?e:void 0})}l()}},a.JsMutationObserver=g,a.MutationObserver||(a.MutationObserver=g)}(this),window.HTMLImports=window.HTMLImports||{flags:{}},function(a){var b=(a.path,a.xhr),c=a.flags,d=function(a,b){this.cache={},this.onload=a,this.oncomplete=b,this.inflight=0,this.pending={}};d.prototype={addNodes:function(a){this.inflight+=a.length;for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)this.require(b);this.checkDone()},addNode:function(a){this.inflight++,this.require(a),this.checkDone()},require:function(a){var b=a.src||a.href;a.__nodeUrl=b,this.dedupe(b,a)||this.fetch(b,a)},dedupe:function(a,b){if(this.pending[a])return this.pending[a].push(b),!0;return this.cache[a]?(this.onload(a,b,this.cache[a]),this.tail(),!0):(this.pending[a]=[b],!1)},fetch:function(a,d){if(c.load&&console.log("fetch",a,d),a.match(/^data:/)){var e=a.split(","),f=e[0],g=e[1];g=f.indexOf(";base64")>-1?atob(g):decodeURIComponent(g),setTimeout(function(){this.receive(a,d,null,g)}.bind(this),0)}else{var h=function(b,c){this.receive(a,d,b,c)}.bind(this);b.load(a,h)}},receive:function(a,b,c,d){this.cache[a]=d;for(var e,f=this.pending[a],g=0,h=f.length;h>g&&(e=f[g]);g++)this.onload(a,e,d),this.tail();this.pending[a]=null},tail:function(){--this.inflight,this.checkDone()},checkDone:function(){this.inflight||this.oncomplete()}},b=b||{async:!0,ok:function(a){return a.status>=200&&a.status<300||304===a.status||0===a.status},load:function(c,d,e){var f=new XMLHttpRequest;return(a.flags.debug||a.flags.bust)&&(c+="?"+Math.random()),f.open("GET",c,b.async),f.addEventListener("readystatechange",function(){4===f.readyState&&d.call(e,!b.ok(f)&&f,f.response||f.responseText,c)}),f.send(),f},loadDocument:function(a,b,c){this.load(a,b,c).responseType="document"}},a.xhr=b,a.Loader=d}(window.HTMLImports),function(a){function b(a){return"link"===a.localName&&a.rel===g}function c(a){var b,c=d(a);try{b=btoa(c)}catch(e){b=btoa(unescape(encodeURIComponent(c))),console.warn("Script contained non-latin characters that were forced to latin. Some characters may be wrong.",a)}return"data:text/javascript;base64,"+b}function d(a){return a.textContent+e(a)}function e(a){var b=a.__nodeUrl;if(!b){b=a.ownerDocument.baseURI;var c="["+Math.floor(1e3*(Math.random()+1))+"]",d=a.textContent.match(/Polymer\(['"]([^'"]*)/);c=d&&d[1]||c,b+="/"+c+".js"}return"\n//# sourceURL="+b+"\n"}function f(a){var b=a.ownerDocument.createElement("style");return b.textContent=a.textContent,n.resolveUrlsInStyle(b),b}var g="import",h=a.flags,i=/Trident/.test(navigator.userAgent),j=window.ShadowDOMPolyfill?window.ShadowDOMPolyfill.wrapIfNeeded(document):document,k={documentSelectors:"link[rel="+g+"]",importsSelectors:["link[rel="+g+"]","link[rel=stylesheet]","style","script:not([type])",'script[type="text/javascript"]'].join(","),map:{link:"parseLink",script:"parseScript",style:"parseStyle"},parseNext:function(){var a=this.nextToParse();a&&this.parse(a)},parse:function(a){if(this.isParsed(a))return void(h.parse&&console.log("[%s] is already parsed",a.localName));var b=this[this.map[a.localName]];b&&(this.markParsing(a),b.call(this,a))},markParsing:function(a){h.parse&&console.log("parsing",a),this.parsingElement=a},markParsingComplete:function(a){a.__importParsed=!0,a.__importElement&&(a.__importElement.__importParsed=!0),this.parsingElement=null,h.parse&&console.log("completed",a),this.parseNext()},parseImport:function(a){if(a.import.__importParsed=!0,HTMLImports.__importsParsingHook&&HTMLImports.__importsParsingHook(a),a.dispatchEvent(a.__resource?new CustomEvent("load",{bubbles:!1}):new CustomEvent("error",{bubbles:!1})),a.__pending)for(var b;a.__pending.length;)b=a.__pending.shift(),b&&b({target:a});this.markParsingComplete(a)},parseLink:function(a){b(a)?this.parseImport(a):(a.href=a.href,this.parseGeneric(a))},parseStyle:function(a){var b=a;a=f(a),a.__importElement=b,this.parseGeneric(a)},parseGeneric:function(a){this.trackElement(a),document.head.appendChild(a)},trackElement:function(a,b){var c=this,d=function(d){b&&b(d),c.markParsingComplete(a)};if(a.addEventListener("load",d),a.addEventListener("error",d),i&&"style"===a.localName){var e=!1;if(-1==a.textContent.indexOf("@import"))e=!0;else if(a.sheet){e=!0;for(var f,g=a.sheet.cssRules,h=g?g.length:0,j=0;h>j&&(f=g[j]);j++)f.type===CSSRule.IMPORT_RULE&&(e=e&&Boolean(f.styleSheet))}e&&a.dispatchEvent(new CustomEvent("load",{bubbles:!1}))}},parseScript:function(b){var d=document.createElement("script");d.__importElement=b,d.src=b.src?b.src:c(b),a.currentScript=b,this.trackElement(d,function(){d.parentNode.removeChild(d),a.currentScript=null}),document.head.appendChild(d)},nextToParse:function(){return!this.parsingElement&&this.nextToParseInDoc(j)},nextToParseInDoc:function(a,c){for(var d,e=a.querySelectorAll(this.parseSelectorsForNode(a)),f=0,g=e.length;g>f&&(d=e[f]);f++)if(!this.isParsed(d))return this.hasResource(d)?b(d)?this.nextToParseInDoc(d.import,d):d:void 0;return c},parseSelectorsForNode:function(a){var b=a.ownerDocument||a;return b===j?this.documentSelectors:this.importsSelectors},isParsed:function(a){return a.__importParsed},hasResource:function(a){return b(a)&&!a.import?!1:!0}},l=/(url\()([^)]*)(\))/g,m=/(@import[\s]+(?!url\())([^;]*)(;)/g,n={resolveUrlsInStyle:function(a){var b=a.ownerDocument,c=b.createElement("a");return a.textContent=this.resolveUrlsInCssText(a.textContent,c),a},resolveUrlsInCssText:function(a,b){var c=this.replaceUrls(a,b,l);return c=this.replaceUrls(c,b,m)},replaceUrls:function(a,b,c){return a.replace(c,function(a,c,d,e){var f=d.replace(/["']/g,"");return b.href=f,f=b.href,c+"'"+f+"'"+e})}};a.parser=k,a.path=n,a.isIE=i}(HTMLImports),function(a){function b(a){return c(a,m)}function c(a,b){return"link"===a.localName&&a.getAttribute("rel")===b}function d(a,b){var c=a;c instanceof Document||(c=document.implementation.createHTMLDocument(m)),c._URL=b;var d=c.createElement("base");d.setAttribute("href",b),c.baseURI||(c.baseURI=b);var e=c.createElement("meta");return e.setAttribute("charset","utf-8"),c.head.appendChild(e),c.head.appendChild(d),a instanceof Document||(c.body.innerHTML=a),window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(c),c}function e(a,b){b=b||n,g(function(){h(a,b)},b)}function f(a){return"complete"===a.readyState||a.readyState===u}function g(a,b){if(f(b))a&&a();else{var c=function(){("complete"===b.readyState||b.readyState===u)&&(b.removeEventListener(v,c),g(a,b))};b.addEventListener(v,c)}}function h(a,b){function c(){f==g&&requestAnimationFrame(a)}function d(){f++,c()}var e=b.querySelectorAll("link[rel=import]"),f=0,g=e.length;if(g)for(var h,j=0;g>j&&(h=e[j]);j++)i(h)?d.call(h):(h.addEventListener("load",d),h.addEventListener("error",d));else c()}function i(a){return k?a.import&&"loading"!==a.import.readyState:a.__importParsed}var j="import"in document.createElement("link"),k=j,l=a.flags,m="import",n=window.ShadowDOMPolyfill?ShadowDOMPolyfill.wrapIfNeeded(document):document;if(k)var o={};else var p=(a.xhr,a.Loader),q=a.parser,o={documents:{},documentPreloadSelectors:"link[rel="+m+"]",importsPreloadSelectors:["link[rel="+m+"]"].join(","),loadNode:function(a){r.addNode(a)},loadSubtree:function(a){var b=this.marshalNodes(a);r.addNodes(b)},marshalNodes:function(a){return a.querySelectorAll(this.loadSelectorsForNode(a))},loadSelectorsForNode:function(a){var b=a.ownerDocument||a;return b===n?this.documentPreloadSelectors:this.importsPreloadSelectors},loaded:function(a,c,e){if(l.load&&console.log("loaded",a,c),c.__resource=e,b(c)){var f=this.documents[a];f||(f=d(e,a),f.__importLink=c,this.bootDocument(f),this.documents[a]=f),c.import=f}q.parseNext()},bootDocument:function(a){this.loadSubtree(a),this.observe(a),q.parseNext()},loadedAll:function(){q.parseNext()}},r=new p(o.loaded.bind(o),o.loadedAll.bind(o));var s={get:function(){return HTMLImports.currentScript||document.currentScript},configurable:!0};if(Object.defineProperty(document,"_currentScript",s),Object.defineProperty(n,"_currentScript",s),!document.baseURI){var t={get:function(){return window.location.href},configurable:!0};Object.defineProperty(document,"baseURI",t),Object.defineProperty(n,"baseURI",t)}var u=HTMLImports.isIE?"complete":"interactive",v="readystatechange";a.hasNative=j,a.useNative=k,a.importer=o,a.whenImportsReady=e,a.IMPORT_LINK_TYPE=m,a.isImportLoaded=i,a.importLoader=r}(window.HTMLImports),function(a){function b(a){for(var b,d=0,e=a.length;e>d&&(b=a[d]);d++)"childList"===b.type&&b.addedNodes.length&&c(b.addedNodes)}function c(a){for(var b,e=0,g=a.length;g>e&&(b=a[e]);e++)d(b)&&f.loadNode(b),b.children&&b.children.length&&c(b.children)}function d(a){return 1===a.nodeType&&g.call(a,f.loadSelectorsForNode(a))}function e(a){h.observe(a,{childList:!0,subtree:!0})}var f=(a.IMPORT_LINK_TYPE,a.importer),g=HTMLElement.prototype.matches||HTMLElement.prototype.matchesSelector||HTMLElement.prototype.webkitMatchesSelector||HTMLElement.prototype.mozMatchesSelector||HTMLElement.prototype.msMatchesSelector,h=new MutationObserver(b);a.observe=e,f.observe=e}(HTMLImports),function(){function a(){HTMLImports.importer.bootDocument(b)}"function"!=typeof window.CustomEvent&&(window.CustomEvent=function(a,b){var c=document.createEvent("HTMLEvents");return c.initEvent(a,b.bubbles===!1?!1:!0,b.cancelable===!1?!1:!0,b.detail),c});var b=window.ShadowDOMPolyfill?window.ShadowDOMPolyfill.wrapIfNeeded(document):document;HTMLImports.whenImportsReady(function(){HTMLImports.ready=!0,HTMLImports.readyTime=(new Date).getTime(),b.dispatchEvent(new CustomEvent("HTMLImportsLoaded",{bubbles:!0}))}),HTMLImports.useNative||("complete"===document.readyState||"interactive"===document.readyState&&!window.attachEvent?a():document.addEventListener("DOMContentLoaded",a))}(),window.CustomElements=window.CustomElements||{flags:{}},function(a){function b(a,c,d){var e=a.firstElementChild;if(!e)for(e=a.firstChild;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.nextSibling;for(;e;)c(e,d)!==!0&&b(e,c,d),e=e.nextElementSibling;return null}function c(a,b){for(var c=a.shadowRoot;c;)d(c,b),c=c.olderShadowRoot}function d(a,d){b(a,function(a){return d(a)?!0:void c(a,d)}),c(a,d)}function e(a){return h(a)?(i(a),!0):void l(a)}function f(a){d(a,function(a){return e(a)?!0:void 0})}function g(a){return e(a)||f(a)}function h(b){if(!b.__upgraded__&&b.nodeType===Node.ELEMENT_NODE){var c=b.getAttribute("is")||b.localName,d=a.registry[c];if(d)return A.dom&&console.group("upgrade:",b.localName),a.upgrade(b),A.dom&&console.groupEnd(),!0}}function i(a){l(a),r(a)&&d(a,function(a){l(a)})}function j(a){if(E.push(a),!D){D=!0;var b=window.Platform&&window.Platform.endOfMicrotask||setTimeout;b(k)}}function k(){D=!1;for(var a,b=E,c=0,d=b.length;d>c&&(a=b[c]);c++)a();E=[]}function l(a){C?j(function(){m(a)}):m(a)}function m(a){(a.attachedCallback||a.detachedCallback||a.__upgraded__&&A.dom)&&(A.dom&&console.group("inserted:",a.localName),r(a)&&(a.__inserted=(a.__inserted||0)+1,a.__inserted<1&&(a.__inserted=1),a.__inserted>1?A.dom&&console.warn("inserted:",a.localName,"insert/remove count:",a.__inserted):a.attachedCallback&&(A.dom&&console.log("inserted:",a.localName),a.attachedCallback())),A.dom&&console.groupEnd())}function n(a){o(a),d(a,function(a){o(a)})}function o(a){C?j(function(){p(a)}):p(a)}function p(a){(a.attachedCallback||a.detachedCallback||a.__upgraded__&&A.dom)&&(A.dom&&console.group("removed:",a.localName),r(a)||(a.__inserted=(a.__inserted||0)-1,a.__inserted>0&&(a.__inserted=0),a.__inserted<0?A.dom&&console.warn("removed:",a.localName,"insert/remove count:",a.__inserted):a.detachedCallback&&a.detachedCallback()),A.dom&&console.groupEnd())}function q(a){return window.ShadowDOMPolyfill?ShadowDOMPolyfill.wrapIfNeeded(a):a}function r(a){for(var b=a,c=q(document);b;){if(b==c)return!0;b=b.parentNode||b.host}}function s(a){if(a.shadowRoot&&!a.shadowRoot.__watched){A.dom&&console.log("watching shadow-root for: ",a.localName);for(var b=a.shadowRoot;b;)t(b),b=b.olderShadowRoot}}function t(a){a.__watched||(w(a),a.__watched=!0)}function u(a){if(A.dom){var b=a[0];if(b&&"childList"===b.type&&b.addedNodes&&b.addedNodes){for(var c=b.addedNodes[0];c&&c!==document&&!c.host;)c=c.parentNode;var d=c&&(c.URL||c._URL||c.host&&c.host.localName)||"";d=d.split("/?").shift().split("/").pop()}console.group("mutations (%d) [%s]",a.length,d||"")}a.forEach(function(a){"childList"===a.type&&(G(a.addedNodes,function(a){a.localName&&g(a)}),G(a.removedNodes,function(a){a.localName&&n(a)}))}),A.dom&&console.groupEnd()}function v(){u(F.takeRecords()),k()}function w(a){F.observe(a,{childList:!0,subtree:!0})}function x(a){w(a)}function y(a){A.dom&&console.group("upgradeDocument: ",a.baseURI.split("/").pop()),g(a),A.dom&&console.groupEnd()}function z(a){a=q(a);for(var b,c=a.querySelectorAll("link[rel="+B+"]"),d=0,e=c.length;e>d&&(b=c[d]);d++)b.import&&b.import.__parsed&&z(b.import);y(a)}var A=window.logFlags||{},B=window.HTMLImports?HTMLImports.IMPORT_LINK_TYPE:"none",C=!window.MutationObserver||window.MutationObserver===window.JsMutationObserver;a.hasPolyfillMutations=C;var D=!1,E=[],F=new MutationObserver(u),G=Array.prototype.forEach.call.bind(Array.prototype.forEach);a.IMPORT_LINK_TYPE=B,a.watchShadow=s,a.upgradeDocumentTree=z,a.upgradeAll=g,a.upgradeSubtree=f,a.insertedNode=i,a.observeDocument=x,a.upgradeDocument=y,a.takeRecords=v}(window.CustomElements),function(a){function b(b,f){var g=f||{};if(!b)throw new Error("document.registerElement: first argument `name` must not be empty");if(b.indexOf("-")<0)throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '"+String(b)+"'.");if(m(b))throw new Error("DuplicateDefinitionError: a type with name '"+String(b)+"' is already registered");if(!g.prototype)throw new Error("Options missing required prototype property");return g.__name=b.toLowerCase(),g.lifecycle=g.lifecycle||{},g.ancestry=c(g.extends),d(g),e(g),k(g.prototype),n(g.__name,g),g.ctor=o(g),g.ctor.prototype=g.prototype,g.prototype.constructor=g.ctor,a.ready&&a.upgradeDocumentTree(document),g.ctor}function c(a){var b=m(a);return b?c(b.extends).concat([b]):[]}function d(a){for(var b,c=a.extends,d=0;b=a.ancestry[d];d++)c=b.is&&b.tag;a.tag=c||a.__name,c&&(a.is=a.__name)}function e(a){if(!Object.__proto__){var b=HTMLElement.prototype;if(a.is){var c=document.createElement(a.tag);b=Object.getPrototypeOf(c)}for(var d,e=a.prototype;e&&e!==b;){var d=Object.getPrototypeOf(e);e.__proto__=d,e=d}}a.native=b}function f(a){return g(z(a.tag),a)}function g(b,c){return c.is&&b.setAttribute("is",c.is),b.removeAttribute("unresolved"),h(b,c),b.__upgraded__=!0,j(b),a.insertedNode(b),a.upgradeSubtree(b),b}function h(a,b){Object.__proto__?a.__proto__=b.prototype:(i(a,b.prototype,b.native),a.__proto__=b.prototype)}function i(a,b,c){for(var d={},e=b;e!==c&&e!==HTMLElement.prototype;){for(var f,g=Object.getOwnPropertyNames(e),h=0;f=g[h];h++)d[f]||(Object.defineProperty(a,f,Object.getOwnPropertyDescriptor(e,f)),d[f]=1);e=Object.getPrototypeOf(e)}}function j(a){a.createdCallback&&a.createdCallback()}function k(a){if(!a.setAttribute._polyfilled){var b=a.setAttribute;a.setAttribute=function(a,c){l.call(this,a,c,b)};var c=a.removeAttribute;a.removeAttribute=function(a){l.call(this,a,null,c)},a.setAttribute._polyfilled=!0}}function l(a,b,c){var d=this.getAttribute(a);c.apply(this,arguments);var e=this.getAttribute(a);this.attributeChangedCallback&&e!==d&&this.attributeChangedCallback(a,d,e)}function m(a){return a?x[a.toLowerCase()]:void 0}function n(a,b){x[a]=b}function o(a){return function(){return f(a)}}function p(a,b,c){return a===y?q(b,c):A(a,b)}function q(a,b){var c=m(b||a);if(c){if(a==c.tag&&b==c.is)return new c.ctor;if(!b&&!c.is)return new c.ctor}if(b){var d=q(a);return d.setAttribute("is",b),d}var d=z(a);return a.indexOf("-")>=0&&h(d,HTMLElement),d}function r(a){if(!a.__upgraded__&&a.nodeType===Node.ELEMENT_NODE){var b=a.getAttribute("is"),c=m(b||a.localName);if(c){if(b&&c.tag==a.localName)return g(a,c);if(!b&&!c.extends)return g(a,c)}}}function s(b){var c=B.call(this,b);return a.upgradeAll(c),c}a||(a=window.CustomElements={flags:{}});var t=a.flags,u=Boolean(document.registerElement),v=!t.register&&u&&!window.ShadowDOMPolyfill;if(v){var w=function(){};a.registry={},a.upgradeElement=w,a.watchShadow=w,a.upgrade=w,a.upgradeAll=w,a.upgradeSubtree=w,a.observeDocument=w,a.upgradeDocument=w,a.upgradeDocumentTree=w,a.takeRecords=w}else{var x={},y="http://www.w3.org/1999/xhtml",z=document.createElement.bind(document),A=document.createElementNS.bind(document),B=Node.prototype.cloneNode;document.registerElement=b,document.createElement=q,document.createElementNS=p,Node.prototype.cloneNode=s,a.registry=x,a.upgrade=r}var C;C=Object.__proto__||v?function(a,b){return a instanceof b}:function(a,b){for(var c=a;c;){if(c===b.prototype)return!0;c=c.__proto__}return!1},a.instanceof=C,document.register=document.registerElement,a.hasNative=u,a.useNative=v}(window.CustomElements),function(a){function b(a){return"link"===a.localName&&a.getAttribute("rel")===c}var c=a.IMPORT_LINK_TYPE,d={selectors:["link[rel="+c+"]"],map:{link:"parseLink"},parse:function(a){if(!a.__parsed){a.__parsed=!0;var b=a.querySelectorAll(d.selectors);e(b,function(a){d[d.map[a.localName]](a)}),CustomElements.upgradeDocument(a),CustomElements.observeDocument(a)}},parseLink:function(a){b(a)&&this.parseImport(a)},parseImport:function(a){a.import&&d.parse(a.import)}},e=Array.prototype.forEach.call.bind(Array.prototype.forEach);a.parser=d,a.IMPORT_LINK_TYPE=c}(window.CustomElements),function(a){function b(){CustomElements.parser.parse(document),CustomElements.upgradeDocument(document);var a=window.Platform&&Platform.endOfMicrotask?Platform.endOfMicrotask:setTimeout;a(function(){CustomElements.ready=!0,CustomElements.readyTime=Date.now(),window.HTMLImports&&(CustomElements.elapsed=CustomElements.readyTime-HTMLImports.readyTime),document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0})),window.HTMLImports&&(HTMLImports.__importsParsingHook=function(a){CustomElements.parser.parse(a.import)})})}if("function"!=typeof window.CustomEvent&&(window.CustomEvent=function(a){var b=document.createEvent("HTMLEvents");return b.initEvent(a,!0,!0),b}),"complete"===document.readyState||a.flags.eager)b();else if("interactive"!==document.readyState||window.attachEvent||window.HTMLImports&&!window.HTMLImports.ready){var c=window.HTMLImports&&!HTMLImports.ready?"HTMLImportsLoaded":"DOMContentLoaded";window.addEventListener(c,b)}else b()}(window.CustomElements),function(){if(window.ShadowDOMPolyfill){var a=["upgradeAll","upgradeSubtree","observeDocument","upgradeDocument"],b={};a.forEach(function(a){b[a]=CustomElements[a]}),a.forEach(function(a){CustomElements[a]=function(c){return b[a](wrap(c))}})}}(),function(a){function b(a){this.regex=a}var c=a.endOfMicrotask;b.prototype={extractUrls:function(a,b){for(var c,d,e=[];c=this.regex.exec(a);)d=new URL(c[1],b),e.push({matched:c[0],url:d.href});return e},process:function(a,b,c){var d=this.extractUrls(a,b);this.fetch(d,{},c)},fetch:function(a,b,d){var e=a.length;if(!e)return d(b);for(var f,g,h,i=function(){0===--e&&d(b)},j=function(a,c){var d=c.match,e=d.url;if(a)return b[e]="",i();var f=c.response||c.responseText;b[e]=f,this.fetch(this.extractUrls(f,e),b,i)},k=0;e>k;k++)f=a[k],h=f.url,b[h]?c(i):(g=this.xhr(h,j,this),g.match=f,b[h]=g)},xhr:function(a,b,c){var d=new XMLHttpRequest;return d.open("GET",a,!0),d.send(),d.onload=function(){b.call(c,null,d)},d.onerror=function(){b.call(c,null,d)},d}},a.Loader=b}(window.Platform),function(a){function b(){this.loader=new d(this.regex)}var c=a.urlResolver,d=a.Loader;b.prototype={regex:/@import\s+(?:url)?["'\(]*([^'"\)]*)['"\)]*;/g,resolve:function(a,b,c){var d=function(d){c(this.flatten(a,b,d))}.bind(this);this.loader.process(a,b,d)},resolveNode:function(a,b){var c=a.textContent,d=a.ownerDocument.baseURI,e=function(c){a.textContent=c,b(a)
-};this.resolve(c,d,e)},flatten:function(a,b,d){for(var e,f,g,h=this.loader.extractUrls(a,b),i=0;i<h.length;i++)e=h[i],f=e.url,g=c.resolveCssText(d[f],f),g=this.flatten(g,f,d),a=a.replace(e.matched,g);return a},loadStyles:function(a,b){function c(){e++,e===f&&b&&b()}for(var d,e=0,f=a.length,g=0;f>g&&(d=a[g]);g++)this.resolveNode(d,c)}};var e=new b;a.styleResolver=e}(window.Platform),function(a){a=a||{},a.external=a.external||{};var b={shadow:function(a){return a?a.shadowRoot||a.webkitShadowRoot:void 0},canTarget:function(a){return a&&Boolean(a.elementFromPoint)},targetingShadow:function(a){var b=this.shadow(a);return this.canTarget(b)?b:void 0},olderShadow:function(a){var b=a.olderShadowRoot;if(!b){var c=a.querySelector("shadow");c&&(b=c.olderShadowRoot)}return b},allShadows:function(a){for(var b=[],c=this.shadow(a);c;)b.push(c),c=this.olderShadow(c);return b},searchRoot:function(a,b,c){if(a){var d,e,f=a.elementFromPoint(b,c);for(e=this.targetingShadow(f);e;){if(d=e.elementFromPoint(b,c)){var g=this.targetingShadow(d);return this.searchRoot(g,b,c)||d}e=this.olderShadow(e)}return f}},owner:function(a){for(var b=a;b.parentNode;)b=b.parentNode;return b.nodeType!=Node.DOCUMENT_NODE&&b.nodeType!=Node.DOCUMENT_FRAGMENT_NODE&&(b=document),b},findTarget:function(a){var b=a.clientX,c=a.clientY,d=this.owner(a.target);return d.elementFromPoint(b,c)||(d=document),this.searchRoot(d,b,c)}};a.targetFinding=b,a.findTarget=b.findTarget.bind(b),window.PointerEventsPolyfill=a}(window.PointerEventsPolyfill),function(){function a(a){return"body /shadow-deep/ "+b(a)}function b(a){return'[touch-action="'+a+'"]'}function c(a){return"{ -ms-touch-action: "+a+"; touch-action: "+a+"; touch-action-delay: none; }"}var d=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]}],e="",f=(document.head,window.PointerEvent||window.MSPointerEvent),g=!window.ShadowDOMPolyfill&&document.head.createShadowRoot;if(f){d.forEach(function(d){String(d)===d?(e+=b(d)+c(d)+"\n",g&&(e+=a(d)+c(d)+"\n")):(e+=d.selectors.map(b)+c(d.rule)+"\n",g&&(e+=d.selectors.map(a)+c(d.rule)+"\n"))});var h=document.createElement("style");h.textContent=e,document.head.appendChild(h)}}(),function(a){function b(a,e){e=e||{};var f=e.buttons;if(!d&&!f&&"touch"!==a)switch(e.which){case 1:f=1;break;case 2:f=4;break;case 3:f=2;break;default:f=0}var i;if(c)i=new MouseEvent(a,e);else{i=document.createEvent("MouseEvent");for(var j,k={},l=0;l<g.length;l++)j=g[l],k[j]=e[j]||h[l];i.initMouseEvent(a,k.bubbles,k.cancelable,k.view,k.detail,k.screenX,k.screenY,k.clientX,k.clientY,k.ctrlKey,k.altKey,k.shiftKey,k.metaKey,k.button,k.relatedTarget)}i.__proto__=b.prototype,d||Object.defineProperty(i,"buttons",{get:function(){return f},enumerable:!0});var m=0;return m=e.pressure?e.pressure:f?.5:0,Object.defineProperties(i,{pointerId:{value:e.pointerId||0,enumerable:!0},width:{value:e.width||0,enumerable:!0},height:{value:e.height||0,enumerable:!0},pressure:{value:m,enumerable:!0},tiltX:{value:e.tiltX||0,enumerable:!0},tiltY:{value:e.tiltY||0,enumerable:!0},pointerType:{value:e.pointerType||"",enumerable:!0},hwTimestamp:{value:e.hwTimestamp||0,enumerable:!0},isPrimary:{value:e.isPrimary||!1,enumerable:!0}}),i}var c=!1,d=!1;try{var e=new MouseEvent("click",{buttons:1});c=!0,d=1===e.buttons,e=null}catch(f){}var g=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget"],h=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null];b.prototype=Object.create(MouseEvent.prototype),a.PointerEvent||(a.PointerEvent=b)}(window),function(a){function b(){if(c){var a=new Map;return a.pointers=d,a}this.keys=[],this.values=[]}var c=window.Map&&window.Map.prototype.forEach,d=function(){return this.size};b.prototype={set:function(a,b){var c=this.keys.indexOf(a);c>-1?this.values[c]=b:(this.keys.push(a),this.values.push(b))},has:function(a){return this.keys.indexOf(a)>-1},"delete":function(a){var b=this.keys.indexOf(a);b>-1&&(this.keys.splice(b,1),this.values.splice(b,1))},get:function(a){var b=this.keys.indexOf(a);return this.values[b]},clear:function(){this.keys.length=0,this.values.length=0},forEach:function(a,b){this.values.forEach(function(c,d){a.call(b,c,this.keys[d],this)},this)},pointers:function(){return this.keys.length}},a.PointerMap=b}(window.PointerEventsPolyfill),function(a){var b=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which"],c=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0],d="undefined"!=typeof SVGElementInstance,e={targets:new WeakMap,handledEvents:new WeakMap,pointermap:new a.PointerMap,eventMap:{},eventSources:{},eventSourceList:[],registerSource:function(a,b){var c=b,d=c.events;d&&(d.forEach(function(a){c[a]&&(this.eventMap[a]=c[a].bind(c))},this),this.eventSources[a]=c,this.eventSourceList.push(c))},register:function(a){for(var b,c=this.eventSourceList.length,d=0;c>d&&(b=this.eventSourceList[d]);d++)b.register.call(b,a)},unregister:function(a){for(var b,c=this.eventSourceList.length,d=0;c>d&&(b=this.eventSourceList[d]);d++)b.unregister.call(b,a)},contains:a.external.contains||function(a,b){return a.contains(b)},down:function(a){a.bubbles=!0,this.fireEvent("pointerdown",a)},move:function(a){a.bubbles=!0,this.fireEvent("pointermove",a)},up:function(a){a.bubbles=!0,this.fireEvent("pointerup",a)},enter:function(a){a.bubbles=!1,this.fireEvent("pointerenter",a)},leave:function(a){a.bubbles=!1,this.fireEvent("pointerleave",a)},over:function(a){a.bubbles=!0,this.fireEvent("pointerover",a)},out:function(a){a.bubbles=!0,this.fireEvent("pointerout",a)},cancel:function(a){a.bubbles=!0,this.fireEvent("pointercancel",a)},leaveOut:function(a){this.out(a),this.contains(a.target,a.relatedTarget)||this.leave(a)},enterOver:function(a){this.over(a),this.contains(a.target,a.relatedTarget)||this.enter(a)},eventHandler:function(a){if(!this.handledEvents.get(a)){var b=a.type,c=this.eventMap&&this.eventMap[b];c&&c(a),this.handledEvents.set(a,!0)}},listen:function(a,b){b.forEach(function(b){this.addEvent(a,b)},this)},unlisten:function(a,b){b.forEach(function(b){this.removeEvent(a,b)},this)},addEvent:a.external.addEvent||function(a,b){a.addEventListener(b,this.boundHandler)},removeEvent:a.external.removeEvent||function(a,b){a.removeEventListener(b,this.boundHandler)},makeEvent:function(a,b){this.captureInfo&&(b.relatedTarget=null);var c=new PointerEvent(a,b);return b.preventDefault&&(c.preventDefault=b.preventDefault),this.targets.set(c,this.targets.get(b)||b.target),c},fireEvent:function(a,b){var c=this.makeEvent(a,b);return this.dispatchEvent(c)},cloneEvent:function(a){for(var e,f={},g=0;g<b.length;g++)e=b[g],f[e]=a[e]||c[g],!d||"target"!==e&&"relatedTarget"!==e||f[e]instanceof SVGElementInstance&&(f[e]=f[e].correspondingUseElement);return a.preventDefault&&(f.preventDefault=function(){a.preventDefault()}),f},getTarget:function(a){return this.captureInfo&&this.captureInfo.id===a.pointerId?this.captureInfo.target:this.targets.get(a)},setCapture:function(a,b){this.captureInfo&&this.releaseCapture(this.captureInfo.id),this.captureInfo={id:a,target:b};var c=new PointerEvent("gotpointercapture",{bubbles:!0});this.implicitRelease=this.releaseCapture.bind(this,a),document.addEventListener("pointerup",this.implicitRelease),document.addEventListener("pointercancel",this.implicitRelease),this.targets.set(c,b),this.asyncDispatchEvent(c)},releaseCapture:function(a){if(this.captureInfo&&this.captureInfo.id===a){var b=new PointerEvent("lostpointercapture",{bubbles:!0}),c=this.captureInfo.target;this.captureInfo=null,document.removeEventListener("pointerup",this.implicitRelease),document.removeEventListener("pointercancel",this.implicitRelease),this.targets.set(b,c),this.asyncDispatchEvent(b)}},dispatchEvent:a.external.dispatchEvent||function(a){var b=this.getTarget(a);return b?b.dispatchEvent(a):void 0},asyncDispatchEvent:function(a){requestAnimationFrame(this.dispatchEvent.bind(this,a))}};e.boundHandler=e.eventHandler.bind(e),a.dispatcher=e,a.register=e.register.bind(e),a.unregister=e.unregister.bind(e)}(window.PointerEventsPolyfill),function(a){function b(a,b,c,d){this.addCallback=a.bind(d),this.removeCallback=b.bind(d),this.changedCallback=c.bind(d),g&&(this.observer=new g(this.mutationWatcher.bind(this)))}var c=Array.prototype.forEach.call.bind(Array.prototype.forEach),d=Array.prototype.map.call.bind(Array.prototype.map),e=Array.prototype.slice.call.bind(Array.prototype.slice),f=Array.prototype.filter.call.bind(Array.prototype.filter),g=window.MutationObserver||window.WebKitMutationObserver,h="[touch-action]",i={subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["touch-action"]};b.prototype={watchSubtree:function(b){a.targetFinding.canTarget(b)&&this.observer.observe(b,i)},enableOnSubtree:function(a){this.watchSubtree(a),a===document&&"complete"!==document.readyState?this.installOnLoad():this.installNewSubtree(a)},installNewSubtree:function(a){c(this.findElements(a),this.addElement,this)},findElements:function(a){return a.querySelectorAll?a.querySelectorAll(h):[]},removeElement:function(a){this.removeCallback(a)},addElement:function(a){this.addCallback(a)},elementChanged:function(a,b){this.changedCallback(a,b)},concatLists:function(a,b){return a.concat(e(b))},installOnLoad:function(){document.addEventListener("readystatechange",function(){"complete"===document.readyState&&this.installNewSubtree(document)}.bind(this))},isElement:function(a){return a.nodeType===Node.ELEMENT_NODE},flattenMutationTree:function(a){var b=d(a,this.findElements,this);return b.push(f(a,this.isElement)),b.reduce(this.concatLists,[])},mutationWatcher:function(a){a.forEach(this.mutationHandler,this)},mutationHandler:function(a){if("childList"===a.type){var b=this.flattenMutationTree(a.addedNodes);b.forEach(this.addElement,this);var c=this.flattenMutationTree(a.removedNodes);c.forEach(this.removeElement,this)}else"attributes"===a.type&&this.elementChanged(a.target,a.oldValue)}},g||(b.prototype.watchSubtree=function(){console.warn("PointerEventsPolyfill: MutationObservers not found, touch-action will not be dynamically detected")}),a.Installer=b}(window.PointerEventsPolyfill),function(a){var b=a.dispatcher,c=b.pointermap,d=25,e={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup","mouseover","mouseout"],register:function(a){b.listen(a,this.events)},unregister:function(a){b.unlisten(a,this.events)},lastTouches:[],isEventSimulatedFromTouch:function(a){for(var b,c=this.lastTouches,e=a.clientX,f=a.clientY,g=0,h=c.length;h>g&&(b=c[g]);g++){var i=Math.abs(e-b.x),j=Math.abs(f-b.y);if(d>=i&&d>=j)return!0}},prepareEvent:function(a){var c=b.cloneEvent(a),d=c.preventDefault;return c.preventDefault=function(){a.preventDefault(),d()},c.pointerId=this.POINTER_ID,c.isPrimary=!0,c.pointerType=this.POINTER_TYPE,c},mousedown:function(a){if(!this.isEventSimulatedFromTouch(a)){var d=c.has(this.POINTER_ID);d&&this.cancel(a);var e=this.prepareEvent(a);c.set(this.POINTER_ID,a),b.down(e)}},mousemove:function(a){if(!this.isEventSimulatedFromTouch(a)){var c=this.prepareEvent(a);b.move(c)}},mouseup:function(a){if(!this.isEventSimulatedFromTouch(a)){var d=c.get(this.POINTER_ID);if(d&&d.button===a.button){var e=this.prepareEvent(a);b.up(e),this.cleanupMouse()}}},mouseover:function(a){if(!this.isEventSimulatedFromTouch(a)){var c=this.prepareEvent(a);b.enterOver(c)}},mouseout:function(a){if(!this.isEventSimulatedFromTouch(a)){var c=this.prepareEvent(a);b.leaveOut(c)}},cancel:function(a){var c=this.prepareEvent(a);b.cancel(c),this.cleanupMouse()},cleanupMouse:function(){c["delete"](this.POINTER_ID)}};a.mouseEvents=e}(window.PointerEventsPolyfill),function(a){var b,c=a.dispatcher,d=a.findTarget,e=a.targetFinding.allShadows.bind(a.targetFinding),f=c.pointermap,g=Array.prototype.map.call.bind(Array.prototype.map),h=2500,i=200,j="touch-action",k=!1,l={scrollType:new WeakMap,events:["touchstart","touchmove","touchend","touchcancel"],register:function(a){k?c.listen(a,this.events):b.enableOnSubtree(a)},unregister:function(a){k&&c.unlisten(a,this.events)},elementAdded:function(a){var b=a.getAttribute(j),d=this.touchActionToScrollType(b);d&&(this.scrollType.set(a,d),c.listen(a,this.events),e(a).forEach(function(a){this.scrollType.set(a,d),c.listen(a,this.events)},this))},elementRemoved:function(a){this.scrollType["delete"](a),c.unlisten(a,this.events),e(a).forEach(function(a){this.scrollType["delete"](a),c.unlisten(a,this.events)},this)},elementChanged:function(a,b){var c=a.getAttribute(j),d=this.touchActionToScrollType(c),f=this.touchActionToScrollType(b);d&&f?(this.scrollType.set(a,d),e(a).forEach(function(a){this.scrollType.set(a,d)},this)):f?this.elementRemoved(a):d&&this.elementAdded(a)},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y",SCROLLER:/^(?:pan-x pan-y)|(?:pan-y pan-x)|auto$/},touchActionToScrollType:function(a){var b=a,c=this.scrollTypes;return"none"===b?"none":b===c.XSCROLLER?"X":b===c.YSCROLLER?"Y":c.SCROLLER.exec(b)?"XY":void 0},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(a){return this.firstTouch===a.identifier},setPrimaryTouch:function(a){(0===f.pointers()||1===f.pointers()&&f.has(1))&&(this.firstTouch=a.identifier,this.firstXY={X:a.clientX,Y:a.clientY},this.scrolling=!1,this.cancelResetClickCount())},removePrimaryPointer:function(a){a.isPrimary&&(this.firstTouch=null,this.firstXY=null,this.resetClickCount())},clickCount:0,resetId:null,resetClickCount:function(){var a=function(){this.clickCount=0,this.resetId=null}.bind(this);this.resetId=setTimeout(a,i)},cancelResetClickCount:function(){this.resetId&&clearTimeout(this.resetId)},typeToButtons:function(a){var b=0;return("touchstart"===a||"touchmove"===a)&&(b=1),b},touchToPointer:function(a){var b=c.cloneEvent(a);return b.pointerId=a.identifier+2,b.target=d(b),b.bubbles=!0,b.cancelable=!0,b.detail=this.clickCount,b.button=0,b.buttons=this.typeToButtons(this.currentTouchEvent),b.width=a.webkitRadiusX||a.radiusX||0,b.height=a.webkitRadiusY||a.radiusY||0,b.pressure=a.webkitForce||a.force||.5,b.isPrimary=this.isPrimaryTouch(a),b.pointerType=this.POINTER_TYPE,b},processTouches:function(a,b){var c=a.changedTouches;this.currentTouchEvent=a.type;var d=g(c,this.touchToPointer,this);d.forEach(function(b){b.preventDefault=function(){this.scrolling=!1,this.firstXY=null,a.preventDefault()}},this),d.forEach(b,this)},shouldScroll:function(a){if(this.firstXY){var b,c=this.scrollType.get(a.currentTarget);if("none"===c)b=!1;else if("XY"===c)b=!0;else{var d=a.changedTouches[0],e=c,f="Y"===c?"X":"Y",g=Math.abs(d["client"+e]-this.firstXY[e]),h=Math.abs(d["client"+f]-this.firstXY[f]);b=g>=h}return this.firstXY=null,b}},findTouch:function(a,b){for(var c,d=0,e=a.length;e>d&&(c=a[d]);d++)if(c.identifier===b)return!0},vacuumTouches:function(a){var b=a.touches;if(f.pointers()>=b.length){var c=[];f.forEach(function(a,d){if(1!==d&&!this.findTouch(b,d-2)){var e=a.out;c.push(this.touchToPointer(e))}},this),c.forEach(this.cancelOut,this)}},touchstart:function(a){this.vacuumTouches(a),this.setPrimaryTouch(a.changedTouches[0]),this.dedupSynthMouse(a),this.scrolling||(this.clickCount++,this.processTouches(a,this.overDown))},overDown:function(a){f.set(a.pointerId,{target:a.target,out:a,outTarget:a.target});c.over(a),c.enter(a),c.down(a)},touchmove:function(a){this.scrolling||(this.shouldScroll(a)?(this.scrolling=!0,this.touchcancel(a)):(a.preventDefault(),this.processTouches(a,this.moveOverOut)))},moveOverOut:function(a){var b=a,d=f.get(b.pointerId);if(d){var e=d.out,g=d.outTarget;c.move(b),e&&g!==b.target&&(e.relatedTarget=b.target,b.relatedTarget=g,e.target=g,b.target?(c.leaveOut(e),c.enterOver(b)):(b.target=g,b.relatedTarget=null,this.cancelOut(b))),d.out=b,d.outTarget=b.target}},touchend:function(a){this.dedupSynthMouse(a),this.processTouches(a,this.upOut)},upOut:function(a){this.scrolling||(c.up(a),c.out(a),c.leave(a)),this.cleanUpPointer(a)},touchcancel:function(a){this.processTouches(a,this.cancelOut)},cancelOut:function(a){c.cancel(a),c.out(a),c.leave(a),this.cleanUpPointer(a)},cleanUpPointer:function(a){f["delete"](a.pointerId),this.removePrimaryPointer(a)},dedupSynthMouse:function(b){var c=a.mouseEvents.lastTouches,d=b.changedTouches[0];if(this.isPrimaryTouch(d)){var e={x:d.clientX,y:d.clientY};c.push(e);var f=function(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}.bind(null,c,e);setTimeout(f,h)}}};k||(b=new a.Installer(l.elementAdded,l.elementRemoved,l.elementChanged,l)),a.touchEvents=l}(window.PointerEventsPolyfill),function(a){var b=a.dispatcher,c=b.pointermap,d=window.MSPointerEvent&&"number"==typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,e={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerOut","MSPointerOver","MSPointerCancel","MSGotPointerCapture","MSLostPointerCapture"],register:function(a){b.listen(a,this.events)},unregister:function(a){b.unlisten(a,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(a){var c=a;return d&&(c=b.cloneEvent(a),c.pointerType=this.POINTER_TYPES[a.pointerType]),c},cleanup:function(a){c["delete"](a)},MSPointerDown:function(a){c.set(a.pointerId,a);var d=this.prepareEvent(a);b.down(d)},MSPointerMove:function(a){var c=this.prepareEvent(a);b.move(c)},MSPointerUp:function(a){var c=this.prepareEvent(a);b.up(c),this.cleanup(a.pointerId)},MSPointerOut:function(a){var c=this.prepareEvent(a);b.leaveOut(c)},MSPointerOver:function(a){var c=this.prepareEvent(a);b.enterOver(c)},MSPointerCancel:function(a){var c=this.prepareEvent(a);b.cancel(c),this.cleanup(a.pointerId)},MSLostPointerCapture:function(a){var c=b.makeEvent("lostpointercapture",a);b.dispatchEvent(c)},MSGotPointerCapture:function(a){var c=b.makeEvent("gotpointercapture",a);b.dispatchEvent(c)}};a.msEvents=e}(window.PointerEventsPolyfill),function(a){var b=a.dispatcher;if(void 0===window.navigator.pointerEnabled){if(Object.defineProperty(window.navigator,"pointerEnabled",{value:!0,enumerable:!0}),window.navigator.msPointerEnabled){var c=window.navigator.msMaxTouchPoints;Object.defineProperty(window.navigator,"maxTouchPoints",{value:c,enumerable:!0}),b.registerSource("ms",a.msEvents)}else b.registerSource("mouse",a.mouseEvents),void 0!==window.ontouchstart&&b.registerSource("touch",a.touchEvents);b.register(document)}}(window.PointerEventsPolyfill),function(a){function b(a){if(!e.pointermap.has(a))throw new Error("InvalidPointerId")}var c,d,e=a.dispatcher,f=window.navigator;f.msPointerEnabled?(c=function(a){b(a),this.msSetPointerCapture(a)},d=function(a){b(a),this.msReleasePointerCapture(a)}):(c=function(a){b(a),e.setCapture(a,this)},d=function(a){b(a),e.releaseCapture(a,this)}),window.Element&&!Element.prototype.setPointerCapture&&Object.defineProperties(Element.prototype,{setPointerCapture:{value:c},releasePointerCapture:{value:d}})}(window.PointerEventsPolyfill),PointerGestureEvent.prototype.preventTap=function(){this.tapPrevented=!0},function(a){a=a||{},a.utils={LCA:{find:function(a,b){if(a===b)return a;if(a.contains){if(a.contains(b))return a;if(b.contains(a))return b}var c=this.depth(a),d=this.depth(b),e=c-d;for(e>0?a=this.walk(a,e):b=this.walk(b,-e);a&&b&&a!==b;)a=this.walk(a,1),b=this.walk(b,1);return a},walk:function(a,b){for(var c=0;b>c;c++)a=a.parentNode;return a},depth:function(a){for(var b=0;a;)b++,a=a.parentNode;return b}}},a.findLCA=function(b,c){return a.utils.LCA.find(b,c)},window.PointerGestures=a}(window.PointerGestures),function(a){function b(){if(c){var a=new Map;return a.pointers=d,a}this.keys=[],this.values=[]}var c=window.Map&&window.Map.prototype.forEach,d=function(){return this.size};b.prototype={set:function(a,b){var c=this.keys.indexOf(a);c>-1?this.values[c]=b:(this.keys.push(a),this.values.push(b))},has:function(a){return this.keys.indexOf(a)>-1},"delete":function(a){var b=this.keys.indexOf(a);b>-1&&(this.keys.splice(b,1),this.values.splice(b,1))},get:function(a){var b=this.keys.indexOf(a);return this.values[b]},clear:function(){this.keys.length=0,this.values.length=0},forEach:function(a,b){this.values.forEach(function(c,d){a.call(b,c,this.keys[d],this)},this)},pointers:function(){return this.keys.length}},a.PointerMap=b}(window.PointerGestures),function(a){var b=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","screenX","screenY","pageX","pageY","tapPrevented"],c=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0,0,0,0],d={handledEvents:new WeakMap,targets:new WeakMap,handlers:{},recognizers:{},events:{},registerRecognizer:function(a,b){var c=b;this.recognizers[a]=c,c.events.forEach(function(a){if(c[a]){this.events[a]=!0;var b=c[a].bind(c);this.addHandler(a,b)}},this)},addHandler:function(a,b){var c=a;this.handlers[c]||(this.handlers[c]=[]),this.handlers[c].push(b)},registerTarget:function(a){this.listen(Object.keys(this.events),a)},unregisterTarget:function(a){this.unlisten(Object.keys(this.events),a)},eventHandler:function(a){if(!this.handledEvents.get(a)){var b=a.type,c=this.handlers[b];c&&this.makeQueue(c,a),this.handledEvents.set(a,!0)}},makeQueue:function(a,b){var c=this.cloneEvent(b);requestAnimationFrame(this.runQueue.bind(this,a,c))},runQueue:function(a,b){this.currentPointerId=b.pointerId;for(var c,d=0,e=a.length;e>d&&(c=a[d]);d++)c(b);this.currentPointerId=0},listen:function(a,b){a.forEach(function(a){this.addEvent(a,this.boundHandler,!1,b)},this)},unlisten:function(a){a.forEach(function(a){this.removeEvent(a,this.boundHandler,!1,inTarget)},this)},addEvent:function(a,b,c,d){d.addEventListener(a,b,c)},removeEvent:function(a,b,c,d){d.removeEventListener(a,b,c)},makeEvent:function(a,b){return new PointerGestureEvent(a,b)},cloneEvent:function(a){for(var d,e={},f=0;f<b.length;f++)d=b[f],e[d]=a[d]||c[f];return e},dispatchEvent:function(a,b){var c=b||this.targets.get(a);c&&(c.dispatchEvent(a),a.tapPrevented&&this.preventTap(this.currentPointerId))},asyncDispatchEvent:function(a,b){requestAnimationFrame(this.dispatchEvent.bind(this,a,b))},preventTap:function(a){var b=this.recognizers.tap;b&&b.preventTap(a)}};d.boundHandler=d.eventHandler.bind(d),d.registerQueue=[],d.immediateRegister=!1,a.dispatcher=d,a.register=function(b){if(d.immediateRegister){var c=window.PointerEventsPolyfill;c&&c.register(b),a.dispatcher.registerTarget(b)}else d.registerQueue.push(b)},a.register(document)}(window.PointerGestures),function(a){var b=a.dispatcher,c={HOLD_DELAY:200,WIGGLE_THRESHOLD:16,events:["pointerdown","pointermove","pointerup","pointercancel"],heldPointer:null,holdJob:null,pulse:function(){var a=Date.now()-this.heldPointer.timeStamp,b=this.held?"holdpulse":"hold";this.fireHold(b,a),this.held=!0},cancel:function(){clearInterval(this.holdJob),this.held&&this.fireHold("release"),this.held=!1,this.heldPointer=null,this.target=null,this.holdJob=null},pointerdown:function(a){a.isPrimary&&!this.heldPointer&&(this.heldPointer=a,this.target=a.target,this.holdJob=setInterval(this.pulse.bind(this),this.HOLD_DELAY))},pointerup:function(a){this.heldPointer&&this.heldPointer.pointerId===a.pointerId&&this.cancel()},pointercancel:function(){this.cancel()},pointermove:function(a){if(this.heldPointer&&this.heldPointer.pointerId===a.pointerId){var b=a.clientX-this.heldPointer.clientX,c=a.clientY-this.heldPointer.clientY;b*b+c*c>this.WIGGLE_THRESHOLD&&this.cancel()}},fireHold:function(a,c){var d={pointerType:this.heldPointer.pointerType,clientX:this.heldPointer.clientX,clientY:this.heldPointer.clientY};c&&(d.holdTime=c);var e=b.makeEvent(a,d);b.dispatchEvent(e,this.target),e.tapPrevented&&b.preventTap(this.heldPointer.pointerId)}};b.registerRecognizer("hold",c)}(window.PointerGestures),function(a){var b=a.dispatcher,c=new a.PointerMap,d={events:["pointerdown","pointermove","pointerup","pointercancel"],WIGGLE_THRESHOLD:4,clampDir:function(a){return a>0?1:-1},calcPositionDelta:function(a,b){var c=0,d=0;return a&&b&&(c=b.pageX-a.pageX,d=b.pageY-a.pageY),{x:c,y:d}},fireTrack:function(a,c,d){var e=d,f=this.calcPositionDelta(e.downEvent,c),g=this.calcPositionDelta(e.lastMoveEvent,c);g.x&&(e.xDirection=this.clampDir(g.x)),g.y&&(e.yDirection=this.clampDir(g.y));var h={dx:f.x,dy:f.y,ddx:g.x,ddy:g.y,clientX:c.clientX,clientY:c.clientY,pageX:c.pageX,pageY:c.pageY,screenX:c.screenX,screenY:c.screenY,xDirection:e.xDirection,yDirection:e.yDirection,trackInfo:e.trackInfo,relatedTarget:c.target,pointerType:c.pointerType},i=b.makeEvent(a,h);e.lastMoveEvent=c,b.dispatchEvent(i,e.downTarget)},pointerdown:function(a){if(a.isPrimary&&("mouse"===a.pointerType?1===a.buttons:!0)){var b={downEvent:a,downTarget:a.target,trackInfo:{},lastMoveEvent:null,xDirection:0,yDirection:0,tracking:!1};c.set(a.pointerId,b)}},pointermove:function(a){var b=c.get(a.pointerId);if(b)if(b.tracking)this.fireTrack("track",a,b);else{var d=this.calcPositionDelta(b.downEvent,a),e=d.x*d.x+d.y*d.y;e>this.WIGGLE_THRESHOLD&&(b.tracking=!0,this.fireTrack("trackstart",b.downEvent,b),this.fireTrack("track",a,b))}},pointerup:function(a){var b=c.get(a.pointerId);b&&(b.tracking&&this.fireTrack("trackend",a,b),c.delete(a.pointerId))},pointercancel:function(a){this.pointerup(a)}};b.registerRecognizer("track",d)}(window.PointerGestures),function(a){var b=a.dispatcher,c={MIN_VELOCITY:.5,MAX_QUEUE:4,moveQueue:[],target:null,pointerId:null,events:["pointerdown","pointermove","pointerup","pointercancel"],pointerdown:function(a){a.isPrimary&&!this.pointerId&&(this.pointerId=a.pointerId,this.target=a.target,this.addMove(a))},pointermove:function(a){a.pointerId===this.pointerId&&this.addMove(a)},pointerup:function(a){a.pointerId===this.pointerId&&this.fireFlick(a),this.cleanup()},pointercancel:function(){this.cleanup()},cleanup:function(){this.moveQueue=[],this.target=null,this.pointerId=null},addMove:function(a){this.moveQueue.length>=this.MAX_QUEUE&&this.moveQueue.shift(),this.moveQueue.push(a)},fireFlick:function(a){for(var c,d,e,f,g,h,i,j=a,k=this.moveQueue.length,l=0,m=0,n=0,o=0;k>o&&(i=this.moveQueue[o]);o++)c=j.timeStamp-i.timeStamp,d=j.clientX-i.clientX,e=j.clientY-i.clientY,f=d/c,g=e/c,h=Math.sqrt(f*f+g*g),h>n&&(l=f,m=g,n=h);var p=Math.abs(l)>Math.abs(m)?"x":"y",q=this.calcAngle(l,m);if(Math.abs(n)>=this.MIN_VELOCITY){var r=b.makeEvent("flick",{xVelocity:l,yVelocity:m,velocity:n,angle:q,majorAxis:p,pointerType:a.pointerType});b.dispatchEvent(r,this.target)}},calcAngle:function(a,b){return 180*Math.atan2(b,a)/Math.PI}};b.registerRecognizer("flick",c)}(window.PointerGestures),function(a){var b=a.dispatcher,c=new a.PointerMap,d=180/Math.PI,e={events:["pointerdown","pointermove","pointerup","pointercancel"],reference:{},pointerdown:function(b){if(c.set(b.pointerId,b),2==c.pointers()){var d=this.calcChord(),e=this.calcAngle(d);this.reference={angle:e,diameter:d.diameter,target:a.findLCA(d.a.target,d.b.target)}}},pointerup:function(a){c.delete(a.pointerId)},pointermove:function(a){c.has(a.pointerId)&&(c.set(a.pointerId,a),c.pointers()>1&&this.calcPinchRotate())},pointercancel:function(a){this.pointerup(a)},dispatchPinch:function(a,c){var d=a/this.reference.diameter,e=b.makeEvent("pinch",{scale:d,centerX:c.center.x,centerY:c.center.y});b.dispatchEvent(e,this.reference.target)},dispatchRotate:function(a,c){var d=Math.round((a-this.reference.angle)%360),e=b.makeEvent("rotate",{angle:d,centerX:c.center.x,centerY:c.center.y});b.dispatchEvent(e,this.reference.target)},calcPinchRotate:function(){var a=this.calcChord(),b=a.diameter,c=this.calcAngle(a);b!=this.reference.diameter&&this.dispatchPinch(b,a),c!=this.reference.angle&&this.dispatchRotate(c,a)},calcChord:function(){var a=[];c.forEach(function(b){a.push(b)});for(var b,d,e,f=0,g={a:a[0],b:a[1]},h=0;h<a.length;h++)for(var i=a[h],j=h+1;j<a.length;j++){var k=a[j];b=Math.abs(i.clientX-k.clientX),d=Math.abs(i.clientY-k.clientY),e=b+d,e>f&&(f=e,g={a:i,b:k})}return b=Math.abs(g.a.clientX+g.b.clientX)/2,d=Math.abs(g.a.clientY+g.b.clientY)/2,g.center={x:b,y:d},g.diameter=f,g},calcAngle:function(a){var b=a.a.clientX-a.b.clientX,c=a.a.clientY-a.b.clientY;return(360+Math.atan2(c,b)*d)%360}};b.registerRecognizer("pinch",e)}(window.PointerGestures),function(a){var b=a.dispatcher,c=new a.PointerMap,d={events:["pointerdown","pointermove","pointerup","pointercancel","keyup"],pointerdown:function(a){a.isPrimary&&!a.tapPrevented&&c.set(a.pointerId,{target:a.target,buttons:a.buttons,x:a.clientX,y:a.clientY})},pointermove:function(a){if(a.isPrimary){var b=c.get(a.pointerId);b&&a.tapPrevented&&c.delete(a.pointerId)}},shouldTap:function(a,b){return a.tapPrevented?void 0:"mouse"===a.pointerType?1===b.buttons:!0},pointerup:function(d){var e=c.get(d.pointerId);if(e&&this.shouldTap(d,e)){var f=a.findLCA(e.target,d.target);if(f){var g=b.makeEvent("tap",{x:d.clientX,y:d.clientY,detail:d.detail,pointerType:d.pointerType});b.dispatchEvent(g,f)}}c.delete(d.pointerId)},pointercancel:function(a){c.delete(a.pointerId)},keyup:function(a){var c=a.keyCode;if(32===c){var d=a.target;d instanceof HTMLInputElement||d instanceof HTMLTextAreaElement||b.dispatchEvent(b.makeEvent("tap",{x:0,y:0,detail:0,pointerType:"unavailable"}),d)}},preventTap:function(a){c.delete(a)}};b.registerRecognizer("tap",d)}(window.PointerGestures),function(a){function b(){c.immediateRegister=!0;var b=c.registerQueue;b.forEach(a.register),b.length=0}var c=a.dispatcher;"complete"===document.readyState?b():document.addEventListener("readystatechange",function(){"complete"===document.readyState&&b()})}(window.PointerGestures),function(){"use strict";function a(a){for(;a.parentNode;)a=a.parentNode;return"function"==typeof a.getElementById?a:null}function b(a,b,c){var d=a.bindings_;return d||(d=a.bindings_={}),d[b]&&c[b].close(),d[b]=c}function c(a,b,c){return c}function d(a){return null==a?"":a}function e(a,b){a.data=d(b)}function f(a){return function(b){return e(a,b)}}function g(a,b,c,e){return c?void(e?a.setAttribute(b,""):a.removeAttribute(b)):void a.setAttribute(b,d(e))}function h(a,b,c){return function(d){g(a,b,c,d)}}function i(a){switch(a.type){case"checkbox":return u;case"radio":case"select-multiple":case"select-one":return"change";case"range":if(/Trident|MSIE/.test(navigator.userAgent))return"change";default:return"input"}}function j(a,b,c,e){a[b]=(e||d)(c)}function k(a,b,c){return function(d){return j(a,b,d,c)}}function l(){}function m(a,b,c,d){function e(){c.setValue(a[b]),c.discardChanges(),(d||l)(a),Platform.performMicrotaskCheckpoint()}var f=i(a);return a.addEventListener(f,e),{close:function(){a.removeEventListener(f,e),c.close()},observable_:c}}function n(a){return Boolean(a)}function o(b){if(b.form)return s(b.form.elements,function(a){return a!=b&&"INPUT"==a.tagName&&"radio"==a.type&&a.name==b.name});var c=a(b);if(!c)return[];var d=c.querySelectorAll('input[type="radio"][name="'+b.name+'"]');return s(d,function(a){return a!=b&&!a.form})}function p(a){"INPUT"===a.tagName&&"radio"===a.type&&o(a).forEach(function(a){var b=a.bindings_.checked;b&&b.observable_.setValue(!1)})}function q(a,b){var c,e,f,g=a.parentNode;g instanceof HTMLSelectElement&&g.bindings_&&g.bindings_.value&&(c=g,e=c.bindings_.value,f=c.value),a.value=d(b),c&&c.value!=f&&(e.observable_.setValue(c.value),e.observable_.discardChanges(),Platform.performMicrotaskCheckpoint())}function r(a){return function(b){q(a,b)}}var s=Array.prototype.filter.call.bind(Array.prototype.filter);Node.prototype.bind=function(a,b){console.error("Unhandled binding to Node: ",this,a,b)};var t=c;Object.defineProperty(Platform,"enableBindingsReflection",{get:function(){return t===b},set:function(a){return t=a?b:c,a},configurable:!0}),Text.prototype.bind=function(a,b,c){if("textContent"!==a)return Node.prototype.bind.call(this,a,b,c);
-if(c)return e(this,b);var d=b;return e(this,d.open(f(this))),t(this,a,d)},Element.prototype.bind=function(a,b,c){var d="?"==a[a.length-1];if(d&&(this.removeAttribute(a),a=a.slice(0,-1)),c)return g(this,a,d,b);var e=b;return g(this,a,d,e.open(h(this,a,d))),t(this,a,e)};var u;!function(){var a=document.createElement("div"),b=a.appendChild(document.createElement("input"));b.setAttribute("type","checkbox");var c,d=0;b.addEventListener("click",function(){d++,c=c||"click"}),b.addEventListener("change",function(){d++,c=c||"change"});var e=document.createEvent("MouseEvent");e.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),b.dispatchEvent(e),u=1==d?"change":c}(),HTMLInputElement.prototype.bind=function(a,c,e){if("value"!==a&&"checked"!==a)return HTMLElement.prototype.bind.call(this,a,c,e);this.removeAttribute(a);var f="checked"==a?n:d,g="checked"==a?p:l;if(e)return j(this,a,c,f);var h=c,i=m(this,a,h,g);return j(this,a,h.open(k(this,a,f)),f),b(this,a,i)},HTMLTextAreaElement.prototype.bind=function(a,b,c){if("value"!==a)return HTMLElement.prototype.bind.call(this,a,b,c);if(this.removeAttribute("value"),c)return j(this,"value",b);var e=b,f=m(this,"value",e);return j(this,"value",e.open(k(this,"value",d))),t(this,a,f)},HTMLOptionElement.prototype.bind=function(a,b,c){if("value"!==a)return HTMLElement.prototype.bind.call(this,a,b,c);if(this.removeAttribute("value"),c)return q(this,b);var d=b,e=m(this,"value",d);return q(this,d.open(r(this))),t(this,a,e)},HTMLSelectElement.prototype.bind=function(a,c,d){if("selectedindex"===a&&(a="selectedIndex"),"selectedIndex"!==a&&"value"!==a)return HTMLElement.prototype.bind.call(this,a,c,d);if(this.removeAttribute(a),d)return j(this,a,c);var e=c,f=m(this,a,e);return j(this,a,e.open(k(this,a))),b(this,a,f)}}(this),function(a){"use strict";function b(a){if(!a)throw new Error("Assertion failed")}function c(a){for(var b;b=a.parentNode;)a=b;return a}function d(a,b){if(b){for(var d,e="#"+b;!d&&(a=c(a),a.protoContent_?d=a.protoContent_.querySelector(e):a.getElementById&&(d=a.getElementById(b)),!d&&a.templateCreator_);)a=a.templateCreator_;return d}}function e(a){return"template"==a.tagName&&"http://www.w3.org/2000/svg"==a.namespaceURI}function f(a){return"TEMPLATE"==a.tagName&&"http://www.w3.org/1999/xhtml"==a.namespaceURI}function g(a){return Boolean(J[a.tagName]&&a.hasAttribute("template"))}function h(a){return void 0===a.isTemplate_&&(a.isTemplate_="TEMPLATE"==a.tagName||g(a)),a.isTemplate_}function i(a,b){var c=a.querySelectorAll(L);h(a)&&b(a),E(c,b)}function j(a){function b(a){HTMLTemplateElement.decorate(a)||j(a.content)}i(a,b)}function k(a,b){Object.getOwnPropertyNames(b).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))})}function l(a){var b=a.ownerDocument;if(!b.defaultView)return b;var c=b.templateContentsOwner_;if(!c){for(c=b.implementation.createHTMLDocument("");c.lastChild;)c.removeChild(c.lastChild);b.templateContentsOwner_=c}return c}function m(a){if(!a.stagingDocument_){var b=a.ownerDocument;if(!b.stagingDocument_){b.stagingDocument_=b.implementation.createHTMLDocument("");var c=b.stagingDocument_.createElement("base");c.href=document.baseURI,b.stagingDocument_.head.appendChild(c),b.stagingDocument_.stagingDocument_=b.stagingDocument_}a.stagingDocument_=b.stagingDocument_}return a.stagingDocument_}function n(a){var b=a.ownerDocument.createElement("template");a.parentNode.insertBefore(b,a);for(var c=a.attributes,d=c.length;d-->0;){var e=c[d];I[e.name]&&("template"!==e.name&&b.setAttribute(e.name,e.value),a.removeAttribute(e.name))}return b}function o(a){var b=a.ownerDocument.createElement("template");a.parentNode.insertBefore(b,a);for(var c=a.attributes,d=c.length;d-->0;){var e=c[d];b.setAttribute(e.name,e.value),a.removeAttribute(e.name)}return a.parentNode.removeChild(a),b}function p(a,b,c){var d=a.content;if(c)return void d.appendChild(b);for(var e;e=b.firstChild;)d.appendChild(e)}function q(a){N?a.__proto__=HTMLTemplateElement.prototype:k(a,HTMLTemplateElement.prototype)}function r(a){a.setModelFn_||(a.setModelFn_=function(){a.setModelFnScheduled_=!1;var b=z(a,a.delegate_&&a.delegate_.prepareBinding);w(a,b,a.model_)}),a.setModelFnScheduled_||(a.setModelFnScheduled_=!0,Observer.runEOM_(a.setModelFn_))}function s(a,b,c,d){if(a&&a.length){for(var e,f=a.length,g=0,h=0,i=0,j=!0;f>h;){var g=a.indexOf("{{",h),k=a.indexOf("[[",h),l=!1,m="}}";if(k>=0&&(0>g||g>k)&&(g=k,l=!0,m="]]"),i=0>g?-1:a.indexOf(m,g+2),0>i){if(!e)return;e.push(a.slice(h));break}e=e||[],e.push(a.slice(h,g));var n=a.slice(g+2,i).trim();e.push(l),j=j&&l,e.push(Path.get(n));var o=d&&d(n,b,c);e.push(o),h=i+2}return h===f&&e.push(""),e.hasOnePath=5===e.length,e.isSimplePath=e.hasOnePath&&""==e[0]&&""==e[4],e.onlyOneTime=j,e.combinator=function(a){for(var b=e[0],c=1;c<e.length;c+=4){var d=e.hasOnePath?a:a[(c-1)/4];void 0!==d&&(b+=d),b+=e[c+3]}return b},e}}function t(a,b,c,d){if(b.hasOnePath){var e=b[3],f=e?e(d,c,!0):b[2].getValueFrom(d);return b.isSimplePath?f:b.combinator(f)}for(var g=[],h=1;h<b.length;h+=4){var e=b[h+2];g[(h-1)/4]=e?e(d,c):b[h+1].getValueFrom(d)}return b.combinator(g)}function u(a,b,c,d){var e=b[3],f=e?e(d,c,!1):new PathObserver(d,b[2]);return b.isSimplePath?f:new ObserverTransform(f,b.combinator)}function v(a,b,c,d){if(b.onlyOneTime)return t(a,b,c,d);if(b.hasOnePath)return u(a,b,c,d);for(var e=new CompoundObserver,f=1;f<b.length;f+=4){var g=b[f],h=b[f+2];if(h){var i=h(d,c,g);g?e.addPath(i):e.addObserver(i)}else{var j=b[f+1];g?e.addPath(j.getValueFrom(d)):e.addPath(d,j)}}return new ObserverTransform(e,b.combinator)}function w(a,b,c,d){for(var e=0;e<b.length;e+=2){var f=b[e],g=b[e+1],h=v(f,g,a,c),i=a.bind(f,h,g.onlyOneTime);i&&d&&d.push(i)}if(b.isTemplate){a.model_=c;var j=a.processBindingDirectives_(b);d&&j&&d.push(j)}}function x(a,b,c){var d=a.getAttribute(b);return s(""==d?"{{}}":d,b,a,c)}function y(a,c){b(a);for(var d=[],e=0;e<a.attributes.length;e++){for(var f=a.attributes[e],g=f.name,i=f.value;"_"===g[0];)g=g.substring(1);if(!h(a)||g!==H&&g!==F&&g!==G){var j=s(i,g,a,c);j&&d.push(g,j)}}return h(a)&&(d.isTemplate=!0,d.if=x(a,H,c),d.bind=x(a,F,c),d.repeat=x(a,G,c),!d.if||d.bind||d.repeat||(d.bind=s("{{}}",F,a,c))),d}function z(a,b){if(a.nodeType===Node.ELEMENT_NODE)return y(a,b);if(a.nodeType===Node.TEXT_NODE){var c=s(a.data,"textContent",a,b);if(c)return["textContent",c]}return[]}function A(a,b,c,d,e,f,g){for(var h=b.appendChild(c.importNode(a,!1)),i=0,j=a.firstChild;j;j=j.nextSibling)A(j,h,c,d.children[i++],e,f,g);return d.isTemplate&&(HTMLTemplateElement.decorate(h,a),f&&h.setDelegate_(f)),w(h,d,e,g),h}function B(a,b){var c=z(a,b);c.children={};for(var d=0,e=a.firstChild;e;e=e.nextSibling)c.children[d++]=B(e,b);return c}function C(a){this.closed=!1,this.templateElement_=a,this.instances=[],this.deps=void 0,this.iteratedValue=[],this.presentValue=void 0,this.arrayObserver=void 0}var D,E=Array.prototype.forEach.call.bind(Array.prototype.forEach);a.Map&&"function"==typeof a.Map.prototype.forEach?D=a.Map:(D=function(){this.keys=[],this.values=[]},D.prototype={set:function(a,b){var c=this.keys.indexOf(a);0>c?(this.keys.push(a),this.values.push(b)):this.values[c]=b},get:function(a){var b=this.keys.indexOf(a);if(!(0>b))return this.values[b]},"delete":function(a){var b=this.keys.indexOf(a);return 0>b?!1:(this.keys.splice(b,1),this.values.splice(b,1),!0)},forEach:function(a,b){for(var c=0;c<this.keys.length;c++)a.call(b||this,this.values[c],this.keys[c],this)}});"function"!=typeof document.contains&&(Document.prototype.contains=function(a){return a===this||a.parentNode===this?!0:this.documentElement.contains(a)});var F="bind",G="repeat",H="if",I={template:!0,repeat:!0,bind:!0,ref:!0},J={THEAD:!0,TBODY:!0,TFOOT:!0,TH:!0,TR:!0,TD:!0,COLGROUP:!0,COL:!0,CAPTION:!0,OPTION:!0,OPTGROUP:!0},K="undefined"!=typeof HTMLTemplateElement;K&&!function(){var a=document.createElement("template"),b=a.content.ownerDocument,c=b.appendChild(b.createElement("html")),d=c.appendChild(b.createElement("head")),e=b.createElement("base");e.href=document.baseURI,d.appendChild(e)}();var L="template, "+Object.keys(J).map(function(a){return a.toLowerCase()+"[template]"}).join(", ");document.addEventListener("DOMContentLoaded",function(){j(document),Platform.performMicrotaskCheckpoint()},!1),K||(a.HTMLTemplateElement=function(){throw TypeError("Illegal constructor")});var M,N="__proto__"in{};"function"==typeof MutationObserver&&(M=new MutationObserver(function(a){for(var b=0;b<a.length;b++)a[b].target.refChanged_()})),HTMLTemplateElement.decorate=function(a,c){if(a.templateIsDecorated_)return!1;var d=a;d.templateIsDecorated_=!0;var h=f(d)&&K,i=h,k=!h,m=!1;if(h||(g(d)?(b(!c),d=n(a),d.templateIsDecorated_=!0,h=K,m=!0):e(d)&&(d=o(a),d.templateIsDecorated_=!0,h=K)),!h){q(d);var r=l(d);d.content_=r.createDocumentFragment()}return c?d.instanceRef_=c:k?p(d,a,m):i&&j(d.content),!0},HTMLTemplateElement.bootstrap=j;var O=a.HTMLUnknownElement||HTMLElement,P={get:function(){return this.content_},enumerable:!0,configurable:!0};K||(HTMLTemplateElement.prototype=Object.create(O.prototype),Object.defineProperty(HTMLTemplateElement.prototype,"content",P)),k(HTMLTemplateElement.prototype,{bind:function(a,b,c){if("ref"!=a)return Element.prototype.bind.call(this,a,b,c);var d=this,e=c?b:b.open(function(a){d.setAttribute("ref",a),d.refChanged_()});return this.setAttribute("ref",e),this.refChanged_(),c?void 0:(this.bindings_?this.bindings_.ref=b:this.bindings_={ref:b},b)},processBindingDirectives_:function(a){return this.iterator_&&this.iterator_.closeDeps(),a.if||a.bind||a.repeat?(this.iterator_||(this.iterator_=new C(this)),this.iterator_.updateDependencies(a,this.model_),M&&M.observe(this,{attributes:!0,attributeFilter:["ref"]}),this.iterator_):void(this.iterator_&&(this.iterator_.close(),this.iterator_=void 0))},createInstance:function(a,b,c){b&&(c=this.newDelegate_(b)),this.refContent_||(this.refContent_=this.ref_.content);var d=this.refContent_;if(null===d.firstChild)return Q;var e=this.bindingMap_;e&&e.content===d||(e=B(d,c&&c.prepareBinding)||[],e.content=d,this.bindingMap_=e);var f=m(this),g=f.createDocumentFragment();g.templateCreator_=this,g.protoContent_=d,g.bindings_=[],g.terminator_=null;for(var h=g.templateInstance_={firstNode:null,lastNode:null,model:a},i=0,j=!1,k=d.firstChild;k;k=k.nextSibling){null===k.nextSibling&&(j=!0);var l=A(k,g,f,e.children[i++],a,c,g.bindings_);l.templateInstance_=h,j&&(g.terminator_=l)}return h.firstNode=g.firstChild,h.lastNode=g.lastChild,g.templateCreator_=void 0,g.protoContent_=void 0,g},get model(){return this.model_},set model(a){this.model_=a,r(this)},get bindingDelegate(){return this.delegate_&&this.delegate_.raw},refChanged_:function(){this.iterator_&&this.refContent_!==this.ref_.content&&(this.refContent_=void 0,this.iterator_.valueChanged(),this.iterator_.updateIteratedValue())},clear:function(){this.model_=void 0,this.delegate_=void 0,this.bindings_&&this.bindings_.ref&&this.bindings_.ref.close(),this.refContent_=void 0,this.iterator_&&(this.iterator_.valueChanged(),this.iterator_.close(),this.iterator_=void 0)},setDelegate_:function(a){this.delegate_=a,this.bindingMap_=void 0,this.iterator_&&(this.iterator_.instancePositionChangedFn_=void 0,this.iterator_.instanceModelFn_=void 0)},newDelegate_:function(a){function b(b){var c=a&&a[b];if("function"==typeof c)return function(){return c.apply(a,arguments)}}return a?{raw:a,prepareBinding:b("prepareBinding"),prepareInstanceModel:b("prepareInstanceModel"),prepareInstancePositionChanged:b("prepareInstancePositionChanged")}:{}},set bindingDelegate(a){if(this.delegate_)throw Error("Template must be cleared before a new bindingDelegate can be assigned");this.setDelegate_(this.newDelegate_(a))},get ref_(){var a=d(this,this.getAttribute("ref"));if(a||(a=this.instanceRef_),!a)return this;var b=a.ref_;return b?b:a}}),Object.defineProperty(Node.prototype,"templateInstance",{get:function(){var a=this.templateInstance_;return a?a:this.parentNode?this.parentNode.templateInstance:void 0}});var Q=document.createDocumentFragment();Q.bindings_=[],Q.terminator_=null,C.prototype={closeDeps:function(){var a=this.deps;a&&(a.ifOneTime===!1&&a.ifValue.close(),a.oneTime===!1&&a.value.close())},updateDependencies:function(a,b){this.closeDeps();var c=this.deps={},d=this.templateElement_;if(a.if){if(c.hasIf=!0,c.ifOneTime=a.if.onlyOneTime,c.ifValue=v(H,a.if,d,b),c.ifOneTime&&!c.ifValue)return void this.updateIteratedValue();c.ifOneTime||c.ifValue.open(this.updateIteratedValue,this)}a.repeat?(c.repeat=!0,c.oneTime=a.repeat.onlyOneTime,c.value=v(G,a.repeat,d,b)):(c.repeat=!1,c.oneTime=a.bind.onlyOneTime,c.value=v(F,a.bind,d,b)),c.oneTime||c.value.open(this.updateIteratedValue,this),this.updateIteratedValue()},updateIteratedValue:function(){if(this.deps.hasIf){var a=this.deps.ifValue;if(this.deps.ifOneTime||(a=a.discardChanges()),!a)return void this.valueChanged()}var b=this.deps.value;this.deps.oneTime||(b=b.discardChanges()),this.deps.repeat||(b=[b]);var c=this.deps.repeat&&!this.deps.oneTime&&Array.isArray(b);this.valueChanged(b,c)},valueChanged:function(a,b){Array.isArray(a)||(a=[]),a!==this.iteratedValue&&(this.unobserve(),this.presentValue=a,b&&(this.arrayObserver=new ArrayObserver(this.presentValue),this.arrayObserver.open(this.handleSplices,this)),this.handleSplices(ArrayObserver.calculateSplices(this.presentValue,this.iteratedValue)))},getLastInstanceNode:function(a){if(-1==a)return this.templateElement_;var b=this.instances[a],c=b.terminator_;if(!c)return this.getLastInstanceNode(a-1);if(c.nodeType!==Node.ELEMENT_NODE||this.templateElement_===c)return c;var d=c.iterator_;return d?d.getLastTemplateNode():c},getLastTemplateNode:function(){return this.getLastInstanceNode(this.instances.length-1)},insertInstanceAt:function(a,b){var c=this.getLastInstanceNode(a-1),d=this.templateElement_.parentNode;this.instances.splice(a,0,b),d.insertBefore(b,c.nextSibling)},extractInstanceAt:function(a){for(var b=this.getLastInstanceNode(a-1),c=this.getLastInstanceNode(a),d=this.templateElement_.parentNode,e=this.instances.splice(a,1)[0];c!==b;){var f=b.nextSibling;f==c&&(c=b),e.appendChild(d.removeChild(f))}return e},getDelegateFn:function(a){return a=a&&a(this.templateElement_),"function"==typeof a?a:null},handleSplices:function(a){if(!this.closed&&a.length){var b=this.templateElement_;if(!b.parentNode)return void this.close();ArrayObserver.applySplices(this.iteratedValue,this.presentValue,a);var c=b.delegate_;void 0===this.instanceModelFn_&&(this.instanceModelFn_=this.getDelegateFn(c&&c.prepareInstanceModel)),void 0===this.instancePositionChangedFn_&&(this.instancePositionChangedFn_=this.getDelegateFn(c&&c.prepareInstancePositionChanged));for(var d=new D,e=0,f=0;f<a.length;f++){for(var g=a[f],h=g.removed,i=0;i<h.length;i++){var j=h[i],k=this.extractInstanceAt(g.index+e);k!==Q&&d.set(j,k)}e-=g.addedCount}for(var f=0;f<a.length;f++)for(var g=a[f],l=g.index;l<g.index+g.addedCount;l++){var j=this.iteratedValue[l],k=d.get(j);k?d.delete(j):(this.instanceModelFn_&&(j=this.instanceModelFn_(j)),k=void 0===j?Q:b.createInstance(j,void 0,c)),this.insertInstanceAt(l,k)}d.forEach(function(a){this.closeInstanceBindings(a)},this),this.instancePositionChangedFn_&&this.reportInstancesMoved(a)}},reportInstanceMoved:function(a){var b=this.instances[a];b!==Q&&this.instancePositionChangedFn_(b.templateInstance_,a)},reportInstancesMoved:function(a){for(var b=0,c=0,d=0;d<a.length;d++){var e=a[d];if(0!=c)for(;b<e.index;)this.reportInstanceMoved(b),b++;else b=e.index;for(;b<e.index+e.addedCount;)this.reportInstanceMoved(b),b++;c+=e.addedCount-e.removed.length}if(0!=c)for(var f=this.instances.length;f>b;)this.reportInstanceMoved(b),b++},closeInstanceBindings:function(a){for(var b=a.bindings_,c=0;c<b.length;c++)b[c].close()},unobserve:function(){this.arrayObserver&&(this.arrayObserver.close(),this.arrayObserver=void 0)},close:function(){if(!this.closed){this.unobserve();for(var a=0;a<this.instances.length;a++)this.closeInstanceBindings(this.instances[a]);this.instances.length=0,this.closeDeps(),this.templateElement_.iterator_=void 0,this.closed=!0}}},HTMLTemplateElement.forAllTemplatesFrom_=i}(this),function(a){"use strict";function b(a,b){if(!a)throw new Error("ASSERT: "+b)}function c(a){return a>=48&&57>=a}function d(a){return 32===a||9===a||11===a||12===a||160===a||a>=5760&&"áš€á Žâ€€â€â€‚â€ƒâ€„â€…â€†â€‡â€ˆâ€‰â€Šâ€¯âŸã€€ï»¿".indexOf(String.fromCharCode(a))>0}function e(a){return 10===a||13===a||8232===a||8233===a}function f(a){return 36===a||95===a||a>=65&&90>=a||a>=97&&122>=a}function g(a){return 36===a||95===a||a>=65&&90>=a||a>=97&&122>=a||a>=48&&57>=a}function h(a){return"this"===a}function i(){for(;Y>X&&d(W.charCodeAt(X));)++X}function j(){var a,b;for(a=X++;Y>X&&(b=W.charCodeAt(X),g(b));)++X;return W.slice(a,X)}function k(){var a,b,c;return a=X,b=j(),c=1===b.length?S.Identifier:h(b)?S.Keyword:"null"===b?S.NullLiteral:"true"===b||"false"===b?S.BooleanLiteral:S.Identifier,{type:c,value:b,range:[a,X]}}function l(){var a,b,c=X,d=W.charCodeAt(X),e=W[X];switch(d){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:return++X,{type:S.Punctuator,value:String.fromCharCode(d),range:[c,X]};default:if(a=W.charCodeAt(X+1),61===a)switch(d){case 37:case 38:case 42:case 43:case 45:case 47:case 60:case 62:case 124:return X+=2,{type:S.Punctuator,value:String.fromCharCode(d)+String.fromCharCode(a),range:[c,X]};case 33:case 61:return X+=2,61===W.charCodeAt(X)&&++X,{type:S.Punctuator,value:W.slice(c,X),range:[c,X]}}}return b=W[X+1],e===b&&"&|".indexOf(e)>=0?(X+=2,{type:S.Punctuator,value:e+b,range:[c,X]}):"<>=!+-*%&|^/".indexOf(e)>=0?(++X,{type:S.Punctuator,value:e,range:[c,X]}):void s({},V.UnexpectedToken,"ILLEGAL")}function m(){var a,d,e;if(e=W[X],b(c(e.charCodeAt(0))||"."===e,"Numeric literal must start with a decimal digit or a decimal point"),d=X,a="","."!==e){for(a=W[X++],e=W[X],"0"===a&&e&&c(e.charCodeAt(0))&&s({},V.UnexpectedToken,"ILLEGAL");c(W.charCodeAt(X));)a+=W[X++];e=W[X]}if("."===e){for(a+=W[X++];c(W.charCodeAt(X));)a+=W[X++];e=W[X]}if("e"===e||"E"===e)if(a+=W[X++],e=W[X],("+"===e||"-"===e)&&(a+=W[X++]),c(W.charCodeAt(X)))for(;c(W.charCodeAt(X));)a+=W[X++];else s({},V.UnexpectedToken,"ILLEGAL");return f(W.charCodeAt(X))&&s({},V.UnexpectedToken,"ILLEGAL"),{type:S.NumericLiteral,value:parseFloat(a),range:[d,X]}}function n(){var a,c,d,f="",g=!1;for(a=W[X],b("'"===a||'"'===a,"String literal must starts with a quote"),c=X,++X;Y>X;){if(d=W[X++],d===a){a="";break}if("\\"===d)if(d=W[X++],d&&e(d.charCodeAt(0)))"\r"===d&&"\n"===W[X]&&++X;else switch(d){case"n":f+="\n";break;case"r":f+="\r";break;case"t":f+="  ";break;case"b":f+="\b";break;case"f":f+="\f";break;case"v":f+="";break;default:f+=d}else{if(e(d.charCodeAt(0)))break;f+=d}}return""!==a&&s({},V.UnexpectedToken,"ILLEGAL"),{type:S.StringLiteral,value:f,octal:g,range:[c,X]}}function o(a){return a.type===S.Identifier||a.type===S.Keyword||a.type===S.BooleanLiteral||a.type===S.NullLiteral}function p(){var a;return i(),X>=Y?{type:S.EOF,range:[X,X]}:(a=W.charCodeAt(X),40===a||41===a||58===a?l():39===a||34===a?n():f(a)?k():46===a?c(W.charCodeAt(X+1))?m():l():c(a)?m():l())}function q(){var a;return a=$,X=a.range[1],$=p(),X=a.range[1],a}function r(){var a;a=X,$=p(),X=a}function s(a,c){var d,e=Array.prototype.slice.call(arguments,2),f=c.replace(/%(\d)/g,function(a,c){return b(c<e.length,"Message reference must be in range"),e[c]});throw d=new Error(f),d.index=X,d.description=f,d}function t(a){s(a,V.UnexpectedToken,a.value)}function u(a){var b=q();(b.type!==S.Punctuator||b.value!==a)&&t(b)}function v(a){return $.type===S.Punctuator&&$.value===a}function w(a){return $.type===S.Keyword&&$.value===a}function x(){var a=[];for(u("[");!v("]");)v(",")?(q(),a.push(null)):(a.push(bb()),v("]")||u(","));return u("]"),Z.createArrayExpression(a)}function y(){var a;return i(),a=q(),a.type===S.StringLiteral||a.type===S.NumericLiteral?Z.createLiteral(a):Z.createIdentifier(a.value)}function z(){var a,b;return a=$,i(),(a.type===S.EOF||a.type===S.Punctuator)&&t(a),b=y(),u(":"),Z.createProperty("init",b,bb())}function A(){var a=[];for(u("{");!v("}");)a.push(z()),v("}")||u(",");return u("}"),Z.createObjectExpression(a)}function B(){var a;return u("("),a=bb(),u(")"),a}function C(){var a,b,c;return v("(")?B():(a=$.type,a===S.Identifier?c=Z.createIdentifier(q().value):a===S.StringLiteral||a===S.NumericLiteral?c=Z.createLiteral(q()):a===S.Keyword?w("this")&&(q(),c=Z.createThisExpression()):a===S.BooleanLiteral?(b=q(),b.value="true"===b.value,c=Z.createLiteral(b)):a===S.NullLiteral?(b=q(),b.value=null,c=Z.createLiteral(b)):v("[")?c=x():v("{")&&(c=A()),c?c:void t(q()))}function D(){var a=[];if(u("("),!v(")"))for(;Y>X&&(a.push(bb()),!v(")"));)u(",");return u(")"),a}function E(){var a;return a=q(),o(a)||t(a),Z.createIdentifier(a.value)}function F(){return u("."),E()}function G(){var a;return u("["),a=bb(),u("]"),a}function H(){var a,b;for(a=C();v(".")||v("[");)v("[")?(b=G(),a=Z.createMemberExpression("[",a,b)):(b=F(),a=Z.createMemberExpression(".",a,b));return a}function I(){var a,b;return $.type!==S.Punctuator&&$.type!==S.Keyword?b=ab():v("+")||v("-")||v("!")?(a=q(),b=I(),b=Z.createUnaryExpression(a.value,b)):w("delete")||w("void")||w("typeof")?s({},V.UnexpectedToken):b=ab(),b}function J(a){var b=0;if(a.type!==S.Punctuator&&a.type!==S.Keyword)return 0;switch(a.value){case"||":b=1;break;case"&&":b=2;break;case"==":case"!=":case"===":case"!==":b=6;break;case"<":case">":case"<=":case">=":case"instanceof":b=7;break;case"in":b=7;break;case"+":case"-":b=9;break;case"*":case"/":case"%":b=11}return b}function K(){var a,b,c,d,e,f,g,h;if(g=I(),b=$,c=J(b),0===c)return g;for(b.prec=c,q(),e=I(),d=[g,b,e];(c=J($))>0;){for(;d.length>2&&c<=d[d.length-2].prec;)e=d.pop(),f=d.pop().value,g=d.pop(),a=Z.createBinaryExpression(f,g,e),d.push(a);b=q(),b.prec=c,d.push(b),a=I(),d.push(a)}for(h=d.length-1,a=d[h];h>1;)a=Z.createBinaryExpression(d[h-1].value,d[h-2],a),h-=2;return a}function L(){var a,b,c;return a=K(),v("?")&&(q(),b=L(),u(":"),c=L(),a=Z.createConditionalExpression(a,b,c)),a}function M(){var a,b;return a=q(),a.type!==S.Identifier&&t(a),b=v("(")?D():[],Z.createFilter(a.value,b)}function N(){for(;v("|");)q(),M()}function O(){i(),r();var a=bb();a&&(","===$.value||"in"==$.value&&a.type===U.Identifier?Q(a):(N(),"as"===$.value?P(a):Z.createTopLevel(a))),$.type!==S.EOF&&t($)}function P(a){q();var b=q().value;Z.createAsExpression(a,b)}function Q(a){var b;","===$.value&&(q(),$.type!==S.Identifier&&t($),b=q().value),q();var c=bb();N(),Z.createInExpression(a.name,b,c)}function R(a,b){return Z=b,W=a,X=0,Y=W.length,$=null,_={labelSet:{}},O()}var S,T,U,V,W,X,Y,Z,$,_;S={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},T={},T[S.BooleanLiteral]="Boolean",T[S.EOF]="<end>",T[S.Identifier]="Identifier",T[S.Keyword]="Keyword",T[S.NullLiteral]="Null",T[S.NumericLiteral]="Numeric",T[S.Punctuator]="Punctuator",T[S.StringLiteral]="String",U={ArrayExpression:"ArrayExpression",BinaryExpression:"BinaryExpression",CallExpression:"CallExpression",ConditionalExpression:"ConditionalExpression",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",Identifier:"Identifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ThisExpression:"ThisExpression",UnaryExpression:"UnaryExpression"},V={UnexpectedToken:"Unexpected token %0",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared"};var ab=H,bb=L;a.esprima={parse:R}}(this),function(a){"use strict";function b(a,b,d,e){var f;try{if(f=c(a),f.scopeIdent&&(d.nodeType!==Node.ELEMENT_NODE||"TEMPLATE"!==d.tagName||"bind"!==b&&"repeat"!==b))throw Error("as and in can only be used within <template bind/repeat>")}catch(g){return void console.error("Invalid expression syntax: "+a,g)}return function(a,b,c){var d=f.getBinding(a,e,c);return f.scopeIdent&&d&&(b.polymerExpressionScopeIdent_=f.scopeIdent,f.indexIdent&&(b.polymerExpressionIndexIdent_=f.indexIdent)),d}}function c(a){var b=s[a];if(!b){var c=new j;esprima.parse(a,c),b=new l(c),s[a]=b}return b}function d(a){this.value=a,this.valueFn_=void 0}function e(a){this.name=a,this.path=Path.get(a)}function f(a,b,c){"["==c&&b instanceof d&&Path.get(b.value).valid&&(c=".",b=new e(b.value)),this.dynamicDeps="function"==typeof a||a.dynamic,this.dynamic="function"==typeof b||b.dynamic||"["==c,this.simplePath=!this.dynamic&&!this.dynamicDeps&&b instanceof e&&(a instanceof f||a instanceof e),this.object=this.simplePath?a:i(a),this.property="."==c?b:i(b)}function g(a,b){this.name=a,this.args=[];for(var c=0;c<b.length;c++)this.args[c]=i(b[c])}function h(){throw Error("Not Implemented")}function i(a){return"function"==typeof a?a:a.valueFn()}function j(){this.expression=null,this.filters=[],this.deps={},this.currentPath=void 0,this.scopeIdent=void 0,this.indexIdent=void 0,this.dynamicDeps=!1}function k(a){this.value_=a}function l(a){if(this.scopeIdent=a.scopeIdent,this.indexIdent=a.indexIdent,!a.expression)throw Error("No expression found.");this.expression=a.expression,i(this.expression),this.filters=a.filters,this.dynamicDeps=a.dynamicDeps}function m(a){return String(a).replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()})}function n(a){return"o"===a[0]&&"n"===a[1]&&"-"===a[2]}function o(a,b){for(;a[w]&&!Object.prototype.hasOwnProperty.call(a,b);)a=a[w];return a}function p(a,b){if(0==b.length)return void 0;if(1==b.length)return o(a,b[0]);for(var c=0;null!=a&&c<b.length-1;c++)a=a[b[c]];return a}function q(a,b,c){var d=b.substring(3);return d=v[d]||d,function(b,e,f){function g(){return"{{ "+a+" }}"}var h,i,j;return j="function"==typeof c.resolveEventHandler?function(d){h=h||c.resolveEventHandler(b,a,e),h(d,d.detail,d.currentTarget),Platform&&"function"==typeof Platform.flush&&Platform.flush()}:function(c){h=h||a.getValueFrom(b),i=i||p(b,a,e),h.apply(i,[c,c.detail,c.currentTarget]),Platform&&"function"==typeof Platform.flush&&Platform.flush()},e.addEventListener(d,j),f?void 0:{open:g,discardChanges:g,close:function(){e.removeEventListener(d,j)}}}}function r(){}var s=Object.create(null);d.prototype={valueFn:function(){if(!this.valueFn_){var a=this.value;this.valueFn_=function(){return a}}return this.valueFn_}},e.prototype={valueFn:function(){if(!this.valueFn_){var a=(this.name,this.path);this.valueFn_=function(b,c){return c&&c.addPath(b,a),a.getValueFrom(b)}}return this.valueFn_},setValue:function(a,b){return 1==this.path.length,a=o(a,this.path[0]),this.path.setValueFrom(a,b)}},f.prototype={get fullPath(){if(!this.fullPath_){var a=this.object instanceof e?this.object.name:this.object.fullPath;this.fullPath_=Path.get(a+"."+this.property.name)}return this.fullPath_},valueFn:function(){if(!this.valueFn_){var a=this.object;if(this.simplePath){var b=this.fullPath;this.valueFn_=function(a,c){return c&&c.addPath(a,b),b.getValueFrom(a)}}else if(this.property instanceof e){var b=Path.get(this.property.name);this.valueFn_=function(c,d){var e=a(c,d);return d&&d.addPath(e,b),b.getValueFrom(e)}}else{var c=this.property;this.valueFn_=function(b,d){var e=a(b,d),f=c(b,d);return d&&d.addPath(e,f),e?e[f]:void 0}}}return this.valueFn_},setValue:function(a,b){if(this.simplePath)return this.fullPath.setValueFrom(a,b),b;var c=this.object(a),d=this.property instanceof e?this.property.name:this.property(a);return c[d]=b}},g.prototype={transform:function(a,b,c,d,e){var f=c[this.name],g=d;if(f)g=void 0;else if(f=g[this.name],!f)return void console.error("Cannot find filter: "+this.name);if(b?f=f.toModel:"function"==typeof f.toDOM&&(f=f.toDOM),"function"!=typeof f)return void console.error("No "+(b?"toModel":"toDOM")+" found on"+this.name);for(var h=[a],j=0;j<this.args.length;j++)h[j+1]=i(this.args[j])(d,e);return f.apply(g,h)}};var t={"+":function(a){return+a},"-":function(a){return-a},"!":function(a){return!a}},u={"+":function(a,b){return a+b},"-":function(a,b){return a-b},"*":function(a,b){return a*b},"/":function(a,b){return a/b},"%":function(a,b){return a%b},"<":function(a,b){return b>a},">":function(a,b){return a>b},"<=":function(a,b){return b>=a},">=":function(a,b){return a>=b},"==":function(a,b){return a==b},"!=":function(a,b){return a!=b},"===":function(a,b){return a===b},"!==":function(a,b){return a!==b},"&&":function(a,b){return a&&b},"||":function(a,b){return a||b}};j.prototype={createUnaryExpression:function(a,b){if(!t[a])throw Error("Disallowed operator: "+a);return b=i(b),function(c,d){return t[a](b(c,d))}},createBinaryExpression:function(a,b,c){if(!u[a])throw Error("Disallowed operator: "+a);return b=i(b),c=i(c),function(d,e){return u[a](b(d,e),c(d,e))}},createConditionalExpression:function(a,b,c){return a=i(a),b=i(b),c=i(c),function(d,e){return a(d,e)?b(d,e):c(d,e)}},createIdentifier:function(a){var b=new e(a);return b.type="Identifier",b},createMemberExpression:function(a,b,c){var d=new f(b,c,a);return d.dynamicDeps&&(this.dynamicDeps=!0),d},createLiteral:function(a){return new d(a.value)},createArrayExpression:function(a){for(var b=0;b<a.length;b++)a[b]=i(a[b]);return function(b,c){for(var d=[],e=0;e<a.length;e++)d.push(a[e](b,c));return d}},createProperty:function(a,b,c){return{key:b instanceof e?b.name:b.value,value:c}},createObjectExpression:function(a){for(var b=0;b<a.length;b++)a[b].value=i(a[b].value);return function(b,c){for(var d={},e=0;e<a.length;e++)d[a[e].key]=a[e].value(b,c);return d}},createFilter:function(a,b){this.filters.push(new g(a,b))},createAsExpression:function(a,b){this.expression=a,this.scopeIdent=b},createInExpression:function(a,b,c){this.expression=c,this.scopeIdent=a,this.indexIdent=b},createTopLevel:function(a){this.expression=a},createThisExpression:h},k.prototype={open:function(){return this.value_},discardChanges:function(){return this.value_},deliver:function(){},close:function(){}},l.prototype={getBinding:function(a,b,c){function d(){if(h)return h=!1,g;i.dynamicDeps&&f.startReset();var c=i.getValue(a,i.dynamicDeps?f:void 0,b);return i.dynamicDeps&&f.finishReset(),c}function e(c){return i.setValue(a,c,b),c}if(c)return this.getValue(a,void 0,b);var f=new CompoundObserver,g=this.getValue(a,f,b),h=!0,i=this;return new ObserverTransform(f,d,e,!0)},getValue:function(a,b,c){for(var d=i(this.expression)(a,b),e=0;e<this.filters.length;e++)d=this.filters[e].transform(d,!1,c,a,b);return d},setValue:function(a,b,c){for(var d=this.filters?this.filters.length:0;d-->0;)b=this.filters[d].transform(b,!0,c,a);return this.expression.setValue?this.expression.setValue(a,b):void 0}};var v={};["webkitAnimationStart","webkitAnimationEnd","webkitTransitionEnd","DOMFocusOut","DOMFocusIn","DOMMouseScroll"].forEach(function(a){v[a.toLowerCase()]=a});var w="@"+Math.random().toString(36).slice(2);r.prototype={styleObject:function(a){var b=[];for(var c in a)b.push(m(c)+": "+a[c]);return b.join("; ")},tokenList:function(a){var b=[];for(var c in a)a[c]&&b.push(c);return b.join(" ")},prepareInstancePositionChanged:function(a){var b=a.polymerExpressionIndexIdent_;if(b)return function(a,c){a.model[b]=c}},prepareBinding:function(a,c,d){var e=Path.get(a);if(n(c))return e.valid?q(e,c,this):void console.error("on-* bindings must be simple path expressions");{if(!e.valid)return b(a,c,d,this);if(1==e.length)return function(a,b,c){if(c)return e.getValueFrom(a);var d=o(a,e[0]);return new PathObserver(d,e)}}},prepareInstanceModel:function(a){var b=a.polymerExpressionScopeIdent_;if(b){var c=a.templateInstance?a.templateInstance.model:a.model,d=a.polymerExpressionIndexIdent_;return function(a){var e=Object.create(c);return e[b]=a,e[d]=void 0,e[w]=c,e}}}},a.PolymerExpressions=r,a.exposeGetExpression&&(a.getExpression_=c),a.PolymerExpressions.prepareEventBinding=q}(this),function(a){function b(){e||(e=!0,a.endOfMicrotask(function(){e=!1,logFlags.data&&console.group("Platform.flush()"),a.performMicrotaskCheckpoint(),logFlags.data&&console.groupEnd()}))}var c=document.createElement("style");
-c.textContent="template {display: none !important;} /* injected by platform.js */";var d=document.querySelector("head");d.insertBefore(c,d.firstChild);var e,f=125;if(window.addEventListener("WebComponentsReady",function(){b(),Observer.hasObjectObserve||(a.flushPoll=setInterval(b,f))}),window.CustomElements&&!CustomElements.useNative){var g=Document.prototype.importNode;Document.prototype.importNode=function(a,b){var c=g.call(this,a,b);return CustomElements.upgradeAll(c),c}}a.flush=b}(window.Platform);
-//# sourceMappingURL=platform.js.map</script>
-    <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
-    
-    
-    
-    
-    
-    
-<!--
- Copyright 2013 The Polymer Authors. All rights reserved.
- Use of this source code is governed by a BSD-style
- license that can be found in the LICENSE file.
--->
-<script>/**
- * @license
- * Copyright (c) 2012-2014 The Polymer Authors. All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- *    * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *    * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-// @version: 0.2.1-c690632
-Polymer={},"function"==typeof window.Polymer&&(Polymer={}),function(a){function b(a,b){return a&&b&&Object.getOwnPropertyNames(b).forEach(function(c){var d=Object.getOwnPropertyDescriptor(b,c);d&&(Object.defineProperty(a,c,d),"function"==typeof d.value&&(d.value.nom=c))}),a}a.extend=b}(Polymer),function(a){function b(a,b,d){return a?a.stop():a=new c(this),a.go(b,d),a}var c=function(a){this.context=a,this.boundComplete=this.complete.bind(this)};c.prototype={go:function(a,b){this.callback=a;var c;b?(c=setTimeout(this.boundComplete,b),this.handle=function(){clearTimeout(c)}):(c=requestAnimationFrame(this.boundComplete),this.handle=function(){cancelAnimationFrame(c)})},stop:function(){this.handle&&(this.handle(),this.handle=null)},complete:function(){this.handle&&(this.stop(),this.callback.call(this.context))}},a.job=b}(Polymer),function(){var a={};HTMLElement.register=function(b,c){a[b]=c},HTMLElement.getPrototypeForTag=function(b){var c=b?a[b]:HTMLElement.prototype;return c||Object.getPrototypeOf(document.createElement(b))};var b=Event.prototype.stopPropagation;Event.prototype.stopPropagation=function(){this.cancelBubble=!0,b.apply(this,arguments)}}(Polymer),function(a){function b(a){var c=b.caller,g=c.nom,h=c._super;if(h||(g||(g=c.nom=e.call(this,c)),g||console.warn("called super() on a method not installed declaratively (has no .nom property)"),h=d(c,g,f(this))),h){var i=h[g];return i._super||d(i,g,h),i.apply(this,a||[])}}function c(a,b,c){for(;a;){if(a[b]!==c&&a[b])return a;a=f(a)}}function d(a,b,d){return a._super=c(d,b,a),a._super&&(a._super[b].nom=b),a._super}function e(a){for(var b=this.__proto__;b&&b!==HTMLElement.prototype;){for(var c,d=Object.getOwnPropertyNames(b),e=0,f=d.length;f>e&&(c=d[e]);e++){var g=Object.getOwnPropertyDescriptor(b,c);if("function"==typeof g.value&&g.value===a)return c}b=b.__proto__}}function f(a){return a.__proto__}a.super=b}(Polymer),function(a){function b(a,b){var d=typeof b;return b instanceof Date&&(d="date"),c[d](a,b)}var c={string:function(a){return a},date:function(a){return new Date(Date.parse(a)||Date.now())},"boolean":function(a){return""===a?!0:"false"===a?!1:!!a},number:function(a){var b=parseFloat(a);return 0===b&&(b=parseInt(a)),isNaN(b)?a:b},object:function(a,b){if(null===b)return a;try{return JSON.parse(a.replace(/'/g,'"'))}catch(c){return a}},"function":function(a,b){return b}};a.deserializeValue=b}(Polymer),function(a){var b=a.extend,c={};c.declaration={},c.instance={},c.publish=function(a,c){for(var d in a)b(c,a[d])},a.api=c}(Polymer),function(a){var b={async:function(a,b,c){Platform.flush(),b=b&&b.length?b:[b];var d=function(){(this[a]||a).apply(this,b)}.bind(this),e=c?setTimeout(d,c):requestAnimationFrame(d);return c?e:~e},cancelAsync:function(a){0>a?cancelAnimationFrame(~a):clearTimeout(a)},fire:function(a,b,c,d,e){var f=c||this,b=b||{},g=new CustomEvent(a,{bubbles:void 0!==d?d:!0,cancelable:void 0!==e?e:!0,detail:b});return f.dispatchEvent(g),g},asyncFire:function(){this.async("fire",arguments)},classFollows:function(a,b,c){b&&b.classList.remove(c),a&&a.classList.add(c)}},c=function(){},d={};b.asyncMethod=b.async,a.api.instance.utils=b,a.nop=c,a.nob=d}(Polymer),function(a){var b=window.logFlags||{},c="on-",d={EVENT_PREFIX:c,addHostListeners:function(){var a=this.eventDelegates;b.events&&Object.keys(a).length>0&&console.log("[%s] addHostListeners:",this.localName,a);var d,e,f=this;for(var g in a)e=c+g,(d=PolymerExpressions.prepareEventBinding(Path.get(a[g]),e,{resolveEventHandler:function(a,b){var c=b.getValueFrom(f);return c?c.bind(f):void 0}}))(this,this,!1)},dispatchMethod:function(a,c,d){if(a){b.events&&console.group("[%s] dispatch [%s]",a.localName,c);var e="function"==typeof c?c:a[c];e&&e[d?"apply":"call"](a,d),b.events&&console.groupEnd(),Platform.flush()}}};a.api.instance.events=d}(Polymer),function(a){var b={copyInstanceAttributes:function(){var a=this._instanceAttributes;for(var b in a)this.hasAttribute(b)||this.setAttribute(b,a[b])},takeAttributes:function(){if(this._publishLC)for(var a,b=0,c=this.attributes,d=c.length;(a=c[b])&&d>b;b++)this.attributeToProperty(a.name,a.value)},attributeToProperty:function(b,c){var b=this.propertyForAttribute(b);if(b){if(c&&c.search(a.bindPattern)>=0)return;var d=this[b],c=this.deserializeValue(c,d);c!==d&&(this[b]=c)}},propertyForAttribute:function(a){var b=this._publishLC&&this._publishLC[a];return b},deserializeValue:function(b,c){return a.deserializeValue(b,c)},serializeValue:function(a,b){return"boolean"===b?a?"":void 0:"object"!==b&&"function"!==b&&void 0!==a?a:void 0},reflectPropertyToAttribute:function(a){var b=typeof this[a],c=this.serializeValue(this[a],b);void 0!==c?this.setAttribute(a,c):"boolean"===b&&this.removeAttribute(a)}};a.api.instance.attributes=b}(Polymer),function(a){function b(a,b,d){c.bind&&console.log(e,inB.localName||"object",inPath,a.localName,b);var f=d.discardChanges();return(null===f||void 0===f)&&d.setValue(a[b]),Observer.defineComputedProperty(a,b,d)}var c=window.logFlags||{},d={observeProperties:function(){var a=this._observeNames,b=this._publishNames;if(a&&a.length||b&&b.length){var c=this._propertyObserver=new CompoundObserver;this.registerObservers([c]);for(var d,e=0,f=a.length;f>e&&(d=a[e]);e++){c.addPath(this,d);var g=Object.getOwnPropertyDescriptor(this.__proto__,d);g&&g.value&&this.observeArrayValue(d,g.value,null)}for(var d,e=0,f=b.length;f>e&&(d=b[e]);e++)this.observe&&void 0!==this.observe[d]||c.addPath(this,d);c.open(this.notifyPropertyChanges,this)}},notifyPropertyChanges:function(a,b,c){var d,e,f={};for(var g in b)d=c[2*g+1],void 0!==this.publish[d]&&this.reflectPropertyToAttribute(d),e=this.observe[d],e&&(this.observeArrayValue(d,a[g],b[g]),f[e]||(f[e]=!0,this.invokeMethod(e,[b[g],a[g],arguments])))},observeArrayValue:function(a,b,d){var e=this.observe[a];if(e&&(Array.isArray(d)&&(c.observe&&console.log("[%s] observeArrayValue: unregister observer [%s]",this.localName,a),this.closeNamedObserver(a+"__array")),Array.isArray(b))){c.observe&&console.log("[%s] observeArrayValue: register observer [%s]",this.localName,a,b);var f=new ArrayObserver(b);f.open(function(a,b){this.invokeMethod(e,[b])},this),this.registerNamedObserver(a+"__array",f)}},bindProperty:function(a,c){return b(this,a,c)},invokeMethod:function(a,b){var c=this[a]||a;"function"==typeof c&&c.apply(this,b)},registerObservers:function(a){this._observers.push(a)},closeObservers:function(){for(var a=0,b=this._observers.length;b>a;a++)this.closeObserverArray(this._observers[a]);this._observers=[]},closeObserverArray:function(a){for(var b,c=0,d=a.length;d>c;c++)b=a[c],b&&b.close&&b.close()},registerNamedObserver:function(a,b){var c=this._namedObservers||(this._namedObservers={});c[a]=b},closeNamedObserver:function(a){var b=this._namedObservers;return b&&b[a]?(b[a].close(),b[a]=null,!0):void 0},closeNamedObservers:function(){if(this._namedObservers){for(var a,b,c=Object.keys(this._namedObservers),d=0,e=c.length;e>d&&(a=c[d]);d++)b=this._namedObservers[a],b.close();this._namedObservers={}}}},e="[%s]: bindProperties: [%s] to [%s].[%s]";a.api.instance.properties=d}(Polymer),function(a){function b(a){for(;a.parentNode;){if(a.lightDomController)return a;a=a.parentNode}return a.host}var c=window.logFlags||0,d=(a.api.instance.events,new PolymerExpressions);d.resolveEventHandler=function(a,c,d){var e=b(d);if(e){var f=c.getValueFrom(e);if(f)return f.bind(e)}};var e={syntax:d,instanceTemplate:function(a){var b=a.createInstance(this,this.syntax);return this.registerObservers(b.bindings_),b},bind:function(a,b){this._elementPrepared||this.prepareElement();var c=this.propertyForAttribute(a);if(c){var d=this.bindProperty(c,b);return this.reflectPropertyToAttribute(c),Platform.enableBindingsReflection&&(d.path=b.path_,this.bindings_=this.bindings_||{},this.bindings_[a]=d),d}return this.mixinSuper(arguments)},asyncUnbindAll:function(){this._unbound||(c.unbind&&console.log("[%s] asyncUnbindAll",this.localName),this._unbindAllJob=this.job(this._unbindAllJob,this.unbindAll,0))},unbindAll:function(){this._unbound||(this.closeObservers(),this.closeNamedObservers(),this._unbound=!0)},cancelUnbindAll:function(){return this._unbound?void(c.unbind&&console.warn("[%s] already unbound, cannot cancel unbindAll",this.localName)):(c.unbind&&console.log("[%s] cancelUnbindAll",this.localName),void(this._unbindAllJob&&(this._unbindAllJob=this._unbindAllJob.stop())))}},f=/\{\{([^{}]*)}}/;a.bindPattern=f,a.api.instance.mdv=e}(Polymer),function(a){function b(a){return a.hasOwnProperty("PolymerBase")}function c(){}var d=0,e={PolymerBase:!0,job:Polymer.job,"super":Polymer.super,created:function(){},ready:function(){},createdCallback:function(){this.created(),(this.ownerDocument.defaultView||this.alwaysPrepare||d>0)&&this.prepareElement()},prepareElement:function(){this._elementPrepared=!0,this.shadowRoots={},this._observers=[],this.observeProperties(),this.copyInstanceAttributes(),this.takeAttributes(),this.addHostListeners(),d++,this.parseDeclarations(this.__proto__),d--,this.removeAttribute("unresolved"),this.ready()},attachedCallback:function(){this._elementPrepared||this.prepareElement(),this.cancelUnbindAll(!0),this.attached&&this.attached(),this.enteredView&&this.enteredView(),this.hasBeenAttached||(this.hasBeenAttached=!0,this.domReady&&this.async("domReady"))},detachedCallback:function(){this.preventDispose||this.asyncUnbindAll(),this.detached&&this.detached(),this.leftView&&this.leftView()},enteredViewCallback:function(){this.attachedCallback()},leftViewCallback:function(){this.detachedCallback()},enteredDocumentCallback:function(){this.attachedCallback()},leftDocumentCallback:function(){this.detachedCallback()},parseDeclarations:function(a){a&&a.element&&(this.parseDeclarations(a.__proto__),a.parseDeclaration.call(this,a.element))},parseDeclaration:function(a){var b=this.fetchTemplate(a);if(b){var c=this.shadowFromTemplate(b);this.shadowRoots[a.name]=c}},fetchTemplate:function(a){return a.querySelector("template")},shadowFromTemplate:function(a){if(a){var b=this.createShadowRoot();b.resetStyleInheritance=this.resetStyleInheritance;var c=this.instanceTemplate(a);return b.appendChild(c),this.shadowRootReady(b,a),b}},lightFromTemplate:function(a){if(a){this.lightDomController=!0;var b=this.instanceTemplate(a);return this.appendChild(b),this.shadowRootReady(this,a),b}},shadowRootReady:function(a){this.marshalNodeReferences(a),PointerGestures.register(a)},marshalNodeReferences:function(a){var b=this.$=this.$||{};if(a)for(var c,d=a.querySelectorAll("[id]"),e=0,f=d.length;f>e&&(c=d[e]);e++)b[c.id]=c},attributeChangedCallback:function(a){"class"!==a&&"style"!==a&&this.attributeToProperty(a,this.getAttribute(a)),this.attributeChanged&&this.attributeChanged.apply(this,arguments)},onMutation:function(a,b){var c=new MutationObserver(function(a){b.call(this,c,a),c.disconnect()}.bind(this));c.observe(a,{childList:!0,subtree:!0})}};c.prototype=e,e.constructor=c,a.Base=c,a.isBase=b,a.api.instance.base=e}(Polymer),function(a){function b(a){return a.__proto__}function c(a,b){var c="",d=!1;b&&(c=b.localName,d=b.hasAttribute("is"));var e=Platform.ShadowCSS.makeScopeSelector(c,d);return Platform.ShadowCSS.shimCssText(a,e)}var d=(window.logFlags||{},"element"),e="controller",f={STYLE_SCOPE_ATTRIBUTE:d,installControllerStyles:function(){var a=this.findStyleScope();if(a&&!this.scopeHasNamedStyle(a,this.localName)){for(var c=b(this),d="";c&&c.element;)d+=c.element.cssTextForScope(e),c=b(c);d&&this.installScopeCssText(d,a)}},installScopeStyle:function(a,b,c){var c=this.findStyleScope(c),b=b||"";if(c&&!this.scopeHasNamedStyle(c,this.localName+b)){var d="";if(a instanceof Array)for(var e,f=0,g=a.length;g>f&&(e=a[f]);f++)d+=e.textContent+"\n\n";else d=a.textContent;this.installScopeCssText(d,c,b)}},installScopeCssText:function(a,b,d){if(b=b||this.findStyleScope(),d=d||"",b){window.ShadowDOMPolyfill&&(a=c(a,b.host));var f=this.element.cssTextToScopeStyle(a,e);Polymer.applyStyleToScope(f,b),b._scopeStyles[this.localName+d]=!0}},findStyleScope:function(a){for(var b=a||this;b.parentNode;)b=b.parentNode;return b},scopeHasNamedStyle:function(a,b){return a._scopeStyles=a._scopeStyles||{},a._scopeStyles[b]}};a.api.instance.styles=f}(Polymer),function(a){function b(a,b){if(f[a])throw"Already registered (Polymer) prototype for element "+a;e(a,b),d(a)}function c(a,b){h[a]=b}function d(a){h[a]&&(h[a].registerWhenReady(),delete h[a])}function e(a,b){return i[a]=b||{}}function f(a){return i[a]}var g=a.extend,h=(a.api,{}),i={};a.getRegisteredPrototype=f,a.waitingForPrototype=c,window.Polymer=b,g(Polymer,a);var j=Platform.deliverDeclarations();if(j)for(var k,l=0,m=j.length;m>l&&(k=j[l]);l++)b.apply(null,k)}(Polymer),function(a){var b={resolveElementPaths:function(a){Platform.urlResolver.resolveDom(a)},addResolvePathApi:function(){var a=this.getAttribute("assetpath")||"",b=new URL(a,this.ownerDocument.baseURI);this.prototype.resolvePath=function(a,c){var d=new URL(a,c||b);return d.href}}};a.api.declaration.path=b}(Polymer),function(a){function b(a,b){var c=new URL(a.getAttribute("href"),b).href;return"@import '"+c+"';"}function c(a,b){if(a){b===document&&(b=document.head),window.ShadowDOMPolyfill&&(b=document.head);var c=d(a.textContent),e=a.getAttribute(h);e&&c.setAttribute(h,e),b.appendChild(c)}}function d(a,b){b=b||document,b=b.createElement?b:b.ownerDocument;var c=b.createElement("style");return c.textContent=a,c}function e(a){return a&&a.__resource||""}function f(a,b){return p?p.call(a,b):void 0}var g=(window.logFlags||{},a.api.instance.styles),h=g.STYLE_SCOPE_ATTRIBUTE,i="style",j="@import",k="link[rel=stylesheet]",l="global",m="polymer-scope",n={loadStyles:function(a){var b=this.templateContent();b&&this.convertSheetsToStyles(b);var c=this.findLoadableStyles(b);c.length?Platform.styleResolver.loadStyles(c,a):a&&a()},convertSheetsToStyles:function(a){for(var c,e,f=a.querySelectorAll(k),g=0,h=f.length;h>g&&(c=f[g]);g++)e=d(b(c,this.ownerDocument.baseURI),this.ownerDocument),this.copySheetAttributes(e,c),c.parentNode.replaceChild(e,c)},copySheetAttributes:function(a,b){for(var c,d=0,e=b.attributes,f=e.length;(c=e[d])&&f>d;d++)"rel"!==c.name&&"href"!==c.name&&a.setAttribute(c.name,c.value)},findLoadableStyles:function(a){var b=[];if(a)for(var c,d=a.querySelectorAll(i),e=0,f=d.length;f>e&&(c=d[e]);e++)c.textContent.match(j)&&b.push(c);return b},installSheets:function(){this.cacheSheets(),this.cacheStyles(),this.installLocalSheets(),this.installGlobalStyles()},cacheSheets:function(){this.sheets=this.findNodes(k),this.sheets.forEach(function(a){a.parentNode&&a.parentNode.removeChild(a)})},cacheStyles:function(){this.styles=this.findNodes(i+"["+m+"]"),this.styles.forEach(function(a){a.parentNode&&a.parentNode.removeChild(a)})},installLocalSheets:function(){var a=this.sheets.filter(function(a){return!a.hasAttribute(m)}),b=this.templateContent();if(b){var c="";if(a.forEach(function(a){c+=e(a)+"\n"}),c){var f=d(c,this.ownerDocument);b.insertBefore(f,b.firstChild)}}},findNodes:function(a,b){var c=this.querySelectorAll(a).array(),d=this.templateContent();if(d){var e=d.querySelectorAll(a).array();c=c.concat(e)}return b?c.filter(b):c},templateContent:function(){var a=this.querySelector("template");return a&&templateContent(a)},installGlobalStyles:function(){var a=this.styleForScope(l);c(a,document.head)},cssTextForScope:function(a){var b="",c="["+m+"="+a+"]",d=function(a){return f(a,c)},g=this.sheets.filter(d);g.forEach(function(a){b+=e(a)+"\n\n"});var h=this.styles.filter(d);return h.forEach(function(a){b+=a.textContent+"\n\n"}),b},styleForScope:function(a){var b=this.cssTextForScope(a);return this.cssTextToScopeStyle(b,a)},cssTextToScopeStyle:function(a,b){if(a){var c=d(a);return c.setAttribute(h,this.getAttribute("name")+"-"+b),c}}},o=HTMLElement.prototype,p=o.matches||o.matchesSelector||o.webkitMatchesSelector||o.mozMatchesSelector;a.api.declaration.styles=n,a.applyStyleToScope=c}(Polymer),function(a){var b=(window.logFlags||{},a.api.instance.events),c=b.EVENT_PREFIX,d={parseHostEvents:function(){var a=this.prototype.eventDelegates;this.addAttributeDelegates(a)},addAttributeDelegates:function(a){for(var b,c=0;b=this.attributes[c];c++)this.hasEventPrefix(b.name)&&(a[this.removeEventPrefix(b.name)]=b.value.replace("{{","").replace("}}","").trim())},hasEventPrefix:function(a){return a&&"o"===a[0]&&"n"===a[1]&&"-"===a[2]},removeEventPrefix:function(a){return a.slice(e)}},e=c.length;a.api.declaration.events=d}(Polymer),function(a){var b={inferObservers:function(a){var b,c=a.observe;for(var d in a)"Changed"===d.slice(-7)&&(c||(c=a.observe={}),b=d.slice(0,-7),c[b]=c[b]||d)},explodeObservers:function(a){var b=a.observe;if(b){var c={};for(var d in b)for(var e,f=d.split(" "),g=0;e=f[g];g++)c[e]=b[d];a.observe=c}},optimizePropertyMaps:function(a){if(a.observe){var b=a._observeNames=[];for(var c in a.observe)for(var d,e=c.split(" "),f=0;d=e[f];f++)b.push(d)}if(a.publish){var b=a._publishNames=[];for(var c in a.publish)b.push(c)}},publishProperties:function(a,b){var c=a.publish;c&&(this.requireProperties(c,a,b),a._publishLC=this.lowerCaseMap(c))},requireProperties:function(a,b,c){for(var d in a)void 0===b[d]&&void 0===c[d]&&(b[d]=a[d])},lowerCaseMap:function(a){var b={};for(var c in a)b[c.toLowerCase()]=c;return b}};a.api.declaration.properties=b}(Polymer),function(a){var b="attributes",c=/\s|,/,d={inheritAttributesObjects:function(a){this.inheritObject(a,"publishLC"),this.inheritObject(a,"_instanceAttributes")},publishAttributes:function(a,d){var e=this.getAttribute(b);if(e)for(var f,g=a.publish||(a.publish={}),h=e.split(c),i=0,j=h.length;j>i;i++)f=h[i].trim(),f&&void 0===g[f]&&void 0===d[f]&&(g[f]=null)},accumulateInstanceAttributes:function(){for(var a,b=this.prototype._instanceAttributes,c=this.attributes,d=0,e=c.length;e>d&&(a=c[d]);d++)this.isInstanceAttribute(a.name)&&(b[a.name]=a.value)},isInstanceAttribute:function(a){return!this.blackList[a]&&"on-"!==a.slice(0,3)},blackList:{name:1,"extends":1,constructor:1,noscript:1,assetpath:1,"cache-csstext":1}};d.blackList[b]=1,a.api.declaration.attributes=d}(Polymer),function(a){function b(a){if(!Object.__proto__){var b=Object.getPrototypeOf(a);a.__proto__=b,d(b)&&(b.__proto__=Object.getPrototypeOf(b))}}var c=a.api,d=a.isBase,e=a.extend,f={register:function(a,b){this.buildPrototype(a,b),this.registerPrototype(a,b),this.publishConstructor()},buildPrototype:function(b,c){var d=a.getRegisteredPrototype(b),e=this.generateBasePrototype(c);this.desugarBeforeChaining(d,e),this.prototype=this.chainPrototypes(d,e),this.desugarAfterChaining(b,c)},desugarBeforeChaining:function(a,b){a.element=this,this.publishAttributes(a,b),this.publishProperties(a,b),this.inferObservers(a),this.explodeObservers(a)},chainPrototypes:function(a,c){this.inheritMetaData(a,c);var d=this.chainObject(a,c);return b(d),d},inheritMetaData:function(a,b){this.inheritObject("observe",a,b),this.inheritObject("publish",a,b),this.inheritObject("_publishLC",a,b),this.inheritObject("_instanceAttributes",a,b),this.inheritObject("eventDelegates",a,b)},desugarAfterChaining:function(a,b){this.optimizePropertyMaps(this.prototype),this.installSheets(),this.resolveElementPaths(this),this.accumulateInstanceAttributes(),this.parseHostEvents(),this.addResolvePathApi(),window.ShadowDOMPolyfill&&Platform.ShadowCSS.shimStyling(this.templateContent(),a,b),this.prototype.registerCallback&&this.prototype.registerCallback(this)},publishConstructor:function(){var a=this.getAttribute("constructor");a&&(window[a]=this.ctor)},generateBasePrototype:function(a){var b=this.findBasePrototype(a);if(!b){var b=HTMLElement.getPrototypeForTag(a);b=this.ensureBaseApi(b),g[a]=b}return b},findBasePrototype:function(a){return g[a]},ensureBaseApi:function(a){if(a.PolymerBase)return a;var b=Object.create(a);return c.publish(c.instance,b),this.mixinMethod(b,a,c.instance.mdv,"bind"),b},mixinMethod:function(a,b,c,d){var e=function(a){return b[d].apply(this,a)};a[d]=function(){return this.mixinSuper=e,c[d].apply(this,arguments)}},inheritObject:function(a,b,c){var d=b[a]||{};b[a]=this.chainObject(d,c[a])},registerPrototype:function(a,b){var c={prototype:this.prototype},d=this.findTypeExtension(b);d&&(c.extends=d),HTMLElement.register(a,this.prototype),this.ctor=document.registerElement(a,c)},findTypeExtension:function(a){if(a&&a.indexOf("-")<0)return a;var b=this.findBasePrototype(a);return b.element?this.findTypeExtension(b.element.extends):void 0}},g={};f.chainObject=Object.__proto__?function(a,b){return a&&b&&a!==b&&(a.__proto__=b),a}:function(a,b){if(a&&b&&a!==b){var c=Object.create(b);a=e(c,a)}return a},c.declaration.prototype=f}(Polymer),function(a){function b(a){return document.contains(a)?g:f}function c(){return f.length?f[0]:g[0]}function d(a){e.waitToReady=!0,CustomElements.ready=!1,HTMLImports.whenImportsReady(function(){e.addReadyCallback(a),e.waitToReady=!1,e.check()})}var e={wait:function(a,b,c){return-1===this.indexOf(a)&&(this.add(a),a.__check=b,a.__go=c),0!==this.indexOf(a)},add:function(a){b(a).push(a)},indexOf:function(a){var c=b(a).indexOf(a);return c>=0&&document.contains(a)&&(c+=HTMLImports.useNative||HTMLImports.ready?f.length:1e9),c},go:function(a){var b=this.remove(a);b&&(b.__go.call(b),b.__check=b.__go=null,this.check())},remove:function(a){var c=this.indexOf(a);if(0===c)return b(a).shift()},check:function(){var a=this.nextElement();return a&&a.__check.call(a),this.canReady()?(this.ready(),!0):void 0},nextElement:function(){return c()},canReady:function(){return!this.waitToReady&&this.isEmpty()},isEmpty:function(){return!f.length&&!g.length},ready:function(){if(CustomElements.ready===!1&&(CustomElements.upgradeDocumentTree(document),CustomElements.ready=!0),h)for(var a;h.length;)(a=h.shift())()},addReadyCallback:function(a){a&&h.push(a)},waitToReady:!0},f=[],g=[],h=[];document.addEventListener("WebComponentsReady",function(){CustomElements.ready=!1}),a.queue=e,a.whenPolymerReady=d}(Polymer),function(a){function b(a,b){a?(document.head.appendChild(a),d(b)):b&&b()}function c(a,c){if(a&&a.length){for(var d,e,f=document.createDocumentFragment(),g=0,h=a.length;h>g&&(d=a[g]);g++)e=document.createElement("link"),e.rel="import",e.href=d,f.appendChild(e);b(f,c)}else c&&c()}var d=a.whenPolymerReady;a.import=c,a.importElements=b}(Polymer),function(a){function b(a){return Boolean(HTMLElement.getPrototypeForTag(a))}function c(a){return a&&a.indexOf("-")>=0}var d=a.extend,e=a.api,f=a.queue,g=a.whenPolymerReady,h=a.getRegisteredPrototype,i=a.waitingForPrototype,j=d(Object.create(HTMLElement.prototype),{createdCallback:function(){this.getAttribute("name")&&this.init()},init:function(){this.name=this.getAttribute("name"),this.extends=this.getAttribute("extends"),this.loadResources(),this.registerWhenReady()},registerWhenReady:function(){this.registered||this.waitingForPrototype(this.name)||this.waitingForQueue()||this.waitingForResources()||f.go(this)},_register:function(){c(this.extends)&&!b(this.extends)&&console.warn("%s is attempting to extend %s, an unregistered element or one that was not registered with Polymer.",this.name,this.extends),this.register(this.name,this.extends),this.registered=!0},waitingForPrototype:function(a){return h(a)?void 0:(i(a,this),this.handleNoScript(a),!0)},handleNoScript:function(a){if(this.hasAttribute("noscript")&&!this.noscript)if(this.noscript=!0,window.CustomElements&&!CustomElements.useNative)Polymer(a);else{var b=document.createElement("script");b.textContent="Polymer('"+a+"');",this.appendChild(b)}},waitingForResources:function(){return this._needsResources},waitingForQueue:function(){return f.wait(this,this.registerWhenReady,this._register)},loadResources:function(){this._needsResources=!0,this.loadStyles(function(){this._needsResources=!1,this.registerWhenReady()}.bind(this))}});e.publish(e.declaration,j),a.getRegisteredPrototype=h,g(function(){document.body.removeAttribute("unresolved"),document.dispatchEvent(new CustomEvent("polymer-ready",{bubbles:!0}))}),document.registerElement("polymer-element",{prototype:j})}(Polymer);
-//# sourceMappingURL=polymer.js.map</script>
-<!-- <link rel="import" href="../polymer-dev/polymer.html"> -->
-<!DOCTYPE html>
-
-<script>"use strict";
-
-(function(exports) {
-
-function sign(number) {
-    if (number < 0)
-        return -1;
-    if (number > 0)
-        return 1;
-    return 0;
-}
-
-function Animator(delegate) {
-    this.delegate = delegate;
-    this.startTimeStamp = 0;
-    this.request_ = null;
-};
-
-Animator.prototype.scheduleAnimation = function() {
-    if (this.request_)
-        return;
-    this.request_ = requestAnimationFrame(this.onAnimation_.bind(this));
-};
-
-Animator.prototype.startAnimation = function() {
-    this.startTimeStamp = 0;
-    this.scheduleAnimation();
-};
-
-Animator.prototype.stopAnimation = function() {
-    cancelAnimationFrame(this.request_);
-    this.startTimeStamp = 0;
-    this.request_ = null;
-};
-
-Animator.prototype.onAnimation_ = function(timeStamp) {
-    this.request_ = null;
-    if (!this.startTimeStamp)
-        this.startTimeStamp = timeStamp;
-    if (this.delegate.onAnimation(timeStamp))
-        this.scheduleAnimation();
-};
-
-function VelocityTracker() {
-    this.recentTouchMoves_ = [];
-    this.velocityX = 0;
-    this.velocityY = 0;
-}
-
-VelocityTracker.kTimeWindow = 50;
-
-VelocityTracker.prototype.pruneHistory_ = function(timeStamp) {
-    for (var i = 0; i < this.recentTouchMoves_.length; ++i) {
-        if (this.recentTouchMoves_[i].timeStamp > timeStamp - VelocityTracker.kTimeWindow) {
-            this.recentTouchMoves_ = this.recentTouchMoves_.slice(i);
-            return;
-        }
-    }
-    // All touchmoves are old.
-    this.recentTouchMoves_ = [];
-};
-
-VelocityTracker.prototype.update_ = function(e) {
-    this.pruneHistory_(e.timeStamp);
-    this.recentTouchMoves_.push(e);
-
-    var oldestTouchMove = this.recentTouchMoves_[0];
-
-    var deltaX = e.changedTouches[0].clientX - oldestTouchMove.changedTouches[0].clientX;
-    var deltaY = e.changedTouches[0].clientY - oldestTouchMove.changedTouches[0].clientY;
-    var deltaT = e.timeStamp - oldestTouchMove.timeStamp;
-
-    if (deltaT > 0) {
-        this.velocityX = deltaX / deltaT;
-        this.velocityY = deltaY / deltaT;
-    } else {
-        this.velocityX = 0;
-        this.velocityY = 0;
-    }
-};
-
-VelocityTracker.prototype.onTouchStart = function(e) {
-    this.recentTouchMoves_.push(e);
-    this.velocityX = 0;
-    this.velocityY = 0;
-};
-
-VelocityTracker.prototype.onTouchMove = function(e) {
-    this.update_(e);
-};
-
-VelocityTracker.prototype.onTouchEnd = function(e) {
-    this.update_(e);
-    this.recentTouchMoves_ = [];
-};
-
-function LinearTimingFunction() {
-};
-
-LinearTimingFunction.prototype.scaleTime = function(fraction) {
-  return fraction;
-};
-
-function CubicBezierTimingFunction(spec) {
-  this.map = [];
-  for (var ii = 0; ii <= 100; ii += 1) {
-    var i = ii / 100;
-    this.map.push([
-      3 * i * (1 - i) * (1 - i) * spec[0] +
-          3 * i * i * (1 - i) * spec[2] + i * i * i,
-      3 * i * (1 - i) * (1 - i) * spec[1] +
-          3 * i * i * (1 - i) * spec[3] + i * i * i
-    ]);
-  }
-};
-
-CubicBezierTimingFunction.prototype.scaleTime = function(fraction) {
-  var fst = 0;
-  while (fst !== 100 && fraction > this.map[fst][0]) {
-    fst += 1;
-  }
-  if (fraction === this.map[fst][0] || fst === 0) {
-    return this.map[fst][1];
-  }
-  var yDiff = this.map[fst][1] - this.map[fst - 1][1];
-  var xDiff = this.map[fst][0] - this.map[fst - 1][0];
-  var p = (fraction - this.map[fst - 1][0]) / xDiff;
-  return this.map[fst - 1][1] + p * yDiff;
-};
-
-var presetTimingFunctions = {
-  'linear': new LinearTimingFunction(),
-  'ease': new CubicBezierTimingFunction([0.25, 0.1, 0.25, 1.0]),
-  'ease-in': new CubicBezierTimingFunction([0.42, 0, 1.0, 1.0]),
-  'ease-out': new CubicBezierTimingFunction([0, 0, 0.58, 1.0]),
-  'ease-in-out': new CubicBezierTimingFunction([0.42, 0, 0.58, 1.0]),
-};
-
-function DrawerController(options) {
-    this.velocityTracker = new VelocityTracker();
-    this.animator = new Animator(this);
-
-    this.target = options.target;
-    this.left = options.left;
-    this.right = options.right;
-    this.position = options.position;
-
-    this.width = this.right - this.left;
-    this.curve = presetTimingFunctions[options.curve || 'linear'];
-
-    this.willOpenCallback = options.willOpen;
-    this.didCloseCallback = options.didClose;
-    this.animateCallback = options.onAnimate;
-
-    this.state = DrawerController.kClosed;
-
-    this.defaultAnimationSpeed = (this.right - this.left) / DrawerController.kBaseSettleDurationMS;
-
-    this.onTouchMove = this.onTouchMove.bind(this);
-    this.onTouchEnd = this.onTouchEnd.bind(this);
-
-    this.target.addEventListener('touchstart', this.onTouchStart.bind(this));
-}
-
-DrawerController.kOpened = 'opened';
-DrawerController.kClosed = 'closed';
-DrawerController.kOpening = 'opening';
-DrawerController.kClosing = 'closing';
-DrawerController.kDragging = 'dragging';
-DrawerController.kFlinging = 'flinging';
-
-DrawerController.kBaseSettleDurationMS = 246;
-DrawerController.kMaxSettleDurationMS = 600;
-
-DrawerController.kMinFlingVelocity = 0.4;  // Matches Android framework.
-DrawerController.kTouchSlop = 5;  // Matches Android framework.
-DrawerController.kTouchSlopSquare = DrawerController.kTouchSlop * DrawerController.kTouchSlop;
-
-DrawerController.prototype.restrictToCurrent = function(offset) {
-    return Math.max(this.left, Math.min(this.position, offset));
-};
-
-DrawerController.prototype.restrictToBounds = function(offset) {
-    return Math.max(this.left, Math.min(this.right, offset));
-};
-
-DrawerController.prototype.onTouchStart = function(e) {
-    this.velocityTracker.onTouchStart(e);
-
-    var touchX = e.changedTouches[0].clientX;
-    var touchY = e.changedTouches[0].clientY;
-
-    if (this.state != DrawerController.kOpened) {
-        if (touchX != this.restrictToCurrent(touchX))
-            return;
-        this.state = DrawerController.kDragging;
-    }
-
-    this.animator.stopAnimation();
-    this.target.addEventListener('touchmove', this.onTouchMove);
-    this.target.addEventListener('touchend', this.onTouchEnd);
-    // TODO(abarth): Handle touchcancel.
-
-    this.startX = touchX;
-    this.startY = touchY;
-    this.startPosition = this.position;
-    this.touchBaseX = Math.min(touchX, this.startPosition);
-};
-
-DrawerController.prototype.onTouchMove = function(e) {
-    this.velocityTracker.onTouchMove(e);
-
-    if (this.state == DrawerController.kOpened) {
-        var deltaX = e.changedTouches[0].clientX - this.startX;
-        var deltaY = e.changedTouches[0].clientY - this.startY;
-
-        if (deltaX * deltaX + deltaY * deltaY < DrawerController.kTouchSlopSquare) {
-            e.preventDefault();
-            return;
-        }
-
-        if (Math.abs(deltaY) > Math.abs(deltaX)) {
-            this.target.removeEventListener('touchmove', this.onTouchMove);
-            this.target.removeEventListener('touchend', this.onTouchEnd);
-            return;
-        }
-
-        this.state = DrawerController.kDragging;
-    }
-
-    e.preventDefault();
-    var touchDeltaX = e.changedTouches[0].clientX - this.touchBaseX;
-    this.position = this.restrictToBounds(this.startPosition + touchDeltaX);
-    this.animator.scheduleAnimation();
-};
-
-DrawerController.prototype.onTouchEnd = function(e) {
-    this.velocityTracker.onTouchEnd(e);
-    this.target.removeEventListener('touchmove', this.onTouchMove);
-    this.target.removeEventListener('touchend', this.onTouchEnd);
-
-    var velocityX = this.velocityTracker.velocityX;
-    if (Math.abs(velocityX) > DrawerController.kMinFlingVelocity) {
-        this.fling(velocityX);
-    } else if (this.isOpen()) {
-        this.open();
-    } else {
-        this.close();
-    }
-};
-
-DrawerController.prototype.openFraction = function() {
-    var width = this.right - this.left;
-    var offset = this.position - this.left;
-    return offset / width;
-};
-
-DrawerController.prototype.isOpen = function() {
-    return this.openFraction() >= 0.5;
-};
-
-DrawerController.prototype.isOpening = function() {
-    return this.state == DrawerController.kOpening ||
-        (this.state == DrawerController.kFlinging && this.animationVelocityX > 0);
-}
-
-DrawerController.prototype.isClosing = function() {
-    return this.state == DrawerController.kClosing ||
-        (this.state == DrawerController.kFlinging && this.animationVelocityX < 0);
-}
-
-DrawerController.prototype.toggle = function() {
-    if (this.isOpen())
-        this.close();
-    else
-        this.open();
-};
-
-DrawerController.prototype.open = function() {
-    if (!this.position)
-        this.willOpenCallback.call(this.target);
-
-    this.animator.stopAnimation();
-    this.animationDuration = 400;
-    this.state = DrawerController.kOpening;
-    this.animate();
-};
-
-DrawerController.prototype.close = function() {
-    this.animator.stopAnimation();
-    this.animationDuration = 400;
-    this.state = DrawerController.kClosing;
-    this.animate();
-};
-
-DrawerController.prototype.fling = function(velocityX) {
-    this.animator.stopAnimation();
-    this.animationVelocityX = velocityX;
-    this.state = DrawerController.kFlinging;
-    this.animate();
-};
-
-DrawerController.prototype.animate = function() {
-    this.positionAnimationBase = this.position;
-    this.animator.startAnimation();
-};
-
-DrawerController.prototype.targetPosition = function(deltaT) {
-    if (this.state == DrawerController.kFlinging)
-        return this.positionAnimationBase + this.animationVelocityX * deltaT;
-    var targetFraction = this.curve.scaleTime(deltaT / this.animationDuration);
-    var animationWidth = this.state == DrawerController.kOpening ?
-      this.width - this.positionAnimationBase : -this.positionAnimationBase;
-    return this.positionAnimationBase + targetFraction * animationWidth;
-};
-
-DrawerController.prototype.onAnimation = function(timeStamp) {
-    if (this.state == DrawerController.kDragging) {
-        this.animateCallback.call(this.target, this.position);
-        return false;
-    }
-
-    var deltaT = timeStamp - this.animator.startTimeStamp;
-    var targetPosition = this.targetPosition(deltaT);
-    this.position = this.restrictToBounds(targetPosition);
-
-    this.animateCallback.call(this.target, this.position);
-
-    if (targetPosition <= this.left && this.isClosing()) {
-        this.state = DrawerController.kClosed;
-        this.didCloseCallback.call(this.target);
-        return false;
-    }
-    if (targetPosition >= this.right && this.isOpening()) {
-        this.state = DrawerController.kOpened;
-        return false;
-    }
-
-    return true;
-};
-
-
-function DismissController(options) {
-    this.velocityTracker = new VelocityTracker();
-    this.animator = new Animator(this);
-
-    this.target = options.target;
-    this.moveCallback = options.onMove;
-    this.dismissCallback = options.onDismiss;
-    this.curve = presetTimingFunctions[options.curve || 'linear'];
-
-    this.position = 0;
-    this.width = 0;
-    this.state = DismissController.kInitial;
-
-    this.target.addEventListener('touchstart', this.onTouchStart.bind(this));
-    this.target.addEventListener('touchmove', this.onTouchMove.bind(this));
-    this.target.addEventListener('touchend', this.onTouchEnd.bind(this));
-    // TODO(abarth): Handle touchcancel.
-}
-
-DismissController.kInitial = 'initial';
-DismissController.kDragging = 'dragging';
-DismissController.kSettling = 'settling';
-DismissController.kFlinging = 'flinging';
-DismissController.kDismissed = 'dismissed';
-
-DismissController.prototype.onTouchStart = function(e) {
-    this.velocityTracker.onTouchStart(e);
-
-    this.state = DismissController.kInitial;
-    this.animator.stopAnimation();
-
-    this.startX = e.changedTouches[0].clientX;
-    this.startY = e.changedTouches[0].clientY;
-    this.startPosition = this.position;
-};
-
-DismissController.prototype.onTouchMove = function(e) {
-    this.velocityTracker.onTouchMove(e);
-
-    if (this.state == DismissController.kInitial) {
-        var deltaX = e.changedTouches[0].clientX - this.startX;
-        var deltaY = e.changedTouches[0].clientY - this.startY;
-
-        if (deltaX * deltaX + deltaY * deltaY < DrawerController.kTouchSlopSquare) {
-            e.preventDefault();
-            return;
-        }
-
-        if (Math.abs(deltaY) > Math.abs(deltaX)) {
-            this.settleToClosestPosition();
-            return;
-        }
-
-        this.state = DismissController.kDragging;
-        this.width = this.target.offsetWidth;
-    }
-
-    if (this.state == DismissController.kDragging) {
-        e.preventDefault();
-        var deltaX = e.changedTouches[0].clientX - this.startX;
-        this.position = this.startPosition + deltaX;
-        this.animator.scheduleAnimation();
-    }
-};
-
-DismissController.prototype.onTouchEnd = function(e) {
-    this.velocityTracker.onTouchEnd(e);
-
-    if (this.state == DismissController.kDragging) {
-        var velocityX = this.velocityTracker.velocityX;
-        if (Math.abs(velocityX) > DrawerController.kMinFlingVelocity) {
-            this.fling(velocityX);
-            return;
-        }
-        this.settleToClosestPosition();
-    }
-};
-
-DismissController.prototype.settleToClosestPosition = function() {
-    var fraction = this.position / this.width;
-    if (fraction > 0.5)
-        this.settle(this.width);
-    else if (fraction < -0.5)
-        this.settle(-this.width);
-    else
-        this.settle(0)
-};
-
-DismissController.prototype.fling = function(velocityX) {
-    this.animator.stopAnimation();
-    this.animationVelocityX = velocityX;
-    this.basePosition = this.position;
-    this.state = DismissController.kFlinging;
-    this.targetPosition = velocityX < 0 ? -this.width : this.width;
-    this.animator.startAnimation();
-};
-
-DismissController.prototype.settle = function(targetPosition) {
-    this.animator.stopAnimation();
-    this.animationDuration = DrawerController.kBaseSettleDurationMS;
-    this.state = DismissController.kSettling;
-    this.basePosition = this.position;
-    this.targetPosition = targetPosition;
-    this.animator.startAnimation();
-};
-
-DismissController.prototype.computeTargetPosition = function(deltaT) {
-    var approximateTargetPosition = 0;
-    var movingLeftward = false;
-
-    if (this.state == DismissController.kSettling) {
-        var targetFraction = this.curve.scaleTime(deltaT / this.animationDuration);
-        var animationWidth = this.targetPosition - this.basePosition;
-        approximateTargetPosition = this.basePosition + targetFraction * animationWidth;
-        movingLeftward = animationWidth < 0;
-    } else if (this.state == DismissController.kFlinging) {
-        approximateTargetPosition = this.basePosition + this.animationVelocityX * deltaT;
-        movingLeftward = this.animationVelocityX < 0;
-    }
-
-    var lowerBound = -this.width;
-    var upperBound = this.width;
-    if (movingLeftward && this.targetPosition == 0)
-        lowerBound = 0;
-    else if (!movingLeftward && this.targetPosition == 0)
-        upperBound = 0;
-
-    return Math.max(lowerBound, Math.min(upperBound, approximateTargetPosition));
-};
-
-DismissController.prototype.onAnimation = function(timeStamp) {
-    if (this.state == DismissController.kDragging) {
-        this.moveCallback.call(this.target, this.position);
-        return false;
-    }
-
-    var deltaT = timeStamp - this.animator.startTimeStamp;
-
-    this.position = this.computeTargetPosition(deltaT);
-    this.moveCallback.call(this.target, this.position);
-
-    if (this.position != this.targetPosition)
-        return true;
-
-    if (this.targetPosition == 0) {
-        this.state = DismissController.kInitial;
-        return false;
-    }
-
-    this.state = DismissController.kDismissed;
-    this.dismissCallback.call(this.target, this.targetPosition < 0 ? 'left' : 'right');
-    return false;
-};
-
-function ScrollAreaToolbarController(options) {
-    this.animator = new Animator(this);
-
-    this.moveCallback = options.onMove;
-    this.target = options.target;
-    this.scrollArea = options.scrollArea;
-
-    this.scrollArea.addEventListener("scroll", this.onScroll.bind(this));
-    this.scrollBase = 0;
-    this.previousScrollTop = 0;
-};
-
-ScrollAreaToolbarController.prototype.restrictToBounds = function(position) {
-    return Math.min(Math.max(position, 0), this.height);
-};
-
-ScrollAreaToolbarController.prototype.onScroll = function(e) {
-    if (!this.height)
-        this.height = this.target.offsetHeight;
-
-    var scrollTop = this.scrollArea.scrollTop;
-    var scrollDelta = scrollTop - this.scrollBase;
-    var scrollDeltaFromPrevious = scrollTop - this.previousScrollTop;
-    this.previousScrollTop = scrollTop;
-    this.position = this.restrictToBounds(scrollDelta, 0);
-
-    if (sign(scrollDelta) != sign(scrollDeltaFromPrevious))
-        this.scrollBase = scrollTop - this.position;
-
-    this.animator.scheduleAnimation();
-};
-
-ScrollAreaToolbarController.prototype.onAnimation = function(timeStamp) {
-    this.moveCallback.call(this.target, this.position);
-    return false;
-};
-
-exports.DrawerController = DrawerController;
-exports.DismissController = DismissController;
-exports.ScrollAreaToolbarController = ScrollAreaToolbarController;
-
-})(window);
-</script>
-<style>
-html {
-  height: 100%;
-}
-body {
-  display: block;
-  height: 100%;
-  margin: 0;
-  background-color: red;
-}
-</style>
-<polymer-element name="app-frame" assetpath="/">
-  <template>
-    <style>
-      :host {
-        display: flex;
-        flex-direction: column;
-        background-color: white;
-        height: 100%;
-        position: relative;
-        overflow: hidden;
-      }
-    </style>
-    <content></content>
-  </template>
-  <script>
-    Polymer('app-frame', {
-    });
-  </script>
-</polymer-element>
-<polymer-element name="app-column" assetpath="/">
-  <template>
-    <style>
-      :host {
-        position: relative;
-        overflow: hidden;
-        display: flex;
-        flex-direction: column;
-        flex: 1;
-        flex-shrink: 0;
-      }
-      :host([scrollable]) {
-        overflow-y: auto;
-      }
-    </style>
-    <content></content>
-  </template>
-  <script>
-    Polymer('app-column', {
-    });
-  </script>
-</polymer-element>
-<polymer-element name="app-drawer" attributes="active" assetpath="/">
-  <template>
-    <style>
-      #content {
-        display: none;
-        position: absolute;
-        top: 0;
-        left: 0;
-        width: 300px;
-        bottom: 0;
-        background-color: white;
-        -webkit-transform: translate3d(0,0,0);
-        overflow-y: scroll;
-      }
-      #mask {
-        display: none;
-        position: absolute;
-        top: 0;
-        left: 0;
-        right: 0;
-        bottom: 0;
-        background-color: black;
-        -webkit-transform: translate3d(0,0,0);
-      }
-    </style>
-    <div id="mask" on-tap="{{ toggle }}"></div>
-    <div id="content">
-      <content></content>
-    </div>
-  </template>
-  <script>
-    Polymer('app-drawer', {
-      active: false,
-      toggle: function() {
-        this.controller.toggle();
-      },
-      enteredView: function() {
-        var content = this.$.content;
-        var mask = this.$.mask;
-        this.controller = new DrawerController({
-            target: this,
-            left: 0,
-            right: 300,
-            position: 0,
-            curve: 'ease-in-out',
-            willOpen: function() {
-                mask.style.display = 'block';
-                content.style.display = 'block';
-                this.active = true;
-            },
-            didClose: function() {
-                mask.style.display = 'none';
-                content.style.display = 'none';
-                this.active = false;
-            },
-            onAnimate: function(position) {
-                // FIXME: We should animate the opacity from zero, but that triggers http://crbug.com/328106
-                mask.style.opacity = ((position + 1) / 300) * 0.2;
-                content.style.WebkitTransform = 'translate3d(' + (position - 300) + 'px,0,0)';
-            },
-        });
-      },
-    });
-  </script>
-</polymer-element>
-<polymer-element name="app-dismissable-item" assetpath="/">
-  <template>
-    <style>
-      :host {
-        display: block;
-        -webkit-transform: translate3d(0,0,0);
-        flex-shrink: 0;
-      }
-    </style>
-    <content></content>
-  </template>
-  <script>
-    Polymer('app-dismissable-item', {
-      enteredView: function() {
-        this.controller = new DismissController({
-            target: this,
-            curve: 'ease-in-out',
-            onMove: function(position) {
-              var width = this.offsetWidth;
-              this.style.opacity = (width - Math.abs(position)) / width;
-              this.style.WebkitTransform = 'translate3d(' + position + 'px,0,0)';
-            },
-            onDismiss: function(direction) {
-              this.remove();
-            },
-        });
-      },
-    });
-  </script>
-</polymer-element>
-<polymer-element name="app-scrollarea-toolbar" attributes="location for" assetpath="/">
-  <template>
-    <style>
-      :host {
-        display: block;
-        position: absolute;
-        left: 0;
-        right: 0;
-        -webkit-transform: translate3d(0,0,0);
-        flex-shrink: 0;
-      }
-    </style>
-    <content></content>
-  </template>
-  <script>
-    function findParentTreeScope(node) {
-      while(node.parentNode)
-        node = node.parentNode;
-      return node;
-    }
-
-    Polymer('app-scrollarea-toolbar', {
-      'for': null,
-      location: 'top',
-      enteredView: function() {
-        if (this.location == 'top')
-          this.style.top = 0;
-        else
-          this.style.bottom = 0;
-
-        var scrollArea = findParentTreeScope(this).getElementById(this['for']);
-
-        this.controller = new ScrollAreaToolbarController({
-          target: this,
-          scrollArea: scrollArea,
-          onMove: function(position) {
-            var translateY = this.location == 'top' ? -position : position;
-            this.style.WebkitTransform = 'translate3d(0,' + translateY +'px,0)';
-          },
-        });
-      },
-    });
-  </script>
-</polymer-element>
-
-<!--
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
--->
-<!--
-/**
- * @module Polymer Elements
- */
--->
-<!--
-/**
- * The polymer-selection element is used to manage selection state. It has no
- * visual appearance and is typically used in conjuneciton with another element.
- * For example, <a href="polymer-selector.html">polymer-selector</a>
- * use a polymer-selection to manage selection.
- *
- * To mark an item as selected, call the select(item) method on 
- * polymer-selection. Notice that the item itself is an argument to this method.
- * The polymer-selection element manages selection state for any given set of
- * items. When an item is selected, the `polymer-select` event is fired.
- * The attribute "multi" indicates if multiple items can be selected at once.
- * 
- * Example:
- *
- *     <polymer-element name="selection-example">
- *        <template>
- *          <style>
- *            ::-webkit-distributed(> .selected) {
- *              font-weight: bold;
- *              font-style: italic;
- *            }
- *          </style>
- *          <ul on-tap="{{itemTapAction}}">
- *            <content></content>
- *          </ul>
- *          <polymer-selection id="selection" multi on-polymer-select="{{selectAction}}"></polymer-selection>
- *        </template>
- *        <script>
- *          Polymer('selection-example', {
- *            itemTapAction: function(e) {
- *              this.$.selection.select(e.target);
- *            },
- *            selectAction: function(e, detail) {
- *              detail.item.classList.toggle('selected', detail.isSelected);
- *            }
- *          });
- *        </script>
- *     </polymer-element>
- *
- *     <selection-example>
- *       <li>Red</li>
- *       <li>Green</li>
- *       <li>Blue</li>
- *     </selection-example>
- *
- * @class polymer-selection
- */
- /**
- * Fired when an item's selection state is changed. This event is fired both
- * when an item is selected or deselected. The `isSelected` detail property
- * contains the selection state.
- * 
- * @event polymer-select
- * @param {Object} detail
- *   @param {boolean} detail.isSelected true for selection and false for deselection
- *   @param {Object} detail.item the item element
- */
--->
-
-
-<polymer-element name="polymer-selection" attributes="multi" assetpath="bower_components/polymer-selection/">
-  <template>
-    <style>
-      :host {
-        display: none !important;
-      }
-    </style>
-  </template>
-  <script>
-    Polymer('polymer-selection', {
-      /**
-       * If true, multiple selections are allowed.
-       *
-       * @attribute multi
-       * @type boolean
-       * @default false
-       */
-      multi: false,
-      ready: function() {
-        this.clear();
-      },
-      clear: function() {
-        this.selection = [];
-      },
-      /**
-       * Retrieves the selected item(s).
-       * @method getSelection
-       * @returns Returns the selected item(s). If the multi property is true,
-       * getSelection will return an array, otherwise it will return 
-       * the selected item or undefined if there is no selection.
-      */
-      getSelection: function() {
-        return this.multi ? this.selection : this.selection[0];
-      },
-      /**
-       * Indicates if a given item is selected.
-       * @method isSelected
-       * @param {any} item The item whose selection state should be checked.
-       * @returns Returns true if `item` is selected.
-      */
-      isSelected: function(item) {
-        return this.selection.indexOf(item) >= 0;
-      },
-      setItemSelected: function(item, isSelected) {
-        if (item !== undefined && item !== null) {
-          if (isSelected) {
-            this.selection.push(item);
-          } else {
-            var i = this.selection.indexOf(item);
-            if (i >= 0) {
-              this.selection.splice(i, 1);
-            }
-          }
-          this.fire("polymer-select", {isSelected: isSelected, item: item});
-        }
-      },
-      /**
-       * Set the selection state for a given `item`. If the multi property
-       * is true, then the selected state of `item` will be toggled; otherwise
-       * the `item` will be selected.
-       * @method select
-       * @param {any} item: The item to select.
-      */
-      select: function(item) {
-        if (this.multi) {
-          this.toggle(item);
-        } else if (this.getSelection() !== item) {
-          this.setItemSelected(this.getSelection(), false);
-          this.setItemSelected(item, true);
-        }
-      },
-      /**
-       * Toggles the selection state for `item`.
-       * @method toggle
-       * @param {any} item: The item to toggle.
-      */
-      toggle: function(item) {
-        this.setItemSelected(item, !this.isSelected(item));
-      }
-    });
-  </script>
-</polymer-element>
-
-<!--
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
--->
-<!--
-/**
- * @module Polymer Elements
- */
-/**
- * polymer-selector is used to manage a list of elements that can be selected.
- * The attribute "selected" indicates which item element is being selected.
- * The attribute "multi" indicates if multiple items can be selected at once.
- * Tapping on the item element would fire "polymer-activate" event. Use
- * "polymer-select" event to listen for selection changes.
- *
- * Example:
- *
- *     <polymer-selector selected="0">
- *       <div>Item 1</div>
- *       <div>Item 2</div>
- *       <div>Item 3</div>
- *     </polymer-selector>
- *
- * polymer-selector is not styled.  So one needs to use "polymer-selected" CSS
- * class to style the selected element.
- * 
- *     <style>
- *       .item.polymer-selected {
- *         background: #eee;
- *       }
- *     </style>
- *     ...
- *     <polymer-selector>
- *       <div class="item">Item 1</div>
- *       <div class="item">Item 2</div>
- *       <div class="item">Item 3</div>
- *     </polymer-selector>
- *
- * @class polymer-selector
- */
-/**
- * Fired when an item's selection state is changed. This event is fired both
- * when an item is selected or deselected. The `isSelected` detail property
- * contains the selection state.
- * 
- * @event polymer-select
- * @param {Object} detail
- *   @param {boolean} detail.isSelected true for selection and false for deselection
- *   @param {Object} detail.item the item element
- */
-/**
- * Fired when an item element is tapped.
- * 
- * @event polymer-activate
- * @param {Object} detail
- *   @param {Object} detail.item the item element
- */
--->
-
-
-
-<polymer-element name="polymer-selector" attributes="selected multi valueattr selectedClass selectedProperty selectedItem selectedModel selectedIndex notap target itemsSelector activateEvent" assetpath="bower_components/polymer-selector/">
-  <template>
-    <polymer-selection id="selection" multi="{{multi}}" on-polymer-select="{{selectionSelect}}"></polymer-selection>
-    <content id="items" select="*"></content>
-  </template>
-  <script>
-    Polymer('polymer-selector', {
-      /**
-       * Gets or sets the selected element.  Default to use the index
-       * of the item element.
-       *
-       * If you want a specific attribute value of the element to be
-       * used instead of index, set "valueattr" to that attribute name.
-       *
-       * Example:
-       *
-       *     <polymer-selector valueattr="label" selected="foo">
-       *       <div label="foo"></div>
-       *       <div label="bar"></div>
-       *       <div label="zot"></div>
-       *     </polymer-selector>
-       *
-       * In multi-selection this should be an array of values.
-       *
-       * Example:
-       *
-       *     <polymer-selector id="selector" valueattr="label" multi>
-       *       <div label="foo"></div>
-       *       <div label="bar"></div>
-       *       <div label="zot"></div>
-       *     </polymer-selector>
-       *
-       *     this.$.selector.selected = ['foo', 'zot'];
-       *
-       * @attribute selected
-       * @type Object
-       * @default null
-       */
-      selected: null,
-      /**
-       * If true, multiple selections are allowed.
-       *
-       * @attribute multi
-       * @type boolean
-       * @default false
-       */
-      multi: false,
-      /**
-       * Specifies the attribute to be used for "selected" attribute.
-       *
-       * @attribute valueattr
-       * @type string
-       * @default 'name'
-       */
-      valueattr: 'name',
-      /**
-       * Specifies the CSS class to be used to add to the selected element.
-       * 
-       * @attribute selectedClass
-       * @type string
-       * @default 'polymer-selected'
-       */
-      selectedClass: 'polymer-selected',
-      /**
-       * Specifies the property to be used to set on the selected element
-       * to indicate its active state.
-       *
-       * @attribute selectedProperty
-       * @type string
-       * @default 'active'
-       */
-      selectedProperty: 'active',
-      /**
-       * Returns the currently selected element. In multi-selection this returns
-       * an array of selected elements.
-       * 
-       * @attribute selectedItem
-       * @type Object
-       * @default null
-       */
-      selectedItem: null,
-      /**
-       * In single selection, this returns the model associated with the
-       * selected element.
-       * 
-       * @attribute selectedModel
-       * @type Object
-       * @default null
-       */
-      selectedModel: null,
-      /**
-       * In single selection, this returns the selected index.
-       *
-       * @attribute selectedIndex
-       * @type number
-       * @default -1
-       */
-      selectedIndex: -1,
-      /**
-       * The target element that contains items.  If this is not set 
-       * polymer-selector is the container.
-       * 
-       * @attribute target
-       * @type Object
-       * @default null
-       */
-      target: null,
-      /**
-       * This can be used to query nodes from the target node to be used for 
-       * selection items.  Note this only works if the 'target' property is set.
-       *
-       * Example:
-       *
-       *     <polymer-selector target="{{$.myForm}}" itemsSelector="input[type=radio]"></polymer-selector>
-       *     <form id="myForm">
-       *       <label><input type="radio" name="color" value="red"> Red</label> <br>
-       *       <label><input type="radio" name="color" value="green"> Green</label> <br>
-       *       <label><input type="radio" name="color" value="blue"> Blue</label> <br>
-       *       <p>color = {{color}}</p>
-       *     </form>
-       * 
-       * @attribute itemSelector
-       * @type string
-       * @default ''
-       */
-      itemsSelector: '',
-      /**
-       * The event that would be fired from the item element to indicate
-       * it is being selected.
-       *
-       * @attribute activateEvent
-       * @type string
-       * @default 'tap'
-       */
-      activateEvent: 'tap',
-      notap: false,
-      ready: function() {
-        this.activateListener = this.activateHandler.bind(this);
-        this.observer = new MutationObserver(this.updateSelected.bind(this));
-        if (!this.target) {
-          this.target = this;
-        }
-      },
-      get items() {
-        var nodes = this.target !== this ? (this.itemsSelector ? 
-            this.target.querySelectorAll(this.itemsSelector) : 
-                this.target.children) : this.$.items.getDistributedNodes();
-        return Array.prototype.filter.call(nodes || [], function(n) {
-          return n && n.localName !== 'template';
-        });
-      },
-      targetChanged: function(old) {
-        if (old) {
-          this.removeListener(old);
-          this.observer.disconnect();
-        }
-        if (this.target) {
-          this.addListener(this.target);
-          this.observer.observe(this.target, {childList: true});
-        }
-      },
-      addListener: function(node) {
-        node.addEventListener(this.activateEvent, this.activateListener);
-      },
-      removeListener: function(node) {
-        node.removeEventListener(this.activateEvent, this.activateListener);
-      },
-      get selection() {
-        return this.$.selection.getSelection();
-      },
-      selectedChanged: function() {
-        this.updateSelected();
-      },
-      updateSelected: function() {
-        this.validateSelected();
-        if (this.multi) {
-          this.clearSelection();
-          this.selected && this.selected.forEach(function(s) {
-            this.valueToSelection(s);
-          }, this);
-        } else {
-          this.valueToSelection(this.selected);
-        }
-      },
-      validateSelected: function() {
-        // convert to an array for multi-selection
-        if (this.multi && !Array.isArray(this.selected) && 
-            this.selected !== null && this.selected !== undefined) {
-          this.selected = [this.selected];
-        }
-      },
-      clearSelection: function() {
-        if (this.multi) {
-          this.selection.slice().forEach(function(s) {
-            this.$.selection.setItemSelected(s, false);
-          }, this);
-        } else {
-          this.$.selection.setItemSelected(this.selection, false);
-        }
-        this.selectedItem = null;
-        this.$.selection.clear();
-      },
-      valueToSelection: function(value) {
-        var item = (value === null || value === undefined) ? 
-            null : this.items[this.valueToIndex(value)];
-        this.$.selection.select(item);
-      },
-      updateSelectedItem: function() {
-        this.selectedItem = this.selection;
-      },
-      selectedItemChanged: function() {
-        if (this.selectedItem) {
-          var t = this.selectedItem.templateInstance;
-          this.selectedModel = t ? t.model : undefined;
-        } else {
-          this.selectedModel = null;
-        }
-        this.selectedIndex = this.selectedItem ? 
-            parseInt(this.valueToIndex(this.selected)) : -1;
-      },
-      valueToIndex: function(value) {
-        // find an item with value == value and return it's index
-        for (var i=0, items=this.items, c; (c=items[i]); i++) {
-          if (this.valueForNode(c) == value) {
-            return i;
-          }
-        }
-        // if no item found, the value itself is probably the index
-        return value;
-      },
-      valueForNode: function(node) {
-        return node[this.valueattr] || node.getAttribute(this.valueattr);
-      },
-      // events fired from <polymer-selection> object
-      selectionSelect: function(e, detail) {
-        this.updateSelectedItem();
-        if (detail.item) {
-          this.applySelection(detail.item, detail.isSelected)
-        }
-      },
-      applySelection: function(item, isSelected) {
-        if (this.selectedClass) {
-          item.classList.toggle(this.selectedClass, isSelected);
-        }
-        if (this.selectedProperty) {
-          item[this.selectedProperty] = isSelected;
-        }
-      },
-      // event fired from host
-      activateHandler: function(e) {
-        if (!this.notap) {
-          var i = this.findDistributedTarget(e.target, this.items);
-          if (i >= 0) {
-            var item = this.items[i];
-            var s = this.valueForNode(item) || i;
-            if (this.multi) {
-              if (this.selected) {
-                this.addRemoveSelected(s);
-              } else {
-                this.selected = [s];
-              }
-            } else {
-              this.selected = s;
-            }
-            this.asyncFire('polymer-activate', {item: item});
-          }
-        }
-      },
-      addRemoveSelected: function(value) {
-        var i = this.selected.indexOf(value);
-        if (i >= 0) {
-          this.selected.splice(i, 1);
-        } else {
-          this.selected.push(value);
-        }
-        this.valueToSelection(value);
-      },
-      findDistributedTarget: function(target, nodes) {
-        // find first ancestor of target (including itself) that
-        // is in nodes, if any
-        while (target && target != this) {
-          var i = Array.prototype.indexOf.call(nodes, target);
-          if (i >= 0) {
-            return i;
-          }
-          target = target.parentNode;
-        }
-      }
-    });
-  </script>
-</polymer-element>
-
-<!--
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
--->
-
-
-<polymer-element name="polymer-ui-theme-aware" attributes="theme" assetpath="bower_components/polymer-ui-theme-aware/">
-  <script>
-    PolymerUI = {
-      validateTheme: function() {
-        var theme = this.theme;
-        var defaultTheme = this.defaultTheme;
-        if (!theme) {
-          var p = this;
-          while (p && !theme) {
-            theme = p.getAttribute && p.getAttribute('theme');
-            defaultTheme = defaultTheme || p.defaultTheme;
-            p = p.parentNode || p.host;
-          }
-        }
-        this.activeTheme = this.theme || theme || defaultTheme;
-      }
-    };
-    Polymer('polymer-ui-theme-aware', {
-      defaultTheme: '',
-      activeTheme: '',
-      validateTheme: PolymerUI.validateTheme,
-      enteredView: function() {
-        this.validateTheme();
-      },
-      themeChanged: function() {
-        this.activeTheme = this.theme;
-      },
-      activeThemeChanged: function(old) {
-        this.classList.switch(old, this.activeTheme);
-      }
-    });
-  </script>
-</polymer-element>
-
-<!--
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
--->
-<!--
-/**
- * @module Polymer UI Elements
- */
-/**
- * polymer-ui-menu is a polymer-selector with theme propagation.  It styles to look like 
- * a menu and should be used in conjunction with polymer-ui-menu-item.
- *
- * Example:
- * 
- *     <polymer-ui-menu selected="0">
- *       <polymer-ui-menu-item icon="settings" label="Settings"></polymer-ui-menu-item>
- *       <polymer-ui-menu-item icon="dialog" label="Dialog"></polymer-ui-menu-item>
- *       <polymer-ui-menu-item icon="search" label="Search"></polymer-ui-menu-item>
- *     </polymer-ui-menu>
- *
- * The "selectedItem" property returns the currently selected item.
- *
- * Example:
- *
- *     <polymer-ui-menu selected="0" selectedItem="{{item}}">
- *       <polymer-ui-menu-item icon="settings" label="Settings"></polymer-ui-menu-item>
- *       <polymer-ui-menu-item icon="dialog" label="Dialog"></polymer-ui-menu-item>
- *       <polymer-ui-menu-item icon="search" label="Search"></polymer-ui-menu-item>
- *     </polymer-ui-menu>
- *
- *     <div>selected label: {{item.label}}</div>
- *
- * The event "polymer-select" can also be used to listen for selection change.
- *
- * Example:
- *
- *     <polymer-ui-menu selected="0" on-polymer-select="{{selectAction}}">
- *       <polymer-ui-menu-item icon="settings" label="Settings"></polymer-ui-menu-item>
- *       <polymer-ui-menu-item icon="dialog" label="Dialog"></polymer-ui-menu-item>
- *       <polymer-ui-menu-item icon="search" label="Search"></polymer-ui-menu-item>
- *     </polymer-ui-menu>
- *
- *     ...
- *
- *     selectAction: function(e, detail) {
- *       if (detail.isSelected) {
- *         var selectedItem = detail.item;
- *         ...
- *       }
- *     }
- *
- * @class polymer-ui-menu
- * @extends polymer-selector
- */
--->
-
-
-
-
-<polymer-element name="polymer-ui-menu" extends="polymer-selector" attributes="theme" on-polymer-select="{{selectionChange}}" assetpath="bower_components/polymer-ui-menu/">
-  <template>
-    <style>/*
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
-*/
-
-:host {
-  /* technical */
-  display: block;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  /* size */
-  padding: 0.4em;
-  font-weight: bold;
-}
-
-:host(.polymer-ui-light-theme:host) {
-  color: #333333;
-}
-
-:host(.polymer-ui-dark-theme:host) {
-  background: -webkit-linear-gradient(-60deg, #3d3d3d, #353535);
-  background: -moz-linear-gradient(-60deg, #3d3d3d, #353535);
-  background: -ms-linear-gradient(-60deg, #3d3d3d, #353535);
-  color: #ededed;
-}
-</style>
-    <shadow></shadow>
-  </template>
-  <script>
-    Polymer('polymer-ui-menu', {
-      activeTheme: '',
-      validateTheme: PolymerUI.validateTheme,
-      enteredView: function() {
-        this.validateTheme();
-      },
-      themeChanged: function() {
-        this.activeTheme = this.theme;
-      },
-      activeThemeChanged: function(old) {
-        this.classList.switch(old, this.activeTheme);
-      },
-      selectionChange: function(e, detail) {
-        if (detail.isSelected) {
-          var i = detail.item;
-          // find nested selected item
-          while (i.selectedItem) {
-            i = i.selectedItem;
-          }
-          this.selectedItem = i;
-        }
-      }
-    });
-  </script>
-</polymer-element>
-
-<!--
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
--->
-
-<!--
-/**
-* Polymer UI Elements
-*
-* @module Polymer UI Elements
-*/  
-/**
- * polymer-ui-icon is a 24x24 glyph expressed as a background-image.
- *
- * Example:
- *
- *     <polymer-ui-icon src="star.png"></polymer-ui-icon>
- *
- * Optionally can use other size like 32x32 by setting the attribute "size" to "32":
- *
- *     <polymer-ui-icon src="big_star.png" size="32"></polymer-ui-icon>
- *
- * Polymer includes an icon set.  The property "icon" can be used
- * to specify which icon to use.
- *
- * Example:
- *
- *     <polymer-ui-icon icon="menu"></polymer-ui-icon>
- *
- * @class polymer-ui-icon
- */
--->
-
-
-
-<polymer-element name="polymer-ui-icon" extends="polymer-ui-theme-aware" attributes="src size index icon" assetpath="bower_components/polymer-ui-icon/">
-  <template>
-    <style>/*
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
-*/
-
-:host {
-  display: inline-block;
-  vertical-align: middle;
-  cursor: pointer;
-  background-repeat: no-repeat;
-}
-
-:host(.polymer-ui-dark-icon:host, .polymer-ui-light-theme:host) {
-  background-position: -24px 0;
-}
-
-:host(.polymer-ui-light-icon:host, .polymer-ui-dark-theme:host) {
-  background-position: -72px 0;
-}
-
-:host(.polymer-ui-icons:host) {
-  background-image: url(bower_components/polymer-ui-icon/bower_components/polymer-ui-icon/action-icons.png);
-}</style>
-    <content></content>
-  </template>
-  <script>
-    (function() {
-      var icons = [
-       'drawer',
-       'menu',
-       'search',
-       'dropdown',
-       'close',
-       'add',
-       'trash',
-       'refresh',
-       'settings',
-       'dialoga',
-       'left',
-       'right',
-       'down',
-       'up',
-       'grid',
-       'contact',
-       'account',
-       'plus',
-       'time',
-       'marker',
-       'briefcase',
-       'array',
-       'columns',
-       'list',
-       'modules',
-       'quilt',
-       'stream',
-       'maximize',
-       'shrink',
-       'sort',
-       'shortcut',
-       'dialog',
-       'twitter',
-       'facebook',
-       'favorite',
-       'gplus',
-       'filter',
-       'tag',
-       'plusone',
-       'dots'
-      ];
-      var map = {};
-      icons.forEach(function(name, i) {
-        map[name] = i;
-      });
-      icons = map;
-
-      Polymer('polymer-ui-icon', {
-        /**
-         * The URL of an image for the icon.
-         *
-         * @attribute src
-         * @type string
-         * @default ''
-         */
-        src: '',
-        /**
-         * Specifies the size of the icon.
-         *
-         * @attribute size
-         * @type string
-         * @default 24
-         */
-        size: 24,
-        /**
-         * Specifies the icon from the Polymer icon set.
-         *
-         * @attribute icon
-         * @type string
-         * @default ''
-         */
-        icon: '',
-        bx: 0,
-        by: 0,
-        icons: icons,
-        ready: function() {
-          this.sizeChanged();
-        },
-        sizeChanged: function() {
-          this.style.width = this.style.height = this.size + 'px';
-        },
-        iconChanged: function() {
-          this.index = this.icon in icons ? icons[this.icon] : -1;
-        },
-        indexChanged: function() {
-          this.classList.add('polymer-ui-icons');
-          this.by = -this.size * this.index;
-          this.updateIcon();
-        },
-        srcChanged: function() {
-          this.classList.remove('polymer-ui-icons');
-          this.style.backgroundImage = 'url(' + this.src + ')';
-          this.updateIcon();
-        },
-        activeThemeChanged: function(old) {
-          this.super(arguments);
-          this.style.backgroundPosition = '';
-          this.bx = calcThemeOffset(this.activeTheme, this);
-          this.updateIcon();
-        },
-        updateIcon: function() {
-          if (this.src) {
-            this.style.backgroundPosition = 'center';
-            this.style.backgroundSize = this.size + 'px ' + this.size + 'px';
-          } else {
-            this.style.backgroundPosition = (this.bx + 'px') + ' ' + (this.by + 'px');
-          }
-        }
-      });
-      // memoize offset because getComputedStyle is expensive
-      var themes = {};
-      function calcThemeOffset(theme, node) {
-        if (themes[theme] === undefined) {
-          var bp = getComputedStyle(node).backgroundPosition.split(' ');
-          // support 4 value syntax (https://code.google.com/p/chromium/issues/detail?id=310977)
-          var l = bp.length === 4 ? bp[1] : bp[0];
-          var offset = parseFloat(l);
-          themes[theme] = offset;
-        }
-        return themes[theme]; 
-      }
-    })();
-  </script>
-</polymer-element>
-
-<!--
-Copyright 2013 The Toolkitchen Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
--->
-<!--
-/**
- * @module Polymer UI Elements
- */
-/**
- * polymer-ui-menu-item is styled to look like a menu item.  It should be used
- * in conjunction with polymer-ui-menu or polymer-ui-sibebar-menu.
- *
- * Example:
- *
- *     <polymer-ui-menu-item icon="settings" label="Settings"></polymer-ui-menu-item>
- *
- * @class polymer-ui-menu-item
- */
-/**
- * The URL of an image for the icon.
- *
- * @attribute src
- * @type string
- * @default ''
- */
-/**
- * Specifies the icon from the Polymer icon set.
- *
- * @attribute icon
- * @type string
- * @default ''
- */
-/**
- * Specifies the label for the menu item.
- *
- * @attribute label
- * @type string
- * @default ''
- */
-/**
- * Specifies the URL of the link it goes to when tapped on.
- *
- * Example:
- *
- *     <polymer-ui-menu-item icon="favorite" label="Favorite" href="http://www.polymer-project.org/"></polymer-ui-menu-item>
- *
- * If you want more control on the link, e.g. specify the target for where to
- * open the linked document, you can put &lt;a> directly inside the menu-item.
- *
- * Example:
- *
- *     <polymer-ui-menu-item icon="favorite" label="Favorite">
- *       <a href="http://www.polymer-project.org/" target="_self"></a>
- *     </polymer-ui-menu-item>
- *
- * @attribute href
- * @type string
- * @default ''
- */
--->
-
-
-
-
-<polymer-element name="polymer-ui-menu-item" extends="polymer-ui-theme-aware" attributes="src label icon item href" assetpath="bower_components/polymer-ui-menu-item/">
-  <template>
-    <style>/*
-Copyright 2013 The Toolkitchen Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
-*/
-
-:host { 
-  display: block;
-  position: relative;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  height: 40px;
-  line-height: 35px;
-  font-size: 16px;
-  padding: 0 10px;
-  border: 1px solid transparent;
-  border-radius: 3px;
-  white-space: nowrap;
-  cursor: pointer;
-  opacity: 0.5;
-}
-
-:host(:hover:host) {
-  opacity: 0.9;
-}
-
-:host(.polymer-selected:host, [active]:host) {
-  opacity: 1;
-}
-
-:host(.polymer-ui-light-theme.polymer-selected:host, .polymer-ui-light-theme[active]:host) {
-  background: #f2f2f2;
-  border: 1px solid rgba(0, 0, 0, 0.15);
-}
-
-:host(.polymer-ui-dark-theme:host) {
-  color: #b3b3b3;
-}
-	
-:host(.polymer-ui-dark-theme:hover:host) {
-  color: rgba(255, 255, 255, 0.9);
-}
-
-:host(.polymer-ui-dark-theme.polymer-selected:host, .polymer-ui-dark-theme[active]:host) {
-  background-color: #000;
-  border: 1px solid rgba(255, 255, 255, 0.2);
-  color: rgba(255, 255, 255, 0.9);
-}
-
-:host([active].no-active-bg:host) {
-  background-color: transparent;
-  border: 1px solid transparent;
-}
-
-/* icon and label */
-polymer-ui-icon:not([showing]) {
-  display: none !important;
-}
-
-polymer-ui-icon {
-  margin-right: 16px;
-}
-
-#label {
-  vertical-align: middle;
-  padding-right: 20px;
-}
-
-/*@polyfill :host #label > a, #link */
-::content > a, #link {
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  margin: -1px;
-}
-
-#link[hidden] {
-  display: none;
-}
-</style>
-    <polymer-ui-icon src="{{src}}" icon="{{icon}}" showing?="{{icon || src}}"></polymer-ui-icon>
-    <span id="label">{{label}}<content></content></span>
-    <a id="link" href="{{href}}" hidden?="{{!href}}"></a>
-  </template>
-  <script>
-    Polymer('polymer-ui-menu-item', {
-      label: '',
-      // calc item's offset middle pos instead of using offsetTop/Height 
-      // directly which requires to wait for submenu's collapsing transition to 
-      // complete first before it can return the correct pos.
-      getOffsetMiddle: function() {
-        var p = this.parentNode;
-        if (p) {
-          var i = Array.prototype.indexOf.call(p.items, this);
-          var h = this.getItemHeight();
-          return i * h + h/2 + p.items[0].offsetTop;
-        }
-      },
-      getItemHeight: function() {
-        return this.offsetHeight;
-      }
-    });
-  </script>
-</polymer-element>
-
-<!--
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
--->
-<!--
-/**
- * @module Polymer Elements
- */
-/**
- * polymer-media-query can be used to data bind to a CSS media query.
- * The "query" property is a bare CSS media query.
- * The "queryMatches" property will be a boolean representing if the page matches that media query.
- *
- * polymer-media-query uses media query listeners to dynamically update the "queryMatches" property.
- * A "polymer-mediachange" event also fires when queryMatches changes.
- *
- * Example:
- *
- *      <polymer-media-query query="max-width: 640px" queryMatches="{{phoneScreen}}"></polymer-media-query>
- *
- * @class polymer-media-query
- */
--->
-
-
-<polymer-element name="polymer-media-query" attributes="query queryMatches" assetpath="bower_components/polymer-media-query/">
-  <template>
-    <style>
-      :host {
-        display: none;
-      }
-    </style>
-  </template>
-  <script>
-
-    Polymer('polymer-media-query', {
-      /**
-       * The Boolean return value of the media query
-       * @attribute queryMatches
-       * @type Boolean
-       * @default false
-       */
-      queryMatches: false,
-      /**
-       * The CSS media query to evaulate
-       * @attribute query
-       * @type string
-       * @default ''
-       */
-      query: '',
-      ready: function() {
-        this._mqHandler = this.queryHandler.bind(this);
-        this._mq = null;
-      },
-      queryChanged: function() {
-        if (this._mq) {
-          this._mq.removeListener(this._mqHandler);
-        }
-        var query = this.query;
-        if (query[0] !== '(') {
-          query = '(' + this.query + ')';
-        }
-        this._mq = window.matchMedia(query);
-        this._mq.addListener(this._mqHandler);
-        this.queryHandler(this._mq);
-      },
-      queryHandler: function(mq) {
-        this.queryMatches = mq.matches;
-        this.asyncFire('polymer-mediachange', mq);
-      }
-    });
-  </script>
-</polymer-element>
-
-<!--
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
--->
-<!--
-/**
- * @module Polymer Elements
- */
-/**
- * polymer-flex-layout provides a helper to use CSS3 Flexible Boxes.  By putting
- * polymer-flex-layout inside an element it makes the element a flex
- * container. Use 'flex' attribute to make the flex item flexible.
- *
- * Example:
- *
- *     <div>
- *       <polymer-flex-layout></polymer-flex-layout>
- *       <div>Left</div>
- *       <div flex>Main</div>
- *       <div>Right</div>
- *     </div>
- *
- *     ---------------------------------
- *     |-------------------------------|
- *     ||Left|       Main       |Right||
- *     |-------------------------------|
- *     ---------------------------------
- *
- *     <div>
- *       <polymer-flex-layout vertical></polymer-flex-layout>
- *       <div>Header</div>
- *       <div flex>Body</div>
- *       <div>Footer</div>
- *     </div>
- *
- *     ----------
- *     ||------||
- *     ||Header||
- *     ||------||
- *     ||Body  ||
- *     ||      ||
- *     ||      ||
- *     ||      ||
- *     ||      ||
- *     ||      ||
- *     ||      ||
- *     ||------||
- *     ||Footer||
- *     ||------||
- *     ----------
- *
- * @class polymer-flex-layout
- */
-/**
- * If true, flex items are aligned vertically.
- *
- * @attribute vertical
- * @type boolean
- * @default false
- */
-/**
- * Defines the default for how flex items are laid out along the cross axis on 
- * the current line.  Possible values are 'start', 'center' and 'end'.
- *
- * @attribute align
- * @type string
- * @default ''
- */
-/**
- * Defines how flex items are laid out along the main axis on the current line.
- * Possible values are 'start', 'center' and 'end'.
- *
- * @attribute justify
- * @type string
- * @default ''
- */
-/**
- * If true, polymer-flex-layout is the flex container.
- *
- * Example:
- *
- *     <polymer-flex-layout isContainer>
- *       <div>Left</div>
- *       <div flex>Main</div>
- *       <div>Right</div>
- *     </polymer-flex-layout>
- *
- *     ---------------------------------
- *     |-------------------------------|
- *     ||Left|       Main       |Right||
- *     |-------------------------------|
- *     ---------------------------------
- *
- * @attribute isContainer
- * @type boolean
- * @default false
- */
--->
-
-
-<polymer-element name="polymer-flex-layout" attributes="vertical align justify isContainer" assetpath="bower_components/polymer-flex-layout/">
-  <template>
-    <style polymer-scope="controller">/*
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
-*/
-.flexbox, [flexbox], [h-flexbox], [v-flexbox] {
-  display: -webkit-box !important;
-  display: -ms-flexbox !important;
-  display: -moz-flex !important;
-  display: -webkit-flex !important;
-  display: flex !important;
-}
-
-.flexbox.row, [flexbox], [h-flexbox] {
-  -webkit-box-orient: horizontal;
-  -ms-flex-direction: row;
-  -moz-flex-direction: row;
-  -webkit-flex-direction: row;
-  flex-direction: row;
-}
-
-.flexbox.column, [v-flexbox] {
-  -webkit-box-orient: vertical;
-  -ms-flex-direction: column;
-  -moz-flex-direction: column;
-  -webkit-flex-direction: column;
-  flex-direction: column;
-}
-
-.flex, [flex], [fit] {
-  -webkit-box-flex: 1;
-  -ms-flex: 1;
-  -moz-flex: 1;
-  -webkit-flex: 1;
-  flex: 1;
-}
-
-::-webkit-distributed(.flex), 
-::-webkit-distributed([flex]),
-::-webkit-distributed([fit]) {
-  -webkit-box-flex: 1;
-  -ms-flex: 1;
-  -moz-flex: 1;
-  -webkit-flex: 1;
-  flex: 1;
-}
-
-.flexbox.align-start {
-  -webkit-box-align: start;
-  -ms-flex-align: start;
-  -moz-align-items: flex-start;
-  -webkit-align-items: flex-start;
-  align-items: flex-start;
-}
-
-.flexbox.align-end {
-  -webkit-box-align: end;
-  -ms-flex-align: end;
-  -moz-align-items: flex-end;
-  -webkit-align-items: flex-end;
-  align-items: flex-end;
-}
-
-.flexbox.align-center {
-  -webkit-box-align: center;
-  -ms-flex-align: center;
-  -moz-align-items: center;
-  -webkit-align-items: center;
-  align-items: center;
-}
-
-.flexbox.justify-start {
-  -webkit-box-pack: start;
-  -ms-flex-pack: start;
-  -moz-justify-content: flex-start;
-  -webkit-justify-content: flex-start;
-  justify-content: flex-start;
-}
-
-.flexbox.justify-end {
-  -webkit-box-pack: end;
-  -ms-flex-pack: end;
-  -moz-justify-content: flex-end;
-  -webkit-justify-content: flex-end;
-  justify-content: flex-end;
-}
-
-.flexbox.justify-center {
-  -webkit-box-pack: center;
-  -ms-flex-pack: center;
-  -moz-justify-content: center;
-  -webkit-justify-content: center;
-  justify-content: center;
-}
-
-.flexbox.justify-between {
-  -webkit-box-pack: justify;
-  -ms-flex-pack: justify;
-  -moz-justify-content: space-between;
-  -webkit-justify-content: space-between;
-  justify-content: space-between;
-}
-
-:host(.flexbox:host, [flexbox]:host, [h-flexbox]:host, [v-flexbox]:host) {
-  display: -webkit-box !important;
-  display: -ms-flexbox !important;
-  display: -moz-flex !important;
-  display: -webkit-flex !important;
-  display: flex !important;
-}
-  
-:host(.flexbox.row:host, [flexbox]:host, [h-flexbox]:host) {
-  -webkit-box-orient: horizontal;
-  -ms-flex-direction: row;
-  -moz-flex-direction: row;
-  -webkit-flex-direction: row;
-  flex-direction: row;
-}
-  
-:host(.flexbox.column:host, [v-flexbox]:host) {
-  -webkit-box-orient: vertical;
-  -ms-flex-direction: column;
-  -moz-flex-direction: column;
-  -webkit-flex-direction: column;
-  flex-direction: column;
-}
-  
-:host(.flexbox.align-start:host) {
-  -webkit-box-align: start;
-  -ms-flex-align: start;
-  -moz-align-items: flex-start;
-  -webkit-align-items: flex-start;
-  align-items: flex-start;
-}
-  
-:host(.flexbox.align-end:host) {
-  -webkit-box-align: end;
-  -ms-flex-align: end;
-  -moz-align-items: flex-end;
-  -webkit-align-items: flex-end;
-  align-items: flex-end;
-}
-
-:host(.flexbox.align-center:host) {
-  -webkit-box-align: center;
-  -ms-flex-align: center;
-  -moz-align-items: center;
-  -webkit-align-items: center;
-  align-items: center;
-}
-
-:host(.flexbox.justify-start:host) {
-  -webkit-box-pack: start;
-  -ms-flex-pack: start;
-  -moz-justify-content: flex-start;
-  -webkit-justify-content: flex-start;
-  justify-content: flex-start;
-}
-
-:host(.flexbox.justify-end:host) {
-  -webkit-box-pack: end;
-  -ms-flex-pack: end;
-  -moz-justify-content: flex-end;
-  -webkit-justify-content: flex-end;
-  justify-content: flex-end;
-}
-
-:host(.flexbox.justify-center:host) {
-  -webkit-box-pack: center;
-  -ms-flex-pack: center;
-  -moz-justify-content: center;
-  -webkit-justify-content: center;
-  justify-content: center;
-}
-
-:host(.flexbox.justify-between:host) {
-  -webkit-box-pack: justify;
-  -ms-flex-pack: justify;
-  -moz-justify-content: space-between;
-  -webkit-justify-content: space-between;
-  justify-content: space-between;
-}
-</style>
-    <style>/*
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
-*/
-.flexbox, [flexbox], [h-flexbox], [v-flexbox] {
-  display: -webkit-box !important;
-  display: -ms-flexbox !important;
-  display: -moz-flex !important;
-  display: -webkit-flex !important;
-  display: flex !important;
-}
-
-.flexbox.row, [flexbox], [h-flexbox] {
-  -webkit-box-orient: horizontal;
-  -ms-flex-direction: row;
-  -moz-flex-direction: row;
-  -webkit-flex-direction: row;
-  flex-direction: row;
-}
-
-.flexbox.column, [v-flexbox] {
-  -webkit-box-orient: vertical;
-  -ms-flex-direction: column;
-  -moz-flex-direction: column;
-  -webkit-flex-direction: column;
-  flex-direction: column;
-}
-
-.flex, [flex], [fit] {
-  -webkit-box-flex: 1;
-  -ms-flex: 1;
-  -moz-flex: 1;
-  -webkit-flex: 1;
-  flex: 1;
-}
-
-::-webkit-distributed(.flex), 
-::-webkit-distributed([flex]),
-::-webkit-distributed([fit]) {
-  -webkit-box-flex: 1;
-  -ms-flex: 1;
-  -moz-flex: 1;
-  -webkit-flex: 1;
-  flex: 1;
-}
-
-.flexbox.align-start {
-  -webkit-box-align: start;
-  -ms-flex-align: start;
-  -moz-align-items: flex-start;
-  -webkit-align-items: flex-start;
-  align-items: flex-start;
-}
-
-.flexbox.align-end {
-  -webkit-box-align: end;
-  -ms-flex-align: end;
-  -moz-align-items: flex-end;
-  -webkit-align-items: flex-end;
-  align-items: flex-end;
-}
-
-.flexbox.align-center {
-  -webkit-box-align: center;
-  -ms-flex-align: center;
-  -moz-align-items: center;
-  -webkit-align-items: center;
-  align-items: center;
-}
-
-.flexbox.justify-start {
-  -webkit-box-pack: start;
-  -ms-flex-pack: start;
-  -moz-justify-content: flex-start;
-  -webkit-justify-content: flex-start;
-  justify-content: flex-start;
-}
-
-.flexbox.justify-end {
-  -webkit-box-pack: end;
-  -ms-flex-pack: end;
-  -moz-justify-content: flex-end;
-  -webkit-justify-content: flex-end;
-  justify-content: flex-end;
-}
-
-.flexbox.justify-center {
-  -webkit-box-pack: center;
-  -ms-flex-pack: center;
-  -moz-justify-content: center;
-  -webkit-justify-content: center;
-  justify-content: center;
-}
-
-.flexbox.justify-between {
-  -webkit-box-pack: justify;
-  -ms-flex-pack: justify;
-  -moz-justify-content: space-between;
-  -webkit-justify-content: space-between;
-  justify-content: space-between;
-}
-
-:host(.flexbox:host, [flexbox]:host, [h-flexbox]:host, [v-flexbox]:host) {
-  display: -webkit-box !important;
-  display: -ms-flexbox !important;
-  display: -moz-flex !important;
-  display: -webkit-flex !important;
-  display: flex !important;
-}
-  
-:host(.flexbox.row:host, [flexbox]:host, [h-flexbox]:host) {
-  -webkit-box-orient: horizontal;
-  -ms-flex-direction: row;
-  -moz-flex-direction: row;
-  -webkit-flex-direction: row;
-  flex-direction: row;
-}
-  
-:host(.flexbox.column:host, [v-flexbox]:host) {
-  -webkit-box-orient: vertical;
-  -ms-flex-direction: column;
-  -moz-flex-direction: column;
-  -webkit-flex-direction: column;
-  flex-direction: column;
-}
-  
-:host(.flexbox.align-start:host) {
-  -webkit-box-align: start;
-  -ms-flex-align: start;
-  -moz-align-items: flex-start;
-  -webkit-align-items: flex-start;
-  align-items: flex-start;
-}
-  
-:host(.flexbox.align-end:host) {
-  -webkit-box-align: end;
-  -ms-flex-align: end;
-  -moz-align-items: flex-end;
-  -webkit-align-items: flex-end;
-  align-items: flex-end;
-}
-
-:host(.flexbox.align-center:host) {
-  -webkit-box-align: center;
-  -ms-flex-align: center;
-  -moz-align-items: center;
-  -webkit-align-items: center;
-  align-items: center;
-}
-
-:host(.flexbox.justify-start:host) {
-  -webkit-box-pack: start;
-  -ms-flex-pack: start;
-  -moz-justify-content: flex-start;
-  -webkit-justify-content: flex-start;
-  justify-content: flex-start;
-}
-
-:host(.flexbox.justify-end:host) {
-  -webkit-box-pack: end;
-  -ms-flex-pack: end;
-  -moz-justify-content: flex-end;
-  -webkit-justify-content: flex-end;
-  justify-content: flex-end;
-}
-
-:host(.flexbox.justify-center:host) {
-  -webkit-box-pack: center;
-  -ms-flex-pack: center;
-  -moz-justify-content: center;
-  -webkit-justify-content: center;
-  justify-content: center;
-}
-
-:host(.flexbox.justify-between:host) {
-  -webkit-box-pack: justify;
-  -ms-flex-pack: justify;
-  -moz-justify-content: space-between;
-  -webkit-justify-content: space-between;
-  justify-content: space-between;
-}
-</style>
-    <content></content>
-  </template>
-  <script>
-    Polymer('polymer-flex-layout', {
-      vertical: false,
-      isContainer: false,
-      layoutContainer: null,
-      enteredView: function() {
-        this.installControllerStyles();
-        this.layoutContainer = this.isContainer ? 
-            this : (this.parentNode.host || this.parentNode);
-        this.verticalChanged();
-        this.alignChanged();
-        this.justifyChanged();
-      },
-      leftView: function() {
-        this.layoutContainer = null;
-      },
-      layoutContainerChanged: function(old) {
-        if (old) {
-          old.classList.remove('flexbox');
-        }
-        this.style.display = this.layoutContainer === this ? '' : 'none';
-        if (this.layoutContainer) {
-          this.layoutContainer.classList.add('flexbox');
-        }
-      },
-      switchContainerClass: function(prefix, old, name) {
-        if (this.layoutContainer && name) {
-          this.layoutContainer.classList.switch(
-              prefix + old, prefix + name);
-        }
-      },
-      verticalChanged: function() {
-        if (this.layoutContainer) {
-          this.layoutContainer.classList.toggle('column', this.vertical);
-        }
-      },
-      alignChanged: function(old) {
-        this.switchContainerClass('align-', old, this.align);
-      },
-      justifyChanged: function(old) {
-        this.switchContainerClass('justify-', old, this.justify);
-      }
-    });
-  </script>
-</polymer-element>
-
-<!--
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
--->
-
-<!--
-/**
- * @module Polymer UI Elements
- */
-/**
- * polymer-ui-toolbar is a horizontal bar containing elements that can perform actions.
- *
- * Example:
- *
- *     <polymer-ui-toolbar>
- *       <polymer-ui-icon-button src="menu.png" on-click="{{menuAction}}"></polymer-ui-icon-button>
- *       <div flex>Title</div>
- *       <polymer-ui-icon-button src="more.png" on-click="{{moreAction}}"></polymer-ui-icon-button>
- *     </polymer-ui-toolbar>
- *
- * polymer-ui-toolbar can adopt to smaller screen size.  If the attribute "responsive" is set
- * and the screen size is less than the responsiveWidth (default to 800px), the toolbar will
- * be moved to the bottom of the page.
- *
- * Example:
- *
- *     <polymer-ui-toolbar>
- *       <polymer-ui-icon-button icon="menu"></polymer-ui-icon-button>
- *       <div flex>Title</div>
- *       <polymer-ui-toolbar responsive>
- *         <polymer-ui-icon-button icon="add"></polymer-ui-icon-button>
- *         <polymer-ui-icon-button icon="trash"></polymer-ui-icon-button>
- *         <polymer-ui-icon-button icon="search"></polymer-ui-icon-button>
- *       </polymer-ui-toolbar>
- *     </polymer-ui-toolbar>
- *
- * @class polymer-ui-toolbar
- */
--->
-
-
-
-
-
-<polymer-element name="polymer-ui-toolbar" extends="polymer-ui-theme-aware" attributes="responsiveWidth" assetpath="bower_components/polymer-ui-toolbar/">
-  <template>
-    <style>/*
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
-*/
-
-:host {
-  /* technical */
-  display: block;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  /* border/shadow */
-	border-bottom: 1px solid rgba(0, 0, 0, 0.15);
-	/* size */
-  height: 60px;
-  font-size: 21px;
-	font-family: 'Helvetica Neue Medium', 'HelveticaNeue-Medium', Helvetica, sans-serif;
-	position: relative;
-}
-
-:host(.polymer-ui-light-theme:host) {
-  background: #f2f2f2 -webkit-linear-gradient(top, rgba(197,197,197,0), rgba(197,197,197,0.15));
-  background: #f2f2f2 -moz-linear-gradient(top, rgba(197,197,197,0), rgba(197,197,197,0.15));
-  background: #f2f2f2 -ms-linear-gradient(top, rgba(197,197,197,0), rgba(197,197,197,0.15));
-  color: #333333;
-}
-
-:host(.polymer-ui-dark-theme:host) {
-  background: #444444 none;
-  color: #f3f3f3;
-}
-  
-:host(.narrow-layout[responsive]:host) {
-  position: fixed;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1;
-  border: 0;
-  border-top: 1px solid rgba(0, 0, 0, 0.28);
-}
-
-/* TODO(sorvell): use of !important due to inability to 
-  naturally win over an :host style */
-/*@polyfill :host > polymer-ui-icon-button */
-::content > polymer-ui-icon-button {
-  margin: 0px 8px 0 8px !important;
-}
-
-/*@polyfill :host > polymer-ui-menu-button */
-::content > polymer-ui-menu-button {
-  margin: 0px 8px 0 8px !important;
-}
-
-/*@polyfill :host > polymer-ui-toolbar */
-::content > polymer-ui-toolbar {
-  margin: 0;
-}
-
-/*@polyfill :host > polymer-ui-toolbar:not(.narrow-layout) */
-::content > polymer-ui-toolbar:not(.narrow-layout) {
-  border: 0;
-  background: transparent none;
-}
-</style>
-    <polymer-flex-layout align="center"></polymer-flex-layout>
-    <polymer-media-query query="max-width: {{responsiveWidth}}" querymatches="{{queryMatches}}"></polymer-media-query>
-    <content></content>
-  </template>
-  <script>
-    Polymer('polymer-ui-toolbar', {
-      responsiveWidth: '800px',
-      queryMatches: false,
-      defaultTheme: 'polymer-ui-light-theme',
-      queryMatchesChanged: function() {
-        this.classList.toggle('narrow-layout', this.queryMatches);
-      }
-    });
-  </script>
-</polymer-element>
-
-<!--
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
--->
-<!--
-/**
- * @module Polymer UI Elements
- */
-/**
- * polymer-ui-icon-button enables you to place an image centered in a button.
- *
- * Example:
- *
- *     <polymer-ui-icon-button src="star.png"></polymer-ui-icon-button>
- *
- * Polymer includes an icon set.  The property "icon" can be used
- * to specify which icon to use.
- *
- * Example:
- *
- *     <polymer-ui-icon-button icon="menu"></polymer-ui-icon-button>
- *
- * @class polymer-ui-icon-button
- */
--->
-
-
-
-<polymer-element name="polymer-ui-icon-button" extends="polymer-ui-theme-aware" attributes="src index icon active" assetpath="bower_components/polymer-ui-icon-button/">
-  <template>
-    <style>/*
-Copyright 2013 The Polymer Authors. All rights reserved.
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file.
-*/
-:host {
-  display: inline-block;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  width: 38px;
-  height: 38px;
-  background-image: none;
-  border-radius: 2px;
-  padding: 7px;
-  margin: 2px;
-  vertical-align: middle;
-  cursor: pointer;
-}
-  
-:host(.outline:host) {
-  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
-}
-
-:host(:hover:host) {
-  box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.1);
-}
-
-:host(.selected:host) {
-  background-color: rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 1px 0 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.12);
-}
-
-:host(:active:host, .selected:active:host) {
-  background-color: rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 1px 0 0 rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.12);
-}
-  
-:host(.polymer-ui-dark-theme.outline:host) {
-  background-color: rgba(200, 200, 200, 0.05);
-  box-shadow: 0 0 0 1px rgba(200, 200, 200, 0.1);
-}
-
-:host(.polymer-ui-dark-theme:hover:host) {
-  background-color: rgba(200, 200, 200, 0.05);
-  box-shadow: 0 1px 0 0 rgba(200, 200, 200, 0.12), 0 0 0 1px rgba(200, 200, 200, 0.1);
-}
-
-:host(.polymer-ui-dark-theme.selected:host) {
-  background-color: rgba(220, 220, 220, 0.05);
-  box-shadow: inset 0 1px 0 0 rgba(200, 200, 200, 0.05), 0 0 0 1px rgba(200, 200, 200, 0.12);
-}
-
-:host(.polymer-ui-dark-theme:active:host, .polymer-ui-dark-theme.selected:active:host) {
-  background-color: rgba(200, 200, 200, 0.05);
-  box-shadow: inset 0 1px 0 0 rgba(200, 200, 200, 0.1), 0 0 0 1px rgba(200, 200, 200, 0.12);
-}
-
-polymer-ui-icon {
-  display: block !important;
-}</style>
-    <polymer-ui-icon src="{{src}}" index="{{index}}" icon="{{icon}}"><content></content></polymer-ui-icon>
-  </template>
-  <script>
-    Polymer('polymer-ui-icon-button', {
-      /**
-       * The URL of an image for the icon.
-       *
-       * @attribute src
-       * @type string
-       * @default ''
-       */
-      src: '',
-      /**
-       * If true, border is placed around the button to indicate
-       * active state.
-       *
-       * @attribute active
-       * @type boolean
-       * @default false
-       */
-      active: false,
-      /**
-       * Specifies the icon from the Polymer icon set.
-       *
-       * @attribute icon
-       * @type string
-       * @default ''
-       */
-      icon: '',
-      /**
-       * If a theme is applied that includes an icon set, the index of the 
-       * icon to display.
-       *
-       * @attribute index
-       * @type number
-       * @default -1
-       */     
-      index: -1,
-      activeChanged: function() {
-        // TODO(sjmiles): sugar this common case
-        this.classList.toggle('selected', this.active);
-      }
-    });
-  </script>
-</polymer-element>
-<style>
-      .message {
-        padding: 20px 10px;
-        background-color: white;
-        border-bottom: 1px solid lightgray;
-      }
-      #messages {
-        background-color: darkgrey;
-      }
-    </style>
-  </head>
-  <body class="polymer-ui-body-text" unresolved="">
-    <app-frame>
-      <polymer-ui-toolbar theme="polymer-ui-light-theme">
-        <polymer-ui-icon-button icon="menu" id="menu-button"></polymer-ui-icon-button>
-        <div flex="">Demo app</div>
-        <polymer-ui-icon-button icon="refresh"></polymer-ui-icon-button>
-        <polymer-ui-icon-button icon="add"></polymer-ui-icon-button>
-      </polymer-ui-toolbar>
-      <app-column>
-        <app-column id="messages" scrollable="">
-          <app-dismissable-item class="message">Lorem ipsum 1</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 2</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 3</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 4</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 5</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 6</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 7</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 8</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 9</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 10</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 11</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 12</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 13</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 14</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 15</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 16</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 17</app-dismissable-item>
-          <app-dismissable-item class="message">Lorem ipsum 18</app-dismissable-item>
-        </app-column>
-        <app-scrollarea-toolbar for="messages">
-          <polymer-ui-toolbar theme="polymer-ui-dark-theme">
-            <polymer-ui-icon-button icon="add" flex=""></polymer-ui-icon-button>
-            <polymer-ui-icon-button icon="sort" flex=""></polymer-ui-icon-button>
-            <polymer-ui-icon-button icon="gplus" flex=""></polymer-ui-icon-button>
-          </polymer-ui-toolbar>
-        </app-scrollarea-toolbar>
-        <app-scrollarea-toolbar for="messages" location="bottom">
-          <polymer-ui-toolbar theme="polymer-ui-dark-theme">
-            <polymer-ui-icon-button icon="add" flex=""></polymer-ui-icon-button>
-            <polymer-ui-icon-button icon="sort" flex=""></polymer-ui-icon-button>
-            <polymer-ui-icon-button icon="gplus" flex=""></polymer-ui-icon-button>
-          </polymer-ui-toolbar>
-        </app-scrollarea-toolbar>
-        <app-drawer id="nav-drawer">
-          <polymer-ui-menu selected="0" theme="polymer-ui-light-theme" active="false">
-            <polymer-ui-menu-item icon="settings" label="Settings"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="AAAAA"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="BBBBB"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="CCCCC"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="DDDDD"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="EEEEE"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="FFFFF"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="GGGGG"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="HHHHH"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="IIIII"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="JJJJJ"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="KKKKK"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="LLLLL"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="MMMMM"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="NNNNN"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="OOOOO"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="PPPPP"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="QQQQQ"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="RRRRR"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="SSSSS"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="TTTTT"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="UUUUU"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="VVVVV"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="WWWWW"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="XXXXX"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="YYYYY"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="dialog" label="ZZZZZ"></polymer-ui-menu-item>
-            <polymer-ui-menu-item icon="search" label="Search"></polymer-ui-menu-item>
-          </polymer-ui-menu>
-        </app-drawer>
-      </app-column>
-    </app-frame>
-    <script>
-      // document.addEventListener('WebComponentsReady', function() {
-      document.getElementById('menu-button').addEventListener('click', function() {
-        document.getElementById('nav-drawer').toggle();
-      });
-    </script>
-  </body>
-</html>
diff --git a/tools/perf/page_sets/rendering/key_hit_test_cases.py b/tools/perf/page_sets/rendering/key_hit_test_cases.py
deleted file mode 100644
index 60ec0ce6..0000000
--- a/tools/perf/page_sets/rendering/key_hit_test_cases.py
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 2014 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.
-from telemetry.page import shared_page_state
-
-from page_sets.rendering import polymer
-from page_sets.rendering import story_tags
-
-
-class PaperCalculatorHitTest(polymer.PolymerPage):
-  # Generated from https://github.com/zqureshi/paper-calculator
-  # vulcanize --inline --strip paper-calculator/demo.html
-  URL = 'file://../key_hit_test_cases/paper-calculator-no-rendering.html'
-  BASE_NAME = 'paper_calculator_hit_test'
-  TAGS = [story_tags.KEY_HIT_TEST]
-
-  def __init__(self,
-               page_set,
-               shared_page_state_class=shared_page_state.SharedPageState,
-               name_suffix='',
-               extra_browser_args=None):
-    super(PaperCalculatorHitTest, self).__init__(
-        page_set=page_set,
-        shared_page_state_class=shared_page_state_class,
-        name_suffix=name_suffix,
-        extra_browser_args=['--disable-top-sites', '--report-silk-details'])
-
-  def RunPageInteractions(self, action_runner):
-    return
-
-  def PerformPageInteractions(self, action_runner):
-    # pay cost of selecting tap target only once
-    action_runner.ExecuteJavaScript('''
-        window.__tapTarget = document.querySelector(
-            'body /deep/ #outerPanels'
-        ).querySelector(
-            '#standard'
-        ).shadowRoot.querySelector(
-            'paper-calculator-key[label="5"]'
-        )''')
-    action_runner.WaitForJavaScriptCondition(
-        'window.__tapTarget != null')
-
-    for _ in range(100):
-      self.TapButton(action_runner)
-
-  def TapButton(self, action_runner):
-    with action_runner.CreateInteraction('Action_TapAction'):
-      action_runner.TapElement(element_function='''window.__tapTarget''')
diff --git a/tools/perf/page_sets/rendering/key_silk_cases.py b/tools/perf/page_sets/rendering/key_silk_cases.py
index de632f0..b04cdcb7 100644
--- a/tools/perf/page_sets/rendering/key_silk_cases.py
+++ b/tools/perf/page_sets/rendering/key_silk_cases.py
@@ -331,97 +331,6 @@
       action_runner.Wait(5)
 
 
-class Page16(KeySilkPage):
-
-  BASE_NAME = 'swipe_action'
-  URL = 'file://../key_silk_cases/inbox_app.html?swipe_to_dismiss'
-
-  def SwipeToDismiss(self, action_runner):
-    with action_runner.CreateGestureInteraction('SwipeAction'):
-      action_runner.SwipeElement(
-          left_start_ratio=0.8, top_start_ratio=0.2,
-          direction='left', distance=400, speed_in_pixels_per_second=5000,
-          element_function='document.getElementsByClassName("message")[2]')
-
-  def PerformPageInteractions(self, action_runner):
-    self.SwipeToDismiss(action_runner)
-
-
-class Page17(KeySilkPage):
-
-  BASE_NAME = 'stress_hidey_bars'
-  URL = 'file://../key_silk_cases/inbox_app.html?stress_hidey_bars'
-
-  def PerformPageInteractions(self, action_runner):
-    self.StressHideyBars(action_runner)
-
-  def StressHideyBars(self, action_runner):
-    with action_runner.CreateGestureInteraction(
-        'ScrollAction', repeatable=True):
-      action_runner.WaitForElement(selector='#messages')
-      action_runner.ScrollElement(
-        selector='#messages', direction='down', speed_in_pixels_per_second=200)
-    with action_runner.CreateGestureInteraction(
-        'ScrollAction', repeatable=True):
-      action_runner.WaitForElement(selector='#messages')
-      action_runner.ScrollElement(
-          selector='#messages', direction='up', speed_in_pixels_per_second=200)
-    with action_runner.CreateGestureInteraction(
-        'ScrollAction', repeatable=True):
-      action_runner.WaitForElement(selector='#messages')
-      action_runner.ScrollElement(
-          selector='#messages', direction='down',
-          speed_in_pixels_per_second=200)
-
-
-class Page18(KeySilkPage):
-
-  BASE_NAME = 'toggle_drawer'
-  URL = 'file://../key_silk_cases/inbox_app.html?toggle_drawer'
-
-  def PerformPageInteractions(self, action_runner):
-    for _ in range(6):
-      self.ToggleDrawer(action_runner)
-
-  def ToggleDrawer(self, action_runner):
-    with action_runner.CreateInteraction('Action_TapAction', repeatable=True):
-      action_runner.TapElement('#menu-button')
-      action_runner.Wait(1)
-
-
-class Page19(KeySilkPage):
-
-  BASE_NAME = 'slide_drawer'
-  URL = 'file://../key_silk_cases/inbox_app.html?slide_drawer'
-
-  def ToggleDrawer(self, action_runner):
-    with action_runner.CreateGestureInteraction('TapAction'):
-      action_runner.TapElement('#menu-button')
-
-    with action_runner.CreateInteraction('Wait'):
-      action_runner.WaitForJavaScriptCondition('''
-          document.getElementById("nav-drawer").active &&
-          document.getElementById("nav-drawer").children[0]
-              .getBoundingClientRect().left == 0''')
-
-  def RunNavigateSteps(self, action_runner):
-    super(Page19, self).RunNavigateSteps(action_runner)
-    action_runner.Wait(2)
-    self.ToggleDrawer(action_runner)
-
-  def PerformPageInteractions(self, action_runner):
-    self.SlideDrawer(action_runner)
-
-  def SlideDrawer(self, action_runner):
-    with action_runner.CreateInteraction('Action_SwipeAction'):
-      action_runner.SwipeElement(
-          left_start_ratio=0.8, top_start_ratio=0.2,
-          direction='left', distance=200,
-          element_function='document.getElementById("nav-drawer").children[0]')
-      action_runner.WaitForJavaScriptCondition(
-          '!document.getElementById("nav-drawer").active')
-
-
 class Page20(KeySilkPage):
 
   """ Why: Shadow DOM infinite scrolling. """
@@ -648,71 +557,6 @@
       action_runner.Wait(10) # animation runs automatically
 
 
-class PolymerTopeka(KeySilkPage):
-
-  """ Why: Sample Polymer app. """
-
-  BASE_NAME = 'polymer_topeka'
-  URL = 'https://polymer-topeka.appspot.com/'
-
-  def PerformPageInteractions(self, action_runner):
-    profile = 'html /deep/ topeka-profile /deep/ '
-    first_name = profile + 'paper-input#first /deep/ input'
-    action_runner.WaitForElement(selector=first_name)
-    # Input First Name:
-    action_runner.ExecuteJavaScript('''
-        var fn = document.querySelector({{ first_name }});
-        fn.value = 'Chrome';
-        fn.fire('input');''',
-        first_name=first_name)
-    # Input Last Initial:
-    action_runner.ExecuteJavaScript('''
-        var li = document.querySelector({{ selector }});
-        li.value = 'E';
-        li.fire('input');''',
-        selector='%s paper-input#last /deep/ input' % profile)
-    with action_runner.CreateInteraction('animation_interaction'):
-      # Click the check-mark to login:
-      action_runner.ExecuteJavaScript('''
-          window.topeka_page_transitions = 0;
-          [].forEach.call(document.querySelectorAll(
-              'html /deep/ core-animated-pages'), function(p){
-                  p.addEventListener(
-                      'core-animated-pages-transition-end', function(e) {
-                          window.topeka_page_transitions++;
-                      });
-              });
-          document.querySelector({{ selector }}).fire('tap')''',
-          selector='%s paper-fab' % profile)
-      # Wait for category list to animate in:
-      action_runner.WaitForJavaScriptCondition('''
-          window.topeka_page_transitions === 1''')
-      # Click a category to start a quiz:
-      action_runner.ExecuteJavaScript('''
-          document.querySelector('\
-              html /deep/ core-selector.category-list').fire(
-              'tap',1,document.querySelector('html /deep/ \
-                      div.category-item.red-theme'));''')
-      # Wait for the category splash to animate in:
-      action_runner.WaitForJavaScriptCondition('''
-          window.topeka_page_transitions === 2''')
-      # Click to start the quiz:
-      action_runner.ExecuteJavaScript('''
-          document.querySelector('html /deep/ topeka-category-front-page /deep/\
-              paper-fab').fire('tap');''')
-      action_runner.WaitForJavaScriptCondition('''
-          window.topeka_page_transitions === 4''')
-      # Input a mostly correct answer:
-      action_runner.ExecuteJavaScript('''
-          document.querySelector('html /deep/ topeka-quiz-fill-blank /deep/\
-              input').value = 'arkinsaw';
-          document.querySelector('html /deep/ topeka-quiz-fill-blank /deep/\
-              input').fire('input');
-          document.querySelector('html /deep/ topeka-quizzes /deep/ \
-              paper-fab').fire('tap');''')
-      action_runner.WaitForJavaScriptCondition('''
-          window.topeka_page_transitions === 6''')
-
 class Masonry(KeySilkPage):
 
   """ Why: Popular layout hack. """
@@ -753,11 +597,6 @@
       Page13,
       Page14,
       Page15,
-      Page16,
-      Page17,
-      # Missing frames during tap interaction; crbug.com/446332
-      Page18,
-      Page19,
       Page20,
       GwsGoogleExpansion,
       GwsBoogieExpansion,
@@ -770,8 +609,6 @@
       SVGIconRaster,
       UpdateHistoryState,
       SilkFinance,
-      # Flaky interaction steps on Android; crbug.com/507865,
-      PolymerTopeka,
       Masonry
     ]
 
diff --git a/tools/perf/page_sets/rendering/polymer.py b/tools/perf/page_sets/rendering/polymer.py
deleted file mode 100644
index c7639ba..0000000
--- a/tools/perf/page_sets/rendering/polymer.py
+++ /dev/null
@@ -1,265 +0,0 @@
-# Copyright 2014 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.
-from telemetry.page import shared_page_state
-from telemetry.util import js_template
-
-from page_sets.rendering import rendering_story
-from page_sets.rendering import story_tags
-from page_sets.system_health import platforms
-
-
-class PolymerPage(rendering_story.RenderingStory):
-  """ Base class for all polymer pages.
-
-  Args:
-    run_no_page_interactions: whether the page will run any interactions after
-      navigate steps.
-  """
-  ABSTRACT_STORY = True
-  SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
-  TAGS = [story_tags.POLYMER]
-
-  def __init__(self,
-               page_set,
-               shared_page_state_class=shared_page_state.SharedMobilePageState,
-               name_suffix='',
-               extra_browser_args=None):
-
-    super(PolymerPage,
-          self).__init__(page_set=page_set,
-                         shared_page_state_class=shared_page_state_class,
-                         name_suffix=name_suffix,
-                         extra_browser_args=extra_browser_args)
-
-    self.script_to_evaluate_on_commit = '''
-      document.addEventListener("polymer-ready", function() {
-        window.__polymer_ready = true;
-      });
-    '''
-
-  def RunPageInteractions(self, action_runner):
-    # If a polymer page wants to customize its actions, it should
-    # override the PerformPageInteractions method instead of this method.
-    self.PerformPageInteractions(action_runner)
-
-  def PerformPageInteractions(self, action_runner):
-    """ Override this to perform actions after the page has navigated. """
-    pass
-
-  def RunNavigateSteps(self, action_runner):
-    super(PolymerPage, self).RunNavigateSteps(action_runner)
-    action_runner.WaitForJavaScriptCondition(
-        'window.__polymer_ready')
-
-
-class PolymerCalculatorPage(PolymerPage):
-  BASE_NAME = 'paper_calculator'
-  URL = 'http://www.polymer-project.org/components/paper-calculator/demo.html'
-
-  def PerformPageInteractions(self, action_runner):
-    self.TapButton(action_runner)
-    self.SlidePanel(action_runner)
-
-  def TapButton(self, action_runner):
-    with action_runner.CreateInteraction('PolymerAnimation', repeatable=True):
-      action_runner.TapElement(element_function='''
-          document.querySelector(
-              'body /deep/ #outerPanels'
-          ).querySelector(
-              '#standard'
-          ).shadowRoot.querySelector(
-              'paper-calculator-key[label="5"]'
-          )''')
-      action_runner.Wait(2)
-
-  def SlidePanel(self, action_runner):
-    # only bother with this interaction if the drawer is hidden
-    opened = action_runner.EvaluateJavaScript('''
-        (function() {
-          var outer = document.querySelector("body /deep/ #outerPanels");
-          return outer.opened || outer.wideMode;
-          }());''')
-    if not opened:
-      with action_runner.CreateInteraction('PolymerAnimation', repeatable=True):
-        action_runner.SwipeElement(
-            left_start_ratio=0.1, top_start_ratio=0.2,
-            direction='left', distance=300, speed_in_pixels_per_second=5000,
-            element_function='''
-                document.querySelector(
-                  'body /deep/ #outerPanels'
-                ).querySelector(
-                  '#advanced'
-                ).shadowRoot.querySelector(
-                  '.handle-bar'
-                )''')
-        action_runner.WaitForJavaScriptCondition('''
-            var outer = document.querySelector("body /deep/ #outerPanels");
-            outer.opened || outer.wideMode;''')
-
-
-class PolymerShadowPage(PolymerPage):
-  BASE_NAME = 'paper_shadow'
-  URL = 'http://www.polymer-project.org/components/paper-shadow/demo.html'
-
-  def PerformPageInteractions(self, action_runner):
-    with action_runner.CreateInteraction('ScrollAndShadowAnimation'):
-      action_runner.ExecuteJavaScript(
-          "document.getElementById('fab').scrollIntoView()")
-      action_runner.Wait(5)
-      self.AnimateShadow(action_runner, 'card')
-      #FIXME(wiltzius) disabling until this issue is fixed:
-      # https://github.com/Polymer/paper-shadow/issues/12
-      #self.AnimateShadow(action_runner, 'fab')
-
-  def AnimateShadow(self, action_runner, eid):
-    for i in range(1, 6):
-      action_runner.ExecuteJavaScript(
-          'document.getElementById({{ eid }}).z = {{ i }}', eid=eid, i=i)
-      action_runner.Wait(1)
-
-
-class PolymerSampler(PolymerPage):
-  """Page exercising interactions with a single Paper Sampler subpage.
-
-  Args:
-    page_set: Page set to inforporate this page into.
-    anchor: string indicating which subpage to load (matches the element
-        type that page is displaying)
-    scrolling_page: Whether scrolling the content pane is relevant to this
-        content page or not.
-  """
-
-  ABSTRACT_STORY = True
-  SCROLLING_PAGE = False
-  IFRAME_JS = 'document'
-
-  def RunNavigateSteps(self, action_runner):
-    super(PolymerSampler, self).RunNavigateSteps(action_runner)
-    action_runner.ExecuteJavaScript("""
-        window.Polymer.whenPolymerReady(function() {
-          {{ @iframe }}.contentWindow.Polymer.whenPolymerReady(function() {
-            window.__polymer_ready = true;
-          })
-        });
-        """, iframe=self.IFRAME_JS)
-    action_runner.WaitForJavaScriptCondition(
-        'window.__polymer_ready')
-
-  def PerformPageInteractions(self, action_runner):
-    #TODO(wiltzius) Add interactions for input elements and shadow pages
-    if self.SCROLLING_PAGE:
-      # Only bother scrolling the page if its been marked as worthwhile
-      self.ScrollContentPane(action_runner)
-    self.TouchEverything(action_runner)
-
-  def ScrollContentPane(self, action_runner):
-    element_function = (self.IFRAME_JS + '.querySelector('
-        '"core-scroll-header-panel").$.mainContainer')
-    with action_runner.CreateInteraction('Scroll_Page', repeatable=True):
-      action_runner.ScrollElement(use_touch=True,
-                                  direction='down',
-                                  distance='900',
-                                  element_function=element_function)
-    with action_runner.CreateInteraction('Scroll_Page', repeatable=True):
-      action_runner.ScrollElement(use_touch=True,
-                                  direction='up',
-                                  distance='900',
-                                  element_function=element_function)
-
-  def TouchEverything(self, action_runner):
-    tappable_types = [
-        'paper-button',
-        'paper-checkbox',
-        'paper-fab',
-        'paper-icon-button',
-        # crbug.com/394756
-        # 'paper-radio-button',
-        'paper-tab',
-        'paper-toggle-button',
-        'x-shadow',
-        ]
-    for tappable_type in tappable_types:
-      self.DoActionOnWidgetType(action_runner, tappable_type, self.TapWidget)
-    swipeable_types = ['paper-slider']
-    for swipeable_type in swipeable_types:
-      self.DoActionOnWidgetType(action_runner, swipeable_type, self.SwipeWidget)
-
-  def DoActionOnWidgetType(self, action_runner, widget_type, action_function):
-    # Find all widgets of this type, but skip any that are disabled or are
-    # currently active as they typically don't produce animation frames.
-    element_list_query = js_template.Render(
-        '{{ @iframe }}.querySelectorAll({{ selector }})',
-        iframe=self.IFRAME_JS,
-        selector='body %s:not([disabled]):not([active])' % widget_type)
-
-    roles_count_query = element_list_query + '.length'
-    for i in range(action_runner.EvaluateJavaScript(roles_count_query)):
-      element_query = js_template.Render(
-        '{{ @query }}[{{ i }}]', query=element_list_query, i=i)
-      if action_runner.EvaluateJavaScript(
-          element_query + '.offsetParent != null'):
-        # Only try to tap on visible elements (offsetParent != null)
-        action_runner.ExecuteJavaScript(element_query + '.scrollIntoView()')
-        action_runner.Wait(1) # wait for page to settle after scrolling
-        action_function(action_runner, element_query)
-
-  def TapWidget(self, action_runner, element_function):
-    with action_runner.CreateInteraction('Tap_Widget', repeatable=True):
-      action_runner.TapElement(element_function=element_function)
-      action_runner.Wait(1) # wait for e.g. animations on the widget
-
-  def SwipeWidget(self, action_runner, element_function):
-    with action_runner.CreateInteraction('Swipe_Widget'):
-      action_runner.SwipeElement(element_function=element_function,
-                                 left_start_ratio=0.75,
-                                 speed_in_pixels_per_second=300)
-
-
-class PaperButtonPage(PolymerSampler):
-  BASE_NAME = 'paper_button'
-  URL = 'http://www.polymer-project.org/components/paper-button/demo.html'
-
-
-class PaperCheckboxPage(PolymerSampler):
-  BASE_NAME = 'paper_checkbox'
-  URL = 'http://www.polymer-project.org/components/paper-checkbox/demo.html'
-
-
-class PaperFabPage(PolymerSampler):
-  BASE_NAME = 'paper_fab'
-  URL = 'http://www.polymer-project.org/components/paper-fab/demo.html'
-
-
-class PaperIconButtonPage(PolymerSampler):
-  BASE_NAME = 'paper_icon_button'
-  URL = 'http://www.polymer-project.org/components/paper-icon-button/demo.html'
-
-
-# crbug.com/394756
-# class PaperRadioButtonPage(PolymerSampler):
-#   BASE_NAME = 'paper_radio_button'
-#   URL = 'http://www.polymer-project.org/components/paper-radio-button/demo.html'
-
-
-# FIXME(wiltzius) Disabling x-shadow until this issue is fixed:
-# https://github.com/Polymer/paper-shadow/issues/12
-# class PaperShadowPage(PolymerSampler):
-#   BASE_NAME = 'paper_shadow'
-#   URL = 'http://www.polymer-project.org/components/paper-shadow/demo.html'
-
-
-class PaperTabsPage(PolymerSampler):
-  BASE_NAME = 'paper_tabs'
-  URL = 'http://www.polymer-project.org/components/paper-tabs/demo.html'
-
-
-class PaperToggleButtonPage(PolymerSampler):
-  BASE_NAME = 'paper_toggle_button'
-  URL = 'http://www.polymer-project.org/components/paper-toggle-button/demo.html'
-
-
-class CoreScrollHeaderPanelPage(PolymerSampler):
-  BASE_NAME = 'core_scroll_header_panel'
-  URL = 'http://www.polymer-project.org/components/core-scroll-header-panel/demo.html'
-  SCROLLING_PAGE = True
diff --git a/tools/perf/page_sets/rendering/story_tags.py b/tools/perf/page_sets/rendering/story_tags.py
index 1458e35..b85ae5f 100644
--- a/tools/perf/page_sets/rendering/story_tags.py
+++ b/tools/perf/page_sets/rendering/story_tags.py
@@ -29,8 +29,6 @@
                        'rasterization) to compare YUV and RGB'))
 KEY_DESKTOP_MOVE = Tag(
     'key_desktop_move', 'Key desktop move stories')
-KEY_HIT_TEST = Tag(
-    'key_hit_test', 'Key hit test stories')
 KEY_SILK = Tag(
     'key_silk', 'Key silk stories')
 KEY_NOOP = Tag(
@@ -45,8 +43,6 @@
                       'Motionmark benchmark stories (ramped complexity)')
 PATHOLOGICAL_MOBILE_SITES = Tag(
     'pathological_mobile_sites', 'Pathological mobile sites')
-POLYMER = Tag(
-    'polymer', 'Polymer stories')
 REPAINT_DESKTOP = Tag(
     'repaint_desktop', 'Repaint desktop stories')
 # Representative story_tags are the cluster representatives of benchamrks