<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[55237] trunk/src: External Libraries: Update jQuery Migrate to version 3.4.0.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/55237">55237</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/55237","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>audrasjb</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2023-02-06 20:57:05 +0000 (Mon, 06 Feb 2023)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>External Libraries: Update jQuery Migrate to version 3.4.0.

A full list of changes in this release can be found upstream on the jQuery Migrate GitHub repository:
https://github.com/jquery/jquery-migrate/compare/3.3.2...3.4.0.

Props desrosj, audrasjb, a4jpcom, stalukder03, mukesh27, adeltahri, robinwpdeveloper, mahbubshovan.
Fixes <a href="https://core.trac.wordpress.org/ticket/56743">#56743</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcjs_enqueuesvendorjqueryjquerymigratejs">trunk/src/js/_enqueues/vendor/jquery/jquery-migrate.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendorjqueryjquerymigrateminjs">trunk/src/js/_enqueues/vendor/jquery/jquery-migrate.min.js</a></li>
<li><a href="#trunksrcwpincludesscriptloaderphp">trunk/src/wp-includes/script-loader.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcjs_enqueuesvendorjqueryjquerymigratejs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/jquery/jquery-migrate.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/jquery/jquery-migrate.js    2023-02-06 19:57:41 UTC (rev 55236)
+++ trunk/src/js/_enqueues/vendor/jquery/jquery-migrate.js      2023-02-06 20:57:05 UTC (rev 55237)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,5 +1,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /*!
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * jQuery Migrate - v3.3.2 - 2020-11-18T08:29Z
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * jQuery Migrate - v3.4.0 - 2022-03-24T16:30Z
</ins><span class="cx" style="display: block; padding: 0 10px">  * Copyright OpenJS Foundation and other contributors
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> ( function( factory ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,7 +24,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> } )( function( jQuery, window ) {
</span><span class="cx" style="display: block; padding: 0 10px"> "use strict";
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.migrateVersion = "3.3.2";
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+jQuery.migrateVersion = "3.4.0";
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> // Returns 0 if v1 == v2, -1 if v1 < v2, 1 if v1 > v2
</span><span class="cx" style="display: block; padding: 0 10px"> function compareVersions( v1, v2 ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -48,6 +48,40 @@
</span><span class="cx" style="display: block; padding: 0 10px">        return compareVersions( jQuery.fn.jquery, version ) >= 0;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+// A map from disabled patch codes to `true`. This should really
+// be a `Set` but those are unsupported in IE.
+var disabledPatches = Object.create( null );
+
+// Don't apply patches for specified codes. Helpful for code bases
+// where some Migrate warnings have been addressed and it's desirable
+// to avoid needless patches or false positives.
+jQuery.migrateDisablePatches = function() {
+       var i;
+       for ( i = 0; i < arguments.length; i++ ) {
+               disabledPatches[ arguments[ i ] ] = true;
+       }
+};
+
+// Allow enabling patches disabled via `jQuery.migrateDisablePatches`.
+// Helpful if you want to disable a patch only for some code that won't
+// be updated soon to be able to focus on other warnings - and enable it
+// immediately after such a call:
+// ```js
+// jQuery.migrateDisablePatches( "workaroundA" );
+// elem.pluginViolatingWarningA( "pluginMethod" );
+// jQuery.migrateEnablePatches( "workaroundA" );
+// ```
+jQuery.migrateEnablePatches = function() {
+       var i;
+       for ( i = 0; i < arguments.length; i++ ) {
+               delete disabledPatches[ arguments[ i ] ];
+       }
+};
+
+jQuery.migrateIsPatchEnabled = function( patchCode ) {
+       return !disabledPatches[ patchCode ];
+};
+
</ins><span class="cx" style="display: block; padding: 0 10px"> ( function() {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Support: IE9 only
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -91,11 +125,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">        jQuery.migrateWarnings.length = 0;
</span><span class="cx" style="display: block; padding: 0 10px"> };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-function migrateWarn( msg ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+function migrateWarn( code, msg ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var console = window.console;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ( !jQuery.migrateDeduplicateWarnings || !warnedAbout[ msg ] ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if ( jQuery.migrateIsPatchEnabled( code ) &&
+               ( !jQuery.migrateDeduplicateWarnings || !warnedAbout[ msg ] ) ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 warnedAbout[ msg ] = true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                jQuery.migrateWarnings.push( msg );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         jQuery.migrateWarnings.push( msg + " [" + code + "]" );
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( console && console.warn && !jQuery.migrateMute ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        console.warn( "JQMIGRATE: " + msg );
</span><span class="cx" style="display: block; padding: 0 10px">                        if ( jQuery.migrateTrace && console.trace ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -105,32 +140,62 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-function migrateWarnProp( obj, prop, value, msg ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+function migrateWarnProp( obj, prop, value, code, msg ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         Object.defineProperty( obj, prop, {
</span><span class="cx" style="display: block; padding: 0 10px">                configurable: true,
</span><span class="cx" style="display: block; padding: 0 10px">                enumerable: true,
</span><span class="cx" style="display: block; padding: 0 10px">                get: function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        migrateWarn( msg );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 migrateWarn( code, msg );
</ins><span class="cx" style="display: block; padding: 0 10px">                         return value;
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><span class="cx" style="display: block; padding: 0 10px">                set: function( newValue ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        migrateWarn( msg );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 migrateWarn( code, msg );
</ins><span class="cx" style="display: block; padding: 0 10px">                         value = newValue;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-function migrateWarnFunc( obj, prop, newFunc, msg ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+function migrateWarnFuncInternal( obj, prop, newFunc, code, msg ) {
+       var finalFunc,
+               origFunc = obj[ prop ];
+
</ins><span class="cx" style="display: block; padding: 0 10px">         obj[ prop ] = function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                migrateWarn( msg );
-               return newFunc.apply( this, arguments );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               // If `msg` not provided, do not warn; more sophisticated warnings
+               // logic is most likely embedded in `newFunc`, in that case here
+               // we just care about the logic choosing the proper implementation
+               // based on whether the patch is disabled or not.
+               if ( msg ) {
+                       migrateWarn( code, msg );
+               }
+
+               // Since patches can be disabled & enabled dynamically, we
+               // need to decide which implementation to run on each invocation.
+               finalFunc = jQuery.migrateIsPatchEnabled( code ) ?
+                       newFunc :
+
+                       // The function may not have existed originally so we need a fallback.
+                       ( origFunc || jQuery.noop );
+
+               return finalFunc.apply( this, arguments );
</ins><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+function migratePatchAndWarnFunc( obj, prop, newFunc, code, msg ) {
+       if ( !msg ) {
+               throw new Error( "No warning message provided" );
+       }
+       return migrateWarnFuncInternal( obj, prop, newFunc, code, msg );
+}
+
+function migratePatchFunc( obj, prop, newFunc, code ) {
+       return migrateWarnFuncInternal( obj, prop, newFunc, code );
+}
+
</ins><span class="cx" style="display: block; padding: 0 10px"> if ( window.document.compatMode === "BackCompat" ) {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        // JQuery has never supported or tested Quirks Mode
-       migrateWarn( "jQuery is not compatible with Quirks Mode" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // jQuery has never supported or tested Quirks Mode
+       migrateWarn( "quirks", "jQuery is not compatible with Quirks Mode" );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> var findProp,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -145,21 +210,27 @@
</span><span class="cx" style="display: block; padding: 0 10px">        // Make sure we trim BOM and NBSP
</span><span class="cx" style="display: block; padding: 0 10px">        rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.fn.init = function( arg1 ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery.fn, "init", function( arg1 ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var args = Array.prototype.slice.call( arguments );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ( typeof arg1 === "string" && arg1 === "#" ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if ( jQuery.migrateIsPatchEnabled( "selector-empty-id" ) &&
+               typeof arg1 === "string" && arg1 === "#" ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                // JQuery( "#" ) is a bogus ID selector, but it returned an empty set before jQuery 3.0
-               migrateWarn( "jQuery( '#' ) is not a valid selector" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         // JQuery( "#" ) is a bogus ID selector, but it returned an empty set
+               // before jQuery 3.0
+               migrateWarn( "selector-empty-id", "jQuery( '#' ) is not a valid selector" );
</ins><span class="cx" style="display: block; padding: 0 10px">                 args[ 0 ] = [];
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        return oldInit.apply( this, args );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}, "selector-empty-id" );
+
+// This is already done in Core but the above patch will lose this assignment
+// so we need to redo it. It doesn't matter whether the patch is enabled or not
+// as the method is always going to be a Migrate-created wrapper.
</ins><span class="cx" style="display: block; padding: 0 10px"> jQuery.fn.init.prototype = jQuery.fn;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.find = function( selector ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery, "find", function( selector ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var args = Array.prototype.slice.call( arguments );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Support: PhantomJS 1.x
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -181,16 +252,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        // Note that there may be false alarms if selector uses jQuery extensions
</span><span class="cx" style="display: block; padding: 0 10px">                        try {
</span><span class="cx" style="display: block; padding: 0 10px">                                window.document.querySelector( selector );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                migrateWarn( "Attribute selector with '#' must be quoted: " + args[ 0 ] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         migrateWarn( "selector-hash",
+                                       "Attribute selector with '#' must be quoted: " + args[ 0 ] );
</ins><span class="cx" style="display: block; padding: 0 10px">                                 args[ 0 ] = selector;
</span><span class="cx" style="display: block; padding: 0 10px">                        } catch ( err2 ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                migrateWarn( "Attribute selector with '#' was not fixed: " + args[ 0 ] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         migrateWarn( "selector-hash",
+                                       "Attribute selector with '#' was not fixed: " + args[ 0 ] );
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        return oldFind.apply( this, args );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}, "selector-hash" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> // Copy properties attached to original jQuery.find method (e.g. .attr, .isXML)
</span><span class="cx" style="display: block; padding: 0 10px"> for ( findProp in oldFind ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -200,46 +273,46 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> // The number of elements contained in the matched element set
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-migrateWarnFunc( jQuery.fn, "size", function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchAndWarnFunc( jQuery.fn, "size", function() {
</ins><span class="cx" style="display: block; padding: 0 10px">         return this.length;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-},
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}, "size",
</ins><span class="cx" style="display: block; padding: 0 10px"> "jQuery.fn.size() is deprecated and removed; use the .length property" );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-migrateWarnFunc( jQuery, "parseJSON", function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchAndWarnFunc( jQuery, "parseJSON", function() {
</ins><span class="cx" style="display: block; padding: 0 10px">         return JSON.parse.apply( null, arguments );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-},
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}, "parseJSON",
</ins><span class="cx" style="display: block; padding: 0 10px"> "jQuery.parseJSON is deprecated; use JSON.parse" );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-migrateWarnFunc( jQuery, "holdReady", jQuery.holdReady,
-       "jQuery.holdReady is deprecated" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchAndWarnFunc( jQuery, "holdReady", jQuery.holdReady,
+       "holdReady", "jQuery.holdReady is deprecated" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-migrateWarnFunc( jQuery, "unique", jQuery.uniqueSort,
-       "jQuery.unique is deprecated; use jQuery.uniqueSort" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchAndWarnFunc( jQuery, "unique", jQuery.uniqueSort,
+       "unique", "jQuery.unique is deprecated; use jQuery.uniqueSort" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> // Now jQuery.expr.pseudos is the standard incantation
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-migrateWarnProp( jQuery.expr, "filters", jQuery.expr.pseudos,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migrateWarnProp( jQuery.expr, "filters", jQuery.expr.pseudos, "expr-pre-pseudos",
</ins><span class="cx" style="display: block; padding: 0 10px">         "jQuery.expr.filters is deprecated; use jQuery.expr.pseudos" );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-migrateWarnProp( jQuery.expr, ":", jQuery.expr.pseudos,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migrateWarnProp( jQuery.expr, ":", jQuery.expr.pseudos, "expr-pre-pseudos",
</ins><span class="cx" style="display: block; padding: 0 10px">         "jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos" );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> // Prior to jQuery 3.1.1 there were internal refs so we don't warn there
</span><span class="cx" style="display: block; padding: 0 10px"> if ( jQueryVersionSince( "3.1.1" ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        migrateWarnFunc( jQuery, "trim", function( text ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ migratePatchAndWarnFunc( jQuery, "trim", function( text ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 return text == null ?
</span><span class="cx" style="display: block; padding: 0 10px">                        "" :
</span><span class="cx" style="display: block; padding: 0 10px">                        ( text + "" ).replace( rtrim, "" );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        },
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ }, "trim",
</ins><span class="cx" style="display: block; padding: 0 10px">         "jQuery.trim is deprecated; use String.prototype.trim" );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> // Prior to jQuery 3.2 there were internal refs so we don't warn there
</span><span class="cx" style="display: block; padding: 0 10px"> if ( jQueryVersionSince( "3.2.0" ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        migrateWarnFunc( jQuery, "nodeName", function( elem, name ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ migratePatchAndWarnFunc( jQuery, "nodeName", function( elem, name ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        },
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ }, "nodeName",
</ins><span class="cx" style="display: block; padding: 0 10px">         "jQuery.nodeName is deprecated" );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        migrateWarnFunc( jQuery, "isArray", Array.isArray,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ migratePatchAndWarnFunc( jQuery, "isArray", Array.isArray, "isArray",
</ins><span class="cx" style="display: block; padding: 0 10px">                 "jQuery.isArray is deprecated; use Array.isArray"
</span><span class="cx" style="display: block; padding: 0 10px">        );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -246,7 +319,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> if ( jQueryVersionSince( "3.3.0" ) ) {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        migrateWarnFunc( jQuery, "isNumeric", function( obj ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ migratePatchAndWarnFunc( jQuery, "isNumeric", function( obj ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        // As of jQuery 3.0, isNumeric is limited to
</span><span class="cx" style="display: block; padding: 0 10px">                        // strings and numbers (primitives or objects)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -258,7 +331,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                // ...but misinterprets leading-number strings, e.g. hex literals ("0x...")
</span><span class="cx" style="display: block; padding: 0 10px">                                // subtraction forces infinities to NaN
</span><span class="cx" style="display: block; padding: 0 10px">                                !isNaN( obj - parseFloat( obj ) );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                },
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         }, "isNumeric",
</ins><span class="cx" style="display: block; padding: 0 10px">                 "jQuery.isNumeric() is deprecated"
</span><span class="cx" style="display: block; padding: 0 10px">        );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -269,7 +342,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                class2type[ "[object " + name + "]" ] = name.toLowerCase();
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        migrateWarnFunc( jQuery, "type", function( obj ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ migratePatchAndWarnFunc( jQuery, "type", function( obj ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( obj == null ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        return obj + "";
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -278,19 +351,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">                return typeof obj === "object" || typeof obj === "function" ?
</span><span class="cx" style="display: block; padding: 0 10px">                        class2type[ Object.prototype.toString.call( obj ) ] || "object" :
</span><span class="cx" style="display: block; padding: 0 10px">                        typeof obj;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        },
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ }, "type",
</ins><span class="cx" style="display: block; padding: 0 10px">         "jQuery.type is deprecated" );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        migrateWarnFunc( jQuery, "isFunction",
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ migratePatchAndWarnFunc( jQuery, "isFunction",
</ins><span class="cx" style="display: block; padding: 0 10px">                 function( obj ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        return typeof obj === "function";
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                },
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         }, "isFunction",
</ins><span class="cx" style="display: block; padding: 0 10px">                 "jQuery.isFunction() is deprecated" );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        migrateWarnFunc( jQuery, "isWindow",
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ migratePatchAndWarnFunc( jQuery, "isWindow",
</ins><span class="cx" style="display: block; padding: 0 10px">                 function( obj ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        return obj != null && obj === obj.window;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                },
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         }, "isWindow",
</ins><span class="cx" style="display: block; padding: 0 10px">                 "jQuery.isWindow() is deprecated"
</span><span class="cx" style="display: block; padding: 0 10px">        );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -301,21 +374,21 @@
</span><span class="cx" style="display: block; padding: 0 10px"> var oldAjax = jQuery.ajax,
</span><span class="cx" style="display: block; padding: 0 10px">        rjsonp = /(=)\?(?=&|$)|\?\?/;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.ajax = function( ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery, "ajax", function() {
</ins><span class="cx" style="display: block; padding: 0 10px">         var jQXHR = oldAjax.apply( this, arguments );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Be sure we got a jQXHR (e.g., not sync)
</span><span class="cx" style="display: block; padding: 0 10px">        if ( jQXHR.promise ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                migrateWarnFunc( jQXHR, "success", jQXHR.done,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         migratePatchAndWarnFunc( jQXHR, "success", jQXHR.done, "jqXHR-methods",
</ins><span class="cx" style="display: block; padding: 0 10px">                         "jQXHR.success is deprecated and removed" );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                migrateWarnFunc( jQXHR, "error", jQXHR.fail,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         migratePatchAndWarnFunc( jQXHR, "error", jQXHR.fail, "jqXHR-methods",
</ins><span class="cx" style="display: block; padding: 0 10px">                         "jQXHR.error is deprecated and removed" );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                migrateWarnFunc( jQXHR, "complete", jQXHR.always,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         migratePatchAndWarnFunc( jQXHR, "complete", jQXHR.always, "jqXHR-methods",
</ins><span class="cx" style="display: block; padding: 0 10px">                         "jQXHR.complete is deprecated and removed" );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        return jQXHR;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}, "jqXHR-methods" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> // Only trigger the logic in jQuery <4 as the JSON-to-JSONP auto-promotion
</span><span class="cx" style="display: block; padding: 0 10px"> // behavior is gone in jQuery 4.0 and as it has security implications, we don't
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -334,7 +407,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        .indexOf( "application/x-www-form-urlencoded" ) === 0 &&
</span><span class="cx" style="display: block; padding: 0 10px">                                rjsonp.test( s.data )
</span><span class="cx" style="display: block; padding: 0 10px">                ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        migrateWarn( "JSON-to-JSONP auto-promotion is deprecated" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 migrateWarn( "jsonp-promotion", "JSON-to-JSONP auto-promotion is deprecated" );
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -345,27 +418,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">        oldToggleClass = jQuery.fn.toggleClass,
</span><span class="cx" style="display: block; padding: 0 10px">        rmatchNonSpace = /\S+/g;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.fn.removeAttr = function( name ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery.fn, "removeAttr", function( name ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var self = this;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        jQuery.each( name.match( rmatchNonSpace ), function( _i, attr ) {
</span><span class="cx" style="display: block; padding: 0 10px">                if ( jQuery.expr.match.bool.test( attr ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        migrateWarn( "jQuery.fn.removeAttr no longer sets boolean properties: " + attr );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 migrateWarn( "removeAttr-bool",
+                               "jQuery.fn.removeAttr no longer sets boolean properties: " + attr );
</ins><span class="cx" style="display: block; padding: 0 10px">                         self.prop( attr, false );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        return oldRemoveAttr.apply( this, arguments );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}, "removeAttr-bool" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.fn.toggleClass = function( state ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery.fn, "toggleClass", function( state ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Only deprecating no-args or single boolean arg
</span><span class="cx" style="display: block; padding: 0 10px">        if ( state !== undefined && typeof state !== "boolean" ) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 return oldToggleClass.apply( this, arguments );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        migrateWarn( "jQuery.fn.toggleClass( boolean ) is deprecated" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ migrateWarn( "toggleClass-bool", "jQuery.fn.toggleClass( boolean ) is deprecated" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Toggle entire class name of each element
</span><span class="cx" style="display: block; padding: 0 10px">        return this.each( function() {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -387,7 +462,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}, "toggleClass-bool" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> function camelCase( string ) {
</span><span class="cx" style="display: block; padding: 0 10px">        return string.replace( /-([a-z])/g, function( _, letter ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -395,7 +470,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-var oldFnCss,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+var origFnCss,
</ins><span class="cx" style="display: block; padding: 0 10px">         internalSwapCall = false,
</span><span class="cx" style="display: block; padding: 0 10px">        ralphaStart = /^[a-z]/,
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -440,12 +515,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.swap = function( elem, options, callback, args ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery, "swap", function( elem, options, callback, args ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var ret, name,
</span><span class="cx" style="display: block; padding: 0 10px">                old = {};
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        if ( !internalSwapCall ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                migrateWarn( "jQuery.swap() is undocumented and deprecated" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         migrateWarn( "swap", "jQuery.swap() is undocumented and deprecated" );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Remember the old values, and insert the new ones
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -462,22 +537,53 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        return ret;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}, "swap" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> if ( jQueryVersionSince( "3.4.0" ) && typeof Proxy !== "undefined" ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del><span class="cx" style="display: block; padding: 0 10px">         jQuery.cssProps = new Proxy( jQuery.cssProps || {}, {
</span><span class="cx" style="display: block; padding: 0 10px">                set: function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        migrateWarn( "JQMIGRATE: jQuery.cssProps is deprecated" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 migrateWarn( "cssProps", "jQuery.cssProps is deprecated" );
</ins><span class="cx" style="display: block; padding: 0 10px">                         return Reflect.set.apply( this, arguments );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-// Create a dummy jQuery.cssNumber if missing. It won't be used by jQuery but
-// it will prevent code adding new keys to it unconditionally from crashing.
-if ( !jQuery.cssNumber ) {
-       jQuery.cssNumber = {};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+// In jQuery >=4 where jQuery.cssNumber is missing fill it with the latest 3.x version:
+// https://github.com/jquery/jquery/blob/3.6.0/src/css.js#L212-L233
+// This way, number values for the CSS properties below won't start triggering
+// Migrate warnings when jQuery gets updated to >=4.0.0 (gh-438).
+if ( jQueryVersionSince( "4.0.0" ) && typeof Proxy !== "undefined" ) {
+       jQuery.cssNumber = new Proxy( {
+               animationIterationCount: true,
+               columnCount: true,
+               fillOpacity: true,
+               flexGrow: true,
+               flexShrink: true,
+               fontWeight: true,
+               gridArea: true,
+               gridColumn: true,
+               gridColumnEnd: true,
+               gridColumnStart: true,
+               gridRow: true,
+               gridRowEnd: true,
+               gridRowStart: true,
+               lineHeight: true,
+               opacity: true,
+               order: true,
+               orphans: true,
+               widows: true,
+               zIndex: true,
+               zoom: true
+       }, {
+               get: function() {
+                       migrateWarn( "css-number", "jQuery.cssNumber is deprecated" );
+                       return Reflect.get.apply( this, arguments );
+               },
+               set: function() {
+                       migrateWarn( "css-number", "jQuery.cssNumber is deprecated" );
+                       return Reflect.set.apply( this, arguments );
+               }
+       } );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> function isAutoPx( prop ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -489,11 +595,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                rautoPx.test( prop[ 0 ].toUpperCase() + prop.slice( 1 ) );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-oldFnCss = jQuery.fn.css;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+origFnCss = jQuery.fn.css;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.fn.css = function( name, value ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery.fn, "css", function( name, value ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var camelName,
</span><span class="cx" style="display: block; padding: 0 10px">                origThis = this;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">         if ( name && typeof name === "object" && !Array.isArray( name ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                jQuery.each( name, function( n, v ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        jQuery.fn.css.call( origThis, n, v );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -500,29 +607,33 @@
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><span class="cx" style="display: block; padding: 0 10px">                return this;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">         if ( typeof value === "number" ) {
</span><span class="cx" style="display: block; padding: 0 10px">                camelName = camelCase( name );
</span><span class="cx" style="display: block; padding: 0 10px">                if ( !isAutoPx( camelName ) && !jQuery.cssNumber[ camelName ] ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        migrateWarn( "Number-typed values are deprecated for jQuery.fn.css( \"" +
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 migrateWarn( "css-number",
+                               "Number-typed values are deprecated for jQuery.fn.css( \"" +
</ins><span class="cx" style="display: block; padding: 0 10px">                                 name + "\", value )" );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return oldFnCss.apply( this, arguments );
-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return origFnCss.apply( this, arguments );
+}, "css-number" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-var oldData = jQuery.data;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+var origData = jQuery.data;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.data = function( elem, name, value ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery, "data", function( elem, name, value ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var curData, sameKeys, key;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Name can be an object, and each entry in the object is meant to be set as data
</span><span class="cx" style="display: block; padding: 0 10px">        if ( name && typeof name === "object" && arguments.length === 2 ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                curData = jQuery.hasData( elem ) && oldData.call( this, elem );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               curData = jQuery.hasData( elem ) && origData.call( this, elem );
</ins><span class="cx" style="display: block; padding: 0 10px">                 sameKeys = {};
</span><span class="cx" style="display: block; padding: 0 10px">                for ( key in name ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        if ( key !== camelCase( key ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                migrateWarn( "jQuery.data() always sets/gets camelCased names: " + key );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         migrateWarn( "data-camelCase",
+                                       "jQuery.data() always sets/gets camelCased names: " + key );
</ins><span class="cx" style="display: block; padding: 0 10px">                                 curData[ key ] = name[ key ];
</span><span class="cx" style="display: block; padding: 0 10px">                        } else {
</span><span class="cx" style="display: block; padding: 0 10px">                                sameKeys[ key ] = name[ key ];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -529,7 +640,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                oldData.call( this, elem, sameKeys );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         origData.call( this, elem, sameKeys );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                return name;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -536,9 +647,11 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // If the name is transformed, look for the un-transformed name in the data object
</span><span class="cx" style="display: block; padding: 0 10px">        if ( name && typeof name === "string" && name !== camelCase( name ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                curData = jQuery.hasData( elem ) && oldData.call( this, elem );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               curData = jQuery.hasData( elem ) && origData.call( this, elem );
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( curData && name in curData ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        migrateWarn( "jQuery.data() always sets/gets camelCased names: " + name );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 migrateWarn( "data-camelCase",
+                               "jQuery.data() always sets/gets camelCased names: " + name );
</ins><span class="cx" style="display: block; padding: 0 10px">                         if ( arguments.length > 2 ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                curData[ name ] = value;
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -546,8 +659,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return oldData.apply( this, arguments );
-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return origData.apply( this, arguments );
+}, "data-camelCase" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> // Support jQuery slim which excludes the effects module
</span><span class="cx" style="display: block; padding: 0 10px"> if ( jQuery.fx ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -558,9 +671,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                return pct;
</span><span class="cx" style="display: block; padding: 0 10px">        };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.Tween.prototype.run = function( ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery.Tween.prototype, "run", function( ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if ( jQuery.easing[ this.easing ].length > 1 ) {
</span><span class="cx" style="display: block; padding: 0 10px">                migrateWarn(
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                        "easing-one-arg",
</ins><span class="cx" style="display: block; padding: 0 10px">                         "'jQuery.easing." + this.easing.toString() + "' should use only one argument"
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -568,9 +682,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        oldTweenRun.apply( this, arguments );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}, "easing-one-arg" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-intervalValue = jQuery.fx.interval || 13;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+intervalValue = jQuery.fx.interval;
</ins><span class="cx" style="display: block; padding: 0 10px"> intervalMsg = "jQuery.fx.interval is deprecated";
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> // Support: IE9, Android <=4.4
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -582,12 +696,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">                enumerable: true,
</span><span class="cx" style="display: block; padding: 0 10px">                get: function() {
</span><span class="cx" style="display: block; padding: 0 10px">                        if ( !window.document.hidden ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                migrateWarn( intervalMsg );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         migrateWarn( "fx-interval", intervalMsg );
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return intervalValue;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+                       // Only fallback to the default if patch is enabled
+                       if ( !jQuery.migrateIsPatchEnabled( "fx-interval" ) ) {
+                               return intervalValue;
+                       }
+                       return intervalValue === undefined ? 13 : intervalValue;
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                set: function( newValue ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        migrateWarn( intervalMsg );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 migrateWarn( "fx-interval", intervalMsg );
</ins><span class="cx" style="display: block; padding: 0 10px">                         intervalValue = newValue;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -603,9 +722,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> jQuery.event.fixHooks = {};
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> migrateWarnProp( jQuery.event.props, "concat", jQuery.event.props.concat,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        "event-old-patch",
</ins><span class="cx" style="display: block; padding: 0 10px">         "jQuery.event.props.concat() is deprecated and removed" );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.event.fix = function( originalEvent ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery.event, "fix", function( originalEvent ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var event,
</span><span class="cx" style="display: block; padding: 0 10px">                type = originalEvent.type,
</span><span class="cx" style="display: block; padding: 0 10px">                fixHook = this.fixHooks[ type ],
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -612,7 +732,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                props = jQuery.event.props;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        if ( props.length ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                migrateWarn( "jQuery.event.props are deprecated and removed: " + props.join() );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         migrateWarn( "event-old-patch",
+                       "jQuery.event.props are deprecated and removed: " + props.join() );
</ins><span class="cx" style="display: block; padding: 0 10px">                 while ( props.length ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        jQuery.event.addProp( props.pop() );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -620,7 +741,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        if ( fixHook && !fixHook._migrated_ ) {
</span><span class="cx" style="display: block; padding: 0 10px">                fixHook._migrated_ = true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                migrateWarn( "jQuery.event.fixHooks are deprecated and removed: " + type );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         migrateWarn( "event-old-patch",
+                       "jQuery.event.fixHooks are deprecated and removed: " + type );
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( ( props = fixHook.props ) && props.length ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        while ( props.length ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                jQuery.event.addProp( props.pop() );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -630,21 +752,24 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        event = originalFix.call( this, originalEvent );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return fixHook && fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return fixHook && fixHook.filter ?
+               fixHook.filter( event, originalEvent ) :
+               event;
+}, "event-old-patch" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.event.add = function( elem, types ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery.event, "add", function( elem, types ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // This misses the multiple-types case but that seems awfully rare
</span><span class="cx" style="display: block; padding: 0 10px">        if ( elem === window && types === "load" && window.document.readyState === "complete" ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                migrateWarn( "jQuery(window).on('load'...) called after load event occurred" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         migrateWarn( "load-after-event",
+                       "jQuery(window).on('load'...) called after load event occurred" );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">        return oldEventAdd.apply( this, arguments );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}, "load-after-event" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> jQuery.each( [ "load", "unload", "error" ], function( _, name ) {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        jQuery.fn[ name ] = function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ migratePatchFunc( jQuery.fn, name, function() {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var args = Array.prototype.slice.call( arguments, 0 );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // If this is an ajax load() the first arg should be the string URL;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -655,7 +780,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        return oldLoad.apply( this, args );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                migrateWarn( "jQuery.fn." + name + "() is deprecated" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         migrateWarn( "shorthand-removed-v3",
+                       "jQuery.fn." + name + "() is deprecated" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                args.splice( 0, 0, name );
</span><span class="cx" style="display: block; padding: 0 10px">                if ( arguments.length ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -668,7 +794,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                // See http://bugs.jquery.com/ticket/11820
</span><span class="cx" style="display: block; padding: 0 10px">                this.triggerHandler.apply( this, args );
</span><span class="cx" style="display: block; padding: 0 10px">                return this;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ }, "shorthand-removed-v3" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -678,12 +804,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">        function( _i, name ) {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Handle event binding
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        jQuery.fn[ name ] = function( data, fn ) {
-               migrateWarn( "jQuery.fn." + name + "() event shorthand is deprecated" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ migratePatchAndWarnFunc( jQuery.fn, name, function( data, fn ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 return arguments.length > 0 ?
</span><span class="cx" style="display: block; padding: 0 10px">                        this.on( name, null, data, fn ) :
</span><span class="cx" style="display: block; padding: 0 10px">                        this.trigger( name );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         },
+               "shorthand-deprecated-v3",
+               "jQuery.fn." + name + "() event shorthand is deprecated" );
</ins><span class="cx" style="display: block; padding: 0 10px"> } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> // Trigger "ready" event only once, on document ready
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -694,39 +821,30 @@
</span><span class="cx" style="display: block; padding: 0 10px"> jQuery.event.special.ready = {
</span><span class="cx" style="display: block; padding: 0 10px">        setup: function() {
</span><span class="cx" style="display: block; padding: 0 10px">                if ( this === window.document ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        migrateWarn( "'ready' event is deprecated" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 migrateWarn( "ready-event", "'ready' event is deprecated" );
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.fn.extend( {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchAndWarnFunc( jQuery.fn, "bind", function( types, data, fn ) {
+       return this.on( types, null, data, fn );
+}, "pre-on-methods", "jQuery.fn.bind() is deprecated" );
+migratePatchAndWarnFunc( jQuery.fn, "unbind", function( types, fn ) {
+       return this.off( types, null, fn );
+}, "pre-on-methods", "jQuery.fn.unbind() is deprecated" );
+migratePatchAndWarnFunc( jQuery.fn, "delegate", function( selector, types, data, fn ) {
+       return this.on( types, selector, data, fn );
+}, "pre-on-methods", "jQuery.fn.delegate() is deprecated" );
+migratePatchAndWarnFunc( jQuery.fn, "undelegate", function( selector, types, fn ) {
+       return arguments.length === 1 ?
+               this.off( selector, "**" ) :
+               this.off( types, selector || "**", fn );
+}, "pre-on-methods", "jQuery.fn.undelegate() is deprecated" );
+migratePatchAndWarnFunc( jQuery.fn, "hover", function( fnOver, fnOut ) {
+       return this.on( "mouseenter", fnOver ).on( "mouseleave", fnOut || fnOver );
+}, "pre-on-methods", "jQuery.fn.hover() is deprecated" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        bind: function( types, data, fn ) {
-               migrateWarn( "jQuery.fn.bind() is deprecated" );
-               return this.on( types, null, data, fn );
-       },
-       unbind: function( types, fn ) {
-               migrateWarn( "jQuery.fn.unbind() is deprecated" );
-               return this.off( types, null, fn );
-       },
-       delegate: function( selector, types, data, fn ) {
-               migrateWarn( "jQuery.fn.delegate() is deprecated" );
-               return this.on( types, selector, data, fn );
-       },
-       undelegate: function( selector, types, fn ) {
-               migrateWarn( "jQuery.fn.undelegate() is deprecated" );
-               return arguments.length === 1 ?
-                       this.off( selector, "**" ) :
-                       this.off( types, selector || "**", fn );
-       },
-       hover: function( fnOver, fnOut ) {
-               migrateWarn( "jQuery.fn.hover() is deprecated" );
-               return this.on( "mouseenter", fnOver ).on( "mouseleave", fnOut || fnOver );
-       }
-} );
-
</del><span class="cx" style="display: block; padding: 0 10px"> var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        origHtmlPrefilter = jQuery.htmlPrefilter,
</del><span class="cx" style="display: block; padding: 0 10px">         makeMarkup = function( html ) {
</span><span class="cx" style="display: block; padding: 0 10px">                var doc = window.document.implementation.createHTMLDocument( "" );
</span><span class="cx" style="display: block; padding: 0 10px">                doc.body.innerHTML = html;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -735,34 +853,40 @@
</span><span class="cx" style="display: block; padding: 0 10px">        warnIfChanged = function( html ) {
</span><span class="cx" style="display: block; padding: 0 10px">                var changed = html.replace( rxhtmlTag, "<$1></$2>" );
</span><span class="cx" style="display: block; padding: 0 10px">                if ( changed !== html && makeMarkup( html ) !== makeMarkup( changed ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        migrateWarn( "HTML tags must be properly nested and closed: " + html );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 migrateWarn( "self-closed-tags",
+                               "HTML tags must be properly nested and closed: " + html );
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">        };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/**
+ * Deprecated, please use `jQuery.migrateDisablePatches( "self-closed-tags" )` instead.
+ * @deprecated
+ */
</ins><span class="cx" style="display: block; padding: 0 10px"> jQuery.UNSAFE_restoreLegacyHtmlPrefilter = function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        jQuery.htmlPrefilter = function( html ) {
-               warnIfChanged( html );
-               return html.replace( rxhtmlTag, "<$1></$2>" );
-       };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ jQuery.migrateEnablePatches( "self-closed-tags" );
</ins><span class="cx" style="display: block; padding: 0 10px"> };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.htmlPrefilter = function( html ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery, "htmlPrefilter", function( html ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         warnIfChanged( html );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return origHtmlPrefilter( html );
-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return html.replace( rxhtmlTag, "<$1></$2>" );
+}, "self-closed-tags" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-var oldOffset = jQuery.fn.offset;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+// This patch needs to be disabled by default as it re-introduces
+// security issues (CVE-2020-11022, CVE-2020-11023).
+jQuery.migrateDisablePatches( "self-closed-tags" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.fn.offset = function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+var origOffset = jQuery.fn.offset;
+
+migratePatchFunc( jQuery.fn, "offset", function() {
</ins><span class="cx" style="display: block; padding: 0 10px">         var elem = this[ 0 ];
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        if ( elem && ( !elem.nodeType || !elem.getBoundingClientRect ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                migrateWarn( "jQuery.fn.offset() requires a valid DOM element" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         migrateWarn( "offset-valid-elem", "jQuery.fn.offset() requires a valid DOM element" );
</ins><span class="cx" style="display: block; padding: 0 10px">                 return arguments.length ? this : undefined;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return oldOffset.apply( this, arguments );
-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return origOffset.apply( this, arguments );
+}, "offset-valid-elem" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> // Support jQuery slim which excludes the ajax module
</span><span class="cx" style="display: block; padding: 0 10px"> // The jQuery.param patch is about respecting `jQuery.ajaxSettings.traditional`
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -769,29 +893,26 @@
</span><span class="cx" style="display: block; padding: 0 10px"> // so it doesn't make sense for the slim build.
</span><span class="cx" style="display: block; padding: 0 10px"> if ( jQuery.ajax ) {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-var oldParam = jQuery.param;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+var origParam = jQuery.param;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.param = function( data, traditional ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery, "param", function( data, traditional ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var ajaxTraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        if ( traditional === undefined && ajaxTraditional ) {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                migrateWarn( "jQuery.param() no longer uses jQuery.ajaxSettings.traditional" );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         migrateWarn( "param-ajax-traditional",
+                       "jQuery.param() no longer uses jQuery.ajaxSettings.traditional" );
</ins><span class="cx" style="display: block; padding: 0 10px">                 traditional = ajaxTraditional;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return oldParam.call( this, data, traditional );
-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return origParam.call( this, data, traditional );
+}, "param-ajax-traditional" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-var oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchAndWarnFunc( jQuery.fn, "andSelf", jQuery.fn.addBack, "andSelf",
+       "jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.fn.andSelf = function() {
-       migrateWarn( "jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()" );
-       return oldSelf.apply( this, arguments );
-};
-
</del><span class="cx" style="display: block; padding: 0 10px"> // Support jQuery slim which excludes the deferred module in jQuery 4.0+
</span><span class="cx" style="display: block; padding: 0 10px"> if ( jQuery.Deferred ) {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -807,15 +928,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        jQuery.Callbacks( "memory" ) ]
</span><span class="cx" style="display: block; padding: 0 10px">        ];
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery.Deferred = function( func ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+migratePatchFunc( jQuery, "Deferred", function( func ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var deferred = oldDeferred(),
</span><span class="cx" style="display: block; padding: 0 10px">                promise = deferred.promise();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        deferred.pipe = promise.pipe = function( /* fnDone, fnFail, fnProgress */ ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ function newDeferredPipe( /* fnDone, fnFail, fnProgress */ ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var fns = arguments;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                migrateWarn( "deferred.pipe() is deprecated" );
-
</del><span class="cx" style="display: block; padding: 0 10px">                 return jQuery.Deferred( function( newDefer ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        jQuery.each( tuples, function( i, tuple ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                var fn = typeof fns[ i ] === "function" && fns[ i ];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -840,8 +959,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        } );
</span><span class="cx" style="display: block; padding: 0 10px">                        fns = null;
</span><span class="cx" style="display: block; padding: 0 10px">                } ).promise();
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ migratePatchAndWarnFunc( deferred, "pipe", newDeferredPipe, "deferred-pipe",
+               "deferred.pipe() is deprecated" );
+       migratePatchAndWarnFunc( promise, "pipe", newDeferredPipe, "deferred-pipe",
+               "deferred.pipe() is deprecated" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        if ( func ) {
</span><span class="cx" style="display: block; padding: 0 10px">                func.call( deferred, deferred );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -848,7 +971,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        return deferred;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}, "deferred-pipe" );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> // Preserve handler of uncaught exceptions in promise chains
</span><span class="cx" style="display: block; padding: 0 10px"> jQuery.Deferred.exceptionHook = oldDeferred.exceptionHook;
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendorjqueryjquerymigrateminjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/jquery/jquery-migrate.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/jquery/jquery-migrate.min.js        2023-02-06 19:57:41 UTC (rev 55236)
+++ trunk/src/js/_enqueues/vendor/jquery/jquery-migrate.min.js  2023-02-06 20:57:05 UTC (rev 55237)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,2 +1,2 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-/*! jQuery Migrate v3.3.2 | (c) OpenJS Foundation and other contributors | jquery.org/license */
-"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e,window)}):"object"==typeof module&&module.exports?module.exports=t(require("jquery"),window):t(jQuery,window)}(function(s,n){"use strict";function e(e){return 0<=function(e,t){for(var r=/^(\d+)\.(\d+)\.(\d+)/,n=r.exec(e)||[],o=r.exec(t)||[],i=1;i<=3;i++){if(+o[i]<+n[i])return 1;if(+n[i]<+o[i])return-1}return 0}(s.fn.jquery,e)}s.migrateVersion="3.3.2",n.console&&n.console.log&&(s&&e("3.0.0")||n.console.log("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),s.migrateWarnings&&n.console.log("JQMIGRATE: Migrate plugin loaded multiple times"),n.console.log("JQMIGRATE: Migrate is installed"+(s.migrateMute?"":" with logging active")+&
 quot;, version "+s.migrateVersion));var r={};function u(e){var t=n.console;s.migrateDeduplicateWarnings&&r[e]||(r[e]=!0,s.migrateWarnings.push(e),t&&t.warn&&!s.migrateMute&&(t.warn("JQMIGRATE: "+e),s.migrateTrace&&t.trace&&t.trace()))}function t(e,t,r,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:function(){return u(n),r},set:function(e){u(n),r=e}})}function o(e,t,r,n){e[t]=function(){return u(n),r.apply(this,arguments)}}s.migrateDeduplicateWarnings=!0,s.migrateWarnings=[],void 0===s.migrateTrace&&(s.migrateTrace=!0),s.migrateReset=function(){r={},s.migrateWarnings.length=0},"BackCompat"===n.document.compatMode&&u("jQuery is not compatible with Quirks Mode");var i,a,c,d={},l=s.fn.init,p=s.find,f=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,y=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,m=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;for(i in s.fn.init=fu
 nction(e){var t=Array.prototype.slice.call(arguments);return"string"==typeof e&&"#"===e&&(u("jQuery( '#' ) is not a valid selector"),t[0]=[]),l.apply(this,t)},s.fn.init.prototype=s.fn,s.find=function(t){var r=Array.prototype.slice.call(arguments);if("string"==typeof t&&f.test(t))try{n.document.querySelector(t)}catch(e){t=t.replace(y,function(e,t,r,n){return"["+t+r+'"'+n+'"]'});try{n.document.querySelector(t),u("Attribute selector with '#' must be quoted: "+r[0]),r[0]=t}catch(e){u("Attribute selector with '#' was not fixed: "+r[0])}}return p.apply(this,r)},p)Object.prototype.hasOwnProperty.call(p,i)&&(s.find[i]=p[i]);o(s.fn,"size",function(){return this.length},"jQuery.fn.size() is deprecated and removed; use the .length property"),o(s,"parseJSON",function(){return JSON.parse.apply(null,arguments)},"jQuery.parseJSON is deprecated; use JSON
 .parse"),o(s,"holdReady",s.holdReady,"jQuery.holdReady is deprecated"),o(s,"unique",s.uniqueSort,"jQuery.unique is deprecated; use jQuery.uniqueSort"),t(s.expr,"filters",s.expr.pseudos,"jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"),t(s.expr,":",s.expr.pseudos,"jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos"),e("3.1.1")&&o(s,"trim",function(e){return null==e?"":(e+"").replace(m,"")},"jQuery.trim is deprecated; use String.prototype.trim"),e("3.2.0")&&(o(s,"nodeName",function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},"jQuery.nodeName is deprecated"),o(s,"isArray",Array.isArray,"jQuery.isArray is deprecated; use Array.isArray")),e("3.3.0")&&(o(s,"isNumeric",function(e){var t=typeof e;return(&quo
 t;number"==t||"string"==t)&&!isNaN(e-parseFloat(e))},"jQuery.isNumeric() is deprecated"),s.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){d["[object "+t+"]"]=t.toLowerCase()}),o(s,"type",function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?d[Object.prototype.toString.call(e)]||"object":typeof e},"jQuery.type is deprecated"),o(s,"isFunction",function(e){return"function"==typeof e},"jQuery.isFunction() is deprecated"),o(s,"isWindow",function(e){return null!=e&&e===e.window},"jQuery.isWindow() is deprecated")),s.ajax&&(a=s.ajax,c=/(=)\?(?=&|$)|\?\?/,s.ajax=function(){var e=a.apply(this,arguments);return e.promise&&(o(e,"success",e.done,"jQXHR.success is deprecated and removed"),o(e,&quo
 t;error",e.fail,"jQXHR.error is deprecated and removed"),o(e,"complete",e.always,"jQXHR.complete is deprecated and removed")),e},e("4.0.0")||s.ajaxPrefilter("+json",function(e){!1!==e.jsonp&&(c.test(e.url)||"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&c.test(e.data))&&u("JSON-to-JSONP auto-promotion is deprecated")}));var g=s.fn.removeAttr,h=s.fn.toggleClass,v=/\S+/g;function j(e){return e.replace(/-([a-z])/g,function(e,t){return t.toUpperCase()})}s.fn.removeAttr=function(e){var r=this;return s.each(e.match(v),function(e,t){s.expr.match.bool.test(t)&&(u("jQuery.fn.removeAttr no longer sets boolean properties: "+t),r.prop(t,!1))}),g.apply(this,arguments)};var Q,b=!(s.fn.toggleClass=function(t){return void 0!==t&&"boolean"!=typeof t?h.apply(this,arguments):(u("jQuery.fn.
 toggleClass( boolean ) is deprecated"),this.each(function(){var e=this.getAttribute&&this.getAttribute("class")||"";e&&s.data(this,"__className__",e),this.setAttribute&&this.setAttribute("class",!e&&!1!==t&&s.data(this,"__className__")||"")}))}),w=/^[a-z]/,x=/^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/;s.swap&&s.each(["height","width","reliableMarginRight"],function(e,t){var r=s.cssHooks[t]&&s.cssHooks[t].get;r&&(s.cssHooks[t].get=function(){var e;return b=!0,e=r.apply(this,arguments),b=!1,e})}),s.swap=function(e,t,r,n){var o,i,a={};for(i in b||u("jQuery.swap() is undocumented and deprecated"),t)a[i]=e.style[i],e.style[i]=t[i];for(i in o=r.apply(e,n||[]),t)e.style[i]=a[i];return o},e("3.4.0")&&"undefined"!=typ
 eof Proxy&&(s.cssProps=new Proxy(s.cssProps||{},{set:function(){return u("JQMIGRATE: jQuery.cssProps is deprecated"),Reflect.set.apply(this,arguments)}})),s.cssNumber||(s.cssNumber={}),Q=s.fn.css,s.fn.css=function(e,t){var r,n,o=this;return e&&"object"==typeof e&&!Array.isArray(e)?(s.each(e,function(e,t){s.fn.css.call(o,e,t)}),this):("number"==typeof t&&(r=j(e),n=r,w.test(n)&&x.test(n[0].toUpperCase()+n.slice(1))||s.cssNumber[r]||u('Number-typed values are deprecated for jQuery.fn.css( "'+e+'", value )')),Q.apply(this,arguments))};var A,k,S,M,N=s.data;s.data=function(e,t,r){var n,o,i;if(t&&"object"==typeof t&&2===arguments.length){for(i in n=s.hasData(e)&&N.call(this,e),o={},t)i!==j(i)?(u("jQuery.data() always sets/gets camelCased names: "+i),n[i]=t[i]):o[i]=t[i];return N.call(this,e,o),t}return t&&"string"==typeof t&&t!==j(t)&&amp
 ;(n=s.hasData(e)&&N.call(this,e))&&t in n?(u("jQuery.data() always sets/gets camelCased names: "+t),2<arguments.length&&(n[t]=r),n[t]):N.apply(this,arguments)},s.fx&&(S=s.Tween.prototype.run,M=function(e){return e},s.Tween.prototype.run=function(){1<s.easing[this.easing].length&&(u("'jQuery.easing."+this.easing.toString()+"' should use only one argument"),s.easing[this.easing]=M),S.apply(this,arguments)},A=s.fx.interval||13,k="jQuery.fx.interval is deprecated",n.requestAnimationFrame&&Object.defineProperty(s.fx,"interval",{configurable:!0,enumerable:!0,get:function(){return n.document.hidden||u(k),A},set:function(e){u(k),A=e}}));var R=s.fn.load,H=s.event.add,C=s.event.fix;s.event.props=[],s.event.fixHooks={},t(s.event.props,"concat",s.event.props.concat,"jQuery.event.props.concat() is deprecated and removed"),s.event.fix=function(e){var t,r=e.type,n=this.fixHoo
 ks[r],o=s.event.props;if(o.length){u("jQuery.event.props are deprecated and removed: "+o.join());while(o.length)s.event.addProp(o.pop())}if(n&&!n._migrated_&&(n._migrated_=!0,u("jQuery.event.fixHooks are deprecated and removed: "+r),(o=n.props)&&o.length))while(o.length)s.event.addProp(o.pop());return t=C.call(this,e),n&&n.filter?n.filter(t,e):t},s.event.add=function(e,t){return e===n&&"load"===t&&"complete"===n.document.readyState&&u("jQuery(window).on('load'...) called after load event occurred"),H.apply(this,arguments)},s.each(["load","unload","error"],function(e,t){s.fn[t]=function(){var e=Array.prototype.slice.call(arguments,0);return"load"===t&&"string"==typeof e[0]?R.apply(this,e):(u("jQuery.fn."+t+"() is deprecated"),e.splice(0,0,t),arguments.length?this.on.apply(this,e):(this.triggerHandler.ap
 ply(this,e),this))}}),s.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,r){s.fn[r]=function(e,t){return u("jQuery.fn."+r+"() event shorthand is deprecated"),0<arguments.length?this.on(r,null,e,t):this.trigger(r)}}),s(function(){s(n.document).triggerHandler("ready")}),s.event.special.ready={setup:function(){this===n.document&&u("'ready' event is deprecated")}},s.fn.extend({bind:function(e,t,r){return u("jQuery.fn.bind() is deprecated"),this.on(e,null,t,r)},unbind:function(e,t){return u("jQuery.fn.unbind() is deprecated"),this.off(e,null,t)},delegate:function(e,t,r,n){return u("jQuery.fn.delegate() is deprecated"),this.on(t,e,r,n)},undelegate:function(e,t,r){return u("jQuery.fn.undelegate() is deprecated"),1===argum
 ents.length?this.off(e,"**"):this.off(t,e||"**",r)},hover:function(e,t){return u("jQuery.fn.hover() is deprecated"),this.on("mouseenter",e).on("mouseleave",t||e)}});function T(e){var t=n.document.implementation.createHTMLDocument("");return t.body.innerHTML=e,t.body&&t.body.innerHTML}function P(e){var t=e.replace(O,"<$1></$2>");t!==e&&T(e)!==T(t)&&u("HTML tags must be properly nested and closed: "+e)}var O=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,q=s.htmlPrefilter;s.UNSAFE_restoreLegacyHtmlPrefilter=function(){s.htmlPrefilter=function(e){return P(e),e.replace(O,"<$1></$2>")}},s.htmlPrefilter=function(e){return P(e),q(e)};var D,_=s.fn.offset;s.fn.offset=function(){var e=this[0];return!e||e.nodeType&&e.getBoundingClientRect?_.apply(this,arguments):(u("jQuery.fn.offset() re
 quires a valid DOM element"),arguments.length?this:void 0)},s.ajax&&(D=s.param,s.param=function(e,t){var r=s.ajaxSettings&&s.ajaxSettings.traditional;return void 0===t&&r&&(u("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),t=r),D.call(this,e,t)});var E,F,J=s.fn.andSelf||s.fn.addBack;return s.fn.andSelf=function(){return u("jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),J.apply(this,arguments)},s.Deferred&&(E=s.Deferred,F=[["resolve","done",s.Callbacks("once memory"),s.Callbacks("once memory"),"resolved"],["reject","fail",s.Callbacks("once memory"),s.Callbacks("once memory"),"rejected"],["notify","progress",s.Callbacks("memory"),s.Callbacks("memory")]],s.Deferred=function(e){var i=E(),a=i.promise();return i.pipe=a.pipe=function(){var o=argu
 ments;return u("deferred.pipe() is deprecated"),s.Deferred(function(n){s.each(F,function(e,t){var r="function"==typeof o[e]&&o[e];i[t[1]](function(){var e=r&&r.apply(this,arguments);e&&"function"==typeof e.promise?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[t[0]+"With"](this===a?n.promise():this,r?[e]:arguments)})}),o=null}).promise()},e&&e.call(i,i),i},s.Deferred.exceptionHook=E.exceptionHook),s});
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/*! jQuery Migrate v3.4.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e,window)}):"object"==typeof module&&module.exports?module.exports=t(require("jquery"),window):t(jQuery,window)}(function(s,n){"use strict";function e(e){return 0<=function(e,t){for(var r=/^(\d+)\.(\d+)\.(\d+)/,n=r.exec(e)||[],o=r.exec(t)||[],a=1;a<=3;a++){if(+n[a]>+o[a])return 1;if(+n[a]<+o[a])return-1}return 0}(s.fn.jquery,e)}s.migrateVersion="3.4.0";var t=Object.create(null),o=(s.migrateDisablePatches=function(){for(var e=0;e<arguments.length;e++)t[arguments[e]]=!0},s.migrateEnablePatches=function(){for(var e=0;e<arguments.length;e++)delete t[arguments[e]]},s.migrateIsPatchEnabled=function(e){return!t[e]},n.console&&n.console.log&&(s&&e("3.0.0")||n.console.log(&qu
 ot;JQMIGRATE: jQuery 3.0.0+ REQUIRED"),s.migrateWarnings&&n.console.log("JQMIGRATE: Migrate plugin loaded multiple times"),n.console.log("JQMIGRATE: Migrate is installed"+(s.migrateMute?"":" with logging active")+", version "+s.migrateVersion)),{});function i(e,t){var r=n.console;!s.migrateIsPatchEnabled(e)||s.migrateDeduplicateWarnings&&o[t]||(o[t]=!0,s.migrateWarnings.push(t+" ["+e+"]"),r&&r.warn&&!s.migrateMute&&(r.warn("JQMIGRATE: "+t),s.migrateTrace&&r.trace&&r.trace()))}function r(e,t,r,n,o){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:function(){return i(n,o),r},set:function(e){i(n,o),r=e}})}function a(e,t,r,n,o){var a=e[t];e[t]=function(){return o&&i(n,o),(s.migrateIsPatchEnabled(n)?r:a||s.noop).apply(this,arguments)}}function u(e,t,r,n,o){if(!o)throw new Error("No warning message provided");a(e,t,r,n,o
 )}function d(e,t,r,n){a(e,t,r,n)}s.migrateDeduplicateWarnings=!0,s.migrateWarnings=[],void 0===s.migrateTrace&&(s.migrateTrace=!0),s.migrateReset=function(){o={},s.migrateWarnings.length=0},"BackCompat"===n.document.compatMode&&i("quirks","jQuery is not compatible with Quirks Mode");var c,l,p,f={},m=s.fn.init,y=s.find,h=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,g=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,v=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;for(c in d(s.fn,"init",function(e){var t=Array.prototype.slice.call(arguments);return s.migrateIsPatchEnabled("selector-empty-id")&&"string"==typeof e&&"#"===e&&(i("selector-empty-id","jQuery( '#' ) is not a valid selector"),t[0]=[]),m.apply(this,t)},"selector-empty-id"),s.fn.init.prototype=s.fn,d(s,"find",function(t){var r=Array.prototype.slice.call(arguments);if(&quo
 t;string"==typeof t&&h.test(t))try{n.document.querySelector(t)}catch(e){t=t.replace(g,function(e,t,r,n){return"["+t+r+'"'+n+'"]'});try{n.document.querySelector(t),i("selector-hash","Attribute selector with '#' must be quoted: "+r[0]),r[0]=t}catch(e){i("selector-hash","Attribute selector with '#' was not fixed: "+r[0])}}return y.apply(this,r)},"selector-hash"),y)Object.prototype.hasOwnProperty.call(y,c)&&(s.find[c]=y[c]);u(s.fn,"size",function(){return this.length},"size","jQuery.fn.size() is deprecated and removed; use the .length property"),u(s,"parseJSON",function(){return JSON.parse.apply(null,arguments)},"parseJSON","jQuery.parseJSON is deprecated; use JSON.parse"),u(s,"holdReady",s.holdReady,"holdReady","jQuery.holdReady is deprecated"),u(s,"unique",s.uniqueSort,"unique","jQu
 ery.unique is deprecated; use jQuery.uniqueSort"),r(s.expr,"filters",s.expr.pseudos,"expr-pre-pseudos","jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"),r(s.expr,":",s.expr.pseudos,"expr-pre-pseudos","jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos"),e("3.1.1")&&u(s,"trim",function(e){return null==e?"":(e+"").replace(v,"")},"trim","jQuery.trim is deprecated; use String.prototype.trim"),e("3.2.0")&&(u(s,"nodeName",function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},"nodeName","jQuery.nodeName is deprecated"),u(s,"isArray",Array.isArray,"isArray","jQuery.isArray is deprecated; use Array.isArray")),e("3.3.0")&&(u(s,"isNumeric",function(e){var t=typeof e;return("number"==t||"
 string"==t)&&!isNaN(e-parseFloat(e))},"isNumeric","jQuery.isNumeric() is deprecated"),s.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){f["[object "+t+"]"]=t.toLowerCase()}),u(s,"type",function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?f[Object.prototype.toString.call(e)]||"object":typeof e},"type","jQuery.type is deprecated"),u(s,"isFunction",function(e){return"function"==typeof e},"isFunction","jQuery.isFunction() is deprecated"),u(s,"isWindow",function(e){return null!=e&&e===e.window},"isWindow","jQuery.isWindow() is deprecated")),s.ajax&&(l=s.ajax,p=/(=)\?(?=&|$)|\?\?/,d(s,"ajax",function(){var e=l.apply(this,arguments);return e.promise&&(u(e,"success&qu
 ot;,e.done,"jqXHR-methods","jQXHR.success is deprecated and removed"),u(e,"error",e.fail,"jqXHR-methods","jQXHR.error is deprecated and removed"),u(e,"complete",e.always,"jqXHR-methods","jQXHR.complete is deprecated and removed")),e},"jqXHR-methods"),e("4.0.0")||s.ajaxPrefilter("+json",function(e){!1!==e.jsonp&&(p.test(e.url)||"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&p.test(e.data))&&i("jsonp-promotion","JSON-to-JSONP auto-promotion is deprecated")}));var j=s.fn.removeAttr,b=s.fn.toggleClass,w=/\S+/g;function Q(e){return e.replace(/-([a-z])/g,function(e,t){return t.toUpperCase()})}d(s.fn,"removeAttr",function(e){var r=this;return s.each(e.match(w),function(e,t){s.expr.match.bool.test(t)&&(i("removeAttr-bool",&quot
 ;jQuery.fn.removeAttr no longer sets boolean properties: "+t),r.prop(t,!1))}),j.apply(this,arguments)},"removeAttr-bool"),d(s.fn,"toggleClass",function(t){return void 0!==t&&"boolean"!=typeof t?b.apply(this,arguments):(i("toggleClass-bool","jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var e=this.getAttribute&&this.getAttribute("class")||"";e&&s.data(this,"__className__",e),this.setAttribute&&this.setAttribute("class",!e&&!1!==t&&s.data(this,"__className__")||"")}))},"toggleClass-bool");var x,A=!1,R=/^[a-z]/,T=/^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/;s.swap&&s.each(["height","width","reliableMarginRight"],function(e,t){var r=s.cssHooks[t]&&s.cssHooks[t].get;r&a
 mp;&(s.cssHooks[t].get=function(){var e;return A=!0,e=r.apply(this,arguments),A=!1,e})}),d(s,"swap",function(e,t,r,n){var o,a={};for(o in A||i("swap","jQuery.swap() is undocumented and deprecated"),t)a[o]=e.style[o],e.style[o]=t[o];for(o in r=r.apply(e,n||[]),t)e.style[o]=a[o];return r},"swap"),e("3.4.0")&&"undefined"!=typeof Proxy&&(s.cssProps=new Proxy(s.cssProps||{},{set:function(){return i("cssProps","jQuery.cssProps is deprecated"),Reflect.set.apply(this,arguments)}})),e("4.0.0")&&"undefined"!=typeof Proxy&&(s.cssNumber=new Proxy({animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},{get:function(){return i("css-number&quo
 t;,"jQuery.cssNumber is deprecated"),Reflect.get.apply(this,arguments)},set:function(){return i("css-number","jQuery.cssNumber is deprecated"),Reflect.set.apply(this,arguments)}})),x=s.fn.css,d(s.fn,"css",function(e,t){var r,n=this;return e&&"object"==typeof e&&!Array.isArray(e)?(s.each(e,function(e,t){s.fn.css.call(n,e,t)}),this):("number"==typeof t&&(t=Q(e),r=t,R.test(r)&&T.test(r[0].toUpperCase()+r.slice(1))||s.cssNumber[t]||i("css-number",'Number-typed values are deprecated for jQuery.fn.css( "'+e+'", value )')),x.apply(this,arguments))},"css-number");function C(e){var t=n.document.implementation.createHTMLDocument("");return t.body.innerHTML=e,t.body&&t.body.innerHTML}var S,N,P,k,H,E,M,q=s.data,D=(d(s,"data",function(e,t,r){var n,o,a;if(t&&"object"==typeof t&&2===arguments.length){for(a in n=s.hasData(e)&
 amp;&q.call(this,e),o={},t)a!==Q(a)?(i("data-camelCase","jQuery.data() always sets/gets camelCased names: "+a),n[a]=t[a]):o[a]=t[a];return q.call(this,e,o),t}return t&&"string"==typeof t&&t!==Q(t)&&(n=s.hasData(e)&&q.call(this,e))&&t in n?(i("data-camelCase","jQuery.data() always sets/gets camelCased names: "+t),2<arguments.length&&(n[t]=r),n[t]):q.apply(this,arguments)},"data-camelCase"),s.fx&&(P=s.Tween.prototype.run,k=function(e){return e},d(s.Tween.prototype,"run",function(){1<s.easing[this.easing].length&&(i("easing-one-arg","'jQuery.easing."+this.easing.toString()+"' should use only one argument"),s.easing[this.easing]=k),P.apply(this,arguments)},"easing-one-arg"),S=s.fx.interval,N="jQuery.fx.interval is deprecated",n.requestAnimationFrame&&Object.defineProperty(s.fx,"inter
 val",{configurable:!0,enumerable:!0,get:function(){return n.document.hidden||i("fx-interval",N),s.migrateIsPatchEnabled("fx-interval")&&void 0===S?13:S},set:function(e){i("fx-interval",N),S=e}})),s.fn.load),F=s.event.add,W=s.event.fix,O=(s.event.props=[],s.event.fixHooks={},r(s.event.props,"concat",s.event.props.concat,"event-old-patch","jQuery.event.props.concat() is deprecated and removed"),d(s.event,"fix",function(e){var t=e.type,r=this.fixHooks[t],n=s.event.props;if(n.length){i("event-old-patch","jQuery.event.props are deprecated and removed: "+n.join());while(n.length)s.event.addProp(n.pop())}if(r&&!r._migrated_&&(r._migrated_=!0,i("event-old-patch","jQuery.event.fixHooks are deprecated and removed: "+t),(n=r.props)&&n.length))while(n.length)s.event.addProp(n.pop());return t=W.call(this,e),r&&r.filter?r.filter(t,e):t},"e
 vent-old-patch"),d(s.event,"add",function(e,t){return e===n&&"load"===t&&"complete"===n.document.readyState&&i("load-after-event","jQuery(window).on('load'...) called after load event occurred"),F.apply(this,arguments)},"load-after-event"),s.each(["load","unload","error"],function(e,t){d(s.fn,t,function(){var e=Array.prototype.slice.call(arguments,0);return"load"===t&&"string"==typeof e[0]?D.apply(this,e):(i("shorthand-removed-v3","jQuery.fn."+t+"() is deprecated"),e.splice(0,0,t),arguments.length?this.on.apply(this,e):(this.triggerHandler.apply(this,e),this))},"shorthand-removed-v3")}),s.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" &q
 uot;),function(e,r){u(s.fn,r,function(e,t){return 0<arguments.length?this.on(r,null,e,t):this.trigger(r)},"shorthand-deprecated-v3","jQuery.fn."+r+"() event shorthand is deprecated")}),s(function(){s(n.document).triggerHandler("ready")}),s.event.special.ready={setup:function(){this===n.document&&i("ready-event","'ready' event is deprecated")}},u(s.fn,"bind",function(e,t,r){return this.on(e,null,t,r)},"pre-on-methods","jQuery.fn.bind() is deprecated"),u(s.fn,"unbind",function(e,t){return this.off(e,null,t)},"pre-on-methods","jQuery.fn.unbind() is deprecated"),u(s.fn,"delegate",function(e,t,r,n){return this.on(t,e,r,n)},"pre-on-methods","jQuery.fn.delegate() is deprecated"),u(s.fn,"undelegate",function(e,t,r){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",r)},"pre-on-methods&
 quot;,"jQuery.fn.undelegate() is deprecated"),u(s.fn,"hover",function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)},"pre-on-methods","jQuery.fn.hover() is deprecated"),/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi),_=(s.UNSAFE_restoreLegacyHtmlPrefilter=function(){s.migrateEnablePatches("self-closed-tags")},d(s,"htmlPrefilter",function(e){var t,r;return(r=(t=e).replace(O,"<$1></$2>"))!==t&&C(t)!==C(r)&&i("self-closed-tags","HTML tags must be properly nested and closed: "+t),e.replace(O,"<$1></$2>")},"self-closed-tags"),s.migrateDisablePatches("self-closed-tags"),s.fn.offset);return d(s.fn,"offset",function(){var e=this[0];return!e||e.nodeType&&e.getBoundingClientRect?_.apply(this,arguments):(i("offset-valid-elem
 ","jQuery.fn.offset() requires a valid DOM element"),arguments.length?this:void 0)},"offset-valid-elem"),s.ajax&&(H=s.param,d(s,"param",function(e,t){var r=s.ajaxSettings&&s.ajaxSettings.traditional;return void 0===t&&r&&(i("param-ajax-traditional","jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),t=r),H.call(this,e,t)},"param-ajax-traditional")),u(s.fn,"andSelf",s.fn.addBack,"andSelf","jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),s.Deferred&&(E=s.Deferred,M=[["resolve","done",s.Callbacks("once memory"),s.Callbacks("once memory"),"resolved"],["reject","fail",s.Callbacks("once memory"),s.Callbacks("once memory"),"rejected"],["notify","progress",s.Callbacks("memory"),s.Callbacks(&qu
 ot;memory")]],d(s,"Deferred",function(e){var a=E(),i=a.promise();function t(){var o=arguments;return s.Deferred(function(n){s.each(M,function(e,t){var r="function"==typeof o[e]&&o[e];a[t[1]](function(){var e=r&&r.apply(this,arguments);e&&"function"==typeof e.promise?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[t[0]+"With"](this===i?n.promise():this,r?[e]:arguments)})}),o=null}).promise()}return u(a,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),u(i,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),e&&e.call(a,a),a},"deferred-pipe"),s.Deferred.exceptionHook=E.exceptionHook),s});
</ins></span></pre></div>
<a id="trunksrcwpincludesscriptloaderphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/script-loader.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/script-loader.php   2023-02-06 19:57:41 UTC (rev 55236)
+++ trunk/src/wp-includes/script-loader.php     2023-02-06 20:57:05 UTC (rev 55237)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -824,7 +824,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        // The unminified jquery.js and jquery-migrate.js are included to facilitate debugging.
</span><span class="cx" style="display: block; padding: 0 10px">        $scripts->add( 'jquery', false, array( 'jquery-core', 'jquery-migrate' ), '3.6.3' );
</span><span class="cx" style="display: block; padding: 0 10px">        $scripts->add( 'jquery-core', "/wp-includes/js/jquery/jquery$suffix.js", array(), '3.6.3' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $scripts->add( 'jquery-migrate', "/wp-includes/js/jquery/jquery-migrate$suffix.js", array(), '3.3.2' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $scripts->add( 'jquery-migrate', "/wp-includes/js/jquery/jquery-migrate$suffix.js", array(), '3.4.0' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Full jQuery UI.
</span><span class="cx" style="display: block; padding: 0 10px">        // The build process in 1.12.1 has changed significantly.
</span></span></pre>
</div>
</div>

</body>
</html>