diff --git a/composer.json b/composer.json
index b5e4dbfdb70d24dec003177319d55d01329c3182..ccb6749cae1b7d3b865e6d952906a1a286a9f5e3 100644
--- a/composer.json
+++ b/composer.json
@@ -121,7 +121,7 @@
         "drupal/field_permissions": "1.2",
         "drupal/focal_point": "2.0.1",
         "drupal/google_analytics": "^4.0",
-        "drupal/google_tag": "1.5",
+        "drupal/google_tag": "1.6",
         "drupal/honeypot": "2.1.2",
         "drupal/inline_entity_form": "1.0-rc15",
         "drupal/libraries": "4.0",
diff --git a/composer.lock b/composer.lock
index 4daa7b7e754e45907f40903cf30c97756fee61f2..9e9fc989e41e73afcb60141d2199a4ab0b9d697c 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4305,26 +4305,26 @@
         },
         {
             "name": "drupal/google_tag",
-            "version": "1.5.0",
+            "version": "1.6.0",
             "source": {
                 "type": "git",
                 "url": "https://git.drupalcode.org/project/google_tag.git",
-                "reference": "8.x-1.5"
+                "reference": "8.x-1.6"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://ftp.drupal.org/files/projects/google_tag-8.x-1.5.zip",
-                "reference": "8.x-1.5",
-                "shasum": "b2929a517cc86bb3e54dded127556f18236a8628"
+                "url": "https://ftp.drupal.org/files/projects/google_tag-8.x-1.6.zip",
+                "reference": "8.x-1.6",
+                "shasum": "d084315e54c2e561b8b64eef86081c2634d054cd"
             },
             "require": {
-                "drupal/core": "^8.8 || ^9"
+                "drupal/core": "^8.8 || ^9 || ^10"
             },
             "type": "drupal-module",
             "extra": {
                 "drupal": {
-                    "version": "8.x-1.5",
-                    "datestamp": "1648569365",
+                    "version": "8.x-1.6",
+                    "datestamp": "1671145853",
                     "security-coverage": {
                         "status": "covered",
                         "message": "Covered by Drupal's security advisory policy"
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index bfab05d89ff864eeb0b856dbd525088d24d52967..53385bd2af16b1971be359975192aa1e7cb79e1e 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -4455,27 +4455,27 @@
         },
         {
             "name": "drupal/google_tag",
-            "version": "1.5.0",
-            "version_normalized": "1.5.0.0",
+            "version": "1.6.0",
+            "version_normalized": "1.6.0.0",
             "source": {
                 "type": "git",
                 "url": "https://git.drupalcode.org/project/google_tag.git",
-                "reference": "8.x-1.5"
+                "reference": "8.x-1.6"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://ftp.drupal.org/files/projects/google_tag-8.x-1.5.zip",
-                "reference": "8.x-1.5",
-                "shasum": "b2929a517cc86bb3e54dded127556f18236a8628"
+                "url": "https://ftp.drupal.org/files/projects/google_tag-8.x-1.6.zip",
+                "reference": "8.x-1.6",
+                "shasum": "d084315e54c2e561b8b64eef86081c2634d054cd"
             },
             "require": {
-                "drupal/core": "^8.8 || ^9"
+                "drupal/core": "^8.8 || ^9 || ^10"
             },
             "type": "drupal-module",
             "extra": {
                 "drupal": {
-                    "version": "8.x-1.5",
-                    "datestamp": "1648569365",
+                    "version": "8.x-1.6",
+                    "datestamp": "1671145853",
                     "security-coverage": {
                         "status": "covered",
                         "message": "Covered by Drupal's security advisory policy"
@@ -4488,6 +4488,22 @@
                 "GPL-2.0-or-later"
             ],
             "authors": [
+                {
+                    "name": "acquia",
+                    "homepage": "https://www.drupal.org/user/1231722"
+                },
+                {
+                    "name": "japerry",
+                    "homepage": "https://www.drupal.org/user/45640"
+                },
+                {
+                    "name": "kaynen",
+                    "homepage": "https://www.drupal.org/user/733308"
+                },
+                {
+                    "name": "mglaman",
+                    "homepage": "https://www.drupal.org/user/2416470"
+                },
                 {
                     "name": "solotandem",
                     "homepage": "https://www.drupal.org/user/240748"
diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php
index 9d5e55512970098cd04cff649dfd77b58d9fb8e7..3c443cd1861c3c755547d7b0a89c5f088da00205 100644
--- a/vendor/composer/installed.php
+++ b/vendor/composer/installed.php
@@ -779,9 +779,9 @@
             'dev_requirement' => false,
         ),
         'drupal/google_tag' => array(
-            'pretty_version' => '1.5.0',
-            'version' => '1.5.0.0',
-            'reference' => '8.x-1.5',
+            'pretty_version' => '1.6.0',
+            'version' => '1.6.0.0',
+            'reference' => '8.x-1.6',
             'type' => 'drupal-module',
             'install_path' => __DIR__ . '/../../web/modules/google_tag',
             'aliases' => array(),
diff --git a/web/modules/google_tag/README.md b/web/modules/google_tag/README.md
index eb14d22b192c7748a962f17c9f8515f6064da479..fc75b8ee29975e6695f57df576567344d86af580 100644
--- a/web/modules/google_tag/README.md
+++ b/web/modules/google_tag/README.md
@@ -95,6 +95,11 @@ code on the script tag. It does not load the snippet file and inspect the code
 therein. Instead of relying on this bot, check whether the GTM snippets are
 loaded as a result of the snippet added by this project.
 
+If you run Drush as other than the web user, then do not enable the 'Recreate
+snippets on cache rebuild' module setting. Otherwise snippet files will be
+created and owned by the user running Drush. On the next cache rebuild the web
+user may not be able to delete the files (resulting in a fatal error).
+
 ## MAINTAINERS
 
 Current maintainer:
diff --git a/web/modules/google_tag/composer.json b/web/modules/google_tag/composer.json
index 47b00aa1032b4df1d61d0d8835bde80a99cc169d..55201156d5158c9ee8f1e5867a2707d1329f07ff 100644
--- a/web/modules/google_tag/composer.json
+++ b/web/modules/google_tag/composer.json
@@ -2,8 +2,5 @@
     "name": "drupal/google_tag",
     "description": "Allows your website analytics to be managed using Google Tag Manager.",
     "type": "drupal-module",
-    "license": "GPL-2.0-or-later",
-    "require": {
-        "drupal/core": "^8.8 || ^9"
-    }
+    "license": "GPL-2.0-or-later"
 }
diff --git a/web/modules/google_tag/config/install/google_tag.settings.yml b/web/modules/google_tag/config/install/google_tag.settings.yml
index cc20edfcf98690e833cf886e6de62629ea7aa16f..159fc4d0a4837e3c112cf09f57b484adf37cb3c1 100644
--- a/web/modules/google_tag/config/install/google_tag.settings.yml
+++ b/web/modules/google_tag/config/install/google_tag.settings.yml
@@ -1,13 +1,13 @@
 uri: 'public:/'
 compact_snippet: true
 include_file: true
-rebuild_snippets: true
+rebuild_snippets: false
 flush_snippets: false
 debug_output: false
 _default_container:
   container_id: ''
   path_toggle: 'exclude listed'
-  path_list: "/admin*\n/batch*\n/node/add*\n/node/*/edit\n/node/*/delete\n/user/*/edit*\n/user/*/cancel*"
+  path_list: "/admin*\n/batch*\n/node/add*\n/node/*/edit\n/node/*/delete\n/node/*/layout\n/taxonomy/term/*/edit\n/taxonomy/term/*/layout\n/user/*/edit*\n/user/*/cancel*\n/user/*/layout"
   role_toggle: 'exclude listed'
   role_list: {}
   status_toggle: 'exclude listed'
diff --git a/web/modules/google_tag/google_tag.info.yml b/web/modules/google_tag/google_tag.info.yml
index 032639ce7ebf5943b7b88643583c308e7395e174..4fb20cdc2dc0df892e7a1f664a922c808925928b 100644
--- a/web/modules/google_tag/google_tag.info.yml
+++ b/web/modules/google_tag/google_tag.info.yml
@@ -2,10 +2,10 @@ name: 'Google Tag Manager'
 type: module
 description: 'Allows your website analytics to be managed using Google Tag Manager.'
 package: 'Statistics'
-core_version_requirement: ^8.8 || ^9
+core_version_requirement: ^8.8 || ^9 || ^10
 configure: google_tag.settings_form
 
-# Information added by Drupal.org packaging script on 2022-03-29
-version: '8.x-1.5'
+# Information added by Drupal.org packaging script on 2022-12-15
+version: '8.x-1.6'
 project: 'google_tag'
-datestamp: 1648569368
+datestamp: 1671145855
diff --git a/web/modules/google_tag/js/google_tag.admin.js b/web/modules/google_tag/js/google_tag.admin.js
index d26f17c791585bca19b47675193ec75cf811ff76..1f75439d7b6441a1d93c627a51f6911aa8e30f00 100644
--- a/web/modules/google_tag/js/google_tag.admin.js
+++ b/web/modules/google_tag/js/google_tag.admin.js
@@ -22,28 +22,18 @@
           var str = '';
           var toggle = $('input[type="radio"]:checked', context).val();
           var values;
-          if (element == 'checkbox') {
-            values = $('input[type="checkbox"]:checked + label', context).length;
-          }
-          else {
-            var values = $('textarea', context).val();
-          }
-          if (toggle == 'exclude listed') {
-            if (!values) {
-              str = 'All !plural';
-            }
-            else {
-              str = 'All !plural except !adjective !plural';
-            }
+
+          values = element === 'checkbox' ?
+            $('input[type="checkbox"]:checked + label', context).length :
+            $('textarea', context).val();
+
+          if (toggle === 'exclude listed') {
+            str = !values ? 'All !plural' : 'All !plural except !adjective !plural';
           }
           else {
-            if (!values) {
-              str = 'No !plural';
-            }
-            else {
-              str = 'Only !adjective !plural';
-            }
+            str = !values ? 'No !plural' : 'Only !adjective !plural';
           }
+
           const args = {'!plural': plural, '!adjective': adjective};
           return Drupal.t(Drupal.formatString(str, args));
         }
diff --git a/web/modules/google_tag/src/Entity/Container.php b/web/modules/google_tag/src/Entity/Container.php
index 5ab83755fb899feaa68f9bf250c9d71a5e4d3e4e..02b9a2e6aa0eeb25ca354de65be2e0db111b6403 100644
--- a/web/modules/google_tag/src/Entity/Container.php
+++ b/web/modules/google_tag/src/Entity/Container.php
@@ -244,7 +244,7 @@ public function snippets() {
       'data_layer' => $this->dataLayerSnippet(),
     ];
     // Allow other modules to alter the snippets.
-    \Drupal::moduleHandler()->alter('google_tag_snippets', $snippets, $this);
+    $this->moduleHandler()->alter('google_tag_snippets', $snippets, $this);
     return $snippets;
   }
 
@@ -289,7 +289,7 @@ protected function noscriptSnippet() {
 
     // Build noscript snippet.
     $noscript = <<<EOS
-<noscript aria-hidden="true"><iframe src="https://www.googletagmanager.com/ns.html?id=$container_id$query"
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=$container_id$query"
  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
 EOS;
     return $this->compactSnippet($noscript, ["\n"]);
@@ -407,7 +407,7 @@ public function insertSnippet() {
       }
 
       // Allow other modules to alter the insertion criteria.
-      \Drupal::moduleHandler()->alter('google_tag_insert', $satisfied[$this->id], $this);
+      $this->moduleHandler()->alter('google_tag_insert', $satisfied[$this->id], $this);
       $this->displayMessage('after alter @satisfied', ['@satisfied' => $satisfied[$this->id]]);
     }
     return $satisfied[$this->id];
@@ -557,8 +557,7 @@ public function fileTag($type, $weight) {
     $uri = $this->snippetURI($type);
     // Remove the if-else when core_version_requirement >= 9.3 for this module.
     if (\Drupal::hasService('file_url_generator')) {
-      $generator = \Drupal::service('file_url_generator');
-      $url = $generator->transformRelative($generator->generateAbsoluteString($uri));
+      $url = \Drupal::service('file_url_generator')->generateString($uri);
     }
     else {
       $url = file_url_transform_relative(file_create_url($uri));
diff --git a/web/modules/google_tag/src/Form/SettingsForm.php b/web/modules/google_tag/src/Form/SettingsForm.php
index 0411e564e5f401db9e13c4556dc2f4ddddf6badb..33b2ecd251495f8141e2904601de830e670c3d01 100644
--- a/web/modules/google_tag/src/Form/SettingsForm.php
+++ b/web/modules/google_tag/src/Form/SettingsForm.php
@@ -110,7 +110,7 @@ public function moduleFieldset(FormStateInterface $form_state) {
     $fieldset['rebuild_snippets'] = [
       '#type' => 'checkbox',
       '#title' => $this->t('Recreate snippets on cache rebuild'),
-      '#description' => $this->t('If checked, then the JavaScript snippet files will be created during a cache rebuild. This is <strong>recommended on production sites</strong>. If not checked, any missing snippet files will be created during a page response.'),
+      '#description' => $this->t('If checked, then the JavaScript snippet files will be created during a cache rebuild. If not checked, any missing snippet files will be created during a page response. NOTE: If Drush commands are run as a user other than the web user, then do NOT enable this setting unless the web user has permission to delete files created by the Drush user.'),
       '#default_value' => $config->get('rebuild_snippets'),
     ];
 
diff --git a/web/modules/google_tag/src/Plugin/Condition/Language.php b/web/modules/google_tag/src/Plugin/Condition/Language.php
index ef99d1bf4bd1ae1ba3070d6909b35b898345a25a..5b234272e4b675fb31b431a23759630b2318194e 100644
--- a/web/modules/google_tag/src/Plugin/Condition/Language.php
+++ b/web/modules/google_tag/src/Plugin/Condition/Language.php
@@ -87,7 +87,7 @@ public function summary() {
     $languages = $this->languageManager->getLanguages(LanguageInterface::STATE_ALL);
     $selected = $this->configuration['language_list'];
     // Reduce the language object list to a language name list.
-    $this->values = array_reduce($languages, function (&$names, $language) use ($selected) {
+    $this->values = array_reduce($languages, function ($names, $language) use ($selected) {
       if (!empty($selected[$language->getId()])) {
         $names[$language->getId()] = $language->getName();
       }
diff --git a/web/modules/google_tag/tests/src/Functional/GTMMultipleTest.php b/web/modules/google_tag/tests/src/Functional/GTMMultipleTest.php
index 6acd621b286d9582fdeaf90c9bef84460bb3deb5..22494e5b81213a4996b99690b197fa0dd68a8355 100644
--- a/web/modules/google_tag/tests/src/Functional/GTMMultipleTest.php
+++ b/web/modules/google_tag/tests/src/Functional/GTMMultipleTest.php
@@ -84,8 +84,7 @@ protected function checkPageResponseFile() {
         $uri = "$this->basePath/google_tag/{$key}/google_tag.$type.js";
         // Remove the if-else when core_version_requirement >= 9.3 for this module.
         if (\Drupal::hasService('file_url_generator')) {
-          $generator = \Drupal::service('file_url_generator');
-          $url = $generator->transformRelative($generator->generateAbsoluteString($uri));
+          $url = \Drupal::service('file_url_generator')->generateString($uri);
         }
         else {
           $url = file_url_transform_relative(file_create_url($uri));
diff --git a/web/modules/google_tag/tests/src/Functional/GTMTestBase.php b/web/modules/google_tag/tests/src/Functional/GTMTestBase.php
index 22e5a130934d4931264da9e39b8b3061cc8461ec..b0a982aee5d13b958d16f905fc6f22ad3daf1860 100644
--- a/web/modules/google_tag/tests/src/Functional/GTMTestBase.php
+++ b/web/modules/google_tag/tests/src/Functional/GTMTestBase.php
@@ -62,7 +62,7 @@ abstract class GTMTestBase extends BrowserTestBase {
   /**
    * {@inheritdoc}
    */
-  protected function setUp() {
+  protected function setUp(): void {
     $this->defaultTheme = 'stark';
     parent::setUp();
     $this->basePath = $this->config('google_tag.settings')->get('uri');
@@ -190,7 +190,8 @@ protected function deleteContainers() {
 
     // Confirm no snippet files.
     $message = 'No snippet files found after delete';
-    parent::assertDirectoryNotExists($directory . '/google_tag', $message);
+    $method = method_exists($parent, $a = 'assertDirectoryDoesNotExist') ? $a : 'assertDirectoryNotExists';
+    parent::$method($directory . '/google_tag', $message);
   }
 
   /**