From b70c171e081e4dbca522611af6657e3611354e30 Mon Sep 17 00:00:00 2001
From: "Hahn Axel (hahn)" <axel.hahn@iml.unibe.ch>
Date: Tue, 27 Sep 2022 15:32:43 +0200
Subject: [PATCH] update jquery

---
 vendor/jquery/3.2.1/core.js                   |  476 ---
 vendor/jquery/3.2.1/jquery.min.js             |    4 -
 vendor/jquery/3.2.1/jquery.min.map            |    1 -
 vendor/jquery/3.2.1/jquery.slim.min.js        |    4 -
 vendor/jquery/3.2.1/jquery.slim.min.map       |    1 -
 vendor/jquery/{3.2.1 => 3.6.1}/jquery.js      | 2800 ++++++++++-------
 vendor/jquery/3.6.1/jquery.min.js             |    2 +
 vendor/jquery/3.6.1/jquery.min.map            |    1 +
 vendor/jquery/{3.2.1 => 3.6.1}/jquery.slim.js | 2626 ++++++++++------
 vendor/jquery/3.6.1/jquery.slim.min.js        |    2 +
 vendor/jquery/3.6.1/jquery.slim.min.map       |    1 +
 11 files changed, 3372 insertions(+), 2546 deletions(-)
 delete mode 100644 vendor/jquery/3.2.1/core.js
 delete mode 100644 vendor/jquery/3.2.1/jquery.min.js
 delete mode 100644 vendor/jquery/3.2.1/jquery.min.map
 delete mode 100644 vendor/jquery/3.2.1/jquery.slim.min.js
 delete mode 100644 vendor/jquery/3.2.1/jquery.slim.min.map
 rename vendor/jquery/{3.2.1 => 3.6.1}/jquery.js (79%)
 create mode 100644 vendor/jquery/3.6.1/jquery.min.js
 create mode 100644 vendor/jquery/3.6.1/jquery.min.map
 rename vendor/jquery/{3.2.1 => 3.6.1}/jquery.slim.js (75%)
 create mode 100644 vendor/jquery/3.6.1/jquery.slim.min.js
 create mode 100644 vendor/jquery/3.6.1/jquery.slim.min.map

diff --git a/vendor/jquery/3.2.1/core.js b/vendor/jquery/3.2.1/core.js
deleted file mode 100644
index 0e95274..0000000
--- a/vendor/jquery/3.2.1/core.js
+++ /dev/null
@@ -1,476 +0,0 @@
-/* global Symbol */
-// Defining this global in .eslintrc.json would create a danger of using the global
-// unguarded in another place, it seems safer to define global only for this module
-
-define( [
-	"./var/arr",
-	"./var/document",
-	"./var/getProto",
-	"./var/slice",
-	"./var/concat",
-	"./var/push",
-	"./var/indexOf",
-	"./var/class2type",
-	"./var/toString",
-	"./var/hasOwn",
-	"./var/fnToString",
-	"./var/ObjectFunctionString",
-	"./var/support",
-	"./core/DOMEval"
-], function( arr, document, getProto, slice, concat, push, indexOf,
-	class2type, toString, hasOwn, fnToString, ObjectFunctionString,
-	support, DOMEval ) {
-
-"use strict";
-
-var
-	version = "3.2.1",
-
-	// Define a local copy of jQuery
-	jQuery = function( selector, context ) {
-
-		// The jQuery object is actually just the init constructor 'enhanced'
-		// Need init if jQuery is called (just allow error to be thrown if not included)
-		return new jQuery.fn.init( selector, context );
-	},
-
-	// Support: Android <=4.0 only
-	// Make sure we trim BOM and NBSP
-	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
-
-	// Matches dashed string for camelizing
-	rmsPrefix = /^-ms-/,
-	rdashAlpha = /-([a-z])/g,
-
-	// Used by jQuery.camelCase as callback to replace()
-	fcamelCase = function( all, letter ) {
-		return letter.toUpperCase();
-	};
-
-jQuery.fn = jQuery.prototype = {
-
-	// The current version of jQuery being used
-	jquery: version,
-
-	constructor: jQuery,
-
-	// The default length of a jQuery object is 0
-	length: 0,
-
-	toArray: function() {
-		return slice.call( this );
-	},
-
-	// Get the Nth element in the matched element set OR
-	// Get the whole matched element set as a clean array
-	get: function( num ) {
-
-		// Return all the elements in a clean array
-		if ( num == null ) {
-			return slice.call( this );
-		}
-
-		// Return just the one element from the set
-		return num < 0 ? this[ num + this.length ] : this[ num ];
-	},
-
-	// Take an array of elements and push it onto the stack
-	// (returning the new matched element set)
-	pushStack: function( elems ) {
-
-		// Build a new jQuery matched element set
-		var ret = jQuery.merge( this.constructor(), elems );
-
-		// Add the old object onto the stack (as a reference)
-		ret.prevObject = this;
-
-		// Return the newly-formed element set
-		return ret;
-	},
-
-	// Execute a callback for every element in the matched set.
-	each: function( callback ) {
-		return jQuery.each( this, callback );
-	},
-
-	map: function( callback ) {
-		return this.pushStack( jQuery.map( this, function( elem, i ) {
-			return callback.call( elem, i, elem );
-		} ) );
-	},
-
-	slice: function() {
-		return this.pushStack( slice.apply( this, arguments ) );
-	},
-
-	first: function() {
-		return this.eq( 0 );
-	},
-
-	last: function() {
-		return this.eq( -1 );
-	},
-
-	eq: function( i ) {
-		var len = this.length,
-			j = +i + ( i < 0 ? len : 0 );
-		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
-	},
-
-	end: function() {
-		return this.prevObject || this.constructor();
-	},
-
-	// For internal use only.
-	// Behaves like an Array's method, not like a jQuery method.
-	push: push,
-	sort: arr.sort,
-	splice: arr.splice
-};
-
-jQuery.extend = jQuery.fn.extend = function() {
-	var options, name, src, copy, copyIsArray, clone,
-		target = arguments[ 0 ] || {},
-		i = 1,
-		length = arguments.length,
-		deep = false;
-
-	// Handle a deep copy situation
-	if ( typeof target === "boolean" ) {
-		deep = target;
-
-		// Skip the boolean and the target
-		target = arguments[ i ] || {};
-		i++;
-	}
-
-	// Handle case when target is a string or something (possible in deep copy)
-	if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
-		target = {};
-	}
-
-	// Extend jQuery itself if only one argument is passed
-	if ( i === length ) {
-		target = this;
-		i--;
-	}
-
-	for ( ; i < length; i++ ) {
-
-		// Only deal with non-null/undefined values
-		if ( ( options = arguments[ i ] ) != null ) {
-
-			// Extend the base object
-			for ( name in options ) {
-				src = target[ name ];
-				copy = options[ name ];
-
-				// Prevent never-ending loop
-				if ( target === copy ) {
-					continue;
-				}
-
-				// Recurse if we're merging plain objects or arrays
-				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
-					( copyIsArray = Array.isArray( copy ) ) ) ) {
-
-					if ( copyIsArray ) {
-						copyIsArray = false;
-						clone = src && Array.isArray( src ) ? src : [];
-
-					} else {
-						clone = src && jQuery.isPlainObject( src ) ? src : {};
-					}
-
-					// Never move original objects, clone them
-					target[ name ] = jQuery.extend( deep, clone, copy );
-
-				// Don't bring in undefined values
-				} else if ( copy !== undefined ) {
-					target[ name ] = copy;
-				}
-			}
-		}
-	}
-
-	// Return the modified object
-	return target;
-};
-
-jQuery.extend( {
-
-	// Unique for each copy of jQuery on the page
-	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
-
-	// Assume jQuery is ready without the ready module
-	isReady: true,
-
-	error: function( msg ) {
-		throw new Error( msg );
-	},
-
-	noop: function() {},
-
-	isFunction: function( obj ) {
-		return jQuery.type( obj ) === "function";
-	},
-
-	isWindow: function( obj ) {
-		return obj != null && obj === obj.window;
-	},
-
-	isNumeric: function( obj ) {
-
-		// As of jQuery 3.0, isNumeric is limited to
-		// strings and numbers (primitives or objects)
-		// that can be coerced to finite numbers (gh-2662)
-		var type = jQuery.type( obj );
-		return ( type === "number" || type === "string" ) &&
-
-			// parseFloat NaNs numeric-cast false positives ("")
-			// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
-			// subtraction forces infinities to NaN
-			!isNaN( obj - parseFloat( obj ) );
-	},
-
-	isPlainObject: function( obj ) {
-		var proto, Ctor;
-
-		// Detect obvious negatives
-		// Use toString instead of jQuery.type to catch host objects
-		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
-			return false;
-		}
-
-		proto = getProto( obj );
-
-		// Objects with no prototype (e.g., `Object.create( null )`) are plain
-		if ( !proto ) {
-			return true;
-		}
-
-		// Objects with prototype are plain iff they were constructed by a global Object function
-		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
-		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
-	},
-
-	isEmptyObject: function( obj ) {
-
-		/* eslint-disable no-unused-vars */
-		// See https://github.com/eslint/eslint/issues/6125
-		var name;
-
-		for ( name in obj ) {
-			return false;
-		}
-		return true;
-	},
-
-	type: function( obj ) {
-		if ( obj == null ) {
-			return obj + "";
-		}
-
-		// Support: Android <=2.3 only (functionish RegExp)
-		return typeof obj === "object" || typeof obj === "function" ?
-			class2type[ toString.call( obj ) ] || "object" :
-			typeof obj;
-	},
-
-	// Evaluates a script in a global context
-	globalEval: function( code ) {
-		DOMEval( code );
-	},
-
-	// Convert dashed to camelCase; used by the css and data modules
-	// Support: IE <=9 - 11, Edge 12 - 13
-	// Microsoft forgot to hump their vendor prefix (#9572)
-	camelCase: function( string ) {
-		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
-	},
-
-	each: function( obj, callback ) {
-		var length, i = 0;
-
-		if ( isArrayLike( obj ) ) {
-			length = obj.length;
-			for ( ; i < length; i++ ) {
-				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
-					break;
-				}
-			}
-		} else {
-			for ( i in obj ) {
-				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
-					break;
-				}
-			}
-		}
-
-		return obj;
-	},
-
-	// Support: Android <=4.0 only
-	trim: function( text ) {
-		return text == null ?
-			"" :
-			( text + "" ).replace( rtrim, "" );
-	},
-
-	// results is for internal usage only
-	makeArray: function( arr, results ) {
-		var ret = results || [];
-
-		if ( arr != null ) {
-			if ( isArrayLike( Object( arr ) ) ) {
-				jQuery.merge( ret,
-					typeof arr === "string" ?
-					[ arr ] : arr
-				);
-			} else {
-				push.call( ret, arr );
-			}
-		}
-
-		return ret;
-	},
-
-	inArray: function( elem, arr, i ) {
-		return arr == null ? -1 : indexOf.call( arr, elem, i );
-	},
-
-	// Support: Android <=4.0 only, PhantomJS 1 only
-	// push.apply(_, arraylike) throws on ancient WebKit
-	merge: function( first, second ) {
-		var len = +second.length,
-			j = 0,
-			i = first.length;
-
-		for ( ; j < len; j++ ) {
-			first[ i++ ] = second[ j ];
-		}
-
-		first.length = i;
-
-		return first;
-	},
-
-	grep: function( elems, callback, invert ) {
-		var callbackInverse,
-			matches = [],
-			i = 0,
-			length = elems.length,
-			callbackExpect = !invert;
-
-		// Go through the array, only saving the items
-		// that pass the validator function
-		for ( ; i < length; i++ ) {
-			callbackInverse = !callback( elems[ i ], i );
-			if ( callbackInverse !== callbackExpect ) {
-				matches.push( elems[ i ] );
-			}
-		}
-
-		return matches;
-	},
-
-	// arg is for internal usage only
-	map: function( elems, callback, arg ) {
-		var length, value,
-			i = 0,
-			ret = [];
-
-		// Go through the array, translating each of the items to their new values
-		if ( isArrayLike( elems ) ) {
-			length = elems.length;
-			for ( ; i < length; i++ ) {
-				value = callback( elems[ i ], i, arg );
-
-				if ( value != null ) {
-					ret.push( value );
-				}
-			}
-
-		// Go through every key on the object,
-		} else {
-			for ( i in elems ) {
-				value = callback( elems[ i ], i, arg );
-
-				if ( value != null ) {
-					ret.push( value );
-				}
-			}
-		}
-
-		// Flatten any nested arrays
-		return concat.apply( [], ret );
-	},
-
-	// A global GUID counter for objects
-	guid: 1,
-
-	// Bind a function to a context, optionally partially applying any
-	// arguments.
-	proxy: function( fn, context ) {
-		var tmp, args, proxy;
-
-		if ( typeof context === "string" ) {
-			tmp = fn[ context ];
-			context = fn;
-			fn = tmp;
-		}
-
-		// Quick check to determine if target is callable, in the spec
-		// this throws a TypeError, but we will just return undefined.
-		if ( !jQuery.isFunction( fn ) ) {
-			return undefined;
-		}
-
-		// Simulated bind
-		args = slice.call( arguments, 2 );
-		proxy = function() {
-			return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
-		};
-
-		// Set the guid of unique handler to the same of original handler, so it can be removed
-		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
-
-		return proxy;
-	},
-
-	now: Date.now,
-
-	// jQuery.support is not used in Core but other projects attach their
-	// properties to it so it needs to exist.
-	support: support
-} );
-
-if ( typeof Symbol === "function" ) {
-	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
-}
-
-// Populate the class2type map
-jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
-function( i, name ) {
-	class2type[ "[object " + name + "]" ] = name.toLowerCase();
-} );
-
-function isArrayLike( obj ) {
-
-	// Support: real iOS 8.2 only (not reproducible in simulator)
-	// `in` check used to prevent JIT error (gh-2145)
-	// hasOwn isn't used here due to false negatives
-	// regarding Nodelist length in IE
-	var length = !!obj && "length" in obj && obj.length,
-		type = jQuery.type( obj );
-
-	if ( type === "function" || jQuery.isWindow( obj ) ) {
-		return false;
-	}
-
-	return type === "array" || length === 0 ||
-		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
-}
-
-return jQuery;
-} );
diff --git a/vendor/jquery/3.2.1/jquery.min.js b/vendor/jquery/3.2.1/jquery.min.js
deleted file mode 100644
index 644d35e..0000000
--- a/vendor/jquery/3.2.1/jquery.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),
-a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&da(a),q=W.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],cb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=W.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ia([a],!0),j=a.style.display||j,k=r.css(a,"display"),ia([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=W.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ia([a],!0),m.done(function(){p||ia([a]),W.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=hb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],Array.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=kb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=ab||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(i||h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:ab||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);f<g;f++)if(d=kb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,hb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j}r.Animation=r.extend(kb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return fa(c.elem,a,ba.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(L);for(var c,d=0,e=a.length;d<e;d++)c=a[d],kb.tweeners[c]=kb.tweeners[c]||[],kb.tweeners[c].unshift(b)},prefilters:[ib],prefilter:function(a,b){b?kb.prefilters.unshift(a):kb.prefilters.push(a)}}),r.speed=function(a,b,c){var d=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off?d.duration=0:"number"!=typeof d.duration&&(d.duration in r.fx.speeds?d.duration=r.fx.speeds[d.duration]:d.duration=r.fx.speeds._default),null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){r.isFunction(d.old)&&d.old.call(this),d.queue&&r.dequeue(this,d.queue)},d},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=kb(this,r.extend({},a),f);(e||W.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=W.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&db.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=W.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),r.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(ab=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),ab=void 0},r.fx.timer=function(a){r.timers.push(a),r.fx.start()},r.fx.interval=13,r.fx.start=function(){bb||(bb=!0,eb())},r.fx.stop=function(){bb=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var lb,mb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),
-null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.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(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Tb=[],Ub=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Tb.pop()||r.expando+"_"+ub++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ub.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ub.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ub,"$1"+e):b.jsonp!==!1&&(b.url+=(vb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Tb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=pb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Vb=a.jQuery,Wb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Wb),b&&a.jQuery===r&&(a.jQuery=Vb),r},b||(a.jQuery=a.$=r),r});
diff --git a/vendor/jquery/3.2.1/jquery.min.map b/vendor/jquery/3.2.1/jquery.min.map
deleted file mode 100644
index e8f55ef..0000000
--- a/vendor/jquery/3.2.1/jquery.min.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["jquery.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","getProto","Object","getPrototypeOf","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","call","support","DOMEval","code","doc","script","createElement","text","head","appendChild","parentNode","removeChild","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","isWindow","isNumeric","isNaN","parseFloat","proto","Ctor","isEmptyObject","globalEval","camelCase","string","isArrayLike","trim","makeArray","results","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","value","guid","proxy","tmp","args","now","Date","Symbol","iterator","split","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","disabledAncestor","addCombinator","disabled","dir","next","childNodes","nodeType","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","nodeName","getAttribute","setAttribute","toSelector","join","testContext","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","targets","l","closest","index","prevAll","add","addBack","sibling","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","createOptions","object","flag","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","readyWait","wait","completed","removeEventListener","readyState","doScroll","access","chainable","emptyGet","raw","bulk","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isHiddenWithinTree","style","display","css","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","optgroup","tbody","tfoot","colgroup","caption","th","getAll","setGlobalEval","refElements","rhtml","buildFragment","scripts","selection","ignored","wrap","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","div","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","on","types","one","origFn","event","off","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","fix","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","trigger","blur","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rscriptTypeMasked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rmargin","rnumnonpx","getStyles","opener","getComputedStyle","computeStyleTests","cssText","container","divStyle","pixelPositionVal","reliableMarginLeftVal","marginLeft","boxSizingReliableVal","width","marginRight","pixelMarginRightVal","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","pixelMarginRight","reliableMarginLeft","curCSS","computed","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","rdisplayswap","rcustomProp","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","finalPropName","cssProps","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","float","origName","isCustomProp","setProperty","isFinite","getClientRects","getBoundingClientRect","left","margin","padding","border","prefix","suffix","expand","expanded","parts","Tween","easing","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","defaultPrefilter","opts","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","properties","stopped","prefilters","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","complete","timer","*","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","parseInt","for","class","stripAndCollapse","getClass","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","rfocusMorph","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","parentWindow","simulate","triggerHandler","hover","fnOver","fnOut","focusin","attaches","nonce","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","modified","getJSON","getScript","throws","wrapAll","firstElementChild","wrapInner","unwrap","visible","offsetWidth","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","onreadystatechange","responseType","responseText","binary","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","rect","win","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","bind","unbind","delegate","undelegate","holdReady","hold","parseJSON","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery.min.js"}
\ No newline at end of file
diff --git a/vendor/jquery/3.2.1/jquery.slim.min.js b/vendor/jquery/3.2.1/jquery.slim.min.js
deleted file mode 100644
index 105d00e..0000000
--- a/vendor/jquery/3.2.1/jquery.slim.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */
-!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a);
-}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}}),r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var _a,ab=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?_a:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),_a={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ab[b]||r.find.attr;ab[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ab[g],ab[g]=e,e=null!=c(a,b,d)?g:null,ab[g]=f),e}});var bb=/^(?:input|select|textarea|button)$/i,cb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function db(a){var b=a.match(L)||[];return b.join(" ")}function eb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,eb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=eb(c),d=1===c.nodeType&&" "+db(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=db(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,eb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=eb(c),d=1===c.nodeType&&" "+db(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=db(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,eb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=eb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+db(eb(c))+" ").indexOf(b)>-1)return!0;return!1}});var fb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(fb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:db(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var gb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!gb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,gb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.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(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var hb=/\[\]$/,ib=/\r?\n/g,jb=/^(?:submit|button|image|reset|file)$/i,kb=/^(?:input|select|textarea|keygen)/i;function lb(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||hb.test(a)?d(a,e):lb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d);
-});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)lb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)lb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&kb.test(this.nodeName)&&!jb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ib,"\r\n")}}):{name:b.name,value:c.replace(ib,"\r\n")}}).get()}}),r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var mb=a.jQuery,nb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=nb),b&&a.jQuery===r&&(a.jQuery=mb),r},b||(a.jQuery=a.$=r),r});
diff --git a/vendor/jquery/3.2.1/jquery.slim.min.map b/vendor/jquery/3.2.1/jquery.slim.min.map
deleted file mode 100644
index a44b7b4..0000000
--- a/vendor/jquery/3.2.1/jquery.slim.min.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["jquery.slim.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","getProto","Object","getPrototypeOf","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","call","support","DOMEval","code","doc","script","createElement","text","head","appendChild","parentNode","removeChild","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","isWindow","isNumeric","isNaN","parseFloat","proto","Ctor","isEmptyObject","globalEval","camelCase","string","isArrayLike","trim","makeArray","results","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","value","guid","proxy","tmp","args","now","Date","Symbol","iterator","split","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","disabledAncestor","addCombinator","disabled","dir","next","childNodes","nodeType","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","nodeName","getAttribute","setAttribute","toSelector","join","testContext","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","targets","l","closest","index","prevAll","add","addBack","sibling","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","createOptions","object","flag","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","readyWait","wait","completed","removeEventListener","readyState","doScroll","access","chainable","emptyGet","raw","bulk","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isHiddenWithinTree","style","display","css","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","optgroup","tbody","tfoot","colgroup","caption","th","getAll","setGlobalEval","refElements","rhtml","buildFragment","scripts","selection","ignored","wrap","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","div","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","on","types","one","origFn","event","off","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","fix","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","trigger","blur","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rscriptTypeMasked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rmargin","rnumnonpx","getStyles","opener","getComputedStyle","computeStyleTests","cssText","container","divStyle","pixelPositionVal","reliableMarginLeftVal","marginLeft","boxSizingReliableVal","width","marginRight","pixelMarginRightVal","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","pixelMarginRight","reliableMarginLeft","curCSS","computed","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","rdisplayswap","rcustomProp","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","finalPropName","cssProps","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","float","origName","isCustomProp","setProperty","isFinite","getClientRects","getBoundingClientRect","left","margin","padding","border","prefix","suffix","expand","expanded","parts","delay","time","fx","speeds","timeout","clearTimeout","opt","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","propHooks","tabindex","parseInt","for","class","stripAndCollapse","getClass","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","rfocusMorph","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","parentWindow","simulate","triggerHandler","hover","fnOver","fnOut","focusin","attaches","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","wrapAll","firstElementChild","wrapInner","unwrap","hidden","visible","offsetWidth","offsetHeight","createHTMLDocument","implementation","keepScripts","parsed","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","rect","win","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","parentOffset","scrollLeft","scrollTop","scrollTo","Height","Width","","defaultExtra","funcName","bind","unbind","delegate","undelegate","holdReady","hold","parseJSON","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery.slim.min.js"}
\ No newline at end of file
diff --git a/vendor/jquery/3.2.1/jquery.js b/vendor/jquery/3.6.1/jquery.js
similarity index 79%
rename from vendor/jquery/3.2.1/jquery.js
rename to vendor/jquery/3.6.1/jquery.js
index d2d8ca4..12e65d0 100644
--- a/vendor/jquery/3.2.1/jquery.js
+++ b/vendor/jquery/3.6.1/jquery.js
@@ -1,15 +1,15 @@
 /*!
- * jQuery JavaScript Library v3.2.1
+ * jQuery JavaScript Library v3.6.1
  * https://jquery.com/
  *
  * Includes Sizzle.js
  * https://sizzlejs.com/
  *
- * Copyright JS Foundation and other contributors
+ * Copyright OpenJS Foundation and other contributors
  * Released under the MIT license
  * https://jquery.org/license
  *
- * Date: 2017-03-20T18:59Z
+ * Date: 2022-08-26T17:52Z
  */
 ( function( global, factory ) {
 
@@ -23,7 +23,7 @@
 		// (such as Node.js), expose a factory as module.exports.
 		// This accentuates the need for the creation of a real `window`.
 		// e.g. var jQuery = require("jquery")(window);
-		// See ticket #14549 for more info.
+		// See ticket trac-14549 for more info.
 		module.exports = global.document ?
 			factory( global, true ) :
 			function( w ) {
@@ -47,13 +47,16 @@
 
 var arr = [];
 
-var document = window.document;
-
 var getProto = Object.getPrototypeOf;
 
 var slice = arr.slice;
 
-var concat = arr.concat;
+var flat = arr.flat ? function( array ) {
+	return arr.flat.call( array );
+} : function( array ) {
+	return arr.concat.apply( [], array );
+};
+
 
 var push = arr.push;
 
@@ -71,16 +74,76 @@ var ObjectFunctionString = fnToString.call( Object );
 
 var support = {};
 
+var isFunction = function isFunction( obj ) {
+
+		// Support: Chrome <=57, Firefox <=52
+		// In some browsers, typeof returns "function" for HTML <object> elements
+		// (i.e., `typeof document.createElement( "object" ) === "function"`).
+		// We don't want to classify *any* DOM node as a function.
+		// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5
+		// Plus for old WebKit, typeof returns "function" for HTML collections
+		// (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756)
+		return typeof obj === "function" && typeof obj.nodeType !== "number" &&
+			typeof obj.item !== "function";
+	};
+
+
+var isWindow = function isWindow( obj ) {
+		return obj != null && obj === obj.window;
+	};
+
+
+var document = window.document;
+
 
 
-	function DOMEval( code, doc ) {
+	var preservedScriptAttributes = {
+		type: true,
+		src: true,
+		nonce: true,
+		noModule: true
+	};
+
+	function DOMEval( code, node, doc ) {
 		doc = doc || document;
 
-		var script = doc.createElement( "script" );
+		var i, val,
+			script = doc.createElement( "script" );
 
 		script.text = code;
+		if ( node ) {
+			for ( i in preservedScriptAttributes ) {
+
+				// Support: Firefox 64+, Edge 18+
+				// Some browsers don't support the "nonce" property on scripts.
+				// On the other hand, just using `getAttribute` is not enough as
+				// the `nonce` attribute is reset to an empty string whenever it
+				// becomes browsing-context connected.
+				// See https://github.com/whatwg/html/issues/2369
+				// See https://html.spec.whatwg.org/#nonce-attributes
+				// The `node.getAttribute` check was added for the sake of
+				// `jQuery.globalEval` so that it can fake a nonce-containing node
+				// via an object.
+				val = node[ i ] || node.getAttribute && node.getAttribute( i );
+				if ( val ) {
+					script.setAttribute( i, val );
+				}
+			}
+		}
 		doc.head.appendChild( script ).parentNode.removeChild( script );
 	}
+
+
+function toType( obj ) {
+	if ( obj == null ) {
+		return obj + "";
+	}
+
+	// Support: Android <=2.3 only (functionish RegExp)
+	return typeof obj === "object" || typeof obj === "function" ?
+		class2type[ toString.call( obj ) ] || "object" :
+		typeof obj;
+}
 /* global Symbol */
 // Defining this global in .eslintrc.json would create a danger of using the global
 // unguarded in another place, it seems safer to define global only for this module
@@ -88,7 +151,7 @@ var support = {};
 
 
 var
-	version = "3.2.1",
+	version = "3.6.1",
 
 	// Define a local copy of jQuery
 	jQuery = function( selector, context ) {
@@ -96,19 +159,6 @@ var
 		// The jQuery object is actually just the init constructor 'enhanced'
 		// Need init if jQuery is called (just allow error to be thrown if not included)
 		return new jQuery.fn.init( selector, context );
-	},
-
-	// Support: Android <=4.0 only
-	// Make sure we trim BOM and NBSP
-	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
-
-	// Matches dashed string for camelizing
-	rmsPrefix = /^-ms-/,
-	rdashAlpha = /-([a-z])/g,
-
-	// Used by jQuery.camelCase as callback to replace()
-	fcamelCase = function( all, letter ) {
-		return letter.toUpperCase();
 	};
 
 jQuery.fn = jQuery.prototype = {
@@ -175,6 +225,18 @@ jQuery.fn = jQuery.prototype = {
 		return this.eq( -1 );
 	},
 
+	even: function() {
+		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
+			return ( i + 1 ) % 2;
+		} ) );
+	},
+
+	odd: function() {
+		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
+			return i % 2;
+		} ) );
+	},
+
 	eq: function( i ) {
 		var len = this.length,
 			j = +i + ( i < 0 ? len : 0 );
@@ -209,7 +271,7 @@ jQuery.extend = jQuery.fn.extend = function() {
 	}
 
 	// Handle case when target is a string or something (possible in deep copy)
-	if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+	if ( typeof target !== "object" && !isFunction( target ) ) {
 		target = {};
 	}
 
@@ -226,25 +288,28 @@ jQuery.extend = jQuery.fn.extend = function() {
 
 			// Extend the base object
 			for ( name in options ) {
-				src = target[ name ];
 				copy = options[ name ];
 
+				// Prevent Object.prototype pollution
 				// Prevent never-ending loop
-				if ( target === copy ) {
+				if ( name === "__proto__" || target === copy ) {
 					continue;
 				}
 
 				// Recurse if we're merging plain objects or arrays
 				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
 					( copyIsArray = Array.isArray( copy ) ) ) ) {
+					src = target[ name ];
 
-					if ( copyIsArray ) {
-						copyIsArray = false;
-						clone = src && Array.isArray( src ) ? src : [];
-
+					// Ensure proper type for the source value
+					if ( copyIsArray && !Array.isArray( src ) ) {
+						clone = [];
+					} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
+						clone = {};
 					} else {
-						clone = src && jQuery.isPlainObject( src ) ? src : {};
+						clone = src;
 					}
+					copyIsArray = false;
 
 					// Never move original objects, clone them
 					target[ name ] = jQuery.extend( deep, clone, copy );
@@ -275,28 +340,6 @@ jQuery.extend( {
 
 	noop: function() {},
 
-	isFunction: function( obj ) {
-		return jQuery.type( obj ) === "function";
-	},
-
-	isWindow: function( obj ) {
-		return obj != null && obj === obj.window;
-	},
-
-	isNumeric: function( obj ) {
-
-		// As of jQuery 3.0, isNumeric is limited to
-		// strings and numbers (primitives or objects)
-		// that can be coerced to finite numbers (gh-2662)
-		var type = jQuery.type( obj );
-		return ( type === "number" || type === "string" ) &&
-
-			// parseFloat NaNs numeric-cast false positives ("")
-			// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
-			// subtraction forces infinities to NaN
-			!isNaN( obj - parseFloat( obj ) );
-	},
-
 	isPlainObject: function( obj ) {
 		var proto, Ctor;
 
@@ -319,9 +362,6 @@ jQuery.extend( {
 	},
 
 	isEmptyObject: function( obj ) {
-
-		/* eslint-disable no-unused-vars */
-		// See https://github.com/eslint/eslint/issues/6125
 		var name;
 
 		for ( name in obj ) {
@@ -330,27 +370,10 @@ jQuery.extend( {
 		return true;
 	},
 
-	type: function( obj ) {
-		if ( obj == null ) {
-			return obj + "";
-		}
-
-		// Support: Android <=2.3 only (functionish RegExp)
-		return typeof obj === "object" || typeof obj === "function" ?
-			class2type[ toString.call( obj ) ] || "object" :
-			typeof obj;
-	},
-
-	// Evaluates a script in a global context
-	globalEval: function( code ) {
-		DOMEval( code );
-	},
-
-	// Convert dashed to camelCase; used by the css and data modules
-	// Support: IE <=9 - 11, Edge 12 - 13
-	// Microsoft forgot to hump their vendor prefix (#9572)
-	camelCase: function( string ) {
-		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+	// Evaluates a script in a provided context; falls back to the global one
+	// if not specified.
+	globalEval: function( code, options, doc ) {
+		DOMEval( code, { nonce: options && options.nonce }, doc );
 	},
 
 	each: function( obj, callback ) {
@@ -374,13 +397,6 @@ jQuery.extend( {
 		return obj;
 	},
 
-	// Support: Android <=4.0 only
-	trim: function( text ) {
-		return text == null ?
-			"" :
-			( text + "" ).replace( rtrim, "" );
-	},
-
 	// results is for internal usage only
 	makeArray: function( arr, results ) {
 		var ret = results || [];
@@ -389,7 +405,7 @@ jQuery.extend( {
 			if ( isArrayLike( Object( arr ) ) ) {
 				jQuery.merge( ret,
 					typeof arr === "string" ?
-					[ arr ] : arr
+						[ arr ] : arr
 				);
 			} else {
 				push.call( ret, arr );
@@ -467,43 +483,12 @@ jQuery.extend( {
 		}
 
 		// Flatten any nested arrays
-		return concat.apply( [], ret );
+		return flat( ret );
 	},
 
 	// A global GUID counter for objects
 	guid: 1,
 
-	// Bind a function to a context, optionally partially applying any
-	// arguments.
-	proxy: function( fn, context ) {
-		var tmp, args, proxy;
-
-		if ( typeof context === "string" ) {
-			tmp = fn[ context ];
-			context = fn;
-			fn = tmp;
-		}
-
-		// Quick check to determine if target is callable, in the spec
-		// this throws a TypeError, but we will just return undefined.
-		if ( !jQuery.isFunction( fn ) ) {
-			return undefined;
-		}
-
-		// Simulated bind
-		args = slice.call( arguments, 2 );
-		proxy = function() {
-			return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
-		};
-
-		// Set the guid of unique handler to the same of original handler, so it can be removed
-		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
-
-		return proxy;
-	},
-
-	now: Date.now,
-
 	// jQuery.support is not used in Core but other projects attach their
 	// properties to it so it needs to exist.
 	support: support
@@ -515,9 +500,9 @@ if ( typeof Symbol === "function" ) {
 
 // Populate the class2type map
 jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
-function( i, name ) {
-	class2type[ "[object " + name + "]" ] = name.toLowerCase();
-} );
+	function( _i, name ) {
+		class2type[ "[object " + name + "]" ] = name.toLowerCase();
+	} );
 
 function isArrayLike( obj ) {
 
@@ -526,9 +511,9 @@ function isArrayLike( obj ) {
 	// hasOwn isn't used here due to false negatives
 	// regarding Nodelist length in IE
 	var length = !!obj && "length" in obj && obj.length,
-		type = jQuery.type( obj );
+		type = toType( obj );
 
-	if ( type === "function" || jQuery.isWindow( obj ) ) {
+	if ( isFunction( obj ) || isWindow( obj ) ) {
 		return false;
 	}
 
@@ -537,17 +522,16 @@ function isArrayLike( obj ) {
 }
 var Sizzle =
 /*!
- * Sizzle CSS Selector Engine v2.3.3
+ * Sizzle CSS Selector Engine v2.3.6
  * https://sizzlejs.com/
  *
- * Copyright jQuery Foundation and other contributors
+ * Copyright JS Foundation and other contributors
  * Released under the MIT license
- * http://jquery.org/license
+ * https://js.foundation/
  *
- * Date: 2016-08-08
+ * Date: 2021-02-16
  */
-(function( window ) {
-
+( function( window ) {
 var i,
 	support,
 	Expr,
@@ -578,6 +562,7 @@ var i,
 	classCache = createCache(),
 	tokenCache = createCache(),
 	compilerCache = createCache(),
+	nonnativeSelectorCache = createCache(),
 	sortOrder = function( a, b ) {
 		if ( a === b ) {
 			hasDuplicate = true;
@@ -586,61 +571,71 @@ var i,
 	},
 
 	// Instance methods
-	hasOwn = ({}).hasOwnProperty,
+	hasOwn = ( {} ).hasOwnProperty,
 	arr = [],
 	pop = arr.pop,
-	push_native = arr.push,
+	pushNative = arr.push,
 	push = arr.push,
 	slice = arr.slice,
+
 	// Use a stripped-down indexOf as it's faster than native
 	// https://jsperf.com/thor-indexof-vs-for/5
 	indexOf = function( list, elem ) {
 		var i = 0,
 			len = list.length;
 		for ( ; i < len; i++ ) {
-			if ( list[i] === elem ) {
+			if ( list[ i ] === elem ) {
 				return i;
 			}
 		}
 		return -1;
 	},
 
-	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" +
+		"ismap|loop|multiple|open|readonly|required|scoped",
 
 	// Regular expressions
 
 	// http://www.w3.org/TR/css3-selectors/#whitespace
 	whitespace = "[\\x20\\t\\r\\n\\f]",
 
-	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
-	identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+	// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
+	identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
+		"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
 
 	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
 	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+
 		// Operator (capture 2)
 		"*([*^$|!~]?=)" + whitespace +
-		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
-		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
-		"*\\]",
+
+		// "Attribute values must be CSS identifiers [capture 5]
+		// or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" +
+		whitespace + "*\\]",
 
 	pseudos = ":(" + identifier + ")(?:\\((" +
+
 		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
 		// 1. quoted (capture 3; capture 4 or capture 5)
 		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+
 		// 2. simple (capture 6)
 		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+
 		// 3. anything else (capture 2)
 		".*" +
 		")\\)|)",
 
 	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
 	rwhitespace = new RegExp( whitespace + "+", "g" ),
-	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" +
+		whitespace + "+$", "g" ),
 
 	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
-	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
-
-	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace +
+		"*" ),
+	rdescend = new RegExp( whitespace + "|>" ),
 
 	rpseudo = new RegExp( pseudos ),
 	ridentifier = new RegExp( "^" + identifier + "$" ),
@@ -651,16 +646,19 @@ var i,
 		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
 		"ATTR": new RegExp( "^" + attributes ),
 		"PSEUDO": new RegExp( "^" + pseudos ),
-		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
-			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
-			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
+			whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
+			whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
 		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+
 		// For use in libraries implementing .is()
 		// We use this for POS matching in `select`
-		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
-			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+		"needsContext": new RegExp( "^" + whitespace +
+			"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
+			"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
 	},
 
+	rhtml = /HTML$/i,
 	rinputs = /^(?:input|select|textarea|button)$/i,
 	rheader = /^h\d$/i,
 
@@ -673,18 +671,21 @@ var i,
 
 	// CSS escapes
 	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
-	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
-	funescape = function( _, escaped, escapedWhitespace ) {
-		var high = "0x" + escaped - 0x10000;
-		// NaN means non-codepoint
-		// Support: Firefox<24
-		// Workaround erroneous numeric interpretation of +"0x"
-		return high !== high || escapedWhitespace ?
-			escaped :
+	runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ),
+	funescape = function( escape, nonHex ) {
+		var high = "0x" + escape.slice( 1 ) - 0x10000;
+
+		return nonHex ?
+
+			// Strip the backslash prefix from a non-hex escape sequence
+			nonHex :
+
+			// Replace a hexadecimal escape sequence with the encoded Unicode code point
+			// Support: IE <=11+
+			// For values outside the Basic Multilingual Plane (BMP), manually construct a
+			// surrogate pair
 			high < 0 ?
-				// BMP codepoint
 				String.fromCharCode( high + 0x10000 ) :
-				// Supplemental Plane codepoint (surrogate pair)
 				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
 	},
 
@@ -700,7 +701,8 @@ var i,
 			}
 
 			// Control characters and (dependent upon position) numbers get escaped as code points
-			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+			return ch.slice( 0, -1 ) + "\\" +
+				ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
 		}
 
 		// Other potentially-special ASCII characters get backslash-escaped
@@ -715,9 +717,9 @@ var i,
 		setDocument();
 	},
 
-	disabledAncestor = addCombinator(
+	inDisabledFieldset = addCombinator(
 		function( elem ) {
-			return elem.disabled === true && ("form" in elem || "label" in elem);
+			return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
 		},
 		{ dir: "parentNode", next: "legend" }
 	);
@@ -725,18 +727,20 @@ var i,
 // Optimize for push.apply( _, NodeList )
 try {
 	push.apply(
-		(arr = slice.call( preferredDoc.childNodes )),
+		( arr = slice.call( preferredDoc.childNodes ) ),
 		preferredDoc.childNodes
 	);
+
 	// Support: Android<4.0
 	// Detect silently failing push.apply
+	// eslint-disable-next-line no-unused-expressions
 	arr[ preferredDoc.childNodes.length ].nodeType;
 } catch ( e ) {
 	push = { apply: arr.length ?
 
 		// Leverage slice if possible
 		function( target, els ) {
-			push_native.apply( target, slice.call(els) );
+			pushNative.apply( target, slice.call( els ) );
 		} :
 
 		// Support: IE<9
@@ -744,8 +748,9 @@ try {
 		function( target, els ) {
 			var j = target.length,
 				i = 0;
+
 			// Can't trust NodeList.length
-			while ( (target[j++] = els[i++]) ) {}
+			while ( ( target[ j++ ] = els[ i++ ] ) ) {}
 			target.length = j - 1;
 		}
 	};
@@ -769,24 +774,21 @@ function Sizzle( selector, context, results, seed ) {
 
 	// Try to shortcut find operations (as opposed to filters) in HTML documents
 	if ( !seed ) {
-
-		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
-			setDocument( context );
-		}
+		setDocument( context );
 		context = context || document;
 
 		if ( documentIsHTML ) {
 
 			// If the selector is sufficiently simple, try using a "get*By*" DOM method
 			// (excepting DocumentFragment context, where the methods don't exist)
-			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+			if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {
 
 				// ID selector
-				if ( (m = match[1]) ) {
+				if ( ( m = match[ 1 ] ) ) {
 
 					// Document context
 					if ( nodeType === 9 ) {
-						if ( (elem = context.getElementById( m )) ) {
+						if ( ( elem = context.getElementById( m ) ) ) {
 
 							// Support: IE, Opera, Webkit
 							// TODO: identify versions
@@ -805,7 +807,7 @@ function Sizzle( selector, context, results, seed ) {
 						// Support: IE, Opera, Webkit
 						// TODO: identify versions
 						// getElementById can match elements by name instead of ID
-						if ( newContext && (elem = newContext.getElementById( m )) &&
+						if ( newContext && ( elem = newContext.getElementById( m ) ) &&
 							contains( context, elem ) &&
 							elem.id === m ) {
 
@@ -815,12 +817,12 @@ function Sizzle( selector, context, results, seed ) {
 					}
 
 				// Type selector
-				} else if ( match[2] ) {
+				} else if ( match[ 2 ] ) {
 					push.apply( results, context.getElementsByTagName( selector ) );
 					return results;
 
 				// Class selector
-				} else if ( (m = match[3]) && support.getElementsByClassName &&
+				} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&
 					context.getElementsByClassName ) {
 
 					push.apply( results, context.getElementsByClassName( m ) );
@@ -830,50 +832,62 @@ function Sizzle( selector, context, results, seed ) {
 
 			// Take advantage of querySelectorAll
 			if ( support.qsa &&
-				!compilerCache[ selector + " " ] &&
-				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
-
-				if ( nodeType !== 1 ) {
-					newContext = context;
-					newSelector = selector;
+				!nonnativeSelectorCache[ selector + " " ] &&
+				( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&
 
-				// qSA looks outside Element context, which is not what we want
-				// Thanks to Andrew Dupont for this workaround technique
-				// Support: IE <=8
+				// Support: IE 8 only
 				// Exclude object elements
-				} else if ( context.nodeName.toLowerCase() !== "object" ) {
+				( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {
 
-					// Capture the context ID, setting it first if necessary
-					if ( (nid = context.getAttribute( "id" )) ) {
-						nid = nid.replace( rcssescape, fcssescape );
-					} else {
-						context.setAttribute( "id", (nid = expando) );
+				newSelector = selector;
+				newContext = context;
+
+				// qSA considers elements outside a scoping root when evaluating child or
+				// descendant combinators, which is not what we want.
+				// In such cases, we work around the behavior by prefixing every selector in the
+				// list with an ID selector referencing the scope context.
+				// The technique has to be used as well when a leading combinator is used
+				// as such selectors are not recognized by querySelectorAll.
+				// Thanks to Andrew Dupont for this technique.
+				if ( nodeType === 1 &&
+					( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
+
+					// We can use :scope instead of the ID hack if the browser
+					// supports it & if we're not changing the context.
+					if ( newContext !== context || !support.scope ) {
+
+						// Capture the context ID, setting it first if necessary
+						if ( ( nid = context.getAttribute( "id" ) ) ) {
+							nid = nid.replace( rcssescape, fcssescape );
+						} else {
+							context.setAttribute( "id", ( nid = expando ) );
+						}
 					}
 
 					// Prefix every selector in the list
 					groups = tokenize( selector );
 					i = groups.length;
 					while ( i-- ) {
-						groups[i] = "#" + nid + " " + toSelector( groups[i] );
+						groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " +
+							toSelector( groups[ i ] );
 					}
 					newSelector = groups.join( "," );
-
-					// Expand context for sibling selectors
-					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
-						context;
 				}
 
-				if ( newSelector ) {
-					try {
-						push.apply( results,
-							newContext.querySelectorAll( newSelector )
-						);
-						return results;
-					} catch ( qsaError ) {
-					} finally {
-						if ( nid === expando ) {
-							context.removeAttribute( "id" );
-						}
+				try {
+					push.apply( results,
+						newContext.querySelectorAll( newSelector )
+					);
+					return results;
+				} catch ( qsaError ) {
+					nonnativeSelectorCache( selector, true );
+				} finally {
+					if ( nid === expando ) {
+						context.removeAttribute( "id" );
 					}
 				}
 			}
@@ -894,12 +908,14 @@ function createCache() {
 	var keys = [];
 
 	function cache( key, value ) {
+
 		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
 		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+
 			// Only keep the most recent entries
 			delete cache[ keys.shift() ];
 		}
-		return (cache[ key + " " ] = value);
+		return ( cache[ key + " " ] = value );
 	}
 	return cache;
 }
@@ -918,17 +934,19 @@ function markFunction( fn ) {
  * @param {Function} fn Passed the created element and returns a boolean result
  */
 function assert( fn ) {
-	var el = document.createElement("fieldset");
+	var el = document.createElement( "fieldset" );
 
 	try {
 		return !!fn( el );
-	} catch (e) {
+	} catch ( e ) {
 		return false;
 	} finally {
+
 		// Remove from its parent by default
 		if ( el.parentNode ) {
 			el.parentNode.removeChild( el );
 		}
+
 		// release memory in IE
 		el = null;
 	}
@@ -940,11 +958,11 @@ function assert( fn ) {
  * @param {Function} handler The method that will be applied
  */
 function addHandle( attrs, handler ) {
-	var arr = attrs.split("|"),
+	var arr = attrs.split( "|" ),
 		i = arr.length;
 
 	while ( i-- ) {
-		Expr.attrHandle[ arr[i] ] = handler;
+		Expr.attrHandle[ arr[ i ] ] = handler;
 	}
 }
 
@@ -966,7 +984,7 @@ function siblingCheck( a, b ) {
 
 	// Check if b follows a
 	if ( cur ) {
-		while ( (cur = cur.nextSibling) ) {
+		while ( ( cur = cur.nextSibling ) ) {
 			if ( cur === b ) {
 				return -1;
 			}
@@ -994,7 +1012,7 @@ function createInputPseudo( type ) {
 function createButtonPseudo( type ) {
 	return function( elem ) {
 		var name = elem.nodeName.toLowerCase();
-		return (name === "input" || name === "button") && elem.type === type;
+		return ( name === "input" || name === "button" ) && elem.type === type;
 	};
 }
 
@@ -1037,7 +1055,7 @@ function createDisabledPseudo( disabled ) {
 					// Where there is no isDisabled, check manually
 					/* jshint -W018 */
 					elem.isDisabled !== !disabled &&
-						disabledAncestor( elem ) === disabled;
+					inDisabledFieldset( elem ) === disabled;
 			}
 
 			return elem.disabled === disabled;
@@ -1059,21 +1077,21 @@ function createDisabledPseudo( disabled ) {
  * @param {Function} fn
  */
 function createPositionalPseudo( fn ) {
-	return markFunction(function( argument ) {
+	return markFunction( function( argument ) {
 		argument = +argument;
-		return markFunction(function( seed, matches ) {
+		return markFunction( function( seed, matches ) {
 			var j,
 				matchIndexes = fn( [], seed.length, argument ),
 				i = matchIndexes.length;
 
 			// Match elements found at the specified indexes
 			while ( i-- ) {
-				if ( seed[ (j = matchIndexes[i]) ] ) {
-					seed[j] = !(matches[j] = seed[j]);
+				if ( seed[ ( j = matchIndexes[ i ] ) ] ) {
+					seed[ j ] = !( matches[ j ] = seed[ j ] );
 				}
 			}
-		});
-	});
+		} );
+	} );
 }
 
 /**
@@ -1094,10 +1112,13 @@ support = Sizzle.support = {};
  * @returns {Boolean} True iff elem is a non-HTML XML node
  */
 isXML = Sizzle.isXML = function( elem ) {
-	// documentElement is verified for cases where it doesn't yet exist
-	// (such as loading iframes in IE - #4833)
-	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
-	return documentElement ? documentElement.nodeName !== "HTML" : false;
+	var namespace = elem && elem.namespaceURI,
+		docElem = elem && ( elem.ownerDocument || elem ).documentElement;
+
+	// Support: IE <=8
+	// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
+	// https://bugs.jquery.com/ticket/4833
+	return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
 };
 
 /**
@@ -1110,7 +1131,11 @@ setDocument = Sizzle.setDocument = function( node ) {
 		doc = node ? node.ownerDocument || node : preferredDoc;
 
 	// Return early if doc is invalid or already selected
-	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+	// Support: IE 11+, Edge 17 - 18+
+	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+	// two documents; shallow comparisons work.
+	// eslint-disable-next-line eqeqeq
+	if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {
 		return document;
 	}
 
@@ -1119,10 +1144,14 @@ setDocument = Sizzle.setDocument = function( node ) {
 	docElem = document.documentElement;
 	documentIsHTML = !isXML( document );
 
-	// Support: IE 9-11, Edge
+	// Support: IE 9 - 11+, Edge 12 - 18+
 	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
-	if ( preferredDoc !== document &&
-		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+	// Support: IE 11+, Edge 17 - 18+
+	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+	// two documents; shallow comparisons work.
+	// eslint-disable-next-line eqeqeq
+	if ( preferredDoc != document &&
+		( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {
 
 		// Support: IE 11, Edge
 		if ( subWindow.addEventListener ) {
@@ -1134,25 +1163,36 @@ setDocument = Sizzle.setDocument = function( node ) {
 		}
 	}
 
+	// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,
+	// Safari 4 - 5 only, Opera <=11.6 - 12.x only
+	// IE/Edge & older browsers don't support the :scope pseudo-class.
+	// Support: Safari 6.0 only
+	// Safari 6.0 supports :scope but it's an alias of :root there.
+	support.scope = assert( function( el ) {
+		docElem.appendChild( el ).appendChild( document.createElement( "div" ) );
+		return typeof el.querySelectorAll !== "undefined" &&
+			!el.querySelectorAll( ":scope fieldset div" ).length;
+	} );
+
 	/* Attributes
 	---------------------------------------------------------------------- */
 
 	// Support: IE<8
 	// Verify that getAttribute really returns attributes and not properties
 	// (excepting IE8 booleans)
-	support.attributes = assert(function( el ) {
+	support.attributes = assert( function( el ) {
 		el.className = "i";
-		return !el.getAttribute("className");
-	});
+		return !el.getAttribute( "className" );
+	} );
 
 	/* getElement(s)By*
 	---------------------------------------------------------------------- */
 
 	// Check if getElementsByTagName("*") returns only elements
-	support.getElementsByTagName = assert(function( el ) {
-		el.appendChild( document.createComment("") );
-		return !el.getElementsByTagName("*").length;
-	});
+	support.getElementsByTagName = assert( function( el ) {
+		el.appendChild( document.createComment( "" ) );
+		return !el.getElementsByTagName( "*" ).length;
+	} );
 
 	// Support: IE<9
 	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
@@ -1161,38 +1201,38 @@ setDocument = Sizzle.setDocument = function( node ) {
 	// Check if getElementById returns elements by name
 	// The broken getElementById methods don't pick up programmatically-set names,
 	// so use a roundabout getElementsByName test
-	support.getById = assert(function( el ) {
+	support.getById = assert( function( el ) {
 		docElem.appendChild( el ).id = expando;
 		return !document.getElementsByName || !document.getElementsByName( expando ).length;
-	});
+	} );
 
 	// ID filter and find
 	if ( support.getById ) {
-		Expr.filter["ID"] = function( id ) {
+		Expr.filter[ "ID" ] = function( id ) {
 			var attrId = id.replace( runescape, funescape );
 			return function( elem ) {
-				return elem.getAttribute("id") === attrId;
+				return elem.getAttribute( "id" ) === attrId;
 			};
 		};
-		Expr.find["ID"] = function( id, context ) {
+		Expr.find[ "ID" ] = function( id, context ) {
 			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
 				var elem = context.getElementById( id );
 				return elem ? [ elem ] : [];
 			}
 		};
 	} else {
-		Expr.filter["ID"] =  function( id ) {
+		Expr.filter[ "ID" ] =  function( id ) {
 			var attrId = id.replace( runescape, funescape );
 			return function( elem ) {
 				var node = typeof elem.getAttributeNode !== "undefined" &&
-					elem.getAttributeNode("id");
+					elem.getAttributeNode( "id" );
 				return node && node.value === attrId;
 			};
 		};
 
 		// Support: IE 6 - 7 only
 		// getElementById is not reliable as a find shortcut
-		Expr.find["ID"] = function( id, context ) {
+		Expr.find[ "ID" ] = function( id, context ) {
 			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
 				var node, i, elems,
 					elem = context.getElementById( id );
@@ -1200,7 +1240,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 				if ( elem ) {
 
 					// Verify the id attribute
-					node = elem.getAttributeNode("id");
+					node = elem.getAttributeNode( "id" );
 					if ( node && node.value === id ) {
 						return [ elem ];
 					}
@@ -1208,8 +1248,8 @@ setDocument = Sizzle.setDocument = function( node ) {
 					// Fall back on getElementsByName
 					elems = context.getElementsByName( id );
 					i = 0;
-					while ( (elem = elems[i++]) ) {
-						node = elem.getAttributeNode("id");
+					while ( ( elem = elems[ i++ ] ) ) {
+						node = elem.getAttributeNode( "id" );
 						if ( node && node.value === id ) {
 							return [ elem ];
 						}
@@ -1222,7 +1262,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 	}
 
 	// Tag
-	Expr.find["TAG"] = support.getElementsByTagName ?
+	Expr.find[ "TAG" ] = support.getElementsByTagName ?
 		function( tag, context ) {
 			if ( typeof context.getElementsByTagName !== "undefined" ) {
 				return context.getElementsByTagName( tag );
@@ -1237,12 +1277,13 @@ setDocument = Sizzle.setDocument = function( node ) {
 			var elem,
 				tmp = [],
 				i = 0,
+
 				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
 				results = context.getElementsByTagName( tag );
 
 			// Filter out possible comments
 			if ( tag === "*" ) {
-				while ( (elem = results[i++]) ) {
+				while ( ( elem = results[ i++ ] ) ) {
 					if ( elem.nodeType === 1 ) {
 						tmp.push( elem );
 					}
@@ -1254,7 +1295,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 		};
 
 	// Class
-	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+	Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) {
 		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
 			return context.getElementsByClassName( className );
 		}
@@ -1275,10 +1316,14 @@ setDocument = Sizzle.setDocument = function( node ) {
 	// See https://bugs.jquery.com/ticket/13378
 	rbuggyQSA = [];
 
-	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+	if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {
+
 		// Build QSA regex
 		// Regex strategy adopted from Diego Perini
-		assert(function( el ) {
+		assert( function( el ) {
+
+			var input;
+
 			// Select is set to empty string on purpose
 			// This is to test IE's treatment of not explicitly
 			// setting a boolean content attribute,
@@ -1292,78 +1337,98 @@ setDocument = Sizzle.setDocument = function( node ) {
 			// Nothing should be selected when empty strings follow ^= or $= or *=
 			// The test attribute must be unknown in Opera but "safe" for WinRT
 			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
-			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+			if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) {
 				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
 			}
 
 			// Support: IE8
 			// Boolean attributes and "value" are not treated correctly
-			if ( !el.querySelectorAll("[selected]").length ) {
+			if ( !el.querySelectorAll( "[selected]" ).length ) {
 				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
 			}
 
 			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
 			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
-				rbuggyQSA.push("~=");
+				rbuggyQSA.push( "~=" );
+			}
+
+			// Support: IE 11+, Edge 15 - 18+
+			// IE 11/Edge don't find elements on a `[name='']` query in some cases.
+			// Adding a temporary attribute to the document before the selection works
+			// around the issue.
+			// Interestingly, IE 10 & older don't seem to have the issue.
+			input = document.createElement( "input" );
+			input.setAttribute( "name", "" );
+			el.appendChild( input );
+			if ( !el.querySelectorAll( "[name='']" ).length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
+					whitespace + "*(?:''|\"\")" );
 			}
 
 			// Webkit/Opera - :checked should return selected option elements
 			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
 			// IE8 throws error here and will not see later tests
-			if ( !el.querySelectorAll(":checked").length ) {
-				rbuggyQSA.push(":checked");
+			if ( !el.querySelectorAll( ":checked" ).length ) {
+				rbuggyQSA.push( ":checked" );
 			}
 
 			// Support: Safari 8+, iOS 8+
 			// https://bugs.webkit.org/show_bug.cgi?id=136851
 			// In-page `selector#id sibling-combinator selector` fails
 			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
-				rbuggyQSA.push(".#.+[+~]");
+				rbuggyQSA.push( ".#.+[+~]" );
 			}
-		});
 
-		assert(function( el ) {
+			// Support: Firefox <=3.6 - 5 only
+			// Old Firefox doesn't throw on a badly-escaped identifier.
+			el.querySelectorAll( "\\\f" );
+			rbuggyQSA.push( "[\\r\\n\\f]" );
+		} );
+
+		assert( function( el ) {
 			el.innerHTML = "<a href='' disabled='disabled'></a>" +
 				"<select disabled='disabled'><option/></select>";
 
 			// Support: Windows 8 Native Apps
 			// The type and name attributes are restricted during .innerHTML assignment
-			var input = document.createElement("input");
+			var input = document.createElement( "input" );
 			input.setAttribute( "type", "hidden" );
 			el.appendChild( input ).setAttribute( "name", "D" );
 
 			// Support: IE8
 			// Enforce case-sensitivity of name attribute
-			if ( el.querySelectorAll("[name=d]").length ) {
+			if ( el.querySelectorAll( "[name=d]" ).length ) {
 				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
 			}
 
 			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
 			// IE8 throws error here and will not see later tests
-			if ( el.querySelectorAll(":enabled").length !== 2 ) {
+			if ( el.querySelectorAll( ":enabled" ).length !== 2 ) {
 				rbuggyQSA.push( ":enabled", ":disabled" );
 			}
 
 			// Support: IE9-11+
 			// IE's :disabled selector does not pick up the children of disabled fieldsets
 			docElem.appendChild( el ).disabled = true;
-			if ( el.querySelectorAll(":disabled").length !== 2 ) {
+			if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
 				rbuggyQSA.push( ":enabled", ":disabled" );
 			}
 
+			// Support: Opera 10 - 11 only
 			// Opera 10-11 does not throw on post-comma invalid pseudos
-			el.querySelectorAll("*,:x");
-			rbuggyQSA.push(",.*:");
-		});
+			el.querySelectorAll( "*,:x" );
+			rbuggyQSA.push( ",.*:" );
+		} );
 	}
 
-	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+	if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||
 		docElem.webkitMatchesSelector ||
 		docElem.mozMatchesSelector ||
 		docElem.oMatchesSelector ||
-		docElem.msMatchesSelector) )) ) {
+		docElem.msMatchesSelector ) ) ) ) {
+
+		assert( function( el ) {
 
-		assert(function( el ) {
 			// Check to see if it's possible to do matchesSelector
 			// on a disconnected node (IE 9)
 			support.disconnectedMatch = matches.call( el, "*" );
@@ -1372,11 +1437,11 @@ setDocument = Sizzle.setDocument = function( node ) {
 			// Gecko does not error, returns false instead
 			matches.call( el, "[s!='']:x" );
 			rbuggyMatches.push( "!=", pseudos );
-		});
+		} );
 	}
 
-	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
-	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) );
 
 	/* Contains
 	---------------------------------------------------------------------- */
@@ -1393,11 +1458,11 @@ setDocument = Sizzle.setDocument = function( node ) {
 				adown.contains ?
 					adown.contains( bup ) :
 					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
-			));
+			) );
 		} :
 		function( a, b ) {
 			if ( b ) {
-				while ( (b = b.parentNode) ) {
+				while ( ( b = b.parentNode ) ) {
 					if ( b === a ) {
 						return true;
 					}
@@ -1426,7 +1491,11 @@ setDocument = Sizzle.setDocument = function( node ) {
 		}
 
 		// Calculate position if both inputs belong to the same document
-		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+		// Support: IE 11+, Edge 17 - 18+
+		// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+		// two documents; shallow comparisons work.
+		// eslint-disable-next-line eqeqeq
+		compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?
 			a.compareDocumentPosition( b ) :
 
 			// Otherwise we know they are disconnected
@@ -1434,13 +1503,24 @@ setDocument = Sizzle.setDocument = function( node ) {
 
 		// Disconnected nodes
 		if ( compare & 1 ||
-			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+			( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {
 
 			// Choose the first element that is related to our preferred document
-			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+			// Support: IE 11+, Edge 17 - 18+
+			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+			// two documents; shallow comparisons work.
+			// eslint-disable-next-line eqeqeq
+			if ( a == document || a.ownerDocument == preferredDoc &&
+				contains( preferredDoc, a ) ) {
 				return -1;
 			}
-			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+
+			// Support: IE 11+, Edge 17 - 18+
+			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+			// two documents; shallow comparisons work.
+			// eslint-disable-next-line eqeqeq
+			if ( b == document || b.ownerDocument == preferredDoc &&
+				contains( preferredDoc, b ) ) {
 				return 1;
 			}
 
@@ -1453,6 +1533,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 		return compare & 4 ? -1 : 1;
 	} :
 	function( a, b ) {
+
 		// Exit early if the nodes are identical
 		if ( a === b ) {
 			hasDuplicate = true;
@@ -1468,8 +1549,14 @@ setDocument = Sizzle.setDocument = function( node ) {
 
 		// Parentless nodes are either documents or disconnected
 		if ( !aup || !bup ) {
-			return a === document ? -1 :
-				b === document ? 1 :
+
+			// Support: IE 11+, Edge 17 - 18+
+			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+			// two documents; shallow comparisons work.
+			/* eslint-disable eqeqeq */
+			return a == document ? -1 :
+				b == document ? 1 :
+				/* eslint-enable eqeqeq */
 				aup ? -1 :
 				bup ? 1 :
 				sortInput ?
@@ -1483,26 +1570,32 @@ setDocument = Sizzle.setDocument = function( node ) {
 
 		// Otherwise we need full lists of their ancestors for comparison
 		cur = a;
-		while ( (cur = cur.parentNode) ) {
+		while ( ( cur = cur.parentNode ) ) {
 			ap.unshift( cur );
 		}
 		cur = b;
-		while ( (cur = cur.parentNode) ) {
+		while ( ( cur = cur.parentNode ) ) {
 			bp.unshift( cur );
 		}
 
 		// Walk down the tree looking for a discrepancy
-		while ( ap[i] === bp[i] ) {
+		while ( ap[ i ] === bp[ i ] ) {
 			i++;
 		}
 
 		return i ?
+
 			// Do a sibling check if the nodes have a common ancestor
-			siblingCheck( ap[i], bp[i] ) :
+			siblingCheck( ap[ i ], bp[ i ] ) :
 
 			// Otherwise nodes in our document sort first
-			ap[i] === preferredDoc ? -1 :
-			bp[i] === preferredDoc ? 1 :
+			// Support: IE 11+, Edge 17 - 18+
+			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+			// two documents; shallow comparisons work.
+			/* eslint-disable eqeqeq */
+			ap[ i ] == preferredDoc ? -1 :
+			bp[ i ] == preferredDoc ? 1 :
+			/* eslint-enable eqeqeq */
 			0;
 	};
 
@@ -1514,16 +1607,10 @@ Sizzle.matches = function( expr, elements ) {
 };
 
 Sizzle.matchesSelector = function( elem, expr ) {
-	// Set document vars if needed
-	if ( ( elem.ownerDocument || elem ) !== document ) {
-		setDocument( elem );
-	}
-
-	// Make sure that attribute selectors are quoted
-	expr = expr.replace( rattributeQuotes, "='$1']" );
+	setDocument( elem );
 
 	if ( support.matchesSelector && documentIsHTML &&
-		!compilerCache[ expr + " " ] &&
+		!nonnativeSelectorCache[ expr + " " ] &&
 		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
 		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
 
@@ -1532,32 +1619,46 @@ Sizzle.matchesSelector = function( elem, expr ) {
 
 			// IE 9's matchesSelector returns false on disconnected nodes
 			if ( ret || support.disconnectedMatch ||
-					// As well, disconnected nodes are said to be in a document
-					// fragment in IE 9
-					elem.document && elem.document.nodeType !== 11 ) {
+
+				// As well, disconnected nodes are said to be in a document
+				// fragment in IE 9
+				elem.document && elem.document.nodeType !== 11 ) {
 				return ret;
 			}
-		} catch (e) {}
+		} catch ( e ) {
+			nonnativeSelectorCache( expr, true );
+		}
 	}
 
 	return Sizzle( expr, document, null, [ elem ] ).length > 0;
 };
 
 Sizzle.contains = function( context, elem ) {
+
 	// Set document vars if needed
-	if ( ( context.ownerDocument || context ) !== document ) {
+	// Support: IE 11+, Edge 17 - 18+
+	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+	// two documents; shallow comparisons work.
+	// eslint-disable-next-line eqeqeq
+	if ( ( context.ownerDocument || context ) != document ) {
 		setDocument( context );
 	}
 	return contains( context, elem );
 };
 
 Sizzle.attr = function( elem, name ) {
+
 	// Set document vars if needed
-	if ( ( elem.ownerDocument || elem ) !== document ) {
+	// Support: IE 11+, Edge 17 - 18+
+	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+	// two documents; shallow comparisons work.
+	// eslint-disable-next-line eqeqeq
+	if ( ( elem.ownerDocument || elem ) != document ) {
 		setDocument( elem );
 	}
 
 	var fn = Expr.attrHandle[ name.toLowerCase() ],
+
 		// Don't get fooled by Object.prototype properties (jQuery #13807)
 		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
 			fn( elem, name, !documentIsHTML ) :
@@ -1567,13 +1668,13 @@ Sizzle.attr = function( elem, name ) {
 		val :
 		support.attributes || !documentIsHTML ?
 			elem.getAttribute( name ) :
-			(val = elem.getAttributeNode(name)) && val.specified ?
+			( val = elem.getAttributeNode( name ) ) && val.specified ?
 				val.value :
 				null;
 };
 
 Sizzle.escape = function( sel ) {
-	return (sel + "").replace( rcssescape, fcssescape );
+	return ( sel + "" ).replace( rcssescape, fcssescape );
 };
 
 Sizzle.error = function( msg ) {
@@ -1596,7 +1697,7 @@ Sizzle.uniqueSort = function( results ) {
 	results.sort( sortOrder );
 
 	if ( hasDuplicate ) {
-		while ( (elem = results[i++]) ) {
+		while ( ( elem = results[ i++ ] ) ) {
 			if ( elem === results[ i ] ) {
 				j = duplicates.push( i );
 			}
@@ -1624,17 +1725,21 @@ getText = Sizzle.getText = function( elem ) {
 		nodeType = elem.nodeType;
 
 	if ( !nodeType ) {
+
 		// If no nodeType, this is expected to be an array
-		while ( (node = elem[i++]) ) {
+		while ( ( node = elem[ i++ ] ) ) {
+
 			// Do not traverse comment nodes
 			ret += getText( node );
 		}
 	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+
 		// Use textContent for elements
 		// innerText usage removed for consistency of new lines (jQuery #11153)
 		if ( typeof elem.textContent === "string" ) {
 			return elem.textContent;
 		} else {
+
 			// Traverse its children
 			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
 				ret += getText( elem );
@@ -1643,6 +1748,7 @@ getText = Sizzle.getText = function( elem ) {
 	} else if ( nodeType === 3 || nodeType === 4 ) {
 		return elem.nodeValue;
 	}
+
 	// Do not include comment or processing instruction nodes
 
 	return ret;
@@ -1670,19 +1776,21 @@ Expr = Sizzle.selectors = {
 
 	preFilter: {
 		"ATTR": function( match ) {
-			match[1] = match[1].replace( runescape, funescape );
+			match[ 1 ] = match[ 1 ].replace( runescape, funescape );
 
 			// Move the given value to match[3] whether quoted or unquoted
-			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+			match[ 3 ] = ( match[ 3 ] || match[ 4 ] ||
+				match[ 5 ] || "" ).replace( runescape, funescape );
 
-			if ( match[2] === "~=" ) {
-				match[3] = " " + match[3] + " ";
+			if ( match[ 2 ] === "~=" ) {
+				match[ 3 ] = " " + match[ 3 ] + " ";
 			}
 
 			return match.slice( 0, 4 );
 		},
 
 		"CHILD": function( match ) {
+
 			/* matches from matchExpr["CHILD"]
 				1 type (only|nth|...)
 				2 what (child|of-type)
@@ -1693,22 +1801,25 @@ Expr = Sizzle.selectors = {
 				7 sign of y-component
 				8 y of y-component
 			*/
-			match[1] = match[1].toLowerCase();
+			match[ 1 ] = match[ 1 ].toLowerCase();
+
+			if ( match[ 1 ].slice( 0, 3 ) === "nth" ) {
 
-			if ( match[1].slice( 0, 3 ) === "nth" ) {
 				// nth-* requires argument
-				if ( !match[3] ) {
-					Sizzle.error( match[0] );
+				if ( !match[ 3 ] ) {
+					Sizzle.error( match[ 0 ] );
 				}
 
 				// numeric x and y parameters for Expr.filter.CHILD
 				// remember that false/true cast respectively to 0/1
-				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
-				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+				match[ 4 ] = +( match[ 4 ] ?
+					match[ 5 ] + ( match[ 6 ] || 1 ) :
+					2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) );
+				match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" );
 
-			// other types prohibit arguments
-			} else if ( match[3] ) {
-				Sizzle.error( match[0] );
+				// other types prohibit arguments
+			} else if ( match[ 3 ] ) {
+				Sizzle.error( match[ 0 ] );
 			}
 
 			return match;
@@ -1716,26 +1827,28 @@ Expr = Sizzle.selectors = {
 
 		"PSEUDO": function( match ) {
 			var excess,
-				unquoted = !match[6] && match[2];
+				unquoted = !match[ 6 ] && match[ 2 ];
 
-			if ( matchExpr["CHILD"].test( match[0] ) ) {
+			if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) {
 				return null;
 			}
 
 			// Accept quoted arguments as-is
-			if ( match[3] ) {
-				match[2] = match[4] || match[5] || "";
+			if ( match[ 3 ] ) {
+				match[ 2 ] = match[ 4 ] || match[ 5 ] || "";
 
 			// Strip excess characters from unquoted arguments
 			} else if ( unquoted && rpseudo.test( unquoted ) &&
+
 				// Get excess from tokenize (recursively)
-				(excess = tokenize( unquoted, true )) &&
+				( excess = tokenize( unquoted, true ) ) &&
+
 				// advance to the next closing parenthesis
-				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+				( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) {
 
 				// excess is a negative index
-				match[0] = match[0].slice( 0, excess );
-				match[2] = unquoted.slice( 0, excess );
+				match[ 0 ] = match[ 0 ].slice( 0, excess );
+				match[ 2 ] = unquoted.slice( 0, excess );
 			}
 
 			// Return only captures needed by the pseudo filter method (type and argument)
@@ -1748,7 +1861,9 @@ Expr = Sizzle.selectors = {
 		"TAG": function( nodeNameSelector ) {
 			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
 			return nodeNameSelector === "*" ?
-				function() { return true; } :
+				function() {
+					return true;
+				} :
 				function( elem ) {
 					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
 				};
@@ -1758,10 +1873,16 @@ Expr = Sizzle.selectors = {
 			var pattern = classCache[ className + " " ];
 
 			return pattern ||
-				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
-				classCache( className, function( elem ) {
-					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
-				});
+				( pattern = new RegExp( "(^|" + whitespace +
+					")" + className + "(" + whitespace + "|$)" ) ) && classCache(
+						className, function( elem ) {
+							return pattern.test(
+								typeof elem.className === "string" && elem.className ||
+								typeof elem.getAttribute !== "undefined" &&
+									elem.getAttribute( "class" ) ||
+								""
+							);
+				} );
 		},
 
 		"ATTR": function( name, operator, check ) {
@@ -1777,6 +1898,8 @@ Expr = Sizzle.selectors = {
 
 				result += "";
 
+				/* eslint-disable max-len */
+
 				return operator === "=" ? result === check :
 					operator === "!=" ? result !== check :
 					operator === "^=" ? check && result.indexOf( check ) === 0 :
@@ -1785,10 +1908,12 @@ Expr = Sizzle.selectors = {
 					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
 					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
 					false;
+				/* eslint-enable max-len */
+
 			};
 		},
 
-		"CHILD": function( type, what, argument, first, last ) {
+		"CHILD": function( type, what, _argument, first, last ) {
 			var simple = type.slice( 0, 3 ) !== "nth",
 				forward = type.slice( -4 ) !== "last",
 				ofType = what === "of-type";
@@ -1800,7 +1925,7 @@ Expr = Sizzle.selectors = {
 					return !!elem.parentNode;
 				} :
 
-				function( elem, context, xml ) {
+				function( elem, _context, xml ) {
 					var cache, uniqueCache, outerCache, node, nodeIndex, start,
 						dir = simple !== forward ? "nextSibling" : "previousSibling",
 						parent = elem.parentNode,
@@ -1814,7 +1939,7 @@ Expr = Sizzle.selectors = {
 						if ( simple ) {
 							while ( dir ) {
 								node = elem;
-								while ( (node = node[ dir ]) ) {
+								while ( ( node = node[ dir ] ) ) {
 									if ( ofType ?
 										node.nodeName.toLowerCase() === name :
 										node.nodeType === 1 ) {
@@ -1822,6 +1947,7 @@ Expr = Sizzle.selectors = {
 										return false;
 									}
 								}
+
 								// Reverse direction for :only-* (if we haven't yet done so)
 								start = dir = type === "only" && !start && "nextSibling";
 							}
@@ -1837,22 +1963,22 @@ Expr = Sizzle.selectors = {
 
 							// ...in a gzip-friendly way
 							node = parent;
-							outerCache = node[ expando ] || (node[ expando ] = {});
+							outerCache = node[ expando ] || ( node[ expando ] = {} );
 
 							// Support: IE <9 only
 							// Defend against cloned attroperties (jQuery gh-1709)
 							uniqueCache = outerCache[ node.uniqueID ] ||
-								(outerCache[ node.uniqueID ] = {});
+								( outerCache[ node.uniqueID ] = {} );
 
 							cache = uniqueCache[ type ] || [];
 							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
 							diff = nodeIndex && cache[ 2 ];
 							node = nodeIndex && parent.childNodes[ nodeIndex ];
 
-							while ( (node = ++nodeIndex && node && node[ dir ] ||
+							while ( ( node = ++nodeIndex && node && node[ dir ] ||
 
 								// Fallback to seeking `elem` from the start
-								(diff = nodeIndex = 0) || start.pop()) ) {
+								( diff = nodeIndex = 0 ) || start.pop() ) ) {
 
 								// When found, cache indexes on `parent` and break
 								if ( node.nodeType === 1 && ++diff && node === elem ) {
@@ -1862,16 +1988,18 @@ Expr = Sizzle.selectors = {
 							}
 
 						} else {
+
 							// Use previously-cached element index if available
 							if ( useCache ) {
+
 								// ...in a gzip-friendly way
 								node = elem;
-								outerCache = node[ expando ] || (node[ expando ] = {});
+								outerCache = node[ expando ] || ( node[ expando ] = {} );
 
 								// Support: IE <9 only
 								// Defend against cloned attroperties (jQuery gh-1709)
 								uniqueCache = outerCache[ node.uniqueID ] ||
-									(outerCache[ node.uniqueID ] = {});
+									( outerCache[ node.uniqueID ] = {} );
 
 								cache = uniqueCache[ type ] || [];
 								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
@@ -1881,9 +2009,10 @@ Expr = Sizzle.selectors = {
 							// xml :nth-child(...)
 							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
 							if ( diff === false ) {
+
 								// Use the same loop as above to seek `elem` from the start
-								while ( (node = ++nodeIndex && node && node[ dir ] ||
-									(diff = nodeIndex = 0) || start.pop()) ) {
+								while ( ( node = ++nodeIndex && node && node[ dir ] ||
+									( diff = nodeIndex = 0 ) || start.pop() ) ) {
 
 									if ( ( ofType ?
 										node.nodeName.toLowerCase() === name :
@@ -1892,12 +2021,13 @@ Expr = Sizzle.selectors = {
 
 										// Cache the index of each encountered element
 										if ( useCache ) {
-											outerCache = node[ expando ] || (node[ expando ] = {});
+											outerCache = node[ expando ] ||
+												( node[ expando ] = {} );
 
 											// Support: IE <9 only
 											// Defend against cloned attroperties (jQuery gh-1709)
 											uniqueCache = outerCache[ node.uniqueID ] ||
-												(outerCache[ node.uniqueID ] = {});
+												( outerCache[ node.uniqueID ] = {} );
 
 											uniqueCache[ type ] = [ dirruns, diff ];
 										}
@@ -1918,6 +2048,7 @@ Expr = Sizzle.selectors = {
 		},
 
 		"PSEUDO": function( pseudo, argument ) {
+
 			// pseudo-class names are case-insensitive
 			// http://www.w3.org/TR/selectors/#pseudo-classes
 			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
@@ -1937,15 +2068,15 @@ Expr = Sizzle.selectors = {
 			if ( fn.length > 1 ) {
 				args = [ pseudo, pseudo, "", argument ];
 				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
-					markFunction(function( seed, matches ) {
+					markFunction( function( seed, matches ) {
 						var idx,
 							matched = fn( seed, argument ),
 							i = matched.length;
 						while ( i-- ) {
-							idx = indexOf( seed, matched[i] );
-							seed[ idx ] = !( matches[ idx ] = matched[i] );
+							idx = indexOf( seed, matched[ i ] );
+							seed[ idx ] = !( matches[ idx ] = matched[ i ] );
 						}
-					}) :
+					} ) :
 					function( elem ) {
 						return fn( elem, 0, args );
 					};
@@ -1956,8 +2087,10 @@ Expr = Sizzle.selectors = {
 	},
 
 	pseudos: {
+
 		// Potentially complex pseudos
-		"not": markFunction(function( selector ) {
+		"not": markFunction( function( selector ) {
+
 			// Trim the selector passed to compile
 			// to avoid treating leading and trailing
 			// spaces as combinators
@@ -1966,39 +2099,40 @@ Expr = Sizzle.selectors = {
 				matcher = compile( selector.replace( rtrim, "$1" ) );
 
 			return matcher[ expando ] ?
-				markFunction(function( seed, matches, context, xml ) {
+				markFunction( function( seed, matches, _context, xml ) {
 					var elem,
 						unmatched = matcher( seed, null, xml, [] ),
 						i = seed.length;
 
 					// Match elements unmatched by `matcher`
 					while ( i-- ) {
-						if ( (elem = unmatched[i]) ) {
-							seed[i] = !(matches[i] = elem);
+						if ( ( elem = unmatched[ i ] ) ) {
+							seed[ i ] = !( matches[ i ] = elem );
 						}
 					}
-				}) :
-				function( elem, context, xml ) {
-					input[0] = elem;
+				} ) :
+				function( elem, _context, xml ) {
+					input[ 0 ] = elem;
 					matcher( input, null, xml, results );
+
 					// Don't keep the element (issue #299)
-					input[0] = null;
+					input[ 0 ] = null;
 					return !results.pop();
 				};
-		}),
+		} ),
 
-		"has": markFunction(function( selector ) {
+		"has": markFunction( function( selector ) {
 			return function( elem ) {
 				return Sizzle( selector, elem ).length > 0;
 			};
-		}),
+		} ),
 
-		"contains": markFunction(function( text ) {
+		"contains": markFunction( function( text ) {
 			text = text.replace( runescape, funescape );
 			return function( elem ) {
-				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+				return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
 			};
-		}),
+		} ),
 
 		// "Whether an element is represented by a :lang() selector
 		// is based solely on the element's language value
@@ -2008,25 +2142,26 @@ Expr = Sizzle.selectors = {
 		// The identifier C does not have to be a valid language name."
 		// http://www.w3.org/TR/selectors/#lang-pseudo
 		"lang": markFunction( function( lang ) {
+
 			// lang value must be a valid identifier
-			if ( !ridentifier.test(lang || "") ) {
+			if ( !ridentifier.test( lang || "" ) ) {
 				Sizzle.error( "unsupported lang: " + lang );
 			}
 			lang = lang.replace( runescape, funescape ).toLowerCase();
 			return function( elem ) {
 				var elemLang;
 				do {
-					if ( (elemLang = documentIsHTML ?
+					if ( ( elemLang = documentIsHTML ?
 						elem.lang :
-						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+						elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) {
 
 						elemLang = elemLang.toLowerCase();
 						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
 					}
-				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );
 				return false;
 			};
-		}),
+		} ),
 
 		// Miscellaneous
 		"target": function( elem ) {
@@ -2039,7 +2174,9 @@ Expr = Sizzle.selectors = {
 		},
 
 		"focus": function( elem ) {
-			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+			return elem === document.activeElement &&
+				( !document.hasFocus || document.hasFocus() ) &&
+				!!( elem.type || elem.href || ~elem.tabIndex );
 		},
 
 		// Boolean properties
@@ -2047,16 +2184,20 @@ Expr = Sizzle.selectors = {
 		"disabled": createDisabledPseudo( true ),
 
 		"checked": function( elem ) {
+
 			// In CSS3, :checked should return both checked and selected elements
 			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
 			var nodeName = elem.nodeName.toLowerCase();
-			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+			return ( nodeName === "input" && !!elem.checked ) ||
+				( nodeName === "option" && !!elem.selected );
 		},
 
 		"selected": function( elem ) {
+
 			// Accessing this property makes selected-by-default
 			// options in Safari work properly
 			if ( elem.parentNode ) {
+				// eslint-disable-next-line no-unused-expressions
 				elem.parentNode.selectedIndex;
 			}
 
@@ -2065,6 +2206,7 @@ Expr = Sizzle.selectors = {
 
 		// Contents
 		"empty": function( elem ) {
+
 			// http://www.w3.org/TR/selectors/#empty-pseudo
 			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
 			//   but not by others (comment: 8; processing instruction: 7; etc.)
@@ -2078,7 +2220,7 @@ Expr = Sizzle.selectors = {
 		},
 
 		"parent": function( elem ) {
-			return !Expr.pseudos["empty"]( elem );
+			return !Expr.pseudos[ "empty" ]( elem );
 		},
 
 		// Element/input types
@@ -2102,57 +2244,62 @@ Expr = Sizzle.selectors = {
 
 				// Support: IE<8
 				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
-				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+				( ( attr = elem.getAttribute( "type" ) ) == null ||
+					attr.toLowerCase() === "text" );
 		},
 
 		// Position-in-collection
-		"first": createPositionalPseudo(function() {
+		"first": createPositionalPseudo( function() {
 			return [ 0 ];
-		}),
+		} ),
 
-		"last": createPositionalPseudo(function( matchIndexes, length ) {
+		"last": createPositionalPseudo( function( _matchIndexes, length ) {
 			return [ length - 1 ];
-		}),
+		} ),
 
-		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+		"eq": createPositionalPseudo( function( _matchIndexes, length, argument ) {
 			return [ argument < 0 ? argument + length : argument ];
-		}),
+		} ),
 
-		"even": createPositionalPseudo(function( matchIndexes, length ) {
+		"even": createPositionalPseudo( function( matchIndexes, length ) {
 			var i = 0;
 			for ( ; i < length; i += 2 ) {
 				matchIndexes.push( i );
 			}
 			return matchIndexes;
-		}),
+		} ),
 
-		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+		"odd": createPositionalPseudo( function( matchIndexes, length ) {
 			var i = 1;
 			for ( ; i < length; i += 2 ) {
 				matchIndexes.push( i );
 			}
 			return matchIndexes;
-		}),
+		} ),
 
-		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
-			var i = argument < 0 ? argument + length : argument;
+		"lt": createPositionalPseudo( function( matchIndexes, length, argument ) {
+			var i = argument < 0 ?
+				argument + length :
+				argument > length ?
+					length :
+					argument;
 			for ( ; --i >= 0; ) {
 				matchIndexes.push( i );
 			}
 			return matchIndexes;
-		}),
+		} ),
 
-		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+		"gt": createPositionalPseudo( function( matchIndexes, length, argument ) {
 			var i = argument < 0 ? argument + length : argument;
 			for ( ; ++i < length; ) {
 				matchIndexes.push( i );
 			}
 			return matchIndexes;
-		})
+		} )
 	}
 };
 
-Expr.pseudos["nth"] = Expr.pseudos["eq"];
+Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ];
 
 // Add button/input type pseudos
 for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
@@ -2183,37 +2330,39 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
 	while ( soFar ) {
 
 		// Comma and first run
-		if ( !matched || (match = rcomma.exec( soFar )) ) {
+		if ( !matched || ( match = rcomma.exec( soFar ) ) ) {
 			if ( match ) {
+
 				// Don't consume trailing commas as valid
-				soFar = soFar.slice( match[0].length ) || soFar;
+				soFar = soFar.slice( match[ 0 ].length ) || soFar;
 			}
-			groups.push( (tokens = []) );
+			groups.push( ( tokens = [] ) );
 		}
 
 		matched = false;
 
 		// Combinators
-		if ( (match = rcombinators.exec( soFar )) ) {
+		if ( ( match = rcombinators.exec( soFar ) ) ) {
 			matched = match.shift();
-			tokens.push({
+			tokens.push( {
 				value: matched,
+
 				// Cast descendant combinators to space
-				type: match[0].replace( rtrim, " " )
-			});
+				type: match[ 0 ].replace( rtrim, " " )
+			} );
 			soFar = soFar.slice( matched.length );
 		}
 
 		// Filters
 		for ( type in Expr.filter ) {
-			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
-				(match = preFilters[ type ]( match ))) ) {
+			if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||
+				( match = preFilters[ type ]( match ) ) ) ) {
 				matched = match.shift();
-				tokens.push({
+				tokens.push( {
 					value: matched,
 					type: type,
 					matches: match
-				});
+				} );
 				soFar = soFar.slice( matched.length );
 			}
 		}
@@ -2230,6 +2379,7 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
 		soFar.length :
 		soFar ?
 			Sizzle.error( selector ) :
+
 			// Cache the tokens
 			tokenCache( selector, groups ).slice( 0 );
 };
@@ -2239,7 +2389,7 @@ function toSelector( tokens ) {
 		len = tokens.length,
 		selector = "";
 	for ( ; i < len; i++ ) {
-		selector += tokens[i].value;
+		selector += tokens[ i ].value;
 	}
 	return selector;
 }
@@ -2252,9 +2402,10 @@ function addCombinator( matcher, combinator, base ) {
 		doneName = done++;
 
 	return combinator.first ?
+
 		// Check against closest ancestor/preceding element
 		function( elem, context, xml ) {
-			while ( (elem = elem[ dir ]) ) {
+			while ( ( elem = elem[ dir ] ) ) {
 				if ( elem.nodeType === 1 || checkNonElements ) {
 					return matcher( elem, context, xml );
 				}
@@ -2269,7 +2420,7 @@ function addCombinator( matcher, combinator, base ) {
 
 			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
 			if ( xml ) {
-				while ( (elem = elem[ dir ]) ) {
+				while ( ( elem = elem[ dir ] ) ) {
 					if ( elem.nodeType === 1 || checkNonElements ) {
 						if ( matcher( elem, context, xml ) ) {
 							return true;
@@ -2277,27 +2428,29 @@ function addCombinator( matcher, combinator, base ) {
 					}
 				}
 			} else {
-				while ( (elem = elem[ dir ]) ) {
+				while ( ( elem = elem[ dir ] ) ) {
 					if ( elem.nodeType === 1 || checkNonElements ) {
-						outerCache = elem[ expando ] || (elem[ expando ] = {});
+						outerCache = elem[ expando ] || ( elem[ expando ] = {} );
 
 						// Support: IE <9 only
 						// Defend against cloned attroperties (jQuery gh-1709)
-						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+						uniqueCache = outerCache[ elem.uniqueID ] ||
+							( outerCache[ elem.uniqueID ] = {} );
 
 						if ( skip && skip === elem.nodeName.toLowerCase() ) {
 							elem = elem[ dir ] || elem;
-						} else if ( (oldCache = uniqueCache[ key ]) &&
+						} else if ( ( oldCache = uniqueCache[ key ] ) &&
 							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
 
 							// Assign to newCache so results back-propagate to previous elements
-							return (newCache[ 2 ] = oldCache[ 2 ]);
+							return ( newCache[ 2 ] = oldCache[ 2 ] );
 						} else {
+
 							// Reuse newcache so results back-propagate to previous elements
 							uniqueCache[ key ] = newCache;
 
 							// A match means we're done; a fail means we have to keep checking
-							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+							if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {
 								return true;
 							}
 						}
@@ -2313,20 +2466,20 @@ function elementMatcher( matchers ) {
 		function( elem, context, xml ) {
 			var i = matchers.length;
 			while ( i-- ) {
-				if ( !matchers[i]( elem, context, xml ) ) {
+				if ( !matchers[ i ]( elem, context, xml ) ) {
 					return false;
 				}
 			}
 			return true;
 		} :
-		matchers[0];
+		matchers[ 0 ];
 }
 
 function multipleContexts( selector, contexts, results ) {
 	var i = 0,
 		len = contexts.length;
 	for ( ; i < len; i++ ) {
-		Sizzle( selector, contexts[i], results );
+		Sizzle( selector, contexts[ i ], results );
 	}
 	return results;
 }
@@ -2339,7 +2492,7 @@ function condense( unmatched, map, filter, context, xml ) {
 		mapped = map != null;
 
 	for ( ; i < len; i++ ) {
-		if ( (elem = unmatched[i]) ) {
+		if ( ( elem = unmatched[ i ] ) ) {
 			if ( !filter || filter( elem, context, xml ) ) {
 				newUnmatched.push( elem );
 				if ( mapped ) {
@@ -2359,14 +2512,18 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 	if ( postFinder && !postFinder[ expando ] ) {
 		postFinder = setMatcher( postFinder, postSelector );
 	}
-	return markFunction(function( seed, results, context, xml ) {
+	return markFunction( function( seed, results, context, xml ) {
 		var temp, i, elem,
 			preMap = [],
 			postMap = [],
 			preexisting = results.length,
 
 			// Get initial elements from seed or context
-			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+			elems = seed || multipleContexts(
+				selector || "*",
+				context.nodeType ? [ context ] : context,
+				[]
+			),
 
 			// Prefilter to get matcher input, preserving a map for seed-results synchronization
 			matcherIn = preFilter && ( seed || !selector ) ?
@@ -2374,6 +2531,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 				elems,
 
 			matcherOut = matcher ?
+
 				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
 				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
 
@@ -2397,8 +2555,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 			// Un-match failing elements by moving them back to matcherIn
 			i = temp.length;
 			while ( i-- ) {
-				if ( (elem = temp[i]) ) {
-					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				if ( ( elem = temp[ i ] ) ) {
+					matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );
 				}
 			}
 		}
@@ -2406,25 +2564,27 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 		if ( seed ) {
 			if ( postFinder || preFilter ) {
 				if ( postFinder ) {
+
 					// Get the final matcherOut by condensing this intermediate into postFinder contexts
 					temp = [];
 					i = matcherOut.length;
 					while ( i-- ) {
-						if ( (elem = matcherOut[i]) ) {
+						if ( ( elem = matcherOut[ i ] ) ) {
+
 							// Restore matcherIn since elem is not yet a final match
-							temp.push( (matcherIn[i] = elem) );
+							temp.push( ( matcherIn[ i ] = elem ) );
 						}
 					}
-					postFinder( null, (matcherOut = []), temp, xml );
+					postFinder( null, ( matcherOut = [] ), temp, xml );
 				}
 
 				// Move matched elements from seed to results to keep them synchronized
 				i = matcherOut.length;
 				while ( i-- ) {
-					if ( (elem = matcherOut[i]) &&
-						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+					if ( ( elem = matcherOut[ i ] ) &&
+						( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {
 
-						seed[temp] = !(results[temp] = elem);
+						seed[ temp ] = !( results[ temp ] = elem );
 					}
 				}
 			}
@@ -2442,14 +2602,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 				push.apply( results, matcherOut );
 			}
 		}
-	});
+	} );
 }
 
 function matcherFromTokens( tokens ) {
 	var checkContext, matcher, j,
 		len = tokens.length,
-		leadingRelative = Expr.relative[ tokens[0].type ],
-		implicitRelative = leadingRelative || Expr.relative[" "],
+		leadingRelative = Expr.relative[ tokens[ 0 ].type ],
+		implicitRelative = leadingRelative || Expr.relative[ " " ],
 		i = leadingRelative ? 1 : 0,
 
 		// The foundational matcher ensures that elements are reachable from top-level context(s)
@@ -2461,38 +2621,43 @@ function matcherFromTokens( tokens ) {
 		}, implicitRelative, true ),
 		matchers = [ function( elem, context, xml ) {
 			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
-				(checkContext = context).nodeType ?
+				( checkContext = context ).nodeType ?
 					matchContext( elem, context, xml ) :
 					matchAnyContext( elem, context, xml ) );
+
 			// Avoid hanging onto element (issue #299)
 			checkContext = null;
 			return ret;
 		} ];
 
 	for ( ; i < len; i++ ) {
-		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
-			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {
+			matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];
 		} else {
-			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+			matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );
 
 			// Return special upon seeing a positional matcher
 			if ( matcher[ expando ] ) {
+
 				// Find the next relative operator (if any) for proper handling
 				j = ++i;
 				for ( ; j < len; j++ ) {
-					if ( Expr.relative[ tokens[j].type ] ) {
+					if ( Expr.relative[ tokens[ j ].type ] ) {
 						break;
 					}
 				}
 				return setMatcher(
 					i > 1 && elementMatcher( matchers ),
 					i > 1 && toSelector(
-						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
-						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+
+					// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+					tokens
+						.slice( 0, i - 1 )
+						.concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
 					).replace( rtrim, "$1" ),
 					matcher,
 					i < j && matcherFromTokens( tokens.slice( i, j ) ),
-					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),
 					j < len && toSelector( tokens )
 				);
 			}
@@ -2513,28 +2678,40 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 				unmatched = seed && [],
 				setMatched = [],
 				contextBackup = outermostContext,
+
 				// We must always have either seed elements or outermost context
-				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ),
+
 				// Use integer dirruns iff this is the outermost matcher
-				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),
 				len = elems.length;
 
 			if ( outermost ) {
-				outermostContext = context === document || context || outermost;
+
+				// Support: IE 11+, Edge 17 - 18+
+				// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+				// two documents; shallow comparisons work.
+				// eslint-disable-next-line eqeqeq
+				outermostContext = context == document || context || outermost;
 			}
 
 			// Add elements passing elementMatchers directly to results
 			// Support: IE<9, Safari
 			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
-			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+			for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {
 				if ( byElement && elem ) {
 					j = 0;
-					if ( !context && elem.ownerDocument !== document ) {
+
+					// Support: IE 11+, Edge 17 - 18+
+					// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+					// two documents; shallow comparisons work.
+					// eslint-disable-next-line eqeqeq
+					if ( !context && elem.ownerDocument != document ) {
 						setDocument( elem );
 						xml = !documentIsHTML;
 					}
-					while ( (matcher = elementMatchers[j++]) ) {
-						if ( matcher( elem, context || document, xml) ) {
+					while ( ( matcher = elementMatchers[ j++ ] ) ) {
+						if ( matcher( elem, context || document, xml ) ) {
 							results.push( elem );
 							break;
 						}
@@ -2546,8 +2723,9 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 
 				// Track unmatched elements for set filters
 				if ( bySet ) {
+
 					// They will have gone through all possible matchers
-					if ( (elem = !matcher && elem) ) {
+					if ( ( elem = !matcher && elem ) ) {
 						matchedCount--;
 					}
 
@@ -2571,16 +2749,17 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 			// numerically zero.
 			if ( bySet && i !== matchedCount ) {
 				j = 0;
-				while ( (matcher = setMatchers[j++]) ) {
+				while ( ( matcher = setMatchers[ j++ ] ) ) {
 					matcher( unmatched, setMatched, context, xml );
 				}
 
 				if ( seed ) {
+
 					// Reintegrate element matches to eliminate the need for sorting
 					if ( matchedCount > 0 ) {
 						while ( i-- ) {
-							if ( !(unmatched[i] || setMatched[i]) ) {
-								setMatched[i] = pop.call( results );
+							if ( !( unmatched[ i ] || setMatched[ i ] ) ) {
+								setMatched[ i ] = pop.call( results );
 							}
 						}
 					}
@@ -2621,13 +2800,14 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 		cached = compilerCache[ selector + " " ];
 
 	if ( !cached ) {
+
 		// Generate a function of recursive functions that can be used to check each element
 		if ( !match ) {
 			match = tokenize( selector );
 		}
 		i = match.length;
 		while ( i-- ) {
-			cached = matcherFromTokens( match[i] );
+			cached = matcherFromTokens( match[ i ] );
 			if ( cached[ expando ] ) {
 				setMatchers.push( cached );
 			} else {
@@ -2636,7 +2816,10 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 		}
 
 		// Cache the compiled function
-		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+		cached = compilerCache(
+			selector,
+			matcherFromGroupMatchers( elementMatchers, setMatchers )
+		);
 
 		// Save selector and tokenization
 		cached.selector = selector;
@@ -2656,7 +2839,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 select = Sizzle.select = function( selector, context, results, seed ) {
 	var i, tokens, token, type, find,
 		compiled = typeof selector === "function" && selector,
-		match = !seed && tokenize( (selector = compiled.selector || selector) );
+		match = !seed && tokenize( ( selector = compiled.selector || selector ) );
 
 	results = results || [];
 
@@ -2665,11 +2848,12 @@ select = Sizzle.select = function( selector, context, results, seed ) {
 	if ( match.length === 1 ) {
 
 		// Reduce context if the leading compound selector is an ID
-		tokens = match[0] = match[0].slice( 0 );
-		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
-				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+		tokens = match[ 0 ] = match[ 0 ].slice( 0 );
+		if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" &&
+			context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {
 
-			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			context = ( Expr.find[ "ID" ]( token.matches[ 0 ]
+				.replace( runescape, funescape ), context ) || [] )[ 0 ];
 			if ( !context ) {
 				return results;
 
@@ -2682,20 +2866,22 @@ select = Sizzle.select = function( selector, context, results, seed ) {
 		}
 
 		// Fetch a seed set for right-to-left matching
-		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length;
 		while ( i-- ) {
-			token = tokens[i];
+			token = tokens[ i ];
 
 			// Abort if we hit a combinator
-			if ( Expr.relative[ (type = token.type) ] ) {
+			if ( Expr.relative[ ( type = token.type ) ] ) {
 				break;
 			}
-			if ( (find = Expr.find[ type ]) ) {
+			if ( ( find = Expr.find[ type ] ) ) {
+
 				// Search, expanding context for leading sibling combinators
-				if ( (seed = find(
-					token.matches[0].replace( runescape, funescape ),
-					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
-				)) ) {
+				if ( ( seed = find(
+					token.matches[ 0 ].replace( runescape, funescape ),
+					rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||
+						context
+				) ) ) {
 
 					// If seed is empty or no tokens remain, we can return early
 					tokens.splice( i, 1 );
@@ -2726,7 +2912,7 @@ select = Sizzle.select = function( selector, context, results, seed ) {
 // One-time assignments
 
 // Sort stability
-support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;
 
 // Support: Chrome 14-35+
 // Always assume duplicates if they aren't passed to the comparison function
@@ -2737,58 +2923,59 @@ setDocument();
 
 // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
 // Detached nodes confoundingly follow *each other*
-support.sortDetached = assert(function( el ) {
+support.sortDetached = assert( function( el ) {
+
 	// Should return 1, but returns 4 (following)
-	return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
-});
+	return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
+} );
 
 // Support: IE<8
 // Prevent attribute/property "interpolation"
 // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
-if ( !assert(function( el ) {
+if ( !assert( function( el ) {
 	el.innerHTML = "<a href='#'></a>";
-	return el.firstChild.getAttribute("href") === "#" ;
-}) ) {
+	return el.firstChild.getAttribute( "href" ) === "#";
+} ) ) {
 	addHandle( "type|href|height|width", function( elem, name, isXML ) {
 		if ( !isXML ) {
 			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
 		}
-	});
+	} );
 }
 
 // Support: IE<9
 // Use defaultValue in place of getAttribute("value")
-if ( !support.attributes || !assert(function( el ) {
+if ( !support.attributes || !assert( function( el ) {
 	el.innerHTML = "<input/>";
 	el.firstChild.setAttribute( "value", "" );
 	return el.firstChild.getAttribute( "value" ) === "";
-}) ) {
-	addHandle( "value", function( elem, name, isXML ) {
+} ) ) {
+	addHandle( "value", function( elem, _name, isXML ) {
 		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
 			return elem.defaultValue;
 		}
-	});
+	} );
 }
 
 // Support: IE<9
 // Use getAttributeNode to fetch booleans when getAttribute lies
-if ( !assert(function( el ) {
-	return el.getAttribute("disabled") == null;
-}) ) {
+if ( !assert( function( el ) {
+	return el.getAttribute( "disabled" ) == null;
+} ) ) {
 	addHandle( booleans, function( elem, name, isXML ) {
 		var val;
 		if ( !isXML ) {
 			return elem[ name ] === true ? name.toLowerCase() :
-					(val = elem.getAttributeNode( name )) && val.specified ?
+				( val = elem.getAttributeNode( name ) ) && val.specified ?
 					val.value :
-				null;
+					null;
 		}
-	});
+	} );
 }
 
 return Sizzle;
 
-})( window );
+} )( window );
 
 
 
@@ -2841,18 +3028,16 @@ var rneedsContext = jQuery.expr.match.needsContext;
 
 function nodeName( elem, name ) {
 
-  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+	return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
 
-};
+}
 var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
 
 
 
-var risSimple = /^.[^:#\[\.,]*$/;
-
 // Implement the identical functionality for filter and not
 function winnow( elements, qualifier, not ) {
-	if ( jQuery.isFunction( qualifier ) ) {
+	if ( isFunction( qualifier ) ) {
 		return jQuery.grep( elements, function( elem, i ) {
 			return !!qualifier.call( elem, i, elem ) !== not;
 		} );
@@ -2872,16 +3057,8 @@ function winnow( elements, qualifier, not ) {
 		} );
 	}
 
-	// Simple selector that can be filtered directly, removing non-Elements
-	if ( risSimple.test( qualifier ) ) {
-		return jQuery.filter( qualifier, elements, not );
-	}
-
-	// Complex selector, compare the two sets, removing non-Elements
-	qualifier = jQuery.filter( qualifier, elements );
-	return jQuery.grep( elements, function( elem ) {
-		return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
-	} );
+	// Filtered directly for both simple and complex selectors
+	return jQuery.filter( qualifier, elements, not );
 }
 
 jQuery.filter = function( expr, elems, not ) {
@@ -2952,8 +3129,8 @@ jQuery.fn.extend( {
 var rootjQuery,
 
 	// A simple way to check for HTML strings
-	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
-	// Strict HTML recognition (#11290: must start with <)
+	// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)
+	// Strict HTML recognition (trac-11290: must start with <)
 	// Shortcut simple #id case for speed
 	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
 
@@ -3002,7 +3179,7 @@ var rootjQuery,
 						for ( match in context ) {
 
 							// Properties of context are called as methods if possible
-							if ( jQuery.isFunction( this[ match ] ) ) {
+							if ( isFunction( this[ match ] ) ) {
 								this[ match ]( context[ match ] );
 
 							// ...and otherwise set as attributes
@@ -3045,7 +3222,7 @@ var rootjQuery,
 
 		// HANDLE: $(function)
 		// Shortcut for document ready
-		} else if ( jQuery.isFunction( selector ) ) {
+		} else if ( isFunction( selector ) ) {
 			return root.ready !== undefined ?
 				root.ready( selector ) :
 
@@ -3167,7 +3344,7 @@ jQuery.each( {
 	parents: function( elem ) {
 		return dir( elem, "parentNode" );
 	},
-	parentsUntil: function( elem, i, until ) {
+	parentsUntil: function( elem, _i, until ) {
 		return dir( elem, "parentNode", until );
 	},
 	next: function( elem ) {
@@ -3182,10 +3359,10 @@ jQuery.each( {
 	prevAll: function( elem ) {
 		return dir( elem, "previousSibling" );
 	},
-	nextUntil: function( elem, i, until ) {
+	nextUntil: function( elem, _i, until ) {
 		return dir( elem, "nextSibling", until );
 	},
-	prevUntil: function( elem, i, until ) {
+	prevUntil: function( elem, _i, until ) {
 		return dir( elem, "previousSibling", until );
 	},
 	siblings: function( elem ) {
@@ -3195,18 +3372,24 @@ jQuery.each( {
 		return siblings( elem.firstChild );
 	},
 	contents: function( elem ) {
-        if ( nodeName( elem, "iframe" ) ) {
-            return elem.contentDocument;
-        }
+		if ( elem.contentDocument != null &&
+
+			// Support: IE 11+
+			// <object> elements with no `data` attribute has an object
+			// `contentDocument` with a `null` prototype.
+			getProto( elem.contentDocument ) ) {
+
+			return elem.contentDocument;
+		}
 
-        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
-        // Treat the template element as a regular one in browsers that
-        // don't support it.
-        if ( nodeName( elem, "template" ) ) {
-            elem = elem.content || elem;
-        }
+		// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+		// Treat the template element as a regular one in browsers that
+		// don't support it.
+		if ( nodeName( elem, "template" ) ) {
+			elem = elem.content || elem;
+		}
 
-        return jQuery.merge( [], elem.childNodes );
+		return jQuery.merge( [], elem.childNodes );
 	}
 }, function( name, fn ) {
 	jQuery.fn[ name ] = function( until, selector ) {
@@ -3360,11 +3543,11 @@ jQuery.Callbacks = function( options ) {
 
 					( function add( args ) {
 						jQuery.each( args, function( _, arg ) {
-							if ( jQuery.isFunction( arg ) ) {
+							if ( isFunction( arg ) ) {
 								if ( !options.unique || !self.has( arg ) ) {
 									list.push( arg );
 								}
-							} else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+							} else if ( arg && arg.length && toType( arg ) !== "string" ) {
 
 								// Inspect recursively
 								add( arg );
@@ -3479,11 +3662,11 @@ function adoptValue( value, resolve, reject, noValue ) {
 	try {
 
 		// Check for promise aspect first to privilege synchronous behavior
-		if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
+		if ( value && isFunction( ( method = value.promise ) ) ) {
 			method.call( value ).done( resolve ).fail( reject );
 
 		// Other thenables
-		} else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
+		} else if ( value && isFunction( ( method = value.then ) ) ) {
 			method.call( value, resolve, reject );
 
 		// Other non-thenables
@@ -3538,17 +3721,17 @@ jQuery.extend( {
 					var fns = arguments;
 
 					return jQuery.Deferred( function( newDefer ) {
-						jQuery.each( tuples, function( i, tuple ) {
+						jQuery.each( tuples, function( _i, tuple ) {
 
 							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
-							var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
 
 							// deferred.progress(function() { bind to newDefer or newDefer.notify })
 							// deferred.done(function() { bind to newDefer or newDefer.resolve })
 							// deferred.fail(function() { bind to newDefer or newDefer.reject })
 							deferred[ tuple[ 1 ] ]( function() {
 								var returned = fn && fn.apply( this, arguments );
-								if ( returned && jQuery.isFunction( returned.promise ) ) {
+								if ( returned && isFunction( returned.promise ) ) {
 									returned.promise()
 										.progress( newDefer.notify )
 										.done( newDefer.resolve )
@@ -3602,7 +3785,7 @@ jQuery.extend( {
 										returned.then;
 
 									// Handle a returned thenable
-									if ( jQuery.isFunction( then ) ) {
+									if ( isFunction( then ) ) {
 
 										// Special processors (notify) just wait for resolution
 										if ( special ) {
@@ -3698,7 +3881,7 @@ jQuery.extend( {
 							resolve(
 								0,
 								newDefer,
-								jQuery.isFunction( onProgress ) ?
+								isFunction( onProgress ) ?
 									onProgress :
 									Identity,
 								newDefer.notifyWith
@@ -3710,7 +3893,7 @@ jQuery.extend( {
 							resolve(
 								0,
 								newDefer,
-								jQuery.isFunction( onFulfilled ) ?
+								isFunction( onFulfilled ) ?
 									onFulfilled :
 									Identity
 							)
@@ -3721,7 +3904,7 @@ jQuery.extend( {
 							resolve(
 								0,
 								newDefer,
-								jQuery.isFunction( onRejected ) ?
+								isFunction( onRejected ) ?
 									onRejected :
 									Thrower
 							)
@@ -3761,8 +3944,15 @@ jQuery.extend( {
 					// fulfilled_callbacks.disable
 					tuples[ 3 - i ][ 2 ].disable,
 
+					// rejected_handlers.disable
+					// fulfilled_handlers.disable
+					tuples[ 3 - i ][ 3 ].disable,
+
 					// progress_callbacks.lock
-					tuples[ 0 ][ 2 ].lock
+					tuples[ 0 ][ 2 ].lock,
+
+					// progress_handlers.lock
+					tuples[ 0 ][ 3 ].lock
 				);
 			}
 
@@ -3811,8 +4001,8 @@ jQuery.extend( {
 			resolveContexts = Array( i ),
 			resolveValues = slice.call( arguments ),
 
-			// the master Deferred
-			master = jQuery.Deferred(),
+			// the primary Deferred
+			primary = jQuery.Deferred(),
 
 			// subordinate callback factory
 			updateFunc = function( i ) {
@@ -3820,30 +4010,30 @@ jQuery.extend( {
 					resolveContexts[ i ] = this;
 					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
 					if ( !( --remaining ) ) {
-						master.resolveWith( resolveContexts, resolveValues );
+						primary.resolveWith( resolveContexts, resolveValues );
 					}
 				};
 			};
 
 		// Single- and empty arguments are adopted like Promise.resolve
 		if ( remaining <= 1 ) {
-			adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+			adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,
 				!remaining );
 
 			// Use .then() to unwrap secondary thenables (cf. gh-3000)
-			if ( master.state() === "pending" ||
-				jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+			if ( primary.state() === "pending" ||
+				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
 
-				return master.then();
+				return primary.then();
 			}
 		}
 
 		// Multiple arguments are aggregated like Promise.all array elements
 		while ( i-- ) {
-			adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+			adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );
 		}
 
-		return master.promise();
+		return primary.promise();
 	}
 } );
 
@@ -3897,7 +4087,7 @@ jQuery.extend( {
 	isReady: false,
 
 	// A counter to track how many items to wait for before
-	// the ready event fires. See #6781
+	// the ready event fires. See trac-6781
 	readyWait: 1,
 
 	// Handle when the DOM is ready
@@ -3960,7 +4150,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 		bulk = key == null;
 
 	// Sets many values
-	if ( jQuery.type( key ) === "object" ) {
+	if ( toType( key ) === "object" ) {
 		chainable = true;
 		for ( i in key ) {
 			access( elems, fn, i, key[ i ], true, emptyGet, raw );
@@ -3970,7 +4160,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 	} else if ( value !== undefined ) {
 		chainable = true;
 
-		if ( !jQuery.isFunction( value ) ) {
+		if ( !isFunction( value ) ) {
 			raw = true;
 		}
 
@@ -3984,7 +4174,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 			// ...except when executing function values
 			} else {
 				bulk = fn;
-				fn = function( elem, key, value ) {
+				fn = function( elem, _key, value ) {
 					return bulk.call( jQuery( elem ), value );
 				};
 			}
@@ -3994,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 			for ( ; i < len; i++ ) {
 				fn(
 					elems[ i ], key, raw ?
-					value :
-					value.call( elems[ i ], i, fn( elems[ i ], key ) )
+						value :
+						value.call( elems[ i ], i, fn( elems[ i ], key ) )
 				);
 			}
 		}
@@ -4012,6 +4202,23 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 
 	return len ? fn( elems[ 0 ], key ) : emptyGet;
 };
+
+
+// Matches dashed string for camelizing
+var rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([a-z])/g;
+
+// Used by camelCase as callback to replace()
+function fcamelCase( _all, letter ) {
+	return letter.toUpperCase();
+}
+
+// Convert dashed to camelCase; used by the css and data modules
+// Support: IE <=9 - 11, Edge 12 - 15
+// Microsoft forgot to hump their vendor prefix (trac-9572)
+function camelCase( string ) {
+	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+}
 var acceptData = function( owner ) {
 
 	// Accepts only:
@@ -4044,7 +4251,7 @@ Data.prototype = {
 			value = {};
 
 			// We can accept data for non-element nodes in modern browsers,
-			// but we should not, see #8335.
+			// but we should not, see trac-8335.
 			// Always return an empty object.
 			if ( acceptData( owner ) ) {
 
@@ -4074,14 +4281,14 @@ Data.prototype = {
 		// Handle: [ owner, key, value ] args
 		// Always use camelCase key (gh-2257)
 		if ( typeof data === "string" ) {
-			cache[ jQuery.camelCase( data ) ] = value;
+			cache[ camelCase( data ) ] = value;
 
 		// Handle: [ owner, { properties } ] args
 		} else {
 
 			// Copy the properties one-by-one to the cache object
 			for ( prop in data ) {
-				cache[ jQuery.camelCase( prop ) ] = data[ prop ];
+				cache[ camelCase( prop ) ] = data[ prop ];
 			}
 		}
 		return cache;
@@ -4091,7 +4298,7 @@ Data.prototype = {
 			this.cache( owner ) :
 
 			// Always use camelCase key (gh-2257)
-			owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
+			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
 	},
 	access: function( owner, key, value ) {
 
@@ -4139,9 +4346,9 @@ Data.prototype = {
 
 				// If key is an array of keys...
 				// We always set camelCase keys, so remove that.
-				key = key.map( jQuery.camelCase );
+				key = key.map( camelCase );
 			} else {
-				key = jQuery.camelCase( key );
+				key = camelCase( key );
 
 				// If a key with the spaces exists, use it.
 				// Otherwise, create an array by matching non-whitespace
@@ -4283,11 +4490,11 @@ jQuery.fn.extend( {
 					while ( i-- ) {
 
 						// Support: IE 11 only
-						// The attrs elements can be null (#14894)
+						// The attrs elements can be null (trac-14894)
 						if ( attrs[ i ] ) {
 							name = attrs[ i ].name;
 							if ( name.indexOf( "data-" ) === 0 ) {
-								name = jQuery.camelCase( name.slice( 5 ) );
+								name = camelCase( name.slice( 5 ) );
 								dataAttr( elem, name, data[ name ] );
 							}
 						}
@@ -4491,6 +4698,26 @@ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
 
 var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
 
+var documentElement = document.documentElement;
+
+
+
+	var isAttached = function( elem ) {
+			return jQuery.contains( elem.ownerDocument, elem );
+		},
+		composed = { composed: true };
+
+	// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
+	// Check attachment across shadow DOM boundaries when possible (gh-3504)
+	// Support: iOS 10.0-10.2 only
+	// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
+	// leading to errors. We need to check for `getRootNode`.
+	if ( documentElement.getRootNode ) {
+		isAttached = function( elem ) {
+			return jQuery.contains( elem.ownerDocument, elem ) ||
+				elem.getRootNode( composed ) === elem.ownerDocument;
+		};
+	}
 var isHiddenWithinTree = function( elem, el ) {
 
 		// isHiddenWithinTree might be called from jQuery#filter function;
@@ -4505,37 +4732,15 @@ var isHiddenWithinTree = function( elem, el ) {
 			// Support: Firefox <=43 - 45
 			// Disconnected elements can have computed display: none, so first confirm that elem is
 			// in the document.
-			jQuery.contains( elem.ownerDocument, elem ) &&
+			isAttached( elem ) &&
 
 			jQuery.css( elem, "display" ) === "none";
 	};
 
-var swap = function( elem, options, callback, args ) {
-	var ret, name,
-		old = {};
-
-	// Remember the old values, and insert the new ones
-	for ( name in options ) {
-		old[ name ] = elem.style[ name ];
-		elem.style[ name ] = options[ name ];
-	}
-
-	ret = callback.apply( elem, args || [] );
-
-	// Revert the old values
-	for ( name in options ) {
-		elem.style[ name ] = old[ name ];
-	}
-
-	return ret;
-};
-
-
 
 
 function adjustCSS( elem, prop, valueParts, tween ) {
-	var adjusted,
-		scale = 1,
+	var adjusted, scale,
 		maxIterations = 20,
 		currentValue = tween ?
 			function() {
@@ -4548,35 +4753,39 @@ function adjustCSS( elem, prop, valueParts, tween ) {
 		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
 
 		// Starting value computation is required for potential unit mismatches
-		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+		initialInUnit = elem.nodeType &&
+			( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
 			rcssNum.exec( jQuery.css( elem, prop ) );
 
 	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
 
+		// Support: Firefox <=54
+		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
+		initial = initial / 2;
+
 		// Trust units reported by jQuery.css
 		unit = unit || initialInUnit[ 3 ];
 
-		// Make sure we update the tween properties later on
-		valueParts = valueParts || [];
-
 		// Iteratively approximate from a nonzero starting point
 		initialInUnit = +initial || 1;
 
-		do {
-
-			// If previous iteration zeroed out, double until we get *something*.
-			// Use string for doubling so we don't accidentally see scale as unchanged below
-			scale = scale || ".5";
+		while ( maxIterations-- ) {
 
-			// Adjust and apply
-			initialInUnit = initialInUnit / scale;
+			// Evaluate and update our best guess (doubling guesses that zero out).
+			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
 			jQuery.style( elem, prop, initialInUnit + unit );
+			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
+				maxIterations = 0;
+			}
+			initialInUnit = initialInUnit / scale;
 
-		// Update scale, tolerating zero or NaN from tween.cur()
-		// Break the loop if scale is unchanged or perfect, or if we've just had enough.
-		} while (
-			scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
-		);
+		}
+
+		initialInUnit = initialInUnit * 2;
+		jQuery.style( elem, prop, initialInUnit + unit );
+
+		// Make sure we update the tween properties later on
+		valueParts = valueParts || [];
 	}
 
 	if ( valueParts ) {
@@ -4692,17 +4901,46 @@ jQuery.fn.extend( {
 } );
 var rcheckableType = ( /^(?:checkbox|radio)$/i );
 
-var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
 
-var rscriptType = ( /^$|\/(?:java|ecma)script/i );
+var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
 
 
 
-// We have to close these tags to support XHTML (#13200)
-var wrapMap = {
+( function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Android 4.0 - 4.3 only
+	// Check state lost if the name is set (trac-11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (trac-14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Android <=4.1 only
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE <=11 only
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
 
 	// Support: IE <=9 only
-	option: [ 1, "<select multiple='multiple'>", "</select>" ],
+	// IE <=9 replaces <option> tags with their contents when inserted outside of
+	// the select element.
+	div.innerHTML = "<option></option>";
+	support.option = !!div.lastChild;
+} )();
+
+
+// We have to close these tags to support XHTML (trac-13200)
+var wrapMap = {
 
 	// XHTML parsers do not magically insert elements in the
 	// same way that tag soup parsers do. So we cannot shorten
@@ -4715,17 +4953,19 @@ var wrapMap = {
 	_default: [ 0, "", "" ]
 };
 
-// Support: IE <=9 only
-wrapMap.optgroup = wrapMap.option;
-
 wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
 wrapMap.th = wrapMap.td;
 
+// Support: IE <=9 only
+if ( !support.option ) {
+	wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ];
+}
+
 
 function getAll( context, tag ) {
 
 	// Support: IE <=9 - 11 only
-	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
+	// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)
 	var ret;
 
 	if ( typeof context.getElementsByTagName !== "undefined" ) {
@@ -4764,7 +5004,7 @@ function setGlobalEval( elems, refElements ) {
 var rhtml = /<|&#?\w+;/;
 
 function buildFragment( elems, context, scripts, selection, ignored ) {
-	var elem, tmp, tag, wrap, contains, j,
+	var elem, tmp, tag, wrap, attached, j,
 		fragment = context.createDocumentFragment(),
 		nodes = [],
 		i = 0,
@@ -4776,7 +5016,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
 		if ( elem || elem === 0 ) {
 
 			// Add nodes directly
-			if ( jQuery.type( elem ) === "object" ) {
+			if ( toType( elem ) === "object" ) {
 
 				// Support: Android <=4.0 only, PhantomJS 1 only
 				// push.apply(_, arraylike) throws on ancient WebKit
@@ -4808,7 +5048,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
 				// Remember the top-level container
 				tmp = fragment.firstChild;
 
-				// Ensure the created nodes are orphaned (#12392)
+				// Ensure the created nodes are orphaned (trac-12392)
 				tmp.textContent = "";
 			}
 		}
@@ -4828,13 +5068,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
 			continue;
 		}
 
-		contains = jQuery.contains( elem.ownerDocument, elem );
+		attached = isAttached( elem );
 
 		// Append to fragment
 		tmp = getAll( fragment.appendChild( elem ), "script" );
 
 		// Preserve script evaluation history
-		if ( contains ) {
+		if ( attached ) {
 			setGlobalEval( tmp );
 		}
 
@@ -4853,38 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
 }
 
 
-( function() {
-	var fragment = document.createDocumentFragment(),
-		div = fragment.appendChild( document.createElement( "div" ) ),
-		input = document.createElement( "input" );
-
-	// Support: Android 4.0 - 4.3 only
-	// Check state lost if the name is set (#11217)
-	// Support: Windows Web Apps (WWA)
-	// `name` and `type` must use .setAttribute for WWA (#14901)
-	input.setAttribute( "type", "radio" );
-	input.setAttribute( "checked", "checked" );
-	input.setAttribute( "name", "t" );
-
-	div.appendChild( input );
-
-	// Support: Android <=4.1 only
-	// Older WebKit doesn't clone checked state correctly in fragments
-	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
-
-	// Support: IE <=11 only
-	// Make sure textarea (and checkbox) defaultValue is properly cloned
-	div.innerHTML = "<textarea>x</textarea>";
-	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
-} )();
-var documentElement = document.documentElement;
-
-
-
-var
-	rkeyEvent = /^key/,
-	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
-	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+var rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
 
 function returnTrue() {
 	return true;
@@ -4894,8 +5103,19 @@ function returnFalse() {
 	return false;
 }
 
+// Support: IE <=9 - 11+
+// focus() and blur() are asynchronous, except when they are no-op.
+// So expect focus to be synchronous when the element is already active,
+// and blur to be synchronous when the element is not already active.
+// (focus and blur are always synchronous in other supported browsers,
+// this just defines when we can count on it).
+function expectSync( elem, type ) {
+	return ( elem === safeActiveElement() ) === ( type === "focus" );
+}
+
 // Support: IE <=9 only
-// See #13393 for more info
+// Accessing document.activeElement can throw unexpectedly
+// https://bugs.jquery.com/ticket/13393
 function safeActiveElement() {
 	try {
 		return document.activeElement;
@@ -4978,8 +5198,8 @@ jQuery.event = {
 			special, handlers, type, namespaces, origType,
 			elemData = dataPriv.get( elem );
 
-		// Don't attach events to noData or text/comment nodes (but allow plain objects)
-		if ( !elemData ) {
+		// Only attach events to objects that accept data
+		if ( !acceptData( elem ) ) {
 			return;
 		}
 
@@ -5003,7 +5223,7 @@ jQuery.event = {
 
 		// Init the element's event structure and main handler, if this is the first
 		if ( !( events = elemData.events ) ) {
-			events = elemData.events = {};
+			events = elemData.events = Object.create( null );
 		}
 		if ( !( eventHandle = elemData.handle ) ) {
 			eventHandle = elemData.handle = function( e ) {
@@ -5161,12 +5381,15 @@ jQuery.event = {
 
 	dispatch: function( nativeEvent ) {
 
-		// Make a writable jQuery.Event from the native event object
-		var event = jQuery.event.fix( nativeEvent );
-
 		var i, j, ret, matched, handleObj, handlerQueue,
 			args = new Array( arguments.length ),
-			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+
+			// Make a writable jQuery.Event from the native event object
+			event = jQuery.event.fix( nativeEvent ),
+
+			handlers = (
+				dataPriv.get( this, "events" ) || Object.create( null )
+			)[ event.type ] || [],
 			special = jQuery.event.special[ event.type ] || {};
 
 		// Use the fix-ed jQuery.Event rather than the (read-only) native event
@@ -5195,9 +5418,10 @@ jQuery.event = {
 			while ( ( handleObj = matched.handlers[ j++ ] ) &&
 				!event.isImmediatePropagationStopped() ) {
 
-				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
-				// a subset or equal to those in the bound event (both can have no namespace).
-				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+				// If the event is namespaced, then each handler is only invoked if it is
+				// specially universal or its namespaces are a superset of the event's.
+				if ( !event.rnamespace || handleObj.namespace === false ||
+					event.rnamespace.test( handleObj.namespace ) ) {
 
 					event.handleObj = handleObj;
 					event.data = handleObj.data;
@@ -5245,15 +5469,15 @@ jQuery.event = {
 
 			for ( ; cur !== this; cur = cur.parentNode || this ) {
 
-				// Don't check non-elements (#13208)
-				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				// Don't check non-elements (trac-13208)
+				// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)
 				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
 					matchedHandlers = [];
 					matchedSelectors = {};
 					for ( i = 0; i < delegateCount; i++ ) {
 						handleObj = handlers[ i ];
 
-						// Don't conflict with Object.prototype properties (#13203)
+						// Don't conflict with Object.prototype properties (trac-13203)
 						sel = handleObj.selector + " ";
 
 						if ( matchedSelectors[ sel ] === undefined ) {
@@ -5286,15 +5510,15 @@ jQuery.event = {
 			enumerable: true,
 			configurable: true,
 
-			get: jQuery.isFunction( hook ) ?
+			get: isFunction( hook ) ?
 				function() {
 					if ( this.originalEvent ) {
-							return hook( this.originalEvent );
+						return hook( this.originalEvent );
 					}
 				} :
 				function() {
 					if ( this.originalEvent ) {
-							return this.originalEvent[ name ];
+						return this.originalEvent[ name ];
 					}
 				},
 
@@ -5321,39 +5545,51 @@ jQuery.event = {
 			// Prevent triggered image.load events from bubbling to window.load
 			noBubble: true
 		},
-		focus: {
+		click: {
 
-			// Fire native event if possible so blur/focus sequence is correct
-			trigger: function() {
-				if ( this !== safeActiveElement() && this.focus ) {
-					this.focus();
-					return false;
-				}
-			},
-			delegateType: "focusin"
-		},
-		blur: {
-			trigger: function() {
-				if ( this === safeActiveElement() && this.blur ) {
-					this.blur();
-					return false;
+			// Utilize native event to ensure correct state for checkable inputs
+			setup: function( data ) {
+
+				// For mutual compressibility with _default, replace `this` access with a local var.
+				// `|| data` is dead code meant only to preserve the variable through minification.
+				var el = this || data;
+
+				// Claim the first handler
+				if ( rcheckableType.test( el.type ) &&
+					el.click && nodeName( el, "input" ) ) {
+
+					// dataPriv.set( el, "click", ... )
+					leverageNative( el, "click", returnTrue );
 				}
+
+				// Return false to allow normal processing in the caller
+				return false;
 			},
-			delegateType: "focusout"
-		},
-		click: {
+			trigger: function( data ) {
 
-			// For checkbox, fire native event so checked state will be right
-			trigger: function() {
-				if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
-					this.click();
-					return false;
+				// For mutual compressibility with _default, replace `this` access with a local var.
+				// `|| data` is dead code meant only to preserve the variable through minification.
+				var el = this || data;
+
+				// Force setup before triggering a click
+				if ( rcheckableType.test( el.type ) &&
+					el.click && nodeName( el, "input" ) ) {
+
+					leverageNative( el, "click" );
 				}
+
+				// Return non-false to allow normal event-path propagation
+				return true;
 			},
 
-			// For cross-browser consistency, don't fire native .click() on links
+			// For cross-browser consistency, suppress native .click() on links
+			// Also prevent it if we're currently inside a leveraged native-event stack
 			_default: function( event ) {
-				return nodeName( event.target, "a" );
+				var target = event.target;
+				return rcheckableType.test( target.type ) &&
+					target.click && nodeName( target, "input" ) &&
+					dataPriv.get( target, "click" ) ||
+					nodeName( target, "a" );
 			}
 		},
 
@@ -5370,6 +5606,99 @@ jQuery.event = {
 	}
 };
 
+// Ensure the presence of an event listener that handles manually-triggered
+// synthetic events by interrupting progress until reinvoked in response to
+// *native* events that it fires directly, ensuring that state changes have
+// already occurred before other listeners are invoked.
+function leverageNative( el, type, expectSync ) {
+
+	// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
+	if ( !expectSync ) {
+		if ( dataPriv.get( el, type ) === undefined ) {
+			jQuery.event.add( el, type, returnTrue );
+		}
+		return;
+	}
+
+	// Register the controller as a special universal handler for all event namespaces
+	dataPriv.set( el, type, false );
+	jQuery.event.add( el, type, {
+		namespace: false,
+		handler: function( event ) {
+			var notAsync, result,
+				saved = dataPriv.get( this, type );
+
+			if ( ( event.isTrigger & 1 ) && this[ type ] ) {
+
+				// Interrupt processing of the outer synthetic .trigger()ed event
+				// Saved data should be false in such cases, but might be a leftover capture object
+				// from an async native handler (gh-4350)
+				if ( !saved.length ) {
+
+					// Store arguments for use when handling the inner native event
+					// There will always be at least one argument (an event object), so this array
+					// will not be confused with a leftover capture object.
+					saved = slice.call( arguments );
+					dataPriv.set( this, type, saved );
+
+					// Trigger the native event and capture its result
+					// Support: IE <=9 - 11+
+					// focus() and blur() are asynchronous
+					notAsync = expectSync( this, type );
+					this[ type ]();
+					result = dataPriv.get( this, type );
+					if ( saved !== result || notAsync ) {
+						dataPriv.set( this, type, false );
+					} else {
+						result = {};
+					}
+					if ( saved !== result ) {
+
+						// Cancel the outer synthetic event
+						event.stopImmediatePropagation();
+						event.preventDefault();
+
+						// Support: Chrome 86+
+						// In Chrome, if an element having a focusout handler is blurred by
+						// clicking outside of it, it invokes the handler synchronously. If
+						// that handler calls `.remove()` on the element, the data is cleared,
+						// leaving `result` undefined. We need to guard against this.
+						return result && result.value;
+					}
+
+				// If this is an inner synthetic event for an event with a bubbling surrogate
+				// (focus or blur), assume that the surrogate already propagated from triggering the
+				// native event and prevent that from happening again here.
+				// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
+				// bubbling surrogate propagates *after* the non-bubbling base), but that seems
+				// less bad than duplication.
+				} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
+					event.stopPropagation();
+				}
+
+			// If this is a native event triggered above, everything is now in order
+			// Fire an inner synthetic event with the original arguments
+			} else if ( saved.length ) {
+
+				// ...and capture the result
+				dataPriv.set( this, type, {
+					value: jQuery.event.trigger(
+
+						// Support: IE <=9 - 11+
+						// Extend with the prototype to reset the above stopImmediatePropagation()
+						jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
+						saved.slice( 1 ),
+						this
+					)
+				} );
+
+				// Abort handling of the native event
+				event.stopImmediatePropagation();
+			}
+		}
+	} );
+}
+
 jQuery.removeEvent = function( elem, type, handle ) {
 
 	// This "if" is needed for plain objects
@@ -5402,7 +5731,7 @@ jQuery.Event = function( src, props ) {
 
 		// Create target properties
 		// Support: Safari <=6 - 7 only
-		// Target should not be a text node (#504, #13143)
+		// Target should not be a text node (trac-504, trac-13143)
 		this.target = ( src.target && src.target.nodeType === 3 ) ?
 			src.target.parentNode :
 			src.target;
@@ -5421,7 +5750,7 @@ jQuery.Event = function( src, props ) {
 	}
 
 	// Create a timestamp if incoming event doesn't have one
-	this.timeStamp = src && src.timeStamp || jQuery.now();
+	this.timeStamp = src && src.timeStamp || Date.now();
 
 	// Mark it as fixed
 	this[ jQuery.expando ] = true;
@@ -5482,6 +5811,7 @@ jQuery.each( {
 	shiftKey: true,
 	view: true,
 	"char": true,
+	code: true,
 	charCode: true,
 	key: true,
 	keyCode: true,
@@ -5498,35 +5828,41 @@ jQuery.each( {
 	targetTouches: true,
 	toElement: true,
 	touches: true,
+	which: true
+}, jQuery.event.addProp );
 
-	which: function( event ) {
-		var button = event.button;
+jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
+	jQuery.event.special[ type ] = {
 
-		// Add which for key events
-		if ( event.which == null && rkeyEvent.test( event.type ) ) {
-			return event.charCode != null ? event.charCode : event.keyCode;
-		}
+		// Utilize native event if possible so blur/focus sequence is correct
+		setup: function() {
 
-		// Add which for click: 1 === left; 2 === middle; 3 === right
-		if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
-			if ( button & 1 ) {
-				return 1;
-			}
+			// Claim the first handler
+			// dataPriv.set( this, "focus", ... )
+			// dataPriv.set( this, "blur", ... )
+			leverageNative( this, type, expectSync );
 
-			if ( button & 2 ) {
-				return 3;
-			}
+			// Return false to allow normal processing in the caller
+			return false;
+		},
+		trigger: function() {
 
-			if ( button & 4 ) {
-				return 2;
-			}
+			// Force setup before trigger
+			leverageNative( this, type );
 
-			return 0;
-		}
+			// Return non-false to allow normal event-path propagation
+			return true;
+		},
 
-		return event.which;
-	}
-}, jQuery.event.addProp );
+		// Suppress native focus or blur if we're currently inside
+		// a leveraged native-event stack
+		_default: function( event ) {
+			return dataPriv.get( event.target, type );
+		},
+
+		delegateType: delegateType
+	};
+} );
 
 // Create mouseenter/leave events using mouseover/out and event-time checks
 // so that event delegation works in jQuery.
@@ -5613,29 +5949,22 @@ jQuery.fn.extend( {
 
 var
 
-	/* eslint-disable max-len */
-
-	// See https://github.com/eslint/eslint/issues/3229
-	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
-
-	/* eslint-enable */
-
-	// Support: IE <=10 - 11, Edge 12 - 13
+	// Support: IE <=10 - 11, Edge 12 - 13 only
 	// In IE/Edge using regex groups here causes severe slowdowns.
 	// See https://connect.microsoft.com/IE/feedback/details/1736512/
 	rnoInnerhtml = /<script|<style|<link/i,
 
 	// checked="checked" or checked
 	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
-	rscriptTypeMasked = /^true\/(.*)/,
-	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+	rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g;
 
 // Prefer a tbody over its parent table for containing new rows
 function manipulationTarget( elem, content ) {
 	if ( nodeName( elem, "table" ) &&
 		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
 
-		return jQuery( ">tbody", elem )[ 0 ] || elem;
+		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
 	}
 
 	return elem;
@@ -5647,10 +5976,8 @@ function disableScript( elem ) {
 	return elem;
 }
 function restoreScript( elem ) {
-	var match = rscriptTypeMasked.exec( elem.type );
-
-	if ( match ) {
-		elem.type = match[ 1 ];
+	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
+		elem.type = elem.type.slice( 5 );
 	} else {
 		elem.removeAttribute( "type" );
 	}
@@ -5659,7 +5986,7 @@ function restoreScript( elem ) {
 }
 
 function cloneCopyEvent( src, dest ) {
-	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+	var i, l, type, pdataOld, udataOld, udataCur, events;
 
 	if ( dest.nodeType !== 1 ) {
 		return;
@@ -5667,13 +5994,11 @@ function cloneCopyEvent( src, dest ) {
 
 	// 1. Copy private data: events, handlers, etc.
 	if ( dataPriv.hasData( src ) ) {
-		pdataOld = dataPriv.access( src );
-		pdataCur = dataPriv.set( dest, pdataOld );
+		pdataOld = dataPriv.get( src );
 		events = pdataOld.events;
 
 		if ( events ) {
-			delete pdataCur.handle;
-			pdataCur.events = {};
+			dataPriv.remove( dest, "handle events" );
 
 			for ( type in events ) {
 				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
@@ -5709,22 +6034,22 @@ function fixInput( src, dest ) {
 function domManip( collection, args, callback, ignored ) {
 
 	// Flatten any nested arrays
-	args = concat.apply( [], args );
+	args = flat( args );
 
 	var fragment, first, scripts, hasScripts, node, doc,
 		i = 0,
 		l = collection.length,
 		iNoClone = l - 1,
 		value = args[ 0 ],
-		isFunction = jQuery.isFunction( value );
+		valueIsFunction = isFunction( value );
 
 	// We can't cloneNode fragments that contain checked, in WebKit
-	if ( isFunction ||
+	if ( valueIsFunction ||
 			( l > 1 && typeof value === "string" &&
 				!support.checkClone && rchecked.test( value ) ) ) {
 		return collection.each( function( index ) {
 			var self = collection.eq( index );
-			if ( isFunction ) {
+			if ( valueIsFunction ) {
 				args[ 0 ] = value.call( this, index, self.html() );
 			}
 			domManip( self, args, callback, ignored );
@@ -5746,7 +6071,7 @@ function domManip( collection, args, callback, ignored ) {
 
 			// Use the original fragment for the last item
 			// instead of the first because it can end up
-			// being emptied incorrectly in certain situations (#8070).
+			// being emptied incorrectly in certain situations (trac-8070).
 			for ( ; i < l; i++ ) {
 				node = fragment;
 
@@ -5778,14 +6103,22 @@ function domManip( collection, args, callback, ignored ) {
 						!dataPriv.access( node, "globalEval" ) &&
 						jQuery.contains( doc, node ) ) {
 
-						if ( node.src ) {
+						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
 
 							// Optional AJAX dependency, but won't run scripts if not present
-							if ( jQuery._evalUrl ) {
-								jQuery._evalUrl( node.src );
+							if ( jQuery._evalUrl && !node.noModule ) {
+								jQuery._evalUrl( node.src, {
+									nonce: node.nonce || node.getAttribute( "nonce" )
+								}, doc );
 							}
 						} else {
-							DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
+
+							// Unwrap a CDATA section containing script contents. This shouldn't be
+							// needed as in XML documents they're already not visible when
+							// inspecting element contents and in HTML documents they have no
+							// meaning but we're preserving that logic for backwards compatibility.
+							// This will be removed completely in 4.0. See gh-4904.
+							DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
 						}
 					}
 				}
@@ -5807,7 +6140,7 @@ function remove( elem, selector, keepData ) {
 		}
 
 		if ( node.parentNode ) {
-			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+			if ( keepData && isAttached( node ) ) {
 				setGlobalEval( getAll( node, "script" ) );
 			}
 			node.parentNode.removeChild( node );
@@ -5819,13 +6152,13 @@ function remove( elem, selector, keepData ) {
 
 jQuery.extend( {
 	htmlPrefilter: function( html ) {
-		return html.replace( rxhtmlTag, "<$1></$2>" );
+		return html;
 	},
 
 	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
 		var i, l, srcElements, destElements,
 			clone = elem.cloneNode( true ),
-			inPage = jQuery.contains( elem.ownerDocument, elem );
+			inPage = isAttached( elem );
 
 		// Fix IE cloning issues
 		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
@@ -6065,13 +6398,14 @@ jQuery.each( {
 		return this.pushStack( ret );
 	};
 } );
-var rmargin = ( /^margin/ );
-
 var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
 
+var rcustomProp = /^--/;
+
+
 var getStyles = function( elem ) {
 
-		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+		// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)
 		// IE throws on elements created in popups
 		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
 		var view = elem.ownerDocument.defaultView;
@@ -6083,6 +6417,38 @@ var getStyles = function( elem ) {
 		return view.getComputedStyle( elem );
 	};
 
+var swap = function( elem, options, callback ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.call( elem );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
+
+var whitespace = "[\\x20\\t\\r\\n\\f]";
+
+
+var rtrimCSS = new RegExp(
+	"^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$",
+	"g"
+);
+
+
 
 
 ( function() {
@@ -6096,25 +6462,35 @@ var getStyles = function( elem ) {
 			return;
 		}
 
+		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
+			"margin-top:1px;padding:0;border:0";
 		div.style.cssText =
-			"box-sizing:border-box;" +
-			"position:relative;display:block;" +
+			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
 			"margin:auto;border:1px;padding:1px;" +
-			"top:1%;width:50%";
-		div.innerHTML = "";
-		documentElement.appendChild( container );
+			"width:60%;top:1%";
+		documentElement.appendChild( container ).appendChild( div );
 
 		var divStyle = window.getComputedStyle( div );
 		pixelPositionVal = divStyle.top !== "1%";
 
 		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
-		reliableMarginLeftVal = divStyle.marginLeft === "2px";
-		boxSizingReliableVal = divStyle.width === "4px";
+		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
 
-		// Support: Android 4.0 - 4.3 only
+		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
 		// Some styles come back with percentage values, even though they shouldn't
-		div.style.marginRight = "50%";
-		pixelMarginRightVal = divStyle.marginRight === "4px";
+		div.style.right = "60%";
+		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
+
+		// Support: IE 9 - 11 only
+		// Detect misreporting of content dimensions for box-sizing:border-box elements
+		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
+
+		// Support: IE 9 only
+		// Detect overflow:scroll screwiness (gh-3699)
+		// Support: Chrome <=64
+		// Don't get tricked when zoom affects offsetWidth (gh-4029)
+		div.style.position = "absolute";
+		scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
 
 		documentElement.removeChild( container );
 
@@ -6123,7 +6499,12 @@ var getStyles = function( elem ) {
 		div = null;
 	}
 
-	var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
+	function roundPixelMeasures( measure ) {
+		return Math.round( parseFloat( measure ) );
+	}
+
+	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
+		reliableTrDimensionsVal, reliableMarginLeftVal,
 		container = document.createElement( "div" ),
 		div = document.createElement( "div" );
 
@@ -6133,31 +6514,79 @@ var getStyles = function( elem ) {
 	}
 
 	// Support: IE <=9 - 11 only
-	// Style of cloned element affects source element cloned (#8908)
+	// Style of cloned element affects source element cloned (trac-8908)
 	div.style.backgroundClip = "content-box";
 	div.cloneNode( true ).style.backgroundClip = "";
 	support.clearCloneStyle = div.style.backgroundClip === "content-box";
 
-	container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
-		"padding:0;margin-top:1px;position:absolute";
-	container.appendChild( div );
-
 	jQuery.extend( support, {
-		pixelPosition: function() {
-			computeStyleTests();
-			return pixelPositionVal;
-		},
 		boxSizingReliable: function() {
 			computeStyleTests();
 			return boxSizingReliableVal;
 		},
-		pixelMarginRight: function() {
+		pixelBoxStyles: function() {
+			computeStyleTests();
+			return pixelBoxStylesVal;
+		},
+		pixelPosition: function() {
 			computeStyleTests();
-			return pixelMarginRightVal;
+			return pixelPositionVal;
 		},
 		reliableMarginLeft: function() {
 			computeStyleTests();
 			return reliableMarginLeftVal;
+		},
+		scrollboxSize: function() {
+			computeStyleTests();
+			return scrollboxSizeVal;
+		},
+
+		// Support: IE 9 - 11+, Edge 15 - 18+
+		// IE/Edge misreport `getComputedStyle` of table rows with width/height
+		// set in CSS while `offset*` properties report correct values.
+		// Behavior in IE 9 is more subtle than in newer versions & it passes
+		// some versions of this test; make sure not to make it pass there!
+		//
+		// Support: Firefox 70+
+		// Only Firefox includes border widths
+		// in computed dimensions. (gh-4529)
+		reliableTrDimensions: function() {
+			var table, tr, trChild, trStyle;
+			if ( reliableTrDimensionsVal == null ) {
+				table = document.createElement( "table" );
+				tr = document.createElement( "tr" );
+				trChild = document.createElement( "div" );
+
+				table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate";
+				tr.style.cssText = "border:1px solid";
+
+				// Support: Chrome 86+
+				// Height set through cssText does not get applied.
+				// Computed height then comes back as 0.
+				tr.style.height = "1px";
+				trChild.style.height = "9px";
+
+				// Support: Android 8 Chrome 86+
+				// In our bodyBackground.html iframe,
+				// display for all div elements is set to "inline",
+				// which causes a problem only in Android 8 Chrome 86.
+				// Ensuring the div is display: block
+				// gets around this issue.
+				trChild.style.display = "block";
+
+				documentElement
+					.appendChild( table )
+					.appendChild( tr )
+					.appendChild( trChild );
+
+				trStyle = window.getComputedStyle( tr );
+				reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +
+					parseInt( trStyle.borderTopWidth, 10 ) +
+					parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;
+
+				documentElement.removeChild( table );
+			}
+			return reliableTrDimensionsVal;
 		}
 	} );
 } )();
@@ -6165,6 +6594,7 @@ var getStyles = function( elem ) {
 
 function curCSS( elem, name, computed ) {
 	var width, minWidth, maxWidth, ret,
+		isCustomProp = rcustomProp.test( name ),
 
 		// Support: Firefox 51+
 		// Retrieving style before computed somehow
@@ -6175,12 +6605,23 @@ function curCSS( elem, name, computed ) {
 	computed = computed || getStyles( elem );
 
 	// getPropertyValue is needed for:
-	//   .css('filter') (IE 9 only, #12537)
-	//   .css('--customProperty) (#3144)
+	//   .css('filter') (IE 9 only, trac-12537)
+	//   .css('--customProperty) (gh-3144)
 	if ( computed ) {
 		ret = computed.getPropertyValue( name ) || computed[ name ];
 
-		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+		// trim whitespace for custom property (issue gh-4926)
+		if ( isCustomProp ) {
+
+			// rtrim treats U+000D CARRIAGE RETURN and U+000C FORM FEED
+			// as whitespace while CSS does not, but this is not a problem
+			// because CSS preprocessing replaces them with U+000A LINE FEED
+			// (which *is* CSS whitespace)
+			// https://www.w3.org/TR/css-syntax-3/#input-preprocessing
+			ret = ret.replace( rtrimCSS, "$1" );
+		}
+
+		if ( ret === "" && !isAttached( elem ) ) {
 			ret = jQuery.style( elem, name );
 		}
 
@@ -6189,7 +6630,7 @@ function curCSS( elem, name, computed ) {
 		// but width seems to be reliably pixels.
 		// This is against the CSSOM draft spec:
 		// https://drafts.csswg.org/cssom/#resolved-values
-		if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
 
 			// Remember the original values
 			width = style.width;
@@ -6236,30 +6677,13 @@ function addGetHookIf( conditionFn, hookFn ) {
 }
 
 
-var
-
-	// Swappable if display is none or starts with table
-	// except "table", "table-cell", or "table-caption"
-	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
-	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
-	rcustomProp = /^--/,
-	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
-	cssNormalTransform = {
-		letterSpacing: "0",
-		fontWeight: "400"
-	},
-
-	cssPrefixes = [ "Webkit", "Moz", "ms" ],
-	emptyStyle = document.createElement( "div" ).style;
+var cssPrefixes = [ "Webkit", "Moz", "ms" ],
+	emptyStyle = document.createElement( "div" ).style,
+	vendorProps = {};
 
-// Return a css property mapped to a potentially vendor prefixed property
+// Return a vendor-prefixed property or undefined
 function vendorPropName( name ) {
 
-	// Shortcut for names that are not vendor prefixed
-	if ( name in emptyStyle ) {
-		return name;
-	}
-
 	// Check for vendor prefixed names
 	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
 		i = cssPrefixes.length;
@@ -6272,17 +6696,33 @@ function vendorPropName( name ) {
 	}
 }
 
-// Return a property mapped along what jQuery.cssProps suggests or to
-// a vendor prefixed property.
+// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
 function finalPropName( name ) {
-	var ret = jQuery.cssProps[ name ];
-	if ( !ret ) {
-		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+	var final = jQuery.cssProps[ name ] || vendorProps[ name ];
+
+	if ( final ) {
+		return final;
 	}
-	return ret;
+	if ( name in emptyStyle ) {
+		return name;
+	}
+	return vendorProps[ name ] = vendorPropName( name ) || name;
 }
 
-function setPositiveNumber( elem, value, subtract ) {
+
+var
+
+	// Swappable if display is none or starts with table
+	// except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	};
+
+function setPositiveNumber( _elem, value, subtract ) {
 
 	// Any relative (+/-) values have already been
 	// normalized at this point
@@ -6294,87 +6734,146 @@ function setPositiveNumber( elem, value, subtract ) {
 		value;
 }
 
-function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
-	var i,
-		val = 0;
-
-	// If we already have the right measurement, avoid augmentation
-	if ( extra === ( isBorderBox ? "border" : "content" ) ) {
-		i = 4;
+function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
+	var i = dimension === "width" ? 1 : 0,
+		extra = 0,
+		delta = 0;
 
-	// Otherwise initialize for horizontal or vertical properties
-	} else {
-		i = name === "width" ? 1 : 0;
+	// Adjustment may not be necessary
+	if ( box === ( isBorderBox ? "border" : "content" ) ) {
+		return 0;
 	}
 
 	for ( ; i < 4; i += 2 ) {
 
-		// Both box models exclude margin, so add it if we want it
-		if ( extra === "margin" ) {
-			val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+		// Both box models exclude margin
+		if ( box === "margin" ) {
+			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
 		}
 
-		if ( isBorderBox ) {
+		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
+		if ( !isBorderBox ) {
 
-			// border-box includes padding, so remove it if we want content
-			if ( extra === "content" ) {
-				val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
-			}
+			// Add padding
+			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// For "border" or "margin", add border
+			if ( box !== "padding" ) {
+				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
 
-			// At this point, extra isn't border nor margin, so remove border
-			if ( extra !== "margin" ) {
-				val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			// But still keep track of it otherwise
+			} else {
+				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
 			}
+
+		// If we get here with a border-box (content + padding + border), we're seeking "content" or
+		// "padding" or "margin"
 		} else {
 
-			// At this point, extra isn't content, so add padding
-			val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			// For "content", subtract padding
+			if ( box === "content" ) {
+				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
 
-			// At this point, extra isn't content nor padding, so add border
-			if ( extra !== "padding" ) {
-				val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			// For "content" or "padding", subtract border
+			if ( box !== "margin" ) {
+				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
 			}
 		}
 	}
 
-	return val;
+	// Account for positive content-box scroll gutter when requested by providing computedVal
+	if ( !isBorderBox && computedVal >= 0 ) {
+
+		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
+		// Assuming integer scroll gutter, subtract the rest and round down
+		delta += Math.max( 0, Math.ceil(
+			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+			computedVal -
+			delta -
+			extra -
+			0.5
+
+		// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
+		// Use an explicit zero to avoid NaN (gh-3964)
+		) ) || 0;
+	}
+
+	return delta;
 }
 
-function getWidthOrHeight( elem, name, extra ) {
+function getWidthOrHeight( elem, dimension, extra ) {
 
 	// Start with computed style
-	var valueIsBorderBox,
-		styles = getStyles( elem ),
-		val = curCSS( elem, name, styles ),
-		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+	var styles = getStyles( elem ),
 
-	// Computed unit is not pixels. Stop here and return.
+		// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
+		// Fake content-box until we know it's needed to know the true value.
+		boxSizingNeeded = !support.boxSizingReliable() || extra,
+		isBorderBox = boxSizingNeeded &&
+			jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+		valueIsBorderBox = isBorderBox,
+
+		val = curCSS( elem, dimension, styles ),
+		offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
+
+	// Support: Firefox <=54
+	// Return a confounding non-pixel value or feign ignorance, as appropriate.
 	if ( rnumnonpx.test( val ) ) {
-		return val;
+		if ( !extra ) {
+			return val;
+		}
+		val = "auto";
 	}
 
-	// Check for style in case a browser which returns unreliable values
-	// for getComputedStyle silently falls back to the reliable elem.style
-	valueIsBorderBox = isBorderBox &&
-		( support.boxSizingReliable() || val === elem.style[ name ] );
 
-	// Fall back to offsetWidth/Height when value is "auto"
-	// This happens for inline elements with no explicit setting (gh-3571)
-	if ( val === "auto" ) {
-		val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ];
+	// Support: IE 9 - 11 only
+	// Use offsetWidth/offsetHeight for when box sizing is unreliable.
+	// In those cases, the computed value can be trusted to be border-box.
+	if ( ( !support.boxSizingReliable() && isBorderBox ||
+
+		// Support: IE 10 - 11+, Edge 15 - 18+
+		// IE/Edge misreport `getComputedStyle` of table rows with width/height
+		// set in CSS while `offset*` properties report correct values.
+		// Interestingly, in some cases IE 9 doesn't suffer from this issue.
+		!support.reliableTrDimensions() && nodeName( elem, "tr" ) ||
+
+		// Fall back to offsetWidth/offsetHeight when value is "auto"
+		// This happens for inline elements with no explicit setting (gh-3571)
+		val === "auto" ||
+
+		// Support: Android <=4.1 - 4.3 only
+		// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
+		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
+
+		// Make sure the element is visible & connected
+		elem.getClientRects().length ) {
+
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+		// Where available, offsetWidth/offsetHeight approximate border box dimensions.
+		// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
+		// retrieved value as a content box dimension.
+		valueIsBorderBox = offsetProp in elem;
+		if ( valueIsBorderBox ) {
+			val = elem[ offsetProp ];
+		}
 	}
 
-	// Normalize "", auto, and prepare for extra
+	// Normalize "" and auto
 	val = parseFloat( val ) || 0;
 
-	// Use the active box-sizing model to add/subtract irrelevant styles
+	// Adjust for the element's box model
 	return ( val +
-		augmentWidthOrHeight(
+		boxModelAdjustment(
 			elem,
-			name,
+			dimension,
 			extra || ( isBorderBox ? "border" : "content" ),
 			valueIsBorderBox,
-			styles
+			styles,
+
+			// Provide the current computed size to request scroll gutter calculation (gh-3589)
+			val
 		)
 	) + "px";
 }
@@ -6404,6 +6903,13 @@ jQuery.extend( {
 		"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,
@@ -6415,9 +6921,7 @@ jQuery.extend( {
 
 	// Add in properties whose names you wish to fix before
 	// setting or getting the value
-	cssProps: {
-		"float": "cssFloat"
-	},
+	cssProps: {},
 
 	// Get and set the style property on a DOM Node
 	style: function( elem, name, value, extra ) {
@@ -6429,7 +6933,7 @@ jQuery.extend( {
 
 		// Make sure that we're working with the right name
 		var ret, type, hooks,
-			origName = jQuery.camelCase( name ),
+			origName = camelCase( name ),
 			isCustomProp = rcustomProp.test( name ),
 			style = elem.style;
 
@@ -6447,21 +6951,23 @@ jQuery.extend( {
 		if ( value !== undefined ) {
 			type = typeof value;
 
-			// Convert "+=" or "-=" to relative numbers (#7345)
+			// Convert "+=" or "-=" to relative numbers (trac-7345)
 			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
 				value = adjustCSS( elem, name, ret );
 
-				// Fixes bug #9237
+				// Fixes bug trac-9237
 				type = "number";
 			}
 
-			// Make sure that null and NaN values aren't set (#7116)
+			// Make sure that null and NaN values aren't set (trac-7116)
 			if ( value == null || value !== value ) {
 				return;
 			}
 
 			// If a number was passed in, add the unit (except for certain CSS properties)
-			if ( type === "number" ) {
+			// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
+			// "px" to a few hardcoded values.
+			if ( type === "number" && !isCustomProp ) {
 				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
 			}
 
@@ -6497,7 +7003,7 @@ jQuery.extend( {
 
 	css: function( elem, name, extra, styles ) {
 		var val, num, hooks,
-			origName = jQuery.camelCase( name ),
+			origName = camelCase( name ),
 			isCustomProp = rcustomProp.test( name );
 
 		// Make sure that we're working with the right name. We don't
@@ -6535,8 +7041,8 @@ jQuery.extend( {
 	}
 } );
 
-jQuery.each( [ "height", "width" ], function( i, name ) {
-	jQuery.cssHooks[ name ] = {
+jQuery.each( [ "height", "width" ], function( _i, dimension ) {
+	jQuery.cssHooks[ dimension ] = {
 		get: function( elem, computed, extra ) {
 			if ( computed ) {
 
@@ -6551,30 +7057,53 @@ jQuery.each( [ "height", "width" ], function( i, name ) {
 					// Running getBoundingClientRect on a disconnected node
 					// in IE throws an error.
 					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
-						swap( elem, cssShow, function() {
-							return getWidthOrHeight( elem, name, extra );
-						} ) :
-						getWidthOrHeight( elem, name, extra );
+					swap( elem, cssShow, function() {
+						return getWidthOrHeight( elem, dimension, extra );
+					} ) :
+					getWidthOrHeight( elem, dimension, extra );
 			}
 		},
 
 		set: function( elem, value, extra ) {
 			var matches,
-				styles = extra && getStyles( elem ),
-				subtract = extra && augmentWidthOrHeight(
-					elem,
-					name,
-					extra,
+				styles = getStyles( elem ),
+
+				// Only read styles.position if the test has a chance to fail
+				// to avoid forcing a reflow.
+				scrollboxSizeBuggy = !support.scrollboxSize() &&
+					styles.position === "absolute",
+
+				// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
+				boxSizingNeeded = scrollboxSizeBuggy || extra,
+				isBorderBox = boxSizingNeeded &&
 					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
-					styles
+				subtract = extra ?
+					boxModelAdjustment(
+						elem,
+						dimension,
+						extra,
+						isBorderBox,
+						styles
+					) :
+					0;
+
+			// Account for unreliable border-box dimensions by comparing offset* to computed and
+			// faking a content-box to get border and padding (gh-3699)
+			if ( isBorderBox && scrollboxSizeBuggy ) {
+				subtract -= Math.ceil(
+					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+					parseFloat( styles[ dimension ] ) -
+					boxModelAdjustment( elem, dimension, "border", false, styles ) -
+					0.5
 				);
+			}
 
 			// Convert to pixels if value adjustment is needed
 			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
 				( matches[ 3 ] || "px" ) !== "px" ) {
 
-				elem.style[ name ] = value;
-				value = jQuery.css( elem, name );
+				elem.style[ dimension ] = value;
+				value = jQuery.css( elem, dimension );
 			}
 
 			return setPositiveNumber( elem, value, subtract );
@@ -6590,7 +7119,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
 					swap( elem, { marginLeft: 0 }, function() {
 						return elem.getBoundingClientRect().left;
 					} )
-				) + "px";
+			) + "px";
 		}
 	}
 );
@@ -6618,7 +7147,7 @@ jQuery.each( {
 		}
 	};
 
-	if ( !rmargin.test( prefix ) ) {
+	if ( prefix !== "margin" ) {
 		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
 	}
 } );
@@ -6728,9 +7257,9 @@ Tween.propHooks = {
 			// Use .style if available and use plain properties where available.
 			if ( jQuery.fx.step[ tween.prop ] ) {
 				jQuery.fx.step[ tween.prop ]( tween );
-			} else if ( tween.elem.nodeType === 1 &&
-				( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
-					jQuery.cssHooks[ tween.prop ] ) ) {
+			} else if ( tween.elem.nodeType === 1 && (
+				jQuery.cssHooks[ tween.prop ] ||
+					tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
 				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
 			} else {
 				tween.elem[ tween.prop ] = tween.now;
@@ -6789,7 +7318,7 @@ function createFxNow() {
 	window.setTimeout( function() {
 		fxNow = undefined;
 	} );
-	return ( fxNow = jQuery.now() );
+	return ( fxNow = Date.now() );
 }
 
 // Generate parameters to create a standard animation
@@ -6893,9 +7422,10 @@ function defaultPrefilter( elem, props, opts ) {
 	// Restrict "overflow" and "display" styles during box animations
 	if ( isBox && elem.nodeType === 1 ) {
 
-		// Support: IE <=9 - 11, Edge 12 - 13
+		// Support: IE <=9 - 11, Edge 12 - 15
 		// Record all 3 overflow attributes because IE does not infer the shorthand
-		// from identically-valued overflowX and overflowY
+		// from identically-valued overflowX and overflowY and Edge just mirrors
+		// the overflowX value there.
 		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
 
 		// Identify a display type, preferring old show/hide data over the CSS cascade
@@ -6973,7 +7503,7 @@ function defaultPrefilter( elem, props, opts ) {
 
 			anim.done( function() {
 
-			/* eslint-enable no-loop-func */
+				/* eslint-enable no-loop-func */
 
 				// The final step of a "hide" animation is actually hiding the element
 				if ( !hidden ) {
@@ -7003,7 +7533,7 @@ function propFilter( props, specialEasing ) {
 
 	// camelCase, specialEasing and expand cssHook pass
 	for ( index in props ) {
-		name = jQuery.camelCase( index );
+		name = camelCase( index );
 		easing = specialEasing[ name ];
 		value = props[ index ];
 		if ( Array.isArray( value ) ) {
@@ -7053,7 +7583,7 @@ function Animation( elem, properties, options ) {
 				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
 
 				// Support: Android 2.3 only
-				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)
 				temp = remaining / animation.duration || 0,
 				percent = 1 - temp,
 				index = 0,
@@ -7093,7 +7623,7 @@ function Animation( elem, properties, options ) {
 			tweens: [],
 			createTween: function( prop, end ) {
 				var tween = jQuery.Tween( elem, animation.opts, prop, end,
-						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+					animation.opts.specialEasing[ prop ] || animation.opts.easing );
 				animation.tweens.push( tween );
 				return tween;
 			},
@@ -7128,9 +7658,9 @@ function Animation( elem, properties, options ) {
 	for ( ; index < length; index++ ) {
 		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
 		if ( result ) {
-			if ( jQuery.isFunction( result.stop ) ) {
+			if ( isFunction( result.stop ) ) {
 				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
-					jQuery.proxy( result.stop, result );
+					result.stop.bind( result );
 			}
 			return result;
 		}
@@ -7138,7 +7668,7 @@ function Animation( elem, properties, options ) {
 
 	jQuery.map( props, createTween, animation );
 
-	if ( jQuery.isFunction( animation.opts.start ) ) {
+	if ( isFunction( animation.opts.start ) ) {
 		animation.opts.start.call( elem, animation );
 	}
 
@@ -7171,7 +7701,7 @@ jQuery.Animation = jQuery.extend( Animation, {
 	},
 
 	tweener: function( props, callback ) {
-		if ( jQuery.isFunction( props ) ) {
+		if ( isFunction( props ) ) {
 			callback = props;
 			props = [ "*" ];
 		} else {
@@ -7203,9 +7733,9 @@ jQuery.Animation = jQuery.extend( Animation, {
 jQuery.speed = function( speed, easing, fn ) {
 	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
 		complete: fn || !fn && easing ||
-			jQuery.isFunction( speed ) && speed,
+			isFunction( speed ) && speed,
 		duration: speed,
-		easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+		easing: fn && easing || easing && !isFunction( easing ) && easing
 	};
 
 	// Go to the end state if fx are off
@@ -7232,7 +7762,7 @@ jQuery.speed = function( speed, easing, fn ) {
 	opt.old = opt.complete;
 
 	opt.complete = function() {
-		if ( jQuery.isFunction( opt.old ) ) {
+		if ( isFunction( opt.old ) ) {
 			opt.old.call( this );
 		}
 
@@ -7266,7 +7796,8 @@ jQuery.fn.extend( {
 					anim.stop( true );
 				}
 			};
-			doAnimation.finish = doAnimation;
+
+		doAnimation.finish = doAnimation;
 
 		return empty || optall.queue === false ?
 			this.each( doAnimation ) :
@@ -7284,7 +7815,7 @@ jQuery.fn.extend( {
 			clearQueue = type;
 			type = undefined;
 		}
-		if ( clearQueue && type !== false ) {
+		if ( clearQueue ) {
 			this.queue( type || "fx", [] );
 		}
 
@@ -7367,7 +7898,7 @@ jQuery.fn.extend( {
 	}
 } );
 
-jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) {
 	var cssFn = jQuery.fn[ name ];
 	jQuery.fn[ name ] = function( speed, easing, callback ) {
 		return speed == null || typeof speed === "boolean" ?
@@ -7396,7 +7927,7 @@ jQuery.fx.tick = function() {
 		i = 0,
 		timers = jQuery.timers;
 
-	fxNow = jQuery.now();
+	fxNow = Date.now();
 
 	for ( ; i < timers.length; i++ ) {
 		timer = timers[ i ];
@@ -7442,7 +7973,6 @@ jQuery.fx.speeds = {
 
 
 // Based off of the plugin by Clint Helfers, with permission.
-// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
 jQuery.fn.delay = function( time, type ) {
 	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
 	type = type || "fx";
@@ -7588,7 +8118,7 @@ boolHook = {
 	}
 };
 
-jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) {
 	var getter = attrHandle[ name ] || jQuery.find.attr;
 
 	attrHandle[ name ] = function( elem, name, isXML ) {
@@ -7667,8 +8197,7 @@ jQuery.extend( {
 				// Support: IE <=9 - 11 only
 				// elem.tabIndex doesn't always return the
 				// correct value when it hasn't been explicitly set
-				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
-				// Use proper attribute retrieval(#12072)
+				// Use proper attribute retrieval (trac-12072)
 				var tabindex = jQuery.find.attr( elem, "tabindex" );
 
 				if ( tabindex ) {
@@ -7749,7 +8278,7 @@ jQuery.each( [
 
 
 	// Strip and collapse whitespace according to HTML spec
-	// https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
+	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
 	function stripAndCollapse( value ) {
 		var tokens = value.match( rnothtmlwhite ) || [];
 		return tokens.join( " " );
@@ -7760,49 +8289,57 @@ function getClass( elem ) {
 	return elem.getAttribute && elem.getAttribute( "class" ) || "";
 }
 
+function classesToArray( value ) {
+	if ( Array.isArray( value ) ) {
+		return value;
+	}
+	if ( typeof value === "string" ) {
+		return value.match( rnothtmlwhite ) || [];
+	}
+	return [];
+}
+
 jQuery.fn.extend( {
 	addClass: function( value ) {
-		var classes, elem, cur, curValue, clazz, j, finalValue,
-			i = 0;
+		var classNames, cur, curValue, className, i, finalValue;
 
-		if ( jQuery.isFunction( value ) ) {
+		if ( isFunction( value ) ) {
 			return this.each( function( j ) {
 				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
 			} );
 		}
 
-		if ( typeof value === "string" && value ) {
-			classes = value.match( rnothtmlwhite ) || [];
+		classNames = classesToArray( value );
 
-			while ( ( elem = this[ i++ ] ) ) {
-				curValue = getClass( elem );
-				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+		if ( classNames.length ) {
+			return this.each( function() {
+				curValue = getClass( this );
+				cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
 
 				if ( cur ) {
-					j = 0;
-					while ( ( clazz = classes[ j++ ] ) ) {
-						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
-							cur += clazz + " ";
+					for ( i = 0; i < classNames.length; i++ ) {
+						className = classNames[ i ];
+						if ( cur.indexOf( " " + className + " " ) < 0 ) {
+							cur += className + " ";
 						}
 					}
 
 					// Only assign if different to avoid unneeded rendering.
 					finalValue = stripAndCollapse( cur );
 					if ( curValue !== finalValue ) {
-						elem.setAttribute( "class", finalValue );
+						this.setAttribute( "class", finalValue );
 					}
 				}
-			}
+			} );
 		}
 
 		return this;
 	},
 
 	removeClass: function( value ) {
-		var classes, elem, cur, curValue, clazz, j, finalValue,
-			i = 0;
+		var classNames, cur, curValue, className, i, finalValue;
 
-		if ( jQuery.isFunction( value ) ) {
+		if ( isFunction( value ) ) {
 			return this.each( function( j ) {
 				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
 			} );
@@ -7812,45 +8349,43 @@ jQuery.fn.extend( {
 			return this.attr( "class", "" );
 		}
 
-		if ( typeof value === "string" && value ) {
-			classes = value.match( rnothtmlwhite ) || [];
+		classNames = classesToArray( value );
 
-			while ( ( elem = this[ i++ ] ) ) {
-				curValue = getClass( elem );
+		if ( classNames.length ) {
+			return this.each( function() {
+				curValue = getClass( this );
 
 				// This expression is here for better compressibility (see addClass)
-				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+				cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
 
 				if ( cur ) {
-					j = 0;
-					while ( ( clazz = classes[ j++ ] ) ) {
+					for ( i = 0; i < classNames.length; i++ ) {
+						className = classNames[ i ];
 
 						// Remove *all* instances
-						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
-							cur = cur.replace( " " + clazz + " ", " " );
+						while ( cur.indexOf( " " + className + " " ) > -1 ) {
+							cur = cur.replace( " " + className + " ", " " );
 						}
 					}
 
 					// Only assign if different to avoid unneeded rendering.
 					finalValue = stripAndCollapse( cur );
 					if ( curValue !== finalValue ) {
-						elem.setAttribute( "class", finalValue );
+						this.setAttribute( "class", finalValue );
 					}
 				}
-			}
+			} );
 		}
 
 		return this;
 	},
 
 	toggleClass: function( value, stateVal ) {
-		var type = typeof value;
-
-		if ( typeof stateVal === "boolean" && type === "string" ) {
-			return stateVal ? this.addClass( value ) : this.removeClass( value );
-		}
+		var classNames, className, i, self,
+			type = typeof value,
+			isValidValue = type === "string" || Array.isArray( value );
 
-		if ( jQuery.isFunction( value ) ) {
+		if ( isFunction( value ) ) {
 			return this.each( function( i ) {
 				jQuery( this ).toggleClass(
 					value.call( this, i, getClass( this ), stateVal ),
@@ -7859,17 +8394,20 @@ jQuery.fn.extend( {
 			} );
 		}
 
-		return this.each( function() {
-			var className, i, self, classNames;
+		if ( typeof stateVal === "boolean" && isValidValue ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
 
-			if ( type === "string" ) {
+		classNames = classesToArray( value );
+
+		return this.each( function() {
+			if ( isValidValue ) {
 
 				// Toggle individual class names
-				i = 0;
 				self = jQuery( this );
-				classNames = value.match( rnothtmlwhite ) || [];
 
-				while ( ( className = classNames[ i++ ] ) ) {
+				for ( i = 0; i < classNames.length; i++ ) {
+					className = classNames[ i ];
 
 					// Check each className given, space separated list
 					if ( self.hasClass( className ) ) {
@@ -7895,8 +8433,8 @@ jQuery.fn.extend( {
 				if ( this.setAttribute ) {
 					this.setAttribute( "class",
 						className || value === false ?
-						"" :
-						dataPriv.get( this, "__className__" ) || ""
+							"" :
+							dataPriv.get( this, "__className__" ) || ""
 					);
 				}
 			}
@@ -7911,7 +8449,7 @@ jQuery.fn.extend( {
 		while ( ( elem = this[ i++ ] ) ) {
 			if ( elem.nodeType === 1 &&
 				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
-					return true;
+				return true;
 			}
 		}
 
@@ -7926,7 +8464,7 @@ var rreturn = /\r/g;
 
 jQuery.fn.extend( {
 	val: function( value ) {
-		var hooks, ret, isFunction,
+		var hooks, ret, valueIsFunction,
 			elem = this[ 0 ];
 
 		if ( !arguments.length ) {
@@ -7955,7 +8493,7 @@ jQuery.fn.extend( {
 			return;
 		}
 
-		isFunction = jQuery.isFunction( value );
+		valueIsFunction = isFunction( value );
 
 		return this.each( function( i ) {
 			var val;
@@ -7964,7 +8502,7 @@ jQuery.fn.extend( {
 				return;
 			}
 
-			if ( isFunction ) {
+			if ( valueIsFunction ) {
 				val = value.call( this, i, jQuery( this ).val() );
 			} else {
 				val = value;
@@ -8003,7 +8541,7 @@ jQuery.extend( {
 					val :
 
 					// Support: IE <=10 - 11 only
-					// option.text throws exceptions (#14686, #14858)
+					// option.text throws exceptions (trac-14686, trac-14858)
 					// Strip and collapse whitespace
 					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
 					stripAndCollapse( jQuery.text( elem ) );
@@ -8030,7 +8568,7 @@ jQuery.extend( {
 					option = options[ i ];
 
 					// Support: IE <=9 only
-					// IE8-9 doesn't update selected after form reset (#2551)
+					// IE8-9 doesn't update selected after form reset (trac-2551)
 					if ( ( option.selected || i === index ) &&
 
 							// Don't return options that are disabled or in a disabled optgroup
@@ -8106,18 +8644,24 @@ jQuery.each( [ "radio", "checkbox" ], function() {
 // Return jQuery for attributes-only inclusion
 
 
-var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
+support.focusin = "onfocusin" in window;
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	stopPropagationCallback = function( e ) {
+		e.stopPropagation();
+	};
 
 jQuery.extend( jQuery.event, {
 
 	trigger: function( event, data, elem, onlyHandlers ) {
 
-		var i, cur, tmp, bubbleType, ontype, handle, special,
+		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
 			eventPath = [ elem || document ],
 			type = hasOwn.call( event, "type" ) ? event.type : event,
 			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
 
-		cur = tmp = elem = elem || document;
+		cur = lastElement = tmp = elem = elem || document;
 
 		// Don't do events on text and comment nodes
 		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
@@ -8167,9 +8711,9 @@ jQuery.extend( jQuery.event, {
 			return;
 		}
 
-		// Determine event propagation path in advance, per W3C events spec (#9951)
-		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
-		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+		// Determine event propagation path in advance, per W3C events spec (trac-9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)
+		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
 
 			bubbleType = special.delegateType || type;
 			if ( !rfocusMorph.test( bubbleType + type ) ) {
@@ -8189,13 +8733,13 @@ jQuery.extend( jQuery.event, {
 		// Fire handlers on the event path
 		i = 0;
 		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
-
+			lastElement = cur;
 			event.type = i > 1 ?
 				bubbleType :
 				special.bindType || type;
 
 			// jQuery handler
-			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+			handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] &&
 				dataPriv.get( cur, "handle" );
 			if ( handle ) {
 				handle.apply( cur, data );
@@ -8220,8 +8764,8 @@ jQuery.extend( jQuery.event, {
 				acceptData( elem ) ) {
 
 				// Call a native DOM method on the target with the same name as the event.
-				// Don't do default actions on window, that's where global variables be (#6170)
-				if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+				// Don't do default actions on window, that's where global variables be (trac-6170)
+				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
 
 					// Don't re-trigger an onFOO event when we call its FOO() method
 					tmp = elem[ ontype ];
@@ -8232,7 +8776,17 @@ jQuery.extend( jQuery.event, {
 
 					// Prevent re-triggering of the same event, since we already bubbled it above
 					jQuery.event.triggered = type;
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.addEventListener( type, stopPropagationCallback );
+					}
+
 					elem[ type ]();
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.removeEventListener( type, stopPropagationCallback );
+					}
+
 					jQuery.event.triggered = undefined;
 
 					if ( tmp ) {
@@ -8278,31 +8832,6 @@ jQuery.fn.extend( {
 } );
 
 
-jQuery.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( i, name ) {
-
-	// Handle event binding
-	jQuery.fn[ name ] = function( data, fn ) {
-		return arguments.length > 0 ?
-			this.on( name, null, data, fn ) :
-			this.trigger( name );
-	};
-} );
-
-jQuery.fn.extend( {
-	hover: function( fnOver, fnOut ) {
-		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
-	}
-} );
-
-
-
-
-support.focusin = "onfocusin" in window;
-
-
 // Support: Firefox <=44
 // Firefox doesn't have focus(in | out) events
 // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
@@ -8321,7 +8850,10 @@ if ( !support.focusin ) {
 
 		jQuery.event.special[ fix ] = {
 			setup: function() {
-				var doc = this.ownerDocument || this,
+
+				// Handle: regular nodes (via `this.ownerDocument`), window
+				// (via `this.document`) & document (via `this`).
+				var doc = this.ownerDocument || this.document || this,
 					attaches = dataPriv.access( doc, fix );
 
 				if ( !attaches ) {
@@ -8330,7 +8862,7 @@ if ( !support.focusin ) {
 				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
 			},
 			teardown: function() {
-				var doc = this.ownerDocument || this,
+				var doc = this.ownerDocument || this.document || this,
 					attaches = dataPriv.access( doc, fix ) - 1;
 
 				if ( !attaches ) {
@@ -8346,7 +8878,7 @@ if ( !support.focusin ) {
 }
 var location = window.location;
 
-var nonce = jQuery.now();
+var nonce = { guid: Date.now() };
 
 var rquery = ( /\?/ );
 
@@ -8354,7 +8886,7 @@ var rquery = ( /\?/ );
 
 // Cross-browser xml parsing
 jQuery.parseXML = function( data ) {
-	var xml;
+	var xml, parserErrorElem;
 	if ( !data || typeof data !== "string" ) {
 		return null;
 	}
@@ -8363,12 +8895,17 @@ jQuery.parseXML = function( data ) {
 	// IE throws on parseFromString with invalid input.
 	try {
 		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
-	} catch ( e ) {
-		xml = undefined;
-	}
+	} catch ( e ) {}
 
-	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
-		jQuery.error( "Invalid XML: " + data );
+	parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
+	if ( !xml || parserErrorElem ) {
+		jQuery.error( "Invalid XML: " + (
+			parserErrorElem ?
+				jQuery.map( parserErrorElem.childNodes, function( el ) {
+					return el.textContent;
+				} ).join( "\n" ) :
+				data
+		) );
 	}
 	return xml;
 };
@@ -8404,7 +8941,7 @@ function buildParams( prefix, obj, traditional, add ) {
 			}
 		} );
 
-	} else if ( !traditional && jQuery.type( obj ) === "object" ) {
+	} else if ( !traditional && toType( obj ) === "object" ) {
 
 		// Serialize object item.
 		for ( name in obj ) {
@@ -8426,7 +8963,7 @@ jQuery.param = function( a, traditional ) {
 		add = function( key, valueOrFunction ) {
 
 			// If value is a function, invoke it and use its return value
-			var value = jQuery.isFunction( valueOrFunction ) ?
+			var value = isFunction( valueOrFunction ) ?
 				valueOrFunction() :
 				valueOrFunction;
 
@@ -8434,6 +8971,10 @@ jQuery.param = function( a, traditional ) {
 				encodeURIComponent( value == null ? "" : value );
 		};
 
+	if ( a == null ) {
+		return "";
+	}
+
 	// If an array was passed in, assume that it is an array of form elements.
 	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
 
@@ -8465,16 +9006,14 @@ jQuery.fn.extend( {
 			// Can add propHook for "elements" to filter or add form elements
 			var elements = jQuery.prop( this, "elements" );
 			return elements ? jQuery.makeArray( elements ) : this;
-		} )
-		.filter( function() {
+		} ).filter( function() {
 			var type = this.type;
 
 			// Use .is( ":disabled" ) so that fieldset[disabled] works
 			return this.name && !jQuery( this ).is( ":disabled" ) &&
 				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
 				( this.checked || !rcheckableType.test( type ) );
-		} )
-		.map( function( i, elem ) {
+		} ).map( function( _i, elem ) {
 			var val = jQuery( this ).val();
 
 			if ( val == null ) {
@@ -8499,7 +9038,7 @@ var
 	rantiCache = /([?&])_=[^&]*/,
 	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
 
-	// #7653, #8125, #8152: local protocol detection
+	// trac-7653, trac-8125, trac-8152: local protocol detection
 	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
 	rnoContent = /^(?:GET|HEAD)$/,
 	rprotocol = /^\/\//,
@@ -8522,12 +9061,13 @@ var
 	 */
 	transports = {},
 
-	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression
 	allTypes = "*/".concat( "*" ),
 
 	// Anchor tag for parsing the document origin
 	originAnchor = document.createElement( "a" );
-	originAnchor.href = location.href;
+
+originAnchor.href = location.href;
 
 // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
 function addToPrefiltersOrTransports( structure ) {
@@ -8544,7 +9084,7 @@ function addToPrefiltersOrTransports( structure ) {
 			i = 0,
 			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
 
-		if ( jQuery.isFunction( func ) ) {
+		if ( isFunction( func ) ) {
 
 			// For each dataType in the dataTypeExpression
 			while ( ( dataType = dataTypes[ i++ ] ) ) {
@@ -8592,7 +9132,7 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX
 
 // A special extend for ajax options
 // that takes "flat" options (not to be deep extended)
-// Fixes #9887
+// Fixes trac-9887
 function ajaxExtend( target, src ) {
 	var key, deep,
 		flatOptions = jQuery.ajaxSettings.flatOptions || {};
@@ -8908,8 +9448,8 @@ jQuery.extend( {
 			// Context for global events is callbackContext if it is a DOM node or jQuery collection
 			globalEventContext = s.context &&
 				( callbackContext.nodeType || callbackContext.jquery ) ?
-					jQuery( callbackContext ) :
-					jQuery.event,
+				jQuery( callbackContext ) :
+				jQuery.event,
 
 			// Deferreds
 			deferred = jQuery.Deferred(),
@@ -8936,12 +9476,14 @@ jQuery.extend( {
 						if ( !responseHeaders ) {
 							responseHeaders = {};
 							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
-								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+								responseHeaders[ match[ 1 ].toLowerCase() + " " ] =
+									( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] )
+										.concat( match[ 2 ] );
 							}
 						}
-						match = responseHeaders[ key.toLowerCase() ];
+						match = responseHeaders[ key.toLowerCase() + " " ];
 					}
-					return match == null ? null : match;
+					return match == null ? null : match.join( ", " );
 				},
 
 				// Raw string
@@ -9001,12 +9543,12 @@ jQuery.extend( {
 		deferred.promise( jqXHR );
 
 		// Add protocol if not provided (prefilters might expect it)
-		// Handle falsy url in the settings object (#10093: consistency with old signature)
+		// Handle falsy url in the settings object (trac-10093: consistency with old signature)
 		// We also use the url parameter if available
 		s.url = ( ( url || s.url || location.href ) + "" )
 			.replace( rprotocol, location.protocol + "//" );
 
-		// Alias method option to type as per ticket #12004
+		// Alias method option to type as per ticket trac-12004
 		s.type = options.method || options.type || s.method || s.type;
 
 		// Extract dataTypes list
@@ -9016,7 +9558,7 @@ jQuery.extend( {
 		if ( s.crossDomain == null ) {
 			urlAnchor = document.createElement( "a" );
 
-			// Support: IE <=8 - 11, Edge 12 - 13
+			// Support: IE <=8 - 11, Edge 12 - 15
 			// IE throws exception on accessing the href property if url is malformed,
 			// e.g. http://example.com:80x/
 			try {
@@ -9049,7 +9591,7 @@ jQuery.extend( {
 		}
 
 		// We can fire global events as of now if asked to
-		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)
 		fireGlobals = jQuery.event && s.global;
 
 		// Watch for a new set of requests
@@ -9074,18 +9616,19 @@ jQuery.extend( {
 			// Remember the hash so we can put it back
 			uncached = s.url.slice( cacheURL.length );
 
-			// If data is available, append data to url
-			if ( s.data ) {
+			// If data is available and should be processed, append data to url
+			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
 				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
 
-				// #9682: remove data so that it's not used in an eventual retry
+				// trac-9682: remove data so that it's not used in an eventual retry
 				delete s.data;
 			}
 
 			// Add or update anti-cache param if needed
 			if ( s.cache === false ) {
 				cacheURL = cacheURL.replace( rantiCache, "$1" );
-				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) +
+					uncached;
 			}
 
 			// Put hash and anti-cache on the URL that will be requested (gh-1732)
@@ -9218,6 +9761,13 @@ jQuery.extend( {
 				response = ajaxHandleResponses( s, jqXHR, responses );
 			}
 
+			// Use a noop converter for missing script but not if jsonp
+			if ( !isSuccess &&
+				jQuery.inArray( "script", s.dataTypes ) > -1 &&
+				jQuery.inArray( "json", s.dataTypes ) < 0 ) {
+				s.converters[ "text script" ] = function() {};
+			}
+
 			// Convert no matter what (that way responseXXX fields are always set)
 			response = ajaxConvert( s, response, jqXHR, isSuccess );
 
@@ -9308,11 +9858,11 @@ jQuery.extend( {
 	}
 } );
 
-jQuery.each( [ "get", "post" ], function( i, method ) {
+jQuery.each( [ "get", "post" ], function( _i, method ) {
 	jQuery[ method ] = function( url, data, callback, type ) {
 
 		// Shift arguments if data argument was omitted
-		if ( jQuery.isFunction( data ) ) {
+		if ( isFunction( data ) ) {
 			type = type || callback;
 			callback = data;
 			data = undefined;
@@ -9329,18 +9879,36 @@ jQuery.each( [ "get", "post" ], function( i, method ) {
 	};
 } );
 
+jQuery.ajaxPrefilter( function( s ) {
+	var i;
+	for ( i in s.headers ) {
+		if ( i.toLowerCase() === "content-type" ) {
+			s.contentType = s.headers[ i ] || "";
+		}
+	}
+} );
+
 
-jQuery._evalUrl = function( url ) {
+jQuery._evalUrl = function( url, options, doc ) {
 	return jQuery.ajax( {
 		url: url,
 
-		// Make this explicit, since user can override this through ajaxSetup (#11264)
+		// Make this explicit, since user can override this through ajaxSetup (trac-11264)
 		type: "GET",
 		dataType: "script",
 		cache: true,
 		async: false,
 		global: false,
-		"throws": true
+
+		// Only evaluate the response if it is successful (gh-4126)
+		// dataFilter is not invoked for failure responses, so using it instead
+		// of the default converter is kludgy but it works.
+		converters: {
+			"text script": function() {}
+		},
+		dataFilter: function( response ) {
+			jQuery.globalEval( response, options, doc );
+		}
 	} );
 };
 
@@ -9350,7 +9918,7 @@ jQuery.fn.extend( {
 		var wrap;
 
 		if ( this[ 0 ] ) {
-			if ( jQuery.isFunction( html ) ) {
+			if ( isFunction( html ) ) {
 				html = html.call( this[ 0 ] );
 			}
 
@@ -9376,7 +9944,7 @@ jQuery.fn.extend( {
 	},
 
 	wrapInner: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
+		if ( isFunction( html ) ) {
 			return this.each( function( i ) {
 				jQuery( this ).wrapInner( html.call( this, i ) );
 			} );
@@ -9396,10 +9964,10 @@ jQuery.fn.extend( {
 	},
 
 	wrap: function( html ) {
-		var isFunction = jQuery.isFunction( html );
+		var htmlIsFunction = isFunction( html );
 
 		return this.each( function( i ) {
-			jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
+			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
 		} );
 	},
 
@@ -9434,7 +10002,7 @@ var xhrSuccessStatus = {
 		0: 200,
 
 		// Support: IE <=9 only
-		// #1450: sometimes IE returns 1223 when it should be 204
+		// trac-1450: sometimes IE returns 1223 when it should be 204
 		1223: 204
 	},
 	xhrSupported = jQuery.ajaxSettings.xhr();
@@ -9491,7 +10059,8 @@ jQuery.ajaxTransport( function( options ) {
 					return function() {
 						if ( callback ) {
 							callback = errorCallback = xhr.onload =
-								xhr.onerror = xhr.onabort = xhr.onreadystatechange = null;
+								xhr.onerror = xhr.onabort = xhr.ontimeout =
+									xhr.onreadystatechange = null;
 
 							if ( type === "abort" ) {
 								xhr.abort();
@@ -9505,7 +10074,7 @@ jQuery.ajaxTransport( function( options ) {
 								} else {
 									complete(
 
-										// File: protocol always yields status 0; see #8605, #14207
+										// File: protocol always yields status 0; see trac-8605, trac-14207
 										xhr.status,
 										xhr.statusText
 									);
@@ -9531,7 +10100,7 @@ jQuery.ajaxTransport( function( options ) {
 
 				// Listen to events
 				xhr.onload = callback();
-				errorCallback = xhr.onerror = callback( "error" );
+				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );
 
 				// Support: IE 9 only
 				// Use onreadystatechange to replace onabort
@@ -9566,7 +10135,7 @@ jQuery.ajaxTransport( function( options ) {
 					xhr.send( options.hasContent && options.data || null );
 				} catch ( e ) {
 
-					// #14683: Only rethrow if this hasn't been notified as an error yet
+					// trac-14683: Only rethrow if this hasn't been notified as an error yet
 					if ( callback ) {
 						throw e;
 					}
@@ -9622,24 +10191,21 @@ jQuery.ajaxPrefilter( "script", function( s ) {
 // Bind script tag hack transport
 jQuery.ajaxTransport( "script", function( s ) {
 
-	// This transport only deals with cross domain requests
-	if ( s.crossDomain ) {
+	// This transport only deals with cross domain or forced-by-attrs requests
+	if ( s.crossDomain || s.scriptAttrs ) {
 		var script, callback;
 		return {
 			send: function( _, complete ) {
-				script = jQuery( "<script>" ).prop( {
-					charset: s.scriptCharset,
-					src: s.url
-				} ).on(
-					"load error",
-					callback = function( evt ) {
+				script = jQuery( "<script>" )
+					.attr( s.scriptAttrs || {} )
+					.prop( { charset: s.scriptCharset, src: s.url } )
+					.on( "load error", callback = function( evt ) {
 						script.remove();
 						callback = null;
 						if ( evt ) {
 							complete( evt.type === "error" ? 404 : 200, evt.type );
 						}
-					}
-				);
+					} );
 
 				// Use native DOM manipulation to avoid our domManip AJAX trickery
 				document.head.appendChild( script[ 0 ] );
@@ -9663,7 +10229,7 @@ var oldCallbacks = [],
 jQuery.ajaxSetup( {
 	jsonp: "callback",
 	jsonpCallback: function() {
-		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) );
 		this[ callback ] = true;
 		return callback;
 	}
@@ -9685,7 +10251,7 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
 	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
 
 		// Get callback name, remembering preexisting value associated with it
-		callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
+		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
 			s.jsonpCallback() :
 			s.jsonpCallback;
 
@@ -9736,7 +10302,7 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
 			}
 
 			// Call if it was a function and we have a response
-			if ( responseContainer && jQuery.isFunction( overwritten ) ) {
+			if ( responseContainer && isFunction( overwritten ) ) {
 				overwritten( responseContainer[ 0 ] );
 			}
 
@@ -9828,7 +10394,7 @@ jQuery.fn.load = function( url, params, callback ) {
 	}
 
 	// If it's a function
-	if ( jQuery.isFunction( params ) ) {
+	if ( isFunction( params ) ) {
 
 		// We assume that it's the callback
 		callback = params;
@@ -9880,23 +10446,6 @@ jQuery.fn.load = function( url, params, callback ) {
 
 
 
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( [
-	"ajaxStart",
-	"ajaxStop",
-	"ajaxComplete",
-	"ajaxError",
-	"ajaxSuccess",
-	"ajaxSend"
-], function( i, type ) {
-	jQuery.fn[ type ] = function( fn ) {
-		return this.on( type, fn );
-	};
-} );
-
-
-
-
 jQuery.expr.pseudos.animated = function( elem ) {
 	return jQuery.grep( jQuery.timers, function( fn ) {
 		return elem === fn.elem;
@@ -9936,7 +10485,7 @@ jQuery.offset = {
 			curLeft = parseFloat( curCSSLeft ) || 0;
 		}
 
-		if ( jQuery.isFunction( options ) ) {
+		if ( isFunction( options ) ) {
 
 			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
 			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
@@ -9959,6 +10508,8 @@ jQuery.offset = {
 };
 
 jQuery.fn.extend( {
+
+	// offset() relates an element's border box to the document origin
 	offset: function( options ) {
 
 		// Preserve chaining for setter
@@ -9970,7 +10521,7 @@ jQuery.fn.extend( {
 				} );
 		}
 
-		var doc, docElem, rect, win,
+		var rect, win,
 			elem = this[ 0 ];
 
 		if ( !elem ) {
@@ -9985,50 +10536,52 @@ jQuery.fn.extend( {
 			return { top: 0, left: 0 };
 		}
 
+		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
 		rect = elem.getBoundingClientRect();
-
-		doc = elem.ownerDocument;
-		docElem = doc.documentElement;
-		win = doc.defaultView;
-
+		win = elem.ownerDocument.defaultView;
 		return {
-			top: rect.top + win.pageYOffset - docElem.clientTop,
-			left: rect.left + win.pageXOffset - docElem.clientLeft
+			top: rect.top + win.pageYOffset,
+			left: rect.left + win.pageXOffset
 		};
 	},
 
+	// position() relates an element's margin box to its offset parent's padding box
+	// This corresponds to the behavior of CSS absolute positioning
 	position: function() {
 		if ( !this[ 0 ] ) {
 			return;
 		}
 
-		var offsetParent, offset,
+		var offsetParent, offset, doc,
 			elem = this[ 0 ],
 			parentOffset = { top: 0, left: 0 };
 
-		// Fixed elements are offset from window (parentOffset = {top:0, left: 0},
-		// because it is its only offset parent
+		// position:fixed elements are offset from the viewport, which itself always has zero offset
 		if ( jQuery.css( elem, "position" ) === "fixed" ) {
 
-			// Assume getBoundingClientRect is there when computed position is fixed
+			// Assume position:fixed implies availability of getBoundingClientRect
 			offset = elem.getBoundingClientRect();
 
 		} else {
+			offset = this.offset();
 
-			// Get *real* offsetParent
-			offsetParent = this.offsetParent();
+			// Account for the *real* offset parent, which can be the document or its root element
+			// when a statically positioned element is identified
+			doc = elem.ownerDocument;
+			offsetParent = elem.offsetParent || doc.documentElement;
+			while ( offsetParent &&
+				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
+				jQuery.css( offsetParent, "position" ) === "static" ) {
 
-			// Get correct offsets
-			offset = this.offset();
-			if ( !nodeName( offsetParent[ 0 ], "html" ) ) {
-				parentOffset = offsetParent.offset();
+				offsetParent = offsetParent.parentNode;
 			}
+			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
 
-			// Add offsetParent borders
-			parentOffset = {
-				top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
-				left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
-			};
+				// Incorporate borders into its offset, since they are outside its content origin
+				parentOffset = jQuery( offsetParent ).offset();
+				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
+				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
+			}
 		}
 
 		// Subtract parent offsets and element margins
@@ -10070,7 +10623,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(
 
 			// Coalesce documents and windows
 			var win;
-			if ( jQuery.isWindow( elem ) ) {
+			if ( isWindow( elem ) ) {
 				win = elem;
 			} else if ( elem.nodeType === 9 ) {
 				win = elem.defaultView;
@@ -10099,7 +10652,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(
 // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
 // getComputedStyle returns percent when specified for top/left/bottom/right;
 // rather than make the css module depend on the offset module, just check for it here
-jQuery.each( [ "top", "left" ], function( i, prop ) {
+jQuery.each( [ "top", "left" ], function( _i, prop ) {
 	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
 		function( elem, computed ) {
 			if ( computed ) {
@@ -10117,8 +10670,11 @@ jQuery.each( [ "top", "left" ], function( i, prop ) {
 
 // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
 jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
-	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
-		function( defaultExtra, funcName ) {
+	jQuery.each( {
+		padding: "inner" + name,
+		content: type,
+		"": "outer" + name
+	}, function( defaultExtra, funcName ) {
 
 		// Margin is only for outerHeight, outerWidth
 		jQuery.fn[ funcName ] = function( margin, value ) {
@@ -10128,7 +10684,7 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
 			return access( this, function( elem, type, value ) {
 				var doc;
 
-				if ( jQuery.isWindow( elem ) ) {
+				if ( isWindow( elem ) ) {
 
 					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
 					return funcName.indexOf( "outer" ) === 0 ?
@@ -10162,6 +10718,22 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
 } );
 
 
+jQuery.each( [
+	"ajaxStart",
+	"ajaxStop",
+	"ajaxComplete",
+	"ajaxError",
+	"ajaxSuccess",
+	"ajaxSend"
+], function( _i, type ) {
+	jQuery.fn[ type ] = function( fn ) {
+		return this.on( type, fn );
+	};
+} );
+
+
+
+
 jQuery.fn.extend( {
 
 	bind: function( types, data, fn ) {
@@ -10180,9 +10752,68 @@ jQuery.fn.extend( {
 		return arguments.length === 1 ?
 			this.off( selector, "**" ) :
 			this.off( types, selector || "**", fn );
+	},
+
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
 	}
 } );
 
+jQuery.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( _i, name ) {
+
+		// Handle event binding
+		jQuery.fn[ name ] = function( data, fn ) {
+			return arguments.length > 0 ?
+				this.on( name, null, data, fn ) :
+				this.trigger( name );
+		};
+	}
+);
+
+
+
+
+// Support: Android <=4.0 only
+// Make sure we trim BOM and NBSP
+// Require that the "whitespace run" starts from a non-whitespace
+// to avoid O(N^2) behavior when the engine would try matching "\s+$" at each space position.
+var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
+
+// Bind a function to a context, optionally partially applying any
+// arguments.
+// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
+// However, it is not slated for removal any time soon
+jQuery.proxy = function( fn, context ) {
+	var tmp, args, proxy;
+
+	if ( typeof context === "string" ) {
+		tmp = fn[ context ];
+		context = fn;
+		fn = tmp;
+	}
+
+	// Quick check to determine if target is callable, in the spec
+	// this throws a TypeError, but we will just return undefined.
+	if ( !isFunction( fn ) ) {
+		return undefined;
+	}
+
+	// Simulated bind
+	args = slice.call( arguments, 2 );
+	proxy = function() {
+		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+	};
+
+	// Set the guid of unique handler to the same of original handler, so it can be removed
+	proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+	return proxy;
+};
+
 jQuery.holdReady = function( hold ) {
 	if ( hold ) {
 		jQuery.readyWait++;
@@ -10193,7 +10824,32 @@ jQuery.holdReady = function( hold ) {
 jQuery.isArray = Array.isArray;
 jQuery.parseJSON = JSON.parse;
 jQuery.nodeName = nodeName;
+jQuery.isFunction = isFunction;
+jQuery.isWindow = isWindow;
+jQuery.camelCase = camelCase;
+jQuery.type = toType;
 
+jQuery.now = Date.now;
+
+jQuery.isNumeric = function( obj ) {
+
+	// As of jQuery 3.0, isNumeric is limited to
+	// strings and numbers (primitives or objects)
+	// that can be coerced to finite numbers (gh-2662)
+	var type = jQuery.type( obj );
+	return ( type === "number" || type === "string" ) &&
+
+		// parseFloat NaNs numeric-cast false positives ("")
+		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+		// subtraction forces infinities to NaN
+		!isNaN( obj - parseFloat( obj ) );
+};
+
+jQuery.trim = function( text ) {
+	return text == null ?
+		"" :
+		( text + "" ).replace( rtrim, "$1" );
+};
 
 
 
@@ -10240,9 +10896,9 @@ jQuery.noConflict = function( deep ) {
 };
 
 // Expose jQuery and $ identifiers, even in AMD
-// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
-// and CommonJS for browser emulators (#13566)
-if ( !noGlobal ) {
+// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (trac-13566)
+if ( typeof noGlobal === "undefined" ) {
 	window.jQuery = window.$ = jQuery;
 }
 
diff --git a/vendor/jquery/3.6.1/jquery.min.js b/vendor/jquery/3.6.1/jquery.min.js
new file mode 100644
index 0000000..2c69bc9
--- /dev/null
+++ b/vendor/jquery/3.6.1/jquery.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=y.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:v}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,y,s,c,v,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),v(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace($," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,y){var v="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===y?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=v!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(v){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=y)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ye(function(){return[0]}),last:ye(function(e,t){return[t-1]}),eq:ye(function(e,t,n){return[n<0?n+t:n]}),even:ye(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ye(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ye(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ye(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,y,v,e){return y&&!y[S]&&(y=Ce(y)),v&&!v[S]&&(v=Ce(v,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?v||(e?d:l||y)?[]:t:f;if(g&&g(f,p,n,r),y){i=Te(p,u),y(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(v||d){if(v){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);v(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=v?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),v?v(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,y,v,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(y=o,m=0<(v=i).length,x=0<y.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=y[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=v[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+v.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ve(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ve(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function $(){E.removeEventListener("DOMContentLoaded",$),C.removeEventListener("load",$),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",$),C.addEventListener("load",$));var B=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)B(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):B(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",v.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,v.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=y.events)||(u=y.events=Object.create(null)),(a=y.handle)||(a=y.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.hasData(e)&&Y.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||S.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(t,e){S.event.special[t]={setup:function(){return Se(this,t,Ce),!1},trigger:function(){return Se(this,t),!0},_default:function(e){return Y.get(e.target,t)},delegateType:e}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!v.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ye(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ye(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ye(r)),r.parentNode&&(n&&ie(r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(v.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ye(c),r=0,i=(o=ye(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ye(e),a=a||ye(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ye(c,"script")).length&&ve(a,!f&&ye(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return B(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return B(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ye(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=/^--/,Me=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Ie=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},We=new RegExp(ne.join("|"),"i"),Fe="[\\x20\\t\\r\\n\\f]",$e=new RegExp("^"+Fe+"+|((?:^|[^\\\\])(?:\\\\.)*)"+Fe+"+$","g");function Be(e,t,n){var r,i,o,a,s=Re.test(t),u=e.style;return(n=n||Me(e))&&(a=n.getPropertyValue(t)||n[t],s&&(a=a.replace($e,"$1")),""!==a||ie(e)||(a=S.style(e,t)),!v.pixelBoxStyles()&&Pe.test(a)&&We.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(v,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var ze=["Webkit","Moz","ms"],Ue=E.createElement("div").style,Xe={};function Ve(e){var t=S.cssProps[e]||Xe[e];return t||(e in Ue?e:Xe[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=ze.length;while(n--)if((e=ze[n]+t)in Ue)return e}(e)||e)}var Ge=/^(none|table(?!-c[ea]).+)/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Me(e),i=(!v.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!v.boxSizingReliable()&&i||!v.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{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},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Re.test(t),l=e.style;if(u||(t=Ve(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Re.test(t)||(t=Ve(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ge.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):Ie(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Me(e),o=!v.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Je(0,t,s)}}}),S.cssHooks.marginLeft=_e(v.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-Ie(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Je)}),S.fn.extend({css:function(e,t){return B(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Me(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[Ve(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=et.prototype.init,S.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,S.fx.interval),S.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(y?"hidden"in y&&(g=y.hidden):y=Y.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ct(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=ft(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),S.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),tt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){nt||(nt=!0,st())},S.fx.stop=function(){nt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=E.createElement("input"),it=E.createElement("select").appendChild(E.createElement("option")),rt.type="checkbox",v.checkOn=""!==rt.value,v.optSelected=it.selected,(rt=E.createElement("input")).value="t",rt.type="radio",v.radioValue="t"===rt.value;var pt,dt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return B(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!v.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||S.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function yt(e){return(e.match(P)||[]).join(" ")}function vt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return B(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),v.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){S(this).addClass(t.call(this,e,vt(this)))}):(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=yt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){S(this).removeClass(t.call(this,e,vt(this)))}):arguments.length?(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=yt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return m(t)?this.each(function(e){S(this).toggleClass(t.call(this,e,vt(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=mt(t),this.each(function(){if(s)for(o=S(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=vt(this))&&Y.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":Y.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+yt(vt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:yt(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},v.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),v.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=y.call(e,"type")?e.type:e,h=y.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),v.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},Et=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var St=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function jt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||St.test(n)?i(n,t):jt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)jt(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var Dt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=E.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function $t(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Bt(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Wt.href=Tt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Bt(Bt(e,S.ajaxSettings),t):Bt(S.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,y=S.ajaxSetup({},t),v=y.context||y,m=y.context&&(v.nodeType||v.jquery)?S(v):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=y.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(y.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),y.url=((e||y.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),y.type=t.method||t.type||y.method||y.type,y.dataTypes=(y.dataType||"*").toLowerCase().match(P)||[""],null==y.crossDomain){r=E.createElement("a");try{r.href=y.url,r.href=r.href,y.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){y.crossDomain=!0}}if(y.data&&y.processData&&"string"!=typeof y.data&&(y.data=S.param(y.data,y.traditional)),$t(Rt,y,t,T),h)return T;for(i in(g=S.event&&y.global)&&0==S.active++&&S.event.trigger("ajaxStart"),y.type=y.type.toUpperCase(),y.hasContent=!Ot.test(y.type),f=y.url.replace(qt,""),y.hasContent?y.data&&y.processData&&0===(y.contentType||"").indexOf("application/x-www-form-urlencoded")&&(y.data=y.data.replace(Dt,"+")):(o=y.url.slice(f.length),y.data&&(y.processData||"string"==typeof y.data)&&(f+=(Et.test(f)?"&":"?")+y.data,delete y.data),!1===y.cache&&(f=f.replace(Lt,"$1"),o=(Et.test(f)?"&":"?")+"_="+Ct.guid+++o),y.url=f+o),y.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(y.data&&y.hasContent&&!1!==y.contentType||t.contentType)&&T.setRequestHeader("Content-Type",y.contentType),T.setRequestHeader("Accept",y.dataTypes[0]&&y.accepts[y.dataTypes[0]]?y.accepts[y.dataTypes[0]]+("*"!==y.dataTypes[0]?", "+It+"; q=0.01":""):y.accepts["*"]),y.headers)T.setRequestHeader(i,y.headers[i]);if(y.beforeSend&&(!1===y.beforeSend.call(v,T,y)||h))return T.abort();if(u="abort",b.add(y.complete),T.done(y.success),T.fail(y.error),c=$t(Mt,y,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,y]),h)return T;y.async&&0<y.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},y.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(y,T,n)),!i&&-1<S.inArray("script",y.dataTypes)&&S.inArray("json",y.dataTypes)<0&&(y.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(y,s,T,i),i?(y.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===y.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(v,[o,l,T]):x.rejectWith(v,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,y,i?o:a]),b.fireWith(v,[T,l]),g&&(m.trigger("ajaxComplete",[T,y]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=S.ajaxSettings.xhr();v.cors=!!zt&&"withCredentials"in zt,v.ajax=zt=!!zt,S.ajaxTransport(function(i){var o,a;if(v.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=yt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),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,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Gt,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Yt=C.jQuery,Qt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Qt),e&&C.jQuery===S&&(C.jQuery=Yt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
diff --git a/vendor/jquery/3.6.1/jquery.min.map b/vendor/jquery/3.6.1/jquery.min.map
new file mode 100644
index 0000000..4fe17c8
--- /dev/null
+++ b/vendor/jquery/3.6.1/jquery.min.map
@@ -0,0 +1 @@
+{"version":3,"sources":["jquery.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","getProto","Object","getPrototypeOf","slice","flat","array","call","concat","apply","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","support","isFunction","obj","nodeType","item","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","i","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","jQuery","selector","context","fn","init","isArrayLike","length","prototype","jquery","constructor","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","name","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","value","guid","Symbol","iterator","split","_i","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","testContext","scope","toSelector","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","_matchIndexes","lt","gt","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","targets","l","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","object","_","flag","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","showHide","show","values","body","hide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","create","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","rcustomProp","getStyles","opener","getComputedStyle","swap","old","rboxStyle","rtrimCSS","curCSS","computed","width","minWidth","maxWidth","isCustomProp","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","zoom","origName","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","opt","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","bind","complete","timer","anim","*","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","for","class","addClass","classNames","curValue","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","text script","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","trim","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery.min.js"}
\ No newline at end of file
diff --git a/vendor/jquery/3.2.1/jquery.slim.js b/vendor/jquery/3.6.1/jquery.slim.js
similarity index 75%
rename from vendor/jquery/3.2.1/jquery.slim.js
rename to vendor/jquery/3.6.1/jquery.slim.js
index 6cdf1ee..91512c9 100644
--- a/vendor/jquery/3.2.1/jquery.slim.js
+++ b/vendor/jquery/3.6.1/jquery.slim.js
@@ -1,15 +1,15 @@
 /*!
- * jQuery JavaScript Library v3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector
+ * jQuery JavaScript Library v3.6.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/Tween,-effects/animatedSelector
  * https://jquery.com/
  *
  * Includes Sizzle.js
  * https://sizzlejs.com/
  *
- * Copyright JS Foundation and other contributors
+ * Copyright OpenJS Foundation and other contributors
  * Released under the MIT license
  * https://jquery.org/license
  *
- * Date: 2017-03-20T19:00Z
+ * Date: 2022-08-26T17:52Z
  */
 ( function( global, factory ) {
 
@@ -23,7 +23,7 @@
 		// (such as Node.js), expose a factory as module.exports.
 		// This accentuates the need for the creation of a real `window`.
 		// e.g. var jQuery = require("jquery")(window);
-		// See ticket #14549 for more info.
+		// See ticket trac-14549 for more info.
 		module.exports = global.document ?
 			factory( global, true ) :
 			function( w ) {
@@ -47,13 +47,16 @@
 
 var arr = [];
 
-var document = window.document;
-
 var getProto = Object.getPrototypeOf;
 
 var slice = arr.slice;
 
-var concat = arr.concat;
+var flat = arr.flat ? function( array ) {
+	return arr.flat.call( array );
+} : function( array ) {
+	return arr.concat.apply( [], array );
+};
+
 
 var push = arr.push;
 
@@ -71,16 +74,76 @@ var ObjectFunctionString = fnToString.call( Object );
 
 var support = {};
 
+var isFunction = function isFunction( obj ) {
+
+		// Support: Chrome <=57, Firefox <=52
+		// In some browsers, typeof returns "function" for HTML <object> elements
+		// (i.e., `typeof document.createElement( "object" ) === "function"`).
+		// We don't want to classify *any* DOM node as a function.
+		// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5
+		// Plus for old WebKit, typeof returns "function" for HTML collections
+		// (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756)
+		return typeof obj === "function" && typeof obj.nodeType !== "number" &&
+			typeof obj.item !== "function";
+	};
+
+
+var isWindow = function isWindow( obj ) {
+		return obj != null && obj === obj.window;
+	};
+
+
+var document = window.document;
+
 
 
-	function DOMEval( code, doc ) {
+	var preservedScriptAttributes = {
+		type: true,
+		src: true,
+		nonce: true,
+		noModule: true
+	};
+
+	function DOMEval( code, node, doc ) {
 		doc = doc || document;
 
-		var script = doc.createElement( "script" );
+		var i, val,
+			script = doc.createElement( "script" );
 
 		script.text = code;
+		if ( node ) {
+			for ( i in preservedScriptAttributes ) {
+
+				// Support: Firefox 64+, Edge 18+
+				// Some browsers don't support the "nonce" property on scripts.
+				// On the other hand, just using `getAttribute` is not enough as
+				// the `nonce` attribute is reset to an empty string whenever it
+				// becomes browsing-context connected.
+				// See https://github.com/whatwg/html/issues/2369
+				// See https://html.spec.whatwg.org/#nonce-attributes
+				// The `node.getAttribute` check was added for the sake of
+				// `jQuery.globalEval` so that it can fake a nonce-containing node
+				// via an object.
+				val = node[ i ] || node.getAttribute && node.getAttribute( i );
+				if ( val ) {
+					script.setAttribute( i, val );
+				}
+			}
+		}
 		doc.head.appendChild( script ).parentNode.removeChild( script );
 	}
+
+
+function toType( obj ) {
+	if ( obj == null ) {
+		return obj + "";
+	}
+
+	// Support: Android <=2.3 only (functionish RegExp)
+	return typeof obj === "object" || typeof obj === "function" ?
+		class2type[ toString.call( obj ) ] || "object" :
+		typeof obj;
+}
 /* global Symbol */
 // Defining this global in .eslintrc.json would create a danger of using the global
 // unguarded in another place, it seems safer to define global only for this module
@@ -88,7 +151,7 @@ var support = {};
 
 
 var
-	version = "3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",
+	version = "3.6.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/Tween,-effects/animatedSelector",
 
 	// Define a local copy of jQuery
 	jQuery = function( selector, context ) {
@@ -96,19 +159,6 @@ var
 		// The jQuery object is actually just the init constructor 'enhanced'
 		// Need init if jQuery is called (just allow error to be thrown if not included)
 		return new jQuery.fn.init( selector, context );
-	},
-
-	// Support: Android <=4.0 only
-	// Make sure we trim BOM and NBSP
-	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
-
-	// Matches dashed string for camelizing
-	rmsPrefix = /^-ms-/,
-	rdashAlpha = /-([a-z])/g,
-
-	// Used by jQuery.camelCase as callback to replace()
-	fcamelCase = function( all, letter ) {
-		return letter.toUpperCase();
 	};
 
 jQuery.fn = jQuery.prototype = {
@@ -175,6 +225,18 @@ jQuery.fn = jQuery.prototype = {
 		return this.eq( -1 );
 	},
 
+	even: function() {
+		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
+			return ( i + 1 ) % 2;
+		} ) );
+	},
+
+	odd: function() {
+		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
+			return i % 2;
+		} ) );
+	},
+
 	eq: function( i ) {
 		var len = this.length,
 			j = +i + ( i < 0 ? len : 0 );
@@ -209,7 +271,7 @@ jQuery.extend = jQuery.fn.extend = function() {
 	}
 
 	// Handle case when target is a string or something (possible in deep copy)
-	if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+	if ( typeof target !== "object" && !isFunction( target ) ) {
 		target = {};
 	}
 
@@ -226,25 +288,28 @@ jQuery.extend = jQuery.fn.extend = function() {
 
 			// Extend the base object
 			for ( name in options ) {
-				src = target[ name ];
 				copy = options[ name ];
 
+				// Prevent Object.prototype pollution
 				// Prevent never-ending loop
-				if ( target === copy ) {
+				if ( name === "__proto__" || target === copy ) {
 					continue;
 				}
 
 				// Recurse if we're merging plain objects or arrays
 				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
 					( copyIsArray = Array.isArray( copy ) ) ) ) {
+					src = target[ name ];
 
-					if ( copyIsArray ) {
-						copyIsArray = false;
-						clone = src && Array.isArray( src ) ? src : [];
-
+					// Ensure proper type for the source value
+					if ( copyIsArray && !Array.isArray( src ) ) {
+						clone = [];
+					} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
+						clone = {};
 					} else {
-						clone = src && jQuery.isPlainObject( src ) ? src : {};
+						clone = src;
 					}
+					copyIsArray = false;
 
 					// Never move original objects, clone them
 					target[ name ] = jQuery.extend( deep, clone, copy );
@@ -275,28 +340,6 @@ jQuery.extend( {
 
 	noop: function() {},
 
-	isFunction: function( obj ) {
-		return jQuery.type( obj ) === "function";
-	},
-
-	isWindow: function( obj ) {
-		return obj != null && obj === obj.window;
-	},
-
-	isNumeric: function( obj ) {
-
-		// As of jQuery 3.0, isNumeric is limited to
-		// strings and numbers (primitives or objects)
-		// that can be coerced to finite numbers (gh-2662)
-		var type = jQuery.type( obj );
-		return ( type === "number" || type === "string" ) &&
-
-			// parseFloat NaNs numeric-cast false positives ("")
-			// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
-			// subtraction forces infinities to NaN
-			!isNaN( obj - parseFloat( obj ) );
-	},
-
 	isPlainObject: function( obj ) {
 		var proto, Ctor;
 
@@ -319,9 +362,6 @@ jQuery.extend( {
 	},
 
 	isEmptyObject: function( obj ) {
-
-		/* eslint-disable no-unused-vars */
-		// See https://github.com/eslint/eslint/issues/6125
 		var name;
 
 		for ( name in obj ) {
@@ -330,27 +370,10 @@ jQuery.extend( {
 		return true;
 	},
 
-	type: function( obj ) {
-		if ( obj == null ) {
-			return obj + "";
-		}
-
-		// Support: Android <=2.3 only (functionish RegExp)
-		return typeof obj === "object" || typeof obj === "function" ?
-			class2type[ toString.call( obj ) ] || "object" :
-			typeof obj;
-	},
-
-	// Evaluates a script in a global context
-	globalEval: function( code ) {
-		DOMEval( code );
-	},
-
-	// Convert dashed to camelCase; used by the css and data modules
-	// Support: IE <=9 - 11, Edge 12 - 13
-	// Microsoft forgot to hump their vendor prefix (#9572)
-	camelCase: function( string ) {
-		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+	// Evaluates a script in a provided context; falls back to the global one
+	// if not specified.
+	globalEval: function( code, options, doc ) {
+		DOMEval( code, { nonce: options && options.nonce }, doc );
 	},
 
 	each: function( obj, callback ) {
@@ -374,13 +397,6 @@ jQuery.extend( {
 		return obj;
 	},
 
-	// Support: Android <=4.0 only
-	trim: function( text ) {
-		return text == null ?
-			"" :
-			( text + "" ).replace( rtrim, "" );
-	},
-
 	// results is for internal usage only
 	makeArray: function( arr, results ) {
 		var ret = results || [];
@@ -389,7 +405,7 @@ jQuery.extend( {
 			if ( isArrayLike( Object( arr ) ) ) {
 				jQuery.merge( ret,
 					typeof arr === "string" ?
-					[ arr ] : arr
+						[ arr ] : arr
 				);
 			} else {
 				push.call( ret, arr );
@@ -467,43 +483,12 @@ jQuery.extend( {
 		}
 
 		// Flatten any nested arrays
-		return concat.apply( [], ret );
+		return flat( ret );
 	},
 
 	// A global GUID counter for objects
 	guid: 1,
 
-	// Bind a function to a context, optionally partially applying any
-	// arguments.
-	proxy: function( fn, context ) {
-		var tmp, args, proxy;
-
-		if ( typeof context === "string" ) {
-			tmp = fn[ context ];
-			context = fn;
-			fn = tmp;
-		}
-
-		// Quick check to determine if target is callable, in the spec
-		// this throws a TypeError, but we will just return undefined.
-		if ( !jQuery.isFunction( fn ) ) {
-			return undefined;
-		}
-
-		// Simulated bind
-		args = slice.call( arguments, 2 );
-		proxy = function() {
-			return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
-		};
-
-		// Set the guid of unique handler to the same of original handler, so it can be removed
-		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
-
-		return proxy;
-	},
-
-	now: Date.now,
-
 	// jQuery.support is not used in Core but other projects attach their
 	// properties to it so it needs to exist.
 	support: support
@@ -515,9 +500,9 @@ if ( typeof Symbol === "function" ) {
 
 // Populate the class2type map
 jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
-function( i, name ) {
-	class2type[ "[object " + name + "]" ] = name.toLowerCase();
-} );
+	function( _i, name ) {
+		class2type[ "[object " + name + "]" ] = name.toLowerCase();
+	} );
 
 function isArrayLike( obj ) {
 
@@ -526,9 +511,9 @@ function isArrayLike( obj ) {
 	// hasOwn isn't used here due to false negatives
 	// regarding Nodelist length in IE
 	var length = !!obj && "length" in obj && obj.length,
-		type = jQuery.type( obj );
+		type = toType( obj );
 
-	if ( type === "function" || jQuery.isWindow( obj ) ) {
+	if ( isFunction( obj ) || isWindow( obj ) ) {
 		return false;
 	}
 
@@ -537,17 +522,16 @@ function isArrayLike( obj ) {
 }
 var Sizzle =
 /*!
- * Sizzle CSS Selector Engine v2.3.3
+ * Sizzle CSS Selector Engine v2.3.6
  * https://sizzlejs.com/
  *
- * Copyright jQuery Foundation and other contributors
+ * Copyright JS Foundation and other contributors
  * Released under the MIT license
- * http://jquery.org/license
+ * https://js.foundation/
  *
- * Date: 2016-08-08
+ * Date: 2021-02-16
  */
-(function( window ) {
-
+( function( window ) {
 var i,
 	support,
 	Expr,
@@ -578,6 +562,7 @@ var i,
 	classCache = createCache(),
 	tokenCache = createCache(),
 	compilerCache = createCache(),
+	nonnativeSelectorCache = createCache(),
 	sortOrder = function( a, b ) {
 		if ( a === b ) {
 			hasDuplicate = true;
@@ -586,61 +571,71 @@ var i,
 	},
 
 	// Instance methods
-	hasOwn = ({}).hasOwnProperty,
+	hasOwn = ( {} ).hasOwnProperty,
 	arr = [],
 	pop = arr.pop,
-	push_native = arr.push,
+	pushNative = arr.push,
 	push = arr.push,
 	slice = arr.slice,
+
 	// Use a stripped-down indexOf as it's faster than native
 	// https://jsperf.com/thor-indexof-vs-for/5
 	indexOf = function( list, elem ) {
 		var i = 0,
 			len = list.length;
 		for ( ; i < len; i++ ) {
-			if ( list[i] === elem ) {
+			if ( list[ i ] === elem ) {
 				return i;
 			}
 		}
 		return -1;
 	},
 
-	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" +
+		"ismap|loop|multiple|open|readonly|required|scoped",
 
 	// Regular expressions
 
 	// http://www.w3.org/TR/css3-selectors/#whitespace
 	whitespace = "[\\x20\\t\\r\\n\\f]",
 
-	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
-	identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+	// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
+	identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
+		"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
 
 	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
 	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+
 		// Operator (capture 2)
 		"*([*^$|!~]?=)" + whitespace +
-		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
-		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
-		"*\\]",
+
+		// "Attribute values must be CSS identifiers [capture 5]
+		// or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" +
+		whitespace + "*\\]",
 
 	pseudos = ":(" + identifier + ")(?:\\((" +
+
 		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
 		// 1. quoted (capture 3; capture 4 or capture 5)
 		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+
 		// 2. simple (capture 6)
 		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+
 		// 3. anything else (capture 2)
 		".*" +
 		")\\)|)",
 
 	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
 	rwhitespace = new RegExp( whitespace + "+", "g" ),
-	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" +
+		whitespace + "+$", "g" ),
 
 	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
-	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
-
-	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace +
+		"*" ),
+	rdescend = new RegExp( whitespace + "|>" ),
 
 	rpseudo = new RegExp( pseudos ),
 	ridentifier = new RegExp( "^" + identifier + "$" ),
@@ -651,16 +646,19 @@ var i,
 		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
 		"ATTR": new RegExp( "^" + attributes ),
 		"PSEUDO": new RegExp( "^" + pseudos ),
-		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
-			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
-			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
+			whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
+			whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
 		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+
 		// For use in libraries implementing .is()
 		// We use this for POS matching in `select`
-		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
-			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+		"needsContext": new RegExp( "^" + whitespace +
+			"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
+			"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
 	},
 
+	rhtml = /HTML$/i,
 	rinputs = /^(?:input|select|textarea|button)$/i,
 	rheader = /^h\d$/i,
 
@@ -673,18 +671,21 @@ var i,
 
 	// CSS escapes
 	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
-	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
-	funescape = function( _, escaped, escapedWhitespace ) {
-		var high = "0x" + escaped - 0x10000;
-		// NaN means non-codepoint
-		// Support: Firefox<24
-		// Workaround erroneous numeric interpretation of +"0x"
-		return high !== high || escapedWhitespace ?
-			escaped :
+	runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ),
+	funescape = function( escape, nonHex ) {
+		var high = "0x" + escape.slice( 1 ) - 0x10000;
+
+		return nonHex ?
+
+			// Strip the backslash prefix from a non-hex escape sequence
+			nonHex :
+
+			// Replace a hexadecimal escape sequence with the encoded Unicode code point
+			// Support: IE <=11+
+			// For values outside the Basic Multilingual Plane (BMP), manually construct a
+			// surrogate pair
 			high < 0 ?
-				// BMP codepoint
 				String.fromCharCode( high + 0x10000 ) :
-				// Supplemental Plane codepoint (surrogate pair)
 				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
 	},
 
@@ -700,7 +701,8 @@ var i,
 			}
 
 			// Control characters and (dependent upon position) numbers get escaped as code points
-			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+			return ch.slice( 0, -1 ) + "\\" +
+				ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
 		}
 
 		// Other potentially-special ASCII characters get backslash-escaped
@@ -715,9 +717,9 @@ var i,
 		setDocument();
 	},
 
-	disabledAncestor = addCombinator(
+	inDisabledFieldset = addCombinator(
 		function( elem ) {
-			return elem.disabled === true && ("form" in elem || "label" in elem);
+			return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
 		},
 		{ dir: "parentNode", next: "legend" }
 	);
@@ -725,18 +727,20 @@ var i,
 // Optimize for push.apply( _, NodeList )
 try {
 	push.apply(
-		(arr = slice.call( preferredDoc.childNodes )),
+		( arr = slice.call( preferredDoc.childNodes ) ),
 		preferredDoc.childNodes
 	);
+
 	// Support: Android<4.0
 	// Detect silently failing push.apply
+	// eslint-disable-next-line no-unused-expressions
 	arr[ preferredDoc.childNodes.length ].nodeType;
 } catch ( e ) {
 	push = { apply: arr.length ?
 
 		// Leverage slice if possible
 		function( target, els ) {
-			push_native.apply( target, slice.call(els) );
+			pushNative.apply( target, slice.call( els ) );
 		} :
 
 		// Support: IE<9
@@ -744,8 +748,9 @@ try {
 		function( target, els ) {
 			var j = target.length,
 				i = 0;
+
 			// Can't trust NodeList.length
-			while ( (target[j++] = els[i++]) ) {}
+			while ( ( target[ j++ ] = els[ i++ ] ) ) {}
 			target.length = j - 1;
 		}
 	};
@@ -769,24 +774,21 @@ function Sizzle( selector, context, results, seed ) {
 
 	// Try to shortcut find operations (as opposed to filters) in HTML documents
 	if ( !seed ) {
-
-		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
-			setDocument( context );
-		}
+		setDocument( context );
 		context = context || document;
 
 		if ( documentIsHTML ) {
 
 			// If the selector is sufficiently simple, try using a "get*By*" DOM method
 			// (excepting DocumentFragment context, where the methods don't exist)
-			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+			if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {
 
 				// ID selector
-				if ( (m = match[1]) ) {
+				if ( ( m = match[ 1 ] ) ) {
 
 					// Document context
 					if ( nodeType === 9 ) {
-						if ( (elem = context.getElementById( m )) ) {
+						if ( ( elem = context.getElementById( m ) ) ) {
 
 							// Support: IE, Opera, Webkit
 							// TODO: identify versions
@@ -805,7 +807,7 @@ function Sizzle( selector, context, results, seed ) {
 						// Support: IE, Opera, Webkit
 						// TODO: identify versions
 						// getElementById can match elements by name instead of ID
-						if ( newContext && (elem = newContext.getElementById( m )) &&
+						if ( newContext && ( elem = newContext.getElementById( m ) ) &&
 							contains( context, elem ) &&
 							elem.id === m ) {
 
@@ -815,12 +817,12 @@ function Sizzle( selector, context, results, seed ) {
 					}
 
 				// Type selector
-				} else if ( match[2] ) {
+				} else if ( match[ 2 ] ) {
 					push.apply( results, context.getElementsByTagName( selector ) );
 					return results;
 
 				// Class selector
-				} else if ( (m = match[3]) && support.getElementsByClassName &&
+				} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&
 					context.getElementsByClassName ) {
 
 					push.apply( results, context.getElementsByClassName( m ) );
@@ -830,50 +832,62 @@ function Sizzle( selector, context, results, seed ) {
 
 			// Take advantage of querySelectorAll
 			if ( support.qsa &&
-				!compilerCache[ selector + " " ] &&
-				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+				!nonnativeSelectorCache[ selector + " " ] &&
+				( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&
 
-				if ( nodeType !== 1 ) {
-					newContext = context;
-					newSelector = selector;
-
-				// qSA looks outside Element context, which is not what we want
-				// Thanks to Andrew Dupont for this workaround technique
-				// Support: IE <=8
+				// Support: IE 8 only
 				// Exclude object elements
-				} else if ( context.nodeName.toLowerCase() !== "object" ) {
+				( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {
 
-					// Capture the context ID, setting it first if necessary
-					if ( (nid = context.getAttribute( "id" )) ) {
-						nid = nid.replace( rcssescape, fcssescape );
-					} else {
-						context.setAttribute( "id", (nid = expando) );
+				newSelector = selector;
+				newContext = context;
+
+				// qSA considers elements outside a scoping root when evaluating child or
+				// descendant combinators, which is not what we want.
+				// In such cases, we work around the behavior by prefixing every selector in the
+				// list with an ID selector referencing the scope context.
+				// The technique has to be used as well when a leading combinator is used
+				// as such selectors are not recognized by querySelectorAll.
+				// Thanks to Andrew Dupont for this technique.
+				if ( nodeType === 1 &&
+					( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
+
+					// We can use :scope instead of the ID hack if the browser
+					// supports it & if we're not changing the context.
+					if ( newContext !== context || !support.scope ) {
+
+						// Capture the context ID, setting it first if necessary
+						if ( ( nid = context.getAttribute( "id" ) ) ) {
+							nid = nid.replace( rcssescape, fcssescape );
+						} else {
+							context.setAttribute( "id", ( nid = expando ) );
+						}
 					}
 
 					// Prefix every selector in the list
 					groups = tokenize( selector );
 					i = groups.length;
 					while ( i-- ) {
-						groups[i] = "#" + nid + " " + toSelector( groups[i] );
+						groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " +
+							toSelector( groups[ i ] );
 					}
 					newSelector = groups.join( "," );
-
-					// Expand context for sibling selectors
-					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
-						context;
 				}
 
-				if ( newSelector ) {
-					try {
-						push.apply( results,
-							newContext.querySelectorAll( newSelector )
-						);
-						return results;
-					} catch ( qsaError ) {
-					} finally {
-						if ( nid === expando ) {
-							context.removeAttribute( "id" );
-						}
+				try {
+					push.apply( results,
+						newContext.querySelectorAll( newSelector )
+					);
+					return results;
+				} catch ( qsaError ) {
+					nonnativeSelectorCache( selector, true );
+				} finally {
+					if ( nid === expando ) {
+						context.removeAttribute( "id" );
 					}
 				}
 			}
@@ -894,12 +908,14 @@ function createCache() {
 	var keys = [];
 
 	function cache( key, value ) {
+
 		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
 		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+
 			// Only keep the most recent entries
 			delete cache[ keys.shift() ];
 		}
-		return (cache[ key + " " ] = value);
+		return ( cache[ key + " " ] = value );
 	}
 	return cache;
 }
@@ -918,17 +934,19 @@ function markFunction( fn ) {
  * @param {Function} fn Passed the created element and returns a boolean result
  */
 function assert( fn ) {
-	var el = document.createElement("fieldset");
+	var el = document.createElement( "fieldset" );
 
 	try {
 		return !!fn( el );
-	} catch (e) {
+	} catch ( e ) {
 		return false;
 	} finally {
+
 		// Remove from its parent by default
 		if ( el.parentNode ) {
 			el.parentNode.removeChild( el );
 		}
+
 		// release memory in IE
 		el = null;
 	}
@@ -940,11 +958,11 @@ function assert( fn ) {
  * @param {Function} handler The method that will be applied
  */
 function addHandle( attrs, handler ) {
-	var arr = attrs.split("|"),
+	var arr = attrs.split( "|" ),
 		i = arr.length;
 
 	while ( i-- ) {
-		Expr.attrHandle[ arr[i] ] = handler;
+		Expr.attrHandle[ arr[ i ] ] = handler;
 	}
 }
 
@@ -966,7 +984,7 @@ function siblingCheck( a, b ) {
 
 	// Check if b follows a
 	if ( cur ) {
-		while ( (cur = cur.nextSibling) ) {
+		while ( ( cur = cur.nextSibling ) ) {
 			if ( cur === b ) {
 				return -1;
 			}
@@ -994,7 +1012,7 @@ function createInputPseudo( type ) {
 function createButtonPseudo( type ) {
 	return function( elem ) {
 		var name = elem.nodeName.toLowerCase();
-		return (name === "input" || name === "button") && elem.type === type;
+		return ( name === "input" || name === "button" ) && elem.type === type;
 	};
 }
 
@@ -1037,7 +1055,7 @@ function createDisabledPseudo( disabled ) {
 					// Where there is no isDisabled, check manually
 					/* jshint -W018 */
 					elem.isDisabled !== !disabled &&
-						disabledAncestor( elem ) === disabled;
+					inDisabledFieldset( elem ) === disabled;
 			}
 
 			return elem.disabled === disabled;
@@ -1059,21 +1077,21 @@ function createDisabledPseudo( disabled ) {
  * @param {Function} fn
  */
 function createPositionalPseudo( fn ) {
-	return markFunction(function( argument ) {
+	return markFunction( function( argument ) {
 		argument = +argument;
-		return markFunction(function( seed, matches ) {
+		return markFunction( function( seed, matches ) {
 			var j,
 				matchIndexes = fn( [], seed.length, argument ),
 				i = matchIndexes.length;
 
 			// Match elements found at the specified indexes
 			while ( i-- ) {
-				if ( seed[ (j = matchIndexes[i]) ] ) {
-					seed[j] = !(matches[j] = seed[j]);
+				if ( seed[ ( j = matchIndexes[ i ] ) ] ) {
+					seed[ j ] = !( matches[ j ] = seed[ j ] );
 				}
 			}
-		});
-	});
+		} );
+	} );
 }
 
 /**
@@ -1094,10 +1112,13 @@ support = Sizzle.support = {};
  * @returns {Boolean} True iff elem is a non-HTML XML node
  */
 isXML = Sizzle.isXML = function( elem ) {
-	// documentElement is verified for cases where it doesn't yet exist
-	// (such as loading iframes in IE - #4833)
-	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
-	return documentElement ? documentElement.nodeName !== "HTML" : false;
+	var namespace = elem && elem.namespaceURI,
+		docElem = elem && ( elem.ownerDocument || elem ).documentElement;
+
+	// Support: IE <=8
+	// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
+	// https://bugs.jquery.com/ticket/4833
+	return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
 };
 
 /**
@@ -1110,7 +1131,11 @@ setDocument = Sizzle.setDocument = function( node ) {
 		doc = node ? node.ownerDocument || node : preferredDoc;
 
 	// Return early if doc is invalid or already selected
-	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+	// Support: IE 11+, Edge 17 - 18+
+	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+	// two documents; shallow comparisons work.
+	// eslint-disable-next-line eqeqeq
+	if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {
 		return document;
 	}
 
@@ -1119,10 +1144,14 @@ setDocument = Sizzle.setDocument = function( node ) {
 	docElem = document.documentElement;
 	documentIsHTML = !isXML( document );
 
-	// Support: IE 9-11, Edge
+	// Support: IE 9 - 11+, Edge 12 - 18+
 	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
-	if ( preferredDoc !== document &&
-		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+	// Support: IE 11+, Edge 17 - 18+
+	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+	// two documents; shallow comparisons work.
+	// eslint-disable-next-line eqeqeq
+	if ( preferredDoc != document &&
+		( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {
 
 		// Support: IE 11, Edge
 		if ( subWindow.addEventListener ) {
@@ -1134,25 +1163,36 @@ setDocument = Sizzle.setDocument = function( node ) {
 		}
 	}
 
+	// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,
+	// Safari 4 - 5 only, Opera <=11.6 - 12.x only
+	// IE/Edge & older browsers don't support the :scope pseudo-class.
+	// Support: Safari 6.0 only
+	// Safari 6.0 supports :scope but it's an alias of :root there.
+	support.scope = assert( function( el ) {
+		docElem.appendChild( el ).appendChild( document.createElement( "div" ) );
+		return typeof el.querySelectorAll !== "undefined" &&
+			!el.querySelectorAll( ":scope fieldset div" ).length;
+	} );
+
 	/* Attributes
 	---------------------------------------------------------------------- */
 
 	// Support: IE<8
 	// Verify that getAttribute really returns attributes and not properties
 	// (excepting IE8 booleans)
-	support.attributes = assert(function( el ) {
+	support.attributes = assert( function( el ) {
 		el.className = "i";
-		return !el.getAttribute("className");
-	});
+		return !el.getAttribute( "className" );
+	} );
 
 	/* getElement(s)By*
 	---------------------------------------------------------------------- */
 
 	// Check if getElementsByTagName("*") returns only elements
-	support.getElementsByTagName = assert(function( el ) {
-		el.appendChild( document.createComment("") );
-		return !el.getElementsByTagName("*").length;
-	});
+	support.getElementsByTagName = assert( function( el ) {
+		el.appendChild( document.createComment( "" ) );
+		return !el.getElementsByTagName( "*" ).length;
+	} );
 
 	// Support: IE<9
 	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
@@ -1161,38 +1201,38 @@ setDocument = Sizzle.setDocument = function( node ) {
 	// Check if getElementById returns elements by name
 	// The broken getElementById methods don't pick up programmatically-set names,
 	// so use a roundabout getElementsByName test
-	support.getById = assert(function( el ) {
+	support.getById = assert( function( el ) {
 		docElem.appendChild( el ).id = expando;
 		return !document.getElementsByName || !document.getElementsByName( expando ).length;
-	});
+	} );
 
 	// ID filter and find
 	if ( support.getById ) {
-		Expr.filter["ID"] = function( id ) {
+		Expr.filter[ "ID" ] = function( id ) {
 			var attrId = id.replace( runescape, funescape );
 			return function( elem ) {
-				return elem.getAttribute("id") === attrId;
+				return elem.getAttribute( "id" ) === attrId;
 			};
 		};
-		Expr.find["ID"] = function( id, context ) {
+		Expr.find[ "ID" ] = function( id, context ) {
 			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
 				var elem = context.getElementById( id );
 				return elem ? [ elem ] : [];
 			}
 		};
 	} else {
-		Expr.filter["ID"] =  function( id ) {
+		Expr.filter[ "ID" ] =  function( id ) {
 			var attrId = id.replace( runescape, funescape );
 			return function( elem ) {
 				var node = typeof elem.getAttributeNode !== "undefined" &&
-					elem.getAttributeNode("id");
+					elem.getAttributeNode( "id" );
 				return node && node.value === attrId;
 			};
 		};
 
 		// Support: IE 6 - 7 only
 		// getElementById is not reliable as a find shortcut
-		Expr.find["ID"] = function( id, context ) {
+		Expr.find[ "ID" ] = function( id, context ) {
 			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
 				var node, i, elems,
 					elem = context.getElementById( id );
@@ -1200,7 +1240,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 				if ( elem ) {
 
 					// Verify the id attribute
-					node = elem.getAttributeNode("id");
+					node = elem.getAttributeNode( "id" );
 					if ( node && node.value === id ) {
 						return [ elem ];
 					}
@@ -1208,8 +1248,8 @@ setDocument = Sizzle.setDocument = function( node ) {
 					// Fall back on getElementsByName
 					elems = context.getElementsByName( id );
 					i = 0;
-					while ( (elem = elems[i++]) ) {
-						node = elem.getAttributeNode("id");
+					while ( ( elem = elems[ i++ ] ) ) {
+						node = elem.getAttributeNode( "id" );
 						if ( node && node.value === id ) {
 							return [ elem ];
 						}
@@ -1222,7 +1262,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 	}
 
 	// Tag
-	Expr.find["TAG"] = support.getElementsByTagName ?
+	Expr.find[ "TAG" ] = support.getElementsByTagName ?
 		function( tag, context ) {
 			if ( typeof context.getElementsByTagName !== "undefined" ) {
 				return context.getElementsByTagName( tag );
@@ -1237,12 +1277,13 @@ setDocument = Sizzle.setDocument = function( node ) {
 			var elem,
 				tmp = [],
 				i = 0,
+
 				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
 				results = context.getElementsByTagName( tag );
 
 			// Filter out possible comments
 			if ( tag === "*" ) {
-				while ( (elem = results[i++]) ) {
+				while ( ( elem = results[ i++ ] ) ) {
 					if ( elem.nodeType === 1 ) {
 						tmp.push( elem );
 					}
@@ -1254,7 +1295,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 		};
 
 	// Class
-	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+	Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) {
 		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
 			return context.getElementsByClassName( className );
 		}
@@ -1275,10 +1316,14 @@ setDocument = Sizzle.setDocument = function( node ) {
 	// See https://bugs.jquery.com/ticket/13378
 	rbuggyQSA = [];
 
-	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+	if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {
+
 		// Build QSA regex
 		// Regex strategy adopted from Diego Perini
-		assert(function( el ) {
+		assert( function( el ) {
+
+			var input;
+
 			// Select is set to empty string on purpose
 			// This is to test IE's treatment of not explicitly
 			// setting a boolean content attribute,
@@ -1292,78 +1337,98 @@ setDocument = Sizzle.setDocument = function( node ) {
 			// Nothing should be selected when empty strings follow ^= or $= or *=
 			// The test attribute must be unknown in Opera but "safe" for WinRT
 			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
-			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+			if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) {
 				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
 			}
 
 			// Support: IE8
 			// Boolean attributes and "value" are not treated correctly
-			if ( !el.querySelectorAll("[selected]").length ) {
+			if ( !el.querySelectorAll( "[selected]" ).length ) {
 				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
 			}
 
 			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
 			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
-				rbuggyQSA.push("~=");
+				rbuggyQSA.push( "~=" );
+			}
+
+			// Support: IE 11+, Edge 15 - 18+
+			// IE 11/Edge don't find elements on a `[name='']` query in some cases.
+			// Adding a temporary attribute to the document before the selection works
+			// around the issue.
+			// Interestingly, IE 10 & older don't seem to have the issue.
+			input = document.createElement( "input" );
+			input.setAttribute( "name", "" );
+			el.appendChild( input );
+			if ( !el.querySelectorAll( "[name='']" ).length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
+					whitespace + "*(?:''|\"\")" );
 			}
 
 			// Webkit/Opera - :checked should return selected option elements
 			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
 			// IE8 throws error here and will not see later tests
-			if ( !el.querySelectorAll(":checked").length ) {
-				rbuggyQSA.push(":checked");
+			if ( !el.querySelectorAll( ":checked" ).length ) {
+				rbuggyQSA.push( ":checked" );
 			}
 
 			// Support: Safari 8+, iOS 8+
 			// https://bugs.webkit.org/show_bug.cgi?id=136851
 			// In-page `selector#id sibling-combinator selector` fails
 			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
-				rbuggyQSA.push(".#.+[+~]");
+				rbuggyQSA.push( ".#.+[+~]" );
 			}
-		});
 
-		assert(function( el ) {
+			// Support: Firefox <=3.6 - 5 only
+			// Old Firefox doesn't throw on a badly-escaped identifier.
+			el.querySelectorAll( "\\\f" );
+			rbuggyQSA.push( "[\\r\\n\\f]" );
+		} );
+
+		assert( function( el ) {
 			el.innerHTML = "<a href='' disabled='disabled'></a>" +
 				"<select disabled='disabled'><option/></select>";
 
 			// Support: Windows 8 Native Apps
 			// The type and name attributes are restricted during .innerHTML assignment
-			var input = document.createElement("input");
+			var input = document.createElement( "input" );
 			input.setAttribute( "type", "hidden" );
 			el.appendChild( input ).setAttribute( "name", "D" );
 
 			// Support: IE8
 			// Enforce case-sensitivity of name attribute
-			if ( el.querySelectorAll("[name=d]").length ) {
+			if ( el.querySelectorAll( "[name=d]" ).length ) {
 				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
 			}
 
 			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
 			// IE8 throws error here and will not see later tests
-			if ( el.querySelectorAll(":enabled").length !== 2 ) {
+			if ( el.querySelectorAll( ":enabled" ).length !== 2 ) {
 				rbuggyQSA.push( ":enabled", ":disabled" );
 			}
 
 			// Support: IE9-11+
 			// IE's :disabled selector does not pick up the children of disabled fieldsets
 			docElem.appendChild( el ).disabled = true;
-			if ( el.querySelectorAll(":disabled").length !== 2 ) {
+			if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
 				rbuggyQSA.push( ":enabled", ":disabled" );
 			}
 
+			// Support: Opera 10 - 11 only
 			// Opera 10-11 does not throw on post-comma invalid pseudos
-			el.querySelectorAll("*,:x");
-			rbuggyQSA.push(",.*:");
-		});
+			el.querySelectorAll( "*,:x" );
+			rbuggyQSA.push( ",.*:" );
+		} );
 	}
 
-	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+	if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||
 		docElem.webkitMatchesSelector ||
 		docElem.mozMatchesSelector ||
 		docElem.oMatchesSelector ||
-		docElem.msMatchesSelector) )) ) {
+		docElem.msMatchesSelector ) ) ) ) {
+
+		assert( function( el ) {
 
-		assert(function( el ) {
 			// Check to see if it's possible to do matchesSelector
 			// on a disconnected node (IE 9)
 			support.disconnectedMatch = matches.call( el, "*" );
@@ -1372,11 +1437,11 @@ setDocument = Sizzle.setDocument = function( node ) {
 			// Gecko does not error, returns false instead
 			matches.call( el, "[s!='']:x" );
 			rbuggyMatches.push( "!=", pseudos );
-		});
+		} );
 	}
 
-	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
-	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) );
 
 	/* Contains
 	---------------------------------------------------------------------- */
@@ -1393,11 +1458,11 @@ setDocument = Sizzle.setDocument = function( node ) {
 				adown.contains ?
 					adown.contains( bup ) :
 					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
-			));
+			) );
 		} :
 		function( a, b ) {
 			if ( b ) {
-				while ( (b = b.parentNode) ) {
+				while ( ( b = b.parentNode ) ) {
 					if ( b === a ) {
 						return true;
 					}
@@ -1426,7 +1491,11 @@ setDocument = Sizzle.setDocument = function( node ) {
 		}
 
 		// Calculate position if both inputs belong to the same document
-		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+		// Support: IE 11+, Edge 17 - 18+
+		// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+		// two documents; shallow comparisons work.
+		// eslint-disable-next-line eqeqeq
+		compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?
 			a.compareDocumentPosition( b ) :
 
 			// Otherwise we know they are disconnected
@@ -1434,13 +1503,24 @@ setDocument = Sizzle.setDocument = function( node ) {
 
 		// Disconnected nodes
 		if ( compare & 1 ||
-			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+			( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {
 
 			// Choose the first element that is related to our preferred document
-			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+			// Support: IE 11+, Edge 17 - 18+
+			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+			// two documents; shallow comparisons work.
+			// eslint-disable-next-line eqeqeq
+			if ( a == document || a.ownerDocument == preferredDoc &&
+				contains( preferredDoc, a ) ) {
 				return -1;
 			}
-			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+
+			// Support: IE 11+, Edge 17 - 18+
+			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+			// two documents; shallow comparisons work.
+			// eslint-disable-next-line eqeqeq
+			if ( b == document || b.ownerDocument == preferredDoc &&
+				contains( preferredDoc, b ) ) {
 				return 1;
 			}
 
@@ -1453,6 +1533,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 		return compare & 4 ? -1 : 1;
 	} :
 	function( a, b ) {
+
 		// Exit early if the nodes are identical
 		if ( a === b ) {
 			hasDuplicate = true;
@@ -1468,8 +1549,14 @@ setDocument = Sizzle.setDocument = function( node ) {
 
 		// Parentless nodes are either documents or disconnected
 		if ( !aup || !bup ) {
-			return a === document ? -1 :
-				b === document ? 1 :
+
+			// Support: IE 11+, Edge 17 - 18+
+			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+			// two documents; shallow comparisons work.
+			/* eslint-disable eqeqeq */
+			return a == document ? -1 :
+				b == document ? 1 :
+				/* eslint-enable eqeqeq */
 				aup ? -1 :
 				bup ? 1 :
 				sortInput ?
@@ -1483,26 +1570,32 @@ setDocument = Sizzle.setDocument = function( node ) {
 
 		// Otherwise we need full lists of their ancestors for comparison
 		cur = a;
-		while ( (cur = cur.parentNode) ) {
+		while ( ( cur = cur.parentNode ) ) {
 			ap.unshift( cur );
 		}
 		cur = b;
-		while ( (cur = cur.parentNode) ) {
+		while ( ( cur = cur.parentNode ) ) {
 			bp.unshift( cur );
 		}
 
 		// Walk down the tree looking for a discrepancy
-		while ( ap[i] === bp[i] ) {
+		while ( ap[ i ] === bp[ i ] ) {
 			i++;
 		}
 
 		return i ?
+
 			// Do a sibling check if the nodes have a common ancestor
-			siblingCheck( ap[i], bp[i] ) :
+			siblingCheck( ap[ i ], bp[ i ] ) :
 
 			// Otherwise nodes in our document sort first
-			ap[i] === preferredDoc ? -1 :
-			bp[i] === preferredDoc ? 1 :
+			// Support: IE 11+, Edge 17 - 18+
+			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+			// two documents; shallow comparisons work.
+			/* eslint-disable eqeqeq */
+			ap[ i ] == preferredDoc ? -1 :
+			bp[ i ] == preferredDoc ? 1 :
+			/* eslint-enable eqeqeq */
 			0;
 	};
 
@@ -1514,16 +1607,10 @@ Sizzle.matches = function( expr, elements ) {
 };
 
 Sizzle.matchesSelector = function( elem, expr ) {
-	// Set document vars if needed
-	if ( ( elem.ownerDocument || elem ) !== document ) {
-		setDocument( elem );
-	}
-
-	// Make sure that attribute selectors are quoted
-	expr = expr.replace( rattributeQuotes, "='$1']" );
+	setDocument( elem );
 
 	if ( support.matchesSelector && documentIsHTML &&
-		!compilerCache[ expr + " " ] &&
+		!nonnativeSelectorCache[ expr + " " ] &&
 		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
 		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
 
@@ -1532,32 +1619,46 @@ Sizzle.matchesSelector = function( elem, expr ) {
 
 			// IE 9's matchesSelector returns false on disconnected nodes
 			if ( ret || support.disconnectedMatch ||
-					// As well, disconnected nodes are said to be in a document
-					// fragment in IE 9
-					elem.document && elem.document.nodeType !== 11 ) {
+
+				// As well, disconnected nodes are said to be in a document
+				// fragment in IE 9
+				elem.document && elem.document.nodeType !== 11 ) {
 				return ret;
 			}
-		} catch (e) {}
+		} catch ( e ) {
+			nonnativeSelectorCache( expr, true );
+		}
 	}
 
 	return Sizzle( expr, document, null, [ elem ] ).length > 0;
 };
 
 Sizzle.contains = function( context, elem ) {
+
 	// Set document vars if needed
-	if ( ( context.ownerDocument || context ) !== document ) {
+	// Support: IE 11+, Edge 17 - 18+
+	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+	// two documents; shallow comparisons work.
+	// eslint-disable-next-line eqeqeq
+	if ( ( context.ownerDocument || context ) != document ) {
 		setDocument( context );
 	}
 	return contains( context, elem );
 };
 
 Sizzle.attr = function( elem, name ) {
+
 	// Set document vars if needed
-	if ( ( elem.ownerDocument || elem ) !== document ) {
+	// Support: IE 11+, Edge 17 - 18+
+	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+	// two documents; shallow comparisons work.
+	// eslint-disable-next-line eqeqeq
+	if ( ( elem.ownerDocument || elem ) != document ) {
 		setDocument( elem );
 	}
 
 	var fn = Expr.attrHandle[ name.toLowerCase() ],
+
 		// Don't get fooled by Object.prototype properties (jQuery #13807)
 		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
 			fn( elem, name, !documentIsHTML ) :
@@ -1567,13 +1668,13 @@ Sizzle.attr = function( elem, name ) {
 		val :
 		support.attributes || !documentIsHTML ?
 			elem.getAttribute( name ) :
-			(val = elem.getAttributeNode(name)) && val.specified ?
+			( val = elem.getAttributeNode( name ) ) && val.specified ?
 				val.value :
 				null;
 };
 
 Sizzle.escape = function( sel ) {
-	return (sel + "").replace( rcssescape, fcssescape );
+	return ( sel + "" ).replace( rcssescape, fcssescape );
 };
 
 Sizzle.error = function( msg ) {
@@ -1596,7 +1697,7 @@ Sizzle.uniqueSort = function( results ) {
 	results.sort( sortOrder );
 
 	if ( hasDuplicate ) {
-		while ( (elem = results[i++]) ) {
+		while ( ( elem = results[ i++ ] ) ) {
 			if ( elem === results[ i ] ) {
 				j = duplicates.push( i );
 			}
@@ -1624,17 +1725,21 @@ getText = Sizzle.getText = function( elem ) {
 		nodeType = elem.nodeType;
 
 	if ( !nodeType ) {
+
 		// If no nodeType, this is expected to be an array
-		while ( (node = elem[i++]) ) {
+		while ( ( node = elem[ i++ ] ) ) {
+
 			// Do not traverse comment nodes
 			ret += getText( node );
 		}
 	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+
 		// Use textContent for elements
 		// innerText usage removed for consistency of new lines (jQuery #11153)
 		if ( typeof elem.textContent === "string" ) {
 			return elem.textContent;
 		} else {
+
 			// Traverse its children
 			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
 				ret += getText( elem );
@@ -1643,6 +1748,7 @@ getText = Sizzle.getText = function( elem ) {
 	} else if ( nodeType === 3 || nodeType === 4 ) {
 		return elem.nodeValue;
 	}
+
 	// Do not include comment or processing instruction nodes
 
 	return ret;
@@ -1670,19 +1776,21 @@ Expr = Sizzle.selectors = {
 
 	preFilter: {
 		"ATTR": function( match ) {
-			match[1] = match[1].replace( runescape, funescape );
+			match[ 1 ] = match[ 1 ].replace( runescape, funescape );
 
 			// Move the given value to match[3] whether quoted or unquoted
-			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+			match[ 3 ] = ( match[ 3 ] || match[ 4 ] ||
+				match[ 5 ] || "" ).replace( runescape, funescape );
 
-			if ( match[2] === "~=" ) {
-				match[3] = " " + match[3] + " ";
+			if ( match[ 2 ] === "~=" ) {
+				match[ 3 ] = " " + match[ 3 ] + " ";
 			}
 
 			return match.slice( 0, 4 );
 		},
 
 		"CHILD": function( match ) {
+
 			/* matches from matchExpr["CHILD"]
 				1 type (only|nth|...)
 				2 what (child|of-type)
@@ -1693,22 +1801,25 @@ Expr = Sizzle.selectors = {
 				7 sign of y-component
 				8 y of y-component
 			*/
-			match[1] = match[1].toLowerCase();
+			match[ 1 ] = match[ 1 ].toLowerCase();
+
+			if ( match[ 1 ].slice( 0, 3 ) === "nth" ) {
 
-			if ( match[1].slice( 0, 3 ) === "nth" ) {
 				// nth-* requires argument
-				if ( !match[3] ) {
-					Sizzle.error( match[0] );
+				if ( !match[ 3 ] ) {
+					Sizzle.error( match[ 0 ] );
 				}
 
 				// numeric x and y parameters for Expr.filter.CHILD
 				// remember that false/true cast respectively to 0/1
-				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
-				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+				match[ 4 ] = +( match[ 4 ] ?
+					match[ 5 ] + ( match[ 6 ] || 1 ) :
+					2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) );
+				match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" );
 
-			// other types prohibit arguments
-			} else if ( match[3] ) {
-				Sizzle.error( match[0] );
+				// other types prohibit arguments
+			} else if ( match[ 3 ] ) {
+				Sizzle.error( match[ 0 ] );
 			}
 
 			return match;
@@ -1716,26 +1827,28 @@ Expr = Sizzle.selectors = {
 
 		"PSEUDO": function( match ) {
 			var excess,
-				unquoted = !match[6] && match[2];
+				unquoted = !match[ 6 ] && match[ 2 ];
 
-			if ( matchExpr["CHILD"].test( match[0] ) ) {
+			if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) {
 				return null;
 			}
 
 			// Accept quoted arguments as-is
-			if ( match[3] ) {
-				match[2] = match[4] || match[5] || "";
+			if ( match[ 3 ] ) {
+				match[ 2 ] = match[ 4 ] || match[ 5 ] || "";
 
 			// Strip excess characters from unquoted arguments
 			} else if ( unquoted && rpseudo.test( unquoted ) &&
+
 				// Get excess from tokenize (recursively)
-				(excess = tokenize( unquoted, true )) &&
+				( excess = tokenize( unquoted, true ) ) &&
+
 				// advance to the next closing parenthesis
-				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+				( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) {
 
 				// excess is a negative index
-				match[0] = match[0].slice( 0, excess );
-				match[2] = unquoted.slice( 0, excess );
+				match[ 0 ] = match[ 0 ].slice( 0, excess );
+				match[ 2 ] = unquoted.slice( 0, excess );
 			}
 
 			// Return only captures needed by the pseudo filter method (type and argument)
@@ -1748,7 +1861,9 @@ Expr = Sizzle.selectors = {
 		"TAG": function( nodeNameSelector ) {
 			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
 			return nodeNameSelector === "*" ?
-				function() { return true; } :
+				function() {
+					return true;
+				} :
 				function( elem ) {
 					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
 				};
@@ -1758,10 +1873,16 @@ Expr = Sizzle.selectors = {
 			var pattern = classCache[ className + " " ];
 
 			return pattern ||
-				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
-				classCache( className, function( elem ) {
-					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
-				});
+				( pattern = new RegExp( "(^|" + whitespace +
+					")" + className + "(" + whitespace + "|$)" ) ) && classCache(
+						className, function( elem ) {
+							return pattern.test(
+								typeof elem.className === "string" && elem.className ||
+								typeof elem.getAttribute !== "undefined" &&
+									elem.getAttribute( "class" ) ||
+								""
+							);
+				} );
 		},
 
 		"ATTR": function( name, operator, check ) {
@@ -1777,6 +1898,8 @@ Expr = Sizzle.selectors = {
 
 				result += "";
 
+				/* eslint-disable max-len */
+
 				return operator === "=" ? result === check :
 					operator === "!=" ? result !== check :
 					operator === "^=" ? check && result.indexOf( check ) === 0 :
@@ -1785,10 +1908,12 @@ Expr = Sizzle.selectors = {
 					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
 					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
 					false;
+				/* eslint-enable max-len */
+
 			};
 		},
 
-		"CHILD": function( type, what, argument, first, last ) {
+		"CHILD": function( type, what, _argument, first, last ) {
 			var simple = type.slice( 0, 3 ) !== "nth",
 				forward = type.slice( -4 ) !== "last",
 				ofType = what === "of-type";
@@ -1800,7 +1925,7 @@ Expr = Sizzle.selectors = {
 					return !!elem.parentNode;
 				} :
 
-				function( elem, context, xml ) {
+				function( elem, _context, xml ) {
 					var cache, uniqueCache, outerCache, node, nodeIndex, start,
 						dir = simple !== forward ? "nextSibling" : "previousSibling",
 						parent = elem.parentNode,
@@ -1814,7 +1939,7 @@ Expr = Sizzle.selectors = {
 						if ( simple ) {
 							while ( dir ) {
 								node = elem;
-								while ( (node = node[ dir ]) ) {
+								while ( ( node = node[ dir ] ) ) {
 									if ( ofType ?
 										node.nodeName.toLowerCase() === name :
 										node.nodeType === 1 ) {
@@ -1822,6 +1947,7 @@ Expr = Sizzle.selectors = {
 										return false;
 									}
 								}
+
 								// Reverse direction for :only-* (if we haven't yet done so)
 								start = dir = type === "only" && !start && "nextSibling";
 							}
@@ -1837,22 +1963,22 @@ Expr = Sizzle.selectors = {
 
 							// ...in a gzip-friendly way
 							node = parent;
-							outerCache = node[ expando ] || (node[ expando ] = {});
+							outerCache = node[ expando ] || ( node[ expando ] = {} );
 
 							// Support: IE <9 only
 							// Defend against cloned attroperties (jQuery gh-1709)
 							uniqueCache = outerCache[ node.uniqueID ] ||
-								(outerCache[ node.uniqueID ] = {});
+								( outerCache[ node.uniqueID ] = {} );
 
 							cache = uniqueCache[ type ] || [];
 							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
 							diff = nodeIndex && cache[ 2 ];
 							node = nodeIndex && parent.childNodes[ nodeIndex ];
 
-							while ( (node = ++nodeIndex && node && node[ dir ] ||
+							while ( ( node = ++nodeIndex && node && node[ dir ] ||
 
 								// Fallback to seeking `elem` from the start
-								(diff = nodeIndex = 0) || start.pop()) ) {
+								( diff = nodeIndex = 0 ) || start.pop() ) ) {
 
 								// When found, cache indexes on `parent` and break
 								if ( node.nodeType === 1 && ++diff && node === elem ) {
@@ -1862,16 +1988,18 @@ Expr = Sizzle.selectors = {
 							}
 
 						} else {
+
 							// Use previously-cached element index if available
 							if ( useCache ) {
+
 								// ...in a gzip-friendly way
 								node = elem;
-								outerCache = node[ expando ] || (node[ expando ] = {});
+								outerCache = node[ expando ] || ( node[ expando ] = {} );
 
 								// Support: IE <9 only
 								// Defend against cloned attroperties (jQuery gh-1709)
 								uniqueCache = outerCache[ node.uniqueID ] ||
-									(outerCache[ node.uniqueID ] = {});
+									( outerCache[ node.uniqueID ] = {} );
 
 								cache = uniqueCache[ type ] || [];
 								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
@@ -1881,9 +2009,10 @@ Expr = Sizzle.selectors = {
 							// xml :nth-child(...)
 							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
 							if ( diff === false ) {
+
 								// Use the same loop as above to seek `elem` from the start
-								while ( (node = ++nodeIndex && node && node[ dir ] ||
-									(diff = nodeIndex = 0) || start.pop()) ) {
+								while ( ( node = ++nodeIndex && node && node[ dir ] ||
+									( diff = nodeIndex = 0 ) || start.pop() ) ) {
 
 									if ( ( ofType ?
 										node.nodeName.toLowerCase() === name :
@@ -1892,12 +2021,13 @@ Expr = Sizzle.selectors = {
 
 										// Cache the index of each encountered element
 										if ( useCache ) {
-											outerCache = node[ expando ] || (node[ expando ] = {});
+											outerCache = node[ expando ] ||
+												( node[ expando ] = {} );
 
 											// Support: IE <9 only
 											// Defend against cloned attroperties (jQuery gh-1709)
 											uniqueCache = outerCache[ node.uniqueID ] ||
-												(outerCache[ node.uniqueID ] = {});
+												( outerCache[ node.uniqueID ] = {} );
 
 											uniqueCache[ type ] = [ dirruns, diff ];
 										}
@@ -1918,6 +2048,7 @@ Expr = Sizzle.selectors = {
 		},
 
 		"PSEUDO": function( pseudo, argument ) {
+
 			// pseudo-class names are case-insensitive
 			// http://www.w3.org/TR/selectors/#pseudo-classes
 			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
@@ -1937,15 +2068,15 @@ Expr = Sizzle.selectors = {
 			if ( fn.length > 1 ) {
 				args = [ pseudo, pseudo, "", argument ];
 				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
-					markFunction(function( seed, matches ) {
+					markFunction( function( seed, matches ) {
 						var idx,
 							matched = fn( seed, argument ),
 							i = matched.length;
 						while ( i-- ) {
-							idx = indexOf( seed, matched[i] );
-							seed[ idx ] = !( matches[ idx ] = matched[i] );
+							idx = indexOf( seed, matched[ i ] );
+							seed[ idx ] = !( matches[ idx ] = matched[ i ] );
 						}
-					}) :
+					} ) :
 					function( elem ) {
 						return fn( elem, 0, args );
 					};
@@ -1956,8 +2087,10 @@ Expr = Sizzle.selectors = {
 	},
 
 	pseudos: {
+
 		// Potentially complex pseudos
-		"not": markFunction(function( selector ) {
+		"not": markFunction( function( selector ) {
+
 			// Trim the selector passed to compile
 			// to avoid treating leading and trailing
 			// spaces as combinators
@@ -1966,39 +2099,40 @@ Expr = Sizzle.selectors = {
 				matcher = compile( selector.replace( rtrim, "$1" ) );
 
 			return matcher[ expando ] ?
-				markFunction(function( seed, matches, context, xml ) {
+				markFunction( function( seed, matches, _context, xml ) {
 					var elem,
 						unmatched = matcher( seed, null, xml, [] ),
 						i = seed.length;
 
 					// Match elements unmatched by `matcher`
 					while ( i-- ) {
-						if ( (elem = unmatched[i]) ) {
-							seed[i] = !(matches[i] = elem);
+						if ( ( elem = unmatched[ i ] ) ) {
+							seed[ i ] = !( matches[ i ] = elem );
 						}
 					}
-				}) :
-				function( elem, context, xml ) {
-					input[0] = elem;
+				} ) :
+				function( elem, _context, xml ) {
+					input[ 0 ] = elem;
 					matcher( input, null, xml, results );
+
 					// Don't keep the element (issue #299)
-					input[0] = null;
+					input[ 0 ] = null;
 					return !results.pop();
 				};
-		}),
+		} ),
 
-		"has": markFunction(function( selector ) {
+		"has": markFunction( function( selector ) {
 			return function( elem ) {
 				return Sizzle( selector, elem ).length > 0;
 			};
-		}),
+		} ),
 
-		"contains": markFunction(function( text ) {
+		"contains": markFunction( function( text ) {
 			text = text.replace( runescape, funescape );
 			return function( elem ) {
-				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+				return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
 			};
-		}),
+		} ),
 
 		// "Whether an element is represented by a :lang() selector
 		// is based solely on the element's language value
@@ -2008,25 +2142,26 @@ Expr = Sizzle.selectors = {
 		// The identifier C does not have to be a valid language name."
 		// http://www.w3.org/TR/selectors/#lang-pseudo
 		"lang": markFunction( function( lang ) {
+
 			// lang value must be a valid identifier
-			if ( !ridentifier.test(lang || "") ) {
+			if ( !ridentifier.test( lang || "" ) ) {
 				Sizzle.error( "unsupported lang: " + lang );
 			}
 			lang = lang.replace( runescape, funescape ).toLowerCase();
 			return function( elem ) {
 				var elemLang;
 				do {
-					if ( (elemLang = documentIsHTML ?
+					if ( ( elemLang = documentIsHTML ?
 						elem.lang :
-						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+						elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) {
 
 						elemLang = elemLang.toLowerCase();
 						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
 					}
-				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );
 				return false;
 			};
-		}),
+		} ),
 
 		// Miscellaneous
 		"target": function( elem ) {
@@ -2039,7 +2174,9 @@ Expr = Sizzle.selectors = {
 		},
 
 		"focus": function( elem ) {
-			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+			return elem === document.activeElement &&
+				( !document.hasFocus || document.hasFocus() ) &&
+				!!( elem.type || elem.href || ~elem.tabIndex );
 		},
 
 		// Boolean properties
@@ -2047,16 +2184,20 @@ Expr = Sizzle.selectors = {
 		"disabled": createDisabledPseudo( true ),
 
 		"checked": function( elem ) {
+
 			// In CSS3, :checked should return both checked and selected elements
 			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
 			var nodeName = elem.nodeName.toLowerCase();
-			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+			return ( nodeName === "input" && !!elem.checked ) ||
+				( nodeName === "option" && !!elem.selected );
 		},
 
 		"selected": function( elem ) {
+
 			// Accessing this property makes selected-by-default
 			// options in Safari work properly
 			if ( elem.parentNode ) {
+				// eslint-disable-next-line no-unused-expressions
 				elem.parentNode.selectedIndex;
 			}
 
@@ -2065,6 +2206,7 @@ Expr = Sizzle.selectors = {
 
 		// Contents
 		"empty": function( elem ) {
+
 			// http://www.w3.org/TR/selectors/#empty-pseudo
 			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
 			//   but not by others (comment: 8; processing instruction: 7; etc.)
@@ -2078,7 +2220,7 @@ Expr = Sizzle.selectors = {
 		},
 
 		"parent": function( elem ) {
-			return !Expr.pseudos["empty"]( elem );
+			return !Expr.pseudos[ "empty" ]( elem );
 		},
 
 		// Element/input types
@@ -2102,57 +2244,62 @@ Expr = Sizzle.selectors = {
 
 				// Support: IE<8
 				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
-				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+				( ( attr = elem.getAttribute( "type" ) ) == null ||
+					attr.toLowerCase() === "text" );
 		},
 
 		// Position-in-collection
-		"first": createPositionalPseudo(function() {
+		"first": createPositionalPseudo( function() {
 			return [ 0 ];
-		}),
+		} ),
 
-		"last": createPositionalPseudo(function( matchIndexes, length ) {
+		"last": createPositionalPseudo( function( _matchIndexes, length ) {
 			return [ length - 1 ];
-		}),
+		} ),
 
-		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+		"eq": createPositionalPseudo( function( _matchIndexes, length, argument ) {
 			return [ argument < 0 ? argument + length : argument ];
-		}),
+		} ),
 
-		"even": createPositionalPseudo(function( matchIndexes, length ) {
+		"even": createPositionalPseudo( function( matchIndexes, length ) {
 			var i = 0;
 			for ( ; i < length; i += 2 ) {
 				matchIndexes.push( i );
 			}
 			return matchIndexes;
-		}),
+		} ),
 
-		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+		"odd": createPositionalPseudo( function( matchIndexes, length ) {
 			var i = 1;
 			for ( ; i < length; i += 2 ) {
 				matchIndexes.push( i );
 			}
 			return matchIndexes;
-		}),
-
-		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
-			var i = argument < 0 ? argument + length : argument;
+		} ),
+
+		"lt": createPositionalPseudo( function( matchIndexes, length, argument ) {
+			var i = argument < 0 ?
+				argument + length :
+				argument > length ?
+					length :
+					argument;
 			for ( ; --i >= 0; ) {
 				matchIndexes.push( i );
 			}
 			return matchIndexes;
-		}),
+		} ),
 
-		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+		"gt": createPositionalPseudo( function( matchIndexes, length, argument ) {
 			var i = argument < 0 ? argument + length : argument;
 			for ( ; ++i < length; ) {
 				matchIndexes.push( i );
 			}
 			return matchIndexes;
-		})
+		} )
 	}
 };
 
-Expr.pseudos["nth"] = Expr.pseudos["eq"];
+Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ];
 
 // Add button/input type pseudos
 for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
@@ -2183,37 +2330,39 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
 	while ( soFar ) {
 
 		// Comma and first run
-		if ( !matched || (match = rcomma.exec( soFar )) ) {
+		if ( !matched || ( match = rcomma.exec( soFar ) ) ) {
 			if ( match ) {
+
 				// Don't consume trailing commas as valid
-				soFar = soFar.slice( match[0].length ) || soFar;
+				soFar = soFar.slice( match[ 0 ].length ) || soFar;
 			}
-			groups.push( (tokens = []) );
+			groups.push( ( tokens = [] ) );
 		}
 
 		matched = false;
 
 		// Combinators
-		if ( (match = rcombinators.exec( soFar )) ) {
+		if ( ( match = rcombinators.exec( soFar ) ) ) {
 			matched = match.shift();
-			tokens.push({
+			tokens.push( {
 				value: matched,
+
 				// Cast descendant combinators to space
-				type: match[0].replace( rtrim, " " )
-			});
+				type: match[ 0 ].replace( rtrim, " " )
+			} );
 			soFar = soFar.slice( matched.length );
 		}
 
 		// Filters
 		for ( type in Expr.filter ) {
-			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
-				(match = preFilters[ type ]( match ))) ) {
+			if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||
+				( match = preFilters[ type ]( match ) ) ) ) {
 				matched = match.shift();
-				tokens.push({
+				tokens.push( {
 					value: matched,
 					type: type,
 					matches: match
-				});
+				} );
 				soFar = soFar.slice( matched.length );
 			}
 		}
@@ -2230,6 +2379,7 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
 		soFar.length :
 		soFar ?
 			Sizzle.error( selector ) :
+
 			// Cache the tokens
 			tokenCache( selector, groups ).slice( 0 );
 };
@@ -2239,7 +2389,7 @@ function toSelector( tokens ) {
 		len = tokens.length,
 		selector = "";
 	for ( ; i < len; i++ ) {
-		selector += tokens[i].value;
+		selector += tokens[ i ].value;
 	}
 	return selector;
 }
@@ -2252,9 +2402,10 @@ function addCombinator( matcher, combinator, base ) {
 		doneName = done++;
 
 	return combinator.first ?
+
 		// Check against closest ancestor/preceding element
 		function( elem, context, xml ) {
-			while ( (elem = elem[ dir ]) ) {
+			while ( ( elem = elem[ dir ] ) ) {
 				if ( elem.nodeType === 1 || checkNonElements ) {
 					return matcher( elem, context, xml );
 				}
@@ -2269,7 +2420,7 @@ function addCombinator( matcher, combinator, base ) {
 
 			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
 			if ( xml ) {
-				while ( (elem = elem[ dir ]) ) {
+				while ( ( elem = elem[ dir ] ) ) {
 					if ( elem.nodeType === 1 || checkNonElements ) {
 						if ( matcher( elem, context, xml ) ) {
 							return true;
@@ -2277,27 +2428,29 @@ function addCombinator( matcher, combinator, base ) {
 					}
 				}
 			} else {
-				while ( (elem = elem[ dir ]) ) {
+				while ( ( elem = elem[ dir ] ) ) {
 					if ( elem.nodeType === 1 || checkNonElements ) {
-						outerCache = elem[ expando ] || (elem[ expando ] = {});
+						outerCache = elem[ expando ] || ( elem[ expando ] = {} );
 
 						// Support: IE <9 only
 						// Defend against cloned attroperties (jQuery gh-1709)
-						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+						uniqueCache = outerCache[ elem.uniqueID ] ||
+							( outerCache[ elem.uniqueID ] = {} );
 
 						if ( skip && skip === elem.nodeName.toLowerCase() ) {
 							elem = elem[ dir ] || elem;
-						} else if ( (oldCache = uniqueCache[ key ]) &&
+						} else if ( ( oldCache = uniqueCache[ key ] ) &&
 							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
 
 							// Assign to newCache so results back-propagate to previous elements
-							return (newCache[ 2 ] = oldCache[ 2 ]);
+							return ( newCache[ 2 ] = oldCache[ 2 ] );
 						} else {
+
 							// Reuse newcache so results back-propagate to previous elements
 							uniqueCache[ key ] = newCache;
 
 							// A match means we're done; a fail means we have to keep checking
-							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+							if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {
 								return true;
 							}
 						}
@@ -2313,20 +2466,20 @@ function elementMatcher( matchers ) {
 		function( elem, context, xml ) {
 			var i = matchers.length;
 			while ( i-- ) {
-				if ( !matchers[i]( elem, context, xml ) ) {
+				if ( !matchers[ i ]( elem, context, xml ) ) {
 					return false;
 				}
 			}
 			return true;
 		} :
-		matchers[0];
+		matchers[ 0 ];
 }
 
 function multipleContexts( selector, contexts, results ) {
 	var i = 0,
 		len = contexts.length;
 	for ( ; i < len; i++ ) {
-		Sizzle( selector, contexts[i], results );
+		Sizzle( selector, contexts[ i ], results );
 	}
 	return results;
 }
@@ -2339,7 +2492,7 @@ function condense( unmatched, map, filter, context, xml ) {
 		mapped = map != null;
 
 	for ( ; i < len; i++ ) {
-		if ( (elem = unmatched[i]) ) {
+		if ( ( elem = unmatched[ i ] ) ) {
 			if ( !filter || filter( elem, context, xml ) ) {
 				newUnmatched.push( elem );
 				if ( mapped ) {
@@ -2359,14 +2512,18 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 	if ( postFinder && !postFinder[ expando ] ) {
 		postFinder = setMatcher( postFinder, postSelector );
 	}
-	return markFunction(function( seed, results, context, xml ) {
+	return markFunction( function( seed, results, context, xml ) {
 		var temp, i, elem,
 			preMap = [],
 			postMap = [],
 			preexisting = results.length,
 
 			// Get initial elements from seed or context
-			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+			elems = seed || multipleContexts(
+				selector || "*",
+				context.nodeType ? [ context ] : context,
+				[]
+			),
 
 			// Prefilter to get matcher input, preserving a map for seed-results synchronization
 			matcherIn = preFilter && ( seed || !selector ) ?
@@ -2374,6 +2531,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 				elems,
 
 			matcherOut = matcher ?
+
 				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
 				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
 
@@ -2397,8 +2555,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 			// Un-match failing elements by moving them back to matcherIn
 			i = temp.length;
 			while ( i-- ) {
-				if ( (elem = temp[i]) ) {
-					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				if ( ( elem = temp[ i ] ) ) {
+					matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );
 				}
 			}
 		}
@@ -2406,25 +2564,27 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 		if ( seed ) {
 			if ( postFinder || preFilter ) {
 				if ( postFinder ) {
+
 					// Get the final matcherOut by condensing this intermediate into postFinder contexts
 					temp = [];
 					i = matcherOut.length;
 					while ( i-- ) {
-						if ( (elem = matcherOut[i]) ) {
+						if ( ( elem = matcherOut[ i ] ) ) {
+
 							// Restore matcherIn since elem is not yet a final match
-							temp.push( (matcherIn[i] = elem) );
+							temp.push( ( matcherIn[ i ] = elem ) );
 						}
 					}
-					postFinder( null, (matcherOut = []), temp, xml );
+					postFinder( null, ( matcherOut = [] ), temp, xml );
 				}
 
 				// Move matched elements from seed to results to keep them synchronized
 				i = matcherOut.length;
 				while ( i-- ) {
-					if ( (elem = matcherOut[i]) &&
-						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+					if ( ( elem = matcherOut[ i ] ) &&
+						( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {
 
-						seed[temp] = !(results[temp] = elem);
+						seed[ temp ] = !( results[ temp ] = elem );
 					}
 				}
 			}
@@ -2442,14 +2602,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 				push.apply( results, matcherOut );
 			}
 		}
-	});
+	} );
 }
 
 function matcherFromTokens( tokens ) {
 	var checkContext, matcher, j,
 		len = tokens.length,
-		leadingRelative = Expr.relative[ tokens[0].type ],
-		implicitRelative = leadingRelative || Expr.relative[" "],
+		leadingRelative = Expr.relative[ tokens[ 0 ].type ],
+		implicitRelative = leadingRelative || Expr.relative[ " " ],
 		i = leadingRelative ? 1 : 0,
 
 		// The foundational matcher ensures that elements are reachable from top-level context(s)
@@ -2461,38 +2621,43 @@ function matcherFromTokens( tokens ) {
 		}, implicitRelative, true ),
 		matchers = [ function( elem, context, xml ) {
 			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
-				(checkContext = context).nodeType ?
+				( checkContext = context ).nodeType ?
 					matchContext( elem, context, xml ) :
 					matchAnyContext( elem, context, xml ) );
+
 			// Avoid hanging onto element (issue #299)
 			checkContext = null;
 			return ret;
 		} ];
 
 	for ( ; i < len; i++ ) {
-		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
-			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {
+			matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];
 		} else {
-			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+			matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );
 
 			// Return special upon seeing a positional matcher
 			if ( matcher[ expando ] ) {
+
 				// Find the next relative operator (if any) for proper handling
 				j = ++i;
 				for ( ; j < len; j++ ) {
-					if ( Expr.relative[ tokens[j].type ] ) {
+					if ( Expr.relative[ tokens[ j ].type ] ) {
 						break;
 					}
 				}
 				return setMatcher(
 					i > 1 && elementMatcher( matchers ),
 					i > 1 && toSelector(
-						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
-						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+
+					// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+					tokens
+						.slice( 0, i - 1 )
+						.concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
 					).replace( rtrim, "$1" ),
 					matcher,
 					i < j && matcherFromTokens( tokens.slice( i, j ) ),
-					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),
 					j < len && toSelector( tokens )
 				);
 			}
@@ -2513,28 +2678,40 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 				unmatched = seed && [],
 				setMatched = [],
 				contextBackup = outermostContext,
+
 				// We must always have either seed elements or outermost context
-				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ),
+
 				// Use integer dirruns iff this is the outermost matcher
-				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),
 				len = elems.length;
 
 			if ( outermost ) {
-				outermostContext = context === document || context || outermost;
+
+				// Support: IE 11+, Edge 17 - 18+
+				// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+				// two documents; shallow comparisons work.
+				// eslint-disable-next-line eqeqeq
+				outermostContext = context == document || context || outermost;
 			}
 
 			// Add elements passing elementMatchers directly to results
 			// Support: IE<9, Safari
 			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
-			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+			for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {
 				if ( byElement && elem ) {
 					j = 0;
-					if ( !context && elem.ownerDocument !== document ) {
+
+					// Support: IE 11+, Edge 17 - 18+
+					// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+					// two documents; shallow comparisons work.
+					// eslint-disable-next-line eqeqeq
+					if ( !context && elem.ownerDocument != document ) {
 						setDocument( elem );
 						xml = !documentIsHTML;
 					}
-					while ( (matcher = elementMatchers[j++]) ) {
-						if ( matcher( elem, context || document, xml) ) {
+					while ( ( matcher = elementMatchers[ j++ ] ) ) {
+						if ( matcher( elem, context || document, xml ) ) {
 							results.push( elem );
 							break;
 						}
@@ -2546,8 +2723,9 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 
 				// Track unmatched elements for set filters
 				if ( bySet ) {
+
 					// They will have gone through all possible matchers
-					if ( (elem = !matcher && elem) ) {
+					if ( ( elem = !matcher && elem ) ) {
 						matchedCount--;
 					}
 
@@ -2571,16 +2749,17 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 			// numerically zero.
 			if ( bySet && i !== matchedCount ) {
 				j = 0;
-				while ( (matcher = setMatchers[j++]) ) {
+				while ( ( matcher = setMatchers[ j++ ] ) ) {
 					matcher( unmatched, setMatched, context, xml );
 				}
 
 				if ( seed ) {
+
 					// Reintegrate element matches to eliminate the need for sorting
 					if ( matchedCount > 0 ) {
 						while ( i-- ) {
-							if ( !(unmatched[i] || setMatched[i]) ) {
-								setMatched[i] = pop.call( results );
+							if ( !( unmatched[ i ] || setMatched[ i ] ) ) {
+								setMatched[ i ] = pop.call( results );
 							}
 						}
 					}
@@ -2621,13 +2800,14 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 		cached = compilerCache[ selector + " " ];
 
 	if ( !cached ) {
+
 		// Generate a function of recursive functions that can be used to check each element
 		if ( !match ) {
 			match = tokenize( selector );
 		}
 		i = match.length;
 		while ( i-- ) {
-			cached = matcherFromTokens( match[i] );
+			cached = matcherFromTokens( match[ i ] );
 			if ( cached[ expando ] ) {
 				setMatchers.push( cached );
 			} else {
@@ -2636,7 +2816,10 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 		}
 
 		// Cache the compiled function
-		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+		cached = compilerCache(
+			selector,
+			matcherFromGroupMatchers( elementMatchers, setMatchers )
+		);
 
 		// Save selector and tokenization
 		cached.selector = selector;
@@ -2656,7 +2839,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 select = Sizzle.select = function( selector, context, results, seed ) {
 	var i, tokens, token, type, find,
 		compiled = typeof selector === "function" && selector,
-		match = !seed && tokenize( (selector = compiled.selector || selector) );
+		match = !seed && tokenize( ( selector = compiled.selector || selector ) );
 
 	results = results || [];
 
@@ -2665,11 +2848,12 @@ select = Sizzle.select = function( selector, context, results, seed ) {
 	if ( match.length === 1 ) {
 
 		// Reduce context if the leading compound selector is an ID
-		tokens = match[0] = match[0].slice( 0 );
-		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
-				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+		tokens = match[ 0 ] = match[ 0 ].slice( 0 );
+		if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" &&
+			context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {
 
-			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			context = ( Expr.find[ "ID" ]( token.matches[ 0 ]
+				.replace( runescape, funescape ), context ) || [] )[ 0 ];
 			if ( !context ) {
 				return results;
 
@@ -2682,20 +2866,22 @@ select = Sizzle.select = function( selector, context, results, seed ) {
 		}
 
 		// Fetch a seed set for right-to-left matching
-		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length;
 		while ( i-- ) {
-			token = tokens[i];
+			token = tokens[ i ];
 
 			// Abort if we hit a combinator
-			if ( Expr.relative[ (type = token.type) ] ) {
+			if ( Expr.relative[ ( type = token.type ) ] ) {
 				break;
 			}
-			if ( (find = Expr.find[ type ]) ) {
+			if ( ( find = Expr.find[ type ] ) ) {
+
 				// Search, expanding context for leading sibling combinators
-				if ( (seed = find(
-					token.matches[0].replace( runescape, funescape ),
-					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
-				)) ) {
+				if ( ( seed = find(
+					token.matches[ 0 ].replace( runescape, funescape ),
+					rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||
+						context
+				) ) ) {
 
 					// If seed is empty or no tokens remain, we can return early
 					tokens.splice( i, 1 );
@@ -2726,7 +2912,7 @@ select = Sizzle.select = function( selector, context, results, seed ) {
 // One-time assignments
 
 // Sort stability
-support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;
 
 // Support: Chrome 14-35+
 // Always assume duplicates if they aren't passed to the comparison function
@@ -2737,58 +2923,59 @@ setDocument();
 
 // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
 // Detached nodes confoundingly follow *each other*
-support.sortDetached = assert(function( el ) {
+support.sortDetached = assert( function( el ) {
+
 	// Should return 1, but returns 4 (following)
-	return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
-});
+	return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
+} );
 
 // Support: IE<8
 // Prevent attribute/property "interpolation"
 // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
-if ( !assert(function( el ) {
+if ( !assert( function( el ) {
 	el.innerHTML = "<a href='#'></a>";
-	return el.firstChild.getAttribute("href") === "#" ;
-}) ) {
+	return el.firstChild.getAttribute( "href" ) === "#";
+} ) ) {
 	addHandle( "type|href|height|width", function( elem, name, isXML ) {
 		if ( !isXML ) {
 			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
 		}
-	});
+	} );
 }
 
 // Support: IE<9
 // Use defaultValue in place of getAttribute("value")
-if ( !support.attributes || !assert(function( el ) {
+if ( !support.attributes || !assert( function( el ) {
 	el.innerHTML = "<input/>";
 	el.firstChild.setAttribute( "value", "" );
 	return el.firstChild.getAttribute( "value" ) === "";
-}) ) {
-	addHandle( "value", function( elem, name, isXML ) {
+} ) ) {
+	addHandle( "value", function( elem, _name, isXML ) {
 		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
 			return elem.defaultValue;
 		}
-	});
+	} );
 }
 
 // Support: IE<9
 // Use getAttributeNode to fetch booleans when getAttribute lies
-if ( !assert(function( el ) {
-	return el.getAttribute("disabled") == null;
-}) ) {
+if ( !assert( function( el ) {
+	return el.getAttribute( "disabled" ) == null;
+} ) ) {
 	addHandle( booleans, function( elem, name, isXML ) {
 		var val;
 		if ( !isXML ) {
 			return elem[ name ] === true ? name.toLowerCase() :
-					(val = elem.getAttributeNode( name )) && val.specified ?
+				( val = elem.getAttributeNode( name ) ) && val.specified ?
 					val.value :
-				null;
+					null;
 		}
-	});
+	} );
 }
 
 return Sizzle;
 
-})( window );
+} )( window );
 
 
 
@@ -2841,18 +3028,16 @@ var rneedsContext = jQuery.expr.match.needsContext;
 
 function nodeName( elem, name ) {
 
-  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+	return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
 
-};
+}
 var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
 
 
 
-var risSimple = /^.[^:#\[\.,]*$/;
-
 // Implement the identical functionality for filter and not
 function winnow( elements, qualifier, not ) {
-	if ( jQuery.isFunction( qualifier ) ) {
+	if ( isFunction( qualifier ) ) {
 		return jQuery.grep( elements, function( elem, i ) {
 			return !!qualifier.call( elem, i, elem ) !== not;
 		} );
@@ -2872,16 +3057,8 @@ function winnow( elements, qualifier, not ) {
 		} );
 	}
 
-	// Simple selector that can be filtered directly, removing non-Elements
-	if ( risSimple.test( qualifier ) ) {
-		return jQuery.filter( qualifier, elements, not );
-	}
-
-	// Complex selector, compare the two sets, removing non-Elements
-	qualifier = jQuery.filter( qualifier, elements );
-	return jQuery.grep( elements, function( elem ) {
-		return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
-	} );
+	// Filtered directly for both simple and complex selectors
+	return jQuery.filter( qualifier, elements, not );
 }
 
 jQuery.filter = function( expr, elems, not ) {
@@ -2952,8 +3129,8 @@ jQuery.fn.extend( {
 var rootjQuery,
 
 	// A simple way to check for HTML strings
-	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
-	// Strict HTML recognition (#11290: must start with <)
+	// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)
+	// Strict HTML recognition (trac-11290: must start with <)
 	// Shortcut simple #id case for speed
 	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
 
@@ -3002,7 +3179,7 @@ var rootjQuery,
 						for ( match in context ) {
 
 							// Properties of context are called as methods if possible
-							if ( jQuery.isFunction( this[ match ] ) ) {
+							if ( isFunction( this[ match ] ) ) {
 								this[ match ]( context[ match ] );
 
 							// ...and otherwise set as attributes
@@ -3045,7 +3222,7 @@ var rootjQuery,
 
 		// HANDLE: $(function)
 		// Shortcut for document ready
-		} else if ( jQuery.isFunction( selector ) ) {
+		} else if ( isFunction( selector ) ) {
 			return root.ready !== undefined ?
 				root.ready( selector ) :
 
@@ -3167,7 +3344,7 @@ jQuery.each( {
 	parents: function( elem ) {
 		return dir( elem, "parentNode" );
 	},
-	parentsUntil: function( elem, i, until ) {
+	parentsUntil: function( elem, _i, until ) {
 		return dir( elem, "parentNode", until );
 	},
 	next: function( elem ) {
@@ -3182,10 +3359,10 @@ jQuery.each( {
 	prevAll: function( elem ) {
 		return dir( elem, "previousSibling" );
 	},
-	nextUntil: function( elem, i, until ) {
+	nextUntil: function( elem, _i, until ) {
 		return dir( elem, "nextSibling", until );
 	},
-	prevUntil: function( elem, i, until ) {
+	prevUntil: function( elem, _i, until ) {
 		return dir( elem, "previousSibling", until );
 	},
 	siblings: function( elem ) {
@@ -3195,18 +3372,24 @@ jQuery.each( {
 		return siblings( elem.firstChild );
 	},
 	contents: function( elem ) {
-        if ( nodeName( elem, "iframe" ) ) {
-            return elem.contentDocument;
-        }
+		if ( elem.contentDocument != null &&
+
+			// Support: IE 11+
+			// <object> elements with no `data` attribute has an object
+			// `contentDocument` with a `null` prototype.
+			getProto( elem.contentDocument ) ) {
+
+			return elem.contentDocument;
+		}
 
-        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
-        // Treat the template element as a regular one in browsers that
-        // don't support it.
-        if ( nodeName( elem, "template" ) ) {
-            elem = elem.content || elem;
-        }
+		// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+		// Treat the template element as a regular one in browsers that
+		// don't support it.
+		if ( nodeName( elem, "template" ) ) {
+			elem = elem.content || elem;
+		}
 
-        return jQuery.merge( [], elem.childNodes );
+		return jQuery.merge( [], elem.childNodes );
 	}
 }, function( name, fn ) {
 	jQuery.fn[ name ] = function( until, selector ) {
@@ -3360,11 +3543,11 @@ jQuery.Callbacks = function( options ) {
 
 					( function add( args ) {
 						jQuery.each( args, function( _, arg ) {
-							if ( jQuery.isFunction( arg ) ) {
+							if ( isFunction( arg ) ) {
 								if ( !options.unique || !self.has( arg ) ) {
 									list.push( arg );
 								}
-							} else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+							} else if ( arg && arg.length && toType( arg ) !== "string" ) {
 
 								// Inspect recursively
 								add( arg );
@@ -3479,11 +3662,11 @@ function adoptValue( value, resolve, reject, noValue ) {
 	try {
 
 		// Check for promise aspect first to privilege synchronous behavior
-		if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
+		if ( value && isFunction( ( method = value.promise ) ) ) {
 			method.call( value ).done( resolve ).fail( reject );
 
 		// Other thenables
-		} else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
+		} else if ( value && isFunction( ( method = value.then ) ) ) {
 			method.call( value, resolve, reject );
 
 		// Other non-thenables
@@ -3538,17 +3721,17 @@ jQuery.extend( {
 					var fns = arguments;
 
 					return jQuery.Deferred( function( newDefer ) {
-						jQuery.each( tuples, function( i, tuple ) {
+						jQuery.each( tuples, function( _i, tuple ) {
 
 							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
-							var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
 
 							// deferred.progress(function() { bind to newDefer or newDefer.notify })
 							// deferred.done(function() { bind to newDefer or newDefer.resolve })
 							// deferred.fail(function() { bind to newDefer or newDefer.reject })
 							deferred[ tuple[ 1 ] ]( function() {
 								var returned = fn && fn.apply( this, arguments );
-								if ( returned && jQuery.isFunction( returned.promise ) ) {
+								if ( returned && isFunction( returned.promise ) ) {
 									returned.promise()
 										.progress( newDefer.notify )
 										.done( newDefer.resolve )
@@ -3602,7 +3785,7 @@ jQuery.extend( {
 										returned.then;
 
 									// Handle a returned thenable
-									if ( jQuery.isFunction( then ) ) {
+									if ( isFunction( then ) ) {
 
 										// Special processors (notify) just wait for resolution
 										if ( special ) {
@@ -3698,7 +3881,7 @@ jQuery.extend( {
 							resolve(
 								0,
 								newDefer,
-								jQuery.isFunction( onProgress ) ?
+								isFunction( onProgress ) ?
 									onProgress :
 									Identity,
 								newDefer.notifyWith
@@ -3710,7 +3893,7 @@ jQuery.extend( {
 							resolve(
 								0,
 								newDefer,
-								jQuery.isFunction( onFulfilled ) ?
+								isFunction( onFulfilled ) ?
 									onFulfilled :
 									Identity
 							)
@@ -3721,7 +3904,7 @@ jQuery.extend( {
 							resolve(
 								0,
 								newDefer,
-								jQuery.isFunction( onRejected ) ?
+								isFunction( onRejected ) ?
 									onRejected :
 									Thrower
 							)
@@ -3761,8 +3944,15 @@ jQuery.extend( {
 					// fulfilled_callbacks.disable
 					tuples[ 3 - i ][ 2 ].disable,
 
+					// rejected_handlers.disable
+					// fulfilled_handlers.disable
+					tuples[ 3 - i ][ 3 ].disable,
+
 					// progress_callbacks.lock
-					tuples[ 0 ][ 2 ].lock
+					tuples[ 0 ][ 2 ].lock,
+
+					// progress_handlers.lock
+					tuples[ 0 ][ 3 ].lock
 				);
 			}
 
@@ -3811,8 +4001,8 @@ jQuery.extend( {
 			resolveContexts = Array( i ),
 			resolveValues = slice.call( arguments ),
 
-			// the master Deferred
-			master = jQuery.Deferred(),
+			// the primary Deferred
+			primary = jQuery.Deferred(),
 
 			// subordinate callback factory
 			updateFunc = function( i ) {
@@ -3820,30 +4010,30 @@ jQuery.extend( {
 					resolveContexts[ i ] = this;
 					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
 					if ( !( --remaining ) ) {
-						master.resolveWith( resolveContexts, resolveValues );
+						primary.resolveWith( resolveContexts, resolveValues );
 					}
 				};
 			};
 
 		// Single- and empty arguments are adopted like Promise.resolve
 		if ( remaining <= 1 ) {
-			adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+			adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,
 				!remaining );
 
 			// Use .then() to unwrap secondary thenables (cf. gh-3000)
-			if ( master.state() === "pending" ||
-				jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+			if ( primary.state() === "pending" ||
+				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
 
-				return master.then();
+				return primary.then();
 			}
 		}
 
 		// Multiple arguments are aggregated like Promise.all array elements
 		while ( i-- ) {
-			adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+			adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );
 		}
 
-		return master.promise();
+		return primary.promise();
 	}
 } );
 
@@ -3897,7 +4087,7 @@ jQuery.extend( {
 	isReady: false,
 
 	// A counter to track how many items to wait for before
-	// the ready event fires. See #6781
+	// the ready event fires. See trac-6781
 	readyWait: 1,
 
 	// Handle when the DOM is ready
@@ -3960,7 +4150,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 		bulk = key == null;
 
 	// Sets many values
-	if ( jQuery.type( key ) === "object" ) {
+	if ( toType( key ) === "object" ) {
 		chainable = true;
 		for ( i in key ) {
 			access( elems, fn, i, key[ i ], true, emptyGet, raw );
@@ -3970,7 +4160,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 	} else if ( value !== undefined ) {
 		chainable = true;
 
-		if ( !jQuery.isFunction( value ) ) {
+		if ( !isFunction( value ) ) {
 			raw = true;
 		}
 
@@ -3984,7 +4174,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 			// ...except when executing function values
 			} else {
 				bulk = fn;
-				fn = function( elem, key, value ) {
+				fn = function( elem, _key, value ) {
 					return bulk.call( jQuery( elem ), value );
 				};
 			}
@@ -3994,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 			for ( ; i < len; i++ ) {
 				fn(
 					elems[ i ], key, raw ?
-					value :
-					value.call( elems[ i ], i, fn( elems[ i ], key ) )
+						value :
+						value.call( elems[ i ], i, fn( elems[ i ], key ) )
 				);
 			}
 		}
@@ -4012,6 +4202,23 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 
 	return len ? fn( elems[ 0 ], key ) : emptyGet;
 };
+
+
+// Matches dashed string for camelizing
+var rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([a-z])/g;
+
+// Used by camelCase as callback to replace()
+function fcamelCase( _all, letter ) {
+	return letter.toUpperCase();
+}
+
+// Convert dashed to camelCase; used by the css and data modules
+// Support: IE <=9 - 11, Edge 12 - 15
+// Microsoft forgot to hump their vendor prefix (trac-9572)
+function camelCase( string ) {
+	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+}
 var acceptData = function( owner ) {
 
 	// Accepts only:
@@ -4044,7 +4251,7 @@ Data.prototype = {
 			value = {};
 
 			// We can accept data for non-element nodes in modern browsers,
-			// but we should not, see #8335.
+			// but we should not, see trac-8335.
 			// Always return an empty object.
 			if ( acceptData( owner ) ) {
 
@@ -4074,14 +4281,14 @@ Data.prototype = {
 		// Handle: [ owner, key, value ] args
 		// Always use camelCase key (gh-2257)
 		if ( typeof data === "string" ) {
-			cache[ jQuery.camelCase( data ) ] = value;
+			cache[ camelCase( data ) ] = value;
 
 		// Handle: [ owner, { properties } ] args
 		} else {
 
 			// Copy the properties one-by-one to the cache object
 			for ( prop in data ) {
-				cache[ jQuery.camelCase( prop ) ] = data[ prop ];
+				cache[ camelCase( prop ) ] = data[ prop ];
 			}
 		}
 		return cache;
@@ -4091,7 +4298,7 @@ Data.prototype = {
 			this.cache( owner ) :
 
 			// Always use camelCase key (gh-2257)
-			owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
+			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
 	},
 	access: function( owner, key, value ) {
 
@@ -4139,9 +4346,9 @@ Data.prototype = {
 
 				// If key is an array of keys...
 				// We always set camelCase keys, so remove that.
-				key = key.map( jQuery.camelCase );
+				key = key.map( camelCase );
 			} else {
-				key = jQuery.camelCase( key );
+				key = camelCase( key );
 
 				// If a key with the spaces exists, use it.
 				// Otherwise, create an array by matching non-whitespace
@@ -4283,11 +4490,11 @@ jQuery.fn.extend( {
 					while ( i-- ) {
 
 						// Support: IE 11 only
-						// The attrs elements can be null (#14894)
+						// The attrs elements can be null (trac-14894)
 						if ( attrs[ i ] ) {
 							name = attrs[ i ].name;
 							if ( name.indexOf( "data-" ) === 0 ) {
-								name = jQuery.camelCase( name.slice( 5 ) );
+								name = camelCase( name.slice( 5 ) );
 								dataAttr( elem, name, data[ name ] );
 							}
 						}
@@ -4491,6 +4698,26 @@ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
 
 var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
 
+var documentElement = document.documentElement;
+
+
+
+	var isAttached = function( elem ) {
+			return jQuery.contains( elem.ownerDocument, elem );
+		},
+		composed = { composed: true };
+
+	// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
+	// Check attachment across shadow DOM boundaries when possible (gh-3504)
+	// Support: iOS 10.0-10.2 only
+	// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
+	// leading to errors. We need to check for `getRootNode`.
+	if ( documentElement.getRootNode ) {
+		isAttached = function( elem ) {
+			return jQuery.contains( elem.ownerDocument, elem ) ||
+				elem.getRootNode( composed ) === elem.ownerDocument;
+		};
+	}
 var isHiddenWithinTree = function( elem, el ) {
 
 		// isHiddenWithinTree might be called from jQuery#filter function;
@@ -4505,37 +4732,15 @@ var isHiddenWithinTree = function( elem, el ) {
 			// Support: Firefox <=43 - 45
 			// Disconnected elements can have computed display: none, so first confirm that elem is
 			// in the document.
-			jQuery.contains( elem.ownerDocument, elem ) &&
+			isAttached( elem ) &&
 
 			jQuery.css( elem, "display" ) === "none";
 	};
 
-var swap = function( elem, options, callback, args ) {
-	var ret, name,
-		old = {};
-
-	// Remember the old values, and insert the new ones
-	for ( name in options ) {
-		old[ name ] = elem.style[ name ];
-		elem.style[ name ] = options[ name ];
-	}
-
-	ret = callback.apply( elem, args || [] );
-
-	// Revert the old values
-	for ( name in options ) {
-		elem.style[ name ] = old[ name ];
-	}
-
-	return ret;
-};
-
-
 
 
 function adjustCSS( elem, prop, valueParts, tween ) {
-	var adjusted,
-		scale = 1,
+	var adjusted, scale,
 		maxIterations = 20,
 		currentValue = tween ?
 			function() {
@@ -4548,38 +4753,42 @@ function adjustCSS( elem, prop, valueParts, tween ) {
 		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
 
 		// Starting value computation is required for potential unit mismatches
-		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+		initialInUnit = elem.nodeType &&
+			( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
 			rcssNum.exec( jQuery.css( elem, prop ) );
 
 	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
 
+		// Support: Firefox <=54
+		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
+		initial = initial / 2;
+
 		// Trust units reported by jQuery.css
 		unit = unit || initialInUnit[ 3 ];
 
-		// Make sure we update the tween properties later on
-		valueParts = valueParts || [];
-
 		// Iteratively approximate from a nonzero starting point
 		initialInUnit = +initial || 1;
 
-		do {
+		while ( maxIterations-- ) {
 
-			// If previous iteration zeroed out, double until we get *something*.
-			// Use string for doubling so we don't accidentally see scale as unchanged below
-			scale = scale || ".5";
-
-			// Adjust and apply
-			initialInUnit = initialInUnit / scale;
+			// Evaluate and update our best guess (doubling guesses that zero out).
+			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
 			jQuery.style( elem, prop, initialInUnit + unit );
+			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
+				maxIterations = 0;
+			}
+			initialInUnit = initialInUnit / scale;
 
-		// Update scale, tolerating zero or NaN from tween.cur()
-		// Break the loop if scale is unchanged or perfect, or if we've just had enough.
-		} while (
-			scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
-		);
-	}
+		}
 
-	if ( valueParts ) {
+		initialInUnit = initialInUnit * 2;
+		jQuery.style( elem, prop, initialInUnit + unit );
+
+		// Make sure we update the tween properties later on
+		valueParts = valueParts || [];
+	}
+
+	if ( valueParts ) {
 		initialInUnit = +initialInUnit || +initial || 0;
 
 		// Apply relative offset (+=/-=) if specified
@@ -4692,17 +4901,46 @@ jQuery.fn.extend( {
 } );
 var rcheckableType = ( /^(?:checkbox|radio)$/i );
 
-var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
 
-var rscriptType = ( /^$|\/(?:java|ecma)script/i );
+var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
 
 
 
-// We have to close these tags to support XHTML (#13200)
-var wrapMap = {
+( function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Android 4.0 - 4.3 only
+	// Check state lost if the name is set (trac-11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (trac-14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Android <=4.1 only
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE <=11 only
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
 
 	// Support: IE <=9 only
-	option: [ 1, "<select multiple='multiple'>", "</select>" ],
+	// IE <=9 replaces <option> tags with their contents when inserted outside of
+	// the select element.
+	div.innerHTML = "<option></option>";
+	support.option = !!div.lastChild;
+} )();
+
+
+// We have to close these tags to support XHTML (trac-13200)
+var wrapMap = {
 
 	// XHTML parsers do not magically insert elements in the
 	// same way that tag soup parsers do. So we cannot shorten
@@ -4715,17 +4953,19 @@ var wrapMap = {
 	_default: [ 0, "", "" ]
 };
 
-// Support: IE <=9 only
-wrapMap.optgroup = wrapMap.option;
-
 wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
 wrapMap.th = wrapMap.td;
 
+// Support: IE <=9 only
+if ( !support.option ) {
+	wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ];
+}
+
 
 function getAll( context, tag ) {
 
 	// Support: IE <=9 - 11 only
-	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
+	// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)
 	var ret;
 
 	if ( typeof context.getElementsByTagName !== "undefined" ) {
@@ -4764,7 +5004,7 @@ function setGlobalEval( elems, refElements ) {
 var rhtml = /<|&#?\w+;/;
 
 function buildFragment( elems, context, scripts, selection, ignored ) {
-	var elem, tmp, tag, wrap, contains, j,
+	var elem, tmp, tag, wrap, attached, j,
 		fragment = context.createDocumentFragment(),
 		nodes = [],
 		i = 0,
@@ -4776,7 +5016,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
 		if ( elem || elem === 0 ) {
 
 			// Add nodes directly
-			if ( jQuery.type( elem ) === "object" ) {
+			if ( toType( elem ) === "object" ) {
 
 				// Support: Android <=4.0 only, PhantomJS 1 only
 				// push.apply(_, arraylike) throws on ancient WebKit
@@ -4808,7 +5048,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
 				// Remember the top-level container
 				tmp = fragment.firstChild;
 
-				// Ensure the created nodes are orphaned (#12392)
+				// Ensure the created nodes are orphaned (trac-12392)
 				tmp.textContent = "";
 			}
 		}
@@ -4828,13 +5068,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
 			continue;
 		}
 
-		contains = jQuery.contains( elem.ownerDocument, elem );
+		attached = isAttached( elem );
 
 		// Append to fragment
 		tmp = getAll( fragment.appendChild( elem ), "script" );
 
 		// Preserve script evaluation history
-		if ( contains ) {
+		if ( attached ) {
 			setGlobalEval( tmp );
 		}
 
@@ -4853,38 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
 }
 
 
-( function() {
-	var fragment = document.createDocumentFragment(),
-		div = fragment.appendChild( document.createElement( "div" ) ),
-		input = document.createElement( "input" );
-
-	// Support: Android 4.0 - 4.3 only
-	// Check state lost if the name is set (#11217)
-	// Support: Windows Web Apps (WWA)
-	// `name` and `type` must use .setAttribute for WWA (#14901)
-	input.setAttribute( "type", "radio" );
-	input.setAttribute( "checked", "checked" );
-	input.setAttribute( "name", "t" );
-
-	div.appendChild( input );
-
-	// Support: Android <=4.1 only
-	// Older WebKit doesn't clone checked state correctly in fragments
-	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
-
-	// Support: IE <=11 only
-	// Make sure textarea (and checkbox) defaultValue is properly cloned
-	div.innerHTML = "<textarea>x</textarea>";
-	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
-} )();
-var documentElement = document.documentElement;
-
-
-
-var
-	rkeyEvent = /^key/,
-	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
-	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+var rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
 
 function returnTrue() {
 	return true;
@@ -4894,8 +5103,19 @@ function returnFalse() {
 	return false;
 }
 
+// Support: IE <=9 - 11+
+// focus() and blur() are asynchronous, except when they are no-op.
+// So expect focus to be synchronous when the element is already active,
+// and blur to be synchronous when the element is not already active.
+// (focus and blur are always synchronous in other supported browsers,
+// this just defines when we can count on it).
+function expectSync( elem, type ) {
+	return ( elem === safeActiveElement() ) === ( type === "focus" );
+}
+
 // Support: IE <=9 only
-// See #13393 for more info
+// Accessing document.activeElement can throw unexpectedly
+// https://bugs.jquery.com/ticket/13393
 function safeActiveElement() {
 	try {
 		return document.activeElement;
@@ -4978,8 +5198,8 @@ jQuery.event = {
 			special, handlers, type, namespaces, origType,
 			elemData = dataPriv.get( elem );
 
-		// Don't attach events to noData or text/comment nodes (but allow plain objects)
-		if ( !elemData ) {
+		// Only attach events to objects that accept data
+		if ( !acceptData( elem ) ) {
 			return;
 		}
 
@@ -5003,7 +5223,7 @@ jQuery.event = {
 
 		// Init the element's event structure and main handler, if this is the first
 		if ( !( events = elemData.events ) ) {
-			events = elemData.events = {};
+			events = elemData.events = Object.create( null );
 		}
 		if ( !( eventHandle = elemData.handle ) ) {
 			eventHandle = elemData.handle = function( e ) {
@@ -5161,12 +5381,15 @@ jQuery.event = {
 
 	dispatch: function( nativeEvent ) {
 
-		// Make a writable jQuery.Event from the native event object
-		var event = jQuery.event.fix( nativeEvent );
-
 		var i, j, ret, matched, handleObj, handlerQueue,
 			args = new Array( arguments.length ),
-			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+
+			// Make a writable jQuery.Event from the native event object
+			event = jQuery.event.fix( nativeEvent ),
+
+			handlers = (
+				dataPriv.get( this, "events" ) || Object.create( null )
+			)[ event.type ] || [],
 			special = jQuery.event.special[ event.type ] || {};
 
 		// Use the fix-ed jQuery.Event rather than the (read-only) native event
@@ -5195,9 +5418,10 @@ jQuery.event = {
 			while ( ( handleObj = matched.handlers[ j++ ] ) &&
 				!event.isImmediatePropagationStopped() ) {
 
-				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
-				// a subset or equal to those in the bound event (both can have no namespace).
-				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+				// If the event is namespaced, then each handler is only invoked if it is
+				// specially universal or its namespaces are a superset of the event's.
+				if ( !event.rnamespace || handleObj.namespace === false ||
+					event.rnamespace.test( handleObj.namespace ) ) {
 
 					event.handleObj = handleObj;
 					event.data = handleObj.data;
@@ -5245,15 +5469,15 @@ jQuery.event = {
 
 			for ( ; cur !== this; cur = cur.parentNode || this ) {
 
-				// Don't check non-elements (#13208)
-				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				// Don't check non-elements (trac-13208)
+				// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)
 				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
 					matchedHandlers = [];
 					matchedSelectors = {};
 					for ( i = 0; i < delegateCount; i++ ) {
 						handleObj = handlers[ i ];
 
-						// Don't conflict with Object.prototype properties (#13203)
+						// Don't conflict with Object.prototype properties (trac-13203)
 						sel = handleObj.selector + " ";
 
 						if ( matchedSelectors[ sel ] === undefined ) {
@@ -5286,15 +5510,15 @@ jQuery.event = {
 			enumerable: true,
 			configurable: true,
 
-			get: jQuery.isFunction( hook ) ?
+			get: isFunction( hook ) ?
 				function() {
 					if ( this.originalEvent ) {
-							return hook( this.originalEvent );
+						return hook( this.originalEvent );
 					}
 				} :
 				function() {
 					if ( this.originalEvent ) {
-							return this.originalEvent[ name ];
+						return this.originalEvent[ name ];
 					}
 				},
 
@@ -5321,39 +5545,51 @@ jQuery.event = {
 			// Prevent triggered image.load events from bubbling to window.load
 			noBubble: true
 		},
-		focus: {
+		click: {
 
-			// Fire native event if possible so blur/focus sequence is correct
-			trigger: function() {
-				if ( this !== safeActiveElement() && this.focus ) {
-					this.focus();
-					return false;
-				}
-			},
-			delegateType: "focusin"
-		},
-		blur: {
-			trigger: function() {
-				if ( this === safeActiveElement() && this.blur ) {
-					this.blur();
-					return false;
+			// Utilize native event to ensure correct state for checkable inputs
+			setup: function( data ) {
+
+				// For mutual compressibility with _default, replace `this` access with a local var.
+				// `|| data` is dead code meant only to preserve the variable through minification.
+				var el = this || data;
+
+				// Claim the first handler
+				if ( rcheckableType.test( el.type ) &&
+					el.click && nodeName( el, "input" ) ) {
+
+					// dataPriv.set( el, "click", ... )
+					leverageNative( el, "click", returnTrue );
 				}
+
+				// Return false to allow normal processing in the caller
+				return false;
 			},
-			delegateType: "focusout"
-		},
-		click: {
+			trigger: function( data ) {
 
-			// For checkbox, fire native event so checked state will be right
-			trigger: function() {
-				if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
-					this.click();
-					return false;
+				// For mutual compressibility with _default, replace `this` access with a local var.
+				// `|| data` is dead code meant only to preserve the variable through minification.
+				var el = this || data;
+
+				// Force setup before triggering a click
+				if ( rcheckableType.test( el.type ) &&
+					el.click && nodeName( el, "input" ) ) {
+
+					leverageNative( el, "click" );
 				}
+
+				// Return non-false to allow normal event-path propagation
+				return true;
 			},
 
-			// For cross-browser consistency, don't fire native .click() on links
+			// For cross-browser consistency, suppress native .click() on links
+			// Also prevent it if we're currently inside a leveraged native-event stack
 			_default: function( event ) {
-				return nodeName( event.target, "a" );
+				var target = event.target;
+				return rcheckableType.test( target.type ) &&
+					target.click && nodeName( target, "input" ) &&
+					dataPriv.get( target, "click" ) ||
+					nodeName( target, "a" );
 			}
 		},
 
@@ -5370,6 +5606,99 @@ jQuery.event = {
 	}
 };
 
+// Ensure the presence of an event listener that handles manually-triggered
+// synthetic events by interrupting progress until reinvoked in response to
+// *native* events that it fires directly, ensuring that state changes have
+// already occurred before other listeners are invoked.
+function leverageNative( el, type, expectSync ) {
+
+	// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
+	if ( !expectSync ) {
+		if ( dataPriv.get( el, type ) === undefined ) {
+			jQuery.event.add( el, type, returnTrue );
+		}
+		return;
+	}
+
+	// Register the controller as a special universal handler for all event namespaces
+	dataPriv.set( el, type, false );
+	jQuery.event.add( el, type, {
+		namespace: false,
+		handler: function( event ) {
+			var notAsync, result,
+				saved = dataPriv.get( this, type );
+
+			if ( ( event.isTrigger & 1 ) && this[ type ] ) {
+
+				// Interrupt processing of the outer synthetic .trigger()ed event
+				// Saved data should be false in such cases, but might be a leftover capture object
+				// from an async native handler (gh-4350)
+				if ( !saved.length ) {
+
+					// Store arguments for use when handling the inner native event
+					// There will always be at least one argument (an event object), so this array
+					// will not be confused with a leftover capture object.
+					saved = slice.call( arguments );
+					dataPriv.set( this, type, saved );
+
+					// Trigger the native event and capture its result
+					// Support: IE <=9 - 11+
+					// focus() and blur() are asynchronous
+					notAsync = expectSync( this, type );
+					this[ type ]();
+					result = dataPriv.get( this, type );
+					if ( saved !== result || notAsync ) {
+						dataPriv.set( this, type, false );
+					} else {
+						result = {};
+					}
+					if ( saved !== result ) {
+
+						// Cancel the outer synthetic event
+						event.stopImmediatePropagation();
+						event.preventDefault();
+
+						// Support: Chrome 86+
+						// In Chrome, if an element having a focusout handler is blurred by
+						// clicking outside of it, it invokes the handler synchronously. If
+						// that handler calls `.remove()` on the element, the data is cleared,
+						// leaving `result` undefined. We need to guard against this.
+						return result && result.value;
+					}
+
+				// If this is an inner synthetic event for an event with a bubbling surrogate
+				// (focus or blur), assume that the surrogate already propagated from triggering the
+				// native event and prevent that from happening again here.
+				// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
+				// bubbling surrogate propagates *after* the non-bubbling base), but that seems
+				// less bad than duplication.
+				} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
+					event.stopPropagation();
+				}
+
+			// If this is a native event triggered above, everything is now in order
+			// Fire an inner synthetic event with the original arguments
+			} else if ( saved.length ) {
+
+				// ...and capture the result
+				dataPriv.set( this, type, {
+					value: jQuery.event.trigger(
+
+						// Support: IE <=9 - 11+
+						// Extend with the prototype to reset the above stopImmediatePropagation()
+						jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
+						saved.slice( 1 ),
+						this
+					)
+				} );
+
+				// Abort handling of the native event
+				event.stopImmediatePropagation();
+			}
+		}
+	} );
+}
+
 jQuery.removeEvent = function( elem, type, handle ) {
 
 	// This "if" is needed for plain objects
@@ -5402,7 +5731,7 @@ jQuery.Event = function( src, props ) {
 
 		// Create target properties
 		// Support: Safari <=6 - 7 only
-		// Target should not be a text node (#504, #13143)
+		// Target should not be a text node (trac-504, trac-13143)
 		this.target = ( src.target && src.target.nodeType === 3 ) ?
 			src.target.parentNode :
 			src.target;
@@ -5421,7 +5750,7 @@ jQuery.Event = function( src, props ) {
 	}
 
 	// Create a timestamp if incoming event doesn't have one
-	this.timeStamp = src && src.timeStamp || jQuery.now();
+	this.timeStamp = src && src.timeStamp || Date.now();
 
 	// Mark it as fixed
 	this[ jQuery.expando ] = true;
@@ -5482,6 +5811,7 @@ jQuery.each( {
 	shiftKey: true,
 	view: true,
 	"char": true,
+	code: true,
 	charCode: true,
 	key: true,
 	keyCode: true,
@@ -5498,35 +5828,41 @@ jQuery.each( {
 	targetTouches: true,
 	toElement: true,
 	touches: true,
+	which: true
+}, jQuery.event.addProp );
 
-	which: function( event ) {
-		var button = event.button;
+jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
+	jQuery.event.special[ type ] = {
 
-		// Add which for key events
-		if ( event.which == null && rkeyEvent.test( event.type ) ) {
-			return event.charCode != null ? event.charCode : event.keyCode;
-		}
+		// Utilize native event if possible so blur/focus sequence is correct
+		setup: function() {
 
-		// Add which for click: 1 === left; 2 === middle; 3 === right
-		if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
-			if ( button & 1 ) {
-				return 1;
-			}
+			// Claim the first handler
+			// dataPriv.set( this, "focus", ... )
+			// dataPriv.set( this, "blur", ... )
+			leverageNative( this, type, expectSync );
 
-			if ( button & 2 ) {
-				return 3;
-			}
+			// Return false to allow normal processing in the caller
+			return false;
+		},
+		trigger: function() {
 
-			if ( button & 4 ) {
-				return 2;
-			}
+			// Force setup before trigger
+			leverageNative( this, type );
 
-			return 0;
-		}
+			// Return non-false to allow normal event-path propagation
+			return true;
+		},
 
-		return event.which;
-	}
-}, jQuery.event.addProp );
+		// Suppress native focus or blur if we're currently inside
+		// a leveraged native-event stack
+		_default: function( event ) {
+			return dataPriv.get( event.target, type );
+		},
+
+		delegateType: delegateType
+	};
+} );
 
 // Create mouseenter/leave events using mouseover/out and event-time checks
 // so that event delegation works in jQuery.
@@ -5613,29 +5949,22 @@ jQuery.fn.extend( {
 
 var
 
-	/* eslint-disable max-len */
-
-	// See https://github.com/eslint/eslint/issues/3229
-	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
-
-	/* eslint-enable */
-
-	// Support: IE <=10 - 11, Edge 12 - 13
+	// Support: IE <=10 - 11, Edge 12 - 13 only
 	// In IE/Edge using regex groups here causes severe slowdowns.
 	// See https://connect.microsoft.com/IE/feedback/details/1736512/
 	rnoInnerhtml = /<script|<style|<link/i,
 
 	// checked="checked" or checked
 	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
-	rscriptTypeMasked = /^true\/(.*)/,
-	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+	rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g;
 
 // Prefer a tbody over its parent table for containing new rows
 function manipulationTarget( elem, content ) {
 	if ( nodeName( elem, "table" ) &&
 		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
 
-		return jQuery( ">tbody", elem )[ 0 ] || elem;
+		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
 	}
 
 	return elem;
@@ -5647,10 +5976,8 @@ function disableScript( elem ) {
 	return elem;
 }
 function restoreScript( elem ) {
-	var match = rscriptTypeMasked.exec( elem.type );
-
-	if ( match ) {
-		elem.type = match[ 1 ];
+	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
+		elem.type = elem.type.slice( 5 );
 	} else {
 		elem.removeAttribute( "type" );
 	}
@@ -5659,7 +5986,7 @@ function restoreScript( elem ) {
 }
 
 function cloneCopyEvent( src, dest ) {
-	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+	var i, l, type, pdataOld, udataOld, udataCur, events;
 
 	if ( dest.nodeType !== 1 ) {
 		return;
@@ -5667,13 +5994,11 @@ function cloneCopyEvent( src, dest ) {
 
 	// 1. Copy private data: events, handlers, etc.
 	if ( dataPriv.hasData( src ) ) {
-		pdataOld = dataPriv.access( src );
-		pdataCur = dataPriv.set( dest, pdataOld );
+		pdataOld = dataPriv.get( src );
 		events = pdataOld.events;
 
 		if ( events ) {
-			delete pdataCur.handle;
-			pdataCur.events = {};
+			dataPriv.remove( dest, "handle events" );
 
 			for ( type in events ) {
 				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
@@ -5709,22 +6034,22 @@ function fixInput( src, dest ) {
 function domManip( collection, args, callback, ignored ) {
 
 	// Flatten any nested arrays
-	args = concat.apply( [], args );
+	args = flat( args );
 
 	var fragment, first, scripts, hasScripts, node, doc,
 		i = 0,
 		l = collection.length,
 		iNoClone = l - 1,
 		value = args[ 0 ],
-		isFunction = jQuery.isFunction( value );
+		valueIsFunction = isFunction( value );
 
 	// We can't cloneNode fragments that contain checked, in WebKit
-	if ( isFunction ||
+	if ( valueIsFunction ||
 			( l > 1 && typeof value === "string" &&
 				!support.checkClone && rchecked.test( value ) ) ) {
 		return collection.each( function( index ) {
 			var self = collection.eq( index );
-			if ( isFunction ) {
+			if ( valueIsFunction ) {
 				args[ 0 ] = value.call( this, index, self.html() );
 			}
 			domManip( self, args, callback, ignored );
@@ -5746,7 +6071,7 @@ function domManip( collection, args, callback, ignored ) {
 
 			// Use the original fragment for the last item
 			// instead of the first because it can end up
-			// being emptied incorrectly in certain situations (#8070).
+			// being emptied incorrectly in certain situations (trac-8070).
 			for ( ; i < l; i++ ) {
 				node = fragment;
 
@@ -5778,14 +6103,22 @@ function domManip( collection, args, callback, ignored ) {
 						!dataPriv.access( node, "globalEval" ) &&
 						jQuery.contains( doc, node ) ) {
 
-						if ( node.src ) {
+						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
 
 							// Optional AJAX dependency, but won't run scripts if not present
-							if ( jQuery._evalUrl ) {
-								jQuery._evalUrl( node.src );
+							if ( jQuery._evalUrl && !node.noModule ) {
+								jQuery._evalUrl( node.src, {
+									nonce: node.nonce || node.getAttribute( "nonce" )
+								}, doc );
 							}
 						} else {
-							DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
+
+							// Unwrap a CDATA section containing script contents. This shouldn't be
+							// needed as in XML documents they're already not visible when
+							// inspecting element contents and in HTML documents they have no
+							// meaning but we're preserving that logic for backwards compatibility.
+							// This will be removed completely in 4.0. See gh-4904.
+							DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
 						}
 					}
 				}
@@ -5807,7 +6140,7 @@ function remove( elem, selector, keepData ) {
 		}
 
 		if ( node.parentNode ) {
-			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+			if ( keepData && isAttached( node ) ) {
 				setGlobalEval( getAll( node, "script" ) );
 			}
 			node.parentNode.removeChild( node );
@@ -5819,13 +6152,13 @@ function remove( elem, selector, keepData ) {
 
 jQuery.extend( {
 	htmlPrefilter: function( html ) {
-		return html.replace( rxhtmlTag, "<$1></$2>" );
+		return html;
 	},
 
 	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
 		var i, l, srcElements, destElements,
 			clone = elem.cloneNode( true ),
-			inPage = jQuery.contains( elem.ownerDocument, elem );
+			inPage = isAttached( elem );
 
 		// Fix IE cloning issues
 		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
@@ -6065,13 +6398,14 @@ jQuery.each( {
 		return this.pushStack( ret );
 	};
 } );
-var rmargin = ( /^margin/ );
-
 var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
 
+var rcustomProp = /^--/;
+
+
 var getStyles = function( elem ) {
 
-		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+		// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)
 		// IE throws on elements created in popups
 		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
 		var view = elem.ownerDocument.defaultView;
@@ -6083,6 +6417,38 @@ var getStyles = function( elem ) {
 		return view.getComputedStyle( elem );
 	};
 
+var swap = function( elem, options, callback ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.call( elem );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
+
+var whitespace = "[\\x20\\t\\r\\n\\f]";
+
+
+var rtrimCSS = new RegExp(
+	"^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$",
+	"g"
+);
+
+
 
 
 ( function() {
@@ -6096,25 +6462,35 @@ var getStyles = function( elem ) {
 			return;
 		}
 
+		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
+			"margin-top:1px;padding:0;border:0";
 		div.style.cssText =
-			"box-sizing:border-box;" +
-			"position:relative;display:block;" +
+			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
 			"margin:auto;border:1px;padding:1px;" +
-			"top:1%;width:50%";
-		div.innerHTML = "";
-		documentElement.appendChild( container );
+			"width:60%;top:1%";
+		documentElement.appendChild( container ).appendChild( div );
 
 		var divStyle = window.getComputedStyle( div );
 		pixelPositionVal = divStyle.top !== "1%";
 
 		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
-		reliableMarginLeftVal = divStyle.marginLeft === "2px";
-		boxSizingReliableVal = divStyle.width === "4px";
+		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
 
-		// Support: Android 4.0 - 4.3 only
+		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
 		// Some styles come back with percentage values, even though they shouldn't
-		div.style.marginRight = "50%";
-		pixelMarginRightVal = divStyle.marginRight === "4px";
+		div.style.right = "60%";
+		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
+
+		// Support: IE 9 - 11 only
+		// Detect misreporting of content dimensions for box-sizing:border-box elements
+		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
+
+		// Support: IE 9 only
+		// Detect overflow:scroll screwiness (gh-3699)
+		// Support: Chrome <=64
+		// Don't get tricked when zoom affects offsetWidth (gh-4029)
+		div.style.position = "absolute";
+		scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
 
 		documentElement.removeChild( container );
 
@@ -6123,7 +6499,12 @@ var getStyles = function( elem ) {
 		div = null;
 	}
 
-	var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
+	function roundPixelMeasures( measure ) {
+		return Math.round( parseFloat( measure ) );
+	}
+
+	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
+		reliableTrDimensionsVal, reliableMarginLeftVal,
 		container = document.createElement( "div" ),
 		div = document.createElement( "div" );
 
@@ -6133,31 +6514,79 @@ var getStyles = function( elem ) {
 	}
 
 	// Support: IE <=9 - 11 only
-	// Style of cloned element affects source element cloned (#8908)
+	// Style of cloned element affects source element cloned (trac-8908)
 	div.style.backgroundClip = "content-box";
 	div.cloneNode( true ).style.backgroundClip = "";
 	support.clearCloneStyle = div.style.backgroundClip === "content-box";
 
-	container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
-		"padding:0;margin-top:1px;position:absolute";
-	container.appendChild( div );
-
 	jQuery.extend( support, {
-		pixelPosition: function() {
-			computeStyleTests();
-			return pixelPositionVal;
-		},
 		boxSizingReliable: function() {
 			computeStyleTests();
 			return boxSizingReliableVal;
 		},
-		pixelMarginRight: function() {
+		pixelBoxStyles: function() {
+			computeStyleTests();
+			return pixelBoxStylesVal;
+		},
+		pixelPosition: function() {
 			computeStyleTests();
-			return pixelMarginRightVal;
+			return pixelPositionVal;
 		},
 		reliableMarginLeft: function() {
 			computeStyleTests();
 			return reliableMarginLeftVal;
+		},
+		scrollboxSize: function() {
+			computeStyleTests();
+			return scrollboxSizeVal;
+		},
+
+		// Support: IE 9 - 11+, Edge 15 - 18+
+		// IE/Edge misreport `getComputedStyle` of table rows with width/height
+		// set in CSS while `offset*` properties report correct values.
+		// Behavior in IE 9 is more subtle than in newer versions & it passes
+		// some versions of this test; make sure not to make it pass there!
+		//
+		// Support: Firefox 70+
+		// Only Firefox includes border widths
+		// in computed dimensions. (gh-4529)
+		reliableTrDimensions: function() {
+			var table, tr, trChild, trStyle;
+			if ( reliableTrDimensionsVal == null ) {
+				table = document.createElement( "table" );
+				tr = document.createElement( "tr" );
+				trChild = document.createElement( "div" );
+
+				table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate";
+				tr.style.cssText = "border:1px solid";
+
+				// Support: Chrome 86+
+				// Height set through cssText does not get applied.
+				// Computed height then comes back as 0.
+				tr.style.height = "1px";
+				trChild.style.height = "9px";
+
+				// Support: Android 8 Chrome 86+
+				// In our bodyBackground.html iframe,
+				// display for all div elements is set to "inline",
+				// which causes a problem only in Android 8 Chrome 86.
+				// Ensuring the div is display: block
+				// gets around this issue.
+				trChild.style.display = "block";
+
+				documentElement
+					.appendChild( table )
+					.appendChild( tr )
+					.appendChild( trChild );
+
+				trStyle = window.getComputedStyle( tr );
+				reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +
+					parseInt( trStyle.borderTopWidth, 10 ) +
+					parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;
+
+				documentElement.removeChild( table );
+			}
+			return reliableTrDimensionsVal;
 		}
 	} );
 } )();
@@ -6165,6 +6594,7 @@ var getStyles = function( elem ) {
 
 function curCSS( elem, name, computed ) {
 	var width, minWidth, maxWidth, ret,
+		isCustomProp = rcustomProp.test( name ),
 
 		// Support: Firefox 51+
 		// Retrieving style before computed somehow
@@ -6175,12 +6605,23 @@ function curCSS( elem, name, computed ) {
 	computed = computed || getStyles( elem );
 
 	// getPropertyValue is needed for:
-	//   .css('filter') (IE 9 only, #12537)
-	//   .css('--customProperty) (#3144)
+	//   .css('filter') (IE 9 only, trac-12537)
+	//   .css('--customProperty) (gh-3144)
 	if ( computed ) {
 		ret = computed.getPropertyValue( name ) || computed[ name ];
 
-		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+		// trim whitespace for custom property (issue gh-4926)
+		if ( isCustomProp ) {
+
+			// rtrim treats U+000D CARRIAGE RETURN and U+000C FORM FEED
+			// as whitespace while CSS does not, but this is not a problem
+			// because CSS preprocessing replaces them with U+000A LINE FEED
+			// (which *is* CSS whitespace)
+			// https://www.w3.org/TR/css-syntax-3/#input-preprocessing
+			ret = ret.replace( rtrimCSS, "$1" );
+		}
+
+		if ( ret === "" && !isAttached( elem ) ) {
 			ret = jQuery.style( elem, name );
 		}
 
@@ -6189,7 +6630,7 @@ function curCSS( elem, name, computed ) {
 		// but width seems to be reliably pixels.
 		// This is against the CSSOM draft spec:
 		// https://drafts.csswg.org/cssom/#resolved-values
-		if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
 
 			// Remember the original values
 			width = style.width;
@@ -6236,30 +6677,13 @@ function addGetHookIf( conditionFn, hookFn ) {
 }
 
 
-var
-
-	// Swappable if display is none or starts with table
-	// except "table", "table-cell", or "table-caption"
-	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
-	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
-	rcustomProp = /^--/,
-	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
-	cssNormalTransform = {
-		letterSpacing: "0",
-		fontWeight: "400"
-	},
-
-	cssPrefixes = [ "Webkit", "Moz", "ms" ],
-	emptyStyle = document.createElement( "div" ).style;
+var cssPrefixes = [ "Webkit", "Moz", "ms" ],
+	emptyStyle = document.createElement( "div" ).style,
+	vendorProps = {};
 
-// Return a css property mapped to a potentially vendor prefixed property
+// Return a vendor-prefixed property or undefined
 function vendorPropName( name ) {
 
-	// Shortcut for names that are not vendor prefixed
-	if ( name in emptyStyle ) {
-		return name;
-	}
-
 	// Check for vendor prefixed names
 	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
 		i = cssPrefixes.length;
@@ -6272,17 +6696,33 @@ function vendorPropName( name ) {
 	}
 }
 
-// Return a property mapped along what jQuery.cssProps suggests or to
-// a vendor prefixed property.
+// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
 function finalPropName( name ) {
-	var ret = jQuery.cssProps[ name ];
-	if ( !ret ) {
-		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+	var final = jQuery.cssProps[ name ] || vendorProps[ name ];
+
+	if ( final ) {
+		return final;
 	}
-	return ret;
+	if ( name in emptyStyle ) {
+		return name;
+	}
+	return vendorProps[ name ] = vendorPropName( name ) || name;
 }
 
-function setPositiveNumber( elem, value, subtract ) {
+
+var
+
+	// Swappable if display is none or starts with table
+	// except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	};
+
+function setPositiveNumber( _elem, value, subtract ) {
 
 	// Any relative (+/-) values have already been
 	// normalized at this point
@@ -6294,87 +6734,146 @@ function setPositiveNumber( elem, value, subtract ) {
 		value;
 }
 
-function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
-	var i,
-		val = 0;
-
-	// If we already have the right measurement, avoid augmentation
-	if ( extra === ( isBorderBox ? "border" : "content" ) ) {
-		i = 4;
+function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
+	var i = dimension === "width" ? 1 : 0,
+		extra = 0,
+		delta = 0;
 
-	// Otherwise initialize for horizontal or vertical properties
-	} else {
-		i = name === "width" ? 1 : 0;
+	// Adjustment may not be necessary
+	if ( box === ( isBorderBox ? "border" : "content" ) ) {
+		return 0;
 	}
 
 	for ( ; i < 4; i += 2 ) {
 
-		// Both box models exclude margin, so add it if we want it
-		if ( extra === "margin" ) {
-			val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+		// Both box models exclude margin
+		if ( box === "margin" ) {
+			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
 		}
 
-		if ( isBorderBox ) {
+		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
+		if ( !isBorderBox ) {
 
-			// border-box includes padding, so remove it if we want content
-			if ( extra === "content" ) {
-				val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
-			}
+			// Add padding
+			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
 
-			// At this point, extra isn't border nor margin, so remove border
-			if ( extra !== "margin" ) {
-				val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			// For "border" or "margin", add border
+			if ( box !== "padding" ) {
+				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+
+			// But still keep track of it otherwise
+			} else {
+				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
 			}
+
+		// If we get here with a border-box (content + padding + border), we're seeking "content" or
+		// "padding" or "margin"
 		} else {
 
-			// At this point, extra isn't content, so add padding
-			val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			// For "content", subtract padding
+			if ( box === "content" ) {
+				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
 
-			// At this point, extra isn't content nor padding, so add border
-			if ( extra !== "padding" ) {
-				val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			// For "content" or "padding", subtract border
+			if ( box !== "margin" ) {
+				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
 			}
 		}
 	}
 
-	return val;
+	// Account for positive content-box scroll gutter when requested by providing computedVal
+	if ( !isBorderBox && computedVal >= 0 ) {
+
+		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
+		// Assuming integer scroll gutter, subtract the rest and round down
+		delta += Math.max( 0, Math.ceil(
+			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+			computedVal -
+			delta -
+			extra -
+			0.5
+
+		// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
+		// Use an explicit zero to avoid NaN (gh-3964)
+		) ) || 0;
+	}
+
+	return delta;
 }
 
-function getWidthOrHeight( elem, name, extra ) {
+function getWidthOrHeight( elem, dimension, extra ) {
 
 	// Start with computed style
-	var valueIsBorderBox,
-		styles = getStyles( elem ),
-		val = curCSS( elem, name, styles ),
-		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+	var styles = getStyles( elem ),
+
+		// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
+		// Fake content-box until we know it's needed to know the true value.
+		boxSizingNeeded = !support.boxSizingReliable() || extra,
+		isBorderBox = boxSizingNeeded &&
+			jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+		valueIsBorderBox = isBorderBox,
+
+		val = curCSS( elem, dimension, styles ),
+		offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
 
-	// Computed unit is not pixels. Stop here and return.
+	// Support: Firefox <=54
+	// Return a confounding non-pixel value or feign ignorance, as appropriate.
 	if ( rnumnonpx.test( val ) ) {
-		return val;
+		if ( !extra ) {
+			return val;
+		}
+		val = "auto";
 	}
 
-	// Check for style in case a browser which returns unreliable values
-	// for getComputedStyle silently falls back to the reliable elem.style
-	valueIsBorderBox = isBorderBox &&
-		( support.boxSizingReliable() || val === elem.style[ name ] );
 
-	// Fall back to offsetWidth/Height when value is "auto"
-	// This happens for inline elements with no explicit setting (gh-3571)
-	if ( val === "auto" ) {
-		val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ];
+	// Support: IE 9 - 11 only
+	// Use offsetWidth/offsetHeight for when box sizing is unreliable.
+	// In those cases, the computed value can be trusted to be border-box.
+	if ( ( !support.boxSizingReliable() && isBorderBox ||
+
+		// Support: IE 10 - 11+, Edge 15 - 18+
+		// IE/Edge misreport `getComputedStyle` of table rows with width/height
+		// set in CSS while `offset*` properties report correct values.
+		// Interestingly, in some cases IE 9 doesn't suffer from this issue.
+		!support.reliableTrDimensions() && nodeName( elem, "tr" ) ||
+
+		// Fall back to offsetWidth/offsetHeight when value is "auto"
+		// This happens for inline elements with no explicit setting (gh-3571)
+		val === "auto" ||
+
+		// Support: Android <=4.1 - 4.3 only
+		// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
+		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
+
+		// Make sure the element is visible & connected
+		elem.getClientRects().length ) {
+
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+		// Where available, offsetWidth/offsetHeight approximate border box dimensions.
+		// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
+		// retrieved value as a content box dimension.
+		valueIsBorderBox = offsetProp in elem;
+		if ( valueIsBorderBox ) {
+			val = elem[ offsetProp ];
+		}
 	}
 
-	// Normalize "", auto, and prepare for extra
+	// Normalize "" and auto
 	val = parseFloat( val ) || 0;
 
-	// Use the active box-sizing model to add/subtract irrelevant styles
+	// Adjust for the element's box model
 	return ( val +
-		augmentWidthOrHeight(
+		boxModelAdjustment(
 			elem,
-			name,
+			dimension,
 			extra || ( isBorderBox ? "border" : "content" ),
 			valueIsBorderBox,
-			styles
+			styles,
+
+			// Provide the current computed size to request scroll gutter calculation (gh-3589)
+			val
 		)
 	) + "px";
 }
@@ -6404,6 +6903,13 @@ jQuery.extend( {
 		"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,
@@ -6415,9 +6921,7 @@ jQuery.extend( {
 
 	// Add in properties whose names you wish to fix before
 	// setting or getting the value
-	cssProps: {
-		"float": "cssFloat"
-	},
+	cssProps: {},
 
 	// Get and set the style property on a DOM Node
 	style: function( elem, name, value, extra ) {
@@ -6429,7 +6933,7 @@ jQuery.extend( {
 
 		// Make sure that we're working with the right name
 		var ret, type, hooks,
-			origName = jQuery.camelCase( name ),
+			origName = camelCase( name ),
 			isCustomProp = rcustomProp.test( name ),
 			style = elem.style;
 
@@ -6447,21 +6951,23 @@ jQuery.extend( {
 		if ( value !== undefined ) {
 			type = typeof value;
 
-			// Convert "+=" or "-=" to relative numbers (#7345)
+			// Convert "+=" or "-=" to relative numbers (trac-7345)
 			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
 				value = adjustCSS( elem, name, ret );
 
-				// Fixes bug #9237
+				// Fixes bug trac-9237
 				type = "number";
 			}
 
-			// Make sure that null and NaN values aren't set (#7116)
+			// Make sure that null and NaN values aren't set (trac-7116)
 			if ( value == null || value !== value ) {
 				return;
 			}
 
 			// If a number was passed in, add the unit (except for certain CSS properties)
-			if ( type === "number" ) {
+			// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
+			// "px" to a few hardcoded values.
+			if ( type === "number" && !isCustomProp ) {
 				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
 			}
 
@@ -6497,7 +7003,7 @@ jQuery.extend( {
 
 	css: function( elem, name, extra, styles ) {
 		var val, num, hooks,
-			origName = jQuery.camelCase( name ),
+			origName = camelCase( name ),
 			isCustomProp = rcustomProp.test( name );
 
 		// Make sure that we're working with the right name. We don't
@@ -6535,8 +7041,8 @@ jQuery.extend( {
 	}
 } );
 
-jQuery.each( [ "height", "width" ], function( i, name ) {
-	jQuery.cssHooks[ name ] = {
+jQuery.each( [ "height", "width" ], function( _i, dimension ) {
+	jQuery.cssHooks[ dimension ] = {
 		get: function( elem, computed, extra ) {
 			if ( computed ) {
 
@@ -6551,30 +7057,53 @@ jQuery.each( [ "height", "width" ], function( i, name ) {
 					// Running getBoundingClientRect on a disconnected node
 					// in IE throws an error.
 					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
-						swap( elem, cssShow, function() {
-							return getWidthOrHeight( elem, name, extra );
-						} ) :
-						getWidthOrHeight( elem, name, extra );
+					swap( elem, cssShow, function() {
+						return getWidthOrHeight( elem, dimension, extra );
+					} ) :
+					getWidthOrHeight( elem, dimension, extra );
 			}
 		},
 
 		set: function( elem, value, extra ) {
 			var matches,
-				styles = extra && getStyles( elem ),
-				subtract = extra && augmentWidthOrHeight(
-					elem,
-					name,
-					extra,
+				styles = getStyles( elem ),
+
+				// Only read styles.position if the test has a chance to fail
+				// to avoid forcing a reflow.
+				scrollboxSizeBuggy = !support.scrollboxSize() &&
+					styles.position === "absolute",
+
+				// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
+				boxSizingNeeded = scrollboxSizeBuggy || extra,
+				isBorderBox = boxSizingNeeded &&
 					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
-					styles
+				subtract = extra ?
+					boxModelAdjustment(
+						elem,
+						dimension,
+						extra,
+						isBorderBox,
+						styles
+					) :
+					0;
+
+			// Account for unreliable border-box dimensions by comparing offset* to computed and
+			// faking a content-box to get border and padding (gh-3699)
+			if ( isBorderBox && scrollboxSizeBuggy ) {
+				subtract -= Math.ceil(
+					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+					parseFloat( styles[ dimension ] ) -
+					boxModelAdjustment( elem, dimension, "border", false, styles ) -
+					0.5
 				);
+			}
 
 			// Convert to pixels if value adjustment is needed
 			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
 				( matches[ 3 ] || "px" ) !== "px" ) {
 
-				elem.style[ name ] = value;
-				value = jQuery.css( elem, name );
+				elem.style[ dimension ] = value;
+				value = jQuery.css( elem, dimension );
 			}
 
 			return setPositiveNumber( elem, value, subtract );
@@ -6590,7 +7119,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
 					swap( elem, { marginLeft: 0 }, function() {
 						return elem.getBoundingClientRect().left;
 					} )
-				) + "px";
+			) + "px";
 		}
 	}
 );
@@ -6618,7 +7147,7 @@ jQuery.each( {
 		}
 	};
 
-	if ( !rmargin.test( prefix ) ) {
+	if ( prefix !== "margin" ) {
 		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
 	}
 } );
@@ -6650,7 +7179,6 @@ jQuery.fn.extend( {
 
 
 // Based off of the plugin by Clint Helfers, with permission.
-// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
 jQuery.fn.delay = function( time, type ) {
 	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
 	type = type || "fx";
@@ -6796,7 +7324,7 @@ boolHook = {
 	}
 };
 
-jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) {
 	var getter = attrHandle[ name ] || jQuery.find.attr;
 
 	attrHandle[ name ] = function( elem, name, isXML ) {
@@ -6875,8 +7403,7 @@ jQuery.extend( {
 				// Support: IE <=9 - 11 only
 				// elem.tabIndex doesn't always return the
 				// correct value when it hasn't been explicitly set
-				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
-				// Use proper attribute retrieval(#12072)
+				// Use proper attribute retrieval (trac-12072)
 				var tabindex = jQuery.find.attr( elem, "tabindex" );
 
 				if ( tabindex ) {
@@ -6957,7 +7484,7 @@ jQuery.each( [
 
 
 	// Strip and collapse whitespace according to HTML spec
-	// https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
+	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
 	function stripAndCollapse( value ) {
 		var tokens = value.match( rnothtmlwhite ) || [];
 		return tokens.join( " " );
@@ -6968,49 +7495,57 @@ function getClass( elem ) {
 	return elem.getAttribute && elem.getAttribute( "class" ) || "";
 }
 
+function classesToArray( value ) {
+	if ( Array.isArray( value ) ) {
+		return value;
+	}
+	if ( typeof value === "string" ) {
+		return value.match( rnothtmlwhite ) || [];
+	}
+	return [];
+}
+
 jQuery.fn.extend( {
 	addClass: function( value ) {
-		var classes, elem, cur, curValue, clazz, j, finalValue,
-			i = 0;
+		var classNames, cur, curValue, className, i, finalValue;
 
-		if ( jQuery.isFunction( value ) ) {
+		if ( isFunction( value ) ) {
 			return this.each( function( j ) {
 				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
 			} );
 		}
 
-		if ( typeof value === "string" && value ) {
-			classes = value.match( rnothtmlwhite ) || [];
+		classNames = classesToArray( value );
 
-			while ( ( elem = this[ i++ ] ) ) {
-				curValue = getClass( elem );
-				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+		if ( classNames.length ) {
+			return this.each( function() {
+				curValue = getClass( this );
+				cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
 
 				if ( cur ) {
-					j = 0;
-					while ( ( clazz = classes[ j++ ] ) ) {
-						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
-							cur += clazz + " ";
+					for ( i = 0; i < classNames.length; i++ ) {
+						className = classNames[ i ];
+						if ( cur.indexOf( " " + className + " " ) < 0 ) {
+							cur += className + " ";
 						}
 					}
 
 					// Only assign if different to avoid unneeded rendering.
 					finalValue = stripAndCollapse( cur );
 					if ( curValue !== finalValue ) {
-						elem.setAttribute( "class", finalValue );
+						this.setAttribute( "class", finalValue );
 					}
 				}
-			}
+			} );
 		}
 
 		return this;
 	},
 
 	removeClass: function( value ) {
-		var classes, elem, cur, curValue, clazz, j, finalValue,
-			i = 0;
+		var classNames, cur, curValue, className, i, finalValue;
 
-		if ( jQuery.isFunction( value ) ) {
+		if ( isFunction( value ) ) {
 			return this.each( function( j ) {
 				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
 			} );
@@ -7020,45 +7555,43 @@ jQuery.fn.extend( {
 			return this.attr( "class", "" );
 		}
 
-		if ( typeof value === "string" && value ) {
-			classes = value.match( rnothtmlwhite ) || [];
+		classNames = classesToArray( value );
 
-			while ( ( elem = this[ i++ ] ) ) {
-				curValue = getClass( elem );
+		if ( classNames.length ) {
+			return this.each( function() {
+				curValue = getClass( this );
 
 				// This expression is here for better compressibility (see addClass)
-				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+				cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
 
 				if ( cur ) {
-					j = 0;
-					while ( ( clazz = classes[ j++ ] ) ) {
+					for ( i = 0; i < classNames.length; i++ ) {
+						className = classNames[ i ];
 
 						// Remove *all* instances
-						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
-							cur = cur.replace( " " + clazz + " ", " " );
+						while ( cur.indexOf( " " + className + " " ) > -1 ) {
+							cur = cur.replace( " " + className + " ", " " );
 						}
 					}
 
 					// Only assign if different to avoid unneeded rendering.
 					finalValue = stripAndCollapse( cur );
 					if ( curValue !== finalValue ) {
-						elem.setAttribute( "class", finalValue );
+						this.setAttribute( "class", finalValue );
 					}
 				}
-			}
+			} );
 		}
 
 		return this;
 	},
 
 	toggleClass: function( value, stateVal ) {
-		var type = typeof value;
-
-		if ( typeof stateVal === "boolean" && type === "string" ) {
-			return stateVal ? this.addClass( value ) : this.removeClass( value );
-		}
+		var classNames, className, i, self,
+			type = typeof value,
+			isValidValue = type === "string" || Array.isArray( value );
 
-		if ( jQuery.isFunction( value ) ) {
+		if ( isFunction( value ) ) {
 			return this.each( function( i ) {
 				jQuery( this ).toggleClass(
 					value.call( this, i, getClass( this ), stateVal ),
@@ -7067,17 +7600,20 @@ jQuery.fn.extend( {
 			} );
 		}
 
-		return this.each( function() {
-			var className, i, self, classNames;
+		if ( typeof stateVal === "boolean" && isValidValue ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		classNames = classesToArray( value );
 
-			if ( type === "string" ) {
+		return this.each( function() {
+			if ( isValidValue ) {
 
 				// Toggle individual class names
-				i = 0;
 				self = jQuery( this );
-				classNames = value.match( rnothtmlwhite ) || [];
 
-				while ( ( className = classNames[ i++ ] ) ) {
+				for ( i = 0; i < classNames.length; i++ ) {
+					className = classNames[ i ];
 
 					// Check each className given, space separated list
 					if ( self.hasClass( className ) ) {
@@ -7103,8 +7639,8 @@ jQuery.fn.extend( {
 				if ( this.setAttribute ) {
 					this.setAttribute( "class",
 						className || value === false ?
-						"" :
-						dataPriv.get( this, "__className__" ) || ""
+							"" :
+							dataPriv.get( this, "__className__" ) || ""
 					);
 				}
 			}
@@ -7119,7 +7655,7 @@ jQuery.fn.extend( {
 		while ( ( elem = this[ i++ ] ) ) {
 			if ( elem.nodeType === 1 &&
 				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
-					return true;
+				return true;
 			}
 		}
 
@@ -7134,7 +7670,7 @@ var rreturn = /\r/g;
 
 jQuery.fn.extend( {
 	val: function( value ) {
-		var hooks, ret, isFunction,
+		var hooks, ret, valueIsFunction,
 			elem = this[ 0 ];
 
 		if ( !arguments.length ) {
@@ -7163,7 +7699,7 @@ jQuery.fn.extend( {
 			return;
 		}
 
-		isFunction = jQuery.isFunction( value );
+		valueIsFunction = isFunction( value );
 
 		return this.each( function( i ) {
 			var val;
@@ -7172,7 +7708,7 @@ jQuery.fn.extend( {
 				return;
 			}
 
-			if ( isFunction ) {
+			if ( valueIsFunction ) {
 				val = value.call( this, i, jQuery( this ).val() );
 			} else {
 				val = value;
@@ -7211,7 +7747,7 @@ jQuery.extend( {
 					val :
 
 					// Support: IE <=10 - 11 only
-					// option.text throws exceptions (#14686, #14858)
+					// option.text throws exceptions (trac-14686, trac-14858)
 					// Strip and collapse whitespace
 					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
 					stripAndCollapse( jQuery.text( elem ) );
@@ -7238,7 +7774,7 @@ jQuery.extend( {
 					option = options[ i ];
 
 					// Support: IE <=9 only
-					// IE8-9 doesn't update selected after form reset (#2551)
+					// IE8-9 doesn't update selected after form reset (trac-2551)
 					if ( ( option.selected || i === index ) &&
 
 							// Don't return options that are disabled or in a disabled optgroup
@@ -7314,18 +7850,24 @@ jQuery.each( [ "radio", "checkbox" ], function() {
 // Return jQuery for attributes-only inclusion
 
 
-var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
+support.focusin = "onfocusin" in window;
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	stopPropagationCallback = function( e ) {
+		e.stopPropagation();
+	};
 
 jQuery.extend( jQuery.event, {
 
 	trigger: function( event, data, elem, onlyHandlers ) {
 
-		var i, cur, tmp, bubbleType, ontype, handle, special,
+		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
 			eventPath = [ elem || document ],
 			type = hasOwn.call( event, "type" ) ? event.type : event,
 			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
 
-		cur = tmp = elem = elem || document;
+		cur = lastElement = tmp = elem = elem || document;
 
 		// Don't do events on text and comment nodes
 		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
@@ -7375,9 +7917,9 @@ jQuery.extend( jQuery.event, {
 			return;
 		}
 
-		// Determine event propagation path in advance, per W3C events spec (#9951)
-		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
-		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+		// Determine event propagation path in advance, per W3C events spec (trac-9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)
+		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
 
 			bubbleType = special.delegateType || type;
 			if ( !rfocusMorph.test( bubbleType + type ) ) {
@@ -7397,13 +7939,13 @@ jQuery.extend( jQuery.event, {
 		// Fire handlers on the event path
 		i = 0;
 		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
-
+			lastElement = cur;
 			event.type = i > 1 ?
 				bubbleType :
 				special.bindType || type;
 
 			// jQuery handler
-			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+			handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] &&
 				dataPriv.get( cur, "handle" );
 			if ( handle ) {
 				handle.apply( cur, data );
@@ -7428,8 +7970,8 @@ jQuery.extend( jQuery.event, {
 				acceptData( elem ) ) {
 
 				// Call a native DOM method on the target with the same name as the event.
-				// Don't do default actions on window, that's where global variables be (#6170)
-				if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+				// Don't do default actions on window, that's where global variables be (trac-6170)
+				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
 
 					// Don't re-trigger an onFOO event when we call its FOO() method
 					tmp = elem[ ontype ];
@@ -7440,7 +7982,17 @@ jQuery.extend( jQuery.event, {
 
 					// Prevent re-triggering of the same event, since we already bubbled it above
 					jQuery.event.triggered = type;
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.addEventListener( type, stopPropagationCallback );
+					}
+
 					elem[ type ]();
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.removeEventListener( type, stopPropagationCallback );
+					}
+
 					jQuery.event.triggered = undefined;
 
 					if ( tmp ) {
@@ -7486,31 +8038,6 @@ jQuery.fn.extend( {
 } );
 
 
-jQuery.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( i, name ) {
-
-	// Handle event binding
-	jQuery.fn[ name ] = function( data, fn ) {
-		return arguments.length > 0 ?
-			this.on( name, null, data, fn ) :
-			this.trigger( name );
-	};
-} );
-
-jQuery.fn.extend( {
-	hover: function( fnOver, fnOut ) {
-		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
-	}
-} );
-
-
-
-
-support.focusin = "onfocusin" in window;
-
-
 // Support: Firefox <=44
 // Firefox doesn't have focus(in | out) events
 // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
@@ -7529,7 +8056,10 @@ if ( !support.focusin ) {
 
 		jQuery.event.special[ fix ] = {
 			setup: function() {
-				var doc = this.ownerDocument || this,
+
+				// Handle: regular nodes (via `this.ownerDocument`), window
+				// (via `this.document`) & document (via `this`).
+				var doc = this.ownerDocument || this.document || this,
 					attaches = dataPriv.access( doc, fix );
 
 				if ( !attaches ) {
@@ -7538,7 +8068,7 @@ if ( !support.focusin ) {
 				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
 			},
 			teardown: function() {
-				var doc = this.ownerDocument || this,
+				var doc = this.ownerDocument || this.document || this,
 					attaches = dataPriv.access( doc, fix ) - 1;
 
 				if ( !attaches ) {
@@ -7554,6 +8084,33 @@ if ( !support.focusin ) {
 }
 
 
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+	var xml, parserErrorElem;
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+
+	// Support: IE 9 - 11 only
+	// IE throws on parseFromString with invalid input.
+	try {
+		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+	} catch ( e ) {}
+
+	parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
+	if ( !xml || parserErrorElem ) {
+		jQuery.error( "Invalid XML: " + (
+			parserErrorElem ?
+				jQuery.map( parserErrorElem.childNodes, function( el ) {
+					return el.textContent;
+				} ).join( "\n" ) :
+				data
+		) );
+	}
+	return xml;
+};
+
+
 var
 	rbracket = /\[\]$/,
 	rCRLF = /\r?\n/g,
@@ -7584,7 +8141,7 @@ function buildParams( prefix, obj, traditional, add ) {
 			}
 		} );
 
-	} else if ( !traditional && jQuery.type( obj ) === "object" ) {
+	} else if ( !traditional && toType( obj ) === "object" ) {
 
 		// Serialize object item.
 		for ( name in obj ) {
@@ -7606,7 +8163,7 @@ jQuery.param = function( a, traditional ) {
 		add = function( key, valueOrFunction ) {
 
 			// If value is a function, invoke it and use its return value
-			var value = jQuery.isFunction( valueOrFunction ) ?
+			var value = isFunction( valueOrFunction ) ?
 				valueOrFunction() :
 				valueOrFunction;
 
@@ -7614,6 +8171,10 @@ jQuery.param = function( a, traditional ) {
 				encodeURIComponent( value == null ? "" : value );
 		};
 
+	if ( a == null ) {
+		return "";
+	}
+
 	// If an array was passed in, assume that it is an array of form elements.
 	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
 
@@ -7645,16 +8206,14 @@ jQuery.fn.extend( {
 			// Can add propHook for "elements" to filter or add form elements
 			var elements = jQuery.prop( this, "elements" );
 			return elements ? jQuery.makeArray( elements ) : this;
-		} )
-		.filter( function() {
+		} ).filter( function() {
 			var type = this.type;
 
 			// Use .is( ":disabled" ) so that fieldset[disabled] works
 			return this.name && !jQuery( this ).is( ":disabled" ) &&
 				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
 				( this.checked || !rcheckableType.test( type ) );
-		} )
-		.map( function( i, elem ) {
+		} ).map( function( _i, elem ) {
 			var val = jQuery( this ).val();
 
 			if ( val == null ) {
@@ -7678,7 +8237,7 @@ jQuery.fn.extend( {
 		var wrap;
 
 		if ( this[ 0 ] ) {
-			if ( jQuery.isFunction( html ) ) {
+			if ( isFunction( html ) ) {
 				html = html.call( this[ 0 ] );
 			}
 
@@ -7704,7 +8263,7 @@ jQuery.fn.extend( {
 	},
 
 	wrapInner: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
+		if ( isFunction( html ) ) {
 			return this.each( function( i ) {
 				jQuery( this ).wrapInner( html.call( this, i ) );
 			} );
@@ -7724,10 +8283,10 @@ jQuery.fn.extend( {
 	},
 
 	wrap: function( html ) {
-		var isFunction = jQuery.isFunction( html );
+		var htmlIsFunction = isFunction( html );
 
 		return this.each( function( i ) {
-			jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
+			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
 		} );
 	},
 
@@ -7843,7 +8402,7 @@ jQuery.offset = {
 			curLeft = parseFloat( curCSSLeft ) || 0;
 		}
 
-		if ( jQuery.isFunction( options ) ) {
+		if ( isFunction( options ) ) {
 
 			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
 			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
@@ -7866,6 +8425,8 @@ jQuery.offset = {
 };
 
 jQuery.fn.extend( {
+
+	// offset() relates an element's border box to the document origin
 	offset: function( options ) {
 
 		// Preserve chaining for setter
@@ -7877,7 +8438,7 @@ jQuery.fn.extend( {
 				} );
 		}
 
-		var doc, docElem, rect, win,
+		var rect, win,
 			elem = this[ 0 ];
 
 		if ( !elem ) {
@@ -7892,50 +8453,52 @@ jQuery.fn.extend( {
 			return { top: 0, left: 0 };
 		}
 
+		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
 		rect = elem.getBoundingClientRect();
-
-		doc = elem.ownerDocument;
-		docElem = doc.documentElement;
-		win = doc.defaultView;
-
+		win = elem.ownerDocument.defaultView;
 		return {
-			top: rect.top + win.pageYOffset - docElem.clientTop,
-			left: rect.left + win.pageXOffset - docElem.clientLeft
+			top: rect.top + win.pageYOffset,
+			left: rect.left + win.pageXOffset
 		};
 	},
 
+	// position() relates an element's margin box to its offset parent's padding box
+	// This corresponds to the behavior of CSS absolute positioning
 	position: function() {
 		if ( !this[ 0 ] ) {
 			return;
 		}
 
-		var offsetParent, offset,
+		var offsetParent, offset, doc,
 			elem = this[ 0 ],
 			parentOffset = { top: 0, left: 0 };
 
-		// Fixed elements are offset from window (parentOffset = {top:0, left: 0},
-		// because it is its only offset parent
+		// position:fixed elements are offset from the viewport, which itself always has zero offset
 		if ( jQuery.css( elem, "position" ) === "fixed" ) {
 
-			// Assume getBoundingClientRect is there when computed position is fixed
+			// Assume position:fixed implies availability of getBoundingClientRect
 			offset = elem.getBoundingClientRect();
 
 		} else {
+			offset = this.offset();
 
-			// Get *real* offsetParent
-			offsetParent = this.offsetParent();
+			// Account for the *real* offset parent, which can be the document or its root element
+			// when a statically positioned element is identified
+			doc = elem.ownerDocument;
+			offsetParent = elem.offsetParent || doc.documentElement;
+			while ( offsetParent &&
+				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
+				jQuery.css( offsetParent, "position" ) === "static" ) {
 
-			// Get correct offsets
-			offset = this.offset();
-			if ( !nodeName( offsetParent[ 0 ], "html" ) ) {
-				parentOffset = offsetParent.offset();
+				offsetParent = offsetParent.parentNode;
 			}
+			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
 
-			// Add offsetParent borders
-			parentOffset = {
-				top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
-				left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
-			};
+				// Incorporate borders into its offset, since they are outside its content origin
+				parentOffset = jQuery( offsetParent ).offset();
+				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
+				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
+			}
 		}
 
 		// Subtract parent offsets and element margins
@@ -7977,7 +8540,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(
 
 			// Coalesce documents and windows
 			var win;
-			if ( jQuery.isWindow( elem ) ) {
+			if ( isWindow( elem ) ) {
 				win = elem;
 			} else if ( elem.nodeType === 9 ) {
 				win = elem.defaultView;
@@ -8006,7 +8569,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(
 // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
 // getComputedStyle returns percent when specified for top/left/bottom/right;
 // rather than make the css module depend on the offset module, just check for it here
-jQuery.each( [ "top", "left" ], function( i, prop ) {
+jQuery.each( [ "top", "left" ], function( _i, prop ) {
 	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
 		function( elem, computed ) {
 			if ( computed ) {
@@ -8024,8 +8587,11 @@ jQuery.each( [ "top", "left" ], function( i, prop ) {
 
 // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
 jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
-	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
-		function( defaultExtra, funcName ) {
+	jQuery.each( {
+		padding: "inner" + name,
+		content: type,
+		"": "outer" + name
+	}, function( defaultExtra, funcName ) {
 
 		// Margin is only for outerHeight, outerWidth
 		jQuery.fn[ funcName ] = function( margin, value ) {
@@ -8035,7 +8601,7 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
 			return access( this, function( elem, type, value ) {
 				var doc;
 
-				if ( jQuery.isWindow( elem ) ) {
+				if ( isWindow( elem ) ) {
 
 					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
 					return funcName.indexOf( "outer" ) === 0 ?
@@ -8087,9 +8653,68 @@ jQuery.fn.extend( {
 		return arguments.length === 1 ?
 			this.off( selector, "**" ) :
 			this.off( types, selector || "**", fn );
+	},
+
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
 	}
 } );
 
+jQuery.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( _i, name ) {
+
+		// Handle event binding
+		jQuery.fn[ name ] = function( data, fn ) {
+			return arguments.length > 0 ?
+				this.on( name, null, data, fn ) :
+				this.trigger( name );
+		};
+	}
+);
+
+
+
+
+// Support: Android <=4.0 only
+// Make sure we trim BOM and NBSP
+// Require that the "whitespace run" starts from a non-whitespace
+// to avoid O(N^2) behavior when the engine would try matching "\s+$" at each space position.
+var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
+
+// Bind a function to a context, optionally partially applying any
+// arguments.
+// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
+// However, it is not slated for removal any time soon
+jQuery.proxy = function( fn, context ) {
+	var tmp, args, proxy;
+
+	if ( typeof context === "string" ) {
+		tmp = fn[ context ];
+		context = fn;
+		fn = tmp;
+	}
+
+	// Quick check to determine if target is callable, in the spec
+	// this throws a TypeError, but we will just return undefined.
+	if ( !isFunction( fn ) ) {
+		return undefined;
+	}
+
+	// Simulated bind
+	args = slice.call( arguments, 2 );
+	proxy = function() {
+		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+	};
+
+	// Set the guid of unique handler to the same of original handler, so it can be removed
+	proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+	return proxy;
+};
+
 jQuery.holdReady = function( hold ) {
 	if ( hold ) {
 		jQuery.readyWait++;
@@ -8100,7 +8725,32 @@ jQuery.holdReady = function( hold ) {
 jQuery.isArray = Array.isArray;
 jQuery.parseJSON = JSON.parse;
 jQuery.nodeName = nodeName;
+jQuery.isFunction = isFunction;
+jQuery.isWindow = isWindow;
+jQuery.camelCase = camelCase;
+jQuery.type = toType;
+
+jQuery.now = Date.now;
 
+jQuery.isNumeric = function( obj ) {
+
+	// As of jQuery 3.0, isNumeric is limited to
+	// strings and numbers (primitives or objects)
+	// that can be coerced to finite numbers (gh-2662)
+	var type = jQuery.type( obj );
+	return ( type === "number" || type === "string" ) &&
+
+		// parseFloat NaNs numeric-cast false positives ("")
+		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+		// subtraction forces infinities to NaN
+		!isNaN( obj - parseFloat( obj ) );
+};
+
+jQuery.trim = function( text ) {
+	return text == null ?
+		"" :
+		( text + "" ).replace( rtrim, "$1" );
+};
 
 
 
@@ -8147,9 +8797,9 @@ jQuery.noConflict = function( deep ) {
 };
 
 // Expose jQuery and $ identifiers, even in AMD
-// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
-// and CommonJS for browser emulators (#13566)
-if ( !noGlobal ) {
+// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (trac-13566)
+if ( typeof noGlobal === "undefined" ) {
 	window.jQuery = window.$ = jQuery;
 }
 
diff --git a/vendor/jquery/3.6.1/jquery.slim.min.js b/vendor/jquery/3.6.1/jquery.slim.min.js
new file mode 100644
index 0000000..d25321a
--- /dev/null
+++ b/vendor/jquery/3.6.1/jquery.slim.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.6.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/Tween,-effects/animatedSelector | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(g,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,v=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),m={},b=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},w=g.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function C(e,t,n){var r,i,o=(n=n||w).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function T(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/Tween,-effects/animatedSelector",E=function(e,t){return new E.fn.init(e,t)};function d(e){var t=!!e&&"length"in e&&e.length,n=T(e);return!b(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}E.fn=E.prototype={jquery:f,constructor:E,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=E.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return E.each(this,e)},map:function(n){return this.pushStack(E.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(E.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(E.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},E.extend=E.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||b(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(E.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||E.isPlainObject(n)?n:{},i=!1,a[t]=E.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},E.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=y.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){C(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?E.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return v(a)},guid:1,support:m}),"function"==typeof Symbol&&(E.fn[Symbol.iterator]=t[Symbol.iterator]),E.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var p=function(n){var e,p,x,o,i,h,f,g,w,u,l,C,T,a,E,v,s,c,y,A="sizzle"+1*new Date,d=n.document,N=0,r=0,m=ue(),b=ue(),S=ue(),k=ue(),D=function(e,t){return e===t&&(l=!0),0},L={}.hasOwnProperty,t=[],j=t.pop,q=t.push,O=t.push,P=t.slice,H=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},I="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",R="[\\x20\\t\\r\\n\\f]",B="(?:\\\\[\\da-fA-F]{1,6}"+R+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",M="\\["+R+"*("+B+")(?:"+R+"*([*^$|!~]?=)"+R+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+B+"))|)"+R+"*\\]",W=":("+B+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",F=new RegExp(R+"+","g"),$=new RegExp("^"+R+"+|((?:^|[^\\\\])(?:\\\\.)*)"+R+"+$","g"),z=new RegExp("^"+R+"*,"+R+"*"),_=new RegExp("^"+R+"*([>+~]|"+R+")"+R+"*"),U=new RegExp(R+"|>"),V=new RegExp(W),X=new RegExp("^"+B+"$"),Q={ID:new RegExp("^#("+B+")"),CLASS:new RegExp("^\\.("+B+")"),TAG:new RegExp("^("+B+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+R+"*(even|odd|(([+-]|)(\\d*)n|)"+R+"*(?:([+-]|)"+R+"*(\\d+)|))"+R+"*\\)|)","i"),bool:new RegExp("^(?:"+I+")$","i"),needsContext:new RegExp("^"+R+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+R+"*((?:-\\d)?\\d*)"+R+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,G=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+R+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){C()},ae=xe(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{O.apply(t=P.call(d.childNodes),d.childNodes),t[d.childNodes.length].nodeType}catch(e){O={apply:t.length?function(e,t){q.apply(e,P.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,d=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==d&&9!==d&&11!==d)return n;if(!r&&(C(e),e=e||T,E)){if(11!==d&&(u=Z.exec(t)))if(i=u[1]){if(9===d){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return O.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&p.getElementsByClassName&&e.getElementsByClassName)return O.apply(n,e.getElementsByClassName(i)),n}if(p.qsa&&!k[t+" "]&&(!v||!v.test(t))&&(1!==d||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===d&&(U.test(t)||_.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&p.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=A)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+be(l[o]);c=l.join(",")}try{return O.apply(n,f.querySelectorAll(c)),n}catch(e){k(t,!0)}finally{s===A&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>x.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[A]=!0,e}function ce(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)x.attrHandle[n[r]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pe(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in p=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},C=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:d;return r!=T&&9===r.nodeType&&r.documentElement&&(a=(T=r).documentElement,E=!i(T),d!=T&&(n=T.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),p.scope=ce(function(e){return a.appendChild(e).appendChild(T.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),p.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=ce(function(e){return e.appendChild(T.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=J.test(T.getElementsByClassName),p.getById=ce(function(e){return a.appendChild(e).id=A,!T.getElementsByName||!T.getElementsByName(A).length}),p.getById?(x.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(x.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},x.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),x.find.TAG=p.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},x.find.CLASS=p.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(p.qsa=J.test(T.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+A+"'></a><select id='"+A+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+R+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+R+"*(?:value|"+I+")"),e.querySelectorAll("[id~="+A+"-]").length||v.push("~="),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+R+"*name"+R+"*="+R+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+A+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=T.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+R+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(p.matchesSelector=J.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){p.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",W)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=J.test(a.compareDocumentPosition),y=t||J.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e==T||e.ownerDocument==d&&y(d,e)?-1:t==T||t.ownerDocument==d&&y(d,t)?1:u?H(u,e)-H(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==T?-1:t==T?1:i?-1:o?1:u?H(u,e)-H(u,t):0;if(i===o)return de(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?de(a[r],s[r]):a[r]==d?-1:s[r]==d?1:0}),T},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(C(e),p.matchesSelector&&E&&!k[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){k(t,!0)}return 0<se(t,T,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=T&&C(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=T&&C(e);var n=x.attrHandle[t.toLowerCase()],r=n&&L.call(x.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:p.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!p.detectDuplicates,u=!p.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(x=se.selectors={cacheLength:50,createPseudo:le,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&V.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+R+")"+e+"("+R+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),b="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=b&&e.nodeName.toLowerCase(),d=!n&&!b,p=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(b?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&d){p=(s=(r=(i=(o=(a=c)[A]||(a[A]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===N&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(p=s=0)||u.pop())if(1===a.nodeType&&++p&&a===e){i[h]=[N,s,p];break}}else if(d&&(p=s=(r=(i=(o=(a=e)[A]||(a[A]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===N&&r[1]),!1===p)while(a=++s&&a&&a[l]||(p=s=0)||u.pop())if((b?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++p&&(d&&((i=(o=a[A]||(a[A]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[N,p]),a===e))break;return(p-=v)===g||p%g==0&&0<=p/g}}},PSEUDO:function(e,o){var t,a=x.pseudos[e]||x.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[A]?a(o):1<a.length?(t=[e,e,"",o],x.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=H(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[A]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return X.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===T.activeElement&&(!T.hasFocus||T.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!x.pseudos.empty(e)},header:function(e){return K.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=x.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})x.pseudos[e]=pe(e);for(e in{submit:!0,reset:!0})x.pseudos[e]=he(e);function me(){}function be(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function xe(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,d=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[N,d];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[A]||(e[A]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===N&&r[1]===d)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Ce(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(p,h,g,v,y,e){return v&&!v[A]&&(v=Te(v)),y&&!y[A]&&(y=Te(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!p||!e&&h?c:Ce(c,s,p,n,r),d=g?y||(e?p:l||v)?[]:t:f;if(g&&g(f,d,n,r),v){i=Ce(d,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(d[u[o]]=!(f[u[o]]=a))}if(e){if(y||p){if(y){i=[],o=d.length;while(o--)(a=d[o])&&i.push(f[o]=a);y(null,d=[],i,r)}o=d.length;while(o--)(a=d[o])&&-1<(i=y?H(e,a):s[o])&&(e[i]=!(t[i]=a))}}else d=Ce(d===t?d.splice(l,d.length):d),y?y(null,t,d,r):O.apply(t,d)})}function Ee(e){for(var i,t,n,r=e.length,o=x.relative[e[0].type],a=o||x.relative[" "],s=o?1:0,u=xe(function(e){return e===i},a,!0),l=xe(function(e){return-1<H(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=x.relative[e[s].type])c=[xe(we(c),t)];else{if((t=x.filter[e[s].type].apply(null,e[s].matches))[A]){for(n=++s;n<r;n++)if(x.relative[e[n].type])break;return Te(1<s&&we(c),1<s&&be(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&be(e))}c.push(t)}return we(c)}return me.prototype=x.filters=x.pseudos,x.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=b[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=x.preFilter;while(a){for(o in n&&!(r=z.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=_.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),x.filter)!(r=Q[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):b(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,b,r,i=[],o=[],a=S[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[A]?i.push(a):o.push(a);(a=S(e,(v=o,m=0<(y=i).length,b=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],d=w,p=e||b&&x.find.TAG("*",i),h=N+=null==d?1:Math.random()||.1,g=p.length;for(i&&(w=t==T||t||i);l!==g&&null!=(o=p[l]);l++){if(b&&o){a=0,t||o.ownerDocument==T||(C(o),n=!E);while(s=v[a++])if(s(o,t||T,n)){r.push(o);break}i&&(N=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=j.call(r));f=Ce(f)}O.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(N=h,w=d),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&x.relative[o[1].type]){if(!(t=(x.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=Q.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],x.relative[s=a.type])break;if((u=x.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&be(o)))return O.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},p.sortStable=A.split("").sort(D).join("")===A,p.detectDuplicates=!!l,C(),p.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(T.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),p.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(I,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(g);E.find=p,E.expr=p.selectors,E.expr[":"]=E.expr.pseudos,E.uniqueSort=E.unique=p.uniqueSort,E.text=p.getText,E.isXMLDoc=p.isXML,E.contains=p.contains,E.escapeSelector=p.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&E(e).is(n))break;r.push(e)}return r},A=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=E.expr.match.needsContext;function S(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var k=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return b(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):"string"!=typeof n?E.grep(e,function(e){return-1<i.call(n,e)!==r}):E.filter(n,e,r)}E.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?E.find.matchesSelector(r,e)?[r]:[]:E.find.matches(e,E.grep(t,function(e){return 1===e.nodeType}))},E.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(E(e).filter(function(){for(t=0;t<r;t++)if(E.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)E.find(e,i[t],n);return 1<r?E.uniqueSort(n):n},filter:function(e){return this.pushStack(D(this,e||[],!1))},not:function(e){return this.pushStack(D(this,e||[],!0))},is:function(e){return!!D(this,"string"==typeof e&&N.test(e)?E(e):e||[],!1).length}});var L,j=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||L,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:j.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:w,!0)),k.test(r[1])&&E.isPlainObject(t))for(r in t)b(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=w.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):b(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,L=E(w);var q=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(E.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&E(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&E.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?E.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(E(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(E.uniqueSort(E.merge(this.get(),E(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),E.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return A((e.parentNode||{}).firstChild,e)},children:function(e){return A(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(S(e,"template")&&(e=e.content||e),E.merge([],e.childNodes))}},function(r,i){E.fn[r]=function(e,t){var n=E.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=E.filter(t,n)),1<this.length&&(O[r]||E.uniqueSort(n),q.test(r)&&n.reverse()),this.pushStack(n)}});var H=/[^\x20\t\r\n\f]+/g;function I(e){return e}function R(e){throw e}function B(e,t,n,r){var i;try{e&&b(i=e.promise)?i.call(e).done(t).fail(n):e&&b(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}E.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},E.each(e.match(H)||[],function(e,t){n[t]=!0}),n):E.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){E.each(e,function(e,t){b(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==T(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return E.each(arguments,function(e,t){var n;while(-1<(n=E.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<E.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},E.extend({Deferred:function(e){var o=[["notify","progress",E.Callbacks("memory"),E.Callbacks("memory"),2],["resolve","done",E.Callbacks("once memory"),E.Callbacks("once memory"),0,"resolved"],["reject","fail",E.Callbacks("once memory"),E.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return E.Deferred(function(r){E.each(o,function(e,t){var n=b(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&b(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,b(t)?s?t.call(e,l(u,o,I,s),l(u,o,R,s)):(u++,t.call(e,l(u,o,I,s),l(u,o,R,s),l(u,o,I,o.notifyWith))):(a!==I&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){E.Deferred.exceptionHook&&E.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==R&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(E.Deferred.getStackHook&&(t.stackTrace=E.Deferred.getStackHook()),g.setTimeout(t))}}return E.Deferred(function(e){o[0][3].add(l(0,e,b(r)?r:I,e.notifyWith)),o[1][3].add(l(0,e,b(t)?t:I)),o[2][3].add(l(0,e,b(n)?n:R))}).promise()},promise:function(e){return null!=e?E.extend(e,a):a}},s={};return E.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=E.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(B(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||b(i[t]&&i[t].then)))return o.then();while(t--)B(i[t],a(t),o.reject);return o.promise()}});var M=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;E.Deferred.exceptionHook=function(e,t){g.console&&g.console.warn&&e&&M.test(e.name)&&g.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},E.readyException=function(e){g.setTimeout(function(){throw e})};var W=E.Deferred();function F(){w.removeEventListener("DOMContentLoaded",F),g.removeEventListener("load",F),E.ready()}E.fn.ready=function(e){return W.then(e)["catch"](function(e){E.readyException(e)}),this},E.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--E.readyWait:E.isReady)||(E.isReady=!0)!==e&&0<--E.readyWait||W.resolveWith(w,[E])}}),E.ready.then=W.then,"complete"===w.readyState||"loading"!==w.readyState&&!w.documentElement.doScroll?g.setTimeout(E.ready):(w.addEventListener("DOMContentLoaded",F),g.addEventListener("load",F));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===T(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,b(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(E(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,_=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(_,U)}var X=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=E.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},X(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(H)||[]).length;while(n--)delete r[t[n]]}(void 0===t||E.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!E.isEmptyObject(t)}};var Y=new Q,G=new Q,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,J=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(J,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}G.set(e,t,n)}else n=void 0;return n}E.extend({hasData:function(e){return G.hasData(e)||Y.hasData(e)},data:function(e,t,n){return G.access(e,t,n)},removeData:function(e,t){G.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),E.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=G.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){G.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=G.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){G.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){G.remove(this,e)})}}),E.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,E.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=E.queue(e,t),r=n.length,i=n.shift(),o=E._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){E.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:E.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),E.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?E.queue(this[0],t):void 0===n?this:this.each(function(){var e=E.queue(this,t,n);E._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&E.dequeue(this,t)})},dequeue:function(e){return this.each(function(){E.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=E.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=w.documentElement,ie=function(e){return E.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return E.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===E.css(e,"display")};var se={};function ue(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=se[s])||(o=a.body.appendChild(a.createElement(s)),u=E.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),se[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}E.fn.extend({show:function(){return ue(this,!0)},hide:function(){return ue(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?E(this).show():E(this).hide()})}});var le,ce,fe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,pe=/^$|^module$|\/(?:java|ecma)script/i;le=w.createDocumentFragment().appendChild(w.createElement("div")),(ce=w.createElement("input")).setAttribute("type","radio"),ce.setAttribute("checked","checked"),ce.setAttribute("name","t"),le.appendChild(ce),m.checkClone=le.cloneNode(!0).cloneNode(!0).lastChild.checked,le.innerHTML="<textarea>x</textarea>",m.noCloneChecked=!!le.cloneNode(!0).lastChild.defaultValue,le.innerHTML="<option></option>",m.option=!!le.lastChild;var he={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ge(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&S(e,t)?E.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}he.tbody=he.tfoot=he.colgroup=he.caption=he.thead,he.th=he.td,m.option||(he.optgroup=he.option=[1,"<select multiple='multiple'>","</select>"]);var ye=/<|&#?\w+;/;function me(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),d=[],p=0,h=e.length;p<h;p++)if((o=e[p])||0===o)if("object"===T(o))E.merge(d,o.nodeType?[o]:o);else if(ye.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=he[s]||he._default,a.innerHTML=u[1]+E.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;E.merge(d,a.childNodes),(a=f.firstChild).textContent=""}else d.push(t.createTextNode(o));f.textContent="",p=0;while(o=d[p++])if(r&&-1<E.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ge(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])pe.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function xe(){return!0}function we(){return!1}function Ce(e,t){return e===function(){try{return w.activeElement}catch(e){}}()==("focus"===t)}function Te(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Te(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=we;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return E().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=E.guid++)),e.each(function(){E.event.add(this,t,i,r,n)})}function Ee(e,i,o){o?(Y.set(e,i,!1),E.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(E.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:E.event.trigger(E.extend(r[0],E.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&E.event.add(e,i,xe)}E.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=Y.get(t);if(X(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&E.find.matchesSelector(re,i),n.guid||(n.guid=E.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(H)||[""]).length;while(l--)p=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),p&&(f=E.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=E.event.special[p]||{},c=E.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&E.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=u[p])||((d=u[p]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(p,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,c):d.push(c),E.event.global[p]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(H)||[""]).length;while(l--)if(p=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),p){f=E.event.special[p]||{},d=u[p=(r?f.delegateType:f.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=d.length;while(o--)c=d[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(e,c));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||E.removeEvent(e,p,v.handle),delete u[p])}else for(p in u)E.event.remove(e,p+t[l],n,r,!0);E.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=E.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=E.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=E.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((E.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<E(i,this).index(l):E.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(E.Event.prototype,t,{enumerable:!0,configurable:!0,get:b(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[E.expando]?e:new E.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return fe.test(t.type)&&t.click&&S(t,"input")&&Ee(t,"click",xe),!1},trigger:function(e){var t=this||e;return fe.test(t.type)&&t.click&&S(t,"input")&&Ee(t,"click"),!0},_default:function(e){var t=e.target;return fe.test(t.type)&&t.click&&S(t,"input")&&Y.get(t,"click")||S(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},E.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},E.Event=function(e,t){if(!(this instanceof E.Event))return new E.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?xe:we,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&E.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[E.expando]=!0},E.Event.prototype={constructor:E.Event,isDefaultPrevented:we,isPropagationStopped:we,isImmediatePropagationStopped:we,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=xe,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=xe,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=xe,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},E.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},E.event.addProp),E.each({focus:"focusin",blur:"focusout"},function(t,e){E.event.special[t]={setup:function(){return Ee(this,t,Ce),!1},trigger:function(){return Ee(this,t),!0},_default:function(e){return Y.get(e.target,t)},delegateType:e}}),E.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){E.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||E.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),E.fn.extend({on:function(e,t,n,r){return Te(this,e,t,n,r)},one:function(e,t,n,r){return Te(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,E(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=we),this.each(function(){E.event.remove(this,e,n,t)})}});var Ae=/<script|<style|<link/i,Ne=/checked\s*(?:[^=]|=\s*.checked.)/i,Se=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function ke(e,t){return S(e,"table")&&S(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Le(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function je(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)E.event.add(t,i,s[i][n]);G.hasData(e)&&(o=G.access(e),a=E.extend({},o),G.set(t,a))}}function qe(n,r,i,o){r=v(r);var e,t,a,s,u,l,c=0,f=n.length,d=f-1,p=r[0],h=b(p);if(h||1<f&&"string"==typeof p&&!m.checkClone&&Ne.test(p))return n.each(function(e){var t=n.eq(e);h&&(r[0]=p.call(this,e,t.html())),qe(t,r,i,o)});if(f&&(t=(e=me(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=E.map(ge(e,"script"),De)).length;c<f;c++)u=e,c!==d&&(u=E.clone(u,!0,!0),s&&E.merge(a,ge(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,E.map(a,Le),c=0;c<s;c++)u=a[c],pe.test(u.type||"")&&!Y.access(u,"globalEval")&&E.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?E._evalUrl&&!u.noModule&&E._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):C(u.textContent.replace(Se,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?E.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||E.cleanData(ge(r)),r.parentNode&&(n&&ie(r)&&ve(ge(r,"script")),r.parentNode.removeChild(r));return e}E.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(m.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||E.isXMLDoc(e)))for(a=ge(c),r=0,i=(o=ge(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&fe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ge(e),a=a||ge(c),r=0,i=o.length;r<i;r++)je(o[r],a[r]);else je(e,c);return 0<(a=ge(c,"script")).length&&ve(a,!f&&ge(e,"script")),c},cleanData:function(e){for(var t,n,r,i=E.event.special,o=0;void 0!==(n=e[o]);o++)if(X(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?E.event.remove(n,r):E.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[G.expando]&&(n[G.expando]=void 0)}}}),E.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?E.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return qe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||ke(this,e).appendChild(e)})},prepend:function(){return qe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=ke(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return qe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return qe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(E.cleanData(ge(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return E.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!he[(de.exec(e)||["",""])[1].toLowerCase()]){e=E.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(E.cleanData(ge(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return qe(this,arguments,function(e){var t=this.parentNode;E.inArray(this,n)<0&&(E.cleanData(ge(this)),t&&t.replaceChild(e,this))},n)}}),E.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){E.fn[e]=function(e){for(var t,n=[],r=E(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),E(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),He=/^--/,Ie=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=g),t.getComputedStyle(e)},Re=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Be=new RegExp(ne.join("|"),"i"),Me="[\\x20\\t\\r\\n\\f]",We=new RegExp("^"+Me+"+|((?:^|[^\\\\])(?:\\\\.)*)"+Me+"+$","g");function Fe(e,t,n){var r,i,o,a,s=He.test(t),u=e.style;return(n=n||Ie(e))&&(a=n.getPropertyValue(t)||n[t],s&&(a=a.replace(We,"$1")),""!==a||ie(e)||(a=E.style(e,t)),!m.pixelBoxStyles()&&Pe.test(a)&&Be.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function $e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=g.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=w.createElement("div"),l=w.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",m.clearCloneStyle="content-box"===l.style.backgroundClip,E.extend(m,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=w.createElement("table"),t=w.createElement("tr"),n=w.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=g.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var ze=["Webkit","Moz","ms"],_e=w.createElement("div").style,Ue={};function Ve(e){var t=E.cssProps[e]||Ue[e];return t||(e in _e?e:Ue[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=ze.length;while(n--)if((e=ze[n]+t)in _e)return e}(e)||e)}var Xe,Qe,Ye=/^(none|table(?!-c[ea]).+)/,Ge={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=E.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=E.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=E.css(e,"border"+ne[a]+"Width",!0,i))):(u+=E.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=E.css(e,"border"+ne[a]+"Width",!0,i):s+=E.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function et(e,t,n){var r=Ie(e),i=(!m.boxSizingReliable()||n)&&"border-box"===E.css(e,"boxSizing",!1,r),o=i,a=Fe(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!m.boxSizingReliable()&&i||!m.reliableTrDimensions()&&S(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===E.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===E.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ze(e,t,n||(i?"border":"content"),o,r,a)+"px"}E.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{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},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=He.test(t),l=e.style;if(u||(t=Ve(s)),a=E.cssHooks[t]||E.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=function(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return E.css(e,t,"")},u=s(),l=n&&n[3]||(E.cssNumber[t]?"":"px"),c=e.nodeType&&(E.cssNumber[t]||"px"!==l&&+u)&&te.exec(E.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)E.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,E.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(E.cssNumber[s]?"":"px")),m.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return He.test(t)||(t=Ve(s)),(a=E.cssHooks[t]||E.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),E.each(["height","width"],function(e,u){E.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(E.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,u,n):Re(e,Ge,function(){return et(e,u,n)})},set:function(e,t,n){var r,i=Ie(e),o=!m.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===E.css(e,"boxSizing",!1,i),s=n?Ze(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ze(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=E.css(e,u)),Je(0,t,s)}}}),E.cssHooks.marginLeft=$e(m.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-Re(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),E.each({margin:"",padding:"",border:"Width"},function(i,o){E.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(E.cssHooks[i+o].set=Je)}),E.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ie(e),i=t.length;a<i;a++)o[t[a]]=E.css(e,t[a],!1,r);return o}return void 0!==n?E.style(e,t,n):E.css(e,t)},e,t,1<arguments.length)}}),E.fn.delay=function(r,e){return r=E.fx&&E.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=g.setTimeout(e,r);t.stop=function(){g.clearTimeout(n)}})},Xe=w.createElement("input"),Qe=w.createElement("select").appendChild(w.createElement("option")),Xe.type="checkbox",m.checkOn=""!==Xe.value,m.optSelected=Qe.selected,(Xe=w.createElement("input")).value="t",Xe.type="radio",m.radioValue="t"===Xe.value;var tt,nt=E.expr.attrHandle;E.fn.extend({attr:function(e,t){return $(this,E.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){E.removeAttr(this,e)})}}),E.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?E.prop(e,t,n):(1===o&&E.isXMLDoc(e)||(i=E.attrHooks[t.toLowerCase()]||(E.expr.match.bool.test(t)?tt:void 0)),void 0!==n?null===n?void E.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=E.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!m.radioValue&&"radio"===t&&S(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(H);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),tt={set:function(e,t,n){return!1===t?E.removeAttr(e,n):e.setAttribute(n,n),n}},E.each(E.expr.match.bool.source.match(/\w+/g),function(e,t){var a=nt[t]||E.find.attr;nt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=nt[o],nt[o]=r,r=null!=a(e,t,n)?o:null,nt[o]=i),r}});var rt=/^(?:input|select|textarea|button)$/i,it=/^(?:a|area)$/i;function ot(e){return(e.match(H)||[]).join(" ")}function at(e){return e.getAttribute&&e.getAttribute("class")||""}function st(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(H)||[]}E.fn.extend({prop:function(e,t){return $(this,E.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[E.propFix[e]||e]})}}),E.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&E.isXMLDoc(e)||(t=E.propFix[t]||t,i=E.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=E.find.attr(e,"tabindex");return t?parseInt(t,10):rt.test(e.nodeName)||it.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),m.optSelected||(E.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),E.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){E.propFix[this.toLowerCase()]=this}),E.fn.extend({addClass:function(t){var e,n,r,i,o,a;return b(t)?this.each(function(e){E(this).addClass(t.call(this,e,at(this)))}):(e=st(t)).length?this.each(function(){if(r=at(this),n=1===this.nodeType&&" "+ot(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=ot(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return b(t)?this.each(function(e){E(this).removeClass(t.call(this,e,at(this)))}):arguments.length?(e=st(t)).length?this.each(function(){if(r=at(this),n=1===this.nodeType&&" "+ot(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=ot(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return b(t)?this.each(function(e){E(this).toggleClass(t.call(this,e,at(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=st(t),this.each(function(){if(s)for(o=E(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=at(this))&&Y.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":Y.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ot(at(n))+" ").indexOf(t))return!0;return!1}});var ut=/\r/g;E.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=b(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,E(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=E.map(t,function(e){return null==e?"":e+""})),(r=E.valHooks[this.type]||E.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=E.valHooks[t.type]||E.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(ut,""):null==e?"":e:void 0}}),E.extend({valHooks:{option:{get:function(e){var t=E.find.attr(e,"value");return null!=t?t:ot(E.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!S(n.parentNode,"optgroup"))){if(t=E(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=E.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<E.inArray(E.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),E.each(["radio","checkbox"],function(){E.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<E.inArray(E(e).val(),t)}},m.checkOn||(E.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),m.focusin="onfocusin"in g;var lt=/^(?:focusinfocus|focusoutblur)$/,ct=function(e){e.stopPropagation()};E.extend(E.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,d=[n||w],p=y.call(e,"type")?e.type:e,h=y.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||w,3!==n.nodeType&&8!==n.nodeType&&!lt.test(p+E.event.triggered)&&(-1<p.indexOf(".")&&(p=(h=p.split(".")).shift(),h.sort()),u=p.indexOf(":")<0&&"on"+p,(e=e[E.expando]?e:new E.Event(p,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:E.makeArray(t,[e]),c=E.event.special[p]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||p,lt.test(s+p)||(o=o.parentNode);o;o=o.parentNode)d.push(o),a=o;a===(n.ownerDocument||w)&&d.push(a.defaultView||a.parentWindow||g)}i=0;while((o=d[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||p,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&X(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=p,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(d.pop(),t)||!X(n)||u&&b(n[p])&&!x(n)&&((a=n[u])&&(n[u]=null),E.event.triggered=p,e.isPropagationStopped()&&f.addEventListener(p,ct),n[p](),e.isPropagationStopped()&&f.removeEventListener(p,ct),E.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=E.extend(new E.Event,n,{type:e,isSimulated:!0});E.event.trigger(r,null,t)}}),E.fn.extend({trigger:function(e,t){return this.each(function(){E.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return E.event.trigger(e,t,n,!0)}}),m.focusin||E.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){E.event.simulate(r,e.target,E.event.fix(e))};E.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}}),E.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new g.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||E.error("Invalid XML: "+(n?E.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var ft,dt=/\[\]$/,pt=/\r?\n/g,ht=/^(?:submit|button|image|reset|file)$/i,gt=/^(?:input|select|textarea|keygen)/i;function vt(n,e,r,i){var t;if(Array.isArray(e))E.each(e,function(e,t){r||dt.test(n)?i(n,t):vt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==T(e))i(n,e);else for(t in e)vt(n+"["+t+"]",e[t],r,i)}E.param=function(e,t){var n,r=[],i=function(e,t){var n=b(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!E.isPlainObject(e))E.each(e,function(){i(this.name,this.value)});else for(n in e)vt(n,e[n],t,i);return r.join("&")},E.fn.extend({serialize:function(){return E.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=E.prop(this,"elements");return e?E.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!E(this).is(":disabled")&&gt.test(this.nodeName)&&!ht.test(e)&&(this.checked||!fe.test(e))}).map(function(e,t){var n=E(this).val();return null==n?null:Array.isArray(n)?E.map(n,function(e){return{name:t.name,value:e.replace(pt,"\r\n")}}):{name:t.name,value:n.replace(pt,"\r\n")}}).get()}}),E.fn.extend({wrapAll:function(e){var t;return this[0]&&(b(e)&&(e=e.call(this[0])),t=E(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return b(n)?this.each(function(e){E(this).wrapInner(n.call(this,e))}):this.each(function(){var e=E(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=b(t);return this.each(function(e){E(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){E(this).replaceWith(this.childNodes)}),this}}),E.expr.pseudos.hidden=function(e){return!E.expr.pseudos.visible(e)},E.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},m.createHTMLDocument=((ft=w.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===ft.childNodes.length),E.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(m.createHTMLDocument?((r=(t=w.implementation.createHTMLDocument("")).createElement("base")).href=w.location.href,t.head.appendChild(r)):t=w),o=!n&&[],(i=k.exec(e))?[t.createElement(i[1])]:(i=me([e],t,o),o&&o.length&&E(o).remove(),E.merge([],i.childNodes)));var r,i,o},E.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=E.css(e,"position"),c=E(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=E.css(e,"top"),u=E.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),b(t)&&(t=t.call(e,n,E.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===E.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===E.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,"borderTopWidth",!0),i.left+=E.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-E.css(r,"marginTop",!0),left:t.left-i.left-E.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===E.css(e,"position"))e=e.offsetParent;return e||re})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;E.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=$e(m.pixelPosition,function(e,t){if(t)return t=Fe(e,n),Pe.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(a,s){E.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){E.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n)}})}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.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,n){E.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var yt=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;E.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),b(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||E.guid++,i},E.holdReady=function(e){e?E.readyWait++:E.ready(!0)},E.isArray=Array.isArray,E.parseJSON=JSON.parse,E.nodeName=S,E.isFunction=b,E.isWindow=x,E.camelCase=V,E.type=T,E.now=Date.now,E.isNumeric=function(e){var t=E.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},E.trim=function(e){return null==e?"":(e+"").replace(yt,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return E});var mt=g.jQuery,bt=g.$;return E.noConflict=function(e){return g.$===E&&(g.$=bt),e&&g.jQuery===E&&(g.jQuery=mt),E},"undefined"==typeof e&&(g.jQuery=g.$=E),E});
diff --git a/vendor/jquery/3.6.1/jquery.slim.min.map b/vendor/jquery/3.6.1/jquery.slim.min.map
new file mode 100644
index 0000000..d1f8f60
--- /dev/null
+++ b/vendor/jquery/3.6.1/jquery.slim.min.map
@@ -0,0 +1 @@
+{"version":3,"sources":["jquery.slim.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","getProto","Object","getPrototypeOf","slice","flat","array","call","concat","apply","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","support","isFunction","obj","nodeType","item","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","i","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","jQuery","selector","context","fn","init","isArrayLike","length","prototype","jquery","constructor","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","name","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","value","guid","Symbol","iterator","split","_i","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","testContext","scope","toSelector","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","_matchIndexes","lt","gt","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","targets","l","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","object","_","flag","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","defaultDisplayMap","showHide","show","values","body","hide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","create","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","rcustomProp","getStyles","opener","getComputedStyle","swap","old","rboxStyle","rtrimCSS","curCSS","computed","width","minWidth","maxWidth","isCustomProp","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","opt","rdisplayswap","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","cssHooks","opacity","cssNumber","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","zoom","origName","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","initialInUnit","adjustCSS","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","delay","time","fx","speeds","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","propHooks","tabindex","for","class","addClass","classNames","curValue","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","hidden","visible","createHTMLDocument","implementation","keepScripts","parsed","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollLeft","scrollTop","scrollTo","Height","Width","","defaultExtra","funcName","bind","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","trim","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery.slim.min.js"}
\ No newline at end of file
-- 
GitLab