/* Minification failed. Returning unminified contents.
(9229,346487): run-time error JS1004: Expected ';'
(9229,346496-346497): run-time error JS1010: Expected identifier: (
(9229,346587): run-time error JS1004: Expected ';'
(9229,346876-346877): run-time error JS1195: Expected expression: ,
(9229,346877-346878): run-time error JS1300: Strict-mode does not allow assignment to undefined variables: k
(9229,347612-347613): run-time error JS1300: Strict-mode does not allow assignment to undefined variables: A
(9229,347875-347876): run-time error JS1300: Strict-mode does not allow assignment to undefined variables: O
(9229,347957-347958): run-time error JS1300: Strict-mode does not allow assignment to undefined variables: I
 */
/*!
 * jQuery JavaScript Library v1.8.0
 * http://jquery.com/
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 *
 * Copyright 2012 jQuery Foundation and other contributors
 * Released under the MIT license
 * http://jquery.org/license
 *
 * Date: Thu Aug 09 2012 16:24:48 GMT-0400 (Eastern Daylight Time)
 */
(function( window, undefined ) {
var
	// A central reference to the root jQuery(document)
	rootjQuery,

	// The deferred used on DOM ready
	readyList,

	// Use the correct document accordingly with window argument (sandbox)
	document = window.document,
	location = window.location,
	navigator = window.navigator,

	// Map over jQuery in case of overwrite
	_jQuery = window.jQuery,

	// Map over the $ in case of overwrite
	_$ = window.$,

	// Save a reference to some core methods
	core_push = Array.prototype.push,
	core_slice = Array.prototype.slice,
	core_indexOf = Array.prototype.indexOf,
	core_toString = Object.prototype.toString,
	core_hasOwn = Object.prototype.hasOwnProperty,
	core_trim = String.prototype.trim,

	// Define a local copy of jQuery
	jQuery = function( selector, context ) {
		// The jQuery object is actually just the init constructor 'enhanced'
		return new jQuery.fn.init( selector, context, rootjQuery );
	},

	// Used for matching numbers
	core_pnum = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,

	// Used for detecting and trimming whitespace
	core_rnotwhite = /\S/,
	core_rspace = /\s+/,

	// IE doesn't match non-breaking spaces with \s
	rtrim = core_rnotwhite.test("\xA0") ? (/^[\s\xA0]+|[\s\xA0]+$/g) : /^\s+|\s+$/g,

	// A simple way to check for HTML strings
	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
	rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,

	// Match a standalone tag
	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,

	// JSON RegExp
	rvalidchars = /^[\],:{}\s]*$/,
	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
	rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
	rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,

	// Matches dashed string for camelizing
	rmsPrefix = /^-ms-/,
	rdashAlpha = /-([\da-z])/gi,

	// Used by jQuery.camelCase as callback to replace()
	fcamelCase = function( all, letter ) {
		return ( letter + "" ).toUpperCase();
	},

	// The ready event handler and self cleanup method
	DOMContentLoaded = function() {
		if ( document.addEventListener ) {
			document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
			jQuery.ready();
		} else if ( document.readyState === "complete" ) {
			// we're here because readyState === "complete" in oldIE
			// which is good enough for us to call the dom ready!
			document.detachEvent( "onreadystatechange", DOMContentLoaded );
			jQuery.ready();
		}
	},

	// [[Class]] -> type pairs
	class2type = {};

jQuery.fn = jQuery.prototype = {
	constructor: jQuery,
	init: function( selector, context, rootjQuery ) {
		var match, elem, ret, doc;

		// Handle $(""), $(null), $(undefined), $(false)
		if ( !selector ) {
			return this;
		}

		// Handle $(DOMElement)
		if ( selector.nodeType ) {
			this.context = this[0] = selector;
			this.length = 1;
			return this;
		}

		// Handle HTML strings
		if ( typeof selector === "string" ) {
			if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
				// Assume that strings that start and end with <> are HTML and skip the regex check
				match = [ null, selector, null ];

			} else {
				match = rquickExpr.exec( selector );
			}

			// Match html or make sure no context is specified for #id
			if ( match && (match[1] || !context) ) {

				// HANDLE: $(html) -> $(array)
				if ( match[1] ) {
					context = context instanceof jQuery ? context[0] : context;
					doc = ( context && context.nodeType ? context.ownerDocument || context : document );

					// scripts is true for back-compat
					selector = jQuery.parseHTML( match[1], doc, true );
					if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
						this.attr.call( selector, context, true );
					}

					return jQuery.merge( this, selector );

				// HANDLE: $(#id)
				} else {
					elem = document.getElementById( match[2] );

					// Check parentNode to catch when Blackberry 4.6 returns
					// nodes that are no longer in the document #6963
					if ( elem && elem.parentNode ) {
						// Handle the case where IE and Opera return items
						// by name instead of ID
						if ( elem.id !== match[2] ) {
							return rootjQuery.find( selector );
						}

						// Otherwise, we inject the element directly into the jQuery object
						this.length = 1;
						this[0] = elem;
					}

					this.context = document;
					this.selector = selector;
					return this;
				}

			// HANDLE: $(expr, $(...))
			} else if ( !context || context.jquery ) {
				return ( context || rootjQuery ).find( selector );

			// HANDLE: $(expr, context)
			// (which is just equivalent to: $(context).find(expr)
			} else {
				return this.constructor( context ).find( selector );
			}

		// HANDLE: $(function)
		// Shortcut for document ready
		} else if ( jQuery.isFunction( selector ) ) {
			return rootjQuery.ready( selector );
		}

		if ( selector.selector !== undefined ) {
			this.selector = selector.selector;
			this.context = selector.context;
		}

		return jQuery.makeArray( selector, this );
	},

	// Start with an empty selector
	selector: "",

	// The current version of jQuery being used
	jquery: "1.8.0",

	// The default length of a jQuery object is 0
	length: 0,

	// The number of elements contained in the matched element set
	size: function() {
		return this.length;
	},

	toArray: function() {
		return core_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 num == null ?

			// Return a 'clean' array
			this.toArray() :

			// Return just the object
			( num < 0 ? this[ this.length + num ] : this[ num ] );
	},

	// Take an array of elements and push it onto the stack
	// (returning the new matched element set)
	pushStack: function( elems, name, selector ) {

		// 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;

		ret.context = this.context;

		if ( name === "find" ) {
			ret.selector = this.selector + ( this.selector ? " " : "" ) + selector;
		} else if ( name ) {
			ret.selector = this.selector + "." + name + "(" + selector + ")";
		}

		// Return the newly-formed element set
		return ret;
	},

	// Execute a callback for every element in the matched set.
	// (You can seed the arguments with an array of args, but this is
	// only used internally.)
	each: function( callback, args ) {
		return jQuery.each( this, callback, args );
	},

	ready: function( fn ) {
		// Add the callback
		jQuery.ready.promise().done( fn );

		return this;
	},

	eq: function( i ) {
		i = +i;
		return i === -1 ?
			this.slice( i ) :
			this.slice( i, i + 1 );
	},

	first: function() {
		return this.eq( 0 );
	},

	last: function() {
		return this.eq( -1 );
	},

	slice: function() {
		return this.pushStack( core_slice.apply( this, arguments ),
			"slice", core_slice.call(arguments).join(",") );
	},

	map: function( callback ) {
		return this.pushStack( jQuery.map(this, function( elem, i ) {
			return callback.call( elem, i, elem );
		}));
	},

	end: function() {
		return this.prevObject || this.constructor(null);
	},

	// For internal use only.
	// Behaves like an Array's method, not like a jQuery method.
	push: core_push,
	sort: [].sort,
	splice: [].splice
};

// Give the init function the jQuery prototype for later instantiation
jQuery.fn.init.prototype = jQuery.fn;

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;
		target = arguments[1] || {};
		// skip the boolean and the target
		i = 2;
	}

	// 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 ( length === i ) {
		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 = jQuery.isArray(copy)) ) ) {
					if ( copyIsArray ) {
						copyIsArray = false;
						clone = src && jQuery.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({
	noConflict: function( deep ) {
		if ( window.$ === jQuery ) {
			window.$ = _$;
		}

		if ( deep && window.jQuery === jQuery ) {
			window.jQuery = _jQuery;
		}

		return jQuery;
	},

	// Is the DOM ready to be used? Set to true once it occurs.
	isReady: false,

	// A counter to track how many items to wait for before
	// the ready event fires. See #6781
	readyWait: 1,

	// Hold (or release) the ready event
	holdReady: function( hold ) {
		if ( hold ) {
			jQuery.readyWait++;
		} else {
			jQuery.ready( true );
		}
	},

	// Handle when the DOM is ready
	ready: function( wait ) {

		// Abort if there are pending holds or we're already ready
		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
			return;
		}

		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
		if ( !document.body ) {
			return setTimeout( jQuery.ready, 1 );
		}

		// Remember that the DOM is ready
		jQuery.isReady = true;

		// If a normal DOM Ready event fired, decrement, and wait if need be
		if ( wait !== true && --jQuery.readyWait > 0 ) {
			return;
		}

		// If there are functions bound, to execute
		readyList.resolveWith( document, [ jQuery ] );

		// Trigger any bound ready events
		if ( jQuery.fn.trigger ) {
			jQuery( document ).trigger("ready").off("ready");
		}
	},

	// See test/unit/core.js for details concerning isFunction.
	// Since version 1.3, DOM methods and functions like alert
	// aren't supported. They return false on IE (#2968).
	isFunction: function( obj ) {
		return jQuery.type(obj) === "function";
	},

	isArray: Array.isArray || function( obj ) {
		return jQuery.type(obj) === "array";
	},

	isWindow: function( obj ) {
		return obj != null && obj == obj.window;
	},

	isNumeric: function( obj ) {
		return !isNaN( parseFloat(obj) ) && isFinite( obj );
	},

	type: function( obj ) {
		return obj == null ?
			String( obj ) :
			class2type[ core_toString.call(obj) ] || "object";
	},

	isPlainObject: function( obj ) {
		// Must be an Object.
		// Because of IE, we also have to check the presence of the constructor property.
		// Make sure that DOM nodes and window objects don't pass through, as well
		if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
			return false;
		}

		try {
			// Not own constructor property must be Object
			if ( obj.constructor &&
				!core_hasOwn.call(obj, "constructor") &&
				!core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
				return false;
			}
		} catch ( e ) {
			// IE8,9 Will throw exceptions on certain host objects #9897
			return false;
		}

		// Own properties are enumerated firstly, so to speed up,
		// if last one is own, then all properties are own.

		var key;
		for ( key in obj ) {}

		return key === undefined || core_hasOwn.call( obj, key );
	},

	isEmptyObject: function( obj ) {
		var name;
		for ( name in obj ) {
			return false;
		}
		return true;
	},

	error: function( msg ) {
		throw new Error( msg );
	},

	// data: string of html
	// context (optional): If specified, the fragment will be created in this context, defaults to document
	// scripts (optional): If true, will include scripts passed in the html string
	parseHTML: function( data, context, scripts ) {
		var parsed;
		if ( !data || typeof data !== "string" ) {
			return null;
		}
		if ( typeof context === "boolean" ) {
			scripts = context;
			context = 0;
		}
		context = context || document;

		// Single tag
		if ( (parsed = rsingleTag.exec( data )) ) {
			return [ context.createElement( parsed[1] ) ];
		}

		parsed = jQuery.buildFragment( [ data ], context, scripts ? null : [] );
		return jQuery.merge( [],
			(parsed.cacheable ? jQuery.clone( parsed.fragment ) : parsed.fragment).childNodes );
	},

	parseJSON: function( data ) {
		if ( !data || typeof data !== "string") {
			return null;
		}

		// Make sure leading/trailing whitespace is removed (IE can't handle it)
		data = jQuery.trim( data );

		// Attempt to parse using the native JSON parser first
		if ( window.JSON && window.JSON.parse ) {
			return window.JSON.parse( data );
		}

		// Make sure the incoming data is actual JSON
		// Logic borrowed from http://json.org/json2.js
		if ( rvalidchars.test( data.replace( rvalidescape, "@" )
			.replace( rvalidtokens, "]" )
			.replace( rvalidbraces, "")) ) {

			return ( new Function( "return " + data ) )();

		}
		jQuery.error( "Invalid JSON: " + data );
	},

	// Cross-browser xml parsing
	parseXML: function( data ) {
		var xml, tmp;
		if ( !data || typeof data !== "string" ) {
			return null;
		}
		try {
			if ( window.DOMParser ) { // Standard
				tmp = new DOMParser();
				xml = tmp.parseFromString( data , "text/xml" );
			} else { // IE
				xml = new ActiveXObject( "Microsoft.XMLDOM" );
				xml.async = "false";
				xml.loadXML( data );
			}
		} catch( e ) {
			xml = undefined;
		}
		if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
			jQuery.error( "Invalid XML: " + data );
		}
		return xml;
	},

	noop: function() {},

	// Evaluates a script in a global context
	// Workarounds based on findings by Jim Driscoll
	// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
	globalEval: function( data ) {
		if ( data && core_rnotwhite.test( data ) ) {
			// We use execScript on Internet Explorer
			// We use an anonymous function so that context is window
			// rather than jQuery in Firefox
			( window.execScript || function( data ) {
				window[ "eval" ].call( window, data );
			} )( data );
		}
	},

	// Convert dashed to camelCase; used by the css and data modules
	// Microsoft forgot to hump their vendor prefix (#9572)
	camelCase: function( string ) {
		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
	},

	nodeName: function( elem, name ) {
		return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
	},

	// args is for internal usage only
	each: function( obj, callback, args ) {
		var name,
			i = 0,
			length = obj.length,
			isObj = length === undefined || jQuery.isFunction( obj );

		if ( args ) {
			if ( isObj ) {
				for ( name in obj ) {
					if ( callback.apply( obj[ name ], args ) === false ) {
						break;
					}
				}
			} else {
				for ( ; i < length; ) {
					if ( callback.apply( obj[ i++ ], args ) === false ) {
						break;
					}
				}
			}

		// A special, fast, case for the most common use of each
		} else {
			if ( isObj ) {
				for ( name in obj ) {
					if ( callback.call( obj[ name ], name, obj[ name ] ) === false ) {
						break;
					}
				}
			} else {
				for ( ; i < length; ) {
					if ( callback.call( obj[ i ], i, obj[ i++ ] ) === false ) {
						break;
					}
				}
			}
		}

		return obj;
	},

	// Use native String.trim function wherever possible
	trim: core_trim ?
		function( text ) {
			return text == null ?
				"" :
				core_trim.call( text );
		} :

		// Otherwise use our own trimming functionality
		function( text ) {
			return text == null ?
				"" :
				text.toString().replace( rtrim, "" );
		},

	// results is for internal usage only
	makeArray: function( arr, results ) {
		var type,
			ret = results || [];

		if ( arr != null ) {
			// The window, strings (and functions) also have 'length'
			// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
			type = jQuery.type( arr );

			if ( arr.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( arr ) ) {
				core_push.call( ret, arr );
			} else {
				jQuery.merge( ret, arr );
			}
		}

		return ret;
	},

	inArray: function( elem, arr, i ) {
		var len;

		if ( arr ) {
			if ( core_indexOf ) {
				return core_indexOf.call( arr, elem, i );
			}

			len = arr.length;
			i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;

			for ( ; i < len; i++ ) {
				// Skip accessing in sparse arrays
				if ( i in arr && arr[ i ] === elem ) {
					return i;
				}
			}
		}

		return -1;
	},

	merge: function( first, second ) {
		var l = second.length,
			i = first.length,
			j = 0;

		if ( typeof l === "number" ) {
			for ( ; j < l; j++ ) {
				first[ i++ ] = second[ j ];
			}

		} else {
			while ( second[j] !== undefined ) {
				first[ i++ ] = second[ j++ ];
			}
		}

		first.length = i;

		return first;
	},

	grep: function( elems, callback, inv ) {
		var retVal,
			ret = [],
			i = 0,
			length = elems.length;
		inv = !!inv;

		// Go through the array, only saving the items
		// that pass the validator function
		for ( ; i < length; i++ ) {
			retVal = !!callback( elems[ i ], i );
			if ( inv !== retVal ) {
				ret.push( elems[ i ] );
			}
		}

		return ret;
	},

	// arg is for internal usage only
	map: function( elems, callback, arg ) {
		var value, key,
			ret = [],
			i = 0,
			length = elems.length,
			// jquery objects are treated as arrays
			isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;

		// Go through the array, translating each of the items to their
		if ( isArray ) {
			for ( ; i < length; i++ ) {
				value = callback( elems[ i ], i, arg );

				if ( value != null ) {
					ret[ ret.length ] = value;
				}
			}

		// Go through every key on the object,
		} else {
			for ( key in elems ) {
				value = callback( elems[ key ], key, arg );

				if ( value != null ) {
					ret[ ret.length ] = value;
				}
			}
		}

		// Flatten any nested arrays
		return ret.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 = core_slice.call( arguments, 2 );
		proxy = function() {
			return fn.apply( context, args.concat( core_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 || proxy.guid || jQuery.guid++;

		return proxy;
	},

	// Multifunctional method to get and set values of a collection
	// The value/s can optionally be executed if it's a function
	access: function( elems, fn, key, value, chainable, emptyGet, pass ) {
		var exec,
			bulk = key == null,
			i = 0,
			length = elems.length;

		// Sets many values
		if ( key && typeof key === "object" ) {
			for ( i in key ) {
				jQuery.access( elems, fn, i, key[i], 1, emptyGet, value );
			}
			chainable = 1;

		// Sets one value
		} else if ( value !== undefined ) {
			// Optionally, function values get executed if exec is true
			exec = pass === undefined && jQuery.isFunction( value );

			if ( bulk ) {
				// Bulk operations only iterate when executing function values
				if ( exec ) {
					exec = fn;
					fn = function( elem, key, value ) {
						return exec.call( jQuery( elem ), value );
					};

				// Otherwise they run against the entire set
				} else {
					fn.call( elems, value );
					fn = null;
				}
			}

			if ( fn ) {
				for (; i < length; i++ ) {
					fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
				}
			}

			chainable = 1;
		}

		return chainable ?
			elems :

			// Gets
			bulk ?
				fn.call( elems ) :
				length ? fn( elems[0], key ) : emptyGet;
	},

	now: function() {
		return ( new Date() ).getTime();
	}
});

jQuery.ready.promise = function( obj ) {
	if ( !readyList ) {

		readyList = jQuery.Deferred();

		// Catch cases where $(document).ready() is called after the
		// browser event has already occurred.
		if ( document.readyState === "complete" || ( document.readyState !== "loading" && document.addEventListener ) ) {
			// Handle it asynchronously to allow scripts the opportunity to delay ready
			setTimeout( jQuery.ready, 1 );

		// Standards-based browsers support DOMContentLoaded
		} else if ( document.addEventListener ) {
			// Use the handy event callback
			document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );

			// A fallback to window.onload, that will always work
			window.addEventListener( "load", jQuery.ready, false );

		// If IE event model is used
		} else {
			// Ensure firing before onload, maybe late but safe also for iframes
			document.attachEvent( "onreadystatechange", DOMContentLoaded );

			// A fallback to window.onload, that will always work
			window.attachEvent( "onload", jQuery.ready );

			// If IE and not a frame
			// continually check to see if the document is ready
			var top = false;

			try {
				top = window.frameElement == null && document.documentElement;
			} catch(e) {}

			if ( top && top.doScroll ) {
				(function doScrollCheck() {
					if ( !jQuery.isReady ) {

						try {
							// Use the trick by Diego Perini
							// http://javascript.nwbox.com/IEContentLoaded/
							top.doScroll("left");
						} catch(e) {
							return setTimeout( doScrollCheck, 50 );
						}

						// and execute any waiting functions
						jQuery.ready();
					}
				})();
			}
		}
	}
	return readyList.promise( obj );
};

// Populate the class2type map
jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
	class2type[ "[object " + name + "]" ] = name.toLowerCase();
});

// All jQuery objects should point back to these
rootjQuery = jQuery(document);
// String to Object options format cache
var optionsCache = {};

// Convert String-formatted options into Object-formatted ones and store in cache
function createOptions( options ) {
	var object = optionsCache[ options ] = {};
	jQuery.each( options.split( core_rspace ), function( _, flag ) {
		object[ flag ] = true;
	});
	return object;
}

/*
 * Create a callback list using the following parameters:
 *
 *	options: an optional list of space-separated options that will change how
 *			the callback list behaves or a more traditional option object
 *
 * By default a callback list will act like an event callback list and can be
 * "fired" multiple times.
 *
 * Possible options:
 *
 *	once:			will ensure the callback list can only be fired once (like a Deferred)
 *
 *	memory:			will keep track of previous values and will call any callback added
 *					after the list has been fired right away with the latest "memorized"
 *					values (like a Deferred)
 *
 *	unique:			will ensure a callback can only be added once (no duplicate in the list)
 *
 *	stopOnFalse:	interrupt callings when a callback returns false
 *
 */
jQuery.Callbacks = function( options ) {

	// Convert options from String-formatted to Object-formatted if needed
	// (we check in cache first)
	options = typeof options === "string" ?
		( optionsCache[ options ] || createOptions( options ) ) :
		jQuery.extend( {}, options );

	var // Last fire value (for non-forgettable lists)
		memory,
		// Flag to know if list was already fired
		fired,
		// Flag to know if list is currently firing
		firing,
		// First callback to fire (used internally by add and fireWith)
		firingStart,
		// End of the loop when firing
		firingLength,
		// Index of currently firing callback (modified by remove if needed)
		firingIndex,
		// Actual callback list
		list = [],
		// Stack of fire calls for repeatable lists
		stack = !options.once && [],
		// Fire callbacks
		fire = function( data ) {
			memory = options.memory && data;
			fired = true;
			firingIndex = firingStart || 0;
			firingStart = 0;
			firingLength = list.length;
			firing = true;
			for ( ; list && firingIndex < firingLength; firingIndex++ ) {
				if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
					memory = false; // To prevent further calls using add
					break;
				}
			}
			firing = false;
			if ( list ) {
				if ( stack ) {
					if ( stack.length ) {
						fire( stack.shift() );
					}
				} else if ( memory ) {
					list = [];
				} else {
					self.disable();
				}
			}
		},
		// Actual Callbacks object
		self = {
			// Add a callback or a collection of callbacks to the list
			add: function() {
				if ( list ) {
					// First, we save the current length
					var start = list.length;
					(function add( args ) {
						jQuery.each( args, function( _, arg ) {
							if ( jQuery.isFunction( arg ) && ( !options.unique || !self.has( arg ) ) ) {
								list.push( arg );
							} else if ( arg && arg.length ) {
								// Inspect recursively
								add( arg );
							}
						});
					})( arguments );
					// Do we need to add the callbacks to the
					// current firing batch?
					if ( firing ) {
						firingLength = list.length;
					// With memory, if we're not firing then
					// we should call right away
					} else if ( memory ) {
						firingStart = start;
						fire( memory );
					}
				}
				return this;
			},
			// Remove a callback from the list
			remove: function() {
				if ( list ) {
					jQuery.each( arguments, function( _, arg ) {
						var index;
						while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
							list.splice( index, 1 );
							// Handle firing indexes
							if ( firing ) {
								if ( index <= firingLength ) {
									firingLength--;
								}
								if ( index <= firingIndex ) {
									firingIndex--;
								}
							}
						}
					});
				}
				return this;
			},
			// Control if a given callback is in the list
			has: function( fn ) {
				return jQuery.inArray( fn, list ) > -1;
			},
			// Remove all callbacks from the list
			empty: function() {
				list = [];
				return this;
			},
			// Have the list do nothing anymore
			disable: function() {
				list = stack = memory = undefined;
				return this;
			},
			// Is it disabled?
			disabled: function() {
				return !list;
			},
			// Lock the list in its current state
			lock: function() {
				stack = undefined;
				if ( !memory ) {
					self.disable();
				}
				return this;
			},
			// Is it locked?
			locked: function() {
				return !stack;
			},
			// Call all callbacks with the given context and arguments
			fireWith: function( context, args ) {
				args = args || [];
				args = [ context, args.slice ? args.slice() : args ];
				if ( list && ( !fired || stack ) ) {
					if ( firing ) {
						stack.push( args );
					} else {
						fire( args );
					}
				}
				return this;
			},
			// Call all the callbacks with the given arguments
			fire: function() {
				self.fireWith( this, arguments );
				return this;
			},
			// To know if the callbacks have already been called at least once
			fired: function() {
				return !!fired;
			}
		};

	return self;
};
jQuery.extend({

	Deferred: function( func ) {
		var tuples = [
				// action, add listener, listener list, final state
				[ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
				[ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
				[ "notify", "progress", jQuery.Callbacks("memory") ]
			],
			state = "pending",
			promise = {
				state: function() {
					return state;
				},
				always: function() {
					deferred.done( arguments ).fail( arguments );
					return this;
				},
				then: function( /* fnDone, fnFail, fnProgress */ ) {
					var fns = arguments;
					return jQuery.Deferred(function( newDefer ) {
						jQuery.each( tuples, function( i, tuple ) {
							var action = tuple[ 0 ],
								fn = fns[ i ];
							// deferred[ done | fail | progress ] for forwarding actions to newDefer
							deferred[ tuple[1] ]( jQuery.isFunction( fn ) ?
								function() {
									var returned = fn.apply( this, arguments );
									if ( returned && jQuery.isFunction( returned.promise ) ) {
										returned.promise()
											.done( newDefer.resolve )
											.fail( newDefer.reject )
											.progress( newDefer.notify );
									} else {
										newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
									}
								} :
								newDefer[ action ]
							);
						});
						fns = null;
					}).promise();
				},
				// Get a promise for this deferred
				// If obj is provided, the promise aspect is added to the object
				promise: function( obj ) {
					return typeof obj === "object" ? jQuery.extend( obj, promise ) : promise;
				}
			},
			deferred = {};

		// Keep pipe for back-compat
		promise.pipe = promise.then;

		// Add list-specific methods
		jQuery.each( tuples, function( i, tuple ) {
			var list = tuple[ 2 ],
				stateString = tuple[ 3 ];

			// promise[ done | fail | progress ] = list.add
			promise[ tuple[1] ] = list.add;

			// Handle state
			if ( stateString ) {
				list.add(function() {
					// state = [ resolved | rejected ]
					state = stateString;

				// [ reject_list | resolve_list ].disable; progress_list.lock
				}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
			}

			// deferred[ resolve | reject | notify ] = list.fire
			deferred[ tuple[0] ] = list.fire;
			deferred[ tuple[0] + "With" ] = list.fireWith;
		});

		// Make the deferred a promise
		promise.promise( deferred );

		// Call given func if any
		if ( func ) {
			func.call( deferred, deferred );
		}

		// All done!
		return deferred;
	},

	// Deferred helper
	when: function( subordinate /* , ..., subordinateN */ ) {
		var i = 0,
			resolveValues = core_slice.call( arguments ),
			length = resolveValues.length,

			// the count of uncompleted subordinates
			remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,

			// the master Deferred. If resolveValues consist of only a single Deferred, just use that.
			deferred = remaining === 1 ? subordinate : jQuery.Deferred(),

			// Update function for both resolve and progress values
			updateFunc = function( i, contexts, values ) {
				return function( value ) {
					contexts[ i ] = this;
					values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value;
					if( values === progressValues ) {
						deferred.notifyWith( contexts, values );
					} else if ( !( --remaining ) ) {
						deferred.resolveWith( contexts, values );
					}
				};
			},

			progressValues, progressContexts, resolveContexts;

		// add listeners to Deferred subordinates; treat others as resolved
		if ( length > 1 ) {
			progressValues = new Array( length );
			progressContexts = new Array( length );
			resolveContexts = new Array( length );
			for ( ; i < length; i++ ) {
				if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
					resolveValues[ i ].promise()
						.done( updateFunc( i, resolveContexts, resolveValues ) )
						.fail( deferred.reject )
						.progress( updateFunc( i, progressContexts, progressValues ) );
				} else {
					--remaining;
				}
			}
		}

		// if we're not waiting on anything, resolve the master
		if ( !remaining ) {
			deferred.resolveWith( resolveContexts, resolveValues );
		}

		return deferred.promise();
	}
});
jQuery.support = (function() {

	var support,
		all,
		a,
		select,
		opt,
		input,
		fragment,
		eventName,
		i,
		isSupported,
		clickFn,
		div = document.createElement("div");

	// Preliminary tests
	div.setAttribute( "className", "t" );
	div.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";

	all = div.getElementsByTagName("*");
	a = div.getElementsByTagName("a")[ 0 ];
	a.style.cssText = "top:1px;float:left;opacity:.5";

	// Can't get basic test support
	if ( !all || !all.length || !a ) {
		return {};
	}

	// First batch of supports tests
	select = document.createElement("select");
	opt = select.appendChild( document.createElement("option") );
	input = div.getElementsByTagName("input")[ 0 ];

	support = {
		// IE strips leading whitespace when .innerHTML is used
		leadingWhitespace: ( div.firstChild.nodeType === 3 ),

		// Make sure that tbody elements aren't automatically inserted
		// IE will insert them into empty tables
		tbody: !div.getElementsByTagName("tbody").length,

		// Make sure that link elements get serialized correctly by innerHTML
		// This requires a wrapper element in IE
		htmlSerialize: !!div.getElementsByTagName("link").length,

		// Get the style information from getAttribute
		// (IE uses .cssText instead)
		style: /top/.test( a.getAttribute("style") ),

		// Make sure that URLs aren't manipulated
		// (IE normalizes it by default)
		hrefNormalized: ( a.getAttribute("href") === "/a" ),

		// Make sure that element opacity exists
		// (IE uses filter instead)
		// Use a regex to work around a WebKit issue. See #5145
		opacity: /^0.5/.test( a.style.opacity ),

		// Verify style float existence
		// (IE uses styleFloat instead of cssFloat)
		cssFloat: !!a.style.cssFloat,

		// Make sure that if no value is specified for a checkbox
		// that it defaults to "on".
		// (WebKit defaults to "" instead)
		checkOn: ( input.value === "on" ),

		// Make sure that a selected-by-default option has a working selected property.
		// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
		optSelected: opt.selected,

		// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
		getSetAttribute: div.className !== "t",

		// Tests for enctype support on a form(#6743)
		enctype: !!document.createElement("form").enctype,

		// Makes sure cloning an html5 element does not cause problems
		// Where outerHTML is undefined, this still works
		html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>",

		// jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode
		boxModel: ( document.compatMode === "CSS1Compat" ),

		// Will be defined later
		submitBubbles: true,
		changeBubbles: true,
		focusinBubbles: false,
		deleteExpando: true,
		noCloneEvent: true,
		inlineBlockNeedsLayout: false,
		shrinkWrapBlocks: false,
		reliableMarginRight: true,
		boxSizingReliable: true,
		pixelPosition: false
	};

	// Make sure checked status is properly cloned
	input.checked = true;
	support.noCloneChecked = input.cloneNode( true ).checked;

	// Make sure that the options inside disabled selects aren't marked as disabled
	// (WebKit marks them as disabled)
	select.disabled = true;
	support.optDisabled = !opt.disabled;

	// Test to see if it's possible to delete an expando from an element
	// Fails in Internet Explorer
	try {
		delete div.test;
	} catch( e ) {
		support.deleteExpando = false;
	}

	if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
		div.attachEvent( "onclick", clickFn = function() {
			// Cloning a node shouldn't copy over any
			// bound event handlers (IE does this)
			support.noCloneEvent = false;
		});
		div.cloneNode( true ).fireEvent("onclick");
		div.detachEvent( "onclick", clickFn );
	}

	// Check if a radio maintains its value
	// after being appended to the DOM
	input = document.createElement("input");
	input.value = "t";
	input.setAttribute( "type", "radio" );
	support.radioValue = input.value === "t";

	input.setAttribute( "checked", "checked" );

	// #11217 - WebKit loses check when the name is after the checked attribute
	input.setAttribute( "name", "t" );

	div.appendChild( input );
	fragment = document.createDocumentFragment();
	fragment.appendChild( div.lastChild );

	// WebKit doesn't clone checked state correctly in fragments
	support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;

	// Check if a disconnected checkbox will retain its checked
	// value of true after appended to the DOM (IE6/7)
	support.appendChecked = input.checked;

	fragment.removeChild( input );
	fragment.appendChild( div );

	// Technique from Juriy Zaytsev
	// http://perfectionkills.com/detecting-event-support-without-browser-sniffing/
	// We only care about the case where non-standard event systems
	// are used, namely in IE. Short-circuiting here helps us to
	// avoid an eval call (in setAttribute) which can cause CSP
	// to go haywire. See: https://developer.mozilla.org/en/Security/CSP
	if ( div.attachEvent ) {
		for ( i in {
			submit: true,
			change: true,
			focusin: true
		}) {
			eventName = "on" + i;
			isSupported = ( eventName in div );
			if ( !isSupported ) {
				div.setAttribute( eventName, "return;" );
				isSupported = ( typeof div[ eventName ] === "function" );
			}
			support[ i + "Bubbles" ] = isSupported;
		}
	}

	// Run tests that need a body at doc ready
	jQuery(function() {
		var container, div, tds, marginDiv,
			divReset = "padding:0;margin:0;border:0;display:block;overflow:hidden;",
			body = document.getElementsByTagName("body")[0];

		if ( !body ) {
			// Return for frameset docs that don't have a body
			return;
		}

		container = document.createElement("div");
		container.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px";
		body.insertBefore( container, body.firstChild );

		// Construct the test element
		div = document.createElement("div");
		container.appendChild( div );

		// Check if table cells still have offsetWidth/Height when they are set
		// to display:none and there are still other visible table cells in a
		// table row; if so, offsetWidth/Height are not reliable for use when
		// determining if an element has been hidden directly using
		// display:none (it is still safe to use offsets if a parent element is
		// hidden; don safety goggles and see bug #4512 for more information).
		// (only IE 8 fails this test)
		div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
		tds = div.getElementsByTagName("td");
		tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none";
		isSupported = ( tds[ 0 ].offsetHeight === 0 );

		tds[ 0 ].style.display = "";
		tds[ 1 ].style.display = "none";

		// Check if empty table cells still have offsetWidth/Height
		// (IE <= 8 fail this test)
		support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );

		// Check box-sizing and margin behavior
		div.innerHTML = "";
		div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";
		support.boxSizing = ( div.offsetWidth === 4 );
		support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 );

		// NOTE: To any future maintainer, window.getComputedStyle was used here
		// instead of getComputedStyle because it gave a better gzip size.
		// The difference between window.getComputedStyle and getComputedStyle is
		// 7 bytes
		if ( window.getComputedStyle ) {
			support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%";
			support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px";

			// Check if div with explicit width and no margin-right incorrectly
			// gets computed margin-right based on width of container. For more
			// info see bug #3333
			// Fails in WebKit before Feb 2011 nightlies
			// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
			marginDiv = document.createElement("div");
			marginDiv.style.cssText = div.style.cssText = divReset;
			marginDiv.style.marginRight = marginDiv.style.width = "0";
			div.style.width = "1px";
			div.appendChild( marginDiv );
			support.reliableMarginRight =
				!parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
		}

		if ( typeof div.style.zoom !== "undefined" ) {
			// Check if natively block-level elements act like inline-block
			// elements when setting their display to 'inline' and giving
			// them layout
			// (IE < 8 does this)
			div.innerHTML = "";
			div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1";
			support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );

			// Check if elements with layout shrink-wrap their children
			// (IE 6 does this)
			div.style.display = "block";
			div.style.overflow = "visible";
			div.innerHTML = "<div></div>";
			div.firstChild.style.width = "5px";
			support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );

			container.style.zoom = 1;
		}

		// Null elements to avoid leaks in IE
		body.removeChild( container );
		container = div = tds = marginDiv = null;
	});

	// Null elements to avoid leaks in IE
	fragment.removeChild( div );
	all = a = select = opt = input = fragment = div = null;

	return support;
})();
var rbrace = /^(?:\{.*\}|\[.*\])$/,
	rmultiDash = /([A-Z])/g;

jQuery.extend({
	cache: {},

	deletedIds: [],

	// Please use with caution
	uuid: 0,

	// Unique for each copy of jQuery on the page
	// Non-digits removed to match rinlinejQuery
	expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),

	// The following elements throw uncatchable exceptions if you
	// attempt to add expando properties to them.
	noData: {
		"embed": true,
		// Ban all objects except for Flash (which handle expandos)
		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
		"applet": true
	},

	hasData: function( elem ) {
		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
		return !!elem && !isEmptyDataObject( elem );
	},

	data: function( elem, name, data, pvt /* Internal Use Only */ ) {
		if ( !jQuery.acceptData( elem ) ) {
			return;
		}

		var thisCache, ret,
			internalKey = jQuery.expando,
			getByName = typeof name === "string",

			// We have to handle DOM nodes and JS objects differently because IE6-7
			// can't GC object references properly across the DOM-JS boundary
			isNode = elem.nodeType,

			// Only DOM nodes need the global jQuery cache; JS object data is
			// attached directly to the object so GC can occur automatically
			cache = isNode ? jQuery.cache : elem,

			// Only defining an ID for JS objects if its cache already exists allows
			// the code to shortcut on the same path as a DOM node with no cache
			id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;

		// Avoid doing any more work than we need to when trying to get data on an
		// object that has no data at all
		if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) {
			return;
		}

		if ( !id ) {
			// Only DOM nodes need a new unique ID for each element since their data
			// ends up in the global cache
			if ( isNode ) {
				elem[ internalKey ] = id = jQuery.deletedIds.pop() || ++jQuery.uuid;
			} else {
				id = internalKey;
			}
		}

		if ( !cache[ id ] ) {
			cache[ id ] = {};

			// Avoids exposing jQuery metadata on plain JS objects when the object
			// is serialized using JSON.stringify
			if ( !isNode ) {
				cache[ id ].toJSON = jQuery.noop;
			}
		}

		// An object can be passed to jQuery.data instead of a key/value pair; this gets
		// shallow copied over onto the existing cache
		if ( typeof name === "object" || typeof name === "function" ) {
			if ( pvt ) {
				cache[ id ] = jQuery.extend( cache[ id ], name );
			} else {
				cache[ id ].data = jQuery.extend( cache[ id ].data, name );
			}
		}

		thisCache = cache[ id ];

		// jQuery data() is stored in a separate object inside the object's internal data
		// cache in order to avoid key collisions between internal data and user-defined
		// data.
		if ( !pvt ) {
			if ( !thisCache.data ) {
				thisCache.data = {};
			}

			thisCache = thisCache.data;
		}

		if ( data !== undefined ) {
			thisCache[ jQuery.camelCase( name ) ] = data;
		}

		// Check for both converted-to-camel and non-converted data property names
		// If a data property was specified
		if ( getByName ) {

			// First Try to find as-is property data
			ret = thisCache[ name ];

			// Test for null|undefined property data
			if ( ret == null ) {

				// Try to find the camelCased property
				ret = thisCache[ jQuery.camelCase( name ) ];
			}
		} else {
			ret = thisCache;
		}

		return ret;
	},

	removeData: function( elem, name, pvt /* Internal Use Only */ ) {
		if ( !jQuery.acceptData( elem ) ) {
			return;
		}

		var thisCache, i, l,

			isNode = elem.nodeType,

			// See jQuery.data for more information
			cache = isNode ? jQuery.cache : elem,
			id = isNode ? elem[ jQuery.expando ] : jQuery.expando;

		// If there is already no cache entry for this object, there is no
		// purpose in continuing
		if ( !cache[ id ] ) {
			return;
		}

		if ( name ) {

			thisCache = pvt ? cache[ id ] : cache[ id ].data;

			if ( thisCache ) {

				// Support array or space separated string names for data keys
				if ( !jQuery.isArray( name ) ) {

					// try the string as a key before any manipulation
					if ( name in thisCache ) {
						name = [ name ];
					} else {

						// split the camel cased version by spaces unless a key with the spaces exists
						name = jQuery.camelCase( name );
						if ( name in thisCache ) {
							name = [ name ];
						} else {
							name = name.split(" ");
						}
					}
				}

				for ( i = 0, l = name.length; i < l; i++ ) {
					delete thisCache[ name[i] ];
				}

				// If there is no data left in the cache, we want to continue
				// and let the cache object itself get destroyed
				if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) {
					return;
				}
			}
		}

		// See jQuery.data for more information
		if ( !pvt ) {
			delete cache[ id ].data;

			// Don't destroy the parent cache unless the internal data object
			// had been the only thing left in it
			if ( !isEmptyDataObject( cache[ id ] ) ) {
				return;
			}
		}

		// Destroy the cache
		if ( isNode ) {
			jQuery.cleanData( [ elem ], true );

		// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
		} else if ( jQuery.support.deleteExpando || cache != cache.window ) {
			delete cache[ id ];

		// When all else fails, null
		} else {
			cache[ id ] = null;
		}
	},

	// For internal use only.
	_data: function( elem, name, data ) {
		return jQuery.data( elem, name, data, true );
	},

	// A method for determining if a DOM node can handle the data expando
	acceptData: function( elem ) {
		var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];

		// nodes accept data unless otherwise specified; rejection can be conditional
		return !noData || noData !== true && elem.getAttribute("classid") === noData;
	}
});

jQuery.fn.extend({
	data: function( key, value ) {
		var parts, part, attr, name, l,
			elem = this[0],
			i = 0,
			data = null;

		// Gets all values
		if ( key === undefined ) {
			if ( this.length ) {
				data = jQuery.data( elem );

				if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
					attr = elem.attributes;
					for ( l = attr.length; i < l; i++ ) {
						name = attr[i].name;

						if ( name.indexOf( "data-" ) === 0 ) {
							name = jQuery.camelCase( name.substring(5) );

							dataAttr( elem, name, data[ name ] );
						}
					}
					jQuery._data( elem, "parsedAttrs", true );
				}
			}

			return data;
		}

		// Sets multiple values
		if ( typeof key === "object" ) {
			return this.each(function() {
				jQuery.data( this, key );
			});
		}

		parts = key.split( ".", 2 );
		parts[1] = parts[1] ? "." + parts[1] : "";
		part = parts[1] + "!";

		return jQuery.access( this, function( value ) {

			if ( value === undefined ) {
				data = this.triggerHandler( "getData" + part, [ parts[0] ] );

				// Try to fetch any internally stored data first
				if ( data === undefined && elem ) {
					data = jQuery.data( elem, key );
					data = dataAttr( elem, key, data );
				}

				return data === undefined && parts[1] ?
					this.data( parts[0] ) :
					data;
			}

			parts[1] = value;
			this.each(function() {
				var self = jQuery( this );

				self.triggerHandler( "setData" + part, parts );
				jQuery.data( this, key, value );
				self.triggerHandler( "changeData" + part, parts );
			});
		}, null, value, arguments.length > 1, null, false );
	},

	removeData: function( key ) {
		return this.each(function() {
			jQuery.removeData( this, key );
		});
	}
});

function dataAttr( elem, key, data ) {
	// If nothing was found internally, try to fetch any
	// data from the HTML5 data-* attribute
	if ( data === undefined && elem.nodeType === 1 ) {

		var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();

		data = elem.getAttribute( name );

		if ( typeof data === "string" ) {
			try {
				data = data === "true" ? true :
				data === "false" ? false :
				data === "null" ? null :
				// Only convert to a number if it doesn't change the string
				+data + "" === data ? +data :
				rbrace.test( data ) ? jQuery.parseJSON( data ) :
					data;
			} catch( e ) {}

			// Make sure we set the data so it isn't changed later
			jQuery.data( elem, key, data );

		} else {
			data = undefined;
		}
	}

	return data;
}

// checks a cache object for emptiness
function isEmptyDataObject( obj ) {
	var name;
	for ( name in obj ) {

		// if the public data object is empty, the private is still empty
		if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
			continue;
		}
		if ( name !== "toJSON" ) {
			return false;
		}
	}

	return true;
}
jQuery.extend({
	queue: function( elem, type, data ) {
		var queue;

		if ( elem ) {
			type = ( type || "fx" ) + "queue";
			queue = jQuery._data( elem, type );

			// Speed up dequeue by getting out quickly if this is just a lookup
			if ( data ) {
				if ( !queue || jQuery.isArray(data) ) {
					queue = jQuery._data( elem, type, jQuery.makeArray(data) );
				} else {
					queue.push( data );
				}
			}
			return queue || [];
		}
	},

	dequeue: function( elem, type ) {
		type = type || "fx";

		var queue = jQuery.queue( elem, type ),
			fn = queue.shift(),
			hooks = jQuery._queueHooks( elem, type ),
			next = function() {
				jQuery.dequeue( elem, type );
			};

		// If the fx queue is dequeued, always remove the progress sentinel
		if ( fn === "inprogress" ) {
			fn = queue.shift();
		}

		if ( fn ) {

			// Add a progress sentinel to prevent the fx queue from being
			// automatically dequeued
			if ( type === "fx" ) {
				queue.unshift( "inprogress" );
			}

			// clear up the last queue stop function
			delete hooks.stop;
			fn.call( elem, next, hooks );
		}
		if ( !queue.length && hooks ) {
			hooks.empty.fire();
		}
	},

	// not intended for public consumption - generates a queueHooks object, or returns the current one
	_queueHooks: function( elem, type ) {
		var key = type + "queueHooks";
		return jQuery._data( elem, key ) || jQuery._data( elem, key, {
			empty: jQuery.Callbacks("once memory").add(function() {
				jQuery.removeData( elem, type + "queue", true );
				jQuery.removeData( elem, key, true );
			})
		});
	}
});

jQuery.fn.extend({
	queue: function( type, data ) {
		var setter = 2;

		if ( typeof type !== "string" ) {
			data = type;
			type = "fx";
			setter--;
		}

		if ( arguments.length < setter ) {
			return jQuery.queue( this[0], type );
		}

		return data === undefined ?
			this :
			this.each(function() {
				var queue = jQuery.queue( this, type, data );

				// ensure a hooks for this queue
				jQuery._queueHooks( this, type );

				if ( type === "fx" && queue[0] !== "inprogress" ) {
					jQuery.dequeue( this, type );
				}
			});
	},
	dequeue: function( type ) {
		return this.each(function() {
			jQuery.dequeue( this, type );
		});
	},
	// Based off of the plugin by Clint Helfers, with permission.
	// http://blindsignals.com/index.php/2009/07/jquery-delay/
	delay: function( time, type ) {
		time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
		type = type || "fx";

		return this.queue( type, function( next, hooks ) {
			var timeout = setTimeout( next, time );
			hooks.stop = function() {
				clearTimeout( timeout );
			};
		});
	},
	clearQueue: function( type ) {
		return this.queue( type || "fx", [] );
	},
	// Get a promise resolved when queues of a certain type
	// are emptied (fx is the type by default)
	promise: function( type, obj ) {
		var tmp,
			count = 1,
			defer = jQuery.Deferred(),
			elements = this,
			i = this.length,
			resolve = function() {
				if ( !( --count ) ) {
					defer.resolveWith( elements, [ elements ] );
				}
			};

		if ( typeof type !== "string" ) {
			obj = type;
			type = undefined;
		}
		type = type || "fx";

		while( i-- ) {
			if ( (tmp = jQuery._data( elements[ i ], type + "queueHooks" )) && tmp.empty ) {
				count++;
				tmp.empty.add( resolve );
			}
		}
		resolve();
		return defer.promise( obj );
	}
});
var nodeHook, boolHook, fixSpecified,
	rclass = /[\t\r\n]/g,
	rreturn = /\r/g,
	rtype = /^(?:button|input)$/i,
	rfocusable = /^(?:button|input|object|select|textarea)$/i,
	rclickable = /^a(?:rea|)$/i,
	rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
	getSetAttribute = jQuery.support.getSetAttribute;

jQuery.fn.extend({
	attr: function( name, value ) {
		return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );
	},

	removeAttr: function( name ) {
		return this.each(function() {
			jQuery.removeAttr( this, name );
		});
	},

	prop: function( name, value ) {
		return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );
	},

	removeProp: function( name ) {
		name = jQuery.propFix[ name ] || name;
		return this.each(function() {
			// try/catch handles cases where IE balks (such as removing a property on window)
			try {
				this[ name ] = undefined;
				delete this[ name ];
			} catch( e ) {}
		});
	},

	addClass: function( value ) {
		var classNames, i, l, elem,
			setClass, c, cl;

		if ( jQuery.isFunction( value ) ) {
			return this.each(function( j ) {
				jQuery( this ).addClass( value.call(this, j, this.className) );
			});
		}

		if ( value && typeof value === "string" ) {
			classNames = value.split( core_rspace );

			for ( i = 0, l = this.length; i < l; i++ ) {
				elem = this[ i ];

				if ( elem.nodeType === 1 ) {
					if ( !elem.className && classNames.length === 1 ) {
						elem.className = value;

					} else {
						setClass = " " + elem.className + " ";

						for ( c = 0, cl = classNames.length; c < cl; c++ ) {
							if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
								setClass += classNames[ c ] + " ";
							}
						}
						elem.className = jQuery.trim( setClass );
					}
				}
			}
		}

		return this;
	},

	removeClass: function( value ) {
		var removes, className, elem, c, cl, i, l;

		if ( jQuery.isFunction( value ) ) {
			return this.each(function( j ) {
				jQuery( this ).removeClass( value.call(this, j, this.className) );
			});
		}
		if ( (value && typeof value === "string") || value === undefined ) {
			removes = ( value || "" ).split( core_rspace );

			for ( i = 0, l = this.length; i < l; i++ ) {
				elem = this[ i ];
				if ( elem.nodeType === 1 && elem.className ) {

					className = (" " + elem.className + " ").replace( rclass, " " );

					// loop over each item in the removal list
					for ( c = 0, cl = removes.length; c < cl; c++ ) {
						// Remove until there is nothing to remove,
						while ( className.indexOf(" " + removes[ c ] + " ") > -1 ) {
							className = className.replace( " " + removes[ c ] + " " , " " );
						}
					}
					elem.className = value ? jQuery.trim( className ) : "";
				}
			}
		}

		return this;
	},

	toggleClass: function( value, stateVal ) {
		var type = typeof value,
			isBool = typeof stateVal === "boolean";

		if ( jQuery.isFunction( value ) ) {
			return this.each(function( i ) {
				jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
			});
		}

		return this.each(function() {
			if ( type === "string" ) {
				// toggle individual class names
				var className,
					i = 0,
					self = jQuery( this ),
					state = stateVal,
					classNames = value.split( core_rspace );

				while ( (className = classNames[ i++ ]) ) {
					// check each className given, space separated list
					state = isBool ? state : !self.hasClass( className );
					self[ state ? "addClass" : "removeClass" ]( className );
				}

			} else if ( type === "undefined" || type === "boolean" ) {
				if ( this.className ) {
					// store className if set
					jQuery._data( this, "__className__", this.className );
				}

				// toggle whole className
				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
			}
		});
	},

	hasClass: function( selector ) {
		var className = " " + selector + " ",
			i = 0,
			l = this.length;
		for ( ; i < l; i++ ) {
			if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
				return true;
			}
		}

		return false;
	},

	val: function( value ) {
		var hooks, ret, isFunction,
			elem = this[0];

		if ( !arguments.length ) {
			if ( elem ) {
				hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];

				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
					return ret;
				}

				ret = elem.value;

				return typeof ret === "string" ?
					// handle most common string cases
					ret.replace(rreturn, "") :
					// handle cases where value is null/undef or number
					ret == null ? "" : ret;
			}

			return;
		}

		isFunction = jQuery.isFunction( value );

		return this.each(function( i ) {
			var val,
				self = jQuery(this);

			if ( this.nodeType !== 1 ) {
				return;
			}

			if ( isFunction ) {
				val = value.call( this, i, self.val() );
			} else {
				val = value;
			}

			// Treat null/undefined as ""; convert numbers to string
			if ( val == null ) {
				val = "";
			} else if ( typeof val === "number" ) {
				val += "";
			} else if ( jQuery.isArray( val ) ) {
				val = jQuery.map(val, function ( value ) {
					return value == null ? "" : value + "";
				});
			}

			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];

			// If set returns undefined, fall back to normal setting
			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
				this.value = val;
			}
		});
	}
});

jQuery.extend({
	valHooks: {
		option: {
			get: function( elem ) {
				// attributes.value is undefined in Blackberry 4.7 but
				// uses .value. See #6932
				var val = elem.attributes.value;
				return !val || val.specified ? elem.value : elem.text;
			}
		},
		select: {
			get: function( elem ) {
				var value, i, max, option,
					index = elem.selectedIndex,
					values = [],
					options = elem.options,
					one = elem.type === "select-one";

				// Nothing was selected
				if ( index < 0 ) {
					return null;
				}

				// Loop through all the selected options
				i = one ? index : 0;
				max = one ? index + 1 : options.length;
				for ( ; i < max; i++ ) {
					option = options[ i ];

					// Don't return options that are disabled or in a disabled optgroup
					if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
							(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {

						// Get the specific value for the option
						value = jQuery( option ).val();

						// We don't need an array for one selects
						if ( one ) {
							return value;
						}

						// Multi-Selects return an array
						values.push( value );
					}
				}

				// Fixes Bug #2551 -- select.val() broken in IE after form.reset()
				if ( one && !values.length && options.length ) {
					return jQuery( options[ index ] ).val();
				}

				return values;
			},

			set: function( elem, value ) {
				var values = jQuery.makeArray( value );

				jQuery(elem).find("option").each(function() {
					this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
				});

				if ( !values.length ) {
					elem.selectedIndex = -1;
				}
				return values;
			}
		}
	},

	// Unused in 1.8, left in so attrFn-stabbers won't die; remove in 1.9
	attrFn: {},

	attr: function( elem, name, value, pass ) {
		var ret, hooks, notxml,
			nType = elem.nodeType;

		// don't get/set attributes on text, comment and attribute nodes
		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
			return;
		}

		if ( pass && jQuery.isFunction( jQuery.fn[ name ] ) ) {
			return jQuery( elem )[ name ]( value );
		}

		// Fallback to prop when attributes are not supported
		if ( typeof elem.getAttribute === "undefined" ) {
			return jQuery.prop( elem, name, value );
		}

		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );

		// All attributes are lowercase
		// Grab necessary hook if one is defined
		if ( notxml ) {
			name = name.toLowerCase();
			hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook );
		}

		if ( value !== undefined ) {

			if ( value === null ) {
				jQuery.removeAttr( elem, name );
				return;

			} else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {
				return ret;

			} else {
				elem.setAttribute( name, "" + value );
				return value;
			}

		} else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
			return ret;

		} else {

			ret = elem.getAttribute( name );

			// Non-existent attributes return null, we normalize to undefined
			return ret === null ?
				undefined :
				ret;
		}
	},

	removeAttr: function( elem, value ) {
		var propName, attrNames, name, isBool,
			i = 0;

		if ( value && elem.nodeType === 1 ) {

			attrNames = value.split( core_rspace );

			for ( ; i < attrNames.length; i++ ) {
				name = attrNames[ i ];

				if ( name ) {
					propName = jQuery.propFix[ name ] || name;
					isBool = rboolean.test( name );

					// See #9699 for explanation of this approach (setting first, then removal)
					// Do not do this for boolean attributes (see #10870)
					if ( !isBool ) {
						jQuery.attr( elem, name, "" );
					}
					elem.removeAttribute( getSetAttribute ? name : propName );

					// Set corresponding property to false for boolean attributes
					if ( isBool && propName in elem ) {
						elem[ propName ] = false;
					}
				}
			}
		}
	},

	attrHooks: {
		type: {
			set: function( elem, value ) {
				// We can't allow the type property to be changed (since it causes problems in IE)
				if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
					jQuery.error( "type property can't be changed" );
				} else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
					// Setting the type on a radio button after the value resets the value in IE6-9
					// Reset value to it's default in case type is set after value
					// This is for element creation
					var val = elem.value;
					elem.setAttribute( "type", value );
					if ( val ) {
						elem.value = val;
					}
					return value;
				}
			}
		},
		// Use the value property for back compat
		// Use the nodeHook for button elements in IE6/7 (#1954)
		value: {
			get: function( elem, name ) {
				if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
					return nodeHook.get( elem, name );
				}
				return name in elem ?
					elem.value :
					null;
			},
			set: function( elem, value, name ) {
				if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
					return nodeHook.set( elem, value, name );
				}
				// Does not return so that setAttribute is also used
				elem.value = value;
			}
		}
	},

	propFix: {
		tabindex: "tabIndex",
		readonly: "readOnly",
		"for": "htmlFor",
		"class": "className",
		maxlength: "maxLength",
		cellspacing: "cellSpacing",
		cellpadding: "cellPadding",
		rowspan: "rowSpan",
		colspan: "colSpan",
		usemap: "useMap",
		frameborder: "frameBorder",
		contenteditable: "contentEditable"
	},

	prop: function( elem, name, value ) {
		var ret, hooks, notxml,
			nType = elem.nodeType;

		// don't get/set properties on text, comment and attribute nodes
		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
			return;
		}

		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );

		if ( notxml ) {
			// Fix name and attach hooks
			name = jQuery.propFix[ name ] || name;
			hooks = jQuery.propHooks[ name ];
		}

		if ( value !== undefined ) {
			if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
				return ret;

			} else {
				return ( elem[ name ] = value );
			}

		} else {
			if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
				return ret;

			} else {
				return elem[ name ];
			}
		}
	},

	propHooks: {
		tabIndex: {
			get: function( elem ) {
				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
				var attributeNode = elem.getAttributeNode("tabindex");

				return attributeNode && attributeNode.specified ?
					parseInt( attributeNode.value, 10 ) :
					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
						0 :
						undefined;
			}
		}
	}
});

// Hook for boolean attributes
boolHook = {
	get: function( elem, name ) {
		// Align boolean attributes with corresponding properties
		// Fall back to attribute presence where some booleans are not supported
		var attrNode,
			property = jQuery.prop( elem, name );
		return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
			name.toLowerCase() :
			undefined;
	},
	set: function( elem, value, name ) {
		var propName;
		if ( value === false ) {
			// Remove boolean attributes when set to false
			jQuery.removeAttr( elem, name );
		} else {
			// value is true since we know at this point it's type boolean and not false
			// Set boolean attributes to the same name and set the DOM property
			propName = jQuery.propFix[ name ] || name;
			if ( propName in elem ) {
				// Only set the IDL specifically if it already exists on the element
				elem[ propName ] = true;
			}

			elem.setAttribute( name, name.toLowerCase() );
		}
		return name;
	}
};

// IE6/7 do not support getting/setting some attributes with get/setAttribute
if ( !getSetAttribute ) {

	fixSpecified = {
		name: true,
		id: true,
		coords: true
	};

	// Use this for any attribute in IE6/7
	// This fixes almost every IE6/7 issue
	nodeHook = jQuery.valHooks.button = {
		get: function( elem, name ) {
			var ret;
			ret = elem.getAttributeNode( name );
			return ret && ( fixSpecified[ name ] ? ret.value !== "" : ret.specified ) ?
				ret.value :
				undefined;
		},
		set: function( elem, value, name ) {
			// Set the existing or create a new attribute node
			var ret = elem.getAttributeNode( name );
			if ( !ret ) {
				ret = document.createAttribute( name );
				elem.setAttributeNode( ret );
			}
			return ( ret.value = value + "" );
		}
	};

	// Set width and height to auto instead of 0 on empty string( Bug #8150 )
	// This is for removals
	jQuery.each([ "width", "height" ], function( i, name ) {
		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
			set: function( elem, value ) {
				if ( value === "" ) {
					elem.setAttribute( name, "auto" );
					return value;
				}
			}
		});
	});

	// Set contenteditable to false on removals(#10429)
	// Setting to empty string throws an error as an invalid value
	jQuery.attrHooks.contenteditable = {
		get: nodeHook.get,
		set: function( elem, value, name ) {
			if ( value === "" ) {
				value = "false";
			}
			nodeHook.set( elem, value, name );
		}
	};
}


// Some attributes require a special call on IE
if ( !jQuery.support.hrefNormalized ) {
	jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
			get: function( elem ) {
				var ret = elem.getAttribute( name, 2 );
				return ret === null ? undefined : ret;
			}
		});
	});
}

if ( !jQuery.support.style ) {
	jQuery.attrHooks.style = {
		get: function( elem ) {
			// Return undefined in the case of empty string
			// Normalize to lowercase since IE uppercases css property names
			return elem.style.cssText.toLowerCase() || undefined;
		},
		set: function( elem, value ) {
			return ( elem.style.cssText = "" + value );
		}
	};
}

// Safari mis-reports the default selected property of an option
// Accessing the parent's selectedIndex property fixes it
if ( !jQuery.support.optSelected ) {
	jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
		get: function( elem ) {
			var parent = elem.parentNode;

			if ( parent ) {
				parent.selectedIndex;

				// Make sure that it also works with optgroups, see #5701
				if ( parent.parentNode ) {
					parent.parentNode.selectedIndex;
				}
			}
			return null;
		}
	});
}

// IE6/7 call enctype encoding
if ( !jQuery.support.enctype ) {
	jQuery.propFix.enctype = "encoding";
}

// Radios and checkboxes getter/setter
if ( !jQuery.support.checkOn ) {
	jQuery.each([ "radio", "checkbox" ], function() {
		jQuery.valHooks[ this ] = {
			get: function( elem ) {
				// Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
				return elem.getAttribute("value") === null ? "on" : elem.value;
			}
		};
	});
}
jQuery.each([ "radio", "checkbox" ], function() {
	jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
		set: function( elem, value ) {
			if ( jQuery.isArray( value ) ) {
				return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
			}
		}
	});
});
var rformElems = /^(?:textarea|input|select)$/i,
	rtypenamespace = /^([^\.]*|)(?:\.(.+)|)$/,
	rhoverHack = /(?:^|\s)hover(\.\S+|)\b/,
	rkeyEvent = /^key/,
	rmouseEvent = /^(?:mouse|contextmenu)|click/,
	rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
	hoverHack = function( events ) {
		return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
	};

/*
 * Helper functions for managing events -- not part of the public interface.
 * Props to Dean Edwards' addEvent library for many of the ideas.
 */
jQuery.event = {

	add: function( elem, types, handler, data, selector ) {

		var elemData, eventHandle, events,
			t, tns, type, namespaces, handleObj,
			handleObjIn, handlers, special;

		// Don't attach events to noData or text/comment nodes (allow plain objects tho)
		if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) {
			return;
		}

		// Caller can pass in an object of custom data in lieu of the handler
		if ( handler.handler ) {
			handleObjIn = handler;
			handler = handleObjIn.handler;
			selector = handleObjIn.selector;
		}

		// Make sure that the handler has a unique ID, used to find/remove it later
		if ( !handler.guid ) {
			handler.guid = jQuery.guid++;
		}

		// Init the element's event structure and main handler, if this is the first
		events = elemData.events;
		if ( !events ) {
			elemData.events = events = {};
		}
		eventHandle = elemData.handle;
		if ( !eventHandle ) {
			elemData.handle = eventHandle = function( e ) {
				// Discard the second event of a jQuery.event.trigger() and
				// when an event is called after a page has unloaded
				return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
					jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
					undefined;
			};
			// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
			eventHandle.elem = elem;
		}

		// Handle multiple events separated by a space
		// jQuery(...).bind("mouseover mouseout", fn);
		types = jQuery.trim( hoverHack(types) ).split( " " );
		for ( t = 0; t < types.length; t++ ) {

			tns = rtypenamespace.exec( types[t] ) || [];
			type = tns[1];
			namespaces = ( tns[2] || "" ).split( "." ).sort();

			// If event changes its type, use the special event handlers for the changed type
			special = jQuery.event.special[ type ] || {};

			// If selector defined, determine special event api type, otherwise given type
			type = ( selector ? special.delegateType : special.bindType ) || type;

			// Update special based on newly reset type
			special = jQuery.event.special[ type ] || {};

			// handleObj is passed to all event handlers
			handleObj = jQuery.extend({
				type: type,
				origType: tns[1],
				data: data,
				handler: handler,
				guid: handler.guid,
				selector: selector,
				namespace: namespaces.join(".")
			}, handleObjIn );

			// Init the event handler queue if we're the first
			handlers = events[ type ];
			if ( !handlers ) {
				handlers = events[ type ] = [];
				handlers.delegateCount = 0;

				// Only use addEventListener/attachEvent if the special events handler returns false
				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
					// Bind the global event handler to the element
					if ( elem.addEventListener ) {
						elem.addEventListener( type, eventHandle, false );

					} else if ( elem.attachEvent ) {
						elem.attachEvent( "on" + type, eventHandle );
					}
				}
			}

			if ( special.add ) {
				special.add.call( elem, handleObj );

				if ( !handleObj.handler.guid ) {
					handleObj.handler.guid = handler.guid;
				}
			}

			// Add to the element's handler list, delegates in front
			if ( selector ) {
				handlers.splice( handlers.delegateCount++, 0, handleObj );
			} else {
				handlers.push( handleObj );
			}

			// Keep track of which events have ever been used, for event optimization
			jQuery.event.global[ type ] = true;
		}

		// Nullify elem to prevent memory leaks in IE
		elem = null;
	},

	global: {},

	// Detach an event or set of events from an element
	remove: function( elem, types, handler, selector, mappedTypes ) {

		var t, tns, type, origType, namespaces, origCount,
			j, events, special, eventType, handleObj,
			elemData = jQuery.hasData( elem ) && jQuery._data( elem );

		if ( !elemData || !(events = elemData.events) ) {
			return;
		}

		// Once for each type.namespace in types; type may be omitted
		types = jQuery.trim( hoverHack( types || "" ) ).split(" ");
		for ( t = 0; t < types.length; t++ ) {
			tns = rtypenamespace.exec( types[t] ) || [];
			type = origType = tns[1];
			namespaces = tns[2];

			// Unbind all events (on this namespace, if provided) for the element
			if ( !type ) {
				for ( type in events ) {
					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
				}
				continue;
			}

			special = jQuery.event.special[ type ] || {};
			type = ( selector? special.delegateType : special.bindType ) || type;
			eventType = events[ type ] || [];
			origCount = eventType.length;
			namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null;

			// Remove matching events
			for ( j = 0; j < eventType.length; j++ ) {
				handleObj = eventType[ j ];

				if ( ( mappedTypes || origType === handleObj.origType ) &&
					 ( !handler || handler.guid === handleObj.guid ) &&
					 ( !namespaces || namespaces.test( handleObj.namespace ) ) &&
					 ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
					eventType.splice( j--, 1 );

					if ( handleObj.selector ) {
						eventType.delegateCount--;
					}
					if ( special.remove ) {
						special.remove.call( elem, handleObj );
					}
				}
			}

			// Remove generic event handler if we removed something and no more handlers exist
			// (avoids potential for endless recursion during removal of special event handlers)
			if ( eventType.length === 0 && origCount !== eventType.length ) {
				if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
					jQuery.removeEvent( elem, type, elemData.handle );
				}

				delete events[ type ];
			}
		}

		// Remove the expando if it's no longer used
		if ( jQuery.isEmptyObject( events ) ) {
			delete elemData.handle;

			// removeData also checks for emptiness and clears the expando if empty
			// so use it instead of delete
			jQuery.removeData( elem, "events", true );
		}
	},

	// Events that are safe to short-circuit if no handlers are attached.
	// Native DOM events should not be added, they may have inline handlers.
	customEvent: {
		"getData": true,
		"setData": true,
		"changeData": true
	},

	trigger: function( event, data, elem, onlyHandlers ) {
		// Don't do events on text and comment nodes
		if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) {
			return;
		}

		// Event object or event type
		var cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType,
			type = event.type || event,
			namespaces = [];

		// focus/blur morphs to focusin/out; ensure we're not firing them right now
		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
			return;
		}

		if ( type.indexOf( "!" ) >= 0 ) {
			// Exclusive events trigger only for the exact event (no namespaces)
			type = type.slice(0, -1);
			exclusive = true;
		}

		if ( type.indexOf( "." ) >= 0 ) {
			// Namespaced trigger; create a regexp to match event type in handle()
			namespaces = type.split(".");
			type = namespaces.shift();
			namespaces.sort();
		}

		if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
			// No jQuery handlers for this event type, and it can't have inline handlers
			return;
		}

		// Caller can pass in an Event, Object, or just an event type string
		event = typeof event === "object" ?
			// jQuery.Event object
			event[ jQuery.expando ] ? event :
			// Object literal
			new jQuery.Event( type, event ) :
			// Just the event type (string)
			new jQuery.Event( type );

		event.type = type;
		event.isTrigger = true;
		event.exclusive = exclusive;
		event.namespace = namespaces.join( "." );
		event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null;
		ontype = type.indexOf( ":" ) < 0 ? "on" + type : "";

		// Handle a global trigger
		if ( !elem ) {

			// TODO: Stop taunting the data cache; remove global events and always attach to document
			cache = jQuery.cache;
			for ( i in cache ) {
				if ( cache[ i ].events && cache[ i ].events[ type ] ) {
					jQuery.event.trigger( event, data, cache[ i ].handle.elem, true );
				}
			}
			return;
		}

		// Clean up the event in case it is being reused
		event.result = undefined;
		if ( !event.target ) {
			event.target = elem;
		}

		// Clone any incoming data and prepend the event, creating the handler arg list
		data = data != null ? jQuery.makeArray( data ) : [];
		data.unshift( event );

		// Allow special events to draw outside the lines
		special = jQuery.event.special[ type ] || {};
		if ( special.trigger && special.trigger.apply( elem, data ) === false ) {
			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)
		eventPath = [[ elem, special.bindType || type ]];
		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {

			bubbleType = special.delegateType || type;
			cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode;
			for ( old = elem; cur; cur = cur.parentNode ) {
				eventPath.push([ cur, bubbleType ]);
				old = cur;
			}

			// Only add window if we got to document (e.g., not plain obj or detached DOM)
			if ( old === (elem.ownerDocument || document) ) {
				eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]);
			}
		}

		// Fire handlers on the event path
		for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) {

			cur = eventPath[i][0];
			event.type = eventPath[i][1];

			handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
			if ( handle ) {
				handle.apply( cur, data );
			}
			// Note that this is a bare JS function and not a jQuery handler
			handle = ontype && cur[ ontype ];
			if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) {
				event.preventDefault();
			}
		}
		event.type = type;

		// If nobody prevented the default action, do it now
		if ( !onlyHandlers && !event.isDefaultPrevented() ) {

			if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) &&
				!(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {

				// Call a native DOM method on the target with the same name name as the event.
				// Can't use an .isFunction() check here because IE6/7 fails that test.
				// Don't do default actions on window, that's where global variables be (#6170)
				// IE<9 dies on focus/blur to hidden element (#1486)
				if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) {

					// Don't re-trigger an onFOO event when we call its FOO() method
					old = elem[ ontype ];

					if ( old ) {
						elem[ ontype ] = null;
					}

					// Prevent re-triggering of the same event, since we already bubbled it above
					jQuery.event.triggered = type;
					elem[ type ]();
					jQuery.event.triggered = undefined;

					if ( old ) {
						elem[ ontype ] = old;
					}
				}
			}
		}

		return event.result;
	},

	dispatch: function( event ) {

		// Make a writable jQuery.Event from the native event object
		event = jQuery.event.fix( event || window.event );

		var i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related,
			handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []),
			delegateCount = handlers.delegateCount,
			args = [].slice.call( arguments ),
			run_all = !event.exclusive && !event.namespace,
			special = jQuery.event.special[ event.type ] || {},
			handlerQueue = [];

		// Use the fix-ed jQuery.Event rather than the (read-only) native event
		args[0] = event;
		event.delegateTarget = this;

		// Call the preDispatch hook for the mapped type, and let it bail if desired
		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
			return;
		}

		// Determine handlers that should run if there are delegated events
		// Avoid non-left-click bubbling in Firefox (#3861)
		if ( delegateCount && !(event.button && event.type === "click") ) {

			// Pregenerate a single jQuery object for reuse with .is()
			jqcur = jQuery(this);
			jqcur.context = this;

			for ( cur = event.target; cur != this; cur = cur.parentNode || this ) {

				// Don't process clicks (ONLY) on disabled elements (#6911, #8165, #xxxx)
				if ( cur.disabled !== true || event.type !== "click" ) {
					selMatch = {};
					matches = [];
					jqcur[0] = cur;
					for ( i = 0; i < delegateCount; i++ ) {
						handleObj = handlers[ i ];
						sel = handleObj.selector;

						if ( selMatch[ sel ] === undefined ) {
							selMatch[ sel ] = jqcur.is( sel );
						}
						if ( selMatch[ sel ] ) {
							matches.push( handleObj );
						}
					}
					if ( matches.length ) {
						handlerQueue.push({ elem: cur, matches: matches });
					}
				}
			}
		}

		// Add the remaining (directly-bound) handlers
		if ( handlers.length > delegateCount ) {
			handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) });
		}

		// Run delegates first; they may want to stop propagation beneath us
		for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) {
			matched = handlerQueue[ i ];
			event.currentTarget = matched.elem;

			for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) {
				handleObj = matched.matches[ j ];

				// Triggered event must either 1) be non-exclusive and have no namespace, or
				// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
				if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) {

					event.data = handleObj.data;
					event.handleObj = handleObj;

					ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
							.apply( matched.elem, args );

					if ( ret !== undefined ) {
						event.result = ret;
						if ( ret === false ) {
							event.preventDefault();
							event.stopPropagation();
						}
					}
				}
			}
		}

		// Call the postDispatch hook for the mapped type
		if ( special.postDispatch ) {
			special.postDispatch.call( this, event );
		}

		return event.result;
	},

	// Includes some event props shared by KeyEvent and MouseEvent
	// *** attrChange attrName relatedNode srcElement  are not normalized, non-W3C, deprecated, will be removed in 1.8 ***
	props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),

	fixHooks: {},

	keyHooks: {
		props: "char charCode key keyCode".split(" "),
		filter: function( event, original ) {

			// Add which for key events
			if ( event.which == null ) {
				event.which = original.charCode != null ? original.charCode : original.keyCode;
			}

			return event;
		}
	},

	mouseHooks: {
		props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
		filter: function( event, original ) {
			var eventDoc, doc, body,
				button = original.button,
				fromElement = original.fromElement;

			// Calculate pageX/Y if missing and clientX/Y available
			if ( event.pageX == null && original.clientX != null ) {
				eventDoc = event.target.ownerDocument || document;
				doc = eventDoc.documentElement;
				body = eventDoc.body;

				event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
				event.pageY = original.clientY + ( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) - ( doc && doc.clientTop  || body && body.clientTop  || 0 );
			}

			// Add relatedTarget, if necessary
			if ( !event.relatedTarget && fromElement ) {
				event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
			}

			// Add which for click: 1 === left; 2 === middle; 3 === right
			// Note: button is not normalized, so don't use it
			if ( !event.which && button !== undefined ) {
				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
			}

			return event;
		}
	},

	fix: function( event ) {
		if ( event[ jQuery.expando ] ) {
			return event;
		}

		// Create a writable copy of the event object and normalize some properties
		var i, prop,
			originalEvent = event,
			fixHook = jQuery.event.fixHooks[ event.type ] || {},
			copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;

		event = jQuery.Event( originalEvent );

		for ( i = copy.length; i; ) {
			prop = copy[ --i ];
			event[ prop ] = originalEvent[ prop ];
		}

		// Fix target property, if necessary (#1925, IE 6/7/8 & Safari2)
		if ( !event.target ) {
			event.target = originalEvent.srcElement || document;
		}

		// Target should not be a text node (#504, Safari)
		if ( event.target.nodeType === 3 ) {
			event.target = event.target.parentNode;
		}

		// For mouse/key events, metaKey==false if it's undefined (#3368, #11328; IE6/7/8)
		event.metaKey = !!event.metaKey;

		return fixHook.filter? fixHook.filter( event, originalEvent ) : event;
	},

	special: {
		ready: {
			// Make sure the ready event is setup
			setup: jQuery.bindReady
		},

		load: {
			// Prevent triggered image.load events from bubbling to window.load
			noBubble: true
		},

		focus: {
			delegateType: "focusin"
		},
		blur: {
			delegateType: "focusout"
		},

		beforeunload: {
			setup: function( data, namespaces, eventHandle ) {
				// We only want to do this special case on windows
				if ( jQuery.isWindow( this ) ) {
					this.onbeforeunload = eventHandle;
				}
			},

			teardown: function( namespaces, eventHandle ) {
				if ( this.onbeforeunload === eventHandle ) {
					this.onbeforeunload = null;
				}
			}
		}
	},

	simulate: function( type, elem, event, bubble ) {
		// Piggyback on a donor event to simulate a different one.
		// Fake originalEvent to avoid donor's stopPropagation, but if the
		// simulated event prevents default then we do the same on the donor.
		var e = jQuery.extend(
			new jQuery.Event(),
			event,
			{ type: type,
				isSimulated: true,
				originalEvent: {}
			}
		);
		if ( bubble ) {
			jQuery.event.trigger( e, null, elem );
		} else {
			jQuery.event.dispatch.call( elem, e );
		}
		if ( e.isDefaultPrevented() ) {
			event.preventDefault();
		}
	}
};

// Some plugins are using, but it's undocumented/deprecated and will be removed.
// The 1.7 special event interface should provide all the hooks needed now.
jQuery.event.handle = jQuery.event.dispatch;

jQuery.removeEvent = document.removeEventListener ?
	function( elem, type, handle ) {
		if ( elem.removeEventListener ) {
			elem.removeEventListener( type, handle, false );
		}
	} :
	function( elem, type, handle ) {
		var name = "on" + type;

		if ( elem.detachEvent ) {

			// #8545, #7054, preventing memory leaks for custom events in IE6-8 –
			// detachEvent needed property on element, by name of that event, to properly expose it to GC
			if ( typeof elem[ name ] === "undefined" ) {
				elem[ name ] = null;
			}

			elem.detachEvent( name, handle );
		}
	};

jQuery.Event = function( src, props ) {
	// Allow instantiation without the 'new' keyword
	if ( !(this instanceof jQuery.Event) ) {
		return new jQuery.Event( src, props );
	}

	// Event object
	if ( src && src.type ) {
		this.originalEvent = src;
		this.type = src.type;

		// Events bubbling up the document may have been marked as prevented
		// by a handler lower down the tree; reflect the correct value.
		this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
			src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;

	// Event type
	} else {
		this.type = src;
	}

	// Put explicitly provided properties onto the event object
	if ( props ) {
		jQuery.extend( this, props );
	}

	// Create a timestamp if incoming event doesn't have one
	this.timeStamp = src && src.timeStamp || jQuery.now();

	// Mark it as fixed
	this[ jQuery.expando ] = true;
};

function returnFalse() {
	return false;
}
function returnTrue() {
	return true;
}

// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
jQuery.Event.prototype = {
	preventDefault: function() {
		this.isDefaultPrevented = returnTrue;

		var e = this.originalEvent;
		if ( !e ) {
			return;
		}

		// if preventDefault exists run it on the original event
		if ( e.preventDefault ) {
			e.preventDefault();

		// otherwise set the returnValue property of the original event to false (IE)
		} else {
			e.returnValue = false;
		}
	},
	stopPropagation: function() {
		this.isPropagationStopped = returnTrue;

		var e = this.originalEvent;
		if ( !e ) {
			return;
		}
		// if stopPropagation exists run it on the original event
		if ( e.stopPropagation ) {
			e.stopPropagation();
		}
		// otherwise set the cancelBubble property of the original event to true (IE)
		e.cancelBubble = true;
	},
	stopImmediatePropagation: function() {
		this.isImmediatePropagationStopped = returnTrue;
		this.stopPropagation();
	},
	isDefaultPrevented: returnFalse,
	isPropagationStopped: returnFalse,
	isImmediatePropagationStopped: returnFalse
};

// Create mouseenter/leave events using mouseover/out and event-time checks
jQuery.each({
	mouseenter: "mouseover",
	mouseleave: "mouseout"
}, function( orig, fix ) {
	jQuery.event.special[ orig ] = {
		delegateType: fix,
		bindType: fix,

		handle: function( event ) {
			var ret,
				target = this,
				related = event.relatedTarget,
				handleObj = event.handleObj,
				selector = handleObj.selector;

			// For mousenter/leave call the handler if related is outside the target.
			// NB: No relatedTarget if the mouse left/entered the browser window
			if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
				event.type = handleObj.origType;
				ret = handleObj.handler.apply( this, arguments );
				event.type = fix;
			}
			return ret;
		}
	};
});

// IE submit delegation
if ( !jQuery.support.submitBubbles ) {

	jQuery.event.special.submit = {
		setup: function() {
			// Only need this for delegated form submit events
			if ( jQuery.nodeName( this, "form" ) ) {
				return false;
			}

			// Lazy-add a submit handler when a descendant form may potentially be submitted
			jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
				// Node name check avoids a VML-related crash in IE (#9807)
				var elem = e.target,
					form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
				if ( form && !jQuery._data( form, "_submit_attached" ) ) {
					jQuery.event.add( form, "submit._submit", function( event ) {
						event._submit_bubble = true;
					});
					jQuery._data( form, "_submit_attached", true );
				}
			});
			// return undefined since we don't need an event listener
		},

		postDispatch: function( event ) {
			// If form was submitted by the user, bubble the event up the tree
			if ( event._submit_bubble ) {
				delete event._submit_bubble;
				if ( this.parentNode && !event.isTrigger ) {
					jQuery.event.simulate( "submit", this.parentNode, event, true );
				}
			}
		},

		teardown: function() {
			// Only need this for delegated form submit events
			if ( jQuery.nodeName( this, "form" ) ) {
				return false;
			}

			// Remove delegated handlers; cleanData eventually reaps submit handlers attached above
			jQuery.event.remove( this, "._submit" );
		}
	};
}

// IE change delegation and checkbox/radio fix
if ( !jQuery.support.changeBubbles ) {

	jQuery.event.special.change = {

		setup: function() {

			if ( rformElems.test( this.nodeName ) ) {
				// IE doesn't fire change on a check/radio until blur; trigger it on click
				// after a propertychange. Eat the blur-change in special.change.handle.
				// This still fires onchange a second time for check/radio after blur.
				if ( this.type === "checkbox" || this.type === "radio" ) {
					jQuery.event.add( this, "propertychange._change", function( event ) {
						if ( event.originalEvent.propertyName === "checked" ) {
							this._just_changed = true;
						}
					});
					jQuery.event.add( this, "click._change", function( event ) {
						if ( this._just_changed && !event.isTrigger ) {
							this._just_changed = false;
						}
						// Allow triggered, simulated change events (#11500)
						jQuery.event.simulate( "change", this, event, true );
					});
				}
				return false;
			}
			// Delegated event; lazy-add a change handler on descendant inputs
			jQuery.event.add( this, "beforeactivate._change", function( e ) {
				var elem = e.target;

				if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "_change_attached" ) ) {
					jQuery.event.add( elem, "change._change", function( event ) {
						if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
							jQuery.event.simulate( "change", this.parentNode, event, true );
						}
					});
					jQuery._data( elem, "_change_attached", true );
				}
			});
		},

		handle: function( event ) {
			var elem = event.target;

			// Swallow native change events from checkbox/radio, we already triggered them above
			if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
				return event.handleObj.handler.apply( this, arguments );
			}
		},

		teardown: function() {
			jQuery.event.remove( this, "._change" );

			return rformElems.test( this.nodeName );
		}
	};
}

// Create "bubbling" focus and blur events
if ( !jQuery.support.focusinBubbles ) {
	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {

		// Attach a single capturing handler while someone wants focusin/focusout
		var attaches = 0,
			handler = function( event ) {
				jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
			};

		jQuery.event.special[ fix ] = {
			setup: function() {
				if ( attaches++ === 0 ) {
					document.addEventListener( orig, handler, true );
				}
			},
			teardown: function() {
				if ( --attaches === 0 ) {
					document.removeEventListener( orig, handler, true );
				}
			}
		};
	});
}

jQuery.fn.extend({

	on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
		var origFn, type;

		// Types can be a map of types/handlers
		if ( typeof types === "object" ) {
			// ( types-Object, selector, data )
			if ( typeof selector !== "string" ) { // && selector != null
				// ( types-Object, data )
				data = data || selector;
				selector = undefined;
			}
			for ( type in types ) {
				this.on( type, selector, data, types[ type ], one );
			}
			return this;
		}

		if ( data == null && fn == null ) {
			// ( types, fn )
			fn = selector;
			data = selector = undefined;
		} else if ( fn == null ) {
			if ( typeof selector === "string" ) {
				// ( types, selector, fn )
				fn = data;
				data = undefined;
			} else {
				// ( types, data, fn )
				fn = data;
				data = selector;
				selector = undefined;
			}
		}
		if ( fn === false ) {
			fn = returnFalse;
		} else if ( !fn ) {
			return this;
		}

		if ( one === 1 ) {
			origFn = fn;
			fn = function( event ) {
				// Can use an empty set, since event contains the info
				jQuery().off( event );
				return origFn.apply( this, arguments );
			};
			// Use same guid so caller can remove using origFn
			fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
		}
		return this.each( function() {
			jQuery.event.add( this, types, fn, data, selector );
		});
	},
	one: function( types, selector, data, fn ) {
		return this.on( types, selector, data, fn, 1 );
	},
	off: function( types, selector, fn ) {
		var handleObj, type;
		if ( types && types.preventDefault && types.handleObj ) {
			// ( event )  dispatched jQuery.Event
			handleObj = types.handleObj;
			jQuery( types.delegateTarget ).off(
				handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
				handleObj.selector,
				handleObj.handler
			);
			return this;
		}
		if ( typeof types === "object" ) {
			// ( types-object [, selector] )
			for ( type in types ) {
				this.off( type, selector, types[ type ] );
			}
			return this;
		}
		if ( selector === false || typeof selector === "function" ) {
			// ( types [, fn] )
			fn = selector;
			selector = undefined;
		}
		if ( fn === false ) {
			fn = returnFalse;
		}
		return this.each(function() {
			jQuery.event.remove( this, types, fn, selector );
		});
	},

	bind: function( types, data, fn ) {
		return this.on( types, null, data, fn );
	},
	unbind: function( types, fn ) {
		return this.off( types, null, fn );
	},

	live: function( types, data, fn ) {
		jQuery( this.context ).on( types, this.selector, data, fn );
		return this;
	},
	die: function( types, fn ) {
		jQuery( this.context ).off( types, this.selector || "**", fn );
		return this;
	},

	delegate: function( selector, types, data, fn ) {
		return this.on( types, selector, data, fn );
	},
	undelegate: function( selector, types, fn ) {
		// ( namespace ) or ( selector, types [, fn] )
		return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
	},

	trigger: function( type, data ) {
		return this.each(function() {
			jQuery.event.trigger( type, data, this );
		});
	},
	triggerHandler: function( type, data ) {
		if ( this[0] ) {
			return jQuery.event.trigger( type, data, this[0], true );
		}
	},

	toggle: function( fn ) {
		// Save reference to arguments for access in closure
		var args = arguments,
			guid = fn.guid || jQuery.guid++,
			i = 0,
			toggler = function( event ) {
				// Figure out which function to execute
				var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
				jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );

				// Make sure that clicks stop
				event.preventDefault();

				// and execute the function
				return args[ lastToggle ].apply( this, arguments ) || false;
			};

		// link all the functions, so any of them can unbind this click handler
		toggler.guid = guid;
		while ( i < args.length ) {
			args[ i++ ].guid = guid;
		}

		return this.click( toggler );
	},

	hover: function( fnOver, fnOut ) {
		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
	}
});

jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
	"change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {

	// Handle event binding
	jQuery.fn[ name ] = function( data, fn ) {
		if ( fn == null ) {
			fn = data;
			data = null;
		}

		return arguments.length > 0 ?
			this.on( name, null, data, fn ) :
			this.trigger( name );
	};

	if ( rkeyEvent.test( name ) ) {
		jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;
	}

	if ( rmouseEvent.test( name ) ) {
		jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
	}
});
/*!
 * Sizzle CSS Selector Engine
 *  Copyright 2012 jQuery Foundation and other contributors
 *  Released under the MIT license
 *  http://sizzlejs.com/
 */
(function( window, undefined ) {

var cachedruns,
	dirruns,
	sortOrder,
	siblingCheck,
	assertGetIdNotName,

	document = window.document,
	docElem = document.documentElement,

	strundefined = "undefined",
	hasDuplicate = false,
	baseHasDuplicate = true,
	done = 0,
	slice = [].slice,
	push = [].push,

	expando = ( "sizcache" + Math.random() ).replace( ".", "" ),

	// Regex

	// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
	whitespace = "[\\x20\\t\\r\\n\\f]",
	// http://www.w3.org/TR/css3-syntax/#characters
	characterEncoding = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",

	// Loosely modeled on CSS identifier characters
	// An unquoted value should be a CSS identifier (http://www.w3.org/TR/css3-selectors/#attribute-selectors)
	// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
	identifier = characterEncoding.replace( "w", "w#" ),

	// Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors
	operators = "([*^$|!~]?=)",
	attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
		"*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
	pseudos = ":(" + characterEncoding + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",
	pos = ":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",
	combinators = whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*",
	groups = "(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|" + attributes + "|" + pseudos.replace( 2, 7 ) + "|[^\\\\(),])+",

	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),

	rcombinators = new RegExp( "^" + combinators ),

	// All simple (non-comma) selectors, excluding insignifant trailing whitespace
	rgroups = new RegExp( groups + "?(?=" + whitespace + "*,|$)", "g" ),

	// A selector, or everything after leading whitespace
	// Optionally followed in either case by a ")" for terminating sub-selectors
	rselector = new RegExp( "^(?:(?!,)(?:(?:^|,)" + whitespace + "*" + groups + ")*?|" + whitespace + "*(.*?))(\\)|$)" ),

	// All combinators and selector components (attribute test, tag, pseudo, etc.), the latter appearing together when consecutive
	rtokens = new RegExp( groups.slice( 19, -6 ) + "\\x20\\t\\r\\n\\f>+~])+|" + combinators, "g" ),

	// Easily-parseable/retrievable ID or TAG or CLASS selectors
	rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,

	rsibling = /[\x20\t\r\n\f]*[+~]/,
	rendsWithNot = /:not\($/,

	rheader = /h\d/i,
	rinputs = /input|select|textarea|button/i,

	rbackslash = /\\(?!\\)/g,

	matchExpr = {
		"ID": new RegExp( "^#(" + characterEncoding + ")" ),
		"CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
		"NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ),
		"TAG": new RegExp( "^(" + characterEncoding.replace( "[-", "[-\\*" ) + ")" ),
		"ATTR": new RegExp( "^" + attributes ),
		"PSEUDO": new RegExp( "^" + pseudos ),
		"CHILD": new RegExp( "^:(only|nth|last|first)-child(?:\\(" + whitespace +
			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
		"POS": new RegExp( pos, "ig" ),
		// For use in libraries implementing .is()
		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|" + pos, "i" )
	},

	classCache = {},
	cachedClasses = [],
	compilerCache = {},
	cachedSelectors = [],

	// Mark a function for use in filtering
	markFunction = function( fn ) {
		fn.sizzleFilter = true;
		return fn;
	},

	// Returns a function to use in pseudos for input types
	createInputFunction = function( type ) {
		return function( elem ) {
			// Check the input's nodeName and type
			return elem.nodeName.toLowerCase() === "input" && elem.type === type;
		};
	},

	// Returns a function to use in pseudos for buttons
	createButtonFunction = function( type ) {
		return function( elem ) {
			var name = elem.nodeName.toLowerCase();
			return (name === "input" || name === "button") && elem.type === type;
		};
	},

	// Used for testing something on an element
	assert = function( fn ) {
		var pass = false,
			div = document.createElement("div");
		try {
			pass = fn( div );
		} catch (e) {}
		// release memory in IE
		div = null;
		return pass;
	},

	// Check if attributes should be retrieved by attribute nodes
	assertAttributes = assert(function( div ) {
		div.innerHTML = "<select></select>";
		var type = typeof div.lastChild.getAttribute("multiple");
		// IE8 returns a string for some attributes even when not present
		return type !== "boolean" && type !== "string";
	}),

	// Check if getElementById returns elements by name
	// Check if getElementsByName privileges form controls or returns elements by ID
	assertUsableName = assert(function( div ) {
		// Inject content
		div.id = expando + 0;
		div.innerHTML = "<a name='" + expando + "'></a><div name='" + expando + "'></div>";
		docElem.insertBefore( div, docElem.firstChild );

		// Test
		var pass = document.getElementsByName &&
			// buggy browsers will return fewer than the correct 2
			document.getElementsByName( expando ).length ===
			// buggy browsers will return more than the correct 0
			2 + document.getElementsByName( expando + 0 ).length;
		assertGetIdNotName = !document.getElementById( expando );

		// Cleanup
		docElem.removeChild( div );

		return pass;
	}),

	// Check if the browser returns only elements
	// when doing getElementsByTagName("*")
	assertTagNameNoComments = assert(function( div ) {
		div.appendChild( document.createComment("") );
		return div.getElementsByTagName("*").length === 0;
	}),

	// Check if getAttribute returns normalized href attributes
	assertHrefNotNormalized = assert(function( div ) {
		div.innerHTML = "<a href='#'></a>";
		return div.firstChild && typeof div.firstChild.getAttribute !== strundefined &&
			div.firstChild.getAttribute("href") === "#";
	}),

	// Check if getElementsByClassName can be trusted
	assertUsableClassName = assert(function( div ) {
		// Opera can't find a second classname (in 9.6)
		div.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>";
		if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
			return false;
		}

		// Safari caches class attributes, doesn't catch changes (in 3.2)
		div.lastChild.className = "e";
		return div.getElementsByClassName("e").length !== 1;
	});

var Sizzle = function( selector, context, results, seed ) {
	results = results || [];
	context = context || document;
	var match, elem, xml, m,
		nodeType = context.nodeType;

	if ( nodeType !== 1 && nodeType !== 9 ) {
		return [];
	}

	if ( !selector || typeof selector !== "string" ) {
		return results;
	}

	xml = isXML( context );

	if ( !xml && !seed ) {
		if ( (match = rquickExpr.exec( selector )) ) {
			// Speed-up: Sizzle("#ID")
			if ( (m = match[1]) ) {
				if ( nodeType === 9 ) {
					elem = context.getElementById( m );
					// Check parentNode to catch when Blackberry 4.6 returns
					// nodes that are no longer in the document #6963
					if ( elem && elem.parentNode ) {
						// Handle the case where IE, Opera, and Webkit return items
						// by name instead of ID
						if ( elem.id === m ) {
							results.push( elem );
							return results;
						}
					} else {
						return results;
					}
				} else {
					// Context is not a document
					if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
						contains( context, elem ) && elem.id === m ) {
						results.push( elem );
						return results;
					}
				}

			// Speed-up: Sizzle("TAG")
			} else if ( match[2] ) {
				push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) );
				return results;

			// Speed-up: Sizzle(".CLASS")
			} else if ( (m = match[3]) && assertUsableClassName && context.getElementsByClassName ) {
				push.apply( results, slice.call(context.getElementsByClassName( m ), 0) );
				return results;
			}
		}
	}

	// All others
	return select( selector, context, results, seed, xml );
};

var Expr = Sizzle.selectors = {

	// Can be adjusted by the user
	cacheLength: 50,

	match: matchExpr,

	order: [ "ID", "TAG" ],

	attrHandle: {},

	createPseudo: markFunction,

	find: {
		"ID": assertGetIdNotName ?
			function( id, context, xml ) {
				if ( typeof context.getElementById !== strundefined && !xml ) {
					var m = context.getElementById( id );
					// Check parentNode to catch when Blackberry 4.6 returns
					// nodes that are no longer in the document #6963
					return m && m.parentNode ? [m] : [];
				}
			} :
			function( id, context, xml ) {
				if ( typeof context.getElementById !== strundefined && !xml ) {
					var m = context.getElementById( id );

					return m ?
						m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ?
							[m] :
							undefined :
						[];
				}
			},

		"TAG": assertTagNameNoComments ?
			function( tag, context ) {
				if ( typeof context.getElementsByTagName !== strundefined ) {
					return context.getElementsByTagName( tag );
				}
			} :
			function( tag, context ) {
				var results = context.getElementsByTagName( tag );

				// Filter out possible comments
				if ( tag === "*" ) {
					var elem,
						tmp = [],
						i = 0;

					for ( ; (elem = results[i]); i++ ) {
						if ( elem.nodeType === 1 ) {
							tmp.push( elem );
						}
					}

					return tmp;
				}
				return results;
			}
	},

	relative: {
		">": { dir: "parentNode", first: true },
		" ": { dir: "parentNode" },
		"+": { dir: "previousSibling", first: true },
		"~": { dir: "previousSibling" }
	},

	preFilter: {
		"ATTR": function( match ) {
			match[1] = match[1].replace( rbackslash, "" );

			// Move the given value to match[3] whether quoted or unquoted
			match[3] = ( match[4] || match[5] || "" ).replace( rbackslash, "" );

			if ( match[2] === "~=" ) {
				match[3] = " " + match[3] + " ";
			}

			return match.slice( 0, 4 );
		},

		"CHILD": function( match ) {
			/* matches from matchExpr.CHILD
				1 type (only|nth|...)
				2 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
				3 xn-component of xn+y argument ([+-]?\d*n|)
				4 sign of xn-component
				5 x of xn-component
				6 sign of y-component
				7 y of y-component
			*/
			match[1] = match[1].toLowerCase();

			if ( match[1] === "nth" ) {
				// nth-child requires argument
				if ( !match[2] ) {
					Sizzle.error( match[0] );
				}

				// numeric x and y parameters for Expr.filter.CHILD
				// remember that false/true cast respectively to 0/1
				match[3] = +( match[3] ? match[4] + (match[5] || 1) : 2 * ( match[2] === "even" || match[2] === "odd" ) );
				match[4] = +( ( match[6] + match[7] ) || match[2] === "odd" );

			// other types prohibit arguments
			} else if ( match[2] ) {
				Sizzle.error( match[0] );
			}

			return match;
		},

		"PSEUDO": function( match ) {
			var argument,
				unquoted = match[4];

			if ( matchExpr["CHILD"].test( match[0] ) ) {
				return null;
			}

			// Relinquish our claim on characters in `unquoted` from a closing parenthesis on
			if ( unquoted && (argument = rselector.exec( unquoted )) && argument.pop() ) {

				match[0] = match[0].slice( 0, argument[0].length - unquoted.length - 1 );
				unquoted = argument[0].slice( 0, -1 );
			}

			// Quoted or unquoted, we have the full argument
			// Return only captures needed by the pseudo filter method (type and argument)
			match.splice( 2, 3, unquoted || match[3] );
			return match;
		}
	},

	filter: {
		"ID": assertGetIdNotName ?
			function( id ) {
				id = id.replace( rbackslash, "" );
				return function( elem ) {
					return elem.getAttribute("id") === id;
				};
			} :
			function( id ) {
				id = id.replace( rbackslash, "" );
				return function( elem ) {
					var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
					return node && node.value === id;
				};
			},

		"TAG": function( nodeName ) {
			if ( nodeName === "*" ) {
				return function() { return true; };
			}
			nodeName = nodeName.replace( rbackslash, "" ).toLowerCase();

			return function( elem ) {
				return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
			};
		},

		"CLASS": function( className ) {
			var pattern = classCache[ className ];
			if ( !pattern ) {
				pattern = classCache[ className ] = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" );
				cachedClasses.push( className );
				// Avoid too large of a cache
				if ( cachedClasses.length > Expr.cacheLength ) {
					delete classCache[ cachedClasses.shift() ];
				}
			}
			return function( elem ) {
				return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" );
			};
		},

		"ATTR": function( name, operator, check ) {
			if ( !operator ) {
				return function( elem ) {
					return Sizzle.attr( elem, name ) != null;
				};
			}

			return function( elem ) {
				var result = Sizzle.attr( elem, name ),
					value = result + "";

				if ( result == null ) {
					return operator === "!=";
				}

				switch ( operator ) {
					case "=":
						return value === check;
					case "!=":
						return value !== check;
					case "^=":
						return check && value.indexOf( check ) === 0;
					case "*=":
						return check && value.indexOf( check ) > -1;
					case "$=":
						return check && value.substr( value.length - check.length ) === check;
					case "~=":
						return ( " " + value + " " ).indexOf( check ) > -1;
					case "|=":
						return value === check || value.substr( 0, check.length + 1 ) === check + "-";
				}
			};
		},

		"CHILD": function( type, argument, first, last ) {

			if ( type === "nth" ) {
				var doneName = done++;

				return function( elem ) {
					var parent, diff,
						count = 0,
						node = elem;

					if ( first === 1 && last === 0 ) {
						return true;
					}

					parent = elem.parentNode;

					if ( parent && (parent[ expando ] !== doneName || !elem.sizset) ) {
						for ( node = parent.firstChild; node; node = node.nextSibling ) {
							if ( node.nodeType === 1 ) {
								node.sizset = ++count;
								if ( node === elem ) {
									break;
								}
							}
						}

						parent[ expando ] = doneName;
					}

					diff = elem.sizset - last;

					if ( first === 0 ) {
						return diff === 0;

					} else {
						return ( diff % first === 0 && diff / first >= 0 );
					}
				};
			}

			return function( elem ) {
				var node = elem;

				switch ( type ) {
					case "only":
					case "first":
						while ( (node = node.previousSibling) ) {
							if ( node.nodeType === 1 ) {
								return false;
							}
						}

						if ( type === "first" ) {
							return true;
						}

						node = elem;

						/* falls through */
					case "last":
						while ( (node = node.nextSibling) ) {
							if ( node.nodeType === 1 ) {
								return false;
							}
						}

						return true;
				}
			};
		},

		"PSEUDO": function( pseudo, argument, context, xml ) {
			// 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
			var fn = Expr.pseudos[ pseudo ] || Expr.pseudos[ pseudo.toLowerCase() ];

			if ( !fn ) {
				Sizzle.error( "unsupported pseudo: " + pseudo );
			}

			// The user may set fn.sizzleFilter to indicate
			// that arguments are needed to create the filter function
			// just as Sizzle does
			if ( !fn.sizzleFilter ) {
				return fn;
			}

			return fn( argument, context, xml );
		}
	},

	pseudos: {
		"not": markFunction(function( selector, context, xml ) {
			// Trim the selector passed to compile
			// to avoid treating leading and trailing
			// spaces as combinators
			var matcher = compile( selector.replace( rtrim, "$1" ), context, xml );
			return function( elem ) {
				return !matcher( elem );
			};
		}),

		"enabled": function( elem ) {
			return elem.disabled === false;
		},

		"disabled": function( elem ) {
			return elem.disabled === 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);
		},

		"selected": function( elem ) {
			// Accessing this property makes selected-by-default
			// options in Safari work properly
			if ( elem.parentNode ) {
				elem.parentNode.selectedIndex;
			}

			return elem.selected === true;
		},

		"parent": function( elem ) {
			return !Expr.pseudos["empty"]( elem );
		},

		"empty": function( elem ) {
			// http://www.w3.org/TR/selectors/#empty-pseudo
			// :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),
			//   not comment, processing instructions, or others
			// Thanks to Diego Perini for the nodeName shortcut
			//   Greater than "@" means alpha characters (specifically not starting with "#" or "?")
			var nodeType;
			elem = elem.firstChild;
			while ( elem ) {
				if ( elem.nodeName > "@" || (nodeType = elem.nodeType) === 3 || nodeType === 4 ) {
					return false;
				}
				elem = elem.nextSibling;
			}
			return true;
		},

		"contains": markFunction(function( text ) {
			return function( elem ) {
				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
			};
		}),

		"has": markFunction(function( selector ) {
			return function( elem ) {
				return Sizzle( selector, elem ).length > 0;
			};
		}),

		"header": function( elem ) {
			return rheader.test( elem.nodeName );
		},

		"text": function( elem ) {
			var type, attr;
			// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
			// use getAttribute instead to test this case
			return elem.nodeName.toLowerCase() === "input" &&
				(type = elem.type) === "text" &&
				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === type );
		},

		// Input types
		"radio": createInputFunction("radio"),
		"checkbox": createInputFunction("checkbox"),
		"file": createInputFunction("file"),
		"password": createInputFunction("password"),
		"image": createInputFunction("image"),

		"submit": createButtonFunction("submit"),
		"reset": createButtonFunction("reset"),

		"button": function( elem ) {
			var name = elem.nodeName.toLowerCase();
			return name === "input" && elem.type === "button" || name === "button";
		},

		"input": function( elem ) {
			return rinputs.test( elem.nodeName );
		},

		"focus": function( elem ) {
			var doc = elem.ownerDocument;
			return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href);
		},

		"active": function( elem ) {
			return elem === elem.ownerDocument.activeElement;
		}
	},

	setFilters: {
		"first": function( elements, argument, not ) {
			return not ? elements.slice( 1 ) : [ elements[0] ];
		},

		"last": function( elements, argument, not ) {
			var elem = elements.pop();
			return not ? elements : [ elem ];
		},

		"even": function( elements, argument, not ) {
			var results = [],
				i = not ? 1 : 0,
				len = elements.length;
			for ( ; i < len; i = i + 2 ) {
				results.push( elements[i] );
			}
			return results;
		},

		"odd": function( elements, argument, not ) {
			var results = [],
				i = not ? 0 : 1,
				len = elements.length;
			for ( ; i < len; i = i + 2 ) {
				results.push( elements[i] );
			}
			return results;
		},

		"lt": function( elements, argument, not ) {
			return not ? elements.slice( +argument ) : elements.slice( 0, +argument );
		},

		"gt": function( elements, argument, not ) {
			return not ? elements.slice( 0, +argument + 1 ) : elements.slice( +argument + 1 );
		},

		"eq": function( elements, argument, not ) {
			var elem = elements.splice( +argument, 1 );
			return not ? elements : elem;
		}
	}
};

// Deprecated
Expr.setFilters["nth"] = Expr.setFilters["eq"];

// Back-compat
Expr.filters = Expr.pseudos;

// IE6/7 return a modified href
if ( !assertHrefNotNormalized ) {
	Expr.attrHandle = {
		"href": function( elem ) {
			return elem.getAttribute( "href", 2 );
		},
		"type": function( elem ) {
			return elem.getAttribute("type");
		}
	};
}

// Add getElementsByName if usable
if ( assertUsableName ) {
	Expr.order.push("NAME");
	Expr.find["NAME"] = function( name, context ) {
		if ( typeof context.getElementsByName !== strundefined ) {
			return context.getElementsByName( name );
		}
	};
}

// Add getElementsByClassName if usable
if ( assertUsableClassName ) {
	Expr.order.splice( 1, 0, "CLASS" );
	Expr.find["CLASS"] = function( className, context, xml ) {
		if ( typeof context.getElementsByClassName !== strundefined && !xml ) {
			return context.getElementsByClassName( className );
		}
	};
}

// If slice is not available, provide a backup
try {
	slice.call( docElem.childNodes, 0 )[0].nodeType;
} catch ( e ) {
	slice = function( i ) {
		var elem, results = [];
		for ( ; (elem = this[i]); i++ ) {
			results.push( elem );
		}
		return results;
	};
}

var 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;
};

// Element contains another
var contains = Sizzle.contains = docElem.compareDocumentPosition ?
	function( a, b ) {
		return !!( a.compareDocumentPosition( b ) & 16 );
	} :
	docElem.contains ?
	function( a, b ) {
		var adown = a.nodeType === 9 ? a.documentElement : a,
			bup = b.parentNode;
		return a === bup || !!( bup && bup.nodeType === 1 && adown.contains && adown.contains(bup) );
	} :
	function( a, b ) {
		while ( (b = b.parentNode) ) {
			if ( b === a ) {
				return true;
			}
		}
		return false;
	};

/**
 * Utility function for retrieving the text value of an array of DOM nodes
 * @param {Array|Element} elem
 */
var getText = Sizzle.getText = function( elem ) {
	var node,
		ret = "",
		i = 0,
		nodeType = elem.nodeType;

	if ( nodeType ) {
		if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
			// Use textContent for elements
			// innerText usage removed for consistency of new lines (see #11153)
			if ( typeof elem.textContent === "string" ) {
				return elem.textContent;
			} else {
				// Traverse its children
				for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
					ret += getText( elem );
				}
			}
		} else if ( nodeType === 3 || nodeType === 4 ) {
			return elem.nodeValue;
		}
		// Do not include comment or processing instruction nodes
	} else {

		// If no nodeType, this is expected to be an array
		for ( ; (node = elem[i]); i++ ) {
			// Do not traverse comment nodes
			ret += getText( node );
		}
	}
	return ret;
};

Sizzle.attr = function( elem, name ) {
	var attr,
		xml = isXML( elem );

	if ( !xml ) {
		name = name.toLowerCase();
	}
	if ( Expr.attrHandle[ name ] ) {
		return Expr.attrHandle[ name ]( elem );
	}
	if ( assertAttributes || xml ) {
		return elem.getAttribute( name );
	}
	attr = elem.getAttributeNode( name );
	return attr ?
		typeof elem[ name ] === "boolean" ?
			elem[ name ] ? name : null :
			attr.specified ? attr.value : null :
		null;
};

Sizzle.error = function( msg ) {
	throw new Error( "Syntax error, unrecognized expression: " + msg );
};

// Check if the JavaScript engine is using some sort of
// optimization where it does not always call our comparision
// function. If that is the case, discard the hasDuplicate value.
//   Thus far that includes Google Chrome.
[0, 0].sort(function() {
	return (baseHasDuplicate = 0);
});


if ( docElem.compareDocumentPosition ) {
	sortOrder = function( a, b ) {
		if ( a === b ) {
			hasDuplicate = true;
			return 0;
		}

		return ( !a.compareDocumentPosition || !b.compareDocumentPosition ?
			a.compareDocumentPosition :
			a.compareDocumentPosition(b) & 4
		) ? -1 : 1;
	};

} else {
	sortOrder = function( a, b ) {
		// The nodes are identical, we can exit early
		if ( a === b ) {
			hasDuplicate = true;
			return 0;

		// Fallback to using sourceIndex (in IE) if it's available on both nodes
		} else if ( a.sourceIndex && b.sourceIndex ) {
			return a.sourceIndex - b.sourceIndex;
		}

		var al, bl,
			ap = [],
			bp = [],
			aup = a.parentNode,
			bup = b.parentNode,
			cur = aup;

		// If the nodes are siblings (or identical) we can do a quick check
		if ( aup === bup ) {
			return siblingCheck( a, b );

		// If no parents were found then the nodes are disconnected
		} else if ( !aup ) {
			return -1;

		} else if ( !bup ) {
			return 1;
		}

		// Otherwise they're somewhere else in the tree so we need
		// to build up a full list of the parentNodes for comparison
		while ( cur ) {
			ap.unshift( cur );
			cur = cur.parentNode;
		}

		cur = bup;

		while ( cur ) {
			bp.unshift( cur );
			cur = cur.parentNode;
		}

		al = ap.length;
		bl = bp.length;

		// Start walking down the tree looking for a discrepancy
		for ( var i = 0; i < al && i < bl; i++ ) {
			if ( ap[i] !== bp[i] ) {
				return siblingCheck( ap[i], bp[i] );
			}
		}

		// We ended someplace up the tree so do a sibling check
		return i === al ?
			siblingCheck( a, bp[i], -1 ) :
			siblingCheck( ap[i], b, 1 );
	};

	siblingCheck = function( a, b, ret ) {
		if ( a === b ) {
			return ret;
		}

		var cur = a.nextSibling;

		while ( cur ) {
			if ( cur === b ) {
				return -1;
			}

			cur = cur.nextSibling;
		}

		return 1;
	};
}

// Document sorting and removing duplicates
Sizzle.uniqueSort = function( results ) {
	var elem,
		i = 1;

	if ( sortOrder ) {
		hasDuplicate = baseHasDuplicate;
		results.sort( sortOrder );

		if ( hasDuplicate ) {
			for ( ; (elem = results[i]); i++ ) {
				if ( elem === results[ i - 1 ] ) {
					results.splice( i--, 1 );
				}
			}
		}
	}

	return results;
};

function multipleContexts( selector, contexts, results, seed ) {
	var i = 0,
		len = contexts.length;
	for ( ; i < len; i++ ) {
		Sizzle( selector, contexts[i], results, seed );
	}
}

function handlePOSGroup( selector, posfilter, argument, contexts, seed, not ) {
	var results,
		fn = Expr.setFilters[ posfilter.toLowerCase() ];

	if ( !fn ) {
		Sizzle.error( posfilter );
	}

	if ( selector || !(results = seed) ) {
		multipleContexts( selector || "*", contexts, (results = []), seed );
	}

	return results.length > 0 ? fn( results, argument, not ) : [];
}

function handlePOS( selector, context, results, seed, groups ) {
	var match, not, anchor, ret, elements, currentContexts, part, lastIndex,
		i = 0,
		len = groups.length,
		rpos = matchExpr["POS"],
		// This is generated here in case matchExpr["POS"] is extended
		rposgroups = new RegExp( "^" + rpos.source + "(?!" + whitespace + ")", "i" ),
		// This is for making sure non-participating
		// matching groups are represented cross-browser (IE6-8)
		setUndefined = function() {
			var i = 1,
				len = arguments.length - 2;
			for ( ; i < len; i++ ) {
				if ( arguments[i] === undefined ) {
					match[i] = undefined;
				}
			}
		};

	for ( ; i < len; i++ ) {
		// Reset regex index to 0
		rpos.exec("");
		selector = groups[i];
		ret = [];
		anchor = 0;
		elements = seed;
		while ( (match = rpos.exec( selector )) ) {
			lastIndex = rpos.lastIndex = match.index + match[0].length;
			if ( lastIndex > anchor ) {
				part = selector.slice( anchor, match.index );
				anchor = lastIndex;
				currentContexts = [ context ];

				if ( rcombinators.test(part) ) {
					if ( elements ) {
						currentContexts = elements;
					}
					elements = seed;
				}

				if ( (not = rendsWithNot.test( part )) ) {
					part = part.slice( 0, -5 ).replace( rcombinators, "$&*" );
				}

				if ( match.length > 1 ) {
					match[0].replace( rposgroups, setUndefined );
				}
				elements = handlePOSGroup( part, match[1], match[2], currentContexts, elements, not );
			}
		}

		if ( elements ) {
			ret = ret.concat( elements );

			if ( (part = selector.slice( anchor )) && part !== ")" ) {
				if ( rcombinators.test(part) ) {
					multipleContexts( part, ret, results, seed );
				} else {
					Sizzle( part, context, results, seed ? seed.concat(elements) : elements );
				}
			} else {
				push.apply( results, ret );
			}
		} else {
			Sizzle( selector, context, results, seed );
		}
	}

	// Do not sort if this is a single filter
	return len === 1 ? results : Sizzle.uniqueSort( results );
}

function tokenize( selector, context, xml ) {
	var tokens, soFar, type,
		groups = [],
		i = 0,

		// Catch obvious selector issues: terminal ")"; nonempty fallback match
		// rselector never fails to match *something*
		match = rselector.exec( selector ),
		matched = !match.pop() && !match.pop(),
		selectorGroups = matched && selector.match( rgroups ) || [""],

		preFilters = Expr.preFilter,
		filters = Expr.filter,
		checkContext = !xml && context !== document;

	for ( ; (soFar = selectorGroups[i]) != null && matched; i++ ) {
		groups.push( tokens = [] );

		// Need to make sure we're within a narrower context if necessary
		// Adding a descendant combinator will generate what is needed
		if ( checkContext ) {
			soFar = " " + soFar;
		}

		while ( soFar ) {
			matched = false;

			// Combinators
			if ( (match = rcombinators.exec( soFar )) ) {
				soFar = soFar.slice( match[0].length );

				// Cast descendant combinators to space
				matched = tokens.push({ part: match.pop().replace( rtrim, " " ), captures: match });
			}

			// Filters
			for ( type in filters ) {
				if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
					(match = preFilters[ type ]( match, context, xml )) ) ) {

					soFar = soFar.slice( match.shift().length );
					matched = tokens.push({ part: type, captures: match });
				}
			}

			if ( !matched ) {
				break;
			}
		}
	}

	if ( !matched ) {
		Sizzle.error( selector );
	}

	return groups;
}

function addCombinator( matcher, combinator, context ) {
	var dir = combinator.dir,
		doneName = done++;

	if ( !matcher ) {
		// If there is no matcher to check, check against the context
		matcher = function( elem ) {
			return elem === context;
		};
	}
	return combinator.first ?
		function( elem, context ) {
			while ( (elem = elem[ dir ]) ) {
				if ( elem.nodeType === 1 ) {
					return matcher( elem, context ) && elem;
				}
			}
		} :
		function( elem, context ) {
			var cache,
				dirkey = doneName + "." + dirruns,
				cachedkey = dirkey + "." + cachedruns;
			while ( (elem = elem[ dir ]) ) {
				if ( elem.nodeType === 1 ) {
					if ( (cache = elem[ expando ]) === cachedkey ) {
						return elem.sizset;
					} else if ( typeof cache === "string" && cache.indexOf(dirkey) === 0 ) {
						if ( elem.sizset ) {
							return elem;
						}
					} else {
						elem[ expando ] = cachedkey;
						if ( matcher( elem, context ) ) {
							elem.sizset = true;
							return elem;
						}
						elem.sizset = false;
					}
				}
			}
		};
}

function addMatcher( higher, deeper ) {
	return higher ?
		function( elem, context ) {
			var result = deeper( elem, context );
			return result && higher( result === true ? elem : result, context );
		} :
		deeper;
}

// ["TAG", ">", "ID", " ", "CLASS"]
function matcherFromTokens( tokens, context, xml ) {
	var token, matcher,
		i = 0;

	for ( ; (token = tokens[i]); i++ ) {
		if ( Expr.relative[ token.part ] ) {
			matcher = addCombinator( matcher, Expr.relative[ token.part ], context );
		} else {
			token.captures.push( context, xml );
			matcher = addMatcher( matcher, Expr.filter[ token.part ].apply( null, token.captures ) );
		}
	}

	return matcher;
}

function matcherFromGroupMatchers( matchers ) {
	return function( elem, context ) {
		var matcher,
			j = 0;
		for ( ; (matcher = matchers[j]); j++ ) {
			if ( matcher(elem, context) ) {
				return true;
			}
		}
		return false;
	};
}

var compile = Sizzle.compile = function( selector, context, xml ) {
	var tokens, group, i,
		cached = compilerCache[ selector ];

	// Return a cached group function if already generated (context dependent)
	if ( cached && cached.context === context ) {
		return cached;
	}

	// Generate a function of recursive functions that can be used to check each element
	group = tokenize( selector, context, xml );
	for ( i = 0; (tokens = group[i]); i++ ) {
		group[i] = matcherFromTokens( tokens, context, xml );
	}

	// Cache the compiled function
	cached = compilerCache[ selector ] = matcherFromGroupMatchers( group );
	cached.context = context;
	cached.runs = cached.dirruns = 0;
	cachedSelectors.push( selector );
	// Ensure only the most recent are cached
	if ( cachedSelectors.length > Expr.cacheLength ) {
		delete compilerCache[ cachedSelectors.shift() ];
	}
	return cached;
};

Sizzle.matches = function( expr, elements ) {
	return Sizzle( expr, null, null, elements );
};

Sizzle.matchesSelector = function( elem, expr ) {
	return Sizzle( expr, null, null, [ elem ] ).length > 0;
};

var select = function( selector, context, results, seed, xml ) {
	// Remove excessive whitespace
	selector = selector.replace( rtrim, "$1" );
	var elements, matcher, i, len, elem, token,
		type, findContext, notTokens,
		match = selector.match( rgroups ),
		tokens = selector.match( rtokens ),
		contextNodeType = context.nodeType;

	// POS handling
	if ( matchExpr["POS"].test(selector) ) {
		return handlePOS( selector, context, results, seed, match );
	}

	if ( seed ) {
		elements = slice.call( seed, 0 );

	// To maintain document order, only narrow the
	// set if there is one group
	} else if ( match && match.length === 1 ) {

		// Take a shortcut and set the context if the root selector is an ID
		if ( tokens.length > 1 && contextNodeType === 9 && !xml &&
				(match = matchExpr["ID"].exec( tokens[0] )) ) {

			context = Expr.find["ID"]( match[1], context, xml )[0];
			if ( !context ) {
				return results;
			}

			selector = selector.slice( tokens.shift().length );
		}

		findContext = ( (match = rsibling.exec( tokens[0] )) && !match.index && context.parentNode ) || context;

		// Get the last token, excluding :not
		notTokens = tokens.pop();
		token = notTokens.split(":not")[0];

		for ( i = 0, len = Expr.order.length; i < len; i++ ) {
			type = Expr.order[i];

			if ( (match = matchExpr[ type ].exec( token )) ) {
				elements = Expr.find[ type ]( (match[1] || "").replace( rbackslash, "" ), findContext, xml );

				if ( elements == null ) {
					continue;
				}

				if ( token === notTokens ) {
					selector = selector.slice( 0, selector.length - notTokens.length ) +
						token.replace( matchExpr[ type ], "" );

					if ( !selector ) {
						push.apply( results, slice.call(elements, 0) );
					}
				}
				break;
			}
		}
	}

	// Only loop over the given elements once
	// If selector is empty, we're already done
	if ( selector ) {
		matcher = compile( selector, context, xml );
		dirruns = matcher.dirruns++;

		if ( elements == null ) {
			elements = Expr.find["TAG"]( "*", (rsibling.test( selector ) && context.parentNode) || context );
		}
		for ( i = 0; (elem = elements[i]); i++ ) {
			cachedruns = matcher.runs++;
			if ( matcher(elem, context) ) {
				results.push( elem );
			}
		}
	}

	return results;
};

if ( document.querySelectorAll ) {
	(function() {
		var disconnectedMatch,
			oldSelect = select,
			rescape = /'|\\/g,
			rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
			rbuggyQSA = [],
			// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
			// A support test would require too much code (would include document ready)
			// just skip matchesSelector for :active
			rbuggyMatches = [":active"],
			matches = docElem.matchesSelector ||
				docElem.mozMatchesSelector ||
				docElem.webkitMatchesSelector ||
				docElem.oMatchesSelector ||
				docElem.msMatchesSelector;

		// Build QSA regex
		// Regex strategy adopted from Diego Perini
		assert(function( div ) {
			div.innerHTML = "<select><option selected></option></select>";

			// IE8 - Some boolean attributes are not treated correctly
			if ( !div.querySelectorAll("[selected]").length ) {
				rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" );
			}

			// Webkit/Opera - :checked should return selected option elements
			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
			// IE8 throws error here (do not put tests after this one)
			if ( !div.querySelectorAll(":checked").length ) {
				rbuggyQSA.push(":checked");
			}
		});

		assert(function( div ) {

			// Opera 10-12/IE9 - ^= $= *= and empty values
			// Should not select anything
			div.innerHTML = "<p test=''></p>";
			if ( div.querySelectorAll("[test^='']").length ) {
				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" );
			}

			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
			// IE8 throws error here (do not put tests after this one)
			div.innerHTML = "<input type='hidden'>";
			if ( !div.querySelectorAll(":enabled").length ) {
				rbuggyQSA.push(":enabled", ":disabled");
			}
		});

		rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );

		select = function( selector, context, results, seed, xml ) {
			// Only use querySelectorAll when not filtering,
			// when this is not xml,
			// and when no QSA bugs apply
			if ( !seed && !xml && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
				if ( context.nodeType === 9 ) {
					try {
						push.apply( results, slice.call(context.querySelectorAll( selector ), 0) );
						return results;
					} catch(qsaError) {}
				// qSA works strangely on Element-rooted queries
				// We can work around this by specifying an extra ID on the root
				// and working up from there (Thanks to Andrew Dupont for the technique)
				// IE 8 doesn't work on object elements
				} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
					var old = context.getAttribute("id"),
						nid = old || expando,
						newContext = rsibling.test( selector ) && context.parentNode || context;

					if ( old ) {
						nid = nid.replace( rescape, "\\$&" );
					} else {
						context.setAttribute( "id", nid );
					}

					try {
						push.apply( results, slice.call( newContext.querySelectorAll(
							selector.replace( rgroups, "[id='" + nid + "'] $&" )
						), 0 ) );
						return results;
					} catch(qsaError) {
					} finally {
						if ( !old ) {
							context.removeAttribute("id");
						}
					}
				}
			}

			return oldSelect( selector, context, results, seed, xml );
		};

		if ( matches ) {
			assert(function( div ) {
				// Check to see if it's possible to do matchesSelector
				// on a disconnected node (IE 9)
				disconnectedMatch = matches.call( div, "div" );

				// This should fail with an exception
				// Gecko does not error, returns false instead
				try {
					matches.call( div, "[test!='']:sizzle" );
					rbuggyMatches.push( Expr.match.PSEUDO );
				} catch ( e ) {}
			});

			// rbuggyMatches always contains :active, so no need for a length check
			rbuggyMatches = /* rbuggyMatches.length && */ new RegExp( rbuggyMatches.join("|") );

			Sizzle.matchesSelector = function( elem, expr ) {
				// Make sure that attribute selectors are quoted
				expr = expr.replace( rattributeQuotes, "='$1']" );

				// rbuggyMatches always contains :active, so no need for an existence check
				if ( !isXML( elem ) && !rbuggyMatches.test( expr ) && (!rbuggyQSA || !rbuggyQSA.test( expr )) ) {
					try {
						var ret = matches.call( elem, expr );

						// IE 9's matchesSelector returns false on disconnected nodes
						if ( ret || disconnectedMatch ||
								// 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) {}
				}

				return Sizzle( expr, null, null, [ elem ] ).length > 0;
			};
		}
	})();
}

// Override sizzle attribute retrieval
Sizzle.attr = jQuery.attr;
jQuery.find = Sizzle;
jQuery.expr = Sizzle.selectors;
jQuery.expr[":"] = jQuery.expr.pseudos;
jQuery.unique = Sizzle.uniqueSort;
jQuery.text = Sizzle.getText;
jQuery.isXMLDoc = Sizzle.isXML;
jQuery.contains = Sizzle.contains;


})( window );
var runtil = /Until$/,
	rparentsprev = /^(?:parents|prev(?:Until|All))/,
	isSimple = /^.[^:#\[\.,]*$/,
	rneedsContext = jQuery.expr.match.needsContext,
	// methods guaranteed to produce a unique set when starting from a unique set
	guaranteedUnique = {
		children: true,
		contents: true,
		next: true,
		prev: true
	};

jQuery.fn.extend({
	find: function( selector ) {
		var i, l, length, n, r, ret,
			self = this;

		if ( typeof selector !== "string" ) {
			return jQuery( selector ).filter(function() {
				for ( i = 0, l = self.length; i < l; i++ ) {
					if ( jQuery.contains( self[ i ], this ) ) {
						return true;
					}
				}
			});
		}

		ret = this.pushStack( "", "find", selector );

		for ( i = 0, l = this.length; i < l; i++ ) {
			length = ret.length;
			jQuery.find( selector, this[i], ret );

			if ( i > 0 ) {
				// Make sure that the results are unique
				for ( n = length; n < ret.length; n++ ) {
					for ( r = 0; r < length; r++ ) {
						if ( ret[r] === ret[n] ) {
							ret.splice(n--, 1);
							break;
						}
					}
				}
			}
		}

		return ret;
	},

	has: function( target ) {
		var i,
			targets = jQuery( target, this ),
			len = targets.length;

		return this.filter(function() {
			for ( i = 0; i < len; i++ ) {
				if ( jQuery.contains( this, targets[i] ) ) {
					return true;
				}
			}
		});
	},

	not: function( selector ) {
		return this.pushStack( winnow(this, selector, false), "not", selector);
	},

	filter: function( selector ) {
		return this.pushStack( winnow(this, selector, true), "filter", selector );
	},

	is: function( selector ) {
		return !!selector && (
			typeof selector === "string" ?
				// If this is a positional/relative selector, check membership in the returned set
				// so $("p:first").is("p:last") won't return true for a doc with two "p".
				rneedsContext.test( selector ) ?
					jQuery( selector, this.context ).index( this[0] ) >= 0 :
					jQuery.filter( selector, this ).length > 0 :
				this.filter( selector ).length > 0 );
	},

	closest: function( selectors, context ) {
		var cur,
			i = 0,
			l = this.length,
			ret = [],
			pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
				jQuery( selectors, context || this.context ) :
				0;

		for ( ; i < l; i++ ) {
			cur = this[i];

			while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) {
				if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
					ret.push( cur );
					break;
				}
				cur = cur.parentNode;
			}
		}

		ret = ret.length > 1 ? jQuery.unique( ret ) : ret;

		return this.pushStack( ret, "closest", selectors );
	},

	// Determine the position of an element within
	// the matched set of elements
	index: function( elem ) {

		// No argument, return index in parent
		if ( !elem ) {
			return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
		}

		// index in selector
		if ( typeof elem === "string" ) {
			return jQuery.inArray( this[0], jQuery( elem ) );
		}

		// Locate the position of the desired element
		return jQuery.inArray(
			// If it receives a jQuery object, the first element is used
			elem.jquery ? elem[0] : elem, this );
	},

	add: function( selector, context ) {
		var set = typeof selector === "string" ?
				jQuery( selector, context ) :
				jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
			all = jQuery.merge( this.get(), set );

		return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
			all :
			jQuery.unique( all ) );
	},

	addBack: function( selector ) {
		return this.add( selector == null ?
			this.prevObject : this.prevObject.filter(selector)
		);
	}
});

jQuery.fn.andSelf = jQuery.fn.addBack;

// A painfully simple check to see if an element is disconnected
// from a document (should be improved, where feasible).
function isDisconnected( node ) {
	return !node || !node.parentNode || node.parentNode.nodeType === 11;
}

function sibling( cur, dir ) {
	do {
		cur = cur[ dir ];
	} while ( cur && cur.nodeType !== 1 );

	return cur;
}

jQuery.each({
	parent: function( elem ) {
		var parent = elem.parentNode;
		return parent && parent.nodeType !== 11 ? parent : null;
	},
	parents: function( elem ) {
		return jQuery.dir( elem, "parentNode" );
	},
	parentsUntil: function( elem, i, until ) {
		return jQuery.dir( elem, "parentNode", until );
	},
	next: function( elem ) {
		return sibling( elem, "nextSibling" );
	},
	prev: function( elem ) {
		return sibling( elem, "previousSibling" );
	},
	nextAll: function( elem ) {
		return jQuery.dir( elem, "nextSibling" );
	},
	prevAll: function( elem ) {
		return jQuery.dir( elem, "previousSibling" );
	},
	nextUntil: function( elem, i, until ) {
		return jQuery.dir( elem, "nextSibling", until );
	},
	prevUntil: function( elem, i, until ) {
		return jQuery.dir( elem, "previousSibling", until );
	},
	siblings: function( elem ) {
		return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
	},
	children: function( elem ) {
		return jQuery.sibling( elem.firstChild );
	},
	contents: function( elem ) {
		return jQuery.nodeName( elem, "iframe" ) ?
			elem.contentDocument || elem.contentWindow.document :
			jQuery.merge( [], elem.childNodes );
	}
}, function( name, fn ) {
	jQuery.fn[ name ] = function( until, selector ) {
		var ret = jQuery.map( this, fn, until );

		if ( !runtil.test( name ) ) {
			selector = until;
		}

		if ( selector && typeof selector === "string" ) {
			ret = jQuery.filter( selector, ret );
		}

		ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;

		if ( this.length > 1 && rparentsprev.test( name ) ) {
			ret = ret.reverse();
		}

		return this.pushStack( ret, name, core_slice.call( arguments ).join(",") );
	};
});

jQuery.extend({
	filter: function( expr, elems, not ) {
		if ( not ) {
			expr = ":not(" + expr + ")";
		}

		return elems.length === 1 ?
			jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
			jQuery.find.matches(expr, elems);
	},

	dir: function( elem, dir, until ) {
		var matched = [],
			cur = elem[ dir ];

		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
			if ( cur.nodeType === 1 ) {
				matched.push( cur );
			}
			cur = cur[dir];
		}
		return matched;
	},

	sibling: function( n, elem ) {
		var r = [];

		for ( ; n; n = n.nextSibling ) {
			if ( n.nodeType === 1 && n !== elem ) {
				r.push( n );
			}
		}

		return r;
	}
});

// Implement the identical functionality for filter and not
function winnow( elements, qualifier, keep ) {

	// Can't pass null or undefined to indexOf in Firefox 4
	// Set to 0 to skip string check
	qualifier = qualifier || 0;

	if ( jQuery.isFunction( qualifier ) ) {
		return jQuery.grep(elements, function( elem, i ) {
			var retVal = !!qualifier.call( elem, i, elem );
			return retVal === keep;
		});

	} else if ( qualifier.nodeType ) {
		return jQuery.grep(elements, function( elem, i ) {
			return ( elem === qualifier ) === keep;
		});

	} else if ( typeof qualifier === "string" ) {
		var filtered = jQuery.grep(elements, function( elem ) {
			return elem.nodeType === 1;
		});

		if ( isSimple.test( qualifier ) ) {
			return jQuery.filter(qualifier, filtered, !keep);
		} else {
			qualifier = jQuery.filter( qualifier, filtered );
		}
	}

	return jQuery.grep(elements, function( elem, i ) {
		return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep;
	});
}
function createSafeFragment( document ) {
	var list = nodeNames.split( "|" ),
	safeFrag = document.createDocumentFragment();

	if ( safeFrag.createElement ) {
		while ( list.length ) {
			safeFrag.createElement(
				list.pop()
			);
		}
	}
	return safeFrag;
}

var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
		"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
	rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
	rleadingWhitespace = /^\s+/,
	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
	rtagName = /<([\w:]+)/,
	rtbody = /<tbody/i,
	rhtml = /<|&#?\w+;/,
	rnoInnerhtml = /<(?:script|style|link)/i,
	rnocache = /<(?:script|object|embed|option|style)/i,
	rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"),
	rcheckableType = /^(?:checkbox|radio)$/,
	// checked="checked" or checked
	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
	rscriptType = /\/(java|ecma)script/i,
	rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,
	wrapMap = {
		option: [ 1, "<select multiple='multiple'>", "</select>" ],
		legend: [ 1, "<fieldset>", "</fieldset>" ],
		thead: [ 1, "<table>", "</table>" ],
		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
		area: [ 1, "<map>", "</map>" ],
		_default: [ 0, "", "" ]
	},
	safeFragment = createSafeFragment( document ),
	fragmentDiv = safeFragment.appendChild( document.createElement("div") );

wrapMap.optgroup = wrapMap.option;
wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
wrapMap.th = wrapMap.td;

// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
// unless wrapped in a div with non-breaking characters in front of it.
if ( !jQuery.support.htmlSerialize ) {
	wrapMap._default = [ 1, "X<div>", "</div>" ];
}

jQuery.fn.extend({
	text: function( value ) {
		return jQuery.access( this, function( value ) {
			return value === undefined ?
				jQuery.text( this ) :
				this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );
		}, null, value, arguments.length );
	},

	wrapAll: function( html ) {
		if ( jQuery.isFunction( html ) ) {
			return this.each(function(i) {
				jQuery(this).wrapAll( html.call(this, i) );
			});
		}

		if ( this[0] ) {
			// The elements to wrap the target around
			var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);

			if ( this[0].parentNode ) {
				wrap.insertBefore( this[0] );
			}

			wrap.map(function() {
				var elem = this;

				while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
					elem = elem.firstChild;
				}

				return elem;
			}).append( this );
		}

		return this;
	},

	wrapInner: function( html ) {
		if ( jQuery.isFunction( html ) ) {
			return this.each(function(i) {
				jQuery(this).wrapInner( html.call(this, i) );
			});
		}

		return this.each(function() {
			var self = jQuery( this ),
				contents = self.contents();

			if ( contents.length ) {
				contents.wrapAll( html );

			} else {
				self.append( html );
			}
		});
	},

	wrap: function( html ) {
		var isFunction = jQuery.isFunction( html );

		return this.each(function(i) {
			jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
		});
	},

	unwrap: function() {
		return this.parent().each(function() {
			if ( !jQuery.nodeName( this, "body" ) ) {
				jQuery( this ).replaceWith( this.childNodes );
			}
		}).end();
	},

	append: function() {
		return this.domManip(arguments, true, function( elem ) {
			if ( this.nodeType === 1 || this.nodeType === 11 ) {
				this.appendChild( elem );
			}
		});
	},

	prepend: function() {
		return this.domManip(arguments, true, function( elem ) {
			if ( this.nodeType === 1 || this.nodeType === 11 ) {
				this.insertBefore( elem, this.firstChild );
			}
		});
	},

	before: function() {
		if ( !isDisconnected( this[0] ) ) {
			return this.domManip(arguments, false, function( elem ) {
				this.parentNode.insertBefore( elem, this );
			});
		}

		if ( arguments.length ) {
			var set = jQuery.clean( arguments );
			return this.pushStack( jQuery.merge( set, this ), "before", this.selector );
		}
	},

	after: function() {
		if ( !isDisconnected( this[0] ) ) {
			return this.domManip(arguments, false, function( elem ) {
				this.parentNode.insertBefore( elem, this.nextSibling );
			});
		}

		if ( arguments.length ) {
			var set = jQuery.clean( arguments );
			return this.pushStack( jQuery.merge( this, set ), "after", this.selector );
		}
	},

	// keepData is for internal use only--do not document
	remove: function( selector, keepData ) {
		var elem,
			i = 0;

		for ( ; (elem = this[i]) != null; i++ ) {
			if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
				if ( !keepData && elem.nodeType === 1 ) {
					jQuery.cleanData( elem.getElementsByTagName("*") );
					jQuery.cleanData( [ elem ] );
				}

				if ( elem.parentNode ) {
					elem.parentNode.removeChild( elem );
				}
			}
		}

		return this;
	},

	empty: function() {
		var elem,
			i = 0;

		for ( ; (elem = this[i]) != null; i++ ) {
			// Remove element nodes and prevent memory leaks
			if ( elem.nodeType === 1 ) {
				jQuery.cleanData( elem.getElementsByTagName("*") );
			}

			// Remove any remaining nodes
			while ( elem.firstChild ) {
				elem.removeChild( elem.firstChild );
			}
		}

		return this;
	},

	clone: function( dataAndEvents, deepDataAndEvents ) {
		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;

		return this.map( function () {
			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
		});
	},

	html: function( value ) {
		return jQuery.access( this, function( value ) {
			var elem = this[0] || {},
				i = 0,
				l = this.length;

			if ( value === undefined ) {
				return elem.nodeType === 1 ?
					elem.innerHTML.replace( rinlinejQuery, "" ) :
					undefined;
			}

			// See if we can take a shortcut and just use innerHTML
			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
				( jQuery.support.htmlSerialize || !rnoshimcache.test( value )  ) &&
				( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
				!wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) {

				value = value.replace( rxhtmlTag, "<$1></$2>" );

				try {
					for (; i < l; i++ ) {
						// Remove element nodes and prevent memory leaks
						elem = this[i] || {};
						if ( elem.nodeType === 1 ) {
							jQuery.cleanData( elem.getElementsByTagName( "*" ) );
							elem.innerHTML = value;
						}
					}

					elem = 0;

				// If using innerHTML throws an exception, use the fallback method
				} catch(e) {}
			}

			if ( elem ) {
				this.empty().append( value );
			}
		}, null, value, arguments.length );
	},

	replaceWith: function( value ) {
		if ( !isDisconnected( this[0] ) ) {
			// Make sure that the elements are removed from the DOM before they are inserted
			// this can help fix replacing a parent with child elements
			if ( jQuery.isFunction( value ) ) {
				return this.each(function(i) {
					var self = jQuery(this), old = self.html();
					self.replaceWith( value.call( this, i, old ) );
				});
			}

			if ( typeof value !== "string" ) {
				value = jQuery( value ).detach();
			}

			return this.each(function() {
				var next = this.nextSibling,
					parent = this.parentNode;

				jQuery( this ).remove();

				if ( next ) {
					jQuery(next).before( value );
				} else {
					jQuery(parent).append( value );
				}
			});
		}

		return this.length ?
			this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
			this;
	},

	detach: function( selector ) {
		return this.remove( selector, true );
	},

	domManip: function( args, table, callback ) {

		// Flatten any nested arrays
		args = [].concat.apply( [], args );

		var results, first, fragment, iNoClone,
			i = 0,
			value = args[0],
			scripts = [],
			l = this.length;

		// We can't cloneNode fragments that contain checked, in WebKit
		if ( !jQuery.support.checkClone && l > 1 && typeof value === "string" && rchecked.test( value ) ) {
			return this.each(function() {
				jQuery(this).domManip( args, table, callback );
			});
		}

		if ( jQuery.isFunction(value) ) {
			return this.each(function(i) {
				var self = jQuery(this);
				args[0] = value.call( this, i, table ? self.html() : undefined );
				self.domManip( args, table, callback );
			});
		}

		if ( this[0] ) {
			results = jQuery.buildFragment( args, this, scripts );
			fragment = results.fragment;
			first = fragment.firstChild;

			if ( fragment.childNodes.length === 1 ) {
				fragment = first;
			}

			if ( first ) {
				table = table && jQuery.nodeName( first, "tr" );

				// Use the original fragment for the last item instead of the first because it can end up
				// being emptied incorrectly in certain situations (#8070).
				// Fragments from the fragment cache must always be cloned and never used in place.
				for ( iNoClone = results.cacheable || l - 1; i < l; i++ ) {
					callback.call(
						table && jQuery.nodeName( this[i], "table" ) ?
							findOrAppend( this[i], "tbody" ) :
							this[i],
						i === iNoClone ?
							fragment :
							jQuery.clone( fragment, true, true )
					);
				}
			}

			// Fix #11809: Avoid leaking memory
			fragment = first = null;

			if ( scripts.length ) {
				jQuery.each( scripts, function( i, elem ) {
					if ( elem.src ) {
						if ( jQuery.ajax ) {
							jQuery.ajax({
								url: elem.src,
								type: "GET",
								dataType: "script",
								async: false,
								global: false,
								"throws": true
							});
						} else {
							jQuery.error("no ajax");
						}
					} else {
						jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "" ) );
					}

					if ( elem.parentNode ) {
						elem.parentNode.removeChild( elem );
					}
				});
			}
		}

		return this;
	}
});

function findOrAppend( elem, tag ) {
	return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) );
}

function cloneCopyEvent( src, dest ) {

	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
		return;
	}

	var type, i, l,
		oldData = jQuery._data( src ),
		curData = jQuery._data( dest, oldData ),
		events = oldData.events;

	if ( events ) {
		delete curData.handle;
		curData.events = {};

		for ( type in events ) {
			for ( i = 0, l = events[ type ].length; i < l; i++ ) {
				jQuery.event.add( dest, type, events[ type ][ i ] );
			}
		}
	}

	// make the cloned public data object a copy from the original
	if ( curData.data ) {
		curData.data = jQuery.extend( {}, curData.data );
	}
}

function cloneFixAttributes( src, dest ) {
	var nodeName;

	// We do not need to do anything for non-Elements
	if ( dest.nodeType !== 1 ) {
		return;
	}

	// clearAttributes removes the attributes, which we don't want,
	// but also removes the attachEvent events, which we *do* want
	if ( dest.clearAttributes ) {
		dest.clearAttributes();
	}

	// mergeAttributes, in contrast, only merges back on the
	// original attributes, not the events
	if ( dest.mergeAttributes ) {
		dest.mergeAttributes( src );
	}

	nodeName = dest.nodeName.toLowerCase();

	if ( nodeName === "object" ) {
		// IE6-10 improperly clones children of object elements using classid.
		// IE10 throws NoModificationAllowedError if parent is null, #12132.
		if ( dest.parentNode ) {
			dest.outerHTML = src.outerHTML;
		}

		// This path appears unavoidable for IE9. When cloning an object
		// element in IE9, the outerHTML strategy above is not sufficient.
		// If the src has innerHTML and the destination does not,
		// copy the src.innerHTML into the dest.innerHTML. #10324
		if ( jQuery.support.html5Clone && (src.innerHTML && !jQuery.trim(dest.innerHTML)) ) {
			dest.innerHTML = src.innerHTML;
		}

	} else if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
		// IE6-8 fails to persist the checked state of a cloned checkbox
		// or radio button. Worse, IE6-7 fail to give the cloned element
		// a checked appearance if the defaultChecked value isn't also set

		dest.defaultChecked = dest.checked = src.checked;

		// IE6-7 get confused and end up setting the value of a cloned
		// checkbox/radio button to an empty string instead of "on"
		if ( dest.value !== src.value ) {
			dest.value = src.value;
		}

	// IE6-8 fails to return the selected option to the default selected
	// state when cloning options
	} else if ( nodeName === "option" ) {
		dest.selected = src.defaultSelected;

	// IE6-8 fails to set the defaultValue to the correct value when
	// cloning other types of input fields
	} else if ( nodeName === "input" || nodeName === "textarea" ) {
		dest.defaultValue = src.defaultValue;

	// IE blanks contents when cloning scripts
	} else if ( nodeName === "script" && dest.text !== src.text ) {
		dest.text = src.text;
	}

	// Event data gets referenced instead of copied if the expando
	// gets copied too
	dest.removeAttribute( jQuery.expando );
}

jQuery.buildFragment = function( args, context, scripts ) {
	var fragment, cacheable, cachehit,
		first = args[ 0 ];

	// Set context from what may come in as undefined or a jQuery collection or a node
	context = context || document;
	context = (context[0] || context).ownerDocument || context[0] || context;

	// Ensure that an attr object doesn't incorrectly stand in as a document object
	// Chrome and Firefox seem to allow this to occur and will throw exception
	// Fixes #8950
	if ( typeof context.createDocumentFragment === "undefined" ) {
		context = document;
	}

	// Only cache "small" (1/2 KB) HTML strings that are associated with the main document
	// Cloning options loses the selected state, so don't cache them
	// IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
	// Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
	// Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501
	if ( args.length === 1 && typeof first === "string" && first.length < 512 && context === document &&
		first.charAt(0) === "<" && !rnocache.test( first ) &&
		(jQuery.support.checkClone || !rchecked.test( first )) &&
		(jQuery.support.html5Clone || !rnoshimcache.test( first )) ) {

		// Mark cacheable and look for a hit
		cacheable = true;
		fragment = jQuery.fragments[ first ];
		cachehit = fragment !== undefined;
	}

	if ( !fragment ) {
		fragment = context.createDocumentFragment();
		jQuery.clean( args, context, fragment, scripts );

		// Update the cache, but only store false
		// unless this is a second parsing of the same content
		if ( cacheable ) {
			jQuery.fragments[ first ] = cachehit && fragment;
		}
	}

	return { fragment: fragment, cacheable: cacheable };
};

jQuery.fragments = {};

jQuery.each({
	appendTo: "append",
	prependTo: "prepend",
	insertBefore: "before",
	insertAfter: "after",
	replaceAll: "replaceWith"
}, function( name, original ) {
	jQuery.fn[ name ] = function( selector ) {
		var elems,
			i = 0,
			ret = [],
			insert = jQuery( selector ),
			l = insert.length,
			parent = this.length === 1 && this[0].parentNode;

		if ( (parent == null || parent && parent.nodeType === 11 && parent.childNodes.length === 1) && l === 1 ) {
			insert[ original ]( this[0] );
			return this;
		} else {
			for ( ; i < l; i++ ) {
				elems = ( i > 0 ? this.clone(true) : this ).get();
				jQuery( insert[i] )[ original ]( elems );
				ret = ret.concat( elems );
			}

			return this.pushStack( ret, name, insert.selector );
		}
	};
});

function getAll( elem ) {
	if ( typeof elem.getElementsByTagName !== "undefined" ) {
		return elem.getElementsByTagName( "*" );

	} else if ( typeof elem.querySelectorAll !== "undefined" ) {
		return elem.querySelectorAll( "*" );

	} else {
		return [];
	}
}

// Used in clean, fixes the defaultChecked property
function fixDefaultChecked( elem ) {
	if ( rcheckableType.test( elem.type ) ) {
		elem.defaultChecked = elem.checked;
	}
}

jQuery.extend({
	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
		var srcElements,
			destElements,
			i,
			clone;

		if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
			clone = elem.cloneNode( true );

		// IE<=8 does not properly clone detached, unknown element nodes
		} else {
			fragmentDiv.innerHTML = elem.outerHTML;
			fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
		}

		if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
				(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
			// IE copies events bound via attachEvent when using cloneNode.
			// Calling detachEvent on the clone will also remove the events
			// from the original. In order to get around this, we use some
			// proprietary methods to clear the events. Thanks to MooTools
			// guys for this hotness.

			cloneFixAttributes( elem, clone );

			// Using Sizzle here is crazy slow, so we use getElementsByTagName instead
			srcElements = getAll( elem );
			destElements = getAll( clone );

			// Weird iteration because IE will replace the length property
			// with an element if you are cloning the body and one of the
			// elements on the page has a name or id of "length"
			for ( i = 0; srcElements[i]; ++i ) {
				// Ensure that the destination node is not null; Fixes #9587
				if ( destElements[i] ) {
					cloneFixAttributes( srcElements[i], destElements[i] );
				}
			}
		}

		// Copy the events from the original to the clone
		if ( dataAndEvents ) {
			cloneCopyEvent( elem, clone );

			if ( deepDataAndEvents ) {
				srcElements = getAll( elem );
				destElements = getAll( clone );

				for ( i = 0; srcElements[i]; ++i ) {
					cloneCopyEvent( srcElements[i], destElements[i] );
				}
			}
		}

		srcElements = destElements = null;

		// Return the cloned set
		return clone;
	},

	clean: function( elems, context, fragment, scripts ) {
		var j, safe, elem, tag, wrap, depth, div, hasBody, tbody, len, handleScript, jsTags,
			i = 0,
			ret = [];

		// Ensure that context is a document
		if ( !context || typeof context.createDocumentFragment === "undefined" ) {
			context = document;
		}

		// Use the already-created safe fragment if context permits
		for ( safe = context === document && safeFragment; (elem = elems[i]) != null; i++ ) {
			if ( typeof elem === "number" ) {
				elem += "";
			}

			if ( !elem ) {
				continue;
			}

			// Convert html string into DOM nodes
			if ( typeof elem === "string" ) {
				if ( !rhtml.test( elem ) ) {
					elem = context.createTextNode( elem );
				} else {
					// Ensure a safe container in which to render the html
					safe = safe || createSafeFragment( context );
					div = div || safe.appendChild( context.createElement("div") );

					// Fix "XHTML"-style tags in all browsers
					elem = elem.replace(rxhtmlTag, "<$1></$2>");

					// Go to html and back, then peel off extra wrappers
					tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase();
					wrap = wrapMap[ tag ] || wrapMap._default;
					depth = wrap[0];
					div.innerHTML = wrap[1] + elem + wrap[2];

					// Move to the right depth
					while ( depth-- ) {
						div = div.lastChild;
					}

					// Remove IE's autoinserted <tbody> from table fragments
					if ( !jQuery.support.tbody ) {

						// String was a <table>, *may* have spurious <tbody>
						hasBody = rtbody.test(elem);
							tbody = tag === "table" && !hasBody ?
								div.firstChild && div.firstChild.childNodes :

								// String was a bare <thead> or <tfoot>
								wrap[1] === "<table>" && !hasBody ?
									div.childNodes :
									[];

						for ( j = tbody.length - 1; j >= 0 ; --j ) {
							if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
								tbody[ j ].parentNode.removeChild( tbody[ j ] );
							}
						}
					}

					// IE completely kills leading whitespace when innerHTML is used
					if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
						div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
					}

					elem = div.childNodes;

					// Remember the top-level container for proper cleanup
					div = safe.lastChild;
				}
			}

			if ( elem.nodeType ) {
				ret.push( elem );
			} else {
				ret = jQuery.merge( ret, elem );
			}
		}

		// Fix #11356: Clear elements from safeFragment
		if ( div ) {
			safe.removeChild( div );
			elem = div = safe = null;
		}

		// Reset defaultChecked for any radios and checkboxes
		// about to be appended to the DOM in IE 6/7 (#8060)
		if ( !jQuery.support.appendChecked ) {
			for ( i = 0; (elem = ret[i]) != null; i++ ) {
				if ( jQuery.nodeName( elem, "input" ) ) {
					fixDefaultChecked( elem );
				} else if ( typeof elem.getElementsByTagName !== "undefined" ) {
					jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
				}
			}
		}

		// Append elements to a provided document fragment
		if ( fragment ) {
			// Special handling of each script element
			handleScript = function( elem ) {
				// Check if we consider it executable
				if ( !elem.type || rscriptType.test( elem.type ) ) {
					// Detach the script and store it in the scripts array (if provided) or the fragment
					// Return truthy to indicate that it has been handled
					return scripts ?
						scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) :
						fragment.appendChild( elem );
				}
			};

			for ( i = 0; (elem = ret[i]) != null; i++ ) {
				// Check if we're done after handling an executable script
				if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) {
					// Append to fragment and handle embedded scripts
					fragment.appendChild( elem );
					if ( typeof elem.getElementsByTagName !== "undefined" ) {
						// handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration
						jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript );

						// Splice the scripts into ret after their former ancestor and advance our index beyond them
						ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
						i += jsTags.length;
					}
				}
			}
		}

		return ret;
	},

	cleanData: function( elems, /* internal */ acceptData ) {
		var data, id, elem, type,
			i = 0,
			internalKey = jQuery.expando,
			cache = jQuery.cache,
			deleteExpando = jQuery.support.deleteExpando,
			special = jQuery.event.special;

		for ( ; (elem = elems[i]) != null; i++ ) {

			if ( acceptData || jQuery.acceptData( elem ) ) {

				id = elem[ internalKey ];
				data = id && cache[ id ];

				if ( data ) {
					if ( data.events ) {
						for ( type in data.events ) {
							if ( special[ type ] ) {
								jQuery.event.remove( elem, type );

							// This is a shortcut to avoid jQuery.event.remove's overhead
							} else {
								jQuery.removeEvent( elem, type, data.handle );
							}
						}
					}

					// Remove cache only if it was not already removed by jQuery.event.remove
					if ( cache[ id ] ) {

						delete cache[ id ];

						// IE does not allow us to delete expando properties from nodes,
						// nor does it have a removeAttribute function on Document nodes;
						// we must handle all of these cases
						if ( deleteExpando ) {
							delete elem[ internalKey ];

						} else if ( elem.removeAttribute ) {
							elem.removeAttribute( internalKey );

						} else {
							elem[ internalKey ] = null;
						}

						jQuery.deletedIds.push( id );
					}
				}
			}
		}
	}
});
// Limit scope pollution from any deprecated API
(function() {

var matched, browser;

// Use of jQuery.browser is frowned upon.
// More details: http://api.jquery.com/jQuery.browser
// jQuery.uaMatch maintained for back-compat
jQuery.uaMatch = function( ua ) {
	ua = ua.toLowerCase();

	var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
		/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
		/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
		/(msie) ([\w.]+)/.exec( ua ) ||
		ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
		[];

	return {
		browser: match[ 1 ] || "",
		version: match[ 2 ] || "0"
	};
};

matched = jQuery.uaMatch( navigator.userAgent );
browser = {};

if ( matched.browser ) {
	browser[ matched.browser ] = true;
	browser.version = matched.version;
}

// Deprecated, use jQuery.browser.webkit instead
// Maintained for back-compat only
if ( browser.webkit ) {
	browser.safari = true;
}

jQuery.browser = browser;

jQuery.sub = function() {
	function jQuerySub( selector, context ) {
		return new jQuerySub.fn.init( selector, context );
	}
	jQuery.extend( true, jQuerySub, this );
	jQuerySub.superclass = this;
	jQuerySub.fn = jQuerySub.prototype = this();
	jQuerySub.fn.constructor = jQuerySub;
	jQuerySub.sub = this.sub;
	jQuerySub.fn.init = function init( selector, context ) {
		if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
			context = jQuerySub( context );
		}

		return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
	};
	jQuerySub.fn.init.prototype = jQuerySub.fn;
	var rootjQuerySub = jQuerySub(document);
	return jQuerySub;
};
	
})();
var curCSS, iframe, iframeDoc,
	ralpha = /alpha\([^)]*\)/i,
	ropacity = /opacity=([^)]*)/,
	rposition = /^(top|right|bottom|left)$/,
	rmargin = /^margin/,
	rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ),
	rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ),
	rrelNum = new RegExp( "^([-+])=(" + core_pnum + ")", "i" ),
	elemdisplay = {},

	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
	cssNormalTransform = {
		letterSpacing: 0,
		fontWeight: 400,
		lineHeight: 1
	},

	cssExpand = [ "Top", "Right", "Bottom", "Left" ],
	cssPrefixes = [ "Webkit", "O", "Moz", "ms" ],

	eventsToggle = jQuery.fn.toggle;

// return a css property mapped to a potentially vendor prefixed property
function vendorPropName( style, name ) {

	// shortcut for names that are not vendor prefixed
	if ( name in style ) {
		return name;
	}

	// check for vendor prefixed names
	var capName = name.charAt(0).toUpperCase() + name.slice(1),
		origName = name,
		i = cssPrefixes.length;

	while ( i-- ) {
		name = cssPrefixes[ i ] + capName;
		if ( name in style ) {
			return name;
		}
	}

	return origName;
}

function isHidden( elem, el ) {
	elem = el || elem;
	return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
}

function showHide( elements, show ) {
	var elem, display,
		values = [],
		index = 0,
		length = elements.length;

	for ( ; index < length; index++ ) {
		elem = elements[ index ];
		if ( !elem.style ) {
			continue;
		}
		values[ index ] = jQuery._data( elem, "olddisplay" );
		if ( show ) {
			// Reset the inline display of this element to learn if it is
			// being hidden by cascaded rules or not
			if ( !values[ index ] && elem.style.display === "none" ) {
				elem.style.display = "";
			}

			// Set elements which have been overridden with display: none
			// in a stylesheet to whatever the default browser style is
			// for such an element
			if ( elem.style.display === "" && isHidden( elem ) ) {
				values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) );
			}
		} else {
			display = curCSS( elem, "display" );

			if ( !values[ index ] && display !== "none" ) {
				jQuery._data( elem, "olddisplay", display );
			}
		}
	}

	// Set the display of most of the elements in a second loop
	// to avoid the constant reflow
	for ( index = 0; index < length; index++ ) {
		elem = elements[ index ];
		if ( !elem.style ) {
			continue;
		}
		if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
			elem.style.display = show ? values[ index ] || "" : "none";
		}
	}

	return elements;
}

jQuery.fn.extend({
	css: function( name, value ) {
		return jQuery.access( this, function( elem, name, value ) {
			return value !== undefined ?
				jQuery.style( elem, name, value ) :
				jQuery.css( elem, name );
		}, name, value, arguments.length > 1 );
	},
	show: function() {
		return showHide( this, true );
	},
	hide: function() {
		return showHide( this );
	},
	toggle: function( state, fn2 ) {
		var bool = typeof state === "boolean";

		if ( jQuery.isFunction( state ) && jQuery.isFunction( fn2 ) ) {
			return eventsToggle.apply( this, arguments );
		}

		return this.each(function() {
			if ( bool ? state : isHidden( this ) ) {
				jQuery( this ).show();
			} else {
				jQuery( this ).hide();
			}
		});
	}
});

jQuery.extend({
	// Add in style property hooks for overriding the default
	// behavior of getting and setting a style property
	cssHooks: {
		opacity: {
			get: function( elem, computed ) {
				if ( computed ) {
					// We should always get a number back from opacity
					var ret = curCSS( elem, "opacity" );
					return ret === "" ? "1" : ret;

				}
			}
		}
	},

	// Exclude the following css properties to add px
	cssNumber: {
		"fillOpacity": true,
		"fontWeight": true,
		"lineHeight": true,
		"opacity": true,
		"orphans": true,
		"widows": true,
		"zIndex": true,
		"zoom": true
	},

	// Add in properties whose names you wish to fix before
	// setting or getting the value
	cssProps: {
		// normalize float css property
		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
	},

	// Get and set the style property on a DOM Node
	style: function( elem, name, value, extra ) {
		// Don't set styles on text and comment nodes
		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
			return;
		}

		// Make sure that we're working with the right name
		var ret, type, hooks,
			origName = jQuery.camelCase( name ),
			style = elem.style;

		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );

		// gets hook for the prefixed version
		// followed by the unprefixed version
		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];

		// Check if we're setting a value
		if ( value !== undefined ) {
			type = typeof value;

			// convert relative number strings (+= or -=) to relative numbers. #7345
			if ( type === "string" && (ret = rrelNum.exec( value )) ) {
				value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
				// Fixes bug #9237
				type = "number";
			}

			// Make sure that NaN and null values aren't set. See: #7116
			if ( value == null || type === "number" && isNaN( value ) ) {
				return;
			}

			// If a number was passed in, add 'px' to the (except for certain CSS properties)
			if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
				value += "px";
			}

			// If a hook was provided, use that value, otherwise just set the specified value
			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
				// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
				// Fixes bug #5509
				try {
					style[ name ] = value;
				} catch(e) {}
			}

		} else {
			// If a hook was provided get the non-computed value from there
			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
				return ret;
			}

			// Otherwise just get the value from the style object
			return style[ name ];
		}
	},

	css: function( elem, name, numeric, extra ) {
		var val, num, hooks,
			origName = jQuery.camelCase( name );

		// Make sure that we're working with the right name
		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );

		// gets hook for the prefixed version
		// followed by the unprefixed version
		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];

		// If a hook was provided get the computed value from there
		if ( hooks && "get" in hooks ) {
			val = hooks.get( elem, true, extra );
		}

		// Otherwise, if a way to get the computed value exists, use that
		if ( val === undefined ) {
			val = curCSS( elem, name );
		}

		//convert "normal" to computed value
		if ( val === "normal" && name in cssNormalTransform ) {
			val = cssNormalTransform[ name ];
		}

		// Return, converting to number if forced or a qualifier was provided and val looks numeric
		if ( numeric || extra !== undefined ) {
			num = parseFloat( val );
			return numeric || jQuery.isNumeric( num ) ? num || 0 : val;
		}
		return val;
	},

	// A method for quickly swapping in/out CSS properties to get correct calculations
	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;
	}
});

// NOTE: To any future maintainer, we've used both window.getComputedStyle
// and getComputedStyle here to produce a better gzip size
if ( window.getComputedStyle ) {
	curCSS = function( elem, name ) {
		var ret, width, minWidth, maxWidth,
			computed = getComputedStyle( elem, null ),
			style = elem.style;

		if ( computed ) {

			ret = computed[ name ];
			if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
				ret = jQuery.style( elem, name );
			}

			// A tribute to the "awesome hack by Dean Edwards"
			// Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right
			// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
			// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
			if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
				width = style.width;
				minWidth = style.minWidth;
				maxWidth = style.maxWidth;

				style.minWidth = style.maxWidth = style.width = ret;
				ret = computed.width;

				style.width = width;
				style.minWidth = minWidth;
				style.maxWidth = maxWidth;
			}
		}

		return ret;
	};
} else if ( document.documentElement.currentStyle ) {
	curCSS = function( elem, name ) {
		var left, rsLeft,
			ret = elem.currentStyle && elem.currentStyle[ name ],
			style = elem.style;

		// Avoid setting ret to empty string here
		// so we don't default to auto
		if ( ret == null && style && style[ name ] ) {
			ret = style[ name ];
		}

		// From the awesome hack by Dean Edwards
		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291

		// If we're not dealing with a regular pixel number
		// but a number that has a weird ending, we need to convert it to pixels
		// but not position css attributes, as those are proportional to the parent element instead
		// and we can't measure the parent instead because it might trigger a "stacking dolls" problem
		if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {

			// Remember the original values
			left = style.left;
			rsLeft = elem.runtimeStyle && elem.runtimeStyle.left;

			// Put in the new values to get a computed value out
			if ( rsLeft ) {
				elem.runtimeStyle.left = elem.currentStyle.left;
			}
			style.left = name === "fontSize" ? "1em" : ret;
			ret = style.pixelLeft + "px";

			// Revert the changed values
			style.left = left;
			if ( rsLeft ) {
				elem.runtimeStyle.left = rsLeft;
			}
		}

		return ret === "" ? "auto" : ret;
	};
}

function setPositiveNumber( elem, value, subtract ) {
	var matches = rnumsplit.exec( value );
	return matches ?
			Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
			value;
}

function augmentWidthOrHeight( elem, name, extra, isBorderBox ) {
	var i = extra === ( isBorderBox ? "border" : "content" ) ?
		// If we already have the right measurement, avoid augmentation
		4 :
		// Otherwise initialize for horizontal or vertical properties
		name === "width" ? 1 : 0,

		val = 0;

	for ( ; i < 4; i += 2 ) {
		// both box models exclude margin, so add it if we want it
		if ( extra === "margin" ) {
			// we use jQuery.css instead of curCSS here
			// because of the reliableMarginRight CSS hook!
			val += jQuery.css( elem, extra + cssExpand[ i ], true );
		}

		// From this point on we use curCSS for maximum performance (relevant in animations)
		if ( isBorderBox ) {
			// border-box includes padding, so remove it if we want content
			if ( extra === "content" ) {
				val -= parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0;
			}

			// at this point, extra isn't border nor margin, so remove border
			if ( extra !== "margin" ) {
				val -= parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
			}
		} else {
			// at this point, extra isn't content, so add padding
			val += parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0;

			// at this point, extra isn't content nor padding, so add border
			if ( extra !== "padding" ) {
				val += parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
			}
		}
	}

	return val;
}

function getWidthOrHeight( elem, name, extra ) {

	// Start with offset property, which is equivalent to the border-box value
	var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
		valueIsBorderBox = true,
		isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box";

	if ( val <= 0 ) {
		// Fall back to computed then uncomputed css if necessary
		val = curCSS( elem, name );
		if ( val < 0 || val == null ) {
			val = elem.style[ name ];
		}

		// Computed unit is not pixels. Stop here and return.
		if ( rnumnonpx.test(val) ) {
			return val;
		}

		// we need the check for style in case a browser which returns unreliable values
		// for getComputedStyle silently falls back to the reliable elem.style
		valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );

		// Normalize "", auto, and prepare for extra
		val = parseFloat( val ) || 0;
	}

	// use the active box-sizing model to add/subtract irrelevant styles
	return ( val +
		augmentWidthOrHeight(
			elem,
			name,
			extra || ( isBorderBox ? "border" : "content" ),
			valueIsBorderBox
		)
	) + "px";
}


// Try to determine the default display value of an element
function css_defaultDisplay( nodeName ) {
	if ( elemdisplay[ nodeName ] ) {
		return elemdisplay[ nodeName ];
	}

	var elem = jQuery( "<" + nodeName + ">" ).appendTo( document.body ),
		display = elem.css("display");
	elem.remove();

	// If the simple way fails,
	// get element's real default display by attaching it to a temp iframe
	if ( display === "none" || display === "" ) {
		// Use the already-created iframe if possible
		iframe = document.body.appendChild(
			iframe || jQuery.extend( document.createElement("iframe"), {
				frameBorder: 0,
				width: 0,
				height: 0
			})
		);

		// Create a cacheable copy of the iframe document on first call.
		// IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
		// document to it; WebKit & Firefox won't allow reusing the iframe document.
		if ( !iframeDoc || !iframe.createElement ) {
			iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
			iframeDoc.write("<!doctype html><html><body>");
			iframeDoc.close();
		}

		elem = iframeDoc.body.appendChild( iframeDoc.createElement(nodeName) );

		display = curCSS( elem, "display" );
		document.body.removeChild( iframe );
	}

	// Store the correct default display
	elemdisplay[ nodeName ] = display;

	return display;
}

jQuery.each([ "height", "width" ], function( i, name ) {
	jQuery.cssHooks[ name ] = {
		get: function( elem, computed, extra ) {
			if ( computed ) {
				if ( elem.offsetWidth !== 0 || curCSS( elem, "display" ) !== "none" ) {
					return getWidthOrHeight( elem, name, extra );
				} else {
					return jQuery.swap( elem, cssShow, function() {
						return getWidthOrHeight( elem, name, extra );
					});
				}
			}
		},

		set: function( elem, value, extra ) {
			return setPositiveNumber( elem, value, extra ?
				augmentWidthOrHeight(
					elem,
					name,
					extra,
					jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box"
				) : 0
			);
		}
	};
});

if ( !jQuery.support.opacity ) {
	jQuery.cssHooks.opacity = {
		get: function( elem, computed ) {
			// IE uses filters for opacity
			return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
				( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
				computed ? "1" : "";
		},

		set: function( elem, value ) {
			var style = elem.style,
				currentStyle = elem.currentStyle,
				opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
				filter = currentStyle && currentStyle.filter || style.filter || "";

			// IE has trouble with opacity if it does not have layout
			// Force it by setting the zoom level
			style.zoom = 1;

			// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
			if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
				style.removeAttribute ) {

				// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
				// if "filter:" is present at all, clearType is disabled, we want to avoid this
				// style.removeAttribute is IE Only, but so apparently is this code path...
				style.removeAttribute( "filter" );

				// if there there is no filter style applied in a css rule, we are done
				if ( currentStyle && !currentStyle.filter ) {
					return;
				}
			}

			// otherwise, set new filter values
			style.filter = ralpha.test( filter ) ?
				filter.replace( ralpha, opacity ) :
				filter + " " + opacity;
		}
	};
}

// These hooks cannot be added until DOM ready because the support test
// for it is not run until after DOM ready
jQuery(function() {
	if ( !jQuery.support.reliableMarginRight ) {
		jQuery.cssHooks.marginRight = {
			get: function( elem, computed ) {
				// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
				// Work around by temporarily setting element display to inline-block
				return jQuery.swap( elem, { "display": "inline-block" }, function() {
					if ( computed ) {
						return curCSS( elem, "marginRight" );
					}
				});
			}
		};
	}

	// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
	// getComputedStyle returns percent when specified for top/left/bottom/right
	// rather than make the css module depend on the offset module, we just check for it here
	if ( !jQuery.support.pixelPosition && jQuery.fn.position ) {
		jQuery.each( [ "top", "left" ], function( i, prop ) {
			jQuery.cssHooks[ prop ] = {
				get: function( elem, computed ) {
					if ( computed ) {
						var ret = curCSS( elem, prop );
						// if curCSS returns percentage, fallback to offset
						return rnumnonpx.test( ret ) ? jQuery( elem ).position()[ prop ] + "px" : ret;
					}
				}
			};
		});
	}

});

if ( jQuery.expr && jQuery.expr.filters ) {
	jQuery.expr.filters.hidden = function( elem ) {
		return ( elem.offsetWidth === 0 && elem.offsetHeight === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || curCSS( elem, "display" )) === "none");
	};

	jQuery.expr.filters.visible = function( elem ) {
		return !jQuery.expr.filters.hidden( elem );
	};
}

// These hooks are used by animate to expand properties
jQuery.each({
	margin: "",
	padding: "",
	border: "Width"
}, function( prefix, suffix ) {
	jQuery.cssHooks[ prefix + suffix ] = {
		expand: function( value ) {
			var i,

				// assumes a single number if not a string
				parts = typeof value === "string" ? value.split(" ") : [ value ],
				expanded = {};

			for ( i = 0; i < 4; i++ ) {
				expanded[ prefix + cssExpand[ i ] + suffix ] =
					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
			}

			return expanded;
		}
	};

	if ( !rmargin.test( prefix ) ) {
		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
	}
});
var r20 = /%20/g,
	rbracket = /\[\]$/,
	rCRLF = /\r?\n/g,
	rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
	rselectTextarea = /^(?:select|textarea)/i;

jQuery.fn.extend({
	serialize: function() {
		return jQuery.param( this.serializeArray() );
	},
	serializeArray: function() {
		return this.map(function(){
			return this.elements ? jQuery.makeArray( this.elements ) : this;
		})
		.filter(function(){
			return this.name && !this.disabled &&
				( this.checked || rselectTextarea.test( this.nodeName ) ||
					rinput.test( this.type ) );
		})
		.map(function( i, elem ){
			var val = jQuery( this ).val();

			return val == null ?
				null :
				jQuery.isArray( val ) ?
					jQuery.map( val, function( val, i ){
						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
					}) :
					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
		}).get();
	}
});

//Serialize an array of form elements or a set of
//key/values into a query string
jQuery.param = function( a, traditional ) {
	var prefix,
		s = [],
		add = function( key, value ) {
			// If value is a function, invoke it and return its value
			value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
			s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
		};

	// Set traditional to true for jQuery <= 1.3.2 behavior.
	if ( traditional === undefined ) {
		traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
	}

	// If an array was passed in, assume that it is an array of form elements.
	if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
		// Serialize the form elements
		jQuery.each( a, function() {
			add( this.name, this.value );
		});

	} else {
		// If traditional, encode the "old" way (the way 1.3.2 or older
		// did it), otherwise encode params recursively.
		for ( prefix in a ) {
			buildParams( prefix, a[ prefix ], traditional, add );
		}
	}

	// Return the resulting serialization
	return s.join( "&" ).replace( r20, "+" );
};

function buildParams( prefix, obj, traditional, add ) {
	var name;

	if ( jQuery.isArray( obj ) ) {
		// Serialize array item.
		jQuery.each( obj, function( i, v ) {
			if ( traditional || rbracket.test( prefix ) ) {
				// Treat each array item as a scalar.
				add( prefix, v );

			} else {
				// If array item is non-scalar (array or object), encode its
				// numeric index to resolve deserialization ambiguity issues.
				// Note that rack (as of 1.0.0) can't currently deserialize
				// nested arrays properly, and attempting to do so may cause
				// a server error. Possible fixes are to modify rack's
				// deserialization algorithm or to provide an option or flag
				// to force array serialization to be shallow.
				buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
			}
		});

	} else if ( !traditional && jQuery.type( obj ) === "object" ) {
		// Serialize object item.
		for ( name in obj ) {
			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
		}

	} else {
		// Serialize scalar item.
		add( prefix, obj );
	}
}
var // Document location
	ajaxLocation,
	// Document location segments
	ajaxLocParts,

	rhash = /#.*$/,
	rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
	// #7653, #8125, #8152: local protocol detection
	rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
	rnoContent = /^(?:GET|HEAD)$/,
	rprotocol = /^\/\//,
	rquery = /\?/,
	rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
	rts = /([?&])_=[^&]*/,
	rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,

	// Keep a copy of the old load method
	_load = jQuery.fn.load,

	/* Prefilters
	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
	 * 2) These are called:
	 *    - BEFORE asking for a transport
	 *    - AFTER param serialization (s.data is a string if s.processData is true)
	 * 3) key is the dataType
	 * 4) the catchall symbol "*" can be used
	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
	 */
	prefilters = {},

	/* Transports bindings
	 * 1) key is the dataType
	 * 2) the catchall symbol "*" can be used
	 * 3) selection will start with transport dataType and THEN go to "*" if needed
	 */
	transports = {},

	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
	allTypes = ["*/"] + ["*"];

// #8138, IE may throw an exception when accessing
// a field from window.location if document.domain has been set
try {
	ajaxLocation = location.href;
} catch( e ) {
	// Use the href attribute of an A element
	// since IE will modify it given document.location
	ajaxLocation = document.createElement( "a" );
	ajaxLocation.href = "";
	ajaxLocation = ajaxLocation.href;
}

// Segment location into parts
ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];

// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
function addToPrefiltersOrTransports( structure ) {

	// dataTypeExpression is optional and defaults to "*"
	return function( dataTypeExpression, func ) {

		if ( typeof dataTypeExpression !== "string" ) {
			func = dataTypeExpression;
			dataTypeExpression = "*";
		}

		var dataType, list, placeBefore,
			dataTypes = dataTypeExpression.toLowerCase().split( core_rspace ),
			i = 0,
			length = dataTypes.length;

		if ( jQuery.isFunction( func ) ) {
			// For each dataType in the dataTypeExpression
			for ( ; i < length; i++ ) {
				dataType = dataTypes[ i ];
				// We control if we're asked to add before
				// any existing element
				placeBefore = /^\+/.test( dataType );
				if ( placeBefore ) {
					dataType = dataType.substr( 1 ) || "*";
				}
				list = structure[ dataType ] = structure[ dataType ] || [];
				// then we add to the structure accordingly
				list[ placeBefore ? "unshift" : "push" ]( func );
			}
		}
	};
}

// Base inspection function for prefilters and transports
function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
		dataType /* internal */, inspected /* internal */ ) {

	dataType = dataType || options.dataTypes[ 0 ];
	inspected = inspected || {};

	inspected[ dataType ] = true;

	var selection,
		list = structure[ dataType ],
		i = 0,
		length = list ? list.length : 0,
		executeOnly = ( structure === prefilters );

	for ( ; i < length && ( executeOnly || !selection ); i++ ) {
		selection = list[ i ]( options, originalOptions, jqXHR );
		// If we got redirected to another dataType
		// we try there if executing only and not done already
		if ( typeof selection === "string" ) {
			if ( !executeOnly || inspected[ selection ] ) {
				selection = undefined;
			} else {
				options.dataTypes.unshift( selection );
				selection = inspectPrefiltersOrTransports(
						structure, options, originalOptions, jqXHR, selection, inspected );
			}
		}
	}
	// If we're only executing or nothing was selected
	// we try the catchall dataType if not done already
	if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
		selection = inspectPrefiltersOrTransports(
				structure, options, originalOptions, jqXHR, "*", inspected );
	}
	// unnecessary when only executing (prefilters)
	// but it'll be ignored by the caller in that case
	return selection;
}

// A special extend for ajax options
// that takes "flat" options (not to be deep extended)
// Fixes #9887
function ajaxExtend( target, src ) {
	var key, deep,
		flatOptions = jQuery.ajaxSettings.flatOptions || {};
	for ( key in src ) {
		if ( src[ key ] !== undefined ) {
			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
		}
	}
	if ( deep ) {
		jQuery.extend( true, target, deep );
	}
}

jQuery.fn.load = function( url, params, callback ) {
	if ( typeof url !== "string" && _load ) {
		return _load.apply( this, arguments );
	}

	// Don't do a request if no elements are being requested
	if ( !this.length ) {
		return this;
	}

	var selector, type, response,
		self = this,
		off = url.indexOf(" ");

	if ( off >= 0 ) {
		selector = url.slice( off, url.length );
		url = url.slice( 0, off );
	}

	// If it's a function
	if ( jQuery.isFunction( params ) ) {

		// We assume that it's the callback
		callback = params;
		params = undefined;

	// Otherwise, build a param string
	} else if ( typeof params === "object" ) {
		type = "POST";
	}

	// Request the remote document
	jQuery.ajax({
		url: url,

		// if "type" variable is undefined, then "GET" method will be used
		type: type,
		dataType: "html",
		data: params,
		complete: function( jqXHR, status ) {
			if ( callback ) {
				self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
			}
		}
	}).done(function( responseText ) {

		// Save response for use in complete callback
		response = arguments;

		// See if a selector was specified
		self.html( selector ?

			// Create a dummy div to hold the results
			jQuery("<div>")

				// inject the contents of the document in, removing the scripts
				// to avoid any 'Permission Denied' errors in IE
				.append( responseText.replace( rscript, "" ) )

				// Locate the specified elements
				.find( selector ) :

			// If not, just inject the full result
			responseText );

	});

	return this;
};

// Attach a bunch of functions for handling common AJAX events
jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
	jQuery.fn[ o ] = function( f ){
		return this.on( o, f );
	};
});

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 ) ) {
			type = type || callback;
			callback = data;
			data = undefined;
		}

		return jQuery.ajax({
			type: method,
			url: url,
			data: data,
			success: callback,
			dataType: type
		});
	};
});

jQuery.extend({

	getScript: function( url, callback ) {
		return jQuery.get( url, undefined, callback, "script" );
	},

	getJSON: function( url, data, callback ) {
		return jQuery.get( url, data, callback, "json" );
	},

	// Creates a full fledged settings object into target
	// with both ajaxSettings and settings fields.
	// If target is omitted, writes into ajaxSettings.
	ajaxSetup: function( target, settings ) {
		if ( settings ) {
			// Building a settings object
			ajaxExtend( target, jQuery.ajaxSettings );
		} else {
			// Extending ajaxSettings
			settings = target;
			target = jQuery.ajaxSettings;
		}
		ajaxExtend( target, settings );
		return target;
	},

	ajaxSettings: {
		url: ajaxLocation,
		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
		global: true,
		type: "GET",
		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
		processData: true,
		async: true,
		/*
		timeout: 0,
		data: null,
		dataType: null,
		username: null,
		password: null,
		cache: null,
		throws: false,
		traditional: false,
		headers: {},
		*/

		accepts: {
			xml: "application/xml, text/xml",
			html: "text/html",
			text: "text/plain",
			json: "application/json, text/javascript",
			"*": allTypes
		},

		contents: {
			xml: /xml/,
			html: /html/,
			json: /json/
		},

		responseFields: {
			xml: "responseXML",
			text: "responseText"
		},

		// List of data converters
		// 1) key format is "source_type destination_type" (a single space in-between)
		// 2) the catchall symbol "*" can be used for source_type
		converters: {

			// Convert anything to text
			"* text": window.String,

			// Text to html (true = no transformation)
			"text html": true,

			// Evaluate text as a json expression
			"text json": jQuery.parseJSON,

			// Parse text as xml
			"text xml": jQuery.parseXML
		},

		// For options that shouldn't be deep extended:
		// you can add your own custom options here if
		// and when you create one that shouldn't be
		// deep extended (see ajaxExtend)
		flatOptions: {
			context: true,
			url: true
		}
	},

	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
	ajaxTransport: addToPrefiltersOrTransports( transports ),

	// Main method
	ajax: function( url, options ) {

		// If url is an object, simulate pre-1.5 signature
		if ( typeof url === "object" ) {
			options = url;
			url = undefined;
		}

		// Force options to be an object
		options = options || {};

		var // ifModified key
			ifModifiedKey,
			// Response headers
			responseHeadersString,
			responseHeaders,
			// transport
			transport,
			// timeout handle
			timeoutTimer,
			// Cross-domain detection vars
			parts,
			// To know if global events are to be dispatched
			fireGlobals,
			// Loop variable
			i,
			// Create the final options object
			s = jQuery.ajaxSetup( {}, options ),
			// Callbacks context
			callbackContext = s.context || s,
			// Context for global events
			// It's the callbackContext if one was provided in the options
			// and if it's a DOM node or a jQuery collection
			globalEventContext = callbackContext !== s &&
				( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
						jQuery( callbackContext ) : jQuery.event,
			// Deferreds
			deferred = jQuery.Deferred(),
			completeDeferred = jQuery.Callbacks( "once memory" ),
			// Status-dependent callbacks
			statusCode = s.statusCode || {},
			// Headers (they are sent all at once)
			requestHeaders = {},
			requestHeadersNames = {},
			// The jqXHR state
			state = 0,
			// Default abort message
			strAbort = "canceled",
			// Fake xhr
			jqXHR = {

				readyState: 0,

				// Caches the header
				setRequestHeader: function( name, value ) {
					if ( !state ) {
						var lname = name.toLowerCase();
						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
						requestHeaders[ name ] = value;
					}
					return this;
				},

				// Raw string
				getAllResponseHeaders: function() {
					return state === 2 ? responseHeadersString : null;
				},

				// Builds headers hashtable if needed
				getResponseHeader: function( key ) {
					var match;
					if ( state === 2 ) {
						if ( !responseHeaders ) {
							responseHeaders = {};
							while( ( match = rheaders.exec( responseHeadersString ) ) ) {
								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
							}
						}
						match = responseHeaders[ key.toLowerCase() ];
					}
					return match === undefined ? null : match;
				},

				// Overrides response content-type header
				overrideMimeType: function( type ) {
					if ( !state ) {
						s.mimeType = type;
					}
					return this;
				},

				// Cancel the request
				abort: function( statusText ) {
					statusText = statusText || strAbort;
					if ( transport ) {
						transport.abort( statusText );
					}
					done( 0, statusText );
					return this;
				}
			};

		// Callback for when everything is done
		// It is defined here because jslint complains if it is declared
		// at the end of the function (which would be more logical and readable)
		function done( status, nativeStatusText, responses, headers ) {
			var isSuccess, success, error, response, modified,
				statusText = nativeStatusText;

			// Called once
			if ( state === 2 ) {
				return;
			}

			// State is "done" now
			state = 2;

			// Clear timeout if it exists
			if ( timeoutTimer ) {
				clearTimeout( timeoutTimer );
			}

			// Dereference transport for early garbage collection
			// (no matter how long the jqXHR object will be used)
			transport = undefined;

			// Cache response headers
			responseHeadersString = headers || "";

			// Set readyState
			jqXHR.readyState = status > 0 ? 4 : 0;

			// Get response data
			if ( responses ) {
				response = ajaxHandleResponses( s, jqXHR, responses );
			}

			// If successful, handle type chaining
			if ( status >= 200 && status < 300 || status === 304 ) {

				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
				if ( s.ifModified ) {

					modified = jqXHR.getResponseHeader("Last-Modified");
					if ( modified ) {
						jQuery.lastModified[ ifModifiedKey ] = modified;
					}
					modified = jqXHR.getResponseHeader("Etag");
					if ( modified ) {
						jQuery.etag[ ifModifiedKey ] = modified;
					}
				}

				// If not modified
				if ( status === 304 ) {

					statusText = "notmodified";
					isSuccess = true;

				// If we have data
				} else {

					isSuccess = ajaxConvert( s, response );
					statusText = isSuccess.state;
					success = isSuccess.data;
					error = isSuccess.error;
					isSuccess = !error;
				}
			} else {
				// We extract error from statusText
				// then normalize statusText and status for non-aborts
				error = statusText;
				if ( !statusText || status ) {
					statusText = "error";
					if ( status < 0 ) {
						status = 0;
					}
				}
			}

			// Set data for the fake xhr object
			jqXHR.status = status;
			jqXHR.statusText = "" + ( nativeStatusText || statusText );

			// Success/Error
			if ( isSuccess ) {
				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
			} else {
				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
			}

			// Status-dependent callbacks
			jqXHR.statusCode( statusCode );
			statusCode = undefined;

			if ( fireGlobals ) {
				globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
						[ jqXHR, s, isSuccess ? success : error ] );
			}

			// Complete
			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );

			if ( fireGlobals ) {
				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
				// Handle the global AJAX counter
				if ( !( --jQuery.active ) ) {
					jQuery.event.trigger( "ajaxStop" );
				}
			}
		}

		// Attach deferreds
		deferred.promise( jqXHR );
		jqXHR.success = jqXHR.done;
		jqXHR.error = jqXHR.fail;
		jqXHR.complete = completeDeferred.add;

		// Status-dependent callbacks
		jqXHR.statusCode = function( map ) {
			if ( map ) {
				var tmp;
				if ( state < 2 ) {
					for ( tmp in map ) {
						statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
					}
				} else {
					tmp = map[ jqXHR.status ];
					jqXHR.always( tmp );
				}
			}
			return this;
		};

		// Remove hash character (#7531: and string promotion)
		// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
		// We also use the url parameter if available
		s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );

		// Extract dataTypes list
		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( core_rspace );

		// Determine if a cross-domain request is in order
		if ( s.crossDomain == null ) {
			parts = rurl.exec( s.url.toLowerCase() );
			s.crossDomain = !!( parts &&
				( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
			);
		}

		// Convert data if not already a string
		if ( s.data && s.processData && typeof s.data !== "string" ) {
			s.data = jQuery.param( s.data, s.traditional );
		}

		// Apply prefilters
		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );

		// If request was aborted inside a prefilter, stop there
		if ( state === 2 ) {
			return jqXHR;
		}

		// We can fire global events as of now if asked to
		fireGlobals = s.global;

		// Uppercase the type
		s.type = s.type.toUpperCase();

		// Determine if request has content
		s.hasContent = !rnoContent.test( s.type );

		// Watch for a new set of requests
		if ( fireGlobals && jQuery.active++ === 0 ) {
			jQuery.event.trigger( "ajaxStart" );
		}

		// More options handling for requests with no content
		if ( !s.hasContent ) {

			// If data is available, append data to url
			if ( s.data ) {
				s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
				// #9682: remove data so that it's not used in an eventual retry
				delete s.data;
			}

			// Get ifModifiedKey before adding the anti-cache parameter
			ifModifiedKey = s.url;

			// Add anti-cache in url if needed
			if ( s.cache === false ) {

				var ts = jQuery.now(),
					// try replacing _= if it is there
					ret = s.url.replace( rts, "$1_=" + ts );

				// if nothing was replaced, add timestamp to the end
				s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
			}
		}

		// Set the correct header, if data is being sent
		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
			jqXHR.setRequestHeader( "Content-Type", s.contentType );
		}

		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
		if ( s.ifModified ) {
			ifModifiedKey = ifModifiedKey || s.url;
			if ( jQuery.lastModified[ ifModifiedKey ] ) {
				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] );
			}
			if ( jQuery.etag[ ifModifiedKey ] ) {
				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] );
			}
		}

		// Set the Accepts header for the server, depending on the dataType
		jqXHR.setRequestHeader(
			"Accept",
			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
				s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
				s.accepts[ "*" ]
		);

		// Check for headers option
		for ( i in s.headers ) {
			jqXHR.setRequestHeader( i, s.headers[ i ] );
		}

		// Allow custom headers/mimetypes and early abort
		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
				// Abort if not done already and return
				return jqXHR.abort();

		}

		// aborting is no longer a cancellation
		strAbort = "abort";

		// Install callbacks on deferreds
		for ( i in { success: 1, error: 1, complete: 1 } ) {
			jqXHR[ i ]( s[ i ] );
		}

		// Get transport
		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );

		// If no transport, we auto-abort
		if ( !transport ) {
			done( -1, "No Transport" );
		} else {
			jqXHR.readyState = 1;
			// Send global event
			if ( fireGlobals ) {
				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
			}
			// Timeout
			if ( s.async && s.timeout > 0 ) {
				timeoutTimer = setTimeout( function(){
					jqXHR.abort( "timeout" );
				}, s.timeout );
			}

			try {
				state = 1;
				transport.send( requestHeaders, done );
			} catch (e) {
				// Propagate exception as error if not done
				if ( state < 2 ) {
					done( -1, e );
				// Simply rethrow otherwise
				} else {
					throw e;
				}
			}
		}

		return jqXHR;
	},

	// Counter for holding the number of active queries
	active: 0,

	// Last-Modified header cache for next request
	lastModified: {},
	etag: {}

});

/* Handles responses to an ajax request:
 * - sets all responseXXX fields accordingly
 * - finds the right dataType (mediates between content-type and expected dataType)
 * - returns the corresponding response
 */
function ajaxHandleResponses( s, jqXHR, responses ) {

	var ct, type, finalDataType, firstDataType,
		contents = s.contents,
		dataTypes = s.dataTypes,
		responseFields = s.responseFields;

	// Fill responseXXX fields
	for ( type in responseFields ) {
		if ( type in responses ) {
			jqXHR[ responseFields[type] ] = responses[ type ];
		}
	}

	// Remove auto dataType and get content-type in the process
	while( dataTypes[ 0 ] === "*" ) {
		dataTypes.shift();
		if ( ct === undefined ) {
			ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
		}
	}

	// Check if we're dealing with a known content-type
	if ( ct ) {
		for ( type in contents ) {
			if ( contents[ type ] && contents[ type ].test( ct ) ) {
				dataTypes.unshift( type );
				break;
			}
		}
	}

	// Check to see if we have a response for the expected dataType
	if ( dataTypes[ 0 ] in responses ) {
		finalDataType = dataTypes[ 0 ];
	} else {
		// Try convertible dataTypes
		for ( type in responses ) {
			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
				finalDataType = type;
				break;
			}
			if ( !firstDataType ) {
				firstDataType = type;
			}
		}
		// Or just use first one
		finalDataType = finalDataType || firstDataType;
	}

	// If we found a dataType
	// We add the dataType to the list if needed
	// and return the corresponding response
	if ( finalDataType ) {
		if ( finalDataType !== dataTypes[ 0 ] ) {
			dataTypes.unshift( finalDataType );
		}
		return responses[ finalDataType ];
	}
}

// Chain conversions given the request and the original response
function ajaxConvert( s, response ) {

	var conv, conv2, current, tmp,
		// Work with a copy of dataTypes in case we need to modify it for conversion
		dataTypes = s.dataTypes.slice(),
		prev = dataTypes[ 0 ],
		converters = {},
		i = 0;

	// Apply the dataFilter if provided
	if ( s.dataFilter ) {
		response = s.dataFilter( response, s.dataType );
	}

	// Create converters map with lowercased keys
	if ( dataTypes[ 1 ] ) {
		for ( conv in s.converters ) {
			converters[ conv.toLowerCase() ] = s.converters[ conv ];
		}
	}

	// Convert to each sequential dataType, tolerating list modification
	for ( ; (current = dataTypes[++i]); ) {

		// There's only work to do if current dataType is non-auto
		if ( current !== "*" ) {

			// Convert response if prev dataType is non-auto and differs from current
			if ( prev !== "*" && prev !== current ) {

				// Seek a direct converter
				conv = converters[ prev + " " + current ] || converters[ "* " + current ];

				// If none found, seek a pair
				if ( !conv ) {
					for ( conv2 in converters ) {

						// If conv2 outputs current
						tmp = conv2.split(" ");
						if ( tmp[ 1 ] === current ) {

							// If prev can be converted to accepted input
							conv = converters[ prev + " " + tmp[ 0 ] ] ||
								converters[ "* " + tmp[ 0 ] ];
							if ( conv ) {
								// Condense equivalence converters
								if ( conv === true ) {
									conv = converters[ conv2 ];

								// Otherwise, insert the intermediate dataType
								} else if ( converters[ conv2 ] !== true ) {
									current = tmp[ 0 ];
									dataTypes.splice( i--, 0, current );
								}

								break;
							}
						}
					}
				}

				// Apply converter (if not an equivalence)
				if ( conv !== true ) {

					// Unless errors are allowed to bubble, catch and return them
					if ( conv && s["throws"] ) {
						response = conv( response );
					} else {
						try {
							response = conv( response );
						} catch ( e ) {
							return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
						}
					}
				}
			}

			// Update prev for next iteration
			prev = current;
		}
	}

	return { state: "success", data: response };
}
var oldCallbacks = [],
	rquestion = /\?/,
	rjsonp = /(=)\?(?=&|$)|\?\?/,
	nonce = jQuery.now();

// Default jsonp settings
jQuery.ajaxSetup({
	jsonp: "callback",
	jsonpCallback: function() {
		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
		this[ callback ] = true;
		return callback;
	}
});

// Detect, normalize options and install callbacks for jsonp requests
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {

	var callbackName, overwritten, responseContainer,
		data = s.data,
		url = s.url,
		hasCallback = s.jsonp !== false,
		replaceInUrl = hasCallback && rjsonp.test( url ),
		replaceInData = hasCallback && !replaceInUrl && typeof data === "string" &&
			!( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") &&
			rjsonp.test( data );

	// Handle iff the expected data type is "jsonp" or we have a parameter to set
	if ( s.dataTypes[ 0 ] === "jsonp" || replaceInUrl || replaceInData ) {

		// Get callback name, remembering preexisting value associated with it
		callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
			s.jsonpCallback() :
			s.jsonpCallback;
		overwritten = window[ callbackName ];

		// Insert callback into url or form data
		if ( replaceInUrl ) {
			s.url = url.replace( rjsonp, "$1" + callbackName );
		} else if ( replaceInData ) {
			s.data = data.replace( rjsonp, "$1" + callbackName );
		} else if ( hasCallback ) {
			s.url += ( rquestion.test( url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
		}

		// Use data converter to retrieve json after script execution
		s.converters["script json"] = function() {
			if ( !responseContainer ) {
				jQuery.error( callbackName + " was not called" );
			}
			return responseContainer[ 0 ];
		};

		// force json dataType
		s.dataTypes[ 0 ] = "json";

		// Install callback
		window[ callbackName ] = function() {
			responseContainer = arguments;
		};

		// Clean-up function (fires after converters)
		jqXHR.always(function() {
			// Restore preexisting value
			window[ callbackName ] = overwritten;

			// Save back as free
			if ( s[ callbackName ] ) {
				// make sure that re-using the options doesn't screw things around
				s.jsonpCallback = originalSettings.jsonpCallback;

				// save the callback name for future use
				oldCallbacks.push( callbackName );
			}

			// Call if it was a function and we have a response
			if ( responseContainer && jQuery.isFunction( overwritten ) ) {
				overwritten( responseContainer[ 0 ] );
			}

			responseContainer = overwritten = undefined;
		});

		// Delegate to script
		return "script";
	}
});
// Install script dataType
jQuery.ajaxSetup({
	accepts: {
		script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
	},
	contents: {
		script: /javascript|ecmascript/
	},
	converters: {
		"text script": function( text ) {
			jQuery.globalEval( text );
			return text;
		}
	}
});

// Handle cache's special case and global
jQuery.ajaxPrefilter( "script", function( s ) {
	if ( s.cache === undefined ) {
		s.cache = false;
	}
	if ( s.crossDomain ) {
		s.type = "GET";
		s.global = false;
	}
});

// Bind script tag hack transport
jQuery.ajaxTransport( "script", function(s) {

	// This transport only deals with cross domain requests
	if ( s.crossDomain ) {

		var script,
			head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;

		return {

			send: function( _, callback ) {

				script = document.createElement( "script" );

				script.async = "async";

				if ( s.scriptCharset ) {
					script.charset = s.scriptCharset;
				}

				script.src = s.url;

				// Attach handlers for all browsers
				script.onload = script.onreadystatechange = function( _, isAbort ) {

					if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {

						// Handle memory leak in IE
						script.onload = script.onreadystatechange = null;

						// Remove the script
						if ( head && script.parentNode ) {
							head.removeChild( script );
						}

						// Dereference the script
						script = undefined;

						// Callback if not abort
						if ( !isAbort ) {
							callback( 200, "success" );
						}
					}
				};
				// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
				// This arises when a base node is used (#2709 and #4378).
				head.insertBefore( script, head.firstChild );
			},

			abort: function() {
				if ( script ) {
					script.onload( 0, 1 );
				}
			}
		};
	}
});
var xhrCallbacks,
	// #5280: Internet Explorer will keep connections alive if we don't abort on unload
	xhrOnUnloadAbort = window.ActiveXObject ? function() {
		// Abort all pending requests
		for ( var key in xhrCallbacks ) {
			xhrCallbacks[ key ]( 0, 1 );
		}
	} : false,
	xhrId = 0;

// Functions to create xhrs
function createStandardXHR() {
	try {
		return new window.XMLHttpRequest();
	} catch( e ) {}
}

function createActiveXHR() {
	try {
		return new window.ActiveXObject( "Microsoft.XMLHTTP" );
	} catch( e ) {}
}

// Create the request object
// (This is still attached to ajaxSettings for backward compatibility)
jQuery.ajaxSettings.xhr = window.ActiveXObject ?
	/* Microsoft failed to properly
	 * implement the XMLHttpRequest in IE7 (can't request local files),
	 * so we use the ActiveXObject when it is available
	 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
	 * we need a fallback.
	 */
	function() {
		return !this.isLocal && createStandardXHR() || createActiveXHR();
	} :
	// For all other browsers, use the standard XMLHttpRequest object
	createStandardXHR;

// Determine support properties
(function( xhr ) {
	jQuery.extend( jQuery.support, {
		ajax: !!xhr,
		cors: !!xhr && ( "withCredentials" in xhr )
	});
})( jQuery.ajaxSettings.xhr() );

// Create transport if the browser can provide an xhr
if ( jQuery.support.ajax ) {

	jQuery.ajaxTransport(function( s ) {
		// Cross domain only allowed if supported through XMLHttpRequest
		if ( !s.crossDomain || jQuery.support.cors ) {

			var callback;

			return {
				send: function( headers, complete ) {

					// Get a new xhr
					var handle, i,
						xhr = s.xhr();

					// Open the socket
					// Passing null username, generates a login popup on Opera (#2865)
					if ( s.username ) {
						xhr.open( s.type, s.url, s.async, s.username, s.password );
					} else {
						xhr.open( s.type, s.url, s.async );
					}

					// Apply custom fields if provided
					if ( s.xhrFields ) {
						for ( i in s.xhrFields ) {
							xhr[ i ] = s.xhrFields[ i ];
						}
					}

					// Override mime type if needed
					if ( s.mimeType && xhr.overrideMimeType ) {
						xhr.overrideMimeType( s.mimeType );
					}

					// X-Requested-With header
					// For cross-domain requests, seeing as conditions for a preflight are
					// akin to a jigsaw puzzle, we simply never set it to be sure.
					// (it can always be set on a per-request basis or even using ajaxSetup)
					// For same-domain requests, won't change header if already provided.
					if ( !s.crossDomain && !headers["X-Requested-With"] ) {
						headers[ "X-Requested-With" ] = "XMLHttpRequest";
					}

					// Need an extra try/catch for cross domain requests in Firefox 3
					try {
						for ( i in headers ) {
							xhr.setRequestHeader( i, headers[ i ] );
						}
					} catch( _ ) {}

					// Do send the request
					// This may raise an exception which is actually
					// handled in jQuery.ajax (so no try/catch here)
					xhr.send( ( s.hasContent && s.data ) || null );

					// Listener
					callback = function( _, isAbort ) {

						var status,
							statusText,
							responseHeaders,
							responses,
							xml;

						// Firefox throws exceptions when accessing properties
						// of an xhr when a network error occurred
						// http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
						try {

							// Was never called and is aborted or complete
							if ( callback && ( isAbort || xhr.readyState === 4 ) ) {

								// Only called once
								callback = undefined;

								// Do not keep as active anymore
								if ( handle ) {
									xhr.onreadystatechange = jQuery.noop;
									if ( xhrOnUnloadAbort ) {
										delete xhrCallbacks[ handle ];
									}
								}

								// If it's an abort
								if ( isAbort ) {
									// Abort it manually if needed
									if ( xhr.readyState !== 4 ) {
										xhr.abort();
									}
								} else {
									status = xhr.status;
									responseHeaders = xhr.getAllResponseHeaders();
									responses = {};
									xml = xhr.responseXML;

									// Construct response list
									if ( xml && xml.documentElement /* #4958 */ ) {
										responses.xml = xml;
									}

									// When requesting binary data, IE6-9 will throw an exception
									// on any attempt to access responseText (#11426)
									try {
										responses.text = xhr.responseText;
									} catch( _ ) {
									}

									// Firefox throws an exception when accessing
									// statusText for faulty cross-domain requests
									try {
										statusText = xhr.statusText;
									} catch( e ) {
										// We normalize with Webkit giving an empty statusText
										statusText = "";
									}

									// Filter status for non standard behaviors

									// If the request is local and we have data: assume a success
									// (success with no data won't get notified, that's the best we
									// can do given current implementations)
									if ( !status && s.isLocal && !s.crossDomain ) {
										status = responses.text ? 200 : 404;
									// IE - #1450: sometimes returns 1223 when it should be 204
									} else if ( status === 1223 ) {
										status = 204;
									}
								}
							}
						} catch( firefoxAccessException ) {
							if ( !isAbort ) {
								complete( -1, firefoxAccessException );
							}
						}

						// Call complete if needed
						if ( responses ) {
							complete( status, statusText, responses, responseHeaders );
						}
					};

					if ( !s.async ) {
						// if we're in sync mode we fire the callback
						callback();
					} else if ( xhr.readyState === 4 ) {
						// (IE6 & IE7) if it's in cache and has been
						// retrieved directly we need to fire the callback
						setTimeout( callback, 0 );
					} else {
						handle = ++xhrId;
						if ( xhrOnUnloadAbort ) {
							// Create the active xhrs callbacks list if needed
							// and attach the unload handler
							if ( !xhrCallbacks ) {
								xhrCallbacks = {};
								jQuery( window ).unload( xhrOnUnloadAbort );
							}
							// Add to list of active xhrs callbacks
							xhrCallbacks[ handle ] = callback;
						}
						xhr.onreadystatechange = callback;
					}
				},

				abort: function() {
					if ( callback ) {
						callback(0,1);
					}
				}
			};
		}
	});
}
var fxNow, timerId,
	rfxtypes = /^(?:toggle|show|hide)$/,
	rfxnum = new RegExp( "^(?:([-+])=|)(" + core_pnum + ")([a-z%]*)$", "i" ),
	rrun = /queueHooks$/,
	animationPrefilters = [ defaultPrefilter ],
	tweeners = {
		"*": [function( prop, value ) {
			var end, unit, prevScale,
				tween = this.createTween( prop, value ),
				parts = rfxnum.exec( value ),
				target = tween.cur(),
				start = +target || 0,
				scale = 1;

			if ( parts ) {
				end = +parts[2];
				unit = parts[3] || ( jQuery.cssNumber[ prop ] ? "" : "px" );

				// We need to compute starting value
				if ( unit !== "px" && start ) {
					// Iteratively approximate from a nonzero starting point
					// Prefer the current property, because this process will be trivial if it uses the same units
					// Fallback to end or a simple constant
					start = jQuery.css( tween.elem, prop, true ) || end || 1;

					do {
						// If previous iteration zeroed out, double until we get *something*
						// Use a string for doubling factor so we don't accidentally see scale as unchanged below
						prevScale = scale = scale || ".5";

						// Adjust and apply
						start = start / scale;
						jQuery.style( tween.elem, prop, start + unit );

						// Update scale, tolerating zeroes from tween.cur()
						scale = tween.cur() / target;

					// Stop looping if we've hit the mark or scale is unchanged
					} while ( scale !== 1 && scale !== prevScale );
				}

				tween.unit = unit;
				tween.start = start;
				// If a +=/-= token was provided, we're doing a relative animation
				tween.end = parts[1] ? start + ( parts[1] + 1 ) * end : end;
			}
			return tween;
		}]
	};

// Animations created synchronously will run synchronously
function createFxNow() {
	setTimeout(function() {
		fxNow = undefined;
	}, 0 );
	return ( fxNow = jQuery.now() );
}

function createTweens( animation, props ) {
	jQuery.each( props, function( prop, value ) {
		var collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
			index = 0,
			length = collection.length;
		for ( ; index < length; index++ ) {
			if ( collection[ index ].call( animation, prop, value ) ) {

				// we're done with this property
				return;
			}
		}
	});
}

function Animation( elem, properties, options ) {
	var result,
		index = 0,
		tweenerIndex = 0,
		length = animationPrefilters.length,
		deferred = jQuery.Deferred().always( function() {
			// don't match elem in the :animated selector
			delete tick.elem;
		}),
		tick = function() {
			var currentTime = fxNow || createFxNow(),
				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
				percent = 1 - ( remaining / animation.duration || 0 ),
				index = 0,
				length = animation.tweens.length;

			for ( ; index < length ; index++ ) {
				animation.tweens[ index ].run( percent );
			}

			deferred.notifyWith( elem, [ animation, percent, remaining ]);

			if ( percent < 1 && length ) {
				return remaining;
			} else {
				deferred.resolveWith( elem, [ animation ] );
				return false;
			}
		},
		animation = deferred.promise({
			elem: elem,
			props: jQuery.extend( {}, properties ),
			opts: jQuery.extend( true, { specialEasing: {} }, options ),
			originalProperties: properties,
			originalOptions: options,
			startTime: fxNow || createFxNow(),
			duration: options.duration,
			tweens: [],
			createTween: function( prop, end, easing ) {
				var tween = jQuery.Tween( elem, animation.opts, prop, end,
						animation.opts.specialEasing[ prop ] || animation.opts.easing );
				animation.tweens.push( tween );
				return tween;
			},
			stop: function( gotoEnd ) {
				var index = 0,
					// if we are going to the end, we want to run all the tweens
					// otherwise we skip this part
					length = gotoEnd ? animation.tweens.length : 0;

				for ( ; index < length ; index++ ) {
					animation.tweens[ index ].run( 1 );
				}

				// resolve when we played the last frame
				// otherwise, reject
				if ( gotoEnd ) {
					deferred.resolveWith( elem, [ animation, gotoEnd ] );
				} else {
					deferred.rejectWith( elem, [ animation, gotoEnd ] );
				}
				return this;
			}
		}),
		props = animation.props;

	propFilter( props, animation.opts.specialEasing );

	for ( ; index < length ; index++ ) {
		result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
		if ( result ) {
			return result;
		}
	}

	createTweens( animation, props );

	if ( jQuery.isFunction( animation.opts.start ) ) {
		animation.opts.start.call( elem, animation );
	}

	jQuery.fx.timer(
		jQuery.extend( tick, {
			anim: animation,
			queue: animation.opts.queue,
			elem: elem
		})
	);

	// attach callbacks from options
	return animation.progress( animation.opts.progress )
		.done( animation.opts.done, animation.opts.complete )
		.fail( animation.opts.fail )
		.always( animation.opts.always );
}

function propFilter( props, specialEasing ) {
	var index, name, easing, value, hooks;

	// camelCase, specialEasing and expand cssHook pass
	for ( index in props ) {
		name = jQuery.camelCase( index );
		easing = specialEasing[ name ];
		value = props[ index ];
		if ( jQuery.isArray( value ) ) {
			easing = value[ 1 ];
			value = props[ index ] = value[ 0 ];
		}

		if ( index !== name ) {
			props[ name ] = value;
			delete props[ index ];
		}

		hooks = jQuery.cssHooks[ name ];
		if ( hooks && "expand" in hooks ) {
			value = hooks.expand( value );
			delete props[ name ];

			// not quite $.extend, this wont overwrite keys already present.
			// also - reusing 'index' from above because we have the correct "name"
			for ( index in value ) {
				if ( !( index in props ) ) {
					props[ index ] = value[ index ];
					specialEasing[ index ] = easing;
				}
			}
		} else {
			specialEasing[ name ] = easing;
		}
	}
}

jQuery.Animation = jQuery.extend( Animation, {

	tweener: function( props, callback ) {
		if ( jQuery.isFunction( props ) ) {
			callback = props;
			props = [ "*" ];
		} else {
			props = props.split(" ");
		}

		var prop,
			index = 0,
			length = props.length;

		for ( ; index < length ; index++ ) {
			prop = props[ index ];
			tweeners[ prop ] = tweeners[ prop ] || [];
			tweeners[ prop ].unshift( callback );
		}
	},

	prefilter: function( callback, prepend ) {
		if ( prepend ) {
			animationPrefilters.unshift( callback );
		} else {
			animationPrefilters.push( callback );
		}
	}
});

function defaultPrefilter( elem, props, opts ) {
	var index, prop, value, length, dataShow, tween, hooks, oldfire,
		anim = this,
		style = elem.style,
		orig = {},
		handled = [],
		hidden = elem.nodeType && isHidden( elem );

	// handle queue: false promises
	if ( !opts.queue ) {
		hooks = jQuery._queueHooks( elem, "fx" );
		if ( hooks.unqueued == null ) {
			hooks.unqueued = 0;
			oldfire = hooks.empty.fire;
			hooks.empty.fire = function() {
				if ( !hooks.unqueued ) {
					oldfire();
				}
			};
		}
		hooks.unqueued++;

		anim.always(function() {
			// doing this makes sure that the complete handler will be called
			// before this completes
			anim.always(function() {
				hooks.unqueued--;
				if ( !jQuery.queue( elem, "fx" ).length ) {
					hooks.empty.fire();
				}
			});
		});
	}

	// height/width overflow pass
	if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
		// Make sure that nothing sneaks out
		// Record all 3 overflow attributes because IE does not
		// change the overflow attribute when overflowX and
		// overflowY are set to the same value
		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];

		// Set display property to inline-block for height/width
		// animations on inline elements that are having width/height animated
		if ( jQuery.css( elem, "display" ) === "inline" &&
				jQuery.css( elem, "float" ) === "none" ) {

			// inline-level elements accept inline-block;
			// block-level elements need to be inline with layout
			if ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === "inline" ) {
				style.display = "inline-block";

			} else {
				style.zoom = 1;
			}
		}
	}

	if ( opts.overflow ) {
		style.overflow = "hidden";
		if ( !jQuery.support.shrinkWrapBlocks ) {
			anim.done(function() {
				style.overflow = opts.overflow[ 0 ];
				style.overflowX = opts.overflow[ 1 ];
				style.overflowY = opts.overflow[ 2 ];
			});
		}
	}


	// show/hide pass
	for ( index in props ) {
		value = props[ index ];
		if ( rfxtypes.exec( value ) ) {
			delete props[ index ];
			if ( value === ( hidden ? "hide" : "show" ) ) {
				continue;
			}
			handled.push( index );
		}
	}

	length = handled.length;
	if ( length ) {
		dataShow = jQuery._data( elem, "fxshow" ) || jQuery._data( elem, "fxshow", {} );
		if ( hidden ) {
			jQuery( elem ).show();
		} else {
			anim.done(function() {
				jQuery( elem ).hide();
			});
		}
		anim.done(function() {
			var prop;
			jQuery.removeData( elem, "fxshow", true );
			for ( prop in orig ) {
				jQuery.style( elem, prop, orig[ prop ] );
			}
		});
		for ( index = 0 ; index < length ; index++ ) {
			prop = handled[ index ];
			tween = anim.createTween( prop, hidden ? dataShow[ prop ] : 0 );
			orig[ prop ] = dataShow[ prop ] || jQuery.style( elem, prop );

			if ( !( prop in dataShow ) ) {
				dataShow[ prop ] = tween.start;
				if ( hidden ) {
					tween.end = tween.start;
					tween.start = prop === "width" || prop === "height" ? 1 : 0;
				}
			}
		}
	}
}

function Tween( elem, options, prop, end, easing ) {
	return new Tween.prototype.init( elem, options, prop, end, easing );
}
jQuery.Tween = Tween;

Tween.prototype = {
	constructor: Tween,
	init: function( elem, options, prop, end, easing, unit ) {
		this.elem = elem;
		this.prop = prop;
		this.easing = easing || "swing";
		this.options = options;
		this.start = this.now = this.cur();
		this.end = end;
		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
	},
	cur: function() {
		var hooks = Tween.propHooks[ this.prop ];

		return hooks && hooks.get ?
			hooks.get( this ) :
			Tween.propHooks._default.get( this );
	},
	run: function( percent ) {
		var eased,
			hooks = Tween.propHooks[ this.prop ];

		this.pos = eased = jQuery.easing[ this.easing ]( percent, this.options.duration * percent, 0, 1, this.options.duration );
		this.now = ( this.end - this.start ) * eased + this.start;

		if ( this.options.step ) {
			this.options.step.call( this.elem, this.now, this );
		}

		if ( hooks && hooks.set ) {
			hooks.set( this );
		} else {
			Tween.propHooks._default.set( this );
		}
		return this;
	}
};

Tween.prototype.init.prototype = Tween.prototype;

Tween.propHooks = {
	_default: {
		get: function( tween ) {
			var result;

			if ( tween.elem[ tween.prop ] != null &&
				(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
				return tween.elem[ tween.prop ];
			}

			// passing any value as a 4th parameter to .css will automatically
			// attempt a parseFloat and fallback to a string if the parse fails
			// so, simple values such as "10px" are parsed to Float.
			// complex values such as "rotate(1rad)" are returned as is.
			result = jQuery.css( tween.elem, tween.prop, false, "" );
			// Empty strings, null, undefined and "auto" are converted to 0.
			return !result || result === "auto" ? 0 : result;
		},
		set: function( tween ) {
			// use step hook for back compat - use cssHook if its there - use .style if its
			// available and use plain properties where available
			if ( jQuery.fx.step[ tween.prop ] ) {
				jQuery.fx.step[ tween.prop ]( tween );
			} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
			} else {
				tween.elem[ tween.prop ] = tween.now;
			}
		}
	}
};

// Remove in 2.0 - this supports IE8's panic based approach
// to setting things on disconnected nodes

Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
	set: function( tween ) {
		if ( tween.elem.nodeType && tween.elem.parentNode ) {
			tween.elem[ tween.prop ] = tween.now;
		}
	}
};

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" ||
			// special check for .toggle( handler, handler, ... )
			( !i && jQuery.isFunction( speed ) && jQuery.isFunction( easing ) ) ?
			cssFn.apply( this, arguments ) :
			this.animate( genFx( name, true ), speed, easing, callback );
	};
});

jQuery.fn.extend({
	fadeTo: function( speed, to, easing, callback ) {

		// show any hidden elements after setting opacity to 0
		return this.filter( isHidden ).css( "opacity", 0 ).show()

			// animate to the value specified
			.end().animate({ opacity: to }, speed, easing, callback );
	},
	animate: function( prop, speed, easing, callback ) {
		var empty = jQuery.isEmptyObject( prop ),
			optall = jQuery.speed( speed, easing, callback ),
			doAnimation = function() {
				// Operate on a copy of prop so per-property easing won't be lost
				var anim = Animation( this, jQuery.extend( {}, prop ), optall );

				// Empty animations resolve immediately
				if ( empty ) {
					anim.stop( true );
				}
			};

		return empty || optall.queue === false ?
			this.each( doAnimation ) :
			this.queue( optall.queue, doAnimation );
	},
	stop: function( type, clearQueue, gotoEnd ) {
		var stopQueue = function( hooks ) {
			var stop = hooks.stop;
			delete hooks.stop;
			stop( gotoEnd );
		};

		if ( typeof type !== "string" ) {
			gotoEnd = clearQueue;
			clearQueue = type;
			type = undefined;
		}
		if ( clearQueue && type !== false ) {
			this.queue( type || "fx", [] );
		}

		return this.each(function() {
			var dequeue = true,
				index = type != null && type + "queueHooks",
				timers = jQuery.timers,
				data = jQuery._data( this );

			if ( index ) {
				if ( data[ index ] && data[ index ].stop ) {
					stopQueue( data[ index ] );
				}
			} else {
				for ( index in data ) {
					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
						stopQueue( data[ index ] );
					}
				}
			}

			for ( index = timers.length; index--; ) {
				if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
					timers[ index ].anim.stop( gotoEnd );
					dequeue = false;
					timers.splice( index, 1 );
				}
			}

			// start the next in the queue if the last step wasn't forced
			// timers currently will call their complete callbacks, which will dequeue
			// but only if they were gotoEnd
			if ( dequeue || !gotoEnd ) {
				jQuery.dequeue( this, type );
			}
		});
	}
});

// Generate parameters to create a standard animation
function genFx( type, includeWidth ) {
	var which,
		attrs = { height: type },
		i = 0;

	// if we include width, step value is 1 to do all cssExpand values,
	// if we don't include width, step value is 2 to skip over Left and Right
	for( ; i < 4 ; i += 2 - includeWidth ) {
		which = cssExpand[ i ];
		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
	}

	if ( includeWidth ) {
		attrs.opacity = attrs.width = type;
	}

	return attrs;
}

// Generate shortcuts for custom animations
jQuery.each({
	slideDown: genFx("show"),
	slideUp: genFx("hide"),
	slideToggle: genFx("toggle"),
	fadeIn: { opacity: "show" },
	fadeOut: { opacity: "hide" },
	fadeToggle: { opacity: "toggle" }
}, function( name, props ) {
	jQuery.fn[ name ] = function( speed, easing, callback ) {
		return this.animate( props, speed, easing, callback );
	};
});

jQuery.speed = function( speed, easing, fn ) {
	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
		complete: fn || !fn && easing ||
			jQuery.isFunction( speed ) && speed,
		duration: speed,
		easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
	};

	opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
		opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;

	// normalize opt.queue - true/undefined/null -> "fx"
	if ( opt.queue == null || opt.queue === true ) {
		opt.queue = "fx";
	}

	// Queueing
	opt.old = opt.complete;

	opt.complete = function() {
		if ( jQuery.isFunction( opt.old ) ) {
			opt.old.call( this );
		}

		if ( opt.queue ) {
			jQuery.dequeue( this, opt.queue );
		}
	};

	return opt;
};

jQuery.easing = {
	linear: function( p ) {
		return p;
	},
	swing: function( p ) {
		return 0.5 - Math.cos( p*Math.PI ) / 2;
	}
};

jQuery.timers = [];
jQuery.fx = Tween.prototype.init;
jQuery.fx.tick = function() {
	var timer,
		timers = jQuery.timers,
		i = 0;

	for ( ; i < timers.length; i++ ) {
		timer = timers[ i ];
		// Checks the timer has not already been removed
		if ( !timer() && timers[ i ] === timer ) {
			timers.splice( i--, 1 );
		}
	}

	if ( !timers.length ) {
		jQuery.fx.stop();
	}
};

jQuery.fx.timer = function( timer ) {
	if ( timer() && jQuery.timers.push( timer ) && !timerId ) {
		timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
	}
};

jQuery.fx.interval = 13;

jQuery.fx.stop = function() {
	clearInterval( timerId );
	timerId = null;
};

jQuery.fx.speeds = {
	slow: 600,
	fast: 200,
	// Default speed
	_default: 400
};

// Back Compat <1.8 extension point
jQuery.fx.step = {};

if ( jQuery.expr && jQuery.expr.filters ) {
	jQuery.expr.filters.animated = function( elem ) {
		return jQuery.grep(jQuery.timers, function( fn ) {
			return elem === fn.elem;
		}).length;
	};
}
var rroot = /^(?:body|html)$/i;

jQuery.fn.offset = function( options ) {
	if ( arguments.length ) {
		return options === undefined ?
			this :
			this.each(function( i ) {
				jQuery.offset.setOffset( this, options, i );
			});
	}

	var box, docElem, body, win, clientTop, clientLeft, scrollTop, scrollLeft, top, left,
		elem = this[ 0 ],
		doc = elem && elem.ownerDocument;

	if ( !doc ) {
		return;
	}

	if ( (body = doc.body) === elem ) {
		return jQuery.offset.bodyOffset( elem );
	}

	docElem = doc.documentElement;

	// Make sure we're not dealing with a disconnected DOM node
	if ( !jQuery.contains( docElem, elem ) ) {
		return { top: 0, left: 0 };
	}

	box = elem.getBoundingClientRect();
	win = getWindow( doc );
	clientTop  = docElem.clientTop  || body.clientTop  || 0;
	clientLeft = docElem.clientLeft || body.clientLeft || 0;
	scrollTop  = win.pageYOffset || docElem.scrollTop;
	scrollLeft = win.pageXOffset || docElem.scrollLeft;
	top  = box.top  + scrollTop  - clientTop;
	left = box.left + scrollLeft - clientLeft;

	return { top: top, left: left };
};

jQuery.offset = {

	bodyOffset: function( body ) {
		var top = body.offsetTop,
			left = body.offsetLeft;

		if ( jQuery.support.doesNotIncludeMarginInBodyOffset ) {
			top  += parseFloat( jQuery.css(body, "marginTop") ) || 0;
			left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
		}

		return { top: top, left: left };
	},

	setOffset: function( elem, options, i ) {
		var position = jQuery.css( elem, "position" );

		// set position first, in-case top/left are set even on static elem
		if ( position === "static" ) {
			elem.style.position = "relative";
		}

		var curElem = jQuery( elem ),
			curOffset = curElem.offset(),
			curCSSTop = jQuery.css( elem, "top" ),
			curCSSLeft = jQuery.css( elem, "left" ),
			calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
			props = {}, curPosition = {}, curTop, curLeft;

		// need to be able to calculate position if either top or left is auto and position is either absolute or fixed
		if ( calculatePosition ) {
			curPosition = curElem.position();
			curTop = curPosition.top;
			curLeft = curPosition.left;
		} else {
			curTop = parseFloat( curCSSTop ) || 0;
			curLeft = parseFloat( curCSSLeft ) || 0;
		}

		if ( jQuery.isFunction( options ) ) {
			options = options.call( elem, i, curOffset );
		}

		if ( options.top != null ) {
			props.top = ( options.top - curOffset.top ) + curTop;
		}
		if ( options.left != null ) {
			props.left = ( options.left - curOffset.left ) + curLeft;
		}

		if ( "using" in options ) {
			options.using.call( elem, props );
		} else {
			curElem.css( props );
		}
	}
};


jQuery.fn.extend({

	position: function() {
		if ( !this[0] ) {
			return;
		}

		var elem = this[0],

		// Get *real* offsetParent
		offsetParent = this.offsetParent(),

		// Get correct offsets
		offset       = this.offset(),
		parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();

		// Subtract element margins
		// note: when an element has margin: auto the offsetLeft and marginLeft
		// are the same in Safari causing offset.left to incorrectly be 0
		offset.top  -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
		offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;

		// Add offsetParent borders
		parentOffset.top  += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
		parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;

		// Subtract the two offsets
		return {
			top:  offset.top  - parentOffset.top,
			left: offset.left - parentOffset.left
		};
	},

	offsetParent: function() {
		return this.map(function() {
			var offsetParent = this.offsetParent || document.body;
			while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
				offsetParent = offsetParent.offsetParent;
			}
			return offsetParent || document.body;
		});
	}
});


// Create scrollLeft and scrollTop methods
jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) {
	var top = /Y/.test( prop );

	jQuery.fn[ method ] = function( val ) {
		return jQuery.access( this, function( elem, method, val ) {
			var win = getWindow( elem );

			if ( val === undefined ) {
				return win ? (prop in win) ? win[ prop ] :
					win.document.documentElement[ method ] :
					elem[ method ];
			}

			if ( win ) {
				win.scrollTo(
					!top ? val : jQuery( win ).scrollLeft(),
					 top ? val : jQuery( win ).scrollTop()
				);

			} else {
				elem[ method ] = val;
			}
		}, method, val, arguments.length, null );
	};
});

function getWindow( elem ) {
	return jQuery.isWindow( elem ) ?
		elem :
		elem.nodeType === 9 ?
			elem.defaultView || elem.parentWindow :
			false;
}
// 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 ) {
		// margin is only for outerHeight, outerWidth
		jQuery.fn[ funcName ] = function( margin, value ) {
			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );

			return jQuery.access( this, function( elem, type, value ) {
				var doc;

				if ( jQuery.isWindow( elem ) ) {
					// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
					// isn't a whole lot we can do. See pull request at this URL for discussion:
					// https://github.com/jquery/jquery/pull/764
					return elem.document.documentElement[ "client" + name ];
				}

				// Get document width or height
				if ( elem.nodeType === 9 ) {
					doc = elem.documentElement;

					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest
					// unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.
					return Math.max(
						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
						elem.body[ "offset" + name ], doc[ "offset" + name ],
						doc[ "client" + name ]
					);
				}

				return value === undefined ?
					// Get width or height on the element, requesting but not forcing parseFloat
					jQuery.css( elem, type, value, extra ) :

					// Set width or height on the element
					jQuery.style( elem, type, value, extra );
			}, type, chainable ? margin : undefined, chainable );
		};
	});
});
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;

// Expose jQuery as an AMD module, but only for AMD loaders that
// understand the issues with loading multiple versions of jQuery
// in a page that all might call define(). The loader will indicate
// they have special allowances for multiple jQuery versions by
// specifying define.amd.jQuery = true. Register as a named module,
// since jQuery can be concatenated with other files that may use define,
// but not use a proper concatenation script that understands anonymous
// AMD modules. A named AMD is safest and most robust way to register.
// Lowercase jquery is used because AMD module names are derived from
// file names, and jQuery is normally delivered in a lowercase file name.
// Do this after creating the global so that if an AMD module wants to call
// noConflict to hide this version of jQuery, it will work.
if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
	define( "jquery", [], function () { return jQuery; } );
}

})( window );
;
!function(){return function e(t,i,n){function a(r,o){if(!i[r]){if(!t[r]){var l="function"==typeof require&&require;if(!o&&l)return l(r,!0);if(s)return s(r,!0);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}var c=i[r]={exports:{}};t[r][0].call(c.exports,function(e){return a(t[r][1][e]||e)},c,c.exports,e,t,i,n)}return i[r].exports}for(var s="function"==typeof require&&require,r=0;r<n.length;r++)a(n[r]);return a}}()({1:[function(e,t,i){var n,a;n=this,a=function(){"use strict";function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function t(e,t){var i,n=Object.keys(e);return Object.getOwnPropertySymbols&&(i=Object.getOwnPropertySymbols(e),t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)),n}function i(e){for(var i=1;i<arguments.length;i++){var n=null!=arguments[i]?arguments[i]:{};i%2?t(Object(n),!0).forEach(function(t){var i,a;i=e,t=n[a=t],a in i?Object.defineProperty(i,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[a]=t}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):t(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}function a(e,t){var i;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(i=function(e,t){if(e){if("string"==typeof e)return n(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Map"===(i="Object"===i&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){i&&(e=i);var a=0;return{s:t=function(){},n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:t}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,r=!0,o=!1;return{s:function(){i=e[Symbol.iterator]()},n:function(){var e=i.next();return r=e.done,e},e:function(e){o=!0,s=e},f:function(){try{r||null==i.return||i.return()}finally{if(o)throw s}}}}function s(e,t){for(var i=document.getElementsByClassName(e.resultsList.className),n=0;n<i.length;n++)t!==i[n]&&t!==e.inputField&&i[n].parentNode.removeChild(i[n]);e.inputField.removeAttribute("aria-activedescendant"),e.inputField.setAttribute("aria-expanded",!1)}function r(e,t,n){var a,s,r=(a=e,(s=document.createElement(a.resultsList.element)).setAttribute("id",a.resultsList.idName),s.setAttribute("aria-label",a.name),s.setAttribute("class",a.resultsList.className),s.setAttribute("role","listbox"),s.setAttribute("tabindex","-1"),a.resultsList.container&&a.resultsList.container(s),("string"==typeof a.resultsList.destination?document.querySelector(a.resultsList.destination):a.resultsList.destination()).insertAdjacentElement(a.resultsList.position,s),s);e.inputField.setAttribute("aria-expanded",!0);for(var o=function(a){var s,o,l,u,c=t.results[a];(u=(s=c,o=a,l=e,(u=document.createElement(l.resultItem.element)).setAttribute("id","".concat(l.resultItem.idName,"_").concat(o)),u.setAttribute("class",l.resultItem.className),u.setAttribute("role","option"),u.innerHTML=s.match,l.resultItem.content&&l.resultItem.content(s,u),u)).addEventListener("click",function(s){s={event:s,matches:n,input:t.input,query:t.query,results:t.results,selection:i(i({},c),{},{index:a})},e.onSelection&&e.onSelection(s)}),r.appendChild(u)},l=0;l<t.results.length;l++)o(l);return r}function o(e,t,i){e.dispatchEvent(new CustomEvent(i,{bubbles:!0,detail:t,cancelable:!0}))}function l(e,t){for(var i=[],n=function(n){function s(a){var s=(a?r[a]:r).toString();s&&((s="function"==typeof e.searchEngine?e.searchEngine(t,s):function(e,t,i){var n=i.diacritics?t.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").normalize("NFC"):t.toLowerCase();if("loose"===i.searchEngine){e=e.replace(/ /g,"");for(var a=[],s=0,r=0;r<n.length;r++){var o=t[r];s<e.length&&n[r]===e[s]&&(o=i.highlight?'<span class="autoComplete_highlighted">'.concat(o,"</span>"):o,s++),a.push(o)}if(s===e.length)return a.join("")}else if(n.includes(e))return e=new RegExp("".concat(e),"i").exec(t),i.highlight?t.replace(e,'<span class="autoComplete_highlighted">'.concat(e,"</span>")):t}(t,s,e))&&a?i.push({key:a,index:n,match:s,value:r}):s&&!a&&i.push({index:n,match:s,value:r}))}var r=e.data.store[n];if(e.data.key){var o,l=a(e.data.key);try{for(l.s();!(o=l.n()).done;)s(o.value)}catch(s){l.e(s)}finally{l.f()}}else s()},s=0;s<e.data.store.length;s++)n(s);return e.sort?i.sort(e.sort):i}var u,c;function d(e){!function(e){if(!(e instanceof d))throw new TypeError("Cannot call a class as a function")}(this);var t=void 0===(M=e.name)?"Search":M,i=void 0===(w=e.selector)?"#autoComplete":w,n=void 0!==(N=e.observer)&&N,a=(P=e.data).src,s=P.key,r=void 0!==(E=P.cache)&&E,o=P.store,l=P.results,u=e.query,c=void 0===(S=(_=void 0===(_=e.trigger)?{}:_).event)?["input"]:S,h=void 0!==(C=_.condition)&&C,f=void 0===(k=e.searchEngine)?"strict":k,p=void 0!==(T=e.diacritics)&&T,m=void 0===(I=e.threshold)?1:I,v=void 0===(x=e.debounce)?0:x,g=void 0===(L=(O=void 0===(O=e.resultsList)?{}:O).render)||L,y=void 0!==(A=O.container)&&A,b=O.destination,w=void 0===(M=O.position)?"afterend":M,E=void 0===(N=O.element)?"ul":N,S=void 0===(P=O.idName)?"autoComplete_list":P,C=void 0===(_=O.className)?"autoComplete_list":_,T=void 0!==(k=O.navigation)&&k,x=void 0!==(I=e.sort)&&I,L=e.placeHolder,M=void 0===(A=e.maxResults)?5:A,_=void 0!==(P=(N=void 0===(N=e.resultItem)?{}:N).content)&&P,k=void 0===(O=N.element)?"li":O,A=void 0===(I=N.idName)?"autoComplete_result":I,O=void 0===(P=N.className)?"autoComplete_result":P,I=e.noResults,P=void 0!==(N=e.highlight)&&N,N=e.feedback;e=e.onSelection;this.name=t,this.selector=i,this.observer=n,this.data={src:a,key:s,cache:r,store:o,results:l},this.query=u,this.trigger={event:c,condition:h},this.searchEngine=f,this.diacritics=p,this.threshold=m,this.debounce=v,this.resultsList={render:g,container:y,destination:b||this.selector,position:w,element:E,idName:S,className:C,navigation:T},this.sort=x,this.placeHolder=L,this.maxResults=M,this.resultItem={content:_,element:k,idName:A,className:O},this.noResults=I,this.highlight=P,this.feedback=N,this.onSelection=e,this.inputField="string"==typeof this.selector?document.querySelector(this.selector):this.selector(),this.observer?this.preInit():this.init()}return u=d,(c=[{key:"start",value:function(e,t){var n=this,a=this.data.results?this.data.results(l(this,t)):l(this,t);t={input:e,query:t,matches:a,results:a.slice(0,this.maxResults)};return o(this.inputField,t,"results"),a.length?this.resultsList.render?(a.length&&r(this,t,a),o(this.inputField,t,"rendered"),function(e,t){function n(e,n,s,l){e.preventDefault(),s?a++:a--,r(n),l.inputField.setAttribute("aria-activedescendant",n[a].id),o(e.srcElement,i(i({event:e},t),{},{selection:t.results[a]}),"navigation")}var a=-1,r=function(e){if(!e)return!1;!function(e){for(var t=0;t<e.length;t++)e[t].removeAttribute("aria-selected"),e[t].classList.remove("autoComplete_selected")}(e),e[a=(a=a>=e.length?0:a)<0?e.length-1:a].setAttribute("aria-selected","true"),e[a].classList.add("autoComplete_selected")},l=e.resultsList.navigation||function(t){var i=document.getElementById(e.resultsList.idName);if(!i)return e.inputField.removeEventListener("keydown",l);i=i.getElementsByTagName(e.resultItem.element),27===t.keyCode?(e.inputField.value="",s(e)):40===t.keyCode||9===t.keyCode?n(t,i,!0,e):38===t.keyCode||9===t.keyCode?n(t,i,!1,e):13===t.keyCode&&(t.preventDefault(),-1<a&&i&&i[a].click())};e.inputField.autoCompleteNavigate&&e.inputField.removeEventListener("keydown",e.inputField.autoCompleteNavigate),e.inputField.autoCompleteNavigate=l,e.inputField.addEventListener("keydown",l)}(this,t),void document.addEventListener("click",function(e){return s(n,e.target)})):this.feedback(t):this.noResults?this.noResults(t,r):null}},{key:"dataStore",value:function(){var e=this;return new Promise(function(t,i){return e.data.cache&&e.data.store?t(null):new Promise(function(t,i){return"function"==typeof e.data.src?e.data.src().then(t,i):t(e.data.src)}).then(function(n){try{return e.data.store=n,o(e.inputField,e.data.store,"fetch"),t()}catch(n){return i(n)}},i)})}},{key:"compose",value:function(){var e=this;return new Promise(function(t,i){var n,a,r,o;return o=e.inputField,r=n=(o instanceof HTMLInputElement||o instanceof HTMLTextAreaElement?o.value:o.innerHTML).toLowerCase(),a=(o=e).query&&o.query.manipulate?o.query.manipulate(r):o.diacritics?r.normalize("NFD").replace(/[\u0300-\u036f]/g,"").normalize("NFC"):r,o=a,((r=e).trigger.condition?r.trigger.condition(o):o.length>=r.threshold&&o.replace(/ /g,"").length)?e.dataStore().then(function(t){try{return s(e),e.start(n,a),l.call(e)}catch(t){return i(t)}},i):(s(e),l.call(e));function l(){return t()}})}},{key:"init",value:function(){var e,t,i,n,a=this;(e=this).inputField.setAttribute("type","text"),e.inputField.setAttribute("role","combobox"),e.inputField.setAttribute("aria-haspopup",!0),e.inputField.setAttribute("aria-expanded",!1),e.inputField.setAttribute("aria-controls",e.resultsList.idName),e.inputField.setAttribute("aria-autocomplete","both"),this.placeHolder&&this.inputField.setAttribute("placeholder",this.placeHolder),this.hook=(t=function(){a.compose()},i=this.debounce,function(){var e=this,a=arguments;clearTimeout(n),n=setTimeout(function(){return t.apply(e,a)},i)}),this.trigger.event.forEach(function(e){a.inputField.removeEventListener(e,a.hook),a.inputField.addEventListener(e,a.hook)}),o(this.inputField,null,"init")}},{key:"preInit",value:function(){var e=this;new MutationObserver(function(t,i){var n,s=a(t);try{for(s.s();!(n=s.n()).done;)n.value,e.inputField&&(i.disconnect(),o(e.inputField,null,"connect"),e.init())}catch(t){s.e(t)}finally{s.f()}}).observe(document,{childList:!0,subtree:!0})}},{key:"unInit",value:function(){this.inputField.removeEventListener("input",this.hook),o(this.inputField,null,"unInit")}}])&&e(u.prototype,c),d},"object"==typeof i&&void 0!==t?t.exports=a():"function"==typeof define&&define.amd?define(a):(n="undefined"!=typeof globalThis?globalThis:n||self).autoComplete=a()},{}],2:[function(e,t,i){t.exports=e("./lib/axios")},{"./lib/axios":4}],3:[function(e,t,i){"use strict";var n=e("./../utils"),a=e("./../core/settle"),s=e("./../helpers/cookies"),r=e("./../helpers/buildURL"),o=e("../core/buildFullPath"),l=e("./../helpers/parseHeaders"),u=e("./../helpers/isURLSameOrigin"),c=e("../core/createError");t.exports=function(e){return new Promise(function(t,i){var d=e.data,h=e.headers,f=e.responseType;n.isFormData(d)&&delete h["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var m=e.auth.username||"",v=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";h.Authorization="Basic "+btoa(m+":"+v)}var g=o(e.baseURL,e.url);function y(){if(p){var n="getAllResponseHeaders"in p?l(p.getAllResponseHeaders()):null,s={data:f&&"text"!==f&&"json"!==f?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:n,config:e,request:p};a(t,i,s),p=null}}if(p.open(e.method.toUpperCase(),r(g,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,"onloadend"in p?p.onloadend=y:p.onreadystatechange=function(){p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))&&setTimeout(y)},p.onabort=function(){p&&(i(c("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){i(c("Network Error",e,null,p)),p=null},p.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),i(c(t,e,e.transitional&&e.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",p)),p=null},n.isStandardBrowserEnv()){var b=(e.withCredentials||u(g))&&e.xsrfCookieName?s.read(e.xsrfCookieName):void 0;b&&(h[e.xsrfHeaderName]=b)}"setRequestHeader"in p&&n.forEach(h,function(e,t){void 0===d&&"content-type"===t.toLowerCase()?delete h[t]:p.setRequestHeader(t,e)}),n.isUndefined(e.withCredentials)||(p.withCredentials=!!e.withCredentials),f&&"json"!==f&&(p.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){p&&(p.abort(),i(e),p=null)}),d||(d=null),p.send(d)})}},{"../core/buildFullPath":10,"../core/createError":11,"./../core/settle":15,"./../helpers/buildURL":19,"./../helpers/cookies":21,"./../helpers/isURLSameOrigin":24,"./../helpers/parseHeaders":26,"./../utils":29}],4:[function(e,t,i){"use strict";var n=e("./utils"),a=e("./helpers/bind"),s=e("./core/Axios"),r=e("./core/mergeConfig");function o(e){var t=new s(e),i=a(s.prototype.request,t);return n.extend(i,s.prototype,t),n.extend(i,t),i}var l=o(e("./defaults"));l.Axios=s,l.create=function(e){return o(r(l.defaults,e))},l.Cancel=e("./cancel/Cancel"),l.CancelToken=e("./cancel/CancelToken"),l.isCancel=e("./cancel/isCancel"),l.all=function(e){return Promise.all(e)},l.spread=e("./helpers/spread"),l.isAxiosError=e("./helpers/isAxiosError"),t.exports=l,t.exports.default=l},{"./cancel/Cancel":5,"./cancel/CancelToken":6,"./cancel/isCancel":7,"./core/Axios":8,"./core/mergeConfig":14,"./defaults":17,"./helpers/bind":18,"./helpers/isAxiosError":23,"./helpers/spread":27,"./utils":29}],5:[function(e,t,i){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,t.exports=n},{}],6:[function(e,t,i){"use strict";var n=e("./Cancel");function a(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var i=this;e(function(e){i.reason||(i.reason=new n(e),t(i.reason))})}a.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},a.source=function(){var e;return{token:new a(function(t){e=t}),cancel:e}},t.exports=a},{"./Cancel":5}],7:[function(e,t,i){"use strict";t.exports=function(e){return!(!e||!e.__CANCEL__)}},{}],8:[function(e,t,i){"use strict";var n=e("./../utils"),a=e("../helpers/buildURL"),s=e("./InterceptorManager"),r=e("./dispatchRequest"),o=e("./mergeConfig"),l=e("../helpers/validator"),u=l.validators;function c(e){this.defaults=e,this.interceptors={request:new s,response:new s}}c.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=o(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&l.assertOptions(t,{silentJSONParsing:u.transitional(u.boolean,"1.0.0"),forcedJSONParsing:u.transitional(u.boolean,"1.0.0"),clarifyTimeoutError:u.transitional(u.boolean,"1.0.0")},!1);var i=[],n=!0;this.interceptors.request.forEach(function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(n=n&&t.synchronous,i.unshift(t.fulfilled,t.rejected))});var a,s=[];if(this.interceptors.response.forEach(function(e){s.push(e.fulfilled,e.rejected)}),!n){var c=[r,void 0];for(Array.prototype.unshift.apply(c,i),c=c.concat(s),a=Promise.resolve(e);c.length;)a=a.then(c.shift(),c.shift());return a}for(var d=e;i.length;){var h=i.shift(),f=i.shift();try{d=h(d)}catch(e){f(e);break}}try{a=r(d)}catch(e){return Promise.reject(e)}for(;s.length;)a=a.then(s.shift(),s.shift());return a},c.prototype.getUri=function(e){return e=o(this.defaults,e),a(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},n.forEach(["delete","get","head","options"],function(e){c.prototype[e]=function(t,i){return this.request(o(i||{},{method:e,url:t,data:(i||{}).data}))}}),n.forEach(["post","put","patch"],function(e){c.prototype[e]=function(t,i,n){return this.request(o(n||{},{method:e,url:t,data:i}))}}),t.exports=c},{"../helpers/buildURL":19,"../helpers/validator":28,"./../utils":29,"./InterceptorManager":9,"./dispatchRequest":12,"./mergeConfig":14}],9:[function(e,t,i){"use strict";var n=e("./../utils");function a(){this.handlers=[]}a.prototype.use=function(e,t,i){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!i&&i.synchronous,runWhen:i?i.runWhen:null}),this.handlers.length-1},a.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},a.prototype.forEach=function(e){n.forEach(this.handlers,function(t){null!==t&&e(t)})},t.exports=a},{"./../utils":29}],10:[function(e,t,i){"use strict";var n=e("../helpers/isAbsoluteURL"),a=e("../helpers/combineURLs");t.exports=function(e,t){return e&&!n(t)?a(e,t):t}},{"../helpers/combineURLs":20,"../helpers/isAbsoluteURL":22}],11:[function(e,t,i){"use strict";var n=e("./enhanceError");t.exports=function(e,t,i,a,s){var r=new Error(e);return n(r,t,i,a,s)}},{"./enhanceError":13}],12:[function(e,t,i){"use strict";var n=e("./../utils"),a=e("./transformData"),s=e("../cancel/isCancel"),r=e("../defaults");function o(e){e.cancelToken&&e.cancelToken.throwIfRequested()}t.exports=function(e){return o(e),e.headers=e.headers||{},e.data=a.call(e,e.data,e.headers,e.transformRequest),e.headers=n.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),n.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]}),(e.adapter||r.adapter)(e).then(function(t){return o(e),t.data=a.call(e,t.data,t.headers,e.transformResponse),t},function(t){return s(t)||(o(e),t&&t.response&&(t.response.data=a.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},{"../cancel/isCancel":7,"../defaults":17,"./../utils":29,"./transformData":16}],13:[function(e,t,i){"use strict";t.exports=function(e,t,i,n,a){return e.config=t,i&&(e.code=i),e.request=n,e.response=a,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},{}],14:[function(e,t,i){"use strict";var n=e("../utils");t.exports=function(e,t){t=t||{};var i={},a=["url","method","data"],s=["headers","auth","proxy","params"],r=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],o=["validateStatus"];function l(e,t){return n.isPlainObject(e)&&n.isPlainObject(t)?n.merge(e,t):n.isPlainObject(t)?n.merge({},t):n.isArray(t)?t.slice():t}function u(a){n.isUndefined(t[a])?n.isUndefined(e[a])||(i[a]=l(void 0,e[a])):i[a]=l(e[a],t[a])}n.forEach(a,function(e){n.isUndefined(t[e])||(i[e]=l(void 0,t[e]))}),n.forEach(s,u),n.forEach(r,function(a){n.isUndefined(t[a])?n.isUndefined(e[a])||(i[a]=l(void 0,e[a])):i[a]=l(void 0,t[a])}),n.forEach(o,function(n){n in t?i[n]=l(e[n],t[n]):n in e&&(i[n]=l(void 0,e[n]))});var c=a.concat(s).concat(r).concat(o),d=Object.keys(e).concat(Object.keys(t)).filter(function(e){return-1===c.indexOf(e)});return n.forEach(d,u),i}},{"../utils":29}],15:[function(e,t,i){"use strict";var n=e("./createError");t.exports=function(e,t,i){var a=i.config.validateStatus;i.status&&a&&!a(i.status)?t(n("Request failed with status code "+i.status,i.config,null,i.request,i)):e(i)}},{"./createError":11}],16:[function(e,t,i){"use strict";var n=e("./../utils"),a=e("./../defaults");t.exports=function(e,t,i){var s=this||a;return n.forEach(i,function(i){e=i.call(s,e,t)}),e}},{"./../defaults":17,"./../utils":29}],17:[function(e,t,i){(function(i){(function(){"use strict";var n=e("./utils"),a=e("./helpers/normalizeHeaderName"),s=e("./core/enhanceError"),r={"Content-Type":"application/x-www-form-urlencoded"};function o(e,t){!n.isUndefined(e)&&n.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var l,u={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:("undefined"!=typeof XMLHttpRequest?l=e("./adapters/xhr"):void 0!==i&&"[object process]"===Object.prototype.toString.call(i)&&(l=e("./adapters/http")),l),transformRequest:[function(e,t){return a(t,"Accept"),a(t,"Content-Type"),n.isFormData(e)||n.isArrayBuffer(e)||n.isBuffer(e)||n.isStream(e)||n.isFile(e)||n.isBlob(e)?e:n.isArrayBufferView(e)?e.buffer:n.isURLSearchParams(e)?(o(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):n.isObject(e)||t&&"application/json"===t["Content-Type"]?(o(t,"application/json"),function(e,t,i){if(n.isString(e))try{return(t||JSON.parse)(e),n.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(i||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional,i=t&&t.silentJSONParsing,a=t&&t.forcedJSONParsing,r=!i&&"json"===this.responseType;if(r||a&&n.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(r){if("SyntaxError"===e.name)throw s(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},n.forEach(["delete","get","head"],function(e){u.headers[e]={}}),n.forEach(["post","put","patch"],function(e){u.headers[e]=n.merge(r)}),t.exports=u}).call(this)}).call(this,e("_process"))},{"./adapters/http":3,"./adapters/xhr":3,"./core/enhanceError":13,"./helpers/normalizeHeaderName":25,"./utils":29,_process:37}],18:[function(e,t,i){"use strict";t.exports=function(e,t){return function(){for(var i=new Array(arguments.length),n=0;n<i.length;n++)i[n]=arguments[n];return e.apply(t,i)}}},{}],19:[function(e,t,i){"use strict";var n=e("./../utils");function a(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(e,t,i){if(!t)return e;var s;if(i)s=i(t);else if(n.isURLSearchParams(t))s=t.toString();else{var r=[];n.forEach(t,function(e,t){null!=e&&(n.isArray(e)?t+="[]":e=[e],n.forEach(e,function(e){n.isDate(e)?e=e.toISOString():n.isObject(e)&&(e=JSON.stringify(e)),r.push(a(t)+"="+a(e))}))}),s=r.join("&")}if(s){var o=e.indexOf("#");-1!==o&&(e=e.slice(0,o)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}},{"./../utils":29}],20:[function(e,t,i){"use strict";t.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},{}],21:[function(e,t,i){"use strict";var n=e("./../utils");t.exports=n.isStandardBrowserEnv()?{write:function(e,t,i,a,s,r){var o=[];o.push(e+"="+encodeURIComponent(t)),n.isNumber(i)&&o.push("expires="+new Date(i).toGMTString()),n.isString(a)&&o.push("path="+a),n.isString(s)&&o.push("domain="+s),!0===r&&o.push("secure"),document.cookie=o.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},{"./../utils":29}],22:[function(e,t,i){"use strict";t.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},{}],23:[function(e,t,i){"use strict";t.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},{}],24:[function(e,t,i){"use strict";var n=e("./../utils");t.exports=n.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),i=document.createElement("a");function a(e){var n=e;return t&&(i.setAttribute("href",n),n=i.href),i.setAttribute("href",n),{href:i.href,protocol:i.protocol?i.protocol.replace(/:$/,""):"",host:i.host,search:i.search?i.search.replace(/^\?/,""):"",hash:i.hash?i.hash.replace(/^#/,""):"",hostname:i.hostname,port:i.port,pathname:"/"===i.pathname.charAt(0)?i.pathname:"/"+i.pathname}}return e=a(window.location.href),function(t){var i=n.isString(t)?a(t):t;return i.protocol===e.protocol&&i.host===e.host}}():function(){return!0}},{"./../utils":29}],25:[function(e,t,i){"use strict";var n=e("../utils");t.exports=function(e,t){n.forEach(e,function(i,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=i,delete e[n])})}},{"../utils":29}],26:[function(e,t,i){"use strict";var n=e("./../utils"),a=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(e){var t,i,s,r={};return e?(n.forEach(e.split("\n"),function(e){if(s=e.indexOf(":"),t=n.trim(e.substr(0,s)).toLowerCase(),i=n.trim(e.substr(s+1)),t){if(r[t]&&a.indexOf(t)>=0)return;r[t]="set-cookie"===t?(r[t]?r[t]:[]).concat([i]):r[t]?r[t]+", "+i:i}}),r):r}},{"./../utils":29}],27:[function(e,t,i){"use strict";t.exports=function(e){return function(t){return e.apply(null,t)}}},{}],28:[function(e,t,i){"use strict";var n=e("./../../package.json"),a={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){a[e]=function(i){return typeof i===e||"a"+(t<1?"n ":" ")+e}});var s={},r=n.version.split(".");function o(e,t){for(var i=t?t.split("."):r,n=e.split("."),a=0;a<3;a++){if(i[a]>n[a])return!0;if(i[a]<n[a])return!1}return!1}a.transitional=function(e,t,i){var a=t&&o(t);function r(e,t){return"[Axios v"+n.version+"] Transitional option '"+e+"'"+t+(i?". "+i:"")}return function(i,n,o){if(!1===e)throw new Error(r(n," has been removed in "+t));return a&&!s[n]&&(s[n]=!0,console.warn(r(n," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(i,n,o)}},t.exports={isOlderVersion:o,assertOptions:function(e,t,i){if("object"!=typeof e)throw new TypeError("options must be an object");for(var n=Object.keys(e),a=n.length;a-- >0;){var s=n[a],r=t[s];if(r){var o=e[s],l=void 0===o||r(o,s,e);if(!0!==l)throw new TypeError("option "+s+" must be "+l)}else if(!0!==i)throw Error("Unknown option "+s)}},validators:a}},{"./../../package.json":30}],29:[function(e,t,i){"use strict";var n=e("./helpers/bind"),a=Object.prototype.toString;function s(e){return"[object Array]"===a.call(e)}function r(e){return void 0===e}function o(e){return null!==e&&"object"==typeof e}function l(e){if("[object Object]"!==a.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function u(e){return"[object Function]"===a.call(e)}function c(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),s(e))for(var i=0,n=e.length;i<n;i++)t.call(null,e[i],i,e);else for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.call(null,e[a],a,e)}t.exports={isArray:s,isArrayBuffer:function(e){return"[object ArrayBuffer]"===a.call(e)},isBuffer:function(e){return null!==e&&!r(e)&&null!==e.constructor&&!r(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:o,isPlainObject:l,isUndefined:r,isDate:function(e){return"[object Date]"===a.call(e)},isFile:function(e){return"[object File]"===a.call(e)},isBlob:function(e){return"[object Blob]"===a.call(e)},isFunction:u,isStream:function(e){return o(e)&&u(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:c,merge:function e(){var t={};function i(i,n){l(t[n])&&l(i)?t[n]=e(t[n],i):l(i)?t[n]=e({},i):s(i)?t[n]=i.slice():t[n]=i}for(var n=0,a=arguments.length;n<a;n++)c(arguments[n],i);return t},extend:function(e,t,i){return c(t,function(t,a){e[a]=i&&"function"==typeof t?n(t,i):t}),e},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}}},{"./helpers/bind":18}],30:[function(e,t,i){t.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}},{}],31:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=e("ssr-window");function a(e){return(a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function r(e,t,i){return(r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,i){var n=[null];n.push.apply(n,t);var a=new(Function.bind.apply(e,n));return i&&s(a,i.prototype),a}).apply(null,arguments)}function o(e){var t="function"==typeof Map?new Map:void 0;return(o=function(e){if(null===e||(i=e,-1===Function.toString.call(i).indexOf("[native code]")))return e;var i;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return r(e,arguments,a(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),s(n,e)})(e)}var l=function(e){var t,i;function n(t){var i,n,a;return i=e.call.apply(e,[this].concat(t))||this,n=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(i),a=n.__proto__,Object.defineProperty(n,"__proto__",{get:function(){return a},set:function(e){a.__proto__=e}}),i}return i=e,(t=n).prototype=Object.create(i.prototype),t.prototype.constructor=t,t.__proto__=i,n}(o(Array));function u(e){void 0===e&&(e=[]);var t=[];return e.forEach(function(e){Array.isArray(e)?t.push.apply(t,u(e)):t.push(e)}),t}function c(e,t){return Array.prototype.filter.call(e,t)}function d(e,t){var i=n.getWindow(),a=n.getDocument(),s=[];if(!t&&e instanceof l)return e;if(!e)return new l(s);if("string"==typeof e){var r=e.trim();if(r.indexOf("<")>=0&&r.indexOf(">")>=0){var o="div";0===r.indexOf("<li")&&(o="ul"),0===r.indexOf("<tr")&&(o="tbody"),0!==r.indexOf("<td")&&0!==r.indexOf("<th")||(o="tr"),0===r.indexOf("<tbody")&&(o="table"),0===r.indexOf("<option")&&(o="select");var u=a.createElement(o);u.innerHTML=r;for(var c=0;c<u.childNodes.length;c+=1)s.push(u.childNodes[c])}else s=function(e,t){if("string"!=typeof e)return[e];for(var i=[],n=t.querySelectorAll(e),a=0;a<n.length;a+=1)i.push(n[a]);return i}(e.trim(),t||a)}else if(e.nodeType||e===i||e===a)s.push(e);else if(Array.isArray(e)){if(e instanceof l)return e;s=e}return new l(function(e){for(var t=[],i=0;i<e.length;i+=1)-1===t.indexOf(e[i])&&t.push(e[i]);return t}(s))}d.fn=l.prototype;var h="resize scroll".split(" ");function f(e){return function(){for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];if(void 0===i[0]){for(var a=0;a<this.length;a+=1)h.indexOf(e)<0&&(e in this[a]?this[a][e]():d(this[a]).trigger(e));return this}return this.on.apply(this,[e].concat(i))}}var p=f("click"),m=f("blur"),v=f("focus"),g=f("focusin"),y=f("focusout"),b=f("keyup"),w=f("keydown"),E=f("keypress"),S=f("submit"),C=f("change"),T=f("mousedown"),x=f("mousemove"),L=f("mouseup"),M=f("mouseenter"),_=f("mouseleave"),k=f("mouseout"),A=f("mouseover"),O=f("touchstart"),I=f("touchend"),P=f("touchmove"),N=f("resize"),j=f("scroll");i.$=d,i.add=function(){for(var e,t,i=arguments.length,n=new Array(i),a=0;a<i;a++)n[a]=arguments[a];for(e=0;e<n.length;e+=1){var s=d(n[e]);for(t=0;t<s.length;t+=1)this.push(s[t])}return this},i.addClass=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=u(t.map(function(e){return e.split(" ")}));return this.forEach(function(e){var t;(t=e.classList).add.apply(t,n)}),this},i.animate=function(e,t){var i,a=n.getWindow(),s=this,r={props:Object.assign({},e),params:Object.assign({duration:300,easing:"swing"},t),elements:s,animating:!1,que:[],easingProgress:function(e,t){return"swing"===e?.5-Math.cos(t*Math.PI)/2:"function"==typeof e?e(t):t},stop:function(){r.frameId&&a.cancelAnimationFrame(r.frameId),r.animating=!1,r.elements.each(function(e){delete e.dom7AnimateInstance}),r.que=[]},done:function(e){if(r.animating=!1,r.elements.each(function(e){delete e.dom7AnimateInstance}),e&&e(s),r.que.length>0){var t=r.que.shift();r.animate(t[0],t[1])}},animate:function(e,t){if(r.animating)return r.que.push([e,t]),r;var i=[];r.elements.each(function(t,n){var s,o,l,u,c;t.dom7AnimateInstance||(r.elements[n].dom7AnimateInstance=r),i[n]={container:t},Object.keys(e).forEach(function(r){s=a.getComputedStyle(t,null).getPropertyValue(r).replace(",","."),o=parseFloat(s),l=s.replace(o,""),u=parseFloat(e[r]),c=e[r]+l,i[n][r]={initialFullValue:s,initialValue:o,unit:l,finalValue:u,finalFullValue:c,currentValue:o}})});var n,o,l=null,u=0,c=0,d=!1;return r.animating=!0,r.frameId=a.requestAnimationFrame(function h(){var f,p;n=(new Date).getTime(),d||(d=!0,t.begin&&t.begin(s)),null===l&&(l=n),t.progress&&t.progress(s,Math.max(Math.min((n-l)/t.duration,1),0),l+t.duration-n<0?0:l+t.duration-n,l),i.forEach(function(a){var s=a;o||s.done||Object.keys(e).forEach(function(a){if(!o&&!s.done){f=Math.max(Math.min((n-l)/t.duration,1),0),p=r.easingProgress(t.easing,f);var d=s[a],h=d.initialValue,m=d.finalValue,v=d.unit;s[a].currentValue=h+p*(m-h);var g=s[a].currentValue;(m>h&&g>=m||m<h&&g<=m)&&(s.container.style[a]=m+v,(c+=1)===Object.keys(e).length&&(s.done=!0,u+=1),u===i.length&&(o=!0)),o?r.done(t.complete):s.container.style[a]=g+v}})}),o||(r.frameId=a.requestAnimationFrame(h))}),r}};if(0===r.elements.length)return s;for(var o=0;o<r.elements.length;o+=1)r.elements[o].dom7AnimateInstance?i=r.elements[o].dom7AnimateInstance:r.elements[o].dom7AnimateInstance=r;return i||(i=r),"stop"===e?i.stop():i.animate(r.props,r.params),s},i.animationEnd=function(e){var t=this;return e&&t.on("animationend",function i(n){n.target===this&&(e.call(this,n),t.off("animationend",i))}),this},i.append=function(){for(var e,t=n.getDocument(),i=0;i<arguments.length;i+=1){e=i<0||arguments.length<=i?void 0:arguments[i];for(var a=0;a<this.length;a+=1)if("string"==typeof e){var s=t.createElement("div");for(s.innerHTML=e;s.firstChild;)this[a].appendChild(s.firstChild)}else if(e instanceof l)for(var r=0;r<e.length;r+=1)this[a].appendChild(e[r]);else this[a].appendChild(e)}return this},i.appendTo=function(e){return d(e).append(this),this},i.attr=function(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(var i=0;i<this.length;i+=1)if(2===arguments.length)this[i].setAttribute(e,t);else for(var n in e)this[i][n]=e[n],this[i].setAttribute(n,e[n]);return this},i.blur=m,i.change=C,i.children=function(e){for(var t=[],i=0;i<this.length;i+=1)for(var n=this[i].children,a=0;a<n.length;a+=1)e&&!d(n[a]).is(e)||t.push(n[a]);return d(t)},i.click=p,i.closest=function(e){var t=this;return void 0===e?d([]):(t.is(e)||(t=t.parents(e).eq(0)),t)},i.css=function(e,t){var i,a=n.getWindow();if(1===arguments.length){if("string"!=typeof e){for(i=0;i<this.length;i+=1)for(var s in e)this[i].style[s]=e[s];return this}if(this[0])return a.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==typeof e){for(i=0;i<this.length;i+=1)this[i].style[e]=t;return this}return this},i.data=function(e,t){var i;if(void 0===t){if(!(i=this[0]))return;if(i.dom7ElementDataStorage&&e in i.dom7ElementDataStorage)return i.dom7ElementDataStorage[e];var n=i.getAttribute("data-"+e);return n||void 0}for(var a=0;a<this.length;a+=1)(i=this[a]).dom7ElementDataStorage||(i.dom7ElementDataStorage={}),i.dom7ElementDataStorage[e]=t;return this},i.dataset=function(){var e=this[0];if(e){var t,i={};if(e.dataset)for(var n in e.dataset)i[n]=e.dataset[n];else for(var a=0;a<e.attributes.length;a+=1){var s=e.attributes[a];s.name.indexOf("data-")>=0&&(i[(t=s.name.split("data-")[1],t.toLowerCase().replace(/-(.)/g,function(e,t){return t.toUpperCase()}))]=s.value)}for(var r in i)"false"===i[r]?i[r]=!1:"true"===i[r]?i[r]=!0:parseFloat(i[r])===1*i[r]&&(i[r]*=1);return i}},i.default=d,i.detach=function(){return this.remove()},i.each=function(e){return e?(this.forEach(function(t,i){e.apply(t,[t,i])}),this):this},i.empty=function(){for(var e=0;e<this.length;e+=1){var t=this[e];if(1===t.nodeType){for(var i=0;i<t.childNodes.length;i+=1)t.childNodes[i].parentNode&&t.childNodes[i].parentNode.removeChild(t.childNodes[i]);t.textContent=""}}return this},i.eq=function(e){if(void 0===e)return this;var t=this.length;if(e>t-1)return d([]);if(e<0){var i=t+e;return d(i<0?[]:[this[i]])}return d([this[e]])},i.filter=function(e){return d(c(this,e))},i.find=function(e){for(var t=[],i=0;i<this.length;i+=1)for(var n=this[i].querySelectorAll(e),a=0;a<n.length;a+=1)t.push(n[a]);return d(t)},i.focus=v,i.focusin=g,i.focusout=y,i.hasClass=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=u(t.map(function(e){return e.split(" ")}));return c(this,function(e){return n.filter(function(t){return e.classList.contains(t)}).length>0}).length>0},i.height=function(){var e=n.getWindow();return this[0]===e?e.innerHeight:this.length>0?parseFloat(this.css("height")):null},i.hide=function(){for(var e=0;e<this.length;e+=1)this[e].style.display="none";return this},i.html=function(e){if(void 0===e)return this[0]?this[0].innerHTML:null;for(var t=0;t<this.length;t+=1)this[t].innerHTML=e;return this},i.index=function(){var e,t=this[0];if(t){for(e=0;null!==(t=t.previousSibling);)1===t.nodeType&&(e+=1);return e}},i.insertAfter=function(e){for(var t=d(e),i=0;i<this.length;i+=1)if(1===t.length)t[0].parentNode.insertBefore(this[i],t[0].nextSibling);else if(t.length>1)for(var n=0;n<t.length;n+=1)t[n].parentNode.insertBefore(this[i].cloneNode(!0),t[n].nextSibling)},i.insertBefore=function(e){for(var t=d(e),i=0;i<this.length;i+=1)if(1===t.length)t[0].parentNode.insertBefore(this[i],t[0]);else if(t.length>1)for(var n=0;n<t.length;n+=1)t[n].parentNode.insertBefore(this[i].cloneNode(!0),t[n])},i.is=function(e){var t,i,a=n.getWindow(),s=n.getDocument(),r=this[0];if(!r||void 0===e)return!1;if("string"==typeof e){if(r.matches)return r.matches(e);if(r.webkitMatchesSelector)return r.webkitMatchesSelector(e);if(r.msMatchesSelector)return r.msMatchesSelector(e);for(t=d(e),i=0;i<t.length;i+=1)if(t[i]===r)return!0;return!1}if(e===s)return r===s;if(e===a)return r===a;if(e.nodeType||e instanceof l){for(t=e.nodeType?[e]:e,i=0;i<t.length;i+=1)if(t[i]===r)return!0;return!1}return!1},i.keydown=w,i.keypress=E,i.keyup=b,i.mousedown=T,i.mouseenter=M,i.mouseleave=_,i.mousemove=x,i.mouseout=k,i.mouseover=A,i.mouseup=L,i.next=function(e){return this.length>0?e?this[0].nextElementSibling&&d(this[0].nextElementSibling).is(e)?d([this[0].nextElementSibling]):d([]):this[0].nextElementSibling?d([this[0].nextElementSibling]):d([]):d([])},i.nextAll=function(e){var t=[],i=this[0];if(!i)return d([]);for(;i.nextElementSibling;){var n=i.nextElementSibling;e?d(n).is(e)&&t.push(n):t.push(n),i=n}return d(t)},i.off=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=t[0],a=t[1],s=t[2],r=t[3];"function"==typeof t[1]&&(n=t[0],s=t[1],r=t[2],a=void 0),r||(r=!1);for(var o=n.split(" "),l=0;l<o.length;l+=1)for(var u=o[l],c=0;c<this.length;c+=1){var d=this[c],h=void 0;if(!a&&d.dom7Listeners?h=d.dom7Listeners[u]:a&&d.dom7LiveListeners&&(h=d.dom7LiveListeners[u]),h&&h.length)for(var f=h.length-1;f>=0;f-=1){var p=h[f];s&&p.listener===s?(d.removeEventListener(u,p.proxyListener,r),h.splice(f,1)):s&&p.listener&&p.listener.dom7proxy&&p.listener.dom7proxy===s?(d.removeEventListener(u,p.proxyListener,r),h.splice(f,1)):s||(d.removeEventListener(u,p.proxyListener,r),h.splice(f,1))}}return this},i.offset=function(){if(this.length>0){var e=n.getWindow(),t=n.getDocument(),i=this[0],a=i.getBoundingClientRect(),s=t.body,r=i.clientTop||s.clientTop||0,o=i.clientLeft||s.clientLeft||0,l=i===e?e.scrollY:i.scrollTop,u=i===e?e.scrollX:i.scrollLeft;return{top:a.top+l-r,left:a.left+u-o}}return null},i.on=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=t[0],a=t[1],s=t[2],r=t[3];function o(e){var t=e.target;if(t){var i=e.target.dom7EventData||[];if(i.indexOf(e)<0&&i.unshift(e),d(t).is(a))s.apply(t,i);else for(var n=d(t).parents(),r=0;r<n.length;r+=1)d(n[r]).is(a)&&s.apply(n[r],i)}}function l(e){var t=e&&e.target&&e.target.dom7EventData||[];t.indexOf(e)<0&&t.unshift(e),s.apply(this,t)}"function"==typeof t[1]&&(n=t[0],s=t[1],r=t[2],a=void 0),r||(r=!1);for(var u,c=n.split(" "),h=0;h<this.length;h+=1){var f=this[h];if(a)for(u=0;u<c.length;u+=1){var p=c[u];f.dom7LiveListeners||(f.dom7LiveListeners={}),f.dom7LiveListeners[p]||(f.dom7LiveListeners[p]=[]),f.dom7LiveListeners[p].push({listener:s,proxyListener:o}),f.addEventListener(p,o,r)}else for(u=0;u<c.length;u+=1){var m=c[u];f.dom7Listeners||(f.dom7Listeners={}),f.dom7Listeners[m]||(f.dom7Listeners[m]=[]),f.dom7Listeners[m].push({listener:s,proxyListener:l}),f.addEventListener(m,l,r)}}return this},i.once=function(){for(var e=this,t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];var a=i[0],s=i[1],r=i[2],o=i[3];function l(){for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];r.apply(this,i),e.off(a,s,l,o),l.dom7proxy&&delete l.dom7proxy}return"function"==typeof i[1]&&(a=i[0],r=i[1],o=i[2],s=void 0),l.dom7proxy=r,e.on(a,s,l,o)},i.outerHeight=function(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetHeight+parseFloat(t.getPropertyValue("margin-top"))+parseFloat(t.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},i.outerWidth=function(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetWidth+parseFloat(t.getPropertyValue("margin-right"))+parseFloat(t.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},i.parent=function(e){for(var t=[],i=0;i<this.length;i+=1)null!==this[i].parentNode&&(e?d(this[i].parentNode).is(e)&&t.push(this[i].parentNode):t.push(this[i].parentNode));return d(t)},i.parents=function(e){for(var t=[],i=0;i<this.length;i+=1)for(var n=this[i].parentNode;n;)e?d(n).is(e)&&t.push(n):t.push(n),n=n.parentNode;return d(t)},i.prepend=function(e){var t,i,a=n.getDocument();for(t=0;t<this.length;t+=1)if("string"==typeof e){var s=a.createElement("div");for(s.innerHTML=e,i=s.childNodes.length-1;i>=0;i-=1)this[t].insertBefore(s.childNodes[i],this[t].childNodes[0])}else if(e instanceof l)for(i=0;i<e.length;i+=1)this[t].insertBefore(e[i],this[t].childNodes[0]);else this[t].insertBefore(e,this[t].childNodes[0]);return this},i.prependTo=function(e){return d(e).prepend(this),this},i.prev=function(e){if(this.length>0){var t=this[0];return e?t.previousElementSibling&&d(t.previousElementSibling).is(e)?d([t.previousElementSibling]):d([]):t.previousElementSibling?d([t.previousElementSibling]):d([])}return d([])},i.prevAll=function(e){var t=[],i=this[0];if(!i)return d([]);for(;i.previousElementSibling;){var n=i.previousElementSibling;e?d(n).is(e)&&t.push(n):t.push(n),i=n}return d(t)},i.prop=function(e,t){if(1!==arguments.length||"string"!=typeof e){for(var i=0;i<this.length;i+=1)if(2===arguments.length)this[i][e]=t;else for(var n in e)this[i][n]=e[n];return this}return this[0]?this[0][e]:this},i.remove=function(){for(var e=0;e<this.length;e+=1)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);return this},i.removeAttr=function(e){for(var t=0;t<this.length;t+=1)this[t].removeAttribute(e);return this},i.removeClass=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=u(t.map(function(e){return e.split(" ")}));return this.forEach(function(e){var t;(t=e.classList).remove.apply(t,n)}),this},i.removeData=function(e){for(var t=0;t<this.length;t+=1){var i=this[t];i.dom7ElementDataStorage&&i.dom7ElementDataStorage[e]&&(i.dom7ElementDataStorage[e]=null,delete i.dom7ElementDataStorage[e])}},i.resize=N,i.scroll=j,i.scrollLeft=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=t[0],a=t[1],s=t[2],r=t[3];return 3===t.length&&"function"==typeof s&&(n=t[0],a=t[1],r=t[2],s=t[3]),void 0===n?this.length>0?this[0].scrollLeft:null:this.scrollTo(n,void 0,a,s,r)},i.scrollTo=function(){for(var e=n.getWindow(),t=arguments.length,i=new Array(t),a=0;a<t;a++)i[a]=arguments[a];var s=i[0],r=i[1],o=i[2],l=i[3],u=i[4];return 4===i.length&&"function"==typeof l&&(u=l,s=i[0],r=i[1],o=i[2],u=i[3],l=i[4]),void 0===l&&(l="swing"),this.each(function(){var t,i,n,a,c,d,h,f,p=this,m=r>0||0===r,v=s>0||0===s;if(void 0===l&&(l="swing"),m&&(t=p.scrollTop,o||(p.scrollTop=r)),v&&(i=p.scrollLeft,o||(p.scrollLeft=s)),o){m&&(n=p.scrollHeight-p.offsetHeight,c=Math.max(Math.min(r,n),0)),v&&(a=p.scrollWidth-p.offsetWidth,d=Math.max(Math.min(s,a),0));var g=null;m&&c===t&&(m=!1),v&&d===i&&(v=!1),e.requestAnimationFrame(function n(a){void 0===a&&(a=(new Date).getTime()),null===g&&(g=a);var s,r=Math.max(Math.min((a-g)/o,1),0),y="linear"===l?r:.5-Math.cos(r*Math.PI)/2;m&&(h=t+y*(c-t)),v&&(f=i+y*(d-i)),m&&c>t&&h>=c&&(p.scrollTop=c,s=!0),m&&c<t&&h<=c&&(p.scrollTop=c,s=!0),v&&d>i&&f>=d&&(p.scrollLeft=d,s=!0),v&&d<i&&f<=d&&(p.scrollLeft=d,s=!0),s?u&&u():(m&&(p.scrollTop=h),v&&(p.scrollLeft=f),e.requestAnimationFrame(n))})}})},i.scrollTop=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=t[0],a=t[1],s=t[2],r=t[3];return 3===t.length&&"function"==typeof s&&(n=t[0],a=t[1],r=t[2],s=t[3]),void 0===n?this.length>0?this[0].scrollTop:null:this.scrollTo(void 0,n,a,s,r)},i.show=function(){for(var e=n.getWindow(),t=0;t<this.length;t+=1){var i=this[t];"none"===i.style.display&&(i.style.display=""),"none"===e.getComputedStyle(i,null).getPropertyValue("display")&&(i.style.display="block")}return this},i.siblings=function(e){return this.nextAll(e).add(this.prevAll(e))},i.stop=function(){for(var e=0;e<this.length;e+=1)this[e].dom7AnimateInstance&&this[e].dom7AnimateInstance.stop()},i.styles=function(){var e=n.getWindow();return this[0]?e.getComputedStyle(this[0],null):{}},i.submit=S,i.text=function(e){if(void 0===e)return this[0]?this[0].textContent.trim():null;for(var t=0;t<this.length;t+=1)this[t].textContent=e;return this},i.toggleClass=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=u(t.map(function(e){return e.split(" ")}));this.forEach(function(e){n.forEach(function(t){e.classList.toggle(t)})})},i.touchend=I,i.touchmove=P,i.touchstart=O,i.transform=function(e){for(var t=0;t<this.length;t+=1)this[t].style.transform=e;return this},i.transition=function(e){for(var t=0;t<this.length;t+=1)this[t].style.transitionDuration="string"!=typeof e?e+"ms":e;return this},i.transitionEnd=function(e){var t=this;return e&&t.on("transitionend",function i(n){n.target===this&&(e.call(this,n),t.off("transitionend",i))}),this},i.trigger=function(){for(var e=n.getWindow(),t=arguments.length,i=new Array(t),a=0;a<t;a++)i[a]=arguments[a];for(var s=i[0].split(" "),r=i[1],o=0;o<s.length;o+=1)for(var l=s[o],u=0;u<this.length;u+=1){var c=this[u];if(e.CustomEvent){var d=new e.CustomEvent(l,{detail:r,bubbles:!0,cancelable:!0});c.dom7EventData=i.filter(function(e,t){return t>0}),c.dispatchEvent(d),c.dom7EventData=[],delete c.dom7EventData}}return this},i.val=function(e){if(void 0===e){var t=this[0];if(!t)return;if(t.multiple&&"select"===t.nodeName.toLowerCase()){for(var i=[],n=0;n<t.selectedOptions.length;n+=1)i.push(t.selectedOptions[n].value);return i}return t.value}for(var a=0;a<this.length;a+=1){var s=this[a];if(Array.isArray(e)&&s.multiple&&"select"===s.nodeName.toLowerCase())for(var r=0;r<s.options.length;r+=1)s.options[r].selected=e.indexOf(s.options[r].value)>=0;else s.value=e}return this},i.value=function(e){return this.val(e)},i.width=function(){var e=n.getWindow();return this[0]===e?e.innerWidth:this.length>0?parseFloat(this.css("width")):null}},{"ssr-window":38}],32:[function(e,t,i){"use strict";t.exports=e("./").polyfill()},{"./":33}],33:[function(e,t,i){(function(n,a){(function(){!function(e,n){"object"==typeof i&&void 0!==t?t.exports=n():"function"==typeof define&&define.amd?define(n):e.ES6Promise=n()}(this,function(){"use strict";function t(e){return"function"==typeof e}var i=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},s=0,r=void 0,o=void 0,l=function(e,t){m[s]=e,m[s+1]=t,2===(s+=2)&&(o?o(v):E())};var u="undefined"!=typeof window?window:void 0,c=u||{},d=c.MutationObserver||c.WebKitMutationObserver,h="undefined"==typeof self&&void 0!==n&&"[object process]"==={}.toString.call(n),f="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function p(){var e=setTimeout;return function(){return e(v,1)}}var m=new Array(1e3);function v(){for(var e=0;e<s;e+=2){(0,m[e])(m[e+1]),m[e]=void 0,m[e+1]=void 0}s=0}var g,y,b,w,E=void 0;function S(e,t){var i=this,n=new this.constructor(x);void 0===n[T]&&D(n);var a=i._state;if(a){var s=arguments[a-1];l(function(){return R(a,n,s,i._result)})}else N(i,n,e,t);return n}function C(e){if(e&&"object"==typeof e&&e.constructor===this)return e;var t=new this(x);return A(t,e),t}h?E=function(){return n.nextTick(v)}:d?(y=0,b=new d(v),w=document.createTextNode(""),b.observe(w,{characterData:!0}),E=function(){w.data=y=++y%2}):f?((g=new MessageChannel).port1.onmessage=v,E=function(){return g.port2.postMessage(0)}):E=void 0===u&&"function"==typeof e?function(){try{var e=Function("return this")().require("vertx");return void 0!==(r=e.runOnLoop||e.runOnContext)?function(){r(v)}:p()}catch(e){return p()}}():p();var T=Math.random().toString(36).substring(2);function x(){}var L=void 0,M=1,_=2;function k(e,i,n){i.constructor===e.constructor&&n===S&&i.constructor.resolve===C?function(e,t){t._state===M?I(e,t._result):t._state===_?P(e,t._result):N(t,void 0,function(t){return A(e,t)},function(t){return P(e,t)})}(e,i):void 0===n?I(e,i):t(n)?function(e,t,i){l(function(e){var n=!1,a=function(e,t,i,n){try{e.call(t,i,n)}catch(e){return e}}(i,t,function(i){n||(n=!0,t!==i?A(e,i):I(e,i))},function(t){n||(n=!0,P(e,t))},e._label);!n&&a&&(n=!0,P(e,a))},e)}(e,i,n):I(e,i)}function A(e,t){if(e===t)P(e,new TypeError("You cannot resolve a promise with itself"));else if(a=typeof(n=t),null===n||"object"!==a&&"function"!==a)I(e,t);else{var i=void 0;try{i=t.then}catch(t){return void P(e,t)}k(e,t,i)}var n,a}function O(e){e._onerror&&e._onerror(e._result),j(e)}function I(e,t){e._state===L&&(e._result=t,e._state=M,0!==e._subscribers.length&&l(j,e))}function P(e,t){e._state===L&&(e._state=_,e._result=t,l(O,e))}function N(e,t,i,n){var a=e._subscribers,s=a.length;e._onerror=null,a[s]=t,a[s+M]=i,a[s+_]=n,0===s&&e._state&&l(j,e)}function j(e){var t=e._subscribers,i=e._state;if(0!==t.length){for(var n=void 0,a=void 0,s=e._result,r=0;r<t.length;r+=3)n=t[r],a=t[r+i],n?R(i,n,a,s):a(s);e._subscribers.length=0}}function R(e,i,n,a){var s=t(n),r=void 0,o=void 0,l=!0;if(s){try{r=n(a)}catch(e){l=!1,o=e}if(i===r)return void P(i,new TypeError("A promises callback cannot return that same promise."))}else r=a;i._state!==L||(s&&l?A(i,r):!1===l?P(i,o):e===M?I(i,r):e===_&&P(i,r))}var z=0;function D(e){e[T]=z++,e._state=void 0,e._result=void 0,e._subscribers=[]}var G=function(){function e(e,t){this._instanceConstructor=e,this.promise=new e(x),this.promise[T]||D(this.promise),i(t)?(this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?I(this.promise,this._result):(this.length=this.length||0,this._enumerate(t),0===this._remaining&&I(this.promise,this._result))):P(this.promise,new Error("Array Methods must be provided an Array"))}return e.prototype._enumerate=function(e){for(var t=0;this._state===L&&t<e.length;t++)this._eachEntry(e[t],t)},e.prototype._eachEntry=function(e,t){var i=this._instanceConstructor,n=i.resolve;if(n===C){var a=void 0,s=void 0,r=!1;try{a=e.then}catch(e){r=!0,s=e}if(a===S&&e._state!==L)this._settledAt(e._state,t,e._result);else if("function"!=typeof a)this._remaining--,this._result[t]=e;else if(i===B){var o=new i(x);r?P(o,s):k(o,e,a),this._willSettleAt(o,t)}else this._willSettleAt(new i(function(t){return t(e)}),t)}else this._willSettleAt(n(e),t)},e.prototype._settledAt=function(e,t,i){var n=this.promise;n._state===L&&(this._remaining--,e===_?P(n,i):this._result[t]=i),0===this._remaining&&I(n,this._result)},e.prototype._willSettleAt=function(e,t){var i=this;N(e,void 0,function(e){return i._settledAt(M,t,e)},function(e){return i._settledAt(_,t,e)})},e}();var B=function(){function e(t){this[T]=z++,this._result=this._state=void 0,this._subscribers=[],x!==t&&("function"!=typeof t&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof e?function(e,t){try{t(function(t){A(e,t)},function(t){P(e,t)})}catch(t){P(e,t)}}(this,t):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return e.prototype.catch=function(e){return this.then(null,e)},e.prototype.finally=function(e){var i=this.constructor;return t(e)?this.then(function(t){return i.resolve(e()).then(function(){return t})},function(t){return i.resolve(e()).then(function(){throw t})}):this.then(e,e)},e}();return B.prototype.then=S,B.all=function(e){return new G(this,e).promise},B.race=function(e){var t=this;return i(e)?new t(function(i,n){for(var a=e.length,s=0;s<a;s++)t.resolve(e[s]).then(i,n)}):new t(function(e,t){return t(new TypeError("You must pass an array to race."))})},B.resolve=C,B.reject=function(e){var t=new this(x);return P(t,e),t},B._setScheduler=function(e){o=e},B._setAsap=function(e){l=e},B._asap=l,B.polyfill=function(){var e=void 0;if(void 0!==a)e=a;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;if(t){var i=null;try{i=Object.prototype.toString.call(t.resolve())}catch(e){}if("[object Promise]"===i&&!t.cast)return}e.Promise=B},B.Promise=B,B})}).call(this)}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:37}],34:[function(e,t,i){!function(e,i){var n=function(e,t,i){"use strict";var n,a;if(function(){var t,i={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};for(t in a=e.lazySizesConfig||e.lazysizesConfig||{},i)t in a||(a[t]=i[t])}(),!t||!t.getElementsByClassName)return{init:function(){},cfg:a,noSupport:!0};var s=t.documentElement,r=e.HTMLPictureElement,o=e.addEventListener.bind(e),l=e.setTimeout,u=e.requestAnimationFrame||l,c=e.requestIdleCallback,d=/^picture$/i,h=["load","error","lazyincluded","_lazyloaded"],f={},p=Array.prototype.forEach,m=function(e,t){return f[t]||(f[t]=new RegExp("(\\s|^)"+t+"(\\s|$)")),f[t].test(e.getAttribute("class")||"")&&f[t]},v=function(e,t){m(e,t)||e.setAttribute("class",(e.getAttribute("class")||"").trim()+" "+t)},g=function(e,t){var i;(i=m(e,t))&&e.setAttribute("class",(e.getAttribute("class")||"").replace(i," "))},y=function(e,t,i){var n=i?"addEventListener":"removeEventListener";i&&y(e,t),h.forEach(function(i){e[n](i,t)})},b=function(e,i,a,s,r){var o=t.createEvent("Event");return a||(a={}),a.instance=n,o.initEvent(i,!s,!r),o.detail=a,e.dispatchEvent(o),o},w=function(t,i){var n;!r&&(n=e.picturefill||a.pf)?(i&&i.src&&!t.getAttribute("srcset")&&t.setAttribute("srcset",i.src),n({reevaluate:!0,elements:[t]})):i&&i.src&&(t.src=i.src)},E=function(e,t){return(getComputedStyle(e,null)||{})[t]},S=function(e,t,i){for(i=i||e.offsetWidth;i<a.minSize&&t&&!e._lazysizesWidth;)i=t.offsetWidth,t=t.parentNode;return i},C=(j=[],R=[],z=j,D=function(){var e=z;for(z=j.length?R:j,P=!0,N=!1;e.length;)e.shift()();P=!1},G=function(e,i){P&&!i?e.apply(this,arguments):(z.push(e),N||(N=!0,(t.hidden?l:u)(D)))},G._lsFlush=D,G),T=function(e,t){return t?function(){C(e)}:function(){var t=this,i=arguments;C(function(){e.apply(t,i)})}},x=function(e){var t,n,a=function(){t=null,e()},s=function(){var e=i.now()-n;e<99?l(s,99-e):(c||a)(a)};return function(){n=i.now(),t||(t=l(s,99))}},L=function(){var r,h,f,S,L,_,k,A,O,I,P,N,j,R,z,D,G,B,q,W=/^img$/i,$=/^iframe$/i,X="onscroll"in e&&!/(gle|ing)bot/.test(navigator.userAgent),F=0,J=0,H=-1,U=function(e){J--,(!e||J<0||!e.target)&&(J=0)},V=function(e){return null==N&&(N="hidden"==E(t.body,"visibility")),N||!("hidden"==E(e.parentNode,"visibility")&&"hidden"==E(e,"visibility"))},Y=function(e,i){var n,a=e,r=V(e);for(A-=i,P+=i,O-=i,I+=i;r&&(a=a.offsetParent)&&a!=t.body&&a!=s;)(r=(E(a,"opacity")||1)>0)&&"visible"!=E(a,"overflow")&&(n=a.getBoundingClientRect(),r=I>n.left&&O<n.right&&P>n.top-1&&A<n.bottom+1);return r},Z=function(){var e,i,o,l,u,c,d,f,p,m,v,g,y=n.elements;if((S=a.loadMode)&&J<8&&(e=y.length)){for(i=0,H++;i<e;i++)if(y[i]&&!y[i]._lazyRace)if(!X||n.prematureUnveil&&n.prematureUnveil(y[i]))ae(y[i]);else if((f=y[i].getAttribute("data-expand"))&&(c=1*f)||(c=F),m||(m=!a.expand||a.expand<1?s.clientHeight>500&&s.clientWidth>500?500:370:a.expand,n._defEx=m,v=m*a.expFactor,g=a.hFac,N=null,F<v&&J<1&&H>2&&S>2&&!t.hidden?(F=v,H=0):F=S>1&&H>1&&J<6?m:0),p!==c&&(_=innerWidth+c*g,k=innerHeight+c,d=-1*c,p=c),o=y[i].getBoundingClientRect(),(P=o.bottom)>=d&&(A=o.top)<=k&&(I=o.right)>=d*g&&(O=o.left)<=_&&(P||I||O||A)&&(a.loadHidden||V(y[i]))&&(h&&J<3&&!f&&(S<3||H<4)||Y(y[i],c))){if(ae(y[i]),u=!0,J>9)break}else!u&&h&&!l&&J<4&&H<4&&S>2&&(r[0]||a.preloadAfterLoad)&&(r[0]||!f&&(P||I||O||A||"auto"!=y[i].getAttribute(a.sizesAttr)))&&(l=r[0]||y[i]);l&&!u&&ae(l)}},K=(j=Z,z=0,D=a.throttleDelay,G=a.ricTimeout,B=function(){R=!1,z=i.now(),j()},q=c&&G>49?function(){c(B,{timeout:G}),G!==a.ricTimeout&&(G=a.ricTimeout)}:T(function(){l(B)},!0),function(e){var t;(e=!0===e)&&(G=33),R||(R=!0,(t=D-(i.now()-z))<0&&(t=0),e||t<9?q():l(q,t))}),Q=function(e){var t=e.target;t._lazyCache?delete t._lazyCache:(U(e),v(t,a.loadedClass),g(t,a.loadingClass),y(t,te),b(t,"lazyloaded"))},ee=T(Q),te=function(e){ee({target:e.target})},ie=function(e){var t,i=e.getAttribute(a.srcsetAttr);(t=a.customMedia[e.getAttribute("data-media")||e.getAttribute("media")])&&e.setAttribute("media",t),i&&e.setAttribute("srcset",i)},ne=T(function(e,t,i,n,s){var r,o,u,c,h,m;(h=b(e,"lazybeforeunveil",t)).defaultPrevented||(n&&(i?v(e,a.autosizesClass):e.setAttribute("sizes",n)),o=e.getAttribute(a.srcsetAttr),r=e.getAttribute(a.srcAttr),s&&(u=e.parentNode,c=u&&d.test(u.nodeName||"")),m=t.firesLoad||"src"in e&&(o||r||c),h={target:e},v(e,a.loadingClass),m&&(clearTimeout(f),f=l(U,2500),y(e,te,!0)),c&&p.call(u.getElementsByTagName("source"),ie),o?e.setAttribute("srcset",o):r&&!c&&($.test(e.nodeName)?function(e,t){var i=e.getAttribute("data-load-mode")||a.iframeLoadMode;0==i?e.contentWindow.location.replace(t):1==i&&(e.src=t)}(e,r):e.src=r),s&&(o||c)&&w(e,{src:r})),e._lazyRace&&delete e._lazyRace,g(e,a.lazyClass),C(function(){var t=e.complete&&e.naturalWidth>1;m&&!t||(t&&v(e,a.fastLoadedClass),Q(h),e._lazyCache=!0,l(function(){"_lazyCache"in e&&delete e._lazyCache},9)),"lazy"==e.loading&&J--},!0)}),ae=function(e){if(!e._lazyRace){var t,i=W.test(e.nodeName),n=i&&(e.getAttribute(a.sizesAttr)||e.getAttribute("sizes")),s="auto"==n;(!s&&h||!i||!e.getAttribute("src")&&!e.srcset||e.complete||m(e,a.errorClass)||!m(e,a.lazyClass))&&(t=b(e,"lazyunveilread").detail,s&&M.updateElem(e,!0,e.offsetWidth),e._lazyRace=!0,J++,ne(e,t,s,n,i))}},se=x(function(){a.loadMode=3,K()}),re=function(){3==a.loadMode&&(a.loadMode=2),se()},oe=function(){h||(i.now()-L<999?l(oe,999):(h=!0,a.loadMode=3,K(),o("scroll",re,!0)))};return{_:function(){L=i.now(),n.elements=t.getElementsByClassName(a.lazyClass),r=t.getElementsByClassName(a.lazyClass+" "+a.preloadClass),o("scroll",K,!0),o("resize",K,!0),o("pageshow",function(e){if(e.persisted){var i=t.querySelectorAll("."+a.loadingClass);i.length&&i.forEach&&u(function(){i.forEach(function(e){e.complete&&ae(e)})})}}),e.MutationObserver?new MutationObserver(K).observe(s,{childList:!0,subtree:!0,attributes:!0}):(s.addEventListener("DOMNodeInserted",K,!0),s.addEventListener("DOMAttrModified",K,!0),setInterval(K,999)),o("hashchange",K,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(e){t.addEventListener(e,K,!0)}),/d$|^c/.test(t.readyState)?oe():(o("load",oe),t.addEventListener("DOMContentLoaded",K),l(oe,2e4)),n.elements.length?(Z(),C._lsFlush()):K()},checkElems:K,unveil:ae,_aLSL:re}}(),M=(A=T(function(e,t,i,n){var a,s,r;if(e._lazysizesWidth=n,n+="px",e.setAttribute("sizes",n),d.test(t.nodeName||""))for(a=t.getElementsByTagName("source"),s=0,r=a.length;s<r;s++)a[s].setAttribute("sizes",n);i.detail.dataAttr||w(e,i.detail)}),O=function(e,t,i){var n,a=e.parentNode;a&&(i=S(e,a,i),(n=b(e,"lazybeforesizes",{width:i,dataAttr:!!t})).defaultPrevented||(i=n.detail.width)&&i!==e._lazysizesWidth&&A(e,a,n,i))},I=x(function(){var e,t=k.length;if(t)for(e=0;e<t;e++)O(k[e])}),{_:function(){k=t.getElementsByClassName(a.autosizesClass),o("resize",I)},checkElems:I,updateElem:O}),_=function(){!_.i&&t.getElementsByClassName&&(_.i=!0,M._(),L._())};var k,A,O,I;var P,N,j,R,z,D,G;return l(function(){a.init&&_()}),n={cfg:a,autoSizer:M,loader:L,init:_,uP:w,aC:v,rC:g,hC:m,fire:b,gW:S,rAF:C}}(e,e.document,Date);e.lazySizes=n,"object"==typeof t&&t.exports&&(t.exports=n)}("undefined"!=typeof window?window:{})},{}],35:[function(e,t,i){(function(e){(function(){var i="Expected a function",n=NaN,a="[object Symbol]",s=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt,c="object"==typeof e&&e&&e.Object===Object&&e,d="object"==typeof self&&self&&self.Object===Object&&self,h=c||d||Function("return this")(),f=Object.prototype.toString,p=Math.max,m=Math.min,v=function(){return h.Date.now()};function g(e,t,n){var a,s,r,o,l,u,c=0,d=!1,h=!1,f=!0;if("function"!=typeof e)throw new TypeError(i);function g(t){var i=a,n=s;return a=s=void 0,c=t,o=e.apply(n,i)}function w(e){var i=e-u;return void 0===u||i>=t||i<0||h&&e-c>=r}function E(){var e=v();if(w(e))return S(e);l=setTimeout(E,function(e){var i=t-(e-u);return h?m(i,r-(e-c)):i}(e))}function S(e){return l=void 0,f&&a?g(e):(a=s=void 0,o)}function C(){var e=v(),i=w(e);if(a=arguments,s=this,u=e,i){if(void 0===l)return function(e){return c=e,l=setTimeout(E,t),d?g(e):o}(u);if(h)return l=setTimeout(E,t),g(u)}return void 0===l&&(l=setTimeout(E,t)),o}return t=b(t)||0,y(n)&&(d=!!n.leading,r=(h="maxWait"in n)?p(b(n.maxWait)||0,t):r,f="trailing"in n?!!n.trailing:f),C.cancel=function(){void 0!==l&&clearTimeout(l),c=0,a=u=s=l=void 0},C.flush=function(){return void 0===l?o:S(v())},C}function y(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function b(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&f.call(e)==a}(e))return n;if(y(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=y(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(s,"");var i=o.test(e);return i||l.test(e)?u(e.slice(2),i?2:8):r.test(e)?n:+e}t.exports=function(e,t,n){var a=!0,s=!0;if("function"!=typeof e)throw new TypeError(i);return y(n)&&(a="leading"in n?!!n.leading:a,s="trailing"in n?!!n.trailing:s),g(e,t,{leading:a,maxWait:t,trailing:s})}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],36:[function(e,t,i){!function(e){var t,i,n,a,s,r,o,l=navigator.userAgent;e.HTMLPictureElement&&/ecko/.test(l)&&l.match(/rv\:(\d+)/)&&RegExp.$1<45&&addEventListener("resize",(i=document.createElement("source"),n=function(e){var t,n,a=e.parentNode;"PICTURE"===a.nodeName.toUpperCase()?(t=i.cloneNode(),a.insertBefore(t,a.firstElementChild),setTimeout(function(){a.removeChild(t)})):(!e._pfLastSize||e.offsetWidth>e._pfLastSize)&&(e._pfLastSize=e.offsetWidth,n=e.sizes,e.sizes+=",100vw",setTimeout(function(){e.sizes=n}))},a=function(){var e,t=document.querySelectorAll("picture > img, img[srcset][sizes]");for(e=0;e<t.length;e++)n(t[e])},s=function(){clearTimeout(t),t=setTimeout(a,99)},r=e.matchMedia&&matchMedia("(orientation: landscape)"),o=function(){s(),r&&r.addListener&&r.addListener(s)},i.srcset="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",/^[c|i]|d$/.test(document.readyState||"")?o():document.addEventListener("DOMContentLoaded",o),s))}(window),function(e,i,n){"use strict";var a,s,r;i.createElement("picture");var o={},l=!1,u=function(){},c=i.createElement("img"),d=c.getAttribute,h=c.setAttribute,f=c.removeAttribute,p=i.documentElement,m={},v={algorithm:""},g=navigator.userAgent,y=/rident/.test(g)||/ecko/.test(g)&&g.match(/rv\:(\d+)/)&&RegExp.$1>35,b="currentSrc",w=/\s+\+?\d+(e\d+)?w/,E=/(\([^)]+\))?\s*(.+)/,S=e.picturefillCFG,C="font-size:100%!important;",T=!0,x={},L={},M=e.devicePixelRatio,_={px:1,in:96},k=i.createElement("a"),A=!1,O=/^[ \t\n\r\u000c]+/,I=/^[, \t\n\r\u000c]+/,P=/^[^ \t\n\r\u000c]+/,N=/[,]+$/,j=/^\d+$/,R=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,z=function(e,t,i,n){e.addEventListener?e.addEventListener(t,i,n||!1):e.attachEvent&&e.attachEvent("on"+t,i)},D=function(e){var t={};return function(i){return i in t||(t[i]=e(i)),t[i]}};function G(e){return" "===e||"\t"===e||"\n"===e||"\f"===e||"\r"===e}var B,q,W,$,X,F,J,H,U,V,Y,Z,K,Q,ee,te,ie=(B=/^([\d\.]+)(em|vw|px)$/,q=D(function(e){return"return "+function(){for(var e=arguments,t=0,i=e[0];++t in e;)i=i.replace(e[t],e[++t]);return i}((e||"").toLowerCase(),/\band\b/g,"&&",/,/g,"||",/min-([a-z-\s]+):/g,"e.$1>=",/max-([a-z-\s]+):/g,"e.$1<=",/calc([^)]+)/g,"($1)",/(\d+[\.]*[\d]*)([a-z]+)/g,"($1 * e.$2)",/^(?!(e.[a-z]|[0-9\.&=|><\+\-\*\(\)\/])).*/gi,"")+";"}),function(e,t){var i;if(!(e in x))if(x[e]=!1,t&&(i=e.match(B)))x[e]=i[1]*_[i[2]];else try{x[e]=new Function("e",q(e))(_)}catch(e){}return x[e]}),ne=function(e,t){return e.w?(e.cWidth=o.calcListLength(t||"100vw"),e.res=e.w/e.cWidth):e.res=e.d,e},ae=function(e){if(l){var t,n,a,s=e||{};if(s.elements&&1===s.elements.nodeType&&("IMG"===s.elements.nodeName.toUpperCase()?s.elements=[s.elements]:(s.context=s.elements,s.elements=null)),a=(t=s.elements||o.qsa(s.context||i,s.reevaluate||s.reselect?o.sel:o.selShort)).length){for(o.setupRun(s),A=!0,n=0;n<a;n++)o.fillImg(t[n],s);o.teardownRun(s)}}};function se(e,t){return e.res-t.res}function re(e,t){var i,n,a;if(e&&t)for(a=o.parseSet(t),e=o.makeUrl(e),i=0;i<a.length;i++)if(e===o.makeUrl(a[i].url)){n=a[i];break}return n}e.console&&console.warn,b in c||(b="src"),m["image/jpeg"]=!0,m["image/gif"]=!0,m["image/png"]=!0,m["image/svg+xml"]=i.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1"),o.ns=("pf"+(new Date).getTime()).substr(0,9),o.supSrcset="srcset"in c,o.supSizes="sizes"in c,o.supPicture=!!e.HTMLPictureElement,o.supSrcset&&o.supPicture&&!o.supSizes&&(W=i.createElement("img"),c.srcset="data:,a",W.src="data:,a",o.supSrcset=c.complete===W.complete,o.supPicture=o.supSrcset&&o.supPicture),o.supSrcset&&!o.supSizes?($="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",X=i.createElement("img"),F=function(){2===X.width&&(o.supSizes=!0),s=o.supSrcset&&!o.supSizes,l=!0,setTimeout(ae)},X.onload=F,X.onerror=F,X.setAttribute("sizes","9px"),X.srcset=$+" 1w,data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw== 9w",X.src=$):l=!0,o.selShort="picture>img,img[srcset]",o.sel=o.selShort,o.cfg=v,o.DPR=M||1,o.u=_,o.types=m,o.setSize=u,o.makeUrl=D(function(e){return k.href=e,k.href}),o.qsa=function(e,t){return"querySelector"in e?e.querySelectorAll(t):[]},o.matchesMedia=function(){return e.matchMedia&&(matchMedia("(min-width: 0.1em)")||{}).matches?o.matchesMedia=function(e){return!e||matchMedia(e).matches}:o.matchesMedia=o.mMQ,o.matchesMedia.apply(this,arguments)},o.mMQ=function(e){return!e||ie(e)},o.calcLength=function(e){var t=ie(e,!0)||!1;return t<0&&(t=!1),t},o.supportsType=function(e){return!e||m[e]},o.parseSize=D(function(e){var t=(e||"").match(E);return{media:t&&t[1],length:t&&t[2]}}),o.parseSet=function(e){return e.cands||(e.cands=function(e,t){function i(t){var i,n=t.exec(e.substring(u));if(n)return i=n[0],u+=i.length,i}var n,a,s,r,o,l=e.length,u=0,c=[];function d(){var e,i,s,r,o,l,u,d,h,f=!1,p={};for(r=0;r<a.length;r++)l=(o=a[r])[o.length-1],u=o.substring(0,o.length-1),d=parseInt(u,10),h=parseFloat(u),j.test(u)&&"w"===l?((e||i)&&(f=!0),0===d?f=!0:e=d):R.test(u)&&"x"===l?((e||i||s)&&(f=!0),h<0?f=!0:i=h):j.test(u)&&"h"===l?((s||i)&&(f=!0),0===d?f=!0:s=d):f=!0;f||(p.url=n,e&&(p.w=e),i&&(p.d=i),s&&(p.h=s),s||i||e||(p.d=1),1===p.d&&(t.has1x=!0),p.set=t,c.push(p))}function h(){for(i(O),s="",r="in descriptor";;){if(o=e.charAt(u),"in descriptor"===r)if(G(o))s&&(a.push(s),s="",r="after descriptor");else{if(","===o)return u+=1,s&&a.push(s),void d();if("("===o)s+=o,r="in parens";else{if(""===o)return s&&a.push(s),void d();s+=o}}else if("in parens"===r)if(")"===o)s+=o,r="in descriptor";else{if(""===o)return a.push(s),void d();s+=o}else if("after descriptor"===r)if(G(o));else{if(""===o)return void d();r="in descriptor",u-=1}u+=1}}for(;;){if(i(I),u>=l)return c;n=i(P),a=[],","===n.slice(-1)?(n=n.replace(N,""),d()):h()}}(e.srcset,e)),e.cands},o.getEmValue=function(){var e;if(!a&&(e=i.body)){var t=i.createElement("div"),n=p.style.cssText,s=e.style.cssText;t.style.cssText="position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)",p.style.cssText=C,e.style.cssText=C,e.appendChild(t),a=t.offsetWidth,e.removeChild(t),a=parseFloat(a,10),p.style.cssText=n,e.style.cssText=s}return a||16},o.calcListLength=function(e){if(!(e in L)||v.uT){var t=o.calcLength(function(e){var t,i,n,a,s,r,l,u=/^(?:[+-]?[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i,c=/^calc\((?:[0-9a-z \.\+\-\*\/\(\)]+)\)$/i;for(n=(i=function(e){var t,i="",n=[],a=[],s=0,r=0,o=!1;function l(){i&&(n.push(i),i="")}function u(){n[0]&&(a.push(n),n=[])}for(;;){if(""===(t=e.charAt(r)))return l(),u(),a;if(o){if("*"===t&&"/"===e[r+1]){o=!1,r+=2,l();continue}r+=1}else{if(G(t)){if(e.charAt(r-1)&&G(e.charAt(r-1))||!i){r+=1;continue}if(0===s){l(),r+=1;continue}t=" "}else if("("===t)s+=1;else if(")"===t)s-=1;else{if(","===t){l(),u(),r+=1;continue}if("/"===t&&"*"===e.charAt(r+1)){o=!0,r+=2;continue}}i+=t,r+=1}}}(e)).length,t=0;t<n;t++)if(s=(a=i[t])[a.length-1],l=s,u.test(l)&&parseFloat(l)>=0||c.test(l)||"0"===l||"-0"===l||"+0"===l){if(r=s,a.pop(),0===a.length)return r;if(a=a.join(" "),o.matchesMedia(a))return r}return"100vw"}(e));L[e]=t||_.width}return L[e]},o.setRes=function(e){var t;if(e)for(var i=0,n=(t=o.parseSet(e)).length;i<n;i++)ne(t[i],e.sizes);return t},o.setRes.res=ne,o.applySetCandidate=function(e,t){if(e.length){var i,n,a,s,r,l,u,c,d,h,f,p,m,g,w,E,S=t[o.ns],C=o.DPR;if(l=S.curSrc||t[b],(u=S.curCan||function(e,t,i){var n;return!i&&t&&(i=(i=e[o.ns].sets)&&i[i.length-1]),(n=re(t,i))&&(t=o.makeUrl(t),e[o.ns].curSrc=t,e[o.ns].curCan=n,n.res||ne(n,n.set.sizes)),n}(t,l,e[0].set))&&u.set===e[0].set&&((d=y&&!t.complete&&u.res-.1>C)||(u.cached=!0,u.res>=C&&(r=u))),!r)for(e.sort(se),r=e[(s=e.length)-1],n=0;n<s;n++)if((i=e[n]).res>=C){r=e[a=n-1]&&(d||l!==o.makeUrl(i.url))&&(h=e[a].res,f=i.res,p=C,m=e[a].cached,g=void 0,w=void 0,E=void 0,"saveData"===v.algorithm?h>2.7?E=p+1:(w=(f-p)*(g=Math.pow(h-.6,1.5)),m&&(w+=.1*g),E=h+w):E=p>1?Math.sqrt(h*f):h,E>p)?e[a]:i;break}r&&(c=o.makeUrl(r.url),S.curSrc=c,S.curCan=r,c!==l&&o.setSrc(t,r),o.setSize(t))}},o.setSrc=function(e,t){var i;e.src=t.url,"image/svg+xml"===t.set.type&&(i=e.style.width,e.style.width=e.offsetWidth+1+"px",e.offsetWidth+1&&(e.style.width=i))},o.getSet=function(e){var t,i,n,a=!1,s=e[o.ns].sets;for(t=0;t<s.length&&!a;t++)if((i=s[t]).srcset&&o.matchesMedia(i.media)&&(n=o.supportsType(i.type))){"pending"===n&&(i=n),a=i;break}return a},o.parseSets=function(e,t,i){var n,a,r,l,u=t&&"PICTURE"===t.nodeName.toUpperCase(),c=e[o.ns];(void 0===c.src||i.src)&&(c.src=d.call(e,"src"),c.src?h.call(e,"data-pfsrc",c.src):f.call(e,"data-pfsrc")),(void 0===c.srcset||i.srcset||!o.supSrcset||e.srcset)&&(n=d.call(e,"srcset"),c.srcset=n,l=!0),c.sets=[],u&&(c.pic=!0,function(e,t){var i,n,a,s,r=e.getElementsByTagName("source");for(i=0,n=r.length;i<n;i++)(a=r[i])[o.ns]=!0,(s=a.getAttribute("srcset"))&&t.push({srcset:s,media:a.getAttribute("media"),type:a.getAttribute("type"),sizes:a.getAttribute("sizes")})}(t,c.sets)),c.srcset?(a={srcset:c.srcset,sizes:d.call(e,"sizes")},c.sets.push(a),(r=(s||c.src)&&w.test(c.srcset||""))||!c.src||re(c.src,a)||a.has1x||(a.srcset+=", "+c.src,a.cands.push({url:c.src,d:1,set:a}))):c.src&&c.sets.push({srcset:c.src,sizes:null}),c.curCan=null,c.curSrc=void 0,c.supported=!(u||a&&!o.supSrcset||r&&!o.supSizes),l&&o.supSrcset&&!c.supported&&(n?(h.call(e,"data-pfsrcset",n),e.srcset=""):f.call(e,"data-pfsrcset")),c.supported&&!c.srcset&&(!c.src&&e.src||e.src!==o.makeUrl(c.src))&&(null===c.src?e.removeAttribute("src"):e.src=c.src),c.parsed=!0},o.fillImg=function(e,t){var i,n,a,s,l,u=t.reselect||t.reevaluate;(e[o.ns]||(e[o.ns]={}),i=e[o.ns],u||i.evaled!==r)&&(i.parsed&&!t.reevaluate||o.parseSets(e,e.parentNode,t),i.supported?i.evaled=r:(n=e,s=o.getSet(n),l=!1,"pending"!==s&&(l=r,s&&(a=o.setRes(s),o.applySetCandidate(a,n))),n[o.ns].evaled=l))},o.setupRun=function(){A&&!T&&M===e.devicePixelRatio||(T=!1,M=e.devicePixelRatio,x={},L={},o.DPR=M||1,_.width=Math.max(e.innerWidth||0,p.clientWidth),_.height=Math.max(e.innerHeight||0,p.clientHeight),_.vw=_.width/100,_.vh=_.height/100,r=[_.height,_.width,M].join("-"),_.em=o.getEmValue(),_.rem=_.em)},o.supPicture?(ae=u,o.fillImg=u):(K=e.attachEvent?/d$|^c/:/d$|^c|^i/,Q=function(){var e=i.readyState||"";ee=setTimeout(Q,"loading"===e?200:999),i.body&&(o.fillImgs(),(J=J||K.test(e))&&clearTimeout(ee))},ee=setTimeout(Q,i.body?9:99),te=p.clientHeight,z(e,"resize",(H=function(){T=Math.max(e.innerWidth||0,p.clientWidth)!==_.width||p.clientHeight!==te,te=p.clientHeight,T&&o.fillImgs()},U=99,Z=function(){var e=new Date-Y;e<U?V=setTimeout(Z,U-e):(V=null,H())},function(){Y=new Date,V||(V=setTimeout(Z,U))})),z(i,"readystatechange",Q)),o.picturefill=ae,o.fillImgs=ae,o.teardownRun=u,ae._=o,e.picturefillCFG={pf:o,push:function(e){var t=e.shift();"function"==typeof o[t]?o[t].apply(o,e):(v[t]=e[0],A&&o.fillImgs({reselect:!0}))}};for(;S&&S.length;)e.picturefillCFG.push(S.shift());e.picturefill=ae,"object"==typeof t&&"object"==typeof t.exports?t.exports=ae:"function"==typeof define&&define.amd&&define("picturefill",function(){return ae}),o.supPicture||(m["image/webp"]=function(t,i){var n=new e.Image;return n.onerror=function(){m[t]=!1,ae()},n.onload=function(){m[t]=1===n.width,ae()},n.src=i,"pending"}("image/webp","data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA=="))}(window,document)},{}],37:[function(e,t,i){var n,a,s=t.exports={};function r(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function l(e){if(n===setTimeout)return setTimeout(e,0);if((n===r||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:r}catch(e){n=r}try{a="function"==typeof clearTimeout?clearTimeout:o}catch(e){a=o}}();var u,c=[],d=!1,h=-1;function f(){d&&u&&(d=!1,u.length?c=u.concat(c):h=-1,c.length&&p())}function p(){if(!d){var e=l(f);d=!0;for(var t=c.length;t;){for(u=c,c=[];++h<t;)u&&u[h].run();h=-1,t=c.length}u=null,d=!1,function(e){if(a===clearTimeout)return clearTimeout(e);if((a===o||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(e);try{a(e)}catch(t){try{return a.call(null,e)}catch(t){return a.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function v(){}s.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)t[i-1]=arguments[i];c.push(new m(e,t)),1!==c.length||d||l(p)},m.prototype.run=function(){this.fun.apply(null,this.array)},s.title="browser",s.browser=!0,s.env={},s.argv=[],s.version="",s.versions={},s.on=v,s.addListener=v,s.once=v,s.off=v,s.removeListener=v,s.removeAllListeners=v,s.emit=v,s.prependListener=v,s.prependOnceListener=v,s.listeners=function(e){return[]},s.binding=function(e){throw new Error("process.binding is not supported")},s.cwd=function(){return"/"},s.chdir=function(e){throw new Error("process.chdir is not supported")},s.umask=function(){return 0}},{}],38:[function(e,t,i){var n,a;n=this,a=function(e){"use strict";function t(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function i(e,n){void 0===e&&(e={}),void 0===n&&(n={}),Object.keys(n).forEach(function(a){void 0===e[a]?e[a]=n[a]:t(n[a])&&t(e[a])&&Object.keys(n[a]).length>0&&i(e[a],n[a])})}var n={body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}},a={document:n,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(e){return"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0)},cancelAnimationFrame:function(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};e.extend=i,e.getDocument=function(){var e="undefined"!=typeof document?document:{};return i(e,n),e},e.getWindow=function(){var e="undefined"!=typeof window?window:{};return i(e,a),e},e.ssrDocument=n,e.ssrWindow=a,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof i&&void 0!==t?a(i):"function"==typeof define&&define.amd?define(["exports"],a):a((n=n||self).ssrWindow={})},{}],39:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new Promise(function(i,n){var a=document.createElement("script");a.src=e,a.async=t,a.onload=a.onreadystatechange=function(){this.readyState&&"complete"!==this.readyState||i()},a.onerror=a.onabort=n,document.head.appendChild(a)})},a=i.synchronous=function(e){return new Promise(function(t,i){!function a(){if(!e.length)return t();n(e.shift(),!1).then(a).catch(i)}()})};i.default=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e=[].concat(e),t?Promise.all(e.map(function(e){return n(e)})):a(e)}},{}],40:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},s=e("../../utils/utils");function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var o={getRandomNumber:function(e){void 0===e&&(e=16);return"x".repeat(e).replace(/x/g,function(){return Math.round(16*Math.random()).toString(16)})},makeElFocusable:function(e){return e.attr("tabIndex","0"),e},makeElNotFocusable:function(e){return e.attr("tabIndex","-1"),e},addElRole:function(e,t){return e.attr("role",t),e},addElRoleDescription:function(e,t){return e.attr("aria-roledescription",t),e},addElControls:function(e,t){return e.attr("aria-controls",t),e},addElLabel:function(e,t){return e.attr("aria-label",t),e},addElId:function(e,t){return e.attr("id",t),e},addElLive:function(e,t){return e.attr("aria-live",t),e},disableEl:function(e){return e.attr("aria-disabled",!0),e},enableEl:function(e){return e.attr("aria-disabled",!1),e},onEnterOrSpaceKey:function(e){if(13===e.keyCode||32===e.keyCode){var t=this.params.a11y,i=(0,a.default)(e.target);this.navigation&&this.navigation.$nextEl&&i.is(this.navigation.$nextEl)&&(this.isEnd&&!this.params.loop||this.slideNext(),this.isEnd?this.a11y.notify(t.lastSlideMessage):this.a11y.notify(t.nextSlideMessage)),this.navigation&&this.navigation.$prevEl&&i.is(this.navigation.$prevEl)&&(this.isBeginning&&!this.params.loop||this.slidePrev(),this.isBeginning?this.a11y.notify(t.firstSlideMessage):this.a11y.notify(t.prevSlideMessage)),this.pagination&&i.is((0,s.classesToSelector)(this.params.pagination.bulletClass))&&i[0].click()}},notify:function(e){var t=this.a11y.liveRegion;0!==t.length&&(t.html(""),t.html(e))},updateNavigation:function(){if(!this.params.loop&&this.navigation){var e=this.navigation,t=e.$nextEl,i=e.$prevEl;i&&i.length>0&&(this.isBeginning?(this.a11y.disableEl(i),this.a11y.makeElNotFocusable(i)):(this.a11y.enableEl(i),this.a11y.makeElFocusable(i))),t&&t.length>0&&(this.isEnd?(this.a11y.disableEl(t),this.a11y.makeElNotFocusable(t)):(this.a11y.enableEl(t),this.a11y.makeElFocusable(t)))}},updatePagination:function(){var e=this,t=e.params.a11y;e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.bullets.each(function(i){var n=(0,a.default)(i);e.a11y.makeElFocusable(n),e.params.pagination.renderBullet||(e.a11y.addElRole(n,"button"),e.a11y.addElLabel(n,t.paginationBulletMessage.replace(/\{\{index\}\}/,n.index()+1)))})},init:function(){var e=this,t=e.params.a11y;e.$el.append(e.a11y.liveRegion);var i=e.$el;t.containerRoleDescriptionMessage&&e.a11y.addElRoleDescription(i,t.containerRoleDescriptionMessage),t.containerMessage&&e.a11y.addElLabel(i,t.containerMessage);var n=e.$wrapperEl,r=n.attr("id")||"swiper-wrapper-"+e.a11y.getRandomNumber(16),o=e.params.autoplay&&e.params.autoplay.enabled?"off":"polite";e.a11y.addElId(n,r),e.a11y.addElLive(n,o),t.itemRoleDescriptionMessage&&e.a11y.addElRoleDescription((0,a.default)(e.slides),t.itemRoleDescriptionMessage),e.a11y.addElRole((0,a.default)(e.slides),t.slideRole);var l,u,c=e.params.loop?e.slides.filter(function(t){return!t.classList.contains(e.params.slideDuplicateClass)}).length:e.slides.length;e.slides.each(function(i,n){var s=(0,a.default)(i),r=e.params.loop?parseInt(s.attr("data-swiper-slide-index"),10):n,o=t.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,c);e.a11y.addElLabel(s,o)}),e.navigation&&e.navigation.$nextEl&&(l=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(u=e.navigation.$prevEl),l&&l.length&&(e.a11y.makeElFocusable(l),"BUTTON"!==l[0].tagName&&(e.a11y.addElRole(l,"button"),l.on("keydown",e.a11y.onEnterOrSpaceKey)),e.a11y.addElLabel(l,t.nextSlideMessage),e.a11y.addElControls(l,r)),u&&u.length&&(e.a11y.makeElFocusable(u),"BUTTON"!==u[0].tagName&&(e.a11y.addElRole(u,"button"),u.on("keydown",e.a11y.onEnterOrSpaceKey)),e.a11y.addElLabel(u,t.prevSlideMessage),e.a11y.addElControls(u,r)),e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.$el.on("keydown",(0,s.classesToSelector)(e.params.pagination.bulletClass),e.a11y.onEnterOrSpaceKey)},destroy:function(){var e,t;this.a11y.liveRegion&&this.a11y.liveRegion.length>0&&this.a11y.liveRegion.remove(),this.navigation&&this.navigation.$nextEl&&(e=this.navigation.$nextEl),this.navigation&&this.navigation.$prevEl&&(t=this.navigation.$prevEl),e&&e.off("keydown",this.a11y.onEnterOrSpaceKey),t&&t.off("keydown",this.a11y.onEnterOrSpaceKey),this.pagination&&this.params.pagination.clickable&&this.pagination.bullets&&this.pagination.bullets.length&&this.pagination.$el.off("keydown",(0,s.classesToSelector)(this.params.pagination.bulletClass),this.a11y.onEnterOrSpaceKey)}},l={name:"a11y",params:{a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,itemRoleDescriptionMessage:null,slideRole:"group"}},create:function(){(0,s.bindModuleMethods)(this,{a11y:r({},o,{liveRegion:(0,a.default)('<span class="'+this.params.a11y.notificationClass+'" aria-live="assertive" aria-atomic="true"></span>')})})},on:{afterInit:function(e){e.params.a11y.enabled&&(e.a11y.init(),e.a11y.updateNavigation())},toEdge:function(e){e.params.a11y.enabled&&e.a11y.updateNavigation()},fromEdge:function(e){e.params.a11y.enabled&&e.a11y.updateNavigation()},paginationUpdate:function(e){e.params.a11y.enabled&&e.a11y.updatePagination()},destroy:function(e){e.params.a11y.enabled&&e.a11y.destroy()}}};i.default=l},{"../../utils/dom":123,"../../utils/utils":127}],41:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=e("ssr-window"),a=e("../../utils/utils");function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var r={run:function(){var e=this,t=e.slides.eq(e.activeIndex),i=e.params.autoplay.delay;t.attr("data-swiper-autoplay")&&(i=t.attr("data-swiper-autoplay")||e.params.autoplay.delay),clearTimeout(e.autoplay.timeout),e.autoplay.timeout=(0,a.nextTick)(function(){var t;e.params.autoplay.reverseDirection?e.params.loop?(e.loopFix(),t=e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.isBeginning?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(t=e.slideTo(e.slides.length-1,e.params.speed,!0,!0),e.emit("autoplay")):(t=e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.params.loop?(e.loopFix(),t=e.slideNext(e.params.speed,!0,!0),e.emit("autoplay")):e.isEnd?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(t=e.slideTo(0,e.params.speed,!0,!0),e.emit("autoplay")):(t=e.slideNext(e.params.speed,!0,!0),e.emit("autoplay")),e.params.cssMode&&e.autoplay.running?e.autoplay.run():!1===t&&e.autoplay.run()},i)},start:function(){return void 0===this.autoplay.timeout&&(!this.autoplay.running&&(this.autoplay.running=!0,this.emit("autoplayStart"),this.autoplay.run(),!0))},stop:function(){return!!this.autoplay.running&&(void 0!==this.autoplay.timeout&&(this.autoplay.timeout&&(clearTimeout(this.autoplay.timeout),this.autoplay.timeout=void 0),this.autoplay.running=!1,this.emit("autoplayStop"),!0))},pause:function(e){var t=this;t.autoplay.running&&(t.autoplay.paused||(t.autoplay.timeout&&clearTimeout(t.autoplay.timeout),t.autoplay.paused=!0,0!==e&&t.params.autoplay.waitForTransition?["transitionend","webkitTransitionEnd"].forEach(function(e){t.$wrapperEl[0].addEventListener(e,t.autoplay.onTransitionEnd)}):(t.autoplay.paused=!1,t.autoplay.run())))},onVisibilityChange:function(){var e=(0,n.getDocument)();"hidden"===e.visibilityState&&this.autoplay.running&&this.autoplay.pause(),"visible"===e.visibilityState&&this.autoplay.paused&&(this.autoplay.run(),this.autoplay.paused=!1)},onTransitionEnd:function(e){var t=this;t&&!t.destroyed&&t.$wrapperEl&&e.target===t.$wrapperEl[0]&&(["transitionend","webkitTransitionEnd"].forEach(function(e){t.$wrapperEl[0].removeEventListener(e,t.autoplay.onTransitionEnd)}),t.autoplay.paused=!1,t.autoplay.running?t.autoplay.run():t.autoplay.stop())},onMouseEnter:function(){var e=this;e.params.autoplay.disableOnInteraction?e.autoplay.stop():e.autoplay.pause(),["transitionend","webkitTransitionEnd"].forEach(function(t){e.$wrapperEl[0].removeEventListener(t,e.autoplay.onTransitionEnd)})},onMouseLeave:function(){this.params.autoplay.disableOnInteraction||(this.autoplay.paused=!1,this.autoplay.run())},attachMouseEvents:function(){this.params.autoplay.pauseOnMouseEnter&&(this.$el.on("mouseenter",this.autoplay.onMouseEnter),this.$el.on("mouseleave",this.autoplay.onMouseLeave))},detachMouseEvents:function(){this.$el.off("mouseenter",this.autoplay.onMouseEnter),this.$el.off("mouseleave",this.autoplay.onMouseLeave)}},o={name:"autoplay",params:{autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}},create:function(){(0,a.bindModuleMethods)(this,{autoplay:s({},r,{running:!1,paused:!1})})},on:{init:function(e){e.params.autoplay.enabled&&(e.autoplay.start(),(0,n.getDocument)().addEventListener("visibilitychange",e.autoplay.onVisibilityChange),e.autoplay.attachMouseEvents())},beforeTransitionStart:function(e,t,i){e.autoplay.running&&(i||!e.params.autoplay.disableOnInteraction?e.autoplay.pause(t):e.autoplay.stop())},sliderFirstMove:function(e){e.autoplay.running&&(e.params.autoplay.disableOnInteraction?e.autoplay.stop():e.autoplay.pause())},touchEnd:function(e){e.params.cssMode&&e.autoplay.paused&&!e.params.autoplay.disableOnInteraction&&e.autoplay.run()},destroy:function(e){e.autoplay.detachMouseEvents(),e.autoplay.running&&e.autoplay.stop(),(0,n.getDocument)().removeEventListener("visibilitychange",e.autoplay.onVisibilityChange)}}};i.default=o},{"../../utils/utils":127,"ssr-window":38}],42:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=e("../../utils/utils");function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var s={LinearSpline:function(e,t){var i,n,a,s,r,o=function(e,t){for(n=-1,i=e.length;i-n>1;)e[a=i+n>>1]<=t?n=a:i=a;return i};return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(r=o(this.x,e),s=r-1,(e-this.x[s])*(this.y[r]-this.y[s])/(this.x[r]-this.x[s])+this.y[s]):0},this},getInterpolateFunction:function(e){this.controller.spline||(this.controller.spline=this.params.loop?new s.LinearSpline(this.slidesGrid,e.slidesGrid):new s.LinearSpline(this.snapGrid,e.snapGrid))},setTranslate:function(e,t){var i,n,a=this,s=a.controller.control,r=a.constructor;function o(e){var t=a.rtlTranslate?-a.translate:a.translate;"slide"===a.params.controller.by&&(a.controller.getInterpolateFunction(e),n=-a.controller.spline.interpolate(-t)),n&&"container"!==a.params.controller.by||(i=(e.maxTranslate()-e.minTranslate())/(a.maxTranslate()-a.minTranslate()),n=(t-a.minTranslate())*i+e.minTranslate()),a.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,a),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(s))for(var l=0;l<s.length;l+=1)s[l]!==t&&s[l]instanceof r&&o(s[l]);else s instanceof r&&t!==s&&o(s)},setTransition:function(e,t){var i,a=this,s=a.constructor,r=a.controller.control;function o(t){t.setTransition(e,a),0!==e&&(t.transitionStart(),t.params.autoHeight&&(0,n.nextTick)(function(){t.updateAutoHeight()}),t.$wrapperEl.transitionEnd(function(){r&&(t.params.loop&&"slide"===a.params.controller.by&&t.loopFix(),t.transitionEnd())}))}if(Array.isArray(r))for(i=0;i<r.length;i+=1)r[i]!==t&&r[i]instanceof s&&o(r[i]);else r instanceof s&&t!==r&&o(r)}},r={name:"controller",params:{controller:{control:void 0,inverse:!1,by:"slide"}},create:function(){(0,n.bindModuleMethods)(this,{controller:a({control:this.params.controller.control},s)})},on:{update:function(e){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},resize:function(e){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},observerUpdate:function(e){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},setTranslate:function(e,t,i){e.controller.control&&e.controller.setTranslate(t,i)},setTransition:function(e,t,i){e.controller.control&&e.controller.setTransition(t,i)}}};i.default=r},{"../../utils/utils":127}],43:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t,i){void 0===t&&(t="window");if(!e||"container"===t&&!i)return;var a=!1,s=(0,n.getWindow)(),r="window"===t?s.innerHeight:i.clientHeight,o=Object.keys(e).map(function(e){if("string"==typeof e&&0===e.indexOf("@")){var t=parseFloat(e.substr(1)),i=r*t;return{value:i,point:e}}return{value:e,point:e}});o.sort(function(e,t){return parseInt(e.value,10)-parseInt(t.value,10)});for(var l=0;l<o.length;l+=1){var u=o[l],c=u.point,d=u.value;"window"===t?s.matchMedia("(min-width: "+d+"px)").matches&&(a=c):d<=i.clientWidth&&(a=c)}return a||"max"};var n=e("ssr-window")},{"ssr-window":38}],44:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=s(e("./setBreakpoint")),a=s(e("./getBreakpoint"));function s(e){return e&&e.__esModule?e:{default:e}}var r={setBreakpoint:n.default,getBreakpoint:a.default};i.default=r},{"./getBreakpoint":43,"./setBreakpoint":45}],45:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){var e=this.activeIndex,t=this.initialized,i=this.loopedSlides,a=void 0===i?0:i,s=this.params,r=this.$el,o=s.breakpoints;if(!o||o&&0===Object.keys(o).length)return;var l=this.getBreakpoint(o,this.params.breakpointsBase,this.el);if(!l||this.currentBreakpoint===l)return;var u=l in o?o[l]:void 0;u&&["slidesPerView","spaceBetween","slidesPerGroup","slidesPerGroupSkip","slidesPerColumn"].forEach(function(e){var t=u[e];void 0!==t&&(u[e]="slidesPerView"!==e||"AUTO"!==t&&"auto"!==t?"slidesPerView"===e?parseFloat(t):parseInt(t,10):"auto")});var c=u||this.originalParams,d=s.slidesPerColumn>1,h=c.slidesPerColumn>1,f=s.enabled;d&&!h?(r.removeClass(s.containerModifierClass+"multirow "+s.containerModifierClass+"multirow-column"),this.emitContainerClasses()):!d&&h&&(r.addClass(s.containerModifierClass+"multirow"),(c.slidesPerColumnFill&&"column"===c.slidesPerColumnFill||!c.slidesPerColumnFill&&"column"===s.slidesPerColumnFill)&&r.addClass(s.containerModifierClass+"multirow-column"),this.emitContainerClasses());var p=c.direction&&c.direction!==s.direction,m=s.loop&&(c.slidesPerView!==s.slidesPerView||p);p&&t&&this.changeDirection();(0,n.extend)(this.params,c);var v=this.params.enabled;(0,n.extend)(this,{allowTouchMove:this.params.allowTouchMove,allowSlideNext:this.params.allowSlideNext,allowSlidePrev:this.params.allowSlidePrev}),f&&!v?this.disable():!f&&v&&this.enable();this.currentBreakpoint=l,this.emit("_beforeBreakpoint",c),m&&t&&(this.loopDestroy(),this.loopCreate(),this.updateSlides(),this.slideTo(e-a+this.loopedSlides,0,!1));this.emit("breakpoint",c)};var n=e("../../../utils/utils")},{"../../../utils/utils":127}],46:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n={checkOverflow:function(){var e=this.params,t=this.isLocked,i=this.slides.length>0&&e.slidesOffsetBefore+e.spaceBetween*(this.slides.length-1)+this.slides[0].offsetWidth*this.slides.length;e.slidesOffsetBefore&&e.slidesOffsetAfter&&i?this.isLocked=i<=this.size:this.isLocked=1===this.snapGrid.length,this.allowSlideNext=!this.isLocked,this.allowSlidePrev=!this.isLocked,t!==this.isLocked&&this.emit(this.isLocked?"lock":"unlock"),t&&t!==this.isLocked&&(this.isEnd=!1,this.navigation&&this.navigation.update())}};i.default=n},{}],47:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){var e=this.classNames,t=this.params,i=this.rtl,n=this.$el,a=this.device,s=this.support,r=(o=["initialized",t.direction,{"pointer-events":s.pointerEvents&&!s.touch},{"free-mode":t.freeMode},{autoheight:t.autoHeight},{rtl:i},{multirow:t.slidesPerColumn>1},{"multirow-column":t.slidesPerColumn>1&&"column"===t.slidesPerColumnFill},{android:a.android},{ios:a.ios},{"css-mode":t.cssMode}],l=t.containerModifierClass,u=[],o.forEach(function(e){"object"==typeof e?Object.keys(e).forEach(function(t){e[t]&&u.push(l+t)}):"string"==typeof e&&u.push(l+e)}),u);var o,l,u;e.push.apply(e,r),n.addClass([].concat(e).join(" ")),this.emitContainerClasses()}},{}],48:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=s(e("./addClasses")),a=s(e("./removeClasses"));function s(e){return e&&e.__esModule?e:{default:e}}var r={addClasses:n.default,removeClasses:a.default};i.default=r},{"./addClasses":47,"./removeClasses":49}],49:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){var e=this.$el,t=this.classNames;e.removeClass(t.join(" ")),this.emitContainerClasses()}},{}],50:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=e("ssr-window"),a=L(e("../../utils/dom")),s=e("../../utils/utils"),r=e("../../utils/get-support"),o=e("../../utils/get-device"),l=e("../../utils/get-browser"),u=L(e("../../modules/resize/resize")),c=L(e("../../modules/observer/observer")),d=L(e("./modular")),h=L(e("./events-emitter")),f=L(e("./update/index")),p=L(e("./translate/index")),m=L(e("./transition/index")),v=L(e("./slide/index")),g=L(e("./loop/index")),y=L(e("./grab-cursor/index")),b=L(e("./manipulation/index")),w=L(e("./events/index")),E=L(e("./breakpoints/index")),S=L(e("./classes/index")),C=L(e("./images/index")),T=L(e("./check-overflow/index")),x=L(e("./defaults"));function L(e){return e&&e.__esModule?e:{default:e}}function M(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var _={modular:d.default,eventsEmitter:h.default,update:f.default,translate:p.default,transition:m.default,slide:v.default,loop:g.default,grabCursor:y.default,manipulation:b.default,events:w.default,breakpoints:E.default,checkOverflow:T.default,classes:S.default,images:C.default},k={},A=function(){function e(){for(var t,i,n=arguments.length,u=new Array(n),c=0;c<n;c++)u[c]=arguments[c];if(1===u.length&&u[0].constructor&&"Object"===Object.prototype.toString.call(u[0]).slice(8,-1)?i=u[0]:(t=u[0],i=u[1]),i||(i={}),i=(0,s.extend)({},i),t&&!i.el&&(i.el=t),i.el&&(0,a.default)(i.el).length>1){var d=[];return(0,a.default)(i.el).each(function(t){var n=(0,s.extend)({},i,{el:t});d.push(new e(n))}),d}var h=this;h.__swiper__=!0,h.support=(0,r.getSupport)(),h.device=(0,o.getDevice)({userAgent:i.userAgent}),h.browser=(0,l.getBrowser)(),h.eventsListeners={},h.eventsAnyListeners=[],void 0===h.modules&&(h.modules={}),Object.keys(h.modules).forEach(function(e){var t=h.modules[e];if(t.params){var n=Object.keys(t.params)[0],a=t.params[n];if("object"!=typeof a||null===a)return;if(["navigation","pagination","scrollbar"].indexOf(n)>=0&&!0===i[n]&&(i[n]={auto:!0}),!(n in i&&"enabled"in a))return;!0===i[n]&&(i[n]={enabled:!0}),"object"!=typeof i[n]||"enabled"in i[n]||(i[n].enabled=!0),i[n]||(i[n]={enabled:!1})}});var f,p,m=(0,s.extend)({},x.default);return h.useParams(m),h.params=(0,s.extend)({},m,k,i),h.originalParams=(0,s.extend)({},h.params),h.passedParams=(0,s.extend)({},i),h.params&&h.params.on&&Object.keys(h.params.on).forEach(function(e){h.on(e,h.params.on[e])}),h.params&&h.params.onAny&&h.onAny(h.params.onAny),h.$=a.default,(0,s.extend)(h,{enabled:h.params.enabled,el:t,classNames:[],slides:(0,a.default)(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:function(){return"horizontal"===h.params.direction},isVertical:function(){return"vertical"===h.params.direction},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:h.params.allowSlideNext,allowSlidePrev:h.params.allowSlidePrev,touchEvents:(f=["touchstart","touchmove","touchend","touchcancel"],p=["mousedown","mousemove","mouseup"],h.support.pointerEvents&&(p=["pointerdown","pointermove","pointerup"]),h.touchEventsTouch={start:f[0],move:f[1],end:f[2],cancel:f[3]},h.touchEventsDesktop={start:p[0],move:p[1],end:p[2]},h.support.touch||!h.params.simulateTouch?h.touchEventsTouch:h.touchEventsDesktop),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:h.params.focusableElements,lastClickTime:(0,s.now)(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:h.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),h.useModules(),h.emit("_swiper"),h.params.init&&h.init(),h}var t,i,u,c=e.prototype;return c.enable=function(){this.enabled||(this.enabled=!0,this.params.grabCursor&&this.setGrabCursor(),this.emit("enable"))},c.disable=function(){this.enabled&&(this.enabled=!1,this.params.grabCursor&&this.unsetGrabCursor(),this.emit("disable"))},c.setProgress=function(e,t){e=Math.min(Math.max(e,0),1);var i=this.minTranslate(),n=(this.maxTranslate()-i)*e+i;this.translateTo(n,void 0===t?0:t),this.updateActiveIndex(),this.updateSlidesClasses()},c.emitContainerClasses=function(){var e=this;if(e.params._emitClasses&&e.el){var t=e.el.className.split(" ").filter(function(t){return 0===t.indexOf("swiper-container")||0===t.indexOf(e.params.containerModifierClass)});e.emit("_containerClasses",t.join(" "))}},c.getSlideClasses=function(e){var t=this;return e.className.split(" ").filter(function(e){return 0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass)}).join(" ")},c.emitSlidesClasses=function(){var e=this;if(e.params._emitClasses&&e.el){var t=[];e.slides.each(function(i){var n=e.getSlideClasses(i);t.push({slideEl:i,classNames:n}),e.emit("_slideClass",i,n)}),e.emit("_slideClasses",t)}},c.slidesPerViewDynamic=function(){var e=this.params,t=this.slides,i=this.slidesGrid,n=this.size,a=this.activeIndex,s=1;if(e.centeredSlides){for(var r,o=t[a].swiperSlideSize,l=a+1;l<t.length;l+=1)t[l]&&!r&&(s+=1,(o+=t[l].swiperSlideSize)>n&&(r=!0));for(var u=a-1;u>=0;u-=1)t[u]&&!r&&(s+=1,(o+=t[u].swiperSlideSize)>n&&(r=!0))}else for(var c=a+1;c<t.length;c+=1)i[c]-i[a]<n&&(s+=1);return s},c.update=function(){var e=this;if(e&&!e.destroyed){var t=e.snapGrid,i=e.params;i.breakpoints&&e.setBreakpoint(),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.params.freeMode?(n(),e.params.autoHeight&&e.updateAutoHeight()):(("auto"===e.params.slidesPerView||e.params.slidesPerView>1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0))||n(),i.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}function n(){var t=e.rtlTranslate?-1*e.translate:e.translate,i=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(i),e.updateActiveIndex(),e.updateSlidesClasses()}},c.changeDirection=function(e,t){void 0===t&&(t=!0);var i=this.params.direction;return e||(e="horizontal"===i?"vertical":"horizontal"),e===i||"horizontal"!==e&&"vertical"!==e?this:(this.$el.removeClass(""+this.params.containerModifierClass+i).addClass(""+this.params.containerModifierClass+e),this.emitContainerClasses(),this.params.direction=e,this.slides.each(function(t){"vertical"===e?t.style.width="":t.style.height=""}),this.emit("changeDirection"),t&&this.update(),this)},c.mount=function(e){var t=this;if(t.mounted)return!0;var i=(0,a.default)(e||t.params.el);if(!(e=i[0]))return!1;e.swiper=t;var r=function(){return"."+(t.params.wrapperClass||"").trim().split(" ").join(".")},o=function(){if(e&&e.shadowRoot&&e.shadowRoot.querySelector){var t=(0,a.default)(e.shadowRoot.querySelector(r()));return t.children=function(e){return i.children(e)},t}return i.children(r())}();if(0===o.length&&t.params.createElements){var l=(0,n.getDocument)().createElement("div");o=(0,a.default)(l),l.className=t.params.wrapperClass,i.append(l),i.children("."+t.params.slideClass).each(function(e){o.append(e)})}return(0,s.extend)(t,{$el:i,el:e,$wrapperEl:o,wrapperEl:o[0],mounted:!0,rtl:"rtl"===e.dir.toLowerCase()||"rtl"===i.css("direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===e.dir.toLowerCase()||"rtl"===i.css("direction")),wrongRTL:"-webkit-box"===o.css("display")}),!0},c.init=function(e){return this.initialized?this:!1===this.mount(e)?this:(this.emit("beforeInit"),this.params.breakpoints&&this.setBreakpoint(),this.addClasses(),this.params.loop&&this.loopCreate(),this.updateSize(),this.updateSlides(),this.params.watchOverflow&&this.checkOverflow(),this.params.grabCursor&&this.enabled&&this.setGrabCursor(),this.params.preloadImages&&this.preloadImages(),this.params.loop?this.slideTo(this.params.initialSlide+this.loopedSlides,0,this.params.runCallbacksOnInit,!1,!0):this.slideTo(this.params.initialSlide,0,this.params.runCallbacksOnInit,!1,!0),this.attachEvents(),this.initialized=!0,this.emit("init"),this.emit("afterInit"),this)},c.destroy=function(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);var i=this,n=i.params,a=i.$el,r=i.$wrapperEl,o=i.slides;return void 0===i.params||i.destroyed?null:(i.emit("beforeDestroy"),i.initialized=!1,i.detachEvents(),n.loop&&i.loopDestroy(),t&&(i.removeClasses(),a.removeAttr("style"),r.removeAttr("style"),o&&o.length&&o.removeClass([n.slideVisibleClass,n.slideActiveClass,n.slideNextClass,n.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),i.emit("destroy"),Object.keys(i.eventsListeners).forEach(function(e){i.off(e)}),!1!==e&&(i.$el[0].swiper=null,(0,s.deleteProps)(i)),i.destroyed=!0,null)},e.extendDefaults=function(e){(0,s.extend)(k,e)},e.installModule=function(t){e.prototype.modules||(e.prototype.modules={});var i=t.name||Object.keys(e.prototype.modules).length+"_"+(0,s.now)();e.prototype.modules[i]=t},e.use=function(t){return Array.isArray(t)?(t.forEach(function(t){return e.installModule(t)}),e):(e.installModule(t),e)},t=e,u=[{key:"extendedDefaults",get:function(){return k}},{key:"defaults",get:function(){return x.default}}],(i=null)&&M(t.prototype,i),u&&M(t,u),e}();Object.keys(_).forEach(function(e){Object.keys(_[e]).forEach(function(t){A.prototype[t]=_[e][t]})}),A.use([u.default,c.default]);var O=A;i.default=O},{"../../modules/observer/observer":121,"../../modules/resize/resize":122,"../../utils/dom":123,"../../utils/get-browser":124,"../../utils/get-device":125,"../../utils/get-support":126,"../../utils/utils":127,"./breakpoints/index":44,"./check-overflow/index":46,"./classes/index":48,"./defaults":51,"./events-emitter":52,"./events/index":53,"./grab-cursor/index":60,"./images/index":63,"./loop/index":66,"./manipulation/index":72,"./modular":76,"./slide/index":77,"./transition/index":85,"./translate/index":90,"./update/index":95,"ssr-window":38}],51:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n={init:!0,direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!1,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,slidesPerGroupSkip:0,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!1,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0,_emitClasses:!1};i.default=n},{}],52:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n={on:function(e,t,i){var n=this;if("function"!=typeof t)return n;var a=i?"unshift":"push";return e.split(" ").forEach(function(e){n.eventsListeners[e]||(n.eventsListeners[e]=[]),n.eventsListeners[e][a](t)}),n},once:function(e,t,i){var n=this;if("function"!=typeof t)return n;function a(){n.off(e,a),a.__emitterProxy&&delete a.__emitterProxy;for(var i=arguments.length,s=new Array(i),r=0;r<i;r++)s[r]=arguments[r];t.apply(n,s)}return a.__emitterProxy=t,n.on(e,a,i)},onAny:function(e,t){if("function"!=typeof e)return this;var i=t?"unshift":"push";return this.eventsAnyListeners.indexOf(e)<0&&this.eventsAnyListeners[i](e),this},offAny:function(e){if(!this.eventsAnyListeners)return this;var t=this.eventsAnyListeners.indexOf(e);return t>=0&&this.eventsAnyListeners.splice(t,1),this},off:function(e,t){var i=this;return i.eventsListeners?(e.split(" ").forEach(function(e){void 0===t?i.eventsListeners[e]=[]:i.eventsListeners[e]&&i.eventsListeners[e].forEach(function(n,a){(n===t||n.__emitterProxy&&n.__emitterProxy===t)&&i.eventsListeners[e].splice(a,1)})}),i):i},emit:function(){var e,t,i,n=this;if(!n.eventsListeners)return n;for(var a=arguments.length,s=new Array(a),r=0;r<a;r++)s[r]=arguments[r];return"string"==typeof s[0]||Array.isArray(s[0])?(e=s[0],t=s.slice(1,s.length),i=n):(e=s[0].events,t=s[0].data,i=s[0].context||n),t.unshift(i),(Array.isArray(e)?e:e.split(" ")).forEach(function(e){n.eventsAnyListeners&&n.eventsAnyListeners.length&&n.eventsAnyListeners.forEach(function(n){n.apply(i,[e].concat(t))}),n.eventsListeners&&n.eventsListeners[e]&&n.eventsListeners[e].forEach(function(e){e.apply(i,t)})}),n}};i.default=n},{}],53:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=e("ssr-window"),a=c(e("./onTouchStart")),s=c(e("./onTouchMove")),r=c(e("./onTouchEnd")),o=c(e("./onResize")),l=c(e("./onClick")),u=c(e("./onScroll"));function c(e){return e&&e.__esModule?e:{default:e}}var d=!1;function h(){}var f={attachEvents:function(){var e=(0,n.getDocument)(),t=this.params,i=this.touchEvents,c=this.el,f=this.wrapperEl,p=this.device,m=this.support;this.onTouchStart=a.default.bind(this),this.onTouchMove=s.default.bind(this),this.onTouchEnd=r.default.bind(this),t.cssMode&&(this.onScroll=u.default.bind(this)),this.onClick=l.default.bind(this);var v=!!t.nested;if(!m.touch&&m.pointerEvents)c.addEventListener(i.start,this.onTouchStart,!1),e.addEventListener(i.move,this.onTouchMove,v),e.addEventListener(i.end,this.onTouchEnd,!1);else{if(m.touch){var g=!("touchstart"!==i.start||!m.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};c.addEventListener(i.start,this.onTouchStart,g),c.addEventListener(i.move,this.onTouchMove,m.passiveListener?{passive:!1,capture:v}:v),c.addEventListener(i.end,this.onTouchEnd,g),i.cancel&&c.addEventListener(i.cancel,this.onTouchEnd,g),d||(e.addEventListener("touchstart",h),d=!0)}(t.simulateTouch&&!p.ios&&!p.android||t.simulateTouch&&!m.touch&&p.ios)&&(c.addEventListener("mousedown",this.onTouchStart,!1),e.addEventListener("mousemove",this.onTouchMove,v),e.addEventListener("mouseup",this.onTouchEnd,!1))}(t.preventClicks||t.preventClicksPropagation)&&c.addEventListener("click",this.onClick,!0),t.cssMode&&f.addEventListener("scroll",this.onScroll),t.updateOnWindowResize?this.on(p.ios||p.android?"resize orientationchange observerUpdate":"resize observerUpdate",o.default,!0):this.on("observerUpdate",o.default,!0)},detachEvents:function(){var e=(0,n.getDocument)(),t=this.params,i=this.touchEvents,a=this.el,s=this.wrapperEl,r=this.device,l=this.support,u=!!t.nested;if(!l.touch&&l.pointerEvents)a.removeEventListener(i.start,this.onTouchStart,!1),e.removeEventListener(i.move,this.onTouchMove,u),e.removeEventListener(i.end,this.onTouchEnd,!1);else{if(l.touch){var c=!("onTouchStart"!==i.start||!l.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};a.removeEventListener(i.start,this.onTouchStart,c),a.removeEventListener(i.move,this.onTouchMove,u),a.removeEventListener(i.end,this.onTouchEnd,c),i.cancel&&a.removeEventListener(i.cancel,this.onTouchEnd,c)}(t.simulateTouch&&!r.ios&&!r.android||t.simulateTouch&&!l.touch&&r.ios)&&(a.removeEventListener("mousedown",this.onTouchStart,!1),e.removeEventListener("mousemove",this.onTouchMove,u),e.removeEventListener("mouseup",this.onTouchEnd,!1))}(t.preventClicks||t.preventClicksPropagation)&&a.removeEventListener("click",this.onClick,!0),t.cssMode&&s.removeEventListener("scroll",this.onScroll),this.off(r.ios||r.android?"resize orientationchange observerUpdate":"resize observerUpdate",o.default)}};i.default=f},{"./onClick":54,"./onResize":55,"./onScroll":56,"./onTouchEnd":57,"./onTouchMove":58,"./onTouchStart":59,"ssr-window":38}],54:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){if(!this.enabled)return;this.allowClick||(this.params.preventClicks&&e.preventDefault(),this.params.preventClicksPropagation&&this.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))}},{}],55:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){var e=this.params,t=this.el;if(t&&0===t.offsetWidth)return;e.breakpoints&&this.setBreakpoint();var i=this.allowSlideNext,n=this.allowSlidePrev,a=this.snapGrid;this.allowSlideNext=!0,this.allowSlidePrev=!0,this.updateSize(),this.updateSlides(),this.updateSlidesClasses(),("auto"===e.slidesPerView||e.slidesPerView>1)&&this.isEnd&&!this.isBeginning&&!this.params.centeredSlides?this.slideTo(this.slides.length-1,0,!1,!0):this.slideTo(this.activeIndex,0,!1,!0);this.autoplay&&this.autoplay.running&&this.autoplay.paused&&this.autoplay.run();this.allowSlidePrev=n,this.allowSlideNext=i,this.params.watchOverflow&&a!==this.snapGrid&&this.checkOverflow()}},{}],56:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){var e,t=this.wrapperEl,i=this.rtlTranslate;if(!this.enabled)return;this.previousTranslate=this.translate,this.isHorizontal()?this.translate=i?t.scrollWidth-t.offsetWidth-t.scrollLeft:-t.scrollLeft:this.translate=-t.scrollTop;-0===this.translate&&(this.translate=0);this.updateActiveIndex(),this.updateSlidesClasses();var n=this.maxTranslate()-this.minTranslate();e=0===n?0:(this.translate-this.minTranslate())/n;e!==this.progress&&this.updateProgress(i?-this.translate:this.translate);this.emit("setTranslate",this.translate,!1)}},{}],57:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){var t=this,i=t.touchEventsData,a=t.params,s=t.touches,r=t.rtlTranslate,o=t.$wrapperEl,l=t.slidesGrid,u=t.snapGrid;if(!t.enabled)return;var c=e;c.originalEvent&&(c=c.originalEvent);i.allowTouchCallbacks&&t.emit("touchEnd",c);if(i.allowTouchCallbacks=!1,!i.isTouched)return i.isMoved&&a.grabCursor&&t.setGrabCursor(!1),i.isMoved=!1,void(i.startMoving=!1);a.grabCursor&&i.isMoved&&i.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var d,h=(0,n.now)(),f=h-i.touchStartTime;t.allowClick&&(t.updateClickedSlide(c),t.emit("tap click",c),f<300&&h-i.lastClickTime<300&&t.emit("doubleTap doubleClick",c));if(i.lastClickTime=(0,n.now)(),(0,n.nextTick)(function(){t.destroyed||(t.allowClick=!0)}),!i.isTouched||!i.isMoved||!t.swipeDirection||0===s.diff||i.currentTranslate===i.startTranslate)return i.isTouched=!1,i.isMoved=!1,void(i.startMoving=!1);i.isTouched=!1,i.isMoved=!1,i.startMoving=!1,d=a.followFinger?r?t.translate:-t.translate:-i.currentTranslate;if(a.cssMode)return;if(a.freeMode){if(d<-t.minTranslate())return void t.slideTo(t.activeIndex);if(d>-t.maxTranslate())return void(t.slides.length<u.length?t.slideTo(u.length-1):t.slideTo(t.slides.length-1));if(a.freeModeMomentum){if(i.velocities.length>1){var p=i.velocities.pop(),m=i.velocities.pop(),v=p.position-m.position,g=p.time-m.time;t.velocity=v/g,t.velocity/=2,Math.abs(t.velocity)<a.freeModeMinimumVelocity&&(t.velocity=0),(g>150||(0,n.now)()-p.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=a.freeModeMomentumVelocityRatio,i.velocities.length=0;var y=1e3*a.freeModeMomentumRatio,b=t.velocity*y,w=t.translate+b;r&&(w=-w);var E,S,C=!1,T=20*Math.abs(t.velocity)*a.freeModeMomentumBounceRatio;if(w<t.maxTranslate())a.freeModeMomentumBounce?(w+t.maxTranslate()<-T&&(w=t.maxTranslate()-T),E=t.maxTranslate(),C=!0,i.allowMomentumBounce=!0):w=t.maxTranslate(),a.loop&&a.centeredSlides&&(S=!0);else if(w>t.minTranslate())a.freeModeMomentumBounce?(w-t.minTranslate()>T&&(w=t.minTranslate()+T),E=t.minTranslate(),C=!0,i.allowMomentumBounce=!0):w=t.minTranslate(),a.loop&&a.centeredSlides&&(S=!0);else if(a.freeModeSticky){for(var x,L=0;L<u.length;L+=1)if(u[L]>-w){x=L;break}w=-(w=Math.abs(u[x]-w)<Math.abs(u[x-1]-w)||"next"===t.swipeDirection?u[x]:u[x-1])}if(S&&t.once("transitionEnd",function(){t.loopFix()}),0!==t.velocity){if(y=r?Math.abs((-w-t.translate)/t.velocity):Math.abs((w-t.translate)/t.velocity),a.freeModeSticky){var M=Math.abs((r?-w:w)-t.translate),_=t.slidesSizesGrid[t.activeIndex];y=M<_?a.speed:M<2*_?1.5*a.speed:2.5*a.speed}}else if(a.freeModeSticky)return void t.slideToClosest();a.freeModeMomentumBounce&&C?(t.updateProgress(E),t.setTransition(y),t.setTranslate(w),t.transitionStart(!0,t.swipeDirection),t.animating=!0,o.transitionEnd(function(){t&&!t.destroyed&&i.allowMomentumBounce&&(t.emit("momentumBounce"),t.setTransition(a.speed),setTimeout(function(){t.setTranslate(E),o.transitionEnd(function(){t&&!t.destroyed&&t.transitionEnd()})},0))})):t.velocity?(t.updateProgress(w),t.setTransition(y),t.setTranslate(w),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,o.transitionEnd(function(){t&&!t.destroyed&&t.transitionEnd()}))):(t.emit("_freeModeNoMomentumRelease"),t.updateProgress(w)),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(a.freeModeSticky)return void t.slideToClosest();a.freeMode&&t.emit("_freeModeNoMomentumRelease")}return void((!a.freeModeMomentum||f>=a.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses()))}for(var k=0,A=t.slidesSizesGrid[0],O=0;O<l.length;O+=O<a.slidesPerGroupSkip?1:a.slidesPerGroup){var I=O<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;void 0!==l[O+I]?d>=l[O]&&d<l[O+I]&&(k=O,A=l[O+I]-l[O]):d>=l[O]&&(k=O,A=l[l.length-1]-l[l.length-2])}var P=(d-l[k])/A,N=k<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;if(f>a.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(P>=a.longSwipesRatio?t.slideTo(k+N):t.slideTo(k)),"prev"===t.swipeDirection&&(P>1-a.longSwipesRatio?t.slideTo(k+N):t.slideTo(k))}else{if(!a.shortSwipes)return void t.slideTo(t.activeIndex);var j=t.navigation&&(c.target===t.navigation.nextEl||c.target===t.navigation.prevEl);j?c.target===t.navigation.nextEl?t.slideTo(k+N):t.slideTo(k):("next"===t.swipeDirection&&t.slideTo(k+N),"prev"===t.swipeDirection&&t.slideTo(k))}};var n=e("../../../utils/utils")},{"../../../utils/utils":127}],58:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){var t=(0,a.getDocument)(),i=this.touchEventsData,n=this.params,o=this.touches,l=this.rtlTranslate;if(!this.enabled)return;var u=e;u.originalEvent&&(u=u.originalEvent);if(!i.isTouched)return void(i.startMoving&&i.isScrolling&&this.emit("touchMoveOpposite",u));if(i.isTouchEvent&&"touchmove"!==u.type)return;var c="touchmove"===u.type&&u.targetTouches&&(u.targetTouches[0]||u.changedTouches[0]),d="touchmove"===u.type?c.pageX:u.pageX,h="touchmove"===u.type?c.pageY:u.pageY;if(u.preventedByNestedSwiper)return o.startX=d,void(o.startY=h);if(!this.allowTouchMove)return this.allowClick=!1,void(i.isTouched&&((0,r.extend)(o,{startX:d,startY:h,currentX:d,currentY:h}),i.touchStartTime=(0,r.now)()));if(i.isTouchEvent&&n.touchReleaseOnEdges&&!n.loop)if(this.isVertical()){if(h<o.startY&&this.translate<=this.maxTranslate()||h>o.startY&&this.translate>=this.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(d<o.startX&&this.translate<=this.maxTranslate()||d>o.startX&&this.translate>=this.minTranslate())return;if(i.isTouchEvent&&t.activeElement&&u.target===t.activeElement&&(0,s.default)(u.target).is(i.focusableElements))return i.isMoved=!0,void(this.allowClick=!1);i.allowTouchCallbacks&&this.emit("touchMove",u);if(u.targetTouches&&u.targetTouches.length>1)return;o.currentX=d,o.currentY=h;var f,p=o.currentX-o.startX,m=o.currentY-o.startY;if(this.params.threshold&&Math.sqrt(Math.pow(p,2)+Math.pow(m,2))<this.params.threshold)return;void 0===i.isScrolling&&(this.isHorizontal()&&o.currentY===o.startY||this.isVertical()&&o.currentX===o.startX?i.isScrolling=!1:p*p+m*m>=25&&(f=180*Math.atan2(Math.abs(m),Math.abs(p))/Math.PI,i.isScrolling=this.isHorizontal()?f>n.touchAngle:90-f>n.touchAngle));i.isScrolling&&this.emit("touchMoveOpposite",u);void 0===i.startMoving&&(o.currentX===o.startX&&o.currentY===o.startY||(i.startMoving=!0));if(i.isScrolling)return void(i.isTouched=!1);if(!i.startMoving)return;this.allowClick=!1,!n.cssMode&&u.cancelable&&u.preventDefault();n.touchMoveStopPropagation&&!n.nested&&u.stopPropagation();i.isMoved||(n.loop&&this.loopFix(),i.startTranslate=this.getTranslate(),this.setTransition(0),this.animating&&this.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!n.grabCursor||!0!==this.allowSlideNext&&!0!==this.allowSlidePrev||this.setGrabCursor(!0),this.emit("sliderFirstMove",u));this.emit("sliderMove",u),i.isMoved=!0;var v=this.isHorizontal()?p:m;o.diff=v,v*=n.touchRatio,l&&(v=-v);this.swipeDirection=v>0?"prev":"next",i.currentTranslate=v+i.startTranslate;var g=!0,y=n.resistanceRatio;n.touchReleaseOnEdges&&(y=0);v>0&&i.currentTranslate>this.minTranslate()?(g=!1,n.resistance&&(i.currentTranslate=this.minTranslate()-1+Math.pow(-this.minTranslate()+i.startTranslate+v,y))):v<0&&i.currentTranslate<this.maxTranslate()&&(g=!1,n.resistance&&(i.currentTranslate=this.maxTranslate()+1-Math.pow(this.maxTranslate()-i.startTranslate-v,y)));g&&(u.preventedByNestedSwiper=!0);!this.allowSlideNext&&"next"===this.swipeDirection&&i.currentTranslate<i.startTranslate&&(i.currentTranslate=i.startTranslate);!this.allowSlidePrev&&"prev"===this.swipeDirection&&i.currentTranslate>i.startTranslate&&(i.currentTranslate=i.startTranslate);this.allowSlidePrev||this.allowSlideNext||(i.currentTranslate=i.startTranslate);if(n.threshold>0){if(!(Math.abs(v)>n.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,o.startX=o.currentX,o.startY=o.currentY,i.currentTranslate=i.startTranslate,void(o.diff=this.isHorizontal()?o.currentX-o.startX:o.currentY-o.startY)}if(!n.followFinger||n.cssMode)return;(n.freeMode||n.watchSlidesProgress||n.watchSlidesVisibility)&&(this.updateActiveIndex(),this.updateSlidesClasses());n.freeMode&&(0===i.velocities.length&&i.velocities.push({position:o[this.isHorizontal()?"startX":"startY"],time:i.touchStartTime}),i.velocities.push({position:o[this.isHorizontal()?"currentX":"currentY"],time:(0,r.now)()}));this.updateProgress(i.currentTranslate),this.setTranslate(i.currentTranslate)};var n,a=e("ssr-window"),s=(n=e("../../../utils/dom"))&&n.__esModule?n:{default:n},r=e("../../../utils/utils")},{"../../../utils/dom":123,"../../../utils/utils":127,"ssr-window":38}],59:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){var t=(0,a.getDocument)(),i=(0,a.getWindow)(),n=this.touchEventsData,o=this.params,l=this.touches;if(!this.enabled)return;if(this.animating&&o.preventInteractionOnTransition)return;var u=e;u.originalEvent&&(u=u.originalEvent);var c=(0,s.default)(u.target);if("wrapper"===o.touchEventsTarget&&!c.closest(this.wrapperEl).length)return;if(n.isTouchEvent="touchstart"===u.type,!n.isTouchEvent&&"which"in u&&3===u.which)return;if(!n.isTouchEvent&&"button"in u&&u.button>0)return;if(n.isTouched&&n.isMoved)return;o.noSwipingClass&&""!==o.noSwipingClass&&u.target&&u.target.shadowRoot&&e.path&&e.path[0]&&(c=(0,s.default)(e.path[0]));var d=o.noSwipingSelector?o.noSwipingSelector:"."+o.noSwipingClass,h=!(!u.target||!u.target.shadowRoot);if(o.noSwiping&&(h?function(e,t){void 0===t&&(t=this);return function t(i){if(!i||i===(0,a.getDocument)()||i===(0,a.getWindow)())return null;i.assignedSlot&&(i=i.assignedSlot);var n=i.closest(e);return n||t(i.getRootNode().host)}(t)}(d,u.target):c.closest(d)[0]))return void(this.allowClick=!0);if(o.swipeHandler&&!c.closest(o.swipeHandler)[0])return;l.currentX="touchstart"===u.type?u.targetTouches[0].pageX:u.pageX,l.currentY="touchstart"===u.type?u.targetTouches[0].pageY:u.pageY;var f=l.currentX,p=l.currentY,m=o.edgeSwipeDetection||o.iOSEdgeSwipeDetection,v=o.edgeSwipeThreshold||o.iOSEdgeSwipeThreshold;if(m&&(f<=v||f>=i.innerWidth-v)){if("prevent"!==m)return;e.preventDefault()}(0,r.extend)(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),l.startX=f,l.startY=p,n.touchStartTime=(0,r.now)(),this.allowClick=!0,this.updateSize(),this.swipeDirection=void 0,o.threshold>0&&(n.allowThresholdMove=!1);if("touchstart"!==u.type){var g=!0;c.is(n.focusableElements)&&(g=!1),t.activeElement&&(0,s.default)(t.activeElement).is(n.focusableElements)&&t.activeElement!==c[0]&&t.activeElement.blur();var y=g&&this.allowTouchMove&&o.touchStartPreventDefault;!o.touchStartForcePreventDefault&&!y||c[0].isContentEditable||u.preventDefault()}this.emit("touchStart",u)};var n,a=e("ssr-window"),s=(n=e("../../../utils/dom"))&&n.__esModule?n:{default:n},r=e("../../../utils/utils")},{"../../../utils/dom":123,"../../../utils/utils":127,"ssr-window":38}],60:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=s(e("./setGrabCursor")),a=s(e("./unsetGrabCursor"));function s(e){return e&&e.__esModule?e:{default:e}}var r={setGrabCursor:n.default,unsetGrabCursor:a.default};i.default=r},{"./setGrabCursor":61,"./unsetGrabCursor":62}],61:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){if(this.support.touch||!this.params.simulateTouch||this.params.watchOverflow&&this.isLocked||this.params.cssMode)return;var t=this.el;t.style.cursor="move",t.style.cursor=e?"-webkit-grabbing":"-webkit-grab",t.style.cursor=e?"-moz-grabbin":"-moz-grab",t.style.cursor=e?"grabbing":"grab"}},{}],62:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){if(this.support.touch||this.params.watchOverflow&&this.isLocked||this.params.cssMode)return;this.el.style.cursor=""}},{}],63:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=s(e("./loadImage")),a=s(e("./preloadImages"));function s(e){return e&&e.__esModule?e:{default:e}}var r={loadImage:n.default,preloadImages:a.default};i.default=r},{"./loadImage":64,"./preloadImages":65}],64:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t,i,n,r,o){var l,u=(0,a.getWindow)();function c(){o&&o()}(0,s.default)(e).parent("picture")[0]||e.complete&&r?c():t?((l=new u.Image).onload=c,l.onerror=c,n&&(l.sizes=n),i&&(l.srcset=i),t&&(l.src=t)):c()};var n,a=e("ssr-window"),s=(n=e("../../../utils/dom"))&&n.__esModule?n:{default:n}},{"../../../utils/dom":123,"ssr-window":38}],65:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){var e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(var i=0;i<e.imagesToLoad.length;i+=1){var n=e.imagesToLoad[i];e.loadImage(n,n.currentSrc||n.getAttribute("src"),n.srcset||n.getAttribute("srcset"),n.sizes||n.getAttribute("sizes"),!0,t)}}},{}],66:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=r(e("./loopCreate")),a=r(e("./loopFix")),s=r(e("./loopDestroy"));function r(e){return e&&e.__esModule?e:{default:e}}var o={loopCreate:n.default,loopFix:a.default,loopDestroy:s.default};i.default=o},{"./loopCreate":67,"./loopDestroy":68,"./loopFix":69}],67:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){var e=this,t=(0,a.getDocument)(),i=e.params,n=e.$wrapperEl;n.children("."+i.slideClass+"."+i.slideDuplicateClass).remove();var r=n.children("."+i.slideClass);if(i.loopFillGroupWithBlank){var o=i.slidesPerGroup-r.length%i.slidesPerGroup;if(o!==i.slidesPerGroup){for(var l=0;l<o;l+=1){var u=(0,s.default)(t.createElement("div")).addClass(i.slideClass+" "+i.slideBlankClass);n.append(u)}r=n.children("."+i.slideClass)}}"auto"!==i.slidesPerView||i.loopedSlides||(i.loopedSlides=r.length);e.loopedSlides=Math.ceil(parseFloat(i.loopedSlides||i.slidesPerView,10)),e.loopedSlides+=i.loopAdditionalSlides,e.loopedSlides>r.length&&(e.loopedSlides=r.length);var c=[],d=[];r.each(function(t,i){var n=(0,s.default)(t);i<e.loopedSlides&&d.push(t),i<r.length&&i>=r.length-e.loopedSlides&&c.push(t),n.attr("data-swiper-slide-index",i)});for(var h=0;h<d.length;h+=1)n.append((0,s.default)(d[h].cloneNode(!0)).addClass(i.slideDuplicateClass));for(var f=c.length-1;f>=0;f-=1)n.prepend((0,s.default)(c[f].cloneNode(!0)).addClass(i.slideDuplicateClass))};var n,a=e("ssr-window"),s=(n=e("../../../utils/dom"))&&n.__esModule?n:{default:n}},{"../../../utils/dom":123,"ssr-window":38}],68:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){var e=this.$wrapperEl,t=this.params,i=this.slides;e.children("."+t.slideClass+"."+t.slideDuplicateClass+",."+t.slideClass+"."+t.slideBlankClass).remove(),i.removeAttr("data-swiper-slide-index")}},{}],69:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){this.emit("beforeLoopFix");var e,t=this.activeIndex,i=this.slides,n=this.loopedSlides,a=this.allowSlidePrev,s=this.allowSlideNext,r=this.snapGrid,o=this.rtlTranslate;this.allowSlidePrev=!0,this.allowSlideNext=!0;var l=-r[t]-this.getTranslate();if(t<n){e=i.length-3*n+t,e+=n;var u=this.slideTo(e,0,!1,!0);u&&0!==l&&this.setTranslate((o?-this.translate:this.translate)-l)}else if(t>=i.length-n){e=-i.length+t+n,e+=n;var c=this.slideTo(e,0,!1,!0);c&&0!==l&&this.setTranslate((o?-this.translate:this.translate)-l)}this.allowSlidePrev=a,this.allowSlideNext=s,this.emit("loopFix")}},{}],70:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t){var i=this.$wrapperEl,n=this.params,a=this.activeIndex;n.loop&&(a-=this.loopedSlides,this.loopDestroy(),this.slides=i.children("."+n.slideClass));var s=this.slides.length;if(e<=0)return void this.prependSlide(t);if(e>=s)return void this.appendSlide(t);for(var r=a>e?a+1:a,o=[],l=s-1;l>=e;l-=1){var u=this.slides.eq(l);u.remove(),o.unshift(u)}if("object"==typeof t&&"length"in t){for(var c=0;c<t.length;c+=1)t[c]&&i.append(t[c]);r=a>e?a+t.length:a}else i.append(t);for(var d=0;d<o.length;d+=1)i.append(o[d]);n.loop&&this.loopCreate();n.observer&&this.support.observer||this.update();n.loop?this.slideTo(r+this.loopedSlides,0,!1):this.slideTo(r,0,!1)}},{}],71:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){var t=this.$wrapperEl,i=this.params;i.loop&&this.loopDestroy();if("object"==typeof e&&"length"in e)for(var n=0;n<e.length;n+=1)e[n]&&t.append(e[n]);else t.append(e);i.loop&&this.loopCreate();i.observer&&this.support.observer||this.update()}},{}],72:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=l(e("./appendSlide")),a=l(e("./prependSlide")),s=l(e("./addSlide")),r=l(e("./removeSlide")),o=l(e("./removeAllSlides"));function l(e){return e&&e.__esModule?e:{default:e}}var u={appendSlide:n.default,prependSlide:a.default,addSlide:s.default,removeSlide:r.default,removeAllSlides:o.default};i.default=u},{"./addSlide":70,"./appendSlide":71,"./prependSlide":73,"./removeAllSlides":74,"./removeSlide":75}],73:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){var t=this.params,i=this.$wrapperEl,n=this.activeIndex;t.loop&&this.loopDestroy();var a=n+1;if("object"==typeof e&&"length"in e){for(var s=0;s<e.length;s+=1)e[s]&&i.prepend(e[s]);a=n+e.length}else i.prepend(e);t.loop&&this.loopCreate();t.observer&&this.support.observer||this.update();this.slideTo(a,0,!1)}},{}],74:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){for(var e=[],t=0;t<this.slides.length;t+=1)e.push(t);this.removeSlide(e)}},{}],75:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){var t=this.params,i=this.$wrapperEl,n=this.activeIndex;t.loop&&(n-=this.loopedSlides,this.loopDestroy(),this.slides=i.children("."+t.slideClass));var a,s=n;if("object"==typeof e&&"length"in e){for(var r=0;r<e.length;r+=1)a=e[r],this.slides[a]&&this.slides.eq(a).remove(),a<s&&(s-=1);s=Math.max(s,0)}else a=e,this.slides[a]&&this.slides.eq(a).remove(),a<s&&(s-=1),s=Math.max(s,0);t.loop&&this.loopCreate();t.observer&&this.support.observer||this.update();t.loop?this.slideTo(s+this.loopedSlides,0,!1):this.slideTo(s,0,!1)}},{}],76:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=e("../../utils/utils"),a={useParams:function(e){var t=this;t.modules&&Object.keys(t.modules).forEach(function(i){var a=t.modules[i];a.params&&(0,n.extend)(e,a.params)})},useModules:function(e){void 0===e&&(e={});var t=this;t.modules&&Object.keys(t.modules).forEach(function(i){var n=t.modules[i],a=e[i]||{};n.on&&t.on&&Object.keys(n.on).forEach(function(e){t.on(e,n.on[e])}),n.create&&n.create.bind(t)(a)})}};i.default=a},{"../../utils/utils":127}],77:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=c(e("./slideTo")),a=c(e("./slideToLoop")),s=c(e("./slideNext")),r=c(e("./slidePrev")),o=c(e("./slideReset")),l=c(e("./slideToClosest")),u=c(e("./slideToClickedSlide"));function c(e){return e&&e.__esModule?e:{default:e}}var d={slideTo:n.default,slideToLoop:a.default,slideNext:s.default,slidePrev:r.default,slideReset:o.default,slideToClosest:l.default,slideToClickedSlide:u.default};i.default=d},{"./slideNext":78,"./slidePrev":79,"./slideReset":80,"./slideTo":81,"./slideToClickedSlide":82,"./slideToClosest":83,"./slideToLoop":84}],78:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t,i){void 0===e&&(e=this.params.speed);void 0===t&&(t=!0);var n=this.params,a=this.animating;if(!this.enabled)return this;var s=this.activeIndex<n.slidesPerGroupSkip?1:n.slidesPerGroup;if(n.loop){if(a&&n.loopPreventsSlide)return!1;this.loopFix(),this._clientLeft=this.$wrapperEl[0].clientLeft}return this.slideTo(this.activeIndex+s,e,t,i)}},{}],79:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t,i){void 0===e&&(e=this.params.speed);void 0===t&&(t=!0);var n=this.params,a=this.animating,s=this.snapGrid,r=this.slidesGrid,o=this.rtlTranslate;if(!this.enabled)return this;if(n.loop){if(a&&n.loopPreventsSlide)return!1;this.loopFix(),this._clientLeft=this.$wrapperEl[0].clientLeft}function l(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}var u,c=l(o?this.translate:-this.translate),d=s.map(function(e){return l(e)}),h=s[d.indexOf(c)-1];void 0===h&&n.cssMode&&s.forEach(function(e){!h&&c>=e&&(h=e)});void 0!==h&&(u=r.indexOf(h))<0&&(u=this.activeIndex-1);return this.slideTo(u,e,t,i)}},{}],80:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t,i){void 0===e&&(e=this.params.speed);void 0===t&&(t=!0);return this.slideTo(this.activeIndex,e,t,i)}},{}],81:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t,i,n,a){void 0===e&&(e=0);void 0===t&&(t=this.params.speed);void 0===i&&(i=!0);if("number"!=typeof e&&"string"!=typeof e)throw new Error("The 'index' argument cannot have type other than 'number' or 'string'. ["+typeof e+"] given.");if("string"==typeof e){var s=parseInt(e,10),r=isFinite(s);if(!r)throw new Error("The passed-in 'index' (string) couldn't be converted to 'number'. ["+e+"] given.");e=s}var o=this,l=e;l<0&&(l=0);var u=o.params,c=o.snapGrid,d=o.slidesGrid,h=o.previousIndex,f=o.activeIndex,p=o.rtlTranslate,m=o.wrapperEl,v=o.enabled;if(o.animating&&u.preventInteractionOnTransition||!v&&!n&&!a)return!1;var g=Math.min(o.params.slidesPerGroupSkip,l),y=g+Math.floor((l-g)/o.params.slidesPerGroup);y>=c.length&&(y=c.length-1);(f||u.initialSlide||0)===(h||0)&&i&&o.emit("beforeSlideChangeStart");var b,w=-c[y];if(o.updateProgress(w),u.normalizeSlideIndex)for(var E=0;E<d.length;E+=1){var S=-Math.floor(100*w),C=Math.floor(100*d[E]),T=Math.floor(100*d[E+1]);void 0!==d[E+1]?S>=C&&S<T-(T-C)/2?l=E:S>=C&&S<T&&(l=E+1):S>=C&&(l=E)}if(o.initialized&&l!==f){if(!o.allowSlideNext&&w<o.translate&&w<o.minTranslate())return!1;if(!o.allowSlidePrev&&w>o.translate&&w>o.maxTranslate()&&(f||0)!==l)return!1}b=l>f?"next":l<f?"prev":"reset";if(p&&-w===o.translate||!p&&w===o.translate)return o.updateActiveIndex(l),u.autoHeight&&o.updateAutoHeight(),o.updateSlidesClasses(),"slide"!==u.effect&&o.setTranslate(w),"reset"!==b&&(o.transitionStart(i,b),o.transitionEnd(i,b)),!1;if(u.cssMode){var x,L=o.isHorizontal(),M=-w;if(p&&(M=m.scrollWidth-m.offsetWidth-M),0===t)m[L?"scrollLeft":"scrollTop"]=M;else if(m.scrollTo)m.scrollTo(((x={})[L?"left":"top"]=M,x.behavior="smooth",x));else m[L?"scrollLeft":"scrollTop"]=M;return!0}0===t?(o.setTransition(0),o.setTranslate(w),o.updateActiveIndex(l),o.updateSlidesClasses(),o.emit("beforeTransitionStart",t,n),o.transitionStart(i,b),o.transitionEnd(i,b)):(o.setTransition(t),o.setTranslate(w),o.updateActiveIndex(l),o.updateSlidesClasses(),o.emit("beforeTransitionStart",t,n),o.transitionStart(i,b),o.animating||(o.animating=!0,o.onSlideToWrapperTransitionEnd||(o.onSlideToWrapperTransitionEnd=function(e){o&&!o.destroyed&&e.target===this&&(o.$wrapperEl[0].removeEventListener("transitionend",o.onSlideToWrapperTransitionEnd),o.$wrapperEl[0].removeEventListener("webkitTransitionEnd",o.onSlideToWrapperTransitionEnd),o.onSlideToWrapperTransitionEnd=null,delete o.onSlideToWrapperTransitionEnd,o.transitionEnd(i,b))}),o.$wrapperEl[0].addEventListener("transitionend",o.onSlideToWrapperTransitionEnd),o.$wrapperEl[0].addEventListener("webkitTransitionEnd",o.onSlideToWrapperTransitionEnd)));return!0}},{}],82:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){var e,t=this,i=t.params,n=t.$wrapperEl,r="auto"===i.slidesPerView?t.slidesPerViewDynamic():i.slidesPerView,o=t.clickedIndex;if(i.loop){if(t.animating)return;e=parseInt((0,a.default)(t.clickedSlide).attr("data-swiper-slide-index"),10),i.centeredSlides?o<t.loopedSlides-r/2||o>t.slides.length-t.loopedSlides+r/2?(t.loopFix(),o=n.children("."+i.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+i.slideDuplicateClass+")").eq(0).index(),(0,s.nextTick)(function(){t.slideTo(o)})):t.slideTo(o):o>t.slides.length-r?(t.loopFix(),o=n.children("."+i.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+i.slideDuplicateClass+")").eq(0).index(),(0,s.nextTick)(function(){t.slideTo(o)})):t.slideTo(o)}else t.slideTo(o)};var n,a=(n=e("../../../utils/dom"))&&n.__esModule?n:{default:n},s=e("../../../utils/utils")},{"../../../utils/dom":123,"../../../utils/utils":127}],83:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t,i,n){void 0===e&&(e=this.params.speed);void 0===t&&(t=!0);void 0===n&&(n=.5);var a=this.activeIndex,s=Math.min(this.params.slidesPerGroupSkip,a),r=s+Math.floor((a-s)/this.params.slidesPerGroup),o=this.rtlTranslate?this.translate:-this.translate;if(o>=this.snapGrid[r]){var l=this.snapGrid[r],u=this.snapGrid[r+1];o-l>(u-l)*n&&(a+=this.params.slidesPerGroup)}else{var c=this.snapGrid[r-1],d=this.snapGrid[r];o-c<=(d-c)*n&&(a-=this.params.slidesPerGroup)}return a=Math.max(a,0),a=Math.min(a,this.slidesGrid.length-1),this.slideTo(a,e,t,i)}},{}],84:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t,i,n){void 0===e&&(e=0);void 0===t&&(t=this.params.speed);void 0===i&&(i=!0);var a=e;this.params.loop&&(a+=this.loopedSlides);return this.slideTo(a,t,i,n)}},{}],85:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=r(e("./setTransition")),a=r(e("./transitionStart")),s=r(e("./transitionEnd"));function r(e){return e&&e.__esModule?e:{default:e}}var o={setTransition:n.default,transitionStart:a.default,transitionEnd:s.default};i.default=o},{"./setTransition":86,"./transitionEnd":87,"./transitionStart":88}],86:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t){this.params.cssMode||this.$wrapperEl.transition(e);this.emit("setTransition",e,t)}},{}],87:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t){void 0===e&&(e=!0);var i=this.activeIndex,n=this.previousIndex,a=this.params;if(this.animating=!1,a.cssMode)return;this.setTransition(0);var s=t;s||(s=i>n?"next":i<n?"prev":"reset");if(this.emit("transitionEnd"),e&&i!==n){if("reset"===s)return void this.emit("slideResetTransitionEnd");this.emit("slideChangeTransitionEnd"),"next"===s?this.emit("slideNextTransitionEnd"):this.emit("slidePrevTransitionEnd")}}},{}],88:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t){void 0===e&&(e=!0);var i=this.activeIndex,n=this.params,a=this.previousIndex;if(n.cssMode)return;n.autoHeight&&this.updateAutoHeight();var s=t;s||(s=i>a?"next":i<a?"prev":"reset");if(this.emit("transitionStart"),e&&i!==a){if("reset"===s)return void this.emit("slideResetTransitionStart");this.emit("slideChangeTransitionStart"),"next"===s?this.emit("slideNextTransitionStart"):this.emit("slidePrevTransitionStart")}}},{}],89:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){void 0===e&&(e=this.isHorizontal()?"x":"y");var t=this.params,i=this.rtlTranslate,a=this.translate,s=this.$wrapperEl;if(t.virtualTranslate)return i?-a:a;if(t.cssMode)return a;var r=(0,n.getTranslate)(s[0],e);i&&(r=-r);return r||0};var n=e("../../../utils/utils")},{"../../../utils/utils":127}],90:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=l(e("./getTranslate")),a=l(e("./setTranslate")),s=l(e("./minTranslate")),r=l(e("./maxTranslate")),o=l(e("./translateTo"));function l(e){return e&&e.__esModule?e:{default:e}}var u={getTranslate:n.default,setTranslate:a.default,minTranslate:s.default,maxTranslate:r.default,translateTo:o.default};i.default=u},{"./getTranslate":89,"./maxTranslate":91,"./minTranslate":92,"./setTranslate":93,"./translateTo":94}],91:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){return-this.snapGrid[this.snapGrid.length-1]}},{}],92:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){return-this.snapGrid[0]}},{}],93:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t){var i,n=this.rtlTranslate,a=this.params,s=this.$wrapperEl,r=this.wrapperEl,o=this.progress,l=0,u=0;this.isHorizontal()?l=n?-e:e:u=e;a.roundLengths&&(l=Math.floor(l),u=Math.floor(u));a.cssMode?r[this.isHorizontal()?"scrollLeft":"scrollTop"]=this.isHorizontal()?-l:-u:a.virtualTranslate||s.transform("translate3d("+l+"px, "+u+"px, 0px)");this.previousTranslate=this.translate,this.translate=this.isHorizontal()?l:u;var c=this.maxTranslate()-this.minTranslate();i=0===c?0:(e-this.minTranslate())/c;i!==o&&this.updateProgress(e);this.emit("setTranslate",this.translate,t)}},{}],94:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e,t,i,n,a){void 0===e&&(e=0);void 0===t&&(t=this.params.speed);void 0===i&&(i=!0);void 0===n&&(n=!0);var s=this,r=s.params,o=s.wrapperEl;if(s.animating&&r.preventInteractionOnTransition)return!1;var l,u=s.minTranslate(),c=s.maxTranslate();l=n&&e>u?u:n&&e<c?c:e;if(s.updateProgress(l),r.cssMode){var d,h=s.isHorizontal();if(0===t)o[h?"scrollLeft":"scrollTop"]=-l;else if(o.scrollTo)o.scrollTo(((d={})[h?"left":"top"]=-l,d.behavior="smooth",d));else o[h?"scrollLeft":"scrollTop"]=-l;return!0}0===t?(s.setTransition(0),s.setTranslate(l),i&&(s.emit("beforeTransitionStart",t,a),s.emit("transitionEnd"))):(s.setTransition(t),s.setTranslate(l),i&&(s.emit("beforeTransitionStart",t,a),s.emit("transitionStart")),s.animating||(s.animating=!0,s.onTranslateToWrapperTransitionEnd||(s.onTranslateToWrapperTransitionEnd=function(e){s&&!s.destroyed&&e.target===this&&(s.$wrapperEl[0].removeEventListener("transitionend",s.onTranslateToWrapperTransitionEnd),s.$wrapperEl[0].removeEventListener("webkitTransitionEnd",s.onTranslateToWrapperTransitionEnd),s.onTranslateToWrapperTransitionEnd=null,delete s.onTranslateToWrapperTransitionEnd,i&&s.emit("transitionEnd"))}),s.$wrapperEl[0].addEventListener("transitionend",s.onTranslateToWrapperTransitionEnd),s.$wrapperEl[0].addEventListener("webkitTransitionEnd",s.onTranslateToWrapperTransitionEnd)));return!0}},{}],95:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=h(e("./updateSize")),a=h(e("./updateSlides")),s=h(e("./updateAutoHeight")),r=h(e("./updateSlidesOffset")),o=h(e("./updateSlidesProgress")),l=h(e("./updateProgress")),u=h(e("./updateSlidesClasses")),c=h(e("./updateActiveIndex")),d=h(e("./updateClickedSlide"));function h(e){return e&&e.__esModule?e:{default:e}}var f={updateSize:n.default,updateSlides:a.default,updateAutoHeight:s.default,updateSlidesOffset:r.default,updateSlidesProgress:o.default,updateProgress:l.default,updateSlidesClasses:u.default,updateActiveIndex:c.default,updateClickedSlide:d.default};i.default=f},{"./updateActiveIndex":96,"./updateAutoHeight":97,"./updateClickedSlide":98,"./updateProgress":99,"./updateSize":100,"./updateSlides":101,"./updateSlidesClasses":102,"./updateSlidesOffset":103,"./updateSlidesProgress":104}],96:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){var t,i=this.rtlTranslate?this.translate:-this.translate,a=this.slidesGrid,s=this.snapGrid,r=this.params,o=this.activeIndex,l=this.realIndex,u=this.snapIndex,c=e;if(void 0===c){for(var d=0;d<a.length;d+=1)void 0!==a[d+1]?i>=a[d]&&i<a[d+1]-(a[d+1]-a[d])/2?c=d:i>=a[d]&&i<a[d+1]&&(c=d+1):i>=a[d]&&(c=d);r.normalizeSlideIndex&&(c<0||void 0===c)&&(c=0)}if(s.indexOf(i)>=0)t=s.indexOf(i);else{var h=Math.min(r.slidesPerGroupSkip,c);t=h+Math.floor((c-h)/r.slidesPerGroup)}t>=s.length&&(t=s.length-1);if(c===o)return void(t!==u&&(this.snapIndex=t,this.emit("snapIndexChange")));var f=parseInt(this.slides.eq(c).attr("data-swiper-slide-index")||c,10);(0,n.extend)(this,{snapIndex:t,realIndex:f,previousIndex:o,activeIndex:c}),this.emit("activeIndexChange"),this.emit("snapIndexChange"),l!==f&&this.emit("realIndexChange");(this.initialized||this.params.runCallbacksOnInit)&&this.emit("slideChange")};var n=e("../../../utils/utils")},{"../../../utils/utils":127}],97:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){var t,i=this,n=[],a=i.virtual&&i.params.virtual.enabled,s=0;"number"==typeof e?i.setTransition(e):!0===e&&i.setTransition(i.params.speed);var r=function(e){return a?i.slides.filter(function(t){return parseInt(t.getAttribute("data-swiper-slide-index"),10)===e})[0]:i.slides.eq(e)[0]};if("auto"!==i.params.slidesPerView&&i.params.slidesPerView>1)if(i.params.centeredSlides)i.visibleSlides.each(function(e){n.push(e)});else for(t=0;t<Math.ceil(i.params.slidesPerView);t+=1){var o=i.activeIndex+t;if(o>i.slides.length&&!a)break;n.push(r(o))}else n.push(r(i.activeIndex));for(t=0;t<n.length;t+=1)if(void 0!==n[t]){var l=n[t].offsetHeight;s=l>s?l:s}s&&i.$wrapperEl.css("height",s+"px")}},{}],98:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){var t,i=this.params,n=(0,a.default)(e.target).closest("."+i.slideClass)[0],s=!1;if(n)for(var r=0;r<this.slides.length;r+=1)if(this.slides[r]===n){s=!0,t=r;break}if(!n||!s)return this.clickedSlide=void 0,void(this.clickedIndex=void 0);this.clickedSlide=n,this.virtual&&this.params.virtual.enabled?this.clickedIndex=parseInt((0,a.default)(n).attr("data-swiper-slide-index"),10):this.clickedIndex=t;i.slideToClickedSlide&&void 0!==this.clickedIndex&&this.clickedIndex!==this.activeIndex&&this.slideToClickedSlide()};var n,a=(n=e("../../../utils/dom"))&&n.__esModule?n:{default:n}},{"../../../utils/dom":123}],99:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){if(void 0===e){var t=this.rtlTranslate?-1:1;e=this&&this.translate&&this.translate*t||0}var i=this.params,a=this.maxTranslate()-this.minTranslate(),s=this.progress,r=this.isBeginning,o=this.isEnd,l=r,u=o;0===a?(s=0,r=!0,o=!0):(s=(e-this.minTranslate())/a,r=s<=0,o=s>=1);(0,n.extend)(this,{progress:s,isBeginning:r,isEnd:o}),(i.watchSlidesProgress||i.watchSlidesVisibility||i.centeredSlides&&i.autoHeight)&&this.updateSlidesProgress(e);r&&!l&&this.emit("reachBeginning toEdge");o&&!u&&this.emit("reachEnd toEdge");(l&&!r||u&&!o)&&this.emit("fromEdge");this.emit("progress",s)};var n=e("../../../utils/utils")},{"../../../utils/utils":127}],100:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){var e,t,i=this.$el;e=void 0!==this.params.width&&null!==this.params.width?this.params.width:i[0].clientWidth;t=void 0!==this.params.height&&null!==this.params.height?this.params.height:i[0].clientHeight;if(0===e&&this.isHorizontal()||0===t&&this.isVertical())return;e=e-parseInt(i.css("padding-left")||0,10)-parseInt(i.css("padding-right")||0,10),t=t-parseInt(i.css("padding-top")||0,10)-parseInt(i.css("padding-bottom")||0,10),Number.isNaN(e)&&(e=0);Number.isNaN(t)&&(t=0);(0,n.extend)(this,{width:e,height:t,size:this.isHorizontal()?e:t})};var n=e("../../../utils/utils")},{"../../../utils/utils":127}],101:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){var e=this;function t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}function i(e,i){return parseFloat(e.getPropertyValue(t(i))||0)}var a=e.params,s=e.$wrapperEl,r=e.size,o=e.rtlTranslate,l=e.wrongRTL,u=e.virtual&&a.virtual.enabled,c=u?e.virtual.slides.length:e.slides.length,d=s.children("."+e.params.slideClass),h=u?e.virtual.slides.length:d.length,f=[],p=[],m=[],v=a.slidesOffsetBefore;"function"==typeof v&&(v=a.slidesOffsetBefore.call(e));var g=a.slidesOffsetAfter;"function"==typeof g&&(g=a.slidesOffsetAfter.call(e));var y,b,w=e.snapGrid.length,E=e.slidesGrid.length,S=a.spaceBetween,C=-v,T=0,x=0;if(void 0===r)return;"string"==typeof S&&S.indexOf("%")>=0&&(S=parseFloat(S.replace("%",""))/100*r);e.virtualSize=-S,o?d.css({marginLeft:"",marginBottom:"",marginTop:""}):d.css({marginRight:"",marginBottom:"",marginTop:""});a.slidesPerColumn>1&&(y=Math.floor(h/a.slidesPerColumn)===h/e.params.slidesPerColumn?h:Math.ceil(h/a.slidesPerColumn)*a.slidesPerColumn,"auto"!==a.slidesPerView&&"row"===a.slidesPerColumnFill&&(y=Math.max(y,a.slidesPerView*a.slidesPerColumn)));for(var L,M,_=a.slidesPerColumn,k=y/_,A=Math.floor(h/a.slidesPerColumn),O=0;O<h;O+=1){b=0;var I=d.eq(O);if(a.slidesPerColumn>1){var P=void 0,N=void 0,j=void 0;if("row"===a.slidesPerColumnFill&&a.slidesPerGroup>1){var R=Math.floor(O/(a.slidesPerGroup*a.slidesPerColumn)),z=O-a.slidesPerColumn*a.slidesPerGroup*R,D=0===R?a.slidesPerGroup:Math.min(Math.ceil((h-R*_*a.slidesPerGroup)/_),a.slidesPerGroup);j=Math.floor(z/D),N=z-j*D+R*a.slidesPerGroup,P=N+j*y/_,I.css({"-webkit-box-ordinal-group":P,"-moz-box-ordinal-group":P,"-ms-flex-order":P,"-webkit-order":P,order:P})}else"column"===a.slidesPerColumnFill?(N=Math.floor(O/_),j=O-N*_,(N>A||N===A&&j===_-1)&&(j+=1)>=_&&(j=0,N+=1)):(j=Math.floor(O/k),N=O-j*k);I.css(t("margin-top"),0!==j?a.spaceBetween&&a.spaceBetween+"px":"")}if("none"!==I.css("display")){if("auto"===a.slidesPerView){var G=getComputedStyle(I[0]),B=I[0].style.transform,q=I[0].style.webkitTransform;if(B&&(I[0].style.transform="none"),q&&(I[0].style.webkitTransform="none"),a.roundLengths)b=e.isHorizontal()?I.outerWidth(!0):I.outerHeight(!0);else{var W=i(G,"width"),$=i(G,"padding-left"),X=i(G,"padding-right"),F=i(G,"margin-left"),J=i(G,"margin-right"),H=G.getPropertyValue("box-sizing");if(H&&"border-box"===H)b=W+F+J;else{var U=I[0],V=U.clientWidth,Y=U.offsetWidth;b=W+$+X+F+J+(Y-V)}}B&&(I[0].style.transform=B),q&&(I[0].style.webkitTransform=q),a.roundLengths&&(b=Math.floor(b))}else b=(r-(a.slidesPerView-1)*S)/a.slidesPerView,a.roundLengths&&(b=Math.floor(b)),d[O]&&(d[O].style[t("width")]=b+"px");d[O]&&(d[O].swiperSlideSize=b),m.push(b),a.centeredSlides?(C=C+b/2+T/2+S,0===T&&0!==O&&(C=C-r/2-S),0===O&&(C=C-r/2-S),Math.abs(C)<.001&&(C=0),a.roundLengths&&(C=Math.floor(C)),x%a.slidesPerGroup==0&&f.push(C),p.push(C)):(a.roundLengths&&(C=Math.floor(C)),(x-Math.min(e.params.slidesPerGroupSkip,x))%e.params.slidesPerGroup==0&&f.push(C),p.push(C),C=C+b+S),e.virtualSize+=b+S,T=b,x+=1}}e.virtualSize=Math.max(e.virtualSize,r)+g,o&&l&&("slide"===a.effect||"coverflow"===a.effect)&&s.css({width:e.virtualSize+a.spaceBetween+"px"});a.setWrapperSize&&s.css(((M={})[t("width")]=e.virtualSize+a.spaceBetween+"px",M));if(a.slidesPerColumn>1){var Z;if(e.virtualSize=(b+a.spaceBetween)*y,e.virtualSize=Math.ceil(e.virtualSize/a.slidesPerColumn)-a.spaceBetween,s.css(((Z={})[t("width")]=e.virtualSize+a.spaceBetween+"px",Z)),a.centeredSlides){L=[];for(var K=0;K<f.length;K+=1){var Q=f[K];a.roundLengths&&(Q=Math.floor(Q)),f[K]<e.virtualSize+f[0]&&L.push(Q)}f=L}}if(!a.centeredSlides){L=[];for(var ee=0;ee<f.length;ee+=1){var te=f[ee];a.roundLengths&&(te=Math.floor(te)),f[ee]<=e.virtualSize-r&&L.push(te)}f=L,Math.floor(e.virtualSize-r)-Math.floor(f[f.length-1])>1&&f.push(e.virtualSize-r)}0===f.length&&(f=[0]);if(0!==a.spaceBetween){var ie,ne=e.isHorizontal()&&o?"marginLeft":t("marginRight");d.filter(function(e,t){return!a.cssMode||t!==d.length-1}).css(((ie={})[ne]=S+"px",ie))}if(a.centeredSlides&&a.centeredSlidesBounds){var ae=0;m.forEach(function(e){ae+=e+(a.spaceBetween?a.spaceBetween:0)});var se=(ae-=a.spaceBetween)-r;f=f.map(function(e){return e<0?-v:e>se?se+g:e})}if(a.centerInsufficientSlides){var re=0;if(m.forEach(function(e){re+=e+(a.spaceBetween?a.spaceBetween:0)}),(re-=a.spaceBetween)<r){var oe=(r-re)/2;f.forEach(function(e,t){f[t]=e-oe}),p.forEach(function(e,t){p[t]=e+oe})}}(0,n.extend)(e,{slides:d,snapGrid:f,slidesGrid:p,slidesSizesGrid:m}),h!==c&&e.emit("slidesLengthChange");f.length!==w&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange"));p.length!==E&&e.emit("slidesGridLengthChange");(a.watchSlidesProgress||a.watchSlidesVisibility)&&e.updateSlidesOffset()};var n=e("../../../utils/utils")},{"../../../utils/utils":127}],102:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){var e,t=this.slides,i=this.params,n=this.$wrapperEl,a=this.activeIndex,s=this.realIndex,r=this.virtual&&i.virtual.enabled;t.removeClass(i.slideActiveClass+" "+i.slideNextClass+" "+i.slidePrevClass+" "+i.slideDuplicateActiveClass+" "+i.slideDuplicateNextClass+" "+i.slideDuplicatePrevClass),e=r?this.$wrapperEl.find("."+i.slideClass+'[data-swiper-slide-index="'+a+'"]'):t.eq(a);e.addClass(i.slideActiveClass),i.loop&&(e.hasClass(i.slideDuplicateClass)?n.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+s+'"]').addClass(i.slideDuplicateActiveClass):n.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+s+'"]').addClass(i.slideDuplicateActiveClass));var o=e.nextAll("."+i.slideClass).eq(0).addClass(i.slideNextClass);i.loop&&0===o.length&&(o=t.eq(0)).addClass(i.slideNextClass);var l=e.prevAll("."+i.slideClass).eq(0).addClass(i.slidePrevClass);i.loop&&0===l.length&&(l=t.eq(-1)).addClass(i.slidePrevClass);i.loop&&(o.hasClass(i.slideDuplicateClass)?n.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass):n.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass),l.hasClass(i.slideDuplicateClass)?n.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass):n.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass));this.emitSlidesClasses()}},{}],103:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(){for(var e=this.slides,t=0;t<e.length;t+=1)e[t].swiperSlideOffset=this.isHorizontal()?e[t].offsetLeft:e[t].offsetTop}},{}],104:[function(e,t,i){"use strict";i.__esModule=!0,i.default=function(e){void 0===e&&(e=this&&this.translate||0);var t=this.params,i=this.slides,n=this.rtlTranslate;if(0===i.length)return;void 0===i[0].swiperSlideOffset&&this.updateSlidesOffset();var s=-e;n&&(s=e);i.removeClass(t.slideVisibleClass),this.visibleSlidesIndexes=[],this.visibleSlides=[];for(var r=0;r<i.length;r+=1){var o=i[r],l=(s+(t.centeredSlides?this.minTranslate():0)-o.swiperSlideOffset)/(o.swiperSlideSize+t.spaceBetween);if(t.watchSlidesVisibility||t.centeredSlides&&t.autoHeight){var u=-(s-o.swiperSlideOffset),c=u+this.slidesSizesGrid[r],d=u>=0&&u<this.size-1||c>1&&c<=this.size||u<=0&&c>=this.size;d&&(this.visibleSlides.push(o),this.visibleSlidesIndexes.push(r),i.eq(r).addClass(t.slideVisibleClass))}o.progress=n?-l:l}this.visibleSlides=(0,a.default)(this.visibleSlides)};var n,a=(n=e("../../../utils/dom"))&&n.__esModule?n:{default:n}},{"../../../utils/dom":123}],105:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},s=e("../../utils/utils");function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var o={setTranslate:function(){for(var e=this.width,t=this.height,i=this.slides,n=this.slidesSizesGrid,s=this.params.coverflowEffect,r=this.isHorizontal(),o=this.translate,l=r?e/2-o:t/2-o,u=r?s.rotate:-s.rotate,c=s.depth,d=0,h=i.length;d<h;d+=1){var f=i.eq(d),p=n[d],m=(l-f[0].swiperSlideOffset-p/2)/p*s.modifier,v=r?u*m:0,g=r?0:u*m,y=-c*Math.abs(m),b=s.stretch;"string"==typeof b&&-1!==b.indexOf("%")&&(b=parseFloat(s.stretch)/100*p);var w=r?0:b*m,E=r?b*m:0,S=1-(1-s.scale)*Math.abs(m);Math.abs(E)<.001&&(E=0),Math.abs(w)<.001&&(w=0),Math.abs(y)<.001&&(y=0),Math.abs(v)<.001&&(v=0),Math.abs(g)<.001&&(g=0),Math.abs(S)<.001&&(S=0);var C="translate3d("+E+"px,"+w+"px,"+y+"px)  rotateX("+g+"deg) rotateY("+v+"deg) scale("+S+")";if(f.transform(C),f[0].style.zIndex=1-Math.abs(Math.round(m)),s.slideShadows){var T=r?f.find(".swiper-slide-shadow-left"):f.find(".swiper-slide-shadow-top"),x=r?f.find(".swiper-slide-shadow-right"):f.find(".swiper-slide-shadow-bottom");0===T.length&&(T=(0,a.default)('<div class="swiper-slide-shadow-'+(r?"left":"top")+'"></div>'),f.append(T)),0===x.length&&(x=(0,a.default)('<div class="swiper-slide-shadow-'+(r?"right":"bottom")+'"></div>'),f.append(x)),T.length&&(T[0].style.opacity=m>0?m:0),x.length&&(x[0].style.opacity=-m>0?-m:0)}}},setTransition:function(e){this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}},l={name:"effect-coverflow",params:{coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}},create:function(){(0,s.bindModuleMethods)(this,{coverflowEffect:r({},o)})},on:{beforeInit:function(e){"coverflow"===e.params.effect&&(e.classNames.push(e.params.containerModifierClass+"coverflow"),e.classNames.push(e.params.containerModifierClass+"3d"),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)},setTranslate:function(e){"coverflow"===e.params.effect&&e.coverflowEffect.setTranslate()},setTransition:function(e,t){"coverflow"===e.params.effect&&e.coverflowEffect.setTransition(t)}}};i.default=l},{"../../utils/dom":123,"../../utils/utils":127}],106:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},s=e("../../utils/utils");function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var o={setTranslate:function(){var e,t=this.$el,i=this.$wrapperEl,n=this.slides,s=this.width,r=this.height,o=this.rtlTranslate,l=this.size,u=this.browser,c=this.params.cubeEffect,d=this.isHorizontal(),h=this.virtual&&this.params.virtual.enabled,f=0;c.shadow&&(d?(0===(e=i.find(".swiper-cube-shadow")).length&&(e=(0,a.default)('<div class="swiper-cube-shadow"></div>'),i.append(e)),e.css({height:s+"px"})):0===(e=t.find(".swiper-cube-shadow")).length&&(e=(0,a.default)('<div class="swiper-cube-shadow"></div>'),t.append(e)));for(var p=0;p<n.length;p+=1){var m=n.eq(p),v=p;h&&(v=parseInt(m.attr("data-swiper-slide-index"),10));var g=90*v,y=Math.floor(g/360);o&&(g=-g,y=Math.floor(-g/360));var b=Math.max(Math.min(m[0].progress,1),-1),w=0,E=0,S=0;v%4==0?(w=4*-y*l,S=0):(v-1)%4==0?(w=0,S=4*-y*l):(v-2)%4==0?(w=l+4*y*l,S=l):(v-3)%4==0&&(w=-l,S=3*l+4*l*y),o&&(w=-w),d||(E=w,w=0);var C="rotateX("+(d?0:-g)+"deg) rotateY("+(d?g:0)+"deg) translate3d("+w+"px, "+E+"px, "+S+"px)";if(b<=1&&b>-1&&(f=90*v+90*b,o&&(f=90*-v-90*b)),m.transform(C),c.slideShadows){var T=d?m.find(".swiper-slide-shadow-left"):m.find(".swiper-slide-shadow-top"),x=d?m.find(".swiper-slide-shadow-right"):m.find(".swiper-slide-shadow-bottom");0===T.length&&(T=(0,a.default)('<div class="swiper-slide-shadow-'+(d?"left":"top")+'"></div>'),m.append(T)),0===x.length&&(x=(0,a.default)('<div class="swiper-slide-shadow-'+(d?"right":"bottom")+'"></div>'),m.append(x)),T.length&&(T[0].style.opacity=Math.max(-b,0)),x.length&&(x[0].style.opacity=Math.max(b,0))}}if(i.css({"-webkit-transform-origin":"50% 50% -"+l/2+"px","-moz-transform-origin":"50% 50% -"+l/2+"px","-ms-transform-origin":"50% 50% -"+l/2+"px","transform-origin":"50% 50% -"+l/2+"px"}),c.shadow)if(d)e.transform("translate3d(0px, "+(s/2+c.shadowOffset)+"px, "+-s/2+"px) rotateX(90deg) rotateZ(0deg) scale("+c.shadowScale+")");else{var L=Math.abs(f)-90*Math.floor(Math.abs(f)/90),M=1.5-(Math.sin(2*L*Math.PI/360)/2+Math.cos(2*L*Math.PI/360)/2),_=c.shadowScale,k=c.shadowScale/M,A=c.shadowOffset;e.transform("scale3d("+_+", 1, "+k+") translate3d(0px, "+(r/2+A)+"px, "+-r/2/k+"px) rotateX(-90deg)")}var O=u.isSafari||u.isWebView?-l/2:0;i.transform("translate3d(0px,0,"+O+"px) rotateX("+(this.isHorizontal()?0:f)+"deg) rotateY("+(this.isHorizontal()?-f:0)+"deg)")},setTransition:function(e){var t=this.$el;this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),this.params.cubeEffect.shadow&&!this.isHorizontal()&&t.find(".swiper-cube-shadow").transition(e)}},l={name:"effect-cube",params:{cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}},create:function(){(0,s.bindModuleMethods)(this,{cubeEffect:r({},o)})},on:{beforeInit:function(e){if("cube"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"cube"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0};(0,s.extend)(e.params,t),(0,s.extend)(e.originalParams,t)}},setTranslate:function(e){"cube"===e.params.effect&&e.cubeEffect.setTranslate()},setTransition:function(e,t){"cube"===e.params.effect&&e.cubeEffect.setTransition(t)}}};i.default=l},{"../../utils/dom":123,"../../utils/utils":127}],107:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=e("../../utils/utils");function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var s={setTranslate:function(){for(var e=this.slides,t=0;t<e.length;t+=1){var i=this.slides.eq(t),n=-i[0].swiperSlideOffset;this.params.virtualTranslate||(n-=this.translate);var a=0;this.isHorizontal()||(a=n,n=0);var s=this.params.fadeEffect.crossFade?Math.max(1-Math.abs(i[0].progress),0):1+Math.min(Math.max(i[0].progress,-1),0);i.css({opacity:s}).transform("translate3d("+n+"px, "+a+"px, 0px)")}},setTransition:function(e){var t=this,i=t.slides,n=t.$wrapperEl;if(i.transition(e),t.params.virtualTranslate&&0!==e){var a=!1;i.transitionEnd(function(){if(!a&&t&&!t.destroyed){a=!0,t.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],i=0;i<e.length;i+=1)n.trigger(e[i])}})}}},r={name:"effect-fade",params:{fadeEffect:{crossFade:!1}},create:function(){(0,n.bindModuleMethods)(this,{fadeEffect:a({},s)})},on:{beforeInit:function(e){if("fade"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"fade");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};(0,n.extend)(e.params,t),(0,n.extend)(e.originalParams,t)}},setTranslate:function(e){"fade"===e.params.effect&&e.fadeEffect.setTranslate()},setTransition:function(e,t){"fade"===e.params.effect&&e.fadeEffect.setTransition(t)}}};i.default=r},{"../../utils/utils":127}],108:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},s=e("../../utils/utils");function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var o={setTranslate:function(){for(var e=this.slides,t=this.rtlTranslate,i=0;i<e.length;i+=1){var n=e.eq(i),s=n[0].progress;this.params.flipEffect.limitRotation&&(s=Math.max(Math.min(n[0].progress,1),-1));var r=-180*s,o=0,l=-n[0].swiperSlideOffset,u=0;if(this.isHorizontal()?t&&(r=-r):(u=l,l=0,o=-r,r=0),n[0].style.zIndex=-Math.abs(Math.round(s))+e.length,this.params.flipEffect.slideShadows){var c=this.isHorizontal()?n.find(".swiper-slide-shadow-left"):n.find(".swiper-slide-shadow-top"),d=this.isHorizontal()?n.find(".swiper-slide-shadow-right"):n.find(".swiper-slide-shadow-bottom");0===c.length&&(c=(0,a.default)('<div class="swiper-slide-shadow-'+(this.isHorizontal()?"left":"top")+'"></div>'),n.append(c)),0===d.length&&(d=(0,a.default)('<div class="swiper-slide-shadow-'+(this.isHorizontal()?"right":"bottom")+'"></div>'),n.append(d)),c.length&&(c[0].style.opacity=Math.max(-s,0)),d.length&&(d[0].style.opacity=Math.max(s,0))}n.transform("translate3d("+l+"px, "+u+"px, 0px) rotateX("+o+"deg) rotateY("+r+"deg)")}},setTransition:function(e){var t=this,i=t.slides,n=t.activeIndex,a=t.$wrapperEl;if(i.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.virtualTranslate&&0!==e){var s=!1;i.eq(n).transitionEnd(function(){if(!s&&t&&!t.destroyed){s=!0,t.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],i=0;i<e.length;i+=1)a.trigger(e[i])}})}}},l={name:"effect-flip",params:{flipEffect:{slideShadows:!0,limitRotation:!0}},create:function(){(0,s.bindModuleMethods)(this,{flipEffect:r({},o)})},on:{beforeInit:function(e){if("flip"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"flip"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};(0,s.extend)(e.params,t),(0,s.extend)(e.originalParams,t)}},setTranslate:function(e){"flip"===e.params.effect&&e.flipEffect.setTranslate()},setTransition:function(e,t){"flip"===e.params.effect&&e.flipEffect.setTransition(t)}}};i.default=l},{"../../utils/dom":123,"../../utils/utils":127}],109:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=e("ssr-window"),s=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},r=e("../../utils/utils");function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var l={onHashChange:function(){var e=(0,a.getDocument)();this.emit("hashChange");var t=e.location.hash.replace("#","");if(t!==this.slides.eq(this.activeIndex).attr("data-hash")){var i=this.$wrapperEl.children("."+this.params.slideClass+'[data-hash="'+t+'"]').index();if(void 0===i)return;this.slideTo(i)}},setHash:function(){var e=(0,a.getWindow)(),t=(0,a.getDocument)();if(this.hashNavigation.initialized&&this.params.hashNavigation.enabled)if(this.params.hashNavigation.replaceState&&e.history&&e.history.replaceState)e.history.replaceState(null,null,"#"+this.slides.eq(this.activeIndex).attr("data-hash")||""),this.emit("hashSet");else{var i=this.slides.eq(this.activeIndex),n=i.attr("data-hash")||i.attr("data-history");t.location.hash=n||"",this.emit("hashSet")}},init:function(){var e=(0,a.getDocument)(),t=(0,a.getWindow)();if(!(!this.params.hashNavigation.enabled||this.params.history&&this.params.history.enabled)){this.hashNavigation.initialized=!0;var i=e.location.hash.replace("#","");if(i)for(var n=0,r=this.slides.length;n<r;n+=1){var o=this.slides.eq(n);if((o.attr("data-hash")||o.attr("data-history"))===i&&!o.hasClass(this.params.slideDuplicateClass)){var l=o.index();this.slideTo(l,0,this.params.runCallbacksOnInit,!0)}}this.params.hashNavigation.watchState&&(0,s.default)(t).on("hashchange",this.hashNavigation.onHashChange)}},destroy:function(){var e=(0,a.getWindow)();this.params.hashNavigation.watchState&&(0,s.default)(e).off("hashchange",this.hashNavigation.onHashChange)}},u={name:"hash-navigation",params:{hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}},create:function(){(0,r.bindModuleMethods)(this,{hashNavigation:o({initialized:!1},l)})},on:{init:function(e){e.params.hashNavigation.enabled&&e.hashNavigation.init()},destroy:function(e){e.params.hashNavigation.enabled&&e.hashNavigation.destroy()},"transitionEnd _freeModeNoMomentumRelease":function(e){e.hashNavigation.initialized&&e.hashNavigation.setHash()},slideChange:function(e){e.hashNavigation.initialized&&e.params.cssMode&&e.hashNavigation.setHash()}}};i.default=u},{"../../utils/dom":123,"../../utils/utils":127,"ssr-window":38}],110:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=e("ssr-window"),a=e("../../utils/utils");function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var r={init:function(){var e=(0,n.getWindow)();if(this.params.history){if(!e.history||!e.history.pushState)return this.params.history.enabled=!1,void(this.params.hashNavigation.enabled=!0);var t=this.history;t.initialized=!0,t.paths=r.getPathValues(this.params.url),(t.paths.key||t.paths.value)&&(t.scrollToSlide(0,t.paths.value,this.params.runCallbacksOnInit),this.params.history.replaceState||e.addEventListener("popstate",this.history.setHistoryPopState))}},destroy:function(){var e=(0,n.getWindow)();this.params.history.replaceState||e.removeEventListener("popstate",this.history.setHistoryPopState)},setHistoryPopState:function(){this.history.paths=r.getPathValues(this.params.url),this.history.scrollToSlide(this.params.speed,this.history.paths.value,!1)},getPathValues:function(e){var t=(0,n.getWindow)(),i=(e?new URL(e):t.location).pathname.slice(1).split("/").filter(function(e){return""!==e}),a=i.length;return{key:i[a-2],value:i[a-1]}},setHistory:function(e,t){var i=(0,n.getWindow)();if(this.history.initialized&&this.params.history.enabled){var a;a=this.params.url?new URL(this.params.url):i.location;var s=this.slides.eq(t),o=r.slugify(s.attr("data-history"));if(this.params.history.root.length>0){var l=this.params.history.root;"/"===l[l.length-1]&&(l=l.slice(0,l.length-1)),o=l+"/"+e+"/"+o}else a.pathname.includes(e)||(o=e+"/"+o);var u=i.history.state;u&&u.value===o||(this.params.history.replaceState?i.history.replaceState({value:o},null,o):i.history.pushState({value:o},null,o))}},slugify:function(e){return e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"")},scrollToSlide:function(e,t,i){if(t)for(var n=0,a=this.slides.length;n<a;n+=1){var s=this.slides.eq(n);if(r.slugify(s.attr("data-history"))===t&&!s.hasClass(this.params.slideDuplicateClass)){var o=s.index();this.slideTo(o,e,i)}}else this.slideTo(0,e,i)}},o={name:"history",params:{history:{enabled:!1,root:"",replaceState:!1,key:"slides"}},create:function(){(0,a.bindModuleMethods)(this,{history:s({},r)})},on:{init:function(e){e.params.history.enabled&&e.history.init()},destroy:function(e){e.params.history.enabled&&e.history.destroy()},"transitionEnd _freeModeNoMomentumRelease":function(e){e.history.initialized&&e.history.setHistory(e.params.history.key,e.activeIndex)},slideChange:function(e){e.history.initialized&&e.params.cssMode&&e.history.setHistory(e.params.history.key,e.activeIndex)}}};i.default=o},{"../../utils/utils":127,"ssr-window":38}],111:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=e("ssr-window"),s=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},r=e("../../utils/utils");function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var l={handle:function(e){if(this.enabled){var t=(0,a.getWindow)(),i=(0,a.getDocument)(),n=this.rtlTranslate,s=e;s.originalEvent&&(s=s.originalEvent);var r=s.keyCode||s.charCode,o=this.params.keyboard.pageUpDown,l=o&&33===r,u=o&&34===r,c=37===r,d=39===r,h=38===r,f=40===r;if(!this.allowSlideNext&&(this.isHorizontal()&&d||this.isVertical()&&f||u))return!1;if(!this.allowSlidePrev&&(this.isHorizontal()&&c||this.isVertical()&&h||l))return!1;if(!(s.shiftKey||s.altKey||s.ctrlKey||s.metaKey||i.activeElement&&i.activeElement.nodeName&&("input"===i.activeElement.nodeName.toLowerCase()||"textarea"===i.activeElement.nodeName.toLowerCase()))){if(this.params.keyboard.onlyInViewport&&(l||u||c||d||h||f)){var p=!1;if(this.$el.parents("."+this.params.slideClass).length>0&&0===this.$el.parents("."+this.params.slideActiveClass).length)return;var m=this.$el,v=m[0].clientWidth,g=m[0].clientHeight,y=t.innerWidth,b=t.innerHeight,w=this.$el.offset();n&&(w.left-=this.$el[0].scrollLeft);for(var E=[[w.left,w.top],[w.left+v,w.top],[w.left,w.top+g],[w.left+v,w.top+g]],S=0;S<E.length;S+=1){var C=E[S];if(C[0]>=0&&C[0]<=y&&C[1]>=0&&C[1]<=b){if(0===C[0]&&0===C[1])continue;p=!0}}if(!p)return}this.isHorizontal()?((l||u||c||d)&&(s.preventDefault?s.preventDefault():s.returnValue=!1),((u||d)&&!n||(l||c)&&n)&&this.slideNext(),((l||c)&&!n||(u||d)&&n)&&this.slidePrev()):((l||u||h||f)&&(s.preventDefault?s.preventDefault():s.returnValue=!1),(u||f)&&this.slideNext(),(l||h)&&this.slidePrev()),this.emit("keyPress",r)}}},enable:function(){var e=(0,a.getDocument)();this.keyboard.enabled||((0,s.default)(e).on("keydown",this.keyboard.handle),this.keyboard.enabled=!0)},disable:function(){var e=(0,a.getDocument)();this.keyboard.enabled&&((0,s.default)(e).off("keydown",this.keyboard.handle),this.keyboard.enabled=!1)}},u={name:"keyboard",params:{keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}},create:function(){(0,r.bindModuleMethods)(this,{keyboard:o({enabled:!1},l)})},on:{init:function(e){e.params.keyboard.enabled&&e.keyboard.enable()},destroy:function(e){e.keyboard.enabled&&e.keyboard.disable()}}};i.default=u},{"../../utils/dom":123,"../../utils/utils":127,"ssr-window":38}],112:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=e("ssr-window"),s=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},r=e("../../utils/utils");function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var l={loadInSlide:function(e,t){void 0===t&&(t=!0);var i=this,n=i.params.lazy;if(void 0!==e&&0!==i.slides.length){var a=i.virtual&&i.params.virtual.enabled?i.$wrapperEl.children("."+i.params.slideClass+'[data-swiper-slide-index="'+e+'"]'):i.slides.eq(e),r=a.find("."+n.elementClass+":not(."+n.loadedClass+"):not(."+n.loadingClass+")");!a.hasClass(n.elementClass)||a.hasClass(n.loadedClass)||a.hasClass(n.loadingClass)||r.push(a[0]),0!==r.length&&r.each(function(e){var r=(0,s.default)(e);r.addClass(n.loadingClass);var o=r.attr("data-background"),l=r.attr("data-src"),u=r.attr("data-srcset"),c=r.attr("data-sizes"),d=r.parent("picture");i.loadImage(r[0],l||o,u,c,!1,function(){if(null!=i&&i&&(!i||i.params)&&!i.destroyed){if(o?(r.css("background-image",'url("'+o+'")'),r.removeAttr("data-background")):(u&&(r.attr("srcset",u),r.removeAttr("data-srcset")),c&&(r.attr("sizes",c),r.removeAttr("data-sizes")),d.length&&d.children("source").each(function(e){var t=(0,s.default)(e);t.attr("data-srcset")&&(t.attr("srcset",t.attr("data-srcset")),t.removeAttr("data-srcset"))}),l&&(r.attr("src",l),r.removeAttr("data-src"))),r.addClass(n.loadedClass).removeClass(n.loadingClass),a.find("."+n.preloaderClass).remove(),i.params.loop&&t){var e=a.attr("data-swiper-slide-index");if(a.hasClass(i.params.slideDuplicateClass)){var h=i.$wrapperEl.children('[data-swiper-slide-index="'+e+'"]:not(.'+i.params.slideDuplicateClass+")");i.lazy.loadInSlide(h.index(),!1)}else{var f=i.$wrapperEl.children("."+i.params.slideDuplicateClass+'[data-swiper-slide-index="'+e+'"]');i.lazy.loadInSlide(f.index(),!1)}}i.emit("lazyImageReady",a[0],r[0]),i.params.autoHeight&&i.updateAutoHeight()}}),i.emit("lazyImageLoad",a[0],r[0])})}},load:function(){var e=this,t=e.$wrapperEl,i=e.params,n=e.slides,a=e.activeIndex,r=e.virtual&&i.virtual.enabled,o=i.lazy,l=i.slidesPerView;function u(e){if(r){if(t.children("."+i.slideClass+'[data-swiper-slide-index="'+e+'"]').length)return!0}else if(n[e])return!0;return!1}function c(e){return r?(0,s.default)(e).attr("data-swiper-slide-index"):(0,s.default)(e).index()}if("auto"===l&&(l=0),e.lazy.initialImageLoaded||(e.lazy.initialImageLoaded=!0),e.params.watchSlidesVisibility)t.children("."+i.slideVisibleClass).each(function(t){var i=r?(0,s.default)(t).attr("data-swiper-slide-index"):(0,s.default)(t).index();e.lazy.loadInSlide(i)});else if(l>1)for(var d=a;d<a+l;d+=1)u(d)&&e.lazy.loadInSlide(d);else e.lazy.loadInSlide(a);if(o.loadPrevNext)if(l>1||o.loadPrevNextAmount&&o.loadPrevNextAmount>1){for(var h=o.loadPrevNextAmount,f=l,p=Math.min(a+f+Math.max(h,f),n.length),m=Math.max(a-Math.max(f,h),0),v=a+l;v<p;v+=1)u(v)&&e.lazy.loadInSlide(v);for(var g=m;g<a;g+=1)u(g)&&e.lazy.loadInSlide(g)}else{var y=t.children("."+i.slideNextClass);y.length>0&&e.lazy.loadInSlide(c(y));var b=t.children("."+i.slidePrevClass);b.length>0&&e.lazy.loadInSlide(c(b))}},checkInViewOnLoad:function(){var e=(0,a.getWindow)();if(this&&!this.destroyed){var t=this.params.lazy.scrollingElement?(0,s.default)(this.params.lazy.scrollingElement):(0,s.default)(e),i=t[0]===e,n=i?e.innerWidth:t[0].offsetWidth,r=i?e.innerHeight:t[0].offsetHeight,o=this.$el.offset(),l=!1;this.rtlTranslate&&(o.left-=this.$el[0].scrollLeft);for(var u=[[o.left,o.top],[o.left+this.width,o.top],[o.left,o.top+this.height],[o.left+this.width,o.top+this.height]],c=0;c<u.length;c+=1){var d=u[c];if(d[0]>=0&&d[0]<=n&&d[1]>=0&&d[1]<=r){if(0===d[0]&&0===d[1])continue;l=!0}}var h=!("touchstart"!==this.touchEvents.start||!this.support.passiveListener||!this.params.passiveListeners)&&{passive:!0,capture:!1};l?(this.lazy.load(),t.off("scroll",this.lazy.checkInViewOnLoad,h)):this.lazy.scrollHandlerAttached||(this.lazy.scrollHandlerAttached=!0,t.on("scroll",this.lazy.checkInViewOnLoad,h))}}},u={name:"lazy",params:{lazy:{checkInView:!1,enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,scrollingElement:"",elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}},create:function(){(0,r.bindModuleMethods)(this,{lazy:o({initialImageLoaded:!1},l)})},on:{beforeInit:function(e){e.params.lazy.enabled&&e.params.preloadImages&&(e.params.preloadImages=!1)},init:function(e){e.params.lazy.enabled&&!e.params.loop&&0===e.params.initialSlide&&(e.params.lazy.checkInView?e.lazy.checkInViewOnLoad():e.lazy.load())},scroll:function(e){e.params.freeMode&&!e.params.freeModeSticky&&e.lazy.load()},"scrollbarDragMove resize _freeModeNoMomentumRelease":function(e){e.params.lazy.enabled&&e.lazy.load()},transitionStart:function(e){e.params.lazy.enabled&&(e.params.lazy.loadOnTransitionStart||!e.params.lazy.loadOnTransitionStart&&!e.lazy.initialImageLoaded)&&e.lazy.load()},transitionEnd:function(e){e.params.lazy.enabled&&!e.params.lazy.loadOnTransitionStart&&e.lazy.load()},slideChange:function(e){var t=e.params,i=t.lazy,n=t.cssMode,a=t.watchSlidesVisibility,s=t.watchSlidesProgress,r=t.touchReleaseOnEdges,o=t.resistanceRatio;i.enabled&&(n||(a||s)&&(r||0===o))&&e.lazy.load()}}};i.default=u},{"../../utils/dom":123,"../../utils/utils":127,"ssr-window":38}],113:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=e("ssr-window"),s=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},r=e("../../utils/utils");var o={lastScrollTime:(0,r.now)(),lastEventBeforeSnap:void 0,recentWheelEvents:[],event:function(){return(0,a.getWindow)().navigator.userAgent.indexOf("firefox")>-1?"DOMMouseScroll":function(){var e=(0,a.getDocument)(),t="onwheel"in e;if(!t){var i=e.createElement("div");i.setAttribute("onwheel","return;"),t="function"==typeof i.onwheel}return!t&&e.implementation&&e.implementation.hasFeature&&!0!==e.implementation.hasFeature("","")&&(t=e.implementation.hasFeature("Events.wheel","3.0")),t}()?"wheel":"mousewheel"},normalize:function(e){var t=0,i=0,n=0,a=0;return"detail"in e&&(i=e.detail),"wheelDelta"in e&&(i=-e.wheelDelta/120),"wheelDeltaY"in e&&(i=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=i,i=0),n=10*t,a=10*i,"deltaY"in e&&(a=e.deltaY),"deltaX"in e&&(n=e.deltaX),e.shiftKey&&!n&&(n=a,a=0),(n||a)&&e.deltaMode&&(1===e.deltaMode?(n*=40,a*=40):(n*=800,a*=800)),n&&!t&&(t=n<1?-1:1),a&&!i&&(i=a<1?-1:1),{spinX:t,spinY:i,pixelX:n,pixelY:a}},handleMouseEnter:function(){this.enabled&&(this.mouseEntered=!0)},handleMouseLeave:function(){this.enabled&&(this.mouseEntered=!1)},handle:function(e){var t=e,i=this;if(i.enabled){var n=i.params.mousewheel;i.params.cssMode&&t.preventDefault();var a=i.$el;if("container"!==i.params.mousewheel.eventsTarget&&(a=(0,s.default)(i.params.mousewheel.eventsTarget)),!i.mouseEntered&&!a[0].contains(t.target)&&!n.releaseOnEdges)return!0;t.originalEvent&&(t=t.originalEvent);var l=0,u=i.rtlTranslate?-1:1,c=o.normalize(t);if(n.forceToAxis)if(i.isHorizontal()){if(!(Math.abs(c.pixelX)>Math.abs(c.pixelY)))return!0;l=-c.pixelX*u}else{if(!(Math.abs(c.pixelY)>Math.abs(c.pixelX)))return!0;l=-c.pixelY}else l=Math.abs(c.pixelX)>Math.abs(c.pixelY)?-c.pixelX*u:-c.pixelY;if(0===l)return!0;n.invert&&(l=-l);var d=i.getTranslate()+l*n.sensitivity;if(d>=i.minTranslate()&&(d=i.minTranslate()),d<=i.maxTranslate()&&(d=i.maxTranslate()),(!!i.params.loop||!(d===i.minTranslate()||d===i.maxTranslate()))&&i.params.nested&&t.stopPropagation(),i.params.freeMode){var h={time:(0,r.now)(),delta:Math.abs(l),direction:Math.sign(l)},f=i.mousewheel.lastEventBeforeSnap,p=f&&h.time<f.time+500&&h.delta<=f.delta&&h.direction===f.direction;if(!p){i.mousewheel.lastEventBeforeSnap=void 0,i.params.loop&&i.loopFix();var m=i.getTranslate()+l*n.sensitivity,v=i.isBeginning,g=i.isEnd;if(m>=i.minTranslate()&&(m=i.minTranslate()),m<=i.maxTranslate()&&(m=i.maxTranslate()),i.setTransition(0),i.setTranslate(m),i.updateProgress(),i.updateActiveIndex(),i.updateSlidesClasses(),(!v&&i.isBeginning||!g&&i.isEnd)&&i.updateSlidesClasses(),i.params.freeModeSticky){clearTimeout(i.mousewheel.timeout),i.mousewheel.timeout=void 0;var y=i.mousewheel.recentWheelEvents;y.length>=15&&y.shift();var b=y.length?y[y.length-1]:void 0,w=y[0];if(y.push(h),b&&(h.delta>b.delta||h.direction!==b.direction))y.splice(0);else if(y.length>=15&&h.time-w.time<500&&w.delta-h.delta>=1&&h.delta<=6){var E=l>0?.8:.2;i.mousewheel.lastEventBeforeSnap=h,y.splice(0),i.mousewheel.timeout=(0,r.nextTick)(function(){i.slideToClosest(i.params.speed,!0,void 0,E)},0)}i.mousewheel.timeout||(i.mousewheel.timeout=(0,r.nextTick)(function(){i.mousewheel.lastEventBeforeSnap=h,y.splice(0),i.slideToClosest(i.params.speed,!0,void 0,.5)},500))}if(p||i.emit("scroll",t),i.params.autoplay&&i.params.autoplayDisableOnInteraction&&i.autoplay.stop(),m===i.minTranslate()||m===i.maxTranslate())return!0}}else{var S={time:(0,r.now)(),delta:Math.abs(l),direction:Math.sign(l),raw:e},C=i.mousewheel.recentWheelEvents;C.length>=2&&C.shift();var T=C.length?C[C.length-1]:void 0;if(C.push(S),T?(S.direction!==T.direction||S.delta>T.delta||S.time>T.time+150)&&i.mousewheel.animateSlider(S):i.mousewheel.animateSlider(S),i.mousewheel.releaseScroll(S))return!0}return t.preventDefault?t.preventDefault():t.returnValue=!1,!1}},animateSlider:function(e){var t=(0,a.getWindow)();return!(this.params.mousewheel.thresholdDelta&&e.delta<this.params.mousewheel.thresholdDelta)&&(!(this.params.mousewheel.thresholdTime&&(0,r.now)()-this.mousewheel.lastScrollTime<this.params.mousewheel.thresholdTime)&&(e.delta>=6&&(0,r.now)()-this.mousewheel.lastScrollTime<60||(e.direction<0?this.isEnd&&!this.params.loop||this.animating||(this.slideNext(),this.emit("scroll",e.raw)):this.isBeginning&&!this.params.loop||this.animating||(this.slidePrev(),this.emit("scroll",e.raw)),this.mousewheel.lastScrollTime=(new t.Date).getTime(),!1)))},releaseScroll:function(e){var t=this.params.mousewheel;if(e.direction<0){if(this.isEnd&&!this.params.loop&&t.releaseOnEdges)return!0}else if(this.isBeginning&&!this.params.loop&&t.releaseOnEdges)return!0;return!1},enable:function(){var e=o.event();if(this.params.cssMode)return this.wrapperEl.removeEventListener(e,this.mousewheel.handle),!0;if(!e)return!1;if(this.mousewheel.enabled)return!1;var t=this.$el;return"container"!==this.params.mousewheel.eventsTarget&&(t=(0,s.default)(this.params.mousewheel.eventsTarget)),t.on("mouseenter",this.mousewheel.handleMouseEnter),t.on("mouseleave",this.mousewheel.handleMouseLeave),t.on(e,this.mousewheel.handle),this.mousewheel.enabled=!0,!0},disable:function(){var e=o.event();if(this.params.cssMode)return this.wrapperEl.addEventListener(e,this.mousewheel.handle),!0;if(!e)return!1;if(!this.mousewheel.enabled)return!1;var t=this.$el;return"container"!==this.params.mousewheel.eventsTarget&&(t=(0,s.default)(this.params.mousewheel.eventsTarget)),t.off(e,this.mousewheel.handle),this.mousewheel.enabled=!1,!0}},l={name:"mousewheel",params:{mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}},create:function(){(0,r.bindModuleMethods)(this,{mousewheel:{enabled:!1,lastScrollTime:(0,r.now)(),lastEventBeforeSnap:void 0,recentWheelEvents:[],enable:o.enable,disable:o.disable,handle:o.handle,handleMouseEnter:o.handleMouseEnter,handleMouseLeave:o.handleMouseLeave,animateSlider:o.animateSlider,releaseScroll:o.releaseScroll}})},on:{init:function(e){!e.params.mousewheel.enabled&&e.params.cssMode&&e.mousewheel.disable(),e.params.mousewheel.enabled&&e.mousewheel.enable()},destroy:function(e){e.params.cssMode&&e.mousewheel.enable(),e.mousewheel.enabled&&e.mousewheel.disable()}}};i.default=l},{"../../utils/dom":123,"../../utils/utils":127,"ssr-window":38}],114:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},s=e("../../utils/utils");function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var o={toggleEl:function(e,t){e[t?"addClass":"removeClass"](this.params.navigation.disabledClass),e[0]&&"BUTTON"===e[0].tagName&&(e[0].disabled=t)},update:function(){var e=this.params.navigation,t=this.navigation.toggleEl;if(!this.params.loop){var i=this.navigation,n=i.$nextEl,a=i.$prevEl;a&&a.length>0&&(this.isBeginning?t(a,!0):t(a,!1),this.params.watchOverflow&&this.enabled&&a[this.isLocked?"addClass":"removeClass"](e.lockClass)),n&&n.length>0&&(this.isEnd?t(n,!0):t(n,!1),this.params.watchOverflow&&this.enabled&&n[this.isLocked?"addClass":"removeClass"](e.lockClass))}},onPrevClick:function(e){e.preventDefault(),this.isBeginning&&!this.params.loop||this.slidePrev()},onNextClick:function(e){e.preventDefault(),this.isEnd&&!this.params.loop||this.slideNext()},init:function(){var e,t,i=this.params.navigation;(this.params.navigation=(0,s.createElementIfNotDefined)(this.$el,this.params.navigation,this.params.createElements,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),i.nextEl||i.prevEl)&&(i.nextEl&&(e=(0,a.default)(i.nextEl),this.params.uniqueNavElements&&"string"==typeof i.nextEl&&e.length>1&&1===this.$el.find(i.nextEl).length&&(e=this.$el.find(i.nextEl))),i.prevEl&&(t=(0,a.default)(i.prevEl),this.params.uniqueNavElements&&"string"==typeof i.prevEl&&t.length>1&&1===this.$el.find(i.prevEl).length&&(t=this.$el.find(i.prevEl))),e&&e.length>0&&e.on("click",this.navigation.onNextClick),t&&t.length>0&&t.on("click",this.navigation.onPrevClick),(0,s.extend)(this.navigation,{$nextEl:e,nextEl:e&&e[0],$prevEl:t,prevEl:t&&t[0]}),this.enabled||(e&&e.addClass(i.lockClass),t&&t.addClass(i.lockClass)))},destroy:function(){var e=this.navigation,t=e.$nextEl,i=e.$prevEl;t&&t.length&&(t.off("click",this.navigation.onNextClick),t.removeClass(this.params.navigation.disabledClass)),i&&i.length&&(i.off("click",this.navigation.onPrevClick),i.removeClass(this.params.navigation.disabledClass))}},l={name:"navigation",params:{navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock"}},create:function(){(0,s.bindModuleMethods)(this,{navigation:r({},o)})},on:{init:function(e){e.navigation.init(),e.navigation.update()},toEdge:function(e){e.navigation.update()},fromEdge:function(e){e.navigation.update()},destroy:function(e){e.navigation.destroy()},"enable disable":function(e){var t=e.navigation,i=t.$nextEl,n=t.$prevEl;i&&i[e.enabled?"removeClass":"addClass"](e.params.navigation.lockClass),n&&n[e.enabled?"removeClass":"addClass"](e.params.navigation.lockClass)},click:function(e,t){var i=e.navigation,n=i.$nextEl,s=i.$prevEl,r=t.target;if(e.params.navigation.hideOnClick&&!(0,a.default)(r).is(s)&&!(0,a.default)(r).is(n)){if(e.pagination&&e.params.pagination&&e.params.pagination.clickable&&(e.pagination.el===r||e.pagination.el.contains(r)))return;var o;n?o=n.hasClass(e.params.navigation.hiddenClass):s&&(o=s.hasClass(e.params.navigation.hiddenClass)),!0===o?e.emit("navigationShow"):e.emit("navigationHide"),n&&n.toggleClass(e.params.navigation.hiddenClass),s&&s.toggleClass(e.params.navigation.hiddenClass)}}}};i.default=l},{"../../utils/dom":123,"../../utils/utils":127}],115:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},s=e("../../utils/utils");function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var o={update:function(){var e=this.rtl,t=this.params.pagination;if(t.el&&this.pagination.el&&this.pagination.$el&&0!==this.pagination.$el.length){var i,n=this.virtual&&this.params.virtual.enabled?this.virtual.slides.length:this.slides.length,r=this.pagination.$el,o=this.params.loop?Math.ceil((n-2*this.loopedSlides)/this.params.slidesPerGroup):this.snapGrid.length;if(this.params.loop?((i=Math.ceil((this.activeIndex-this.loopedSlides)/this.params.slidesPerGroup))>n-1-2*this.loopedSlides&&(i-=n-2*this.loopedSlides),i>o-1&&(i-=o),i<0&&"bullets"!==this.params.paginationType&&(i=o+i)):i=void 0!==this.snapIndex?this.snapIndex:this.activeIndex||0,"bullets"===t.type&&this.pagination.bullets&&this.pagination.bullets.length>0){var l,u,c,d=this.pagination.bullets;if(t.dynamicBullets&&(this.pagination.bulletSize=d.eq(0)[this.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(this.isHorizontal()?"width":"height",this.pagination.bulletSize*(t.dynamicMainBullets+4)+"px"),t.dynamicMainBullets>1&&void 0!==this.previousIndex&&(this.pagination.dynamicBulletIndex+=i-this.previousIndex,this.pagination.dynamicBulletIndex>t.dynamicMainBullets-1?this.pagination.dynamicBulletIndex=t.dynamicMainBullets-1:this.pagination.dynamicBulletIndex<0&&(this.pagination.dynamicBulletIndex=0)),l=i-this.pagination.dynamicBulletIndex,c=((u=l+(Math.min(d.length,t.dynamicMainBullets)-1))+l)/2),d.removeClass(t.bulletActiveClass+" "+t.bulletActiveClass+"-next "+t.bulletActiveClass+"-next-next "+t.bulletActiveClass+"-prev "+t.bulletActiveClass+"-prev-prev "+t.bulletActiveClass+"-main"),r.length>1)d.each(function(e){var n=(0,a.default)(e),s=n.index();s===i&&n.addClass(t.bulletActiveClass),t.dynamicBullets&&(s>=l&&s<=u&&n.addClass(t.bulletActiveClass+"-main"),s===l&&n.prev().addClass(t.bulletActiveClass+"-prev").prev().addClass(t.bulletActiveClass+"-prev-prev"),s===u&&n.next().addClass(t.bulletActiveClass+"-next").next().addClass(t.bulletActiveClass+"-next-next"))});else{var h=d.eq(i),f=h.index();if(h.addClass(t.bulletActiveClass),t.dynamicBullets){for(var p=d.eq(l),m=d.eq(u),v=l;v<=u;v+=1)d.eq(v).addClass(t.bulletActiveClass+"-main");if(this.params.loop)if(f>=d.length-t.dynamicMainBullets){for(var g=t.dynamicMainBullets;g>=0;g-=1)d.eq(d.length-g).addClass(t.bulletActiveClass+"-main");d.eq(d.length-t.dynamicMainBullets-1).addClass(t.bulletActiveClass+"-prev")}else p.prev().addClass(t.bulletActiveClass+"-prev").prev().addClass(t.bulletActiveClass+"-prev-prev"),m.next().addClass(t.bulletActiveClass+"-next").next().addClass(t.bulletActiveClass+"-next-next");else p.prev().addClass(t.bulletActiveClass+"-prev").prev().addClass(t.bulletActiveClass+"-prev-prev"),m.next().addClass(t.bulletActiveClass+"-next").next().addClass(t.bulletActiveClass+"-next-next")}}if(t.dynamicBullets){var y=Math.min(d.length,t.dynamicMainBullets+4),b=(this.pagination.bulletSize*y-this.pagination.bulletSize)/2-c*this.pagination.bulletSize,w=e?"right":"left";d.css(this.isHorizontal()?w:"top",b+"px")}}if("fraction"===t.type&&(r.find((0,s.classesToSelector)(t.currentClass)).text(t.formatFractionCurrent(i+1)),r.find((0,s.classesToSelector)(t.totalClass)).text(t.formatFractionTotal(o))),"progressbar"===t.type){var E;E=t.progressbarOpposite?this.isHorizontal()?"vertical":"horizontal":this.isHorizontal()?"horizontal":"vertical";var S=(i+1)/o,C=1,T=1;"horizontal"===E?C=S:T=S,r.find((0,s.classesToSelector)(t.progressbarFillClass)).transform("translate3d(0,0,0) scaleX("+C+") scaleY("+T+")").transition(this.params.speed)}"custom"===t.type&&t.renderCustom?(r.html(t.renderCustom(this,i+1,o)),this.emit("paginationRender",r[0])):this.emit("paginationUpdate",r[0]),this.params.watchOverflow&&this.enabled&&r[this.isLocked?"addClass":"removeClass"](t.lockClass)}},render:function(){var e=this.params.pagination;if(e.el&&this.pagination.el&&this.pagination.$el&&0!==this.pagination.$el.length){var t=this.virtual&&this.params.virtual.enabled?this.virtual.slides.length:this.slides.length,i=this.pagination.$el,n="";if("bullets"===e.type){var a=this.params.loop?Math.ceil((t-2*this.loopedSlides)/this.params.slidesPerGroup):this.snapGrid.length;this.params.freeMode&&!this.params.loop&&a>t&&(a=t);for(var r=0;r<a;r+=1)e.renderBullet?n+=e.renderBullet.call(this,r,e.bulletClass):n+="<"+e.bulletElement+' class="'+e.bulletClass+'"></'+e.bulletElement+">";i.html(n),this.pagination.bullets=i.find((0,s.classesToSelector)(e.bulletClass))}"fraction"===e.type&&(n=e.renderFraction?e.renderFraction.call(this,e.currentClass,e.totalClass):'<span class="'+e.currentClass+'"></span> / <span class="'+e.totalClass+'"></span>',i.html(n)),"progressbar"===e.type&&(n=e.renderProgressbar?e.renderProgressbar.call(this,e.progressbarFillClass):'<span class="'+e.progressbarFillClass+'"></span>',i.html(n)),"custom"!==e.type&&this.emit("paginationRender",this.pagination.$el[0])}},init:function(){var e=this;e.params.pagination=(0,s.createElementIfNotDefined)(e.$el,e.params.pagination,e.params.createElements,{el:"swiper-pagination"});var t=e.params.pagination;if(t.el){var i=(0,a.default)(t.el);0!==i.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&i.length>1&&(i=e.$el.find(t.el)),"bullets"===t.type&&t.clickable&&i.addClass(t.clickableClass),i.addClass(t.modifierClass+t.type),"bullets"===t.type&&t.dynamicBullets&&(i.addClass(""+t.modifierClass+t.type+"-dynamic"),e.pagination.dynamicBulletIndex=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&i.addClass(t.progressbarOppositeClass),t.clickable&&i.on("click",(0,s.classesToSelector)(t.bulletClass),function(t){t.preventDefault();var i=(0,a.default)(this).index()*e.params.slidesPerGroup;e.params.loop&&(i+=e.loopedSlides),e.slideTo(i)}),(0,s.extend)(e.pagination,{$el:i,el:i[0]}),e.enabled||i.addClass(t.lockClass))}},destroy:function(){var e=this.params.pagination;if(e.el&&this.pagination.el&&this.pagination.$el&&0!==this.pagination.$el.length){var t=this.pagination.$el;t.removeClass(e.hiddenClass),t.removeClass(e.modifierClass+e.type),this.pagination.bullets&&this.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&&t.off("click",(0,s.classesToSelector)(e.bulletClass))}}},l={name:"pagination",params:{pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:function(e){return e},formatFractionTotal:function(e){return e},bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",modifierClass:"swiper-pagination-",currentClass:"swiper-pagination-current",totalClass:"swiper-pagination-total",hiddenClass:"swiper-pagination-hidden",progressbarFillClass:"swiper-pagination-progressbar-fill",progressbarOppositeClass:"swiper-pagination-progressbar-opposite",clickableClass:"swiper-pagination-clickable",lockClass:"swiper-pagination-lock"}},create:function(){(0,s.bindModuleMethods)(this,{pagination:r({dynamicBulletIndex:0},o)})},on:{init:function(e){e.pagination.init(),e.pagination.render(),e.pagination.update()},activeIndexChange:function(e){e.params.loop?e.pagination.update():void 0===e.snapIndex&&e.pagination.update()},snapIndexChange:function(e){e.params.loop||e.pagination.update()},slidesLengthChange:function(e){e.params.loop&&(e.pagination.render(),e.pagination.update())},snapGridLengthChange:function(e){e.params.loop||(e.pagination.render(),e.pagination.update())},destroy:function(e){e.pagination.destroy()},"enable disable":function(e){var t=e.pagination.$el;t&&t[e.enabled?"removeClass":"addClass"](e.params.pagination.lockClass)},click:function(e,t){var i=t.target;if(e.params.pagination.el&&e.params.pagination.hideOnClick&&e.pagination.$el.length>0&&!(0,a.default)(i).hasClass(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&i===e.navigation.nextEl||e.navigation.prevEl&&i===e.navigation.prevEl))return;!0===e.pagination.$el.hasClass(e.params.pagination.hiddenClass)?e.emit("paginationShow"):e.emit("paginationHide"),e.pagination.$el.toggleClass(e.params.pagination.hiddenClass)}}}};i.default=l},{"../../utils/dom":123,"../../utils/utils":127}],116:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},s=e("../../utils/utils");function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var o={setTransform:function(e,t){var i=this.rtl,n=(0,a.default)(e),s=i?-1:1,r=n.attr("data-swiper-parallax")||"0",o=n.attr("data-swiper-parallax-x"),l=n.attr("data-swiper-parallax-y"),u=n.attr("data-swiper-parallax-scale"),c=n.attr("data-swiper-parallax-opacity");if(o||l?(o=o||"0",l=l||"0"):this.isHorizontal()?(o=r,l="0"):(l=r,o="0"),o=o.indexOf("%")>=0?parseInt(o,10)*t*s+"%":o*t*s+"px",l=l.indexOf("%")>=0?parseInt(l,10)*t+"%":l*t+"px",null!=c){var d=c-(c-1)*(1-Math.abs(t));n[0].style.opacity=d}if(null==u)n.transform("translate3d("+o+", "+l+", 0px)");else{var h=u-(u-1)*(1-Math.abs(t));n.transform("translate3d("+o+", "+l+", 0px) scale("+h+")")}},setTranslate:function(){var e=this,t=e.$el,i=e.slides,n=e.progress,s=e.snapGrid;t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function(t){e.parallax.setTransform(t,n)}),i.each(function(t,i){var r=t.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(r+=Math.ceil(i/2)-n*(s.length-1)),r=Math.min(Math.max(r,-1),1),(0,a.default)(t).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function(t){e.parallax.setTransform(t,r)})})},setTransition:function(e){void 0===e&&(e=this.params.speed);this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function(t){var i=(0,a.default)(t),n=parseInt(i.attr("data-swiper-parallax-duration"),10)||e;0===e&&(n=0),i.transition(n)})}},l={name:"parallax",params:{parallax:{enabled:!1}},create:function(){(0,s.bindModuleMethods)(this,{parallax:r({},o)})},on:{beforeInit:function(e){e.params.parallax.enabled&&(e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)},init:function(e){e.params.parallax.enabled&&e.parallax.setTranslate()},setTranslate:function(e){e.params.parallax.enabled&&e.parallax.setTranslate()},setTransition:function(e,t){e.params.parallax.enabled&&e.parallax.setTransition(t)}}};i.default=l},{"../../utils/dom":123,"../../utils/utils":127}],117:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=e("ssr-window"),s=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},r=e("../../utils/utils");function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var l={setTranslate:function(){if(this.params.scrollbar.el&&this.scrollbar.el){var e=this.scrollbar,t=this.rtlTranslate,i=this.progress,n=e.dragSize,a=e.trackSize,s=e.$dragEl,r=e.$el,o=this.params.scrollbar,l=n,u=(a-n)*i;t?(u=-u)>0?(l=n-u,u=0):-u+n>a&&(l=a+u):u<0?(l=n+u,u=0):u+n>a&&(l=a-u),this.isHorizontal()?(s.transform("translate3d("+u+"px, 0, 0)"),s[0].style.width=l+"px"):(s.transform("translate3d(0px, "+u+"px, 0)"),s[0].style.height=l+"px"),o.hide&&(clearTimeout(this.scrollbar.timeout),r[0].style.opacity=1,this.scrollbar.timeout=setTimeout(function(){r[0].style.opacity=0,r.transition(400)},1e3))}},setTransition:function(e){this.params.scrollbar.el&&this.scrollbar.el&&this.scrollbar.$dragEl.transition(e)},updateSize:function(){if(this.params.scrollbar.el&&this.scrollbar.el){var e=this.scrollbar,t=e.$dragEl,i=e.$el;t[0].style.width="",t[0].style.height="";var n,a=this.isHorizontal()?i[0].offsetWidth:i[0].offsetHeight,s=this.size/this.virtualSize,o=s*(a/this.size);n="auto"===this.params.scrollbar.dragSize?a*s:parseInt(this.params.scrollbar.dragSize,10),this.isHorizontal()?t[0].style.width=n+"px":t[0].style.height=n+"px",i[0].style.display=s>=1?"none":"",this.params.scrollbar.hide&&(i[0].style.opacity=0),(0,r.extend)(e,{trackSize:a,divider:s,moveDivider:o,dragSize:n}),this.params.watchOverflow&&this.enabled&&e.$el[this.isLocked?"addClass":"removeClass"](this.params.scrollbar.lockClass)}},getPointerPosition:function(e){return this.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientX:e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientY:e.clientY},setDragPosition:function(e){var t,i=this.scrollbar,n=this.rtlTranslate,a=i.$el,s=i.dragSize,r=i.trackSize,o=i.dragStartPos;t=(i.getPointerPosition(e)-a.offset()[this.isHorizontal()?"left":"top"]-(null!==o?o:s/2))/(r-s),t=Math.max(Math.min(t,1),0),n&&(t=1-t);var l=this.minTranslate()+(this.maxTranslate()-this.minTranslate())*t;this.updateProgress(l),this.setTranslate(l),this.updateActiveIndex(),this.updateSlidesClasses()},onDragStart:function(e){var t=this.params.scrollbar,i=this.scrollbar,n=this.$wrapperEl,a=i.$el,s=i.$dragEl;this.scrollbar.isTouched=!0,this.scrollbar.dragStartPos=e.target===s[0]||e.target===s?i.getPointerPosition(e)-e.target.getBoundingClientRect()[this.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),n.transition(100),s.transition(100),i.setDragPosition(e),clearTimeout(this.scrollbar.dragTimeout),a.transition(0),t.hide&&a.css("opacity",1),this.params.cssMode&&this.$wrapperEl.css("scroll-snap-type","none"),this.emit("scrollbarDragStart",e)},onDragMove:function(e){var t=this.scrollbar,i=this.$wrapperEl,n=t.$el,a=t.$dragEl;this.scrollbar.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,t.setDragPosition(e),i.transition(0),n.transition(0),a.transition(0),this.emit("scrollbarDragMove",e))},onDragEnd:function(e){var t=this.params.scrollbar,i=this.scrollbar,n=this.$wrapperEl,a=i.$el;this.scrollbar.isTouched&&(this.scrollbar.isTouched=!1,this.params.cssMode&&(this.$wrapperEl.css("scroll-snap-type",""),n.transition("")),t.hide&&(clearTimeout(this.scrollbar.dragTimeout),this.scrollbar.dragTimeout=(0,r.nextTick)(function(){a.css("opacity",0),a.transition(400)},1e3)),this.emit("scrollbarDragEnd",e),t.snapOnRelease&&this.slideToClosest())},enableDraggable:function(){if(this.params.scrollbar.el){var e=(0,a.getDocument)(),t=this.scrollbar,i=this.touchEventsTouch,n=this.touchEventsDesktop,s=this.params,r=this.support,o=t.$el[0],l=!(!r.passiveListener||!s.passiveListeners)&&{passive:!1,capture:!1},u=!(!r.passiveListener||!s.passiveListeners)&&{passive:!0,capture:!1};o&&(r.touch?(o.addEventListener(i.start,this.scrollbar.onDragStart,l),o.addEventListener(i.move,this.scrollbar.onDragMove,l),o.addEventListener(i.end,this.scrollbar.onDragEnd,u)):(o.addEventListener(n.start,this.scrollbar.onDragStart,l),e.addEventListener(n.move,this.scrollbar.onDragMove,l),e.addEventListener(n.end,this.scrollbar.onDragEnd,u)))}},disableDraggable:function(){if(this.params.scrollbar.el){var e=(0,a.getDocument)(),t=this.scrollbar,i=this.touchEventsTouch,n=this.touchEventsDesktop,s=this.params,r=this.support,o=t.$el[0],l=!(!r.passiveListener||!s.passiveListeners)&&{passive:!1,capture:!1},u=!(!r.passiveListener||!s.passiveListeners)&&{passive:!0,capture:!1};o&&(r.touch?(o.removeEventListener(i.start,this.scrollbar.onDragStart,l),o.removeEventListener(i.move,this.scrollbar.onDragMove,l),o.removeEventListener(i.end,this.scrollbar.onDragEnd,u)):(o.removeEventListener(n.start,this.scrollbar.onDragStart,l),e.removeEventListener(n.move,this.scrollbar.onDragMove,l),e.removeEventListener(n.end,this.scrollbar.onDragEnd,u)))}},init:function(){var e=this.scrollbar,t=this.$el;this.params.scrollbar=(0,r.createElementIfNotDefined)(t,this.params.scrollbar,this.params.createElements,{el:"swiper-scrollbar"});var i=this.params.scrollbar;if(i.el){var n=(0,s.default)(i.el);this.params.uniqueNavElements&&"string"==typeof i.el&&n.length>1&&1===t.find(i.el).length&&(n=t.find(i.el));var a=n.find("."+this.params.scrollbar.dragClass);0===a.length&&(a=(0,s.default)('<div class="'+this.params.scrollbar.dragClass+'"></div>'),n.append(a)),(0,r.extend)(e,{$el:n,el:n[0],$dragEl:a,dragEl:a[0]}),i.draggable&&e.enableDraggable(),n&&n[this.enabled?"removeClass":"addClass"](this.params.scrollbar.lockClass)}},destroy:function(){this.scrollbar.disableDraggable()}},u={name:"scrollbar",params:{scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}},create:function(){(0,r.bindModuleMethods)(this,{scrollbar:o({isTouched:!1,timeout:null,dragTimeout:null},l)})},on:{init:function(e){e.scrollbar.init(),e.scrollbar.updateSize(),e.scrollbar.setTranslate()},update:function(e){e.scrollbar.updateSize()},resize:function(e){e.scrollbar.updateSize()},observerUpdate:function(e){e.scrollbar.updateSize()},setTranslate:function(e){e.scrollbar.setTranslate()},setTransition:function(e,t){e.scrollbar.setTransition(t)},"enable disable":function(e){var t=e.scrollbar.$el;t&&t[e.enabled?"removeClass":"addClass"](e.params.scrollbar.lockClass)},destroy:function(e){e.scrollbar.destroy()}}};i.default=u},{"../../utils/dom":123,"../../utils/utils":127,"ssr-window":38}],118:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=e("../../utils/utils"),s=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n};function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var o={init:function(){var e=this.params.thumbs;if(this.thumbs.initialized)return!1;this.thumbs.initialized=!0;var t=this.constructor;return e.swiper instanceof t?(this.thumbs.swiper=e.swiper,(0,a.extend)(this.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),(0,a.extend)(this.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1})):(0,a.isObject)(e.swiper)&&(this.thumbs.swiper=new t((0,a.extend)({},e.swiper,{watchSlidesVisibility:!0,watchSlidesProgress:!0,slideToClickedSlide:!1})),this.thumbs.swiperCreated=!0),this.thumbs.swiper.$el.addClass(this.params.thumbs.thumbsContainerClass),this.thumbs.swiper.on("tap",this.thumbs.onThumbClick),!0},onThumbClick:function(){var e=this.thumbs.swiper;if(e){var t=e.clickedIndex,i=e.clickedSlide;if(!(i&&(0,s.default)(i).hasClass(this.params.thumbs.slideThumbActiveClass)||null==t)){var n;if(n=e.params.loop?parseInt((0,s.default)(e.clickedSlide).attr("data-swiper-slide-index"),10):t,this.params.loop){var a=this.activeIndex;this.slides.eq(a).hasClass(this.params.slideDuplicateClass)&&(this.loopFix(),this._clientLeft=this.$wrapperEl[0].clientLeft,a=this.activeIndex);var r=this.slides.eq(a).prevAll('[data-swiper-slide-index="'+n+'"]').eq(0).index(),o=this.slides.eq(a).nextAll('[data-swiper-slide-index="'+n+'"]').eq(0).index();n=void 0===r?o:void 0===o?r:o-a<a-r?o:r}this.slideTo(n)}}},update:function(e){var t=this.thumbs.swiper;if(t){var i="auto"===t.params.slidesPerView?t.slidesPerViewDynamic():t.params.slidesPerView,n=this.params.thumbs.autoScrollOffset,a=n&&!t.params.loop;if(this.realIndex!==t.realIndex||a){var s,r,o=t.activeIndex;if(t.params.loop){t.slides.eq(o).hasClass(t.params.slideDuplicateClass)&&(t.loopFix(),t._clientLeft=t.$wrapperEl[0].clientLeft,o=t.activeIndex);var l=t.slides.eq(o).prevAll('[data-swiper-slide-index="'+this.realIndex+'"]').eq(0).index(),u=t.slides.eq(o).nextAll('[data-swiper-slide-index="'+this.realIndex+'"]').eq(0).index();s=void 0===l?u:void 0===u?l:u-o==o-l?t.params.slidesPerGroup>1?u:o:u-o<o-l?u:l,r=this.activeIndex>this.previousIndex?"next":"prev"}else r=(s=this.realIndex)>this.previousIndex?"next":"prev";a&&(s+="next"===r?n:-1*n),t.visibleSlidesIndexes&&t.visibleSlidesIndexes.indexOf(s)<0&&(t.params.centeredSlides?s=s>o?s-Math.floor(i/2)+1:s+Math.floor(i/2)-1:s>o&&t.params.slidesPerGroup,t.slideTo(s,e?0:void 0))}var c=1,d=this.params.thumbs.slideThumbActiveClass;if(this.params.slidesPerView>1&&!this.params.centeredSlides&&(c=this.params.slidesPerView),this.params.thumbs.multipleActiveThumbs||(c=1),c=Math.floor(c),t.slides.removeClass(d),t.params.loop||t.params.virtual&&t.params.virtual.enabled)for(var h=0;h<c;h+=1)t.$wrapperEl.children('[data-swiper-slide-index="'+(this.realIndex+h)+'"]').addClass(d);else for(var f=0;f<c;f+=1)t.slides.eq(this.realIndex+f).addClass(d)}}},l={name:"thumbs",params:{thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-container-thumbs"}},create:function(){(0,a.bindModuleMethods)(this,{thumbs:r({swiper:null,initialized:!1},o)})},on:{beforeInit:function(e){var t=e.params.thumbs;t&&t.swiper&&(e.thumbs.init(),e.thumbs.update(!0))},slideChange:function(e){e.thumbs.swiper&&e.thumbs.update()},update:function(e){e.thumbs.swiper&&e.thumbs.update()},resize:function(e){e.thumbs.swiper&&e.thumbs.update()},observerUpdate:function(e){e.thumbs.swiper&&e.thumbs.update()},setTransition:function(e,t){var i=e.thumbs.swiper;i&&i.setTransition(t)},beforeDestroy:function(e){var t=e.thumbs.swiper;t&&e.thumbs.swiperCreated&&t&&t.destroy()}}};i.default=l},{"../../utils/dom":123,"../../utils/utils":127}],119:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},s=e("../../utils/utils");function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var o={update:function(e){var t=this,i=t.params,n=i.slidesPerView,a=i.slidesPerGroup,r=i.centeredSlides,o=t.params.virtual,l=o.addSlidesBefore,u=o.addSlidesAfter,c=t.virtual,d=c.from,h=c.to,f=c.slides,p=c.slidesGrid,m=c.renderSlide,v=c.offset;t.updateActiveIndex();var g,y,b,w=t.activeIndex||0;g=t.rtlTranslate?"right":t.isHorizontal()?"left":"top",r?(y=Math.floor(n/2)+a+u,b=Math.floor(n/2)+a+l):(y=n+(a-1)+u,b=a+l);var E=Math.max((w||0)-b,0),S=Math.min((w||0)+y,f.length-1),C=(t.slidesGrid[E]||0)-(t.slidesGrid[0]||0);function T(){t.updateSlides(),t.updateProgress(),t.updateSlidesClasses(),t.lazy&&t.params.lazy.enabled&&t.lazy.load()}if((0,s.extend)(t.virtual,{from:E,to:S,offset:C,slidesGrid:t.slidesGrid}),d===E&&h===S&&!e)return t.slidesGrid!==p&&C!==v&&t.slides.css(g,C+"px"),void t.updateProgress();if(t.params.virtual.renderExternal)return t.params.virtual.renderExternal.call(t,{offset:C,from:E,to:S,slides:function(){for(var e=[],t=E;t<=S;t+=1)e.push(f[t]);return e}()}),void(t.params.virtual.renderExternalUpdate&&T());var x=[],L=[];if(e)t.$wrapperEl.find("."+t.params.slideClass).remove();else for(var M=d;M<=h;M+=1)(M<E||M>S)&&t.$wrapperEl.find("."+t.params.slideClass+'[data-swiper-slide-index="'+M+'"]').remove();for(var _=0;_<f.length;_+=1)_>=E&&_<=S&&(void 0===h||e?L.push(_):(_>h&&L.push(_),_<d&&x.push(_)));L.forEach(function(e){t.$wrapperEl.append(m(f[e],e))}),x.sort(function(e,t){return t-e}).forEach(function(e){t.$wrapperEl.prepend(m(f[e],e))}),t.$wrapperEl.children(".swiper-slide").css(g,C+"px"),T()},renderSlide:function(e,t){var i=this.params.virtual;if(i.cache&&this.virtual.cache[t])return this.virtual.cache[t];var n=i.renderSlide?(0,a.default)(i.renderSlide.call(this,e,t)):(0,a.default)('<div class="'+this.params.slideClass+'" data-swiper-slide-index="'+t+'">'+e+"</div>");return n.attr("data-swiper-slide-index")||n.attr("data-swiper-slide-index",t),i.cache&&(this.virtual.cache[t]=n),n},appendSlide:function(e){if("object"==typeof e&&"length"in e)for(var t=0;t<e.length;t+=1)e[t]&&this.virtual.slides.push(e[t]);else this.virtual.slides.push(e);this.virtual.update(!0)},prependSlide:function(e){var t=this.activeIndex,i=t+1,n=1;if(Array.isArray(e)){for(var a=0;a<e.length;a+=1)e[a]&&this.virtual.slides.unshift(e[a]);i=t+e.length,n=e.length}else this.virtual.slides.unshift(e);if(this.params.virtual.cache){var s=this.virtual.cache,r={};Object.keys(s).forEach(function(e){var t=s[e],i=t.attr("data-swiper-slide-index");i&&t.attr("data-swiper-slide-index",parseInt(i,10)+1),r[parseInt(e,10)+n]=t}),this.virtual.cache=r}this.virtual.update(!0),this.slideTo(i,0)},removeSlide:function(e){if(null!=e){var t=this.activeIndex;if(Array.isArray(e))for(var i=e.length-1;i>=0;i-=1)this.virtual.slides.splice(e[i],1),this.params.virtual.cache&&delete this.virtual.cache[e[i]],e[i]<t&&(t-=1),t=Math.max(t,0);else this.virtual.slides.splice(e,1),this.params.virtual.cache&&delete this.virtual.cache[e],e<t&&(t-=1),t=Math.max(t,0);this.virtual.update(!0),this.slideTo(t,0)}},removeAllSlides:function(){this.virtual.slides=[],this.params.virtual.cache&&(this.virtual.cache={}),this.virtual.update(!0),this.slideTo(0,0)}},l={name:"virtual",params:{virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}},create:function(){(0,s.bindModuleMethods)(this,{virtual:r({},o,{slides:this.params.virtual.slides,cache:{}})})},on:{beforeInit:function(e){if(e.params.virtual.enabled){e.classNames.push(e.params.containerModifierClass+"virtual");var t={watchSlidesProgress:!0};(0,s.extend)(e.params,t),(0,s.extend)(e.originalParams,t),e.params.initialSlide||e.virtual.update()}},setTranslate:function(e){e.params.virtual.enabled&&e.virtual.update()}}};i.default=l},{"../../utils/dom":123,"../../utils/utils":127}],120:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n,a=e("ssr-window"),s=(n=e("../../utils/dom"))&&n.__esModule?n:{default:n},r=e("../../utils/utils");function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var l={getDistanceBetweenTouches:function(e){if(e.targetTouches.length<2)return 1;var t=e.targetTouches[0].pageX,i=e.targetTouches[0].pageY,n=e.targetTouches[1].pageX,a=e.targetTouches[1].pageY;return Math.sqrt(Math.pow(n-t,2)+Math.pow(a-i,2))},onGestureStart:function(e){var t=this.support,i=this.params.zoom,n=this.zoom,a=n.gesture;if(n.fakeGestureTouched=!1,n.fakeGestureMoved=!1,!t.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;n.fakeGestureTouched=!0,a.scaleStart=l.getDistanceBetweenTouches(e)}a.$slideEl&&a.$slideEl.length||(a.$slideEl=(0,s.default)(e.target).closest("."+this.params.slideClass),0===a.$slideEl.length&&(a.$slideEl=this.slides.eq(this.activeIndex)),a.$imageEl=a.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),a.$imageWrapEl=a.$imageEl.parent("."+i.containerClass),a.maxRatio=a.$imageWrapEl.attr("data-swiper-zoom")||i.maxRatio,0!==a.$imageWrapEl.length)?(a.$imageEl&&a.$imageEl.transition(0),this.zoom.isScaling=!0):a.$imageEl=void 0},onGestureChange:function(e){var t=this.support,i=this.params.zoom,n=this.zoom,a=n.gesture;if(!t.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;n.fakeGestureMoved=!0,a.scaleMove=l.getDistanceBetweenTouches(e)}a.$imageEl&&0!==a.$imageEl.length?(t.gestures?n.scale=e.scale*n.currentScale:n.scale=a.scaleMove/a.scaleStart*n.currentScale,n.scale>a.maxRatio&&(n.scale=a.maxRatio-1+Math.pow(n.scale-a.maxRatio+1,.5)),n.scale<i.minRatio&&(n.scale=i.minRatio+1-Math.pow(i.minRatio-n.scale+1,.5)),a.$imageEl.transform("translate3d(0,0,0) scale("+n.scale+")")):"gesturechange"===e.type&&n.onGestureStart(e)},onGestureEnd:function(e){var t=this.device,i=this.support,n=this.params.zoom,a=this.zoom,s=a.gesture;if(!i.gestures){if(!a.fakeGestureTouched||!a.fakeGestureMoved)return;if("touchend"!==e.type||"touchend"===e.type&&e.changedTouches.length<2&&!t.android)return;a.fakeGestureTouched=!1,a.fakeGestureMoved=!1}s.$imageEl&&0!==s.$imageEl.length&&(a.scale=Math.max(Math.min(a.scale,s.maxRatio),n.minRatio),s.$imageEl.transition(this.params.speed).transform("translate3d(0,0,0) scale("+a.scale+")"),a.currentScale=a.scale,a.isScaling=!1,1===a.scale&&(s.$slideEl=void 0))},onTouchStart:function(e){var t=this.device,i=this.zoom,n=i.gesture,a=i.image;n.$imageEl&&0!==n.$imageEl.length&&(a.isTouched||(t.android&&e.cancelable&&e.preventDefault(),a.isTouched=!0,a.touchesStart.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,a.touchesStart.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY))},onTouchMove:function(e){var t=this.zoom,i=t.gesture,n=t.image,a=t.velocity;if(i.$imageEl&&0!==i.$imageEl.length&&(this.allowClick=!1,n.isTouched&&i.$slideEl)){n.isMoved||(n.width=i.$imageEl[0].offsetWidth,n.height=i.$imageEl[0].offsetHeight,n.startX=(0,r.getTranslate)(i.$imageWrapEl[0],"x")||0,n.startY=(0,r.getTranslate)(i.$imageWrapEl[0],"y")||0,i.slideWidth=i.$slideEl[0].offsetWidth,i.slideHeight=i.$slideEl[0].offsetHeight,i.$imageWrapEl.transition(0));var s=n.width*t.scale,o=n.height*t.scale;if(!(s<i.slideWidth&&o<i.slideHeight)){if(n.minX=Math.min(i.slideWidth/2-s/2,0),n.maxX=-n.minX,n.minY=Math.min(i.slideHeight/2-o/2,0),n.maxY=-n.minY,n.touchesCurrent.x="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,n.touchesCurrent.y="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,!n.isMoved&&!t.isScaling){if(this.isHorizontal()&&(Math.floor(n.minX)===Math.floor(n.startX)&&n.touchesCurrent.x<n.touchesStart.x||Math.floor(n.maxX)===Math.floor(n.startX)&&n.touchesCurrent.x>n.touchesStart.x))return void(n.isTouched=!1);if(!this.isHorizontal()&&(Math.floor(n.minY)===Math.floor(n.startY)&&n.touchesCurrent.y<n.touchesStart.y||Math.floor(n.maxY)===Math.floor(n.startY)&&n.touchesCurrent.y>n.touchesStart.y))return void(n.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),n.isMoved=!0,n.currentX=n.touchesCurrent.x-n.touchesStart.x+n.startX,n.currentY=n.touchesCurrent.y-n.touchesStart.y+n.startY,n.currentX<n.minX&&(n.currentX=n.minX+1-Math.pow(n.minX-n.currentX+1,.8)),n.currentX>n.maxX&&(n.currentX=n.maxX-1+Math.pow(n.currentX-n.maxX+1,.8)),n.currentY<n.minY&&(n.currentY=n.minY+1-Math.pow(n.minY-n.currentY+1,.8)),n.currentY>n.maxY&&(n.currentY=n.maxY-1+Math.pow(n.currentY-n.maxY+1,.8)),a.prevPositionX||(a.prevPositionX=n.touchesCurrent.x),a.prevPositionY||(a.prevPositionY=n.touchesCurrent.y),a.prevTime||(a.prevTime=Date.now()),a.x=(n.touchesCurrent.x-a.prevPositionX)/(Date.now()-a.prevTime)/2,a.y=(n.touchesCurrent.y-a.prevPositionY)/(Date.now()-a.prevTime)/2,Math.abs(n.touchesCurrent.x-a.prevPositionX)<2&&(a.x=0),Math.abs(n.touchesCurrent.y-a.prevPositionY)<2&&(a.y=0),a.prevPositionX=n.touchesCurrent.x,a.prevPositionY=n.touchesCurrent.y,a.prevTime=Date.now(),i.$imageWrapEl.transform("translate3d("+n.currentX+"px, "+n.currentY+"px,0)")}}},onTouchEnd:function(){var e=this.zoom,t=e.gesture,i=e.image,n=e.velocity;if(t.$imageEl&&0!==t.$imageEl.length){if(!i.isTouched||!i.isMoved)return i.isTouched=!1,void(i.isMoved=!1);i.isTouched=!1,i.isMoved=!1;var a=300,s=300,r=n.x*a,o=i.currentX+r,l=n.y*s,u=i.currentY+l;0!==n.x&&(a=Math.abs((o-i.currentX)/n.x)),0!==n.y&&(s=Math.abs((u-i.currentY)/n.y));var c=Math.max(a,s);i.currentX=o,i.currentY=u;var d=i.width*e.scale,h=i.height*e.scale;i.minX=Math.min(t.slideWidth/2-d/2,0),i.maxX=-i.minX,i.minY=Math.min(t.slideHeight/2-h/2,0),i.maxY=-i.minY,i.currentX=Math.max(Math.min(i.currentX,i.maxX),i.minX),i.currentY=Math.max(Math.min(i.currentY,i.maxY),i.minY),t.$imageWrapEl.transition(c).transform("translate3d("+i.currentX+"px, "+i.currentY+"px,0)")}},onTransitionEnd:function(){var e=this.zoom,t=e.gesture;t.$slideEl&&this.previousIndex!==this.activeIndex&&(t.$imageEl&&t.$imageEl.transform("translate3d(0,0,0) scale(1)"),t.$imageWrapEl&&t.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,e.currentScale=1,t.$slideEl=void 0,t.$imageEl=void 0,t.$imageWrapEl=void 0)},toggle:function(e){var t=this.zoom;t.scale&&1!==t.scale?t.out():t.in(e)},in:function(e){var t,i,n,r,o,l,u,c,d,h,f,p,m,v,g,y,b=(0,a.getWindow)(),w=this.zoom,E=this.params.zoom,S=w.gesture,C=w.image;(S.$slideEl||(e&&e.target&&(S.$slideEl=(0,s.default)(e.target).closest("."+this.params.slideClass)),S.$slideEl||(this.params.virtual&&this.params.virtual.enabled&&this.virtual?S.$slideEl=this.$wrapperEl.children("."+this.params.slideActiveClass):S.$slideEl=this.slides.eq(this.activeIndex)),S.$imageEl=S.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),S.$imageWrapEl=S.$imageEl.parent("."+E.containerClass)),S.$imageEl&&0!==S.$imageEl.length&&S.$imageWrapEl&&0!==S.$imageWrapEl.length)&&(S.$slideEl.addClass(""+E.zoomedSlideClass),void 0===C.touchesStart.x&&e?(t="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,i="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(t=C.touchesStart.x,i=C.touchesStart.y),w.scale=S.$imageWrapEl.attr("data-swiper-zoom")||E.maxRatio,w.currentScale=S.$imageWrapEl.attr("data-swiper-zoom")||E.maxRatio,e?(g=S.$slideEl[0].offsetWidth,y=S.$slideEl[0].offsetHeight,n=S.$slideEl.offset().left+b.scrollX+g/2-t,r=S.$slideEl.offset().top+b.scrollY+y/2-i,u=S.$imageEl[0].offsetWidth,c=S.$imageEl[0].offsetHeight,d=u*w.scale,h=c*w.scale,m=-(f=Math.min(g/2-d/2,0)),v=-(p=Math.min(y/2-h/2,0)),(o=n*w.scale)<f&&(o=f),o>m&&(o=m),(l=r*w.scale)<p&&(l=p),l>v&&(l=v)):(o=0,l=0),S.$imageWrapEl.transition(300).transform("translate3d("+o+"px, "+l+"px,0)"),S.$imageEl.transition(300).transform("translate3d(0,0,0) scale("+w.scale+")"))},out:function(){var e=this.zoom,t=this.params.zoom,i=e.gesture;i.$slideEl||(this.params.virtual&&this.params.virtual.enabled&&this.virtual?i.$slideEl=this.$wrapperEl.children("."+this.params.slideActiveClass):i.$slideEl=this.slides.eq(this.activeIndex),i.$imageEl=i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),i.$imageWrapEl=i.$imageEl.parent("."+t.containerClass)),i.$imageEl&&0!==i.$imageEl.length&&i.$imageWrapEl&&0!==i.$imageWrapEl.length&&(e.scale=1,e.currentScale=1,i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),i.$slideEl.removeClass(""+t.zoomedSlideClass),i.$slideEl=void 0)},toggleGestures:function(e){var t=this.zoom,i=t.slideSelector,n=t.passiveListener;this.$wrapperEl[e]("gesturestart",i,t.onGestureStart,n),this.$wrapperEl[e]("gesturechange",i,t.onGestureChange,n),this.$wrapperEl[e]("gestureend",i,t.onGestureEnd,n)},enableGestures:function(){this.zoom.gesturesEnabled||(this.zoom.gesturesEnabled=!0,this.zoom.toggleGestures("on"))},disableGestures:function(){this.zoom.gesturesEnabled&&(this.zoom.gesturesEnabled=!1,this.zoom.toggleGestures("off"))},enable:function(){var e=this.support,t=this.zoom;if(!t.enabled){t.enabled=!0;var i=!("touchstart"!==this.touchEvents.start||!e.passiveListener||!this.params.passiveListeners)&&{passive:!0,capture:!1},n=!e.passiveListener||{passive:!1,capture:!0},a="."+this.params.slideClass;this.zoom.passiveListener=i,this.zoom.slideSelector=a,e.gestures?(this.$wrapperEl.on(this.touchEvents.start,this.zoom.enableGestures,i),this.$wrapperEl.on(this.touchEvents.end,this.zoom.disableGestures,i)):"touchstart"===this.touchEvents.start&&(this.$wrapperEl.on(this.touchEvents.start,a,t.onGestureStart,i),this.$wrapperEl.on(this.touchEvents.move,a,t.onGestureChange,n),this.$wrapperEl.on(this.touchEvents.end,a,t.onGestureEnd,i),this.touchEvents.cancel&&this.$wrapperEl.on(this.touchEvents.cancel,a,t.onGestureEnd,i)),this.$wrapperEl.on(this.touchEvents.move,"."+this.params.zoom.containerClass,t.onTouchMove,n)}},disable:function(){var e=this.zoom;if(e.enabled){var t=this.support;this.zoom.enabled=!1;var i=!("touchstart"!==this.touchEvents.start||!t.passiveListener||!this.params.passiveListeners)&&{passive:!0,capture:!1},n=!t.passiveListener||{passive:!1,capture:!0},a="."+this.params.slideClass;t.gestures?(this.$wrapperEl.off(this.touchEvents.start,this.zoom.enableGestures,i),this.$wrapperEl.off(this.touchEvents.end,this.zoom.disableGestures,i)):"touchstart"===this.touchEvents.start&&(this.$wrapperEl.off(this.touchEvents.start,a,e.onGestureStart,i),this.$wrapperEl.off(this.touchEvents.move,a,e.onGestureChange,n),this.$wrapperEl.off(this.touchEvents.end,a,e.onGestureEnd,i),this.touchEvents.cancel&&this.$wrapperEl.off(this.touchEvents.cancel,a,e.onGestureEnd,i)),this.$wrapperEl.off(this.touchEvents.move,"."+this.params.zoom.containerClass,e.onTouchMove,n)}}},u={name:"zoom",params:{zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}},create:function(){var e=this;(0,r.bindModuleMethods)(e,{zoom:o({enabled:!1,scale:1,currentScale:1,isScaling:!1,gesture:{$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0}},l)});var t=1;Object.defineProperty(e.zoom,"scale",{get:function(){return t},set:function(i){if(t!==i){var n=e.zoom.gesture.$imageEl?e.zoom.gesture.$imageEl[0]:void 0,a=e.zoom.gesture.$slideEl?e.zoom.gesture.$slideEl[0]:void 0;e.emit("zoomChange",i,n,a)}t=i}})},on:{init:function(e){e.params.zoom.enabled&&e.zoom.enable()},destroy:function(e){e.zoom.disable()},touchStart:function(e,t){e.zoom.enabled&&e.zoom.onTouchStart(t)},touchEnd:function(e,t){e.zoom.enabled&&e.zoom.onTouchEnd(t)},doubleTap:function(e,t){!e.animating&&e.params.zoom.enabled&&e.zoom.enabled&&e.params.zoom.toggle&&e.zoom.toggle(t)},transitionEnd:function(e){e.zoom.enabled&&e.params.zoom.enabled&&e.zoom.onTransitionEnd()},slideChange:function(e){e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&e.zoom.onTransitionEnd()}}};i.default=u},{"../../utils/dom":123,"../../utils/utils":127,"ssr-window":38}],121:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=e("ssr-window"),a=e("../../utils/utils");function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var r={attach:function(e,t){void 0===t&&(t={});var i=(0,n.getWindow)(),a=this,s=new(i.MutationObserver||i.WebkitMutationObserver)(function(e){if(1!==e.length){var t=function(){a.emit("observerUpdate",e[0])};i.requestAnimationFrame?i.requestAnimationFrame(t):i.setTimeout(t,0)}else a.emit("observerUpdate",e[0])});s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),a.observer.observers.push(s)},init:function(){if(this.support.observer&&this.params.observer){if(this.params.observeParents)for(var e=this.$el.parents(),t=0;t<e.length;t+=1)this.observer.attach(e[t]);this.observer.attach(this.$el[0],{childList:this.params.observeSlideChildren}),this.observer.attach(this.$wrapperEl[0],{attributes:!1})}},destroy:function(){this.observer.observers.forEach(function(e){e.disconnect()}),this.observer.observers=[]}},o={name:"observer",params:{observer:!1,observeParents:!1,observeSlideChildren:!1},create:function(){(0,a.bindModuleMethods)(this,{observer:s({},r,{observers:[]})})},on:{init:function(e){e.observer.init()},destroy:function(e){e.observer.destroy()}}};i.default=o},{"../../utils/utils":127,"ssr-window":38}],122:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=e("ssr-window"),a=e("../../utils/utils"),s={name:"resize",create:function(){var e=this;(0,a.extend)(e,{resize:{observer:null,createObserver:function(){e&&!e.destroyed&&e.initialized&&(e.resize.observer=new ResizeObserver(function(t){var i=e.width,n=e.height,a=i,s=n;t.forEach(function(t){var i=t.contentBoxSize,n=t.contentRect,r=t.target;r&&r!==e.el||(a=n?n.width:(i[0]||i).inlineSize,s=n?n.height:(i[0]||i).blockSize)}),a===i&&s===n||e.resize.resizeHandler()}),e.resize.observer.observe(e.el))},removeObserver:function(){e.resize.observer&&e.resize.observer.unobserve&&e.el&&(e.resize.observer.unobserve(e.el),e.resize.observer=null)},resizeHandler:function(){e&&!e.destroyed&&e.initialized&&(e.emit("beforeResize"),e.emit("resize"))},orientationChangeHandler:function(){e&&!e.destroyed&&e.initialized&&e.emit("orientationchange")}}})},on:{init:function(e){var t=(0,n.getWindow)();e.params.resizeObserver&&void 0!==(0,n.getWindow)().ResizeObserver?e.resize.createObserver():(t.addEventListener("resize",e.resize.resizeHandler),t.addEventListener("orientationchange",e.resize.orientationChangeHandler))},destroy:function(e){var t=(0,n.getWindow)();e.resize.removeObserver(),t.removeEventListener("resize",e.resize.resizeHandler),t.removeEventListener("orientationchange",e.resize.orientationChangeHandler)}}};i.default=s},{"../../utils/utils":127,"ssr-window":38}],123:[function(e,t,i){"use strict";i.__esModule=!0,i.default=void 0;var n=e("dom7"),a={addClass:n.addClass,removeClass:n.removeClass,hasClass:n.hasClass,toggleClass:n.toggleClass,attr:n.attr,removeAttr:n.removeAttr,transform:n.transform,transition:n.transition,on:n.on,off:n.off,trigger:n.trigger,transitionEnd:n.transitionEnd,outerWidth:n.outerWidth,outerHeight:n.outerHeight,styles:n.styles,offset:n.offset,css:n.css,each:n.each,html:n.html,text:n.text,is:n.is,index:n.index,eq:n.eq,append:n.append,prepend:n.prepend,next:n.next,nextAll:n.nextAll,prev:n.prev,prevAll:n.prevAll,parent:n.parent,parents:n.parents,closest:n.closest,find:n.find,children:n.children,filter:n.filter,remove:n.remove};Object.keys(a).forEach(function(e){Object.defineProperty(n.$.fn,e,{value:a[e],writable:!0})});var s=n.$;i.default=s},{dom7:31}],124:[function(e,t,i){"use strict";i.__esModule=!0,i.getBrowser=function(){n||(n=function(){var e=(0,a.getWindow)();return{isEdge:!!e.navigator.userAgent.match(/Edge/g),isSafari:(t=e.navigator.userAgent.toLowerCase(),t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)};var t}());return n};var n,a=e("ssr-window")},{"ssr-window":38}],125:[function(e,t,i){"use strict";i.__esModule=!0,i.getDevice=function(e){void 0===e&&(e={});n||(n=function(e){var t=(void 0===e?{}:e).userAgent,i=(0,s.getSupport)(),n=(0,a.getWindow)(),r=n.navigator.platform,o=t||n.navigator.userAgent,l={ios:!1,android:!1},u=n.screen.width,c=n.screen.height,d=o.match(/(Android);?[\s\/]+([\d.]+)?/),h=o.match(/(iPad).*OS\s([\d_]+)/),f=o.match(/(iPod)(.*OS\s([\d_]+))?/),p=!h&&o.match(/(iPhone\sOS|iOS)\s([\d_]+)/),m="Win32"===r,v="MacIntel"===r;!h&&v&&i.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(u+"x"+c)>=0&&((h=o.match(/(Version)\/([\d.]+)/))||(h=[0,1,"13_0_0"]),v=!1);d&&!m&&(l.os="android",l.android=!0);(h||p||f)&&(l.os="ios",l.ios=!0);return l}(e));return n};var n,a=e("ssr-window"),s=e("./get-support")},{"./get-support":126,"ssr-window":38}],126:[function(e,t,i){"use strict";i.__esModule=!0,i.getSupport=function(){n||(e=(0,a.getWindow)(),t=(0,a.getDocument)(),n={touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch),pointerEvents:!!e.PointerEvent&&"maxTouchPoints"in e.navigator&&e.navigator.maxTouchPoints>=0,observer:"MutationObserver"in e||"WebkitMutationObserver"in e,passiveListener:function(){var t=!1;try{var i=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassiveListener",null,i)}catch(e){}return t}(),gestures:"ongesturestart"in e});var e,t;return n};var n,a=e("ssr-window")},{"ssr-window":38}],127:[function(e,t,i){"use strict";i.__esModule=!0,i.deleteProps=function(e){var t=e;Object.keys(t).forEach(function(e){try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}})},i.nextTick=function(e,t){void 0===t&&(t=0);return setTimeout(e,t)},i.now=function(){return Date.now()},i.getTranslate=function(e,t){void 0===t&&(t="x");var i,s,r,o=(0,n.getWindow)(),l=a(e);o.WebKitCSSMatrix?((s=l.transform||l.webkitTransform).split(",").length>6&&(s=s.split(", ").map(function(e){return e.replace(",",".")}).join(", ")),r=new o.WebKitCSSMatrix("none"===s?"":s)):(r=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),i=r.toString().split(","));"x"===t&&(s=o.WebKitCSSMatrix?r.m41:16===i.length?parseFloat(i[12]):parseFloat(i[4]));"y"===t&&(s=o.WebKitCSSMatrix?r.m42:16===i.length?parseFloat(i[13]):parseFloat(i[5]));return s||0},i.isObject=s,i.extend=function e(){var t=Object(arguments.length<=0?void 0:arguments[0]);var i=["__proto__","constructor","prototype"];for(var n=1;n<arguments.length;n+=1){var a=n<0||arguments.length<=n?void 0:arguments[n];if(null!=a&&!r(a))for(var o=Object.keys(Object(a)).filter(function(e){return i.indexOf(e)<0}),l=0,u=o.length;l<u;l+=1){var c=o[l],d=Object.getOwnPropertyDescriptor(a,c);void 0!==d&&d.enumerable&&(s(t[c])&&s(a[c])?a[c].__swiper__?t[c]=a[c]:e(t[c],a[c]):!s(t[c])&&s(a[c])?(t[c]={},a[c].__swiper__?t[c]=a[c]:e(t[c],a[c])):t[c]=a[c])}}return t},i.bindModuleMethods=function(e,t){Object.keys(t).forEach(function(i){s(t[i])&&Object.keys(t[i]).forEach(function(n){"function"==typeof t[i][n]&&(t[i][n]=t[i][n].bind(e))}),e[i]=t[i]})},i.getComputedStyle=a,i.classesToSelector=function(e){void 0===e&&(e="");return"."+e.trim().replace(/([\.:!\/])/g,"\\$1").replace(/ /g,".")},i.createElementIfNotDefined=function(e,t,i,a){var s=(0,n.getDocument)();i&&Object.keys(a).forEach(function(i){if(!t[i]&&!0===t.auto){var n=s.createElement("div");n.className=a[i],e.append(n),t[i]=n}});return t};var n=e("ssr-window");function a(e){var t,i=(0,n.getWindow)();return i.getComputedStyle&&(t=i.getComputedStyle(e,null)),!t&&e.currentStyle&&(t=e.currentStyle),t||(t=e.style),t}function s(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function r(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}},{"ssr-window":38}],128:[function(e,t,i){"use strict";i.__esModule=!0,i.default=e("./cjs/components/core/core-class").default,i.Swiper=e("./cjs/components/core/core-class").default,i.Virtual=e("./cjs/components/virtual/virtual").default,i.Keyboard=e("./cjs/components/keyboard/keyboard").default,i.Mousewheel=e("./cjs/components/mousewheel/mousewheel").default,i.Navigation=e("./cjs/components/navigation/navigation").default,i.Pagination=e("./cjs/components/pagination/pagination").default,i.Scrollbar=e("./cjs/components/scrollbar/scrollbar").default,i.Parallax=e("./cjs/components/parallax/parallax").default,i.Zoom=e("./cjs/components/zoom/zoom").default,i.Lazy=e("./cjs/components/lazy/lazy").default,i.Controller=e("./cjs/components/controller/controller").default,i.A11y=e("./cjs/components/a11y/a11y").default,i.History=e("./cjs/components/history/history").default,i.HashNavigation=e("./cjs/components/hash-navigation/hash-navigation").default,i.Autoplay=e("./cjs/components/autoplay/autoplay").default,i.EffectFade=e("./cjs/components/effect-fade/effect-fade").default,i.EffectCube=e("./cjs/components/effect-cube/effect-cube").default,i.EffectFlip=e("./cjs/components/effect-flip/effect-flip").default,i.EffectCoverflow=e("./cjs/components/effect-coverflow/effect-coverflow").default,i.Thumbs=e("./cjs/components/thumbs/thumbs").default},{"./cjs/components/a11y/a11y":40,"./cjs/components/autoplay/autoplay":41,"./cjs/components/controller/controller":42,"./cjs/components/core/core-class":50,"./cjs/components/effect-coverflow/effect-coverflow":105,"./cjs/components/effect-cube/effect-cube":106,"./cjs/components/effect-fade/effect-fade":107,"./cjs/components/effect-flip/effect-flip":108,"./cjs/components/hash-navigation/hash-navigation":109,"./cjs/components/history/history":110,"./cjs/components/keyboard/keyboard":111,"./cjs/components/lazy/lazy":112,"./cjs/components/mousewheel/mousewheel":113,"./cjs/components/navigation/navigation":114,"./cjs/components/pagination/pagination":115,"./cjs/components/parallax/parallax":116,"./cjs/components/scrollbar/scrollbar":117,"./cjs/components/thumbs/thumbs":118,"./cjs/components/virtual/virtual":119,"./cjs/components/zoom/zoom":120}],129:[function(e,t,i){"use strict";var n=e("./constants");e("es6-promise/auto"),e("picturefill"),e("./require/outliner"),e("./kc-implementations/polyfills");var a=D(e("./require/lightbox")),s=D(e("./require/async-helper")),r=D(e("./require/toggler")),o=D(e("./require/modal-gallery")),l=D(e("./require/input-toggle")),u=D(e("./require/video")),c=D(e("./require/validation-offset")),d=D(e("./require/print")),h=D(e("./require/cookie")),f=D(e("./require/price-loader")),p=D(e("./require/social-tracking")),m=D(e("./require/pardot-tracking")),v=D(e("./require/lightbox-tracking")),g=D(e("./require/card-list")),y=D(e("./require/product-card")),b=D(e("./require/bizzabo")),w=D(e("./require/cvent")),E=D(e("./require/autocomplete")),S=D(e("./require/theme-styling")),C=D(e("./require/tabbed-blocks")),T=D(e("./require/product-finder")),x=D(e("./kc-implementations/Accordion/index")),L=D(e("./kc-implementations/NewsGrid/index")),M=D(e("./kc-implementations/wide-card-list")),_=D(e("./kc-implementations/landing-video-dynamic")),k=D(e("./kc-implementations/navigation")),A=D(e("./kc-implementations/IOAnimations")),O=D(e("./kc-implementations/FormSteps")),I=D(e("./kc-implementations/subnav")),P=D(e("./kc-implementations/carousel")),N=D(e("./kc-implementations/horizons")),j=D(e("storm-load")),R=D(e("./require/gated-content/index")),z=D(e("./require/commodity-selector/index"));function D(e){return e&&e.__esModule?e:{default:e}}e("lazysizes");var G=[a.default,y.default,c.default,r.default,o.default,l.default,u.default,h.default,d.default,f.default,p.default,m.default,v.default,g.default,b.default,w.default,S.default,E.default,C.default,T.default,L.default,M.default,_.default,k.default,x.default,A.default,O.default,I.default,P.default,N.default,(0,s.default)("responsive-text"),(0,s.default)("toast"),(0,s.default)("wall"),(0,s.default)("wall-row"),(0,s.default)("filter-list"),(0,s.default)("modal"),(0,s.default)("slider"),(0,s.default)("sticky"),(0,s.default)("tab-accordion"),(0,s.default)("iframe"),(0,s.default)("checkout"),(0,s.default)("contact-map"),R.default,z.default];"addEventListener"in window&&(Object.assign&&"classList"in document.createElement("_")?G.forEach(function(e){return e()}):(0,j.default)(n.PATHS.JS_ASYNC+"/polyfills.min.js").then(function(){G.forEach(function(e){return e()})}))},{"./constants":130,"./kc-implementations/Accordion/index":131,"./kc-implementations/FormSteps":132,"./kc-implementations/IOAnimations":133,"./kc-implementations/NewsGrid/index":139,"./kc-implementations/carousel":140,"./kc-implementations/horizons":141,"./kc-implementations/landing-video-dynamic":142,"./kc-implementations/navigation":143,"./kc-implementations/polyfills":144,"./kc-implementations/subnav":145,"./kc-implementations/wide-card-list":147,"./require/async-helper":148,"./require/autocomplete":149,"./require/bizzabo":150,"./require/card-list":151,"./require/commodity-selector/index":152,"./require/cookie":154,"./require/cvent":158,"./require/gated-content/index":159,"./require/input-toggle":160,"./require/lightbox":163,"./require/lightbox-tracking":162,"./require/modal-gallery":164,"./require/outliner":165,"./require/pardot-tracking":166,"./require/price-loader":167,"./require/print":168,"./require/product-card":170,"./require/product-finder":171,"./require/social-tracking":172,"./require/tabbed-blocks":173,"./require/theme-styling":174,"./require/toggler":175,"./require/validation-offset":179,"./require/video":180,"es6-promise/auto":32,lazysizes:34,picturefill:36,"storm-load":39}],130:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});i.PATHS={JS_ASYNC:"/content/js/async",WEBFONT_LOADER:"//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js",YOUTUBE_API:"https://www.youtube.com/iframe_api"},i.FONTS={google:{families:["Manrope:300,400,500,600,700,800:latin"]}},i.TRIGGER_EVENTS=["click","keyup"],i.TRIGGER_KEYCODES=[13,32],i.TOGGLERS={SELECTOR:{GLOBAL:".js-toggle",LOCAL:".js-toggle-local",GROUP:".js-toggle__group",FOCUS:".js-toggle__focus",PROFILE:".js-toggle__profile",HEADER_GROUP:".js-toggle__header-group"}},i.PRICE_LOADER={SELECTOR:{CONTAINER:".js-price-loader",BTN:".js-price-loader__dependent"},HIDDEN:"hidden",DATA:{ENDPOINT:"data-price-endpoint"},UNAVAILABLE:'<p class="beta red push--bottom">This report is currently unavailable.</p>'},i.CHECKOUT={SELECTOR:".js-checkout-validate"},i.SLIDER={SELECTOR:".js-slider",MODULE:"flickity",OPTIONS:{groupCells:!0,cellAlign:"left"},INIT:function(){var e=this;document.querySelectorAll(this.SELECTOR).forEach(function(t){new Flickity(t,e.OPTIONS)})}},i.COUNTDOWN={SELECTOR:".js-countdown",MODULE:"flipdown",OPTIONS:{},INIT:function(){setInterval(function(){document.getElementsByTagName("body")[0].style.overflow="hidden"},1e3);var e=new Date("Jun 21 2023 00:00:00")/1e3+172800+1;new FlipDown(e).start().ifEnded(function(){console.log("The countdown has ended!")})}},i.IFRAME={SELECTOR:"#form iframe",MODULE:"iframe-resizer",INIT:function(){var e=document.querySelector("#form iframe");e.setAttribute("height","auto"),e.setAttribute("scrolling","no"),iFrameResize({log:!1},"#form iframe")}},i.PRINT={SELECTOR:".js-print"},i.MODAL={SELECTOR:".js-modal"},i.STICKY={SELECTOR:".js-sticky",OPTIONS:{offset:0}},i.TOAST={SELECTOR:".js-toast"},i.PARDOT={SELECTOR:"#form iframe",DATA:{COMPLETION:"Pardot form completion"},ORIGIN:"https://go.woodmac.com",EVENT_NAME:{COMPLETION:"pardotFormSubmit"}},i.COOKIE={SELECTOR:{CONTAINER:".js-banner",BTN:".js-banner__close",POPUP:".js-popup",POPUP_CLOSE:".js-popup__close"},CLASSNAME:"off--banner",NAME:"agreeWMCookies",DOMAIN:".woodmac.com",VALUE:"true",EXPIRY_DAYS:1e4,POPUP:{NAME:{DISMISS:"dismissWMPopup",SUBMITTED:"submittedWMPopup"},GA_EVENT:"InsideTrackPopUP_FormSubmission",EXPIRY_DAYS:{DISMISS:3,SUBMITTED:180},VISIBLE_CLASSNAME:"is--active",TIMEOUT:15e3}},i.WALL={SELECTOR:".js-wall"},i.WALL_ROW={SELECTOR:".js-wall-row"},i.HYSTERESIS_MENU={SELECTOR:".js-hysteresis-nav"},i.TAB_ACCORDION={SELECTOR:".js-tab-accordion"},i.STICKY_HEADER={CLASSNAME:"js-is-stuck"},i.GALLERY={SELECTOR:{LINK:".js-gallery__trigger-link",SCROLLABLE_LINK:".js-gallery__trigger-link--scrollable",SINGLE:".js-gallery__trigger-single",DATA:".js-gallery__trigger-data"}},i.FILTER_LIST={SELECTOR:".js-filter-list"},i.CARD_LIST={SELECTOR:{CONTAINER:".js-card-list",WRAPPER:".js-card-list__wrapper",LIST:".js-card-list__list",STATUS:".js-card-list__status",LOAD_MORE_WRAPPER:".js-card-list__load-more-wrapper",QUANTITY_TEXT:".js-card-list__quantity",LOAD_MORE:".js-card-list__load-more"}},i.INPUT_TOGGLE={SELECTOR:".js-toggle-input"},i.RESPONSIVE_TEXT={SELECTOR:".js-fit"},i.VIDEO={SELECTOR:{CONTAINER:".js-video",WISTIA:".js-video__w",WISTIA_CUSTOM:".js-video__w-custom",YOUTUBE:".js-video__yt"}},i.CONTACT_MAP={SELECTOR:".js-office__map",OPTIONS:{KEY:"AIzaSyBSSBZPKqR-v_yb7axsOTiwb1xbef4ibc0"}}},{}],131:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}();var a=function(){function e(t){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.rootEl=t,this.state={lastOpenedAccordion:null,accordionClicked:null},this.triggers=this.rootEl.querySelectorAll(".js-accordion__trigger"),[].concat(function(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}(this.triggers)).forEach(function(e){e.addEventListener("click",i.handleTrigger.bind(i,e))})}return n(e,[{key:"handleTrigger",value:function(e){this.state.accordionClicked=e;var t=this.state.lastOpenedAccordion;t&&e!==t&&this.toggleAccordion(t),this.toggleAccordion(e),this.state.accordionClicked=null}},{key:"toggleAccordion",value:function(e){"true"===e.getAttribute("aria-expanded")?this.close(e):this.open(e)}},{key:"open",value:function(e){e.setAttribute("aria-expanded","true");var t=e.getAttribute("id"),i=document.querySelector('[aria-labelledby="'+t+'"]');i.classList.add("is-opening"),i.classList.remove("is-closing"),requestAnimationFrame(function(){i.classList.remove("is-opening"),i.classList.add("is-open")}),this.state.lastOpenedAccordion=e}},{key:"close",value:function(e){var t=this.state,i=t.accordionClicked,n=t.lastOpenedAccordion;e.setAttribute("aria-expanded","false");var a=e.getAttribute("id");document.querySelector('[aria-labelledby="'+a+'"]').classList.remove("is-opening","is-open"),n&&i===n&&(this.state.lastOpenedAccordion=null)}}]),e}();i.default=function(){document.querySelectorAll(".js-accordion").forEach(function(e){new a(e)})}},{}],132:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}();var a={WRAPPER:"Form__NavigationBar__ProgressBar",CURRENT_STEP:"Form__NavigationBar__ProgressBar__CurrentStep",STEP:"Form__NavigationBar__ProgressBar__Step"},s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.currentStepElement=t.getElementsByClassName(a.CURRENT_STEP)[0],this.steps=t.getElementsByClassName(a.STEP),this.initObserver()}return n(e,[{key:"observerCallback",value:function(e){var t=!0,i=!1,n=void 0;try{for(var a,s=e[Symbol.iterator]();!(t=(a=s.next()).done);t=!0){var r=a.value;if(r.addedNodes[0]){var o=parseInt(r.addedNodes[0].textContent)-1;this.steps[o].classList.add("bg-secondary-color"),this.steps[o].classList.remove("bg-light-grey-1"),this.steps[o+1]&&(this.steps[o+1].classList.remove("bg-secondary-color"),this.steps[o+1].classList.add("bg-light-grey-1"))}}}catch(e){i=!0,n=e}finally{try{!t&&s.return&&s.return()}finally{if(i)throw n}}}},{key:"initObserver",value:function(){new MutationObserver(this.observerCallback.bind(this)).observe(this.currentStepElement,{childList:!0,attributes:!1})}}]),e}(),r=document.getElementsByClassName(a.WRAPPER);document.querySelector(".js-close-form")&&document.querySelector(".js-close-form").addEventListener("click",function(){return $("button.js-toggle-local").click(),!1}),i.default=function(){[].concat(function(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}(r)).forEach(function(e){new s(e)})}},{}],133:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}();function a(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}var s={WRAPPER:"js-io-animation",CHAIN_ELEMENT:"js-io-animation__chain-el",CSS_COMPLETE:"io-animation--complete"},r={TYPE:"data-io-type",ANIMATION_CHAIN:"data-io-animation-chain"},o=function(){function e(t){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements=t,this.options={rootMargin:"-14% 0px -14% 0px",threshold:[.01]},Array.from(this.elements).forEach(function(e){var t=void 0;e.getAttribute(r.ANIMATION_CHAIN,"true")&&(t=e.getElementsByClassName(s.CHAIN_ELEMENT)),i.applyIntersectionObserver(e,t)})}return n(e,[{key:"applyIntersectionObserver",value:function(e,t){var i=this;if("IntersectionObserver"in window){var n=new IntersectionObserver(function(e){e.forEach(function(e){e.isIntersecting&&(e.target.classList.add(s.CSS_COMPLETE),i.handleExpandAnimation(e.target),t&&[].concat(a(t)).forEach(function(e,t){setTimeout(function(){e.classList.add(s.CSS_COMPLETE),i.handleExpandAnimation(e)},400*(t+1))}),n.unobserve(e.target))})},this.options);n.observe(e)}else e.classList.add(s.CSS_COMPLETE),this.handleExpandAnimation(e),t&&[].concat(a(t)).forEach(function(e,t){setTimeout(function(){e.classList.add(s.CSS_COMPLETE),i.handleExpandAnimation(e)},400*(t+1))})}},{key:"handleExpandAnimation",value:function(e){var t=e.getAttribute(r.TYPE);if(t&&t.match(/expand/g)){var i=t.replaceAll("expand","expand--complete");e.setAttribute(r.TYPE,i)}}}]),e}();i.default=function(){var e=document.getElementsByClassName(s.WRAPPER),t=window.matchMedia("(prefers-reduced-motion: reduce)");e&&!t.matches&&new o(e)}},{}],134:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}(),s=e("../utils"),r=e("./Layout"),o=(n=r)&&n.__esModule?n:{default:n};var l=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,o.default),a(t,[{key:"renderMarkup",value:function(e){for(var t="",i=0;i<e.length;i++)t+=this.getMarkup(e[i],i);this.wrapper.insertAdjacentHTML("beforeend",t)}},{key:"getMarkup",value:function(e,t){var i=t>0?"small-medium-6 large-4":"large-8";return'<a href="'+e.url+'" class="col small-12 '+i+' push--bottom fade-in-up fade-in-up--1 tile-link card img-overlay">\n            '+(e.img?'<figure class="img-overlay__wrap ratio--5x29">\n                    <img class="img-overlay__image" src="'+e.img.url+'" alt="'+e.img.alt+'">\n                    <div class="img-overlay__effect"></div>\n                </figure>':"")+'\n            <div class="card__block">\n                '+(e.format?'<span class="badge push-half--bottom">'+e.format+"</span>":"")+'\n                <div>\n                    <time class="beta italic inline">'+(0,s.formatDate)(e.date)+"</time>\n                    "+(e.readtimevalue>0&&!e.hidereadtimelabel?'<p class="read-time"><span>'+e.readtimevalue+" "+e.readtimelabel+"</span></p>":"")+'\n                </div>\n                <h3 class="kilo font-600 tile-link__hover-blue">'+e.headline+"</h3>\n                "+(0===t&&e.teasertext?'<p class="teaser-ellipsis">'+e.teasertext+"</p>":"")+"\n            </div>\n        </a>"}}]),t}();i.default=l},{"../utils":146,"./Layout":135}],135:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}(),s=e("axios"),r=(n=s)&&n.__esModule?n:{default:n};function o(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}var l=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.mainContainer=t,this.wrapper=this.mainContainer.querySelector(".js-news-grid-wrapper"),this.endpoint=this.mainContainer.getAttribute("data-news-endpoint"),this.pinnedContentEndpoint=this.mainContainer.getAttribute("data-pinned-endpoint"),this.batchSize=this.mainContainer.getAttribute("data-news-batchsize"),this.filters={cf:void 0},this.error=void 0,this.filterListState={error:!1,refresh:!1,searching:!1}}return a(e,[{key:"handleInit",value:function(){var e=this.mainContainer.dataset.filters;e&&(this.filters.cf=e.split(","))}},{key:"API",value:function(){var e=this;if(this.pinnedContentEndpoint){var t=r.default.post(this.pinnedContentEndpoint,Object.assign({},this.filters.cf?this.filters:{},{from:1})),i=r.default.post(this.endpoint,Object.assign({},this.filters.cf?this.filters:{},{size:this.batchSize,from:1}));Promise.all([t,i]).then(function(t){var i=[].concat(o(t[0].data.data),o(t[1].data.data));return void 0===i[0]?e.handleStatusMessage(0):(e.handleStatusMessage(i.length),e.renderMarkup(i))}).catch(function(t){console.dir(t),e.error=t,e.handleStatusMessage()})}else r.default.post(this.endpoint,Object.assign({},this.filters.cf?this.filters:{},{size:this.batchSize,from:1})).then(function(t){e.renderMarkup(t.data.data),e.handleStatusMessage(t.data.data.length)}).catch(function(t){console.dir(t),e.error=t,e.handleStatusMessage()})}},{key:"removeItems",value:function(){var e=this.mainContainer.querySelectorAll(".js-news-grid-wrapper > .card");if(e)for(var t=0;t<e.length;t++)this.wrapper.removeChild(e[t])}},{key:"handleStatusMessage",value:function(e){var t=this.mainContainer.querySelector(".status");t&&(t.classList.remove("status--searching"),this.filterListState.searching&&this.filterListState.refresh?(this.wrapper.classList.add("hide"),t.classList.remove("hide"),t.classList.add("status--searching"),t.children[0].textContent="Searching..."):this.error||this.filterListState.error?(this.wrapper.classList.add("hide"),t.classList.remove("hide"),t.classList.add("status--error"),t.children[0].textContent="Error"):0===e?(this.wrapper.classList.add("hide"),t.classList.remove("hide"),t.classList.add("status--empty"),t.children[0].textContent="No results found"):(t.classList.add("hide"),this.wrapper.classList.remove("hide")))}}]),e}();i.default=l},{axios:2}],136:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}(),s=e("../utils"),r=e("./Layout"),o=(n=r)&&n.__esModule?n:{default:n};var l=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,o.default),a(t,[{key:"renderMarkup",value:function(e){for(var t="",i=0;i<3;i++)t+=this.getMarkup(e[i]);this.wrapper.insertAdjacentHTML("beforeend",t)}},{key:"getMarkup",value:function(e){return'<a href="'+e.url+'" class="col small-12 small-medium-6 large-4 push--bottom fade-in-up fade-in-up--1 tile-link card img-overlay">\n            '+(e.img?'<figure class="img-overlay__wrap ratio--5x29">\n                    <img class="img-overlay__image" src="'+e.img.url+'" alt="'+e.img.alt+'">\n                    <div class="img-overlay__effect"></div>\n                </figure>':"")+'\n            <div class="card__block">\n              '+(e.format?'<span class="badge push-half--bottom">'+e.format+"</span>":"")+'\n              <div>\n                <time class="beta italic inline">'+(0,s.formatDate)(e.date)+"</time>\n                "+(e.readtimevalue>0&&!e.hidereadtimelabel?'<p class="read-time"><span>'+e.readtimevalue+" "+e.readtimelabel+"</span></p>":"")+'\n              </div>\n              <h3 class="kilo font-600 tile-link__hover-blue">'+e.headline+"</h3>\n            </div>\n          </a>"}}]),t}();i.default=l},{"../utils":146,"./Layout":135}],137:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}(),s=e("../utils"),r=e("./Layout"),o=(n=r)&&n.__esModule?n:{default:n};var l=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e)),n=i.mainContainer.dataset.imageRowDisplay||1;return i.imageRowDisplay=3*parseInt(n),i.filterListState={error:!1,refresh:!1,searching:!1},i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,o.default),a(t,[{key:"handleInit",value:function(){var e=this;(function e(t,i,n){null===t&&(t=Function.prototype);var a=Object.getOwnPropertyDescriptor(t,i);if(void 0===a){var s=Object.getPrototypeOf(t);return null===s?void 0:e(s,i,n)}if("value"in a)return a.value;var r=a.get;return void 0!==r?r.call(n):void 0})(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"handleInit",this).call(this),this.mainContainer.addEventListener("updateNewsGrid",function(){e.filterListState=window.NEWS_GRID_FILTER_STATE,e.handleStatusMessage(e.filterListState.currentData),e.filterListState.refresh&&e.removeItems(),e.renderMarkup(e.filterListState.currentData,e.filterListState.refresh),e.handleStatusMessage(e.filterListState.currentData.length)}),this.mainContainer.addEventListener("handleStatusNewsGrid",function(){e.filterListState=window.NEWS_GRID_FILTER_STATE,e.handleStatusMessage(e.filterListState.currentData)})}},{key:"removeItems",value:function(){var e=this.wrapper.querySelector(".js-simple-layout-inner"),t=this.wrapper.querySelectorAll(".js-simple-layout-inner .card");if(t)for(var i=0;i<t.length;i++)e.removeChild(t[i])}},{key:"renderMarkup",value:function(e){for(var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i="",n="",a=0;a<e.length;a++)a<this.imageRowDisplay&&t?i+=this.getMarkup(e[a],!0):n+=this.getMarkup(e[a]);if(this.wrapper.querySelector(".js-simple-layout-inner").insertAdjacentHTML("beforeend",n),""!==i)this.wrapper.querySelector(".js-layout-inner").innerHTML=i;else if(0===this.imageRowDisplay){var s=this.wrapper.querySelector(".js-layout-outer");s&&s.classList.add("hide")}}},{key:"getMarkup",value:function(e,t){return'<a href="'+e.url+'" class="col small-12 small-medium-6 large-4 push--bottom fade-in-up fade-in-up--1 tile-link card img-overlay">\n            '+(t&&e.img?'<figure class="img-overlay__wrap ratio--5x29">\n                    <img class="img-overlay__image" src="'+e.img.url+'" alt="'+e.img.alt+'">\n                    <div class="img-overlay__effect"></div>\n                </figure>':"")+'\n            <div class="card__block">\n              '+(e.format?'<span class="badge push-half--bottom">'+e.format+"</span>":"")+'\n              <div>\n                <time class="beta italic inline">'+(0,s.formatDate)(e.date)+"</time>\n                "+(e.readtimevalue>0&&!e.hidereadtimelabel?'<p class="read-time"><span>'+e.readtimevalue+" "+e.readtimelabel+"</span></p>":"")+'\n              </div>\n              <h3 class="kilo font-600 tile-link__hover-blue">'+e.headline+"</h3>\n            </div>\n          </a>"}}]),t}();i.default=l},{"../utils":146,"./Layout":135}],138:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}(),a=o(e("axios")),s=e("../utils"),r=o(e("./Layout"));function o(e){return e&&e.__esModule?e:{default:e}}function l(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}var u=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.extraEndpoint=e.getAttribute("data-news-extra-endpoint"),i.verticalCardButtonUrl=e.getAttribute("data-vertical-card-button-url"),i.verticalCardButtonText=e.getAttribute("data-vertical-card-button-text"),i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),n(t,[{key:"API",value:function(){var e=this,t=void 0;this.pinnedContentEndpoint&&(t=a.default.post(this.pinnedContentEndpoint,Object.assign({},this.filters.cf?this.filters:{},{from:1})));var i=a.default.post(this.extraEndpoint,Object.assign({},this.filters.cf?this.filters:{},{size:1,from:1})),n=a.default.post(this.endpoint,Object.assign({},this.filters.cf?this.filters:{},{size:this.batchSize,from:1})),s=this.pinnedContentEndpoint?[t,i,n]:[i,n];Promise.all(s).then(function(t){var i=e.pinnedContentEndpoint?[].concat(l(t[0].data.data),l(t[2].data.data)):[t[0].data.data[0]].concat(l(t[1].data.data));if(void 0===i[0])return e.handleStatusMessage(0);i.splice(5),e.renderMarkup(i),e.handleStatusMessage(i.length)}).catch(function(t){console.dir(t),e.error=t,e.handleStatusMessage()})}},{key:"renderMarkup",value:function(e){for(var t="",i=0;i<e.length;i++)if(0===i){var n=this.getMarkup(e[i],i);this.wrapper.insertAdjacentHTML("afterbegin",n)}else t+=this.getMarkup(e[i],i);this.wrapper.querySelector(".js-layout-inner").insertAdjacentHTML("afterbegin",t);var a=this.wrapper.querySelector(".js-vertical-button");a&&a.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation(),window.location=a.dataset.href})}},{key:"getMarkup",value:function(e,t){var i=t>0?"small-medium-6 large-6":"large-4";return'<a href="'+e.url+'" class="col small-12 '+i+' push--bottom fade-in-up fade-in-up--1 tile-link card img-overlay">\n            '+(0===t&&e.img?'<figure class="img-overlay__wrap ratio--5x29">\n                    <img class="img-overlay__image" src="'+e.img.url+'" alt="'+e.img.alt+'">\n                    <div class="img-overlay__effect"></div>\n                </figure>':"")+'\n            <div class="card__block">\n                '+(e.format?'<span class="badge push-half--bottom">'+e.format+"</span>":"")+'\n                <div>\n                    <time class="beta italic inline">'+(0,s.formatDate)(e.date)+"</time>\n                    "+(e.readtimevalue>0&&!e.hidereadtimelabel?'<p class="read-time"><span>'+e.readtimevalue+" "+e.readtimelabel+"</span></p>":"")+'\n                </div>\n                <h3 class="kilo font-600 tile-link__hover-blue">'+e.headline+"</h3>\n                "+(0===t&&this.verticalCardButtonText?'<button class="btn btn--primary push-half--top js-vertical-button" data-href="'+this.verticalCardButtonUrl+'">'+this.verticalCardButtonText+"</button>":"")+"\n            </div>\n        </a>"}}]),t}();i.default=u},{"../utils":146,"./Layout":135,axios:2}],139:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}(),a=l(e("./NormalLayout")),s=l(e("./NormalSimpleLayout")),r=l(e("./HorizontalLayout")),o=l(e("./VerticalLayout"));function l(e){return e&&e.__esModule?e:{default:e}}i.default=function(){for(var e,t=function(){function e(t){switch(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.outerContainer=t,this.mainContainer=this.outerContainer.querySelector(".js-news-grid"),this.layoutType=this.mainContainer.dataset.newsLayout,this.layoutType){case"vertical":this.Layout=new o.default(this.mainContainer);break;case"horizontal":this.Layout=new r.default(this.mainContainer);break;case"normal-simple":this.Layout=new s.default(this.mainContainer);break;default:this.Layout=new a.default(this.mainContainer)}this.mainContainer&&this.initNewsGrid()}return n(e,[{key:"initNewsGrid",value:function(){this.Layout.handleInit(),this.mainContainer.classList.contains("js-filter-list")||("IntersectionObserver"in window?this.lazyLoad():this.Layout.API())}},{key:"lazyLoad",value:function(){var e=this,t=new IntersectionObserver(function(i){i.forEach(function(i){i.isIntersecting&&(e.Layout.API(),t.unobserve(e.mainContainer))})},{rootMargin:"0px",threshold:0});t.observe(this.mainContainer)}}]),e}(),i=[],l=document.querySelectorAll(".js-news-grid-container"),u=0;u<l.length;u++)new t(l[u]),"normal"===(e=l[u]).querySelector(".js-news-grid").dataset.newsLayout&&i.push(e);!function(){for(var e=0;e<i.length;e++)e%2==1&&(i[e].classList.remove("bg-light-grey-1"),i[e].classList.add("bg-light-grey-2"))}()}},{"./HorizontalLayout":134,"./NormalLayout":136,"./NormalSimpleLayout":137,"./VerticalLayout":138}],140:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=e("swiper"),s=(n=a)&&n.__esModule?n:{default:n};s.default.use([a.Navigation,a.Pagination,a.Lazy,a.A11y,a.Thumbs]),i.default=function(){document.querySelectorAll(".carousel-block.carousel__container").forEach(function(e){if(e.querySelector(".carousel.swiper-thumbs")){var t=new s.default(e.querySelector(".carousel.swiper-thumbs"),{spaceBetween:10,slidesPerView:"auto",freeMode:!0,watchSlidesProgress:!0});new s.default(e.querySelector(".carousel.swiper-content"),{spaceBetween:10,navigation:{nextEl:e.querySelector(".carousel.swiper-content .swiper-button-next"),prevEl:e.querySelector(".carousel.swiper-content .swiper-button-prev")},thumbs:{swiper:t}})}else new s.default(e.querySelector(".carousel"),{slidesPerView:1,spaceBetween:0,centeredSlides:!0,speed:600,loop:!1,preloadImages:!1,lazy:{loadPrevNext:!0},pagination:{el:e.querySelector(".carousel .swiper-pagination"),clickable:!0},navigation:{nextEl:e.querySelector(".carousel .swiper-button-next"),prevEl:e.querySelector(".carousel .swiper-button-prev")}})});new s.default(".press-enquiries__carousel",{slidesPerView:1,spaceBetween:12,centeredSlides:!0,speed:600,loop:!0,pagination:{el:".press-enquiries__carousel .swiper-pagination",clickable:!0}}),new s.default(".product-carousel",{slidesPerView:1,spaceBetween:0,centeredSlides:!0,speed:600,loop:!1,preloadImages:!1,lazy:{loadPrevNext:!0},pagination:{el:".product-carousel .swiper-pagination",clickable:!0},navigation:{nextEl:".product-carousel .swiper-button-next",prevEl:".product-carousel .swiper-button-prev"}});for(var e=document.querySelectorAll(".commodity-selector-block .carousel.swiper-content"),t=document.querySelectorAll(".commodity-selector-block .carousel.swiper-thumbs"),i=0;i<e.length;i++){e[i].classList.add("commodity-selector-swiper-content-"+i),t[i].classList.add("commodity-selector-swiper-thumbs-"+i);var n=new s.default(".commodity-selector-swiper-thumbs-"+i,{spaceBetween:10,freeMode:!0,watchSlidesProgress:!0,centeredSlides:!1,slidesPerView:"auto",simulateTouch:!0,watchOverflow:!0,slidesPerGroup:3});new s.default(".commodity-selector-swiper-content-"+i,{spaceBetween:10,speed:0,thumbs:{swiper:n}})}}},{swiper:128}],141:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.default=function(){if(document.querySelector(".horizon_landing")){var e=document.querySelector(".horizons-intro"),t=document.querySelector(".horizons-intro__article-info-wrapper"),i=document.querySelectorAll(".author-details__trigger");window.innerWidth>767&&(e.style.minHeight=t.offsetHeight+"px",i.forEach(function(i){i.addEventListener("click",function(){var i=t.offsetHeight;setTimeout(function(){var t=document.querySelector(".author-details__panel.is-open");t&&(e.style.minHeight=i+t.offsetHeight+"px",setTimeout(function(){e.style.minHeight=i+t.offsetHeight+"px"},"500"))},"200"),setTimeout(function(){document.querySelector(".author-details__panel.is-open")||(e.style.minHeight=i+"px")},"100")})})),window.addEventListener("resize",function(){if(window.innerWidth>767){var i=t.offsetHeight;e.style.minHeight=i+"px"}});var n=document.querySelectorAll(".horizons-hero__anchor-links a");if(n)for(var a=0;a<n.length;a++)n[a].addEventListener("click",function(){setTimeout(function(){history.replaceState("",document.title,window.location.origin+window.location.pathname+window.location.search)},5)});var s=document.querySelectorAll(".article-actions__share-panel"),r=document.querySelectorAll(".copy-button");if(s.forEach(function(e){document.addEventListener("click",function(t){!e.contains(t.target)&&e.parentElement.classList.contains("active")&&e.parentElement.classList.remove("active"),t.target.classList.contains("share-panel__link")&&e.parentElement.classList.contains("active")&&e.parentElement.classList.remove("active")}),document.addEventListener("keydown",function(t){"Escape"!==t.code&&27!==t.keyCode||!e.parentElement.classList.contains("active")||e.parentElement.classList.remove("active")})}),r.forEach(function(e){e.addEventListener("click",function(){var t=e.previousElementSibling.id,i=document.getElementById(t).value;navigator.clipboard.writeText(i).then(function(){var t=e.innerText;e.innerText="Copied",setTimeout(function(){e.innerText=t},1500)}).catch(function(){e.classList.add("error"),setTimeout(function(){e.classList.remove("error")},1500)})})}),document.querySelector(".horizons-nav__select")){document.querySelector(".horizons-nav__select").addEventListener("click",function(){this.classList.toggle("open"),this.classList.contains("open")?this.querySelector(".select__button").setAttribute("aria-expanded","true"):this.querySelector(".select__button").setAttribute("aria-expanded","false")});var o=document.querySelector(".horizons-nav__select .page-nav__link.active");document.querySelector(".select__button span").textContent=o.textContent;var l=!0,u=!1,c=void 0;try{for(var d,h=document.querySelectorAll(".horizons-nav__select .page-nav__item")[Symbol.iterator]();!(l=(d=h.next()).done);l=!0){d.value.addEventListener("click",function(){var e=this.querySelector(".page-nav__link");e.classList.contains("active")||(this.parentNode.querySelector(".page-nav__link.active").classList.remove("active"),e.classList.add("active"),this.closest(".horizons-nav__select").querySelector(".select__button span").textContent=this.textContent)})}}catch(e){u=!0,c=e}finally{try{!l&&h.return&&h.return()}finally{if(u)throw c}}var f=new IntersectionObserver(function(e,t){e.forEach(function(e){var t=e.target.getAttribute("id").split("--")[0];e.isIntersecting&&e.intersectionRatio>=0&&document.querySelector(".page-nav__link[href*="+t+"]")&&(document.querySelector(".active")&&document.querySelectorAll(".active").forEach(function(e){e.classList.remove("active")}),document.querySelectorAll(".page-nav__link[href*="+t+"]").forEach(function(e){e.classList.add("active"),e.closest(".horizons-nav__select")&&(e.closest(".horizons-nav__select").querySelector(".select__button span").textContent=e.textContent)}))})},{threshold:0,rootMargin:"-20% 0% -80% 0%"});document.querySelectorAll("main div[id]").forEach(function(e){f.observe(e)}),document.querySelector(".article-actions__trigger").addEventListener("click",function(){this.parentNode.classList.toggle("open"),this.parentNode.classList.contains("open")?this.setAttribute("aria-expanded","true"):this.setAttribute("aria-expanded","false")}),document.addEventListener("click",function(e){var t=document.querySelector(".horizons-nav__select"),i=document.querySelector(".actions-menu");!t.contains(e.target)&&t.classList.contains("open")&&t.classList.remove("open"),!i.contains(e.target)&&i.classList.contains("open")&&i.classList.remove("open")});var p=!0,m=!1,v=void 0;try{for(var g,y=function(){var e=g.value;e.addEventListener("click",function(){this.closest(".article-actions__share-wrapper").classList.contains("active")&&e.closest(".article-actions__share-wrapper").classList.remove("active"),this.closest(".article-actions.open")&&e.closest(".article-actions.open").classList.remove("open")})},b=document.querySelectorAll(".share-panel__link")[Symbol.iterator]();!(p=(g=b.next()).done);p=!0)y()}catch(e){m=!0,v=e}finally{try{!p&&b.return&&b.return()}finally{if(m)throw v}}document.querySelector(".horizons-nav.show-for-small-only .article-actions__print").addEventListener("click",function(){this.closest(".article-actions.open").classList.remove("open")}),document.querySelector(".horizons-nav.show-for-small-only .article-actions__download").addEventListener("click",function(){this.closest(".article-actions.open").classList.remove("open")})}}}},{}],142:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}(),s=e("axios"),r=(n=s)&&n.__esModule?n:{default:n},o=e("./utils");i.default=function(){for(var e=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.container=t,this.title=void 0,this.buttonText=void 0,this.videoPosition=void 0,this.fontColor=void 0,this.endpoint=void 0,this.error=void 0,t&&this.initLandingVideoDynamic()}return a(e,[{key:"initLandingVideoDynamic",value:function(){this.title=this.container.dataset.title,this.buttonText=this.container.dataset.linkText,this.videoPosition=this.container.dataset.layout,this.fontColor=this.container.dataset.fontColor,this.endpoint=this.container.dataset.endpoint,this.API()}},{key:"API",value:function(){var e=this;r.default.post(this.endpoint,Object.assign({},{},{size:this.batchSize,from:1})).then(function(t){return e.renderMarkup(t.data.data[0])}).catch(function(t){console.dir(t),e.error=t,e.handleStatusMessage()})}},{key:"renderMarkup",value:function(e){this.container.insertAdjacentHTML("beforeend",this.getMarkup(e)),this.handleStatusMessage(e)}},{key:"getMarkup",value:function(e){var t="videoRight"===this.videoPosition?"flexbox--medium direction-row-reverse--medium":"";return"\n            "+(this.title?'<div class="wrap">\n                    <div class="col small-12">\n                        <h2 class="text-left tera bold push-double--bottom title-underline soft--bottom">'+this.title+"</h2>\n                    </div>\n                </div>":"")+'\n            <div class="wrap '+t+'">\n                <div class="col small-12 medium-6 push-bottom--small">\n                    '+(e.teaservideoreference?'<div class="video js-video">\n                        <script src="https://woodmac.wistia.com/embed/medias/'+e.teaservideoreference+'.jsonp" async><\/script>\n                        <div class="wistia_responsive_padding js-video__w" style="padding: 56.25% 0 0 0; position: relative;">\n                            <div class="wistia_responsive_wrapper" style="height: 100%; left: 0; position: absolute; top: 0; width: 100%;">\n                                <div class="wistia_embed wistia_async_'+e.teaservideoreference+' videoFoam=true" style="height: 100%; width: 100%">&nbsp;</div>\n                            </div>\n                        </div>\n                    </div>':'<img class="img-overlay__image full-width" src="'+e.img.url+'" alt="'+e.img.alt+'" />')+'\n                </div>\n\n                <div class="col small-12 medium-6">\n                    <time class="beta italic">'+(0,o.formatDate)(e.date)+'</time>\n                    <h3 class="giga bold push-half--bottom">'+e.headline+'</h3>\n                    <div class="editor '+this.fontColor+'">\n                        <p>'+e.teasertext+"</p>\n                    </div>\n                    \n                    "+(this.buttonText?'<a href="'+e.url+'" class="btn btn--primary push--top">'+this.buttonText+"</a>":"")+"\n                </div>\n            </div>"}},{key:"handleStatusMessage",value:function(e){var t=this.container.querySelector(".status");t&&(t.classList.remove("status--searching"),this.error?(t.classList.remove("hide"),t.classList.add("status--error"),t.children[0].textContent="Error"):0===e.length?(t.classList.remove("hide"),t.classList.add("status--empty"),t.children[0].textContent="No results found"):t.classList.add("hide"))}}]),e}(),t=document.querySelectorAll(".js-landing-video-dynamic"),i=0;i<t.length;i++)new e(t[i])}},{"./utils":146,axios:2}],143:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}(),a=e("./utils/index");i.default=function(){var e={WRAPPER:".js-navigation",ITEMS:".js-navigation__item",SECONDARY_NAV:".js-navigation__secondary",FAKE_BG:".js-navigation__fake-bg",OTHER_NAV_HEADERS:".js-toggle__header-group, .js-toggle"},t=null!=document.getElementById("menu-header"),i=function(){function i(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),this.wrapper=t,this.items=[].slice.call(t.querySelectorAll(e.ITEMS)),this.itemsWithNavs=void 0,this.secondaryNavs=void 0,this.otherNavHeaders=void 0,this.fakeBg=void 0,this.activeRow=!1,this.items.length>0&&this.initNavigation()}return n(i,[{key:"initNavigation",value:function(){this.secondaryNavs=[].slice.call(document.querySelectorAll(e.SECONDARY_NAV)),this.otherNavHeaders=[].slice.call(document.querySelectorAll(e.OTHER_NAV_HEADERS)),this.itemsWithNavs=this.items.reduce(function(e,t){return t.firstElementChild.hasAttribute("aria-haspopup")&&e.push(t),e},[]),this.fakeBg=document.querySelector(e.FAKE_BG),t?this.initListeners():this.initLegacyListeners(),this.preventOffscreen(),this.initToggleCart()}},{key:"initListeners",value:function(){var e=this;document.getElementById("menu-header").addEventListener("mouseleave",function(t){e.close()}),document.getElementById("fake-bg").addEventListener("click",function(t){e.close()}),this.itemsWithNavs.forEach(function(t,i){t.addEventListener("click",function(t){if(document.documentElement.classList.contains("on--search-modal")&&document.documentElement.classList.remove("on--search-modal"),document.documentElement.classList.contains("on--accounts")&&document.documentElement.classList.remove("on--accounts"),!Array.from(t.target.classList).some(function(e){return e.startsWith("nav-secondary")})){var n=e.activeRow;!1!==e.activeRow&&e.setInactive(e.activeRow),n===i?e.setInactive(n):e.setActive(i)}})}),this.otherNavHeaders.forEach(function(t){t.addEventListener("click",function(){return e.setInactive(e.activeRow)})}),window.addEventListener("resize",(0,a.debounce)(this.preventOffscreen.bind(this),400))}},{key:"initLegacyListeners",value:function(){var e=this;this.itemsWithNavs.forEach(function(t,i){t.addEventListener("click",function(t){if(document.documentElement.classList.contains("on--search-modal")&&document.documentElement.classList.remove("on--search-modal"),document.documentElement.classList.contains("on--accounts")&&document.documentElement.classList.remove("on--accounts"),!(t.target.classList.contains("nav-secondary")||t.target.classList.contains("nav-secondary__col")||t.target.classList.contains("nav-secondary__title")||t.target.classList.contains("nav-secondary__list"))){var n=e.activeRow;!1!==e.activeRow&&e.setInactiveLegacy(e.activeRow),n===i?e.setInactiveLegacy(n):e.setActiveLegacy(i)}})}),this.otherNavHeaders.forEach(function(t){t.addEventListener("click",function(){return e.setInactive(e.activeRow)})}),this.fakeBg.addEventListener("click",function(){return e.setInactive(e.activeRow)}),window.addEventListener("resize",(0,a.debounce)(this.preventOffscreen.bind(this),400))}},{key:"close",value:function(){var e=this;this.activeRow&&(this.secondaryNavs.forEach(function(e){return e.classList.remove("is--active")}),this.itemsWithNavs.forEach(function(t){e.fakeBg.classList.remove("is--active");var i=t.firstElementChild;i.classList.remove("active"),i&&i.setAttribute("aria-expanded","false"),t.classList.remove("is--active")}),this.activeRow=!1,this.fakeBg.classList.remove("is--active"))}},{key:"setActive",value:function(e){if(this.activeRow!==e){var t=this.itemsWithNavs[e];t.classList.add("is--active");var i=t.firstElementChild;!1!==this.activeRow&&this.setInactive(this.activeRow),this.secondaryNavs.forEach(function(e){return e.classList.remove("is--active")});var n=i.getAttribute("data-target"),a=document.getElementById(n.slice(1));a&&a.classList.add("is--active"),i.classList.add("active"),i&&i.setAttribute("aria-expanded","true"),this.activeRow=e,this.fakeBg.classList.add("is--active")}}},{key:"setInactive",value:function(e){var t=this.itemsWithNavs[e].firstElementChild;this.activeRow=!1,this.secondaryNavs.forEach(function(e){return e.classList.remove("is--active")}),this.itemsWithNavs[e].classList.remove("is--active"),t.classList.remove("active"),t&&t.setAttribute("aria-expanded","false"),this.fakeBg.classList.remove("is--active")}},{key:"setActiveLegacy",value:function(e){if(this.activeRow!==e){var t=this.itemsWithNavs[e].firstElementChild;!1!==this.activeRow&&this.setInactive(this.activeRow),this.itemsWithNavs[e].classList.add("is--active"),t.classList.add("active"),t&&t.setAttribute("aria-expanded","true"),this.activeRow=e,this.fakeBg.classList.add("is--active")}}},{key:"setInactiveLegacy",value:function(e){var t=this.itemsWithNavs[e].firstElementChild;this.activeRow=!1,this.itemsWithNavs[e].classList.remove("is--active"),t.classList.remove("active"),t&&t.setAttribute("aria-expanded","false"),this.fakeBg.classList.remove("is--active")}},{key:"preventOffscreen",value:function(){this.secondaryNavs.forEach(function(e){e.classList.remove("nav-secondary--fixed-left","nav-secondary--fixed-right");var t=e.getBoundingClientRect();t.left<0?e.classList.add("nav-secondary--fixed-left"):t.right>(window.innerWidth||document.documentElement.clientWidth)&&e.classList.add("nav-secondary--fixed-right")})}},{key:"initToggleCart",value:function(){var e=document.getElementById("MarketId"),t=document.getElementById("currencyDropDown"),i=t?t.querySelectorAll("button"):null;null!=i&&i.forEach(function(t){t.addEventListener("click",function(){e.value=t.value,e.form.submit()})})}}]),i}(),s=document.querySelector(e.WRAPPER);s&&new i(s)}},{"./utils/index":146}],144:[function(e,t,i){"use strict";Array.from||(Array.from=function(){var e;try{e=Symbol.iterator?Symbol.iterator:"Symbol(Symbol.iterator)"}catch(t){e="Symbol(Symbol.iterator)"}var t=Object.prototype.toString,i=function(e){return"function"==typeof e||"[object Function]"===t.call(e)},n=Math.pow(2,53)-1,a=function(e){var t=function(e){var t=Number(e);return isNaN(t)?0:0!==t&&isFinite(t)?(t>0?1:-1)*Math.floor(Math.abs(t)):t}(e);return Math.min(Math.max(t,0),n)};return function(t){var n=Object(t),s=i(n[e]);if(null==t&&!s)throw new TypeError("Array.from requires an array-like object or iterator - not null or undefined");var r,o=arguments.length>1?arguments[1]:void 0;if(void 0!==o){if(!i(o))throw new TypeError("Array.from: when provided, the second argument must be a function");arguments.length>2&&(r=arguments[2])}var l=a(n.length);return function(e,t,i,n,a,s){for(var r=0;r<i||a;){var o=n(r),l=a?o.value:o;if(a&&o.done)return t;t[r]=s?void 0===e?s(l,r):s.call(e,l,r):l,r+=1}if(a)throw new TypeError("Array.from: provided arrayLike or iterator has length more then 2 ** 52 - 1");return t.length=i,t}(r,i(this)?Object(new this(l)):new Array(l),l,function(t,i){var n=t&&i[e]();return function(e){return t?n.next():i[e]}}(s,n),s,o)}}()),String.prototype.replaceAll||(String.prototype.replaceAll=function(e,t){return"[object regexp]"===Object.prototype.toString.call(e).toLowerCase()?this.replace(e,t):this.replace(new RegExp(e,"g"),t)})},{}],145:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.default=function(){var e=document.querySelector(".page-nav"),t=document.getElementById("page-nav");if(e||document.querySelector(".horizons-nav__links"))for(var i=document.querySelectorAll(".page-nav__link"),n=0;n<i.length;n++)i[n].addEventListener("click",function(){setTimeout(function(){history.replaceState("",document.title,window.location.origin+window.location.pathname)},5)});var a=function(){return window.innerWidth/parseFloat(getComputedStyle(document.querySelector("body"))["font-size"])},s=a();if(t){var r=document.getElementById("hero-block");r?(r.parentNode.appendChild(t),t.style.display="block"):t.style.display="block";var o=function(){var t=document.querySelector(".breadcrumbs"),i=document.querySelector("header");return r&&t?r.getBoundingClientRect().height+t.getBoundingClientRect().height+i.getBoundingClientRect().height:!r&&t?t.getBoundingClientRect().height+i.getBoundingClientRect().height:e.getBoundingClientRect().top},l=o(),u=function(){return window.scrollY},c=function(){var t=document.querySelector(".page-nav__title"),i=e.querySelector(".left-arrow");if(u()>=l-2){if(e.classList.add("sticky"),document.querySelector("main").classList.add("sticky-subnav"),s>=62.5){var n=new Event("stickySubnav");e.dispatchEvent(n)}if(t&&s>=62.5){var a=window.getComputedStyle(t),r=t.offsetWidth+parseFloat(a.getPropertyValue("margin-right"))+1;i.style.marginLeft=r+"px"}else i.style.marginLeft&&i.style.removeProperty("margin-left")}else{if(e.classList.remove("sticky"),document.querySelector("main").classList.remove("sticky-subnav"),s>=62.5){var o=new Event("nonStickySubnav");e.dispatchEvent(o)}t&&s>=62.5&&i.style.marginLeft&&i.style.removeProperty("margin-left")}};c(),window.addEventListener("scroll",c),window.addEventListener("resize",function(){s=a(),l=o(),u(),c()});var d=e.querySelector(".left-arrow"),h=e.querySelector(".right-arrow"),f=e.querySelector(".subnav-links"),p=function(){return f.scrollWidth},m=p(),v=function(){return f.offsetWidth},g=v(),y=function(){return f.scrollLeft},b=function(){g>=m?h.classList.add("hidden"):h.classList.remove("hidden")};b();window.addEventListener("resize",function(){g=v(),m=p(),b()}),f.addEventListener("scroll",function(){var e,t,i;e=m-g,t=y(),i=e-20,t<=20?(d.classList.add("hidden"),h.classList.remove("hidden")):t<i?(d.classList.remove("hidden"),h.classList.remove("hidden")):t>=i&&(d.classList.remove("hidden"),h.classList.add("hidden"))}),e.addEventListener("stickySubnav",function(){g=v(),b()}),e.addEventListener("nonStickySubnav",function(){g=v(),b()}),h.addEventListener("click",function(){f.scroll({left:y()+230,behavior:"smooth"})}),d.addEventListener("click",function(){f.scroll({left:y()-230,behavior:"smooth"})})}if(e){var w=document.querySelectorAll("main div[id]");window.addEventListener("scroll",function(){var e=window.pageYOffset;w.forEach(function(t){var i=t.offsetHeight,n=s>=62.5?t.offsetTop-188:t.offsetTop-125,a=t.getAttribute("id"),r=document.querySelector(".page-nav__link[href*='"+a+"']");e>n&&e<=n+i&&r?r.classList.add("active"):r&&r.classList.contains("active")&&r.classList.remove("active")})})}}},{}],146:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});i.formatDate=function(e){var t=new Date(e.split(" ")[0]);return t.getUTCDate()+" "+["January","February","March","April","May","June","July","August","September","October","November","December"][t.getMonth()]+" "+t.getFullYear()},i.debounce=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=void 0;return function(n){i&&clearTimeout(i),i=setTimeout(e,t,n)}}},{}],147:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}(),s=e("axios"),r=(n=s)&&n.__esModule?n:{default:n},o=e("./utils");function l(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}i.default=function(){for(var e=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.outerContainer=t,this.container=void 0,this.loadMoreWrapper=void 0,this.loadMoreText=void 0,this.loadMoreButton=void 0,this.endpoint=void 0,this.pinnedEndpoint=void 0,this.state={isFirstAPICall:!0,error:void 0,totalItems:0,from:2,size:1,isLoading:!1},t&&this.initWideCardList()}return a(e,[{key:"initWideCardList",value:function(){var e=this;this.container=this.outerContainer.querySelector(".js-wide-cards-wrapper"),this.loadMoreWrapper=this.outerContainer.querySelector(".js-wide-cards__load-more"),this.loadMoreText=this.outerContainer.querySelector(".js-wide-cards__load-more-text"),this.loadMoreButton=this.outerContainer.querySelector(".js-wide-cards__load-more-btn"),this.endpoint=this.container.getAttribute("data-endpoint"),this.pinnedEndpoint=this.container.getAttribute("data-pinned-endpoint"),this.loadMoreButton.addEventListener("click",function(){e.state.isLoading||e.API()}),this.API()}},{key:"API",value:function(){var e=this;if(this.state.isLoading=!0,this.state.isFirstAPICall&&this.pinnedEndpoint){this.state.isFirstAPICall=!1;var t=r.default.post(this.pinnedEndpoint,Object.assign({},{from:1})),i=r.default.post(this.endpoint,Object.assign({},{from:this.state.from}));Promise.all([t,i]).then(function(t){var i=t[0].data.data,n=t[1].data.data,a=Object.assign({},t[1]);return a.data.data=[].concat(l(i),l(n)),e.state.size=t[1].data.data.length,e.state.from=e.state.from+e.state.size,e.state.isLoading=!1,e.renderMarkup(a)}).catch(function(t){console.dir(t),e.state.isLoading=!1,e.state.error=t,e.handleStatusMessage()})}else r.default.post(this.endpoint,Object.assign({},{},{from:this.state.from})).then(function(t){return e.state.size=t.data.data.length,e.state.from=e.state.from+e.state.size,e.state.isLoading=!1,e.renderMarkup(t)}).catch(function(t){console.dir(t),e.state.isLoading=!1,e.state.error=t,e.handleStatusMessage()})}},{key:"renderMarkup",value:function(e){var t=e.data.data;this.state.totalItems+=t.length;for(var i=0;i<t.length;i++)this.container.insertAdjacentHTML("beforeend",this.getMarkup(t[i]));this.handleStatusMessage(t.length),this.handleLoadMore(e)}},{key:"getMarkup",value:function(e){return'<article class="wide-card flex__equal-height">\n                <div class="col small-12 medium-7 large-8 push-bottom--small">\n                    <div>\n                        <time class="beta italic inline">'+(0,o.formatDate)(e.date)+"</time>\n                        "+(e.readtimevalue>0&&!e.hidereadtimelabel?'<p class="read-time"><span>'+e.readtimevalue+" "+e.readtimelabel+"</span></p>":"")+'\n                    </div>\n                    <h3 class="giga bold push-half--bottom">'+e.headline+'</h3>\n                    <p class="kilo push--bottom">'+e.teasertext+'</p>\n                    <a href="'+e.url+'" class="kilo icon icon--right">Read this issue</a>\n                </div>\n                <div class="col small-12 medium-5 large-4">\n                    '+(!window.document.documentMode&&e.teaservideoreference?'<div class="video js-video">\n                            <script src="https://woodmac.wistia.com/embed/medias/'+e.teaservideoreference+'.jsonp" async><\/script>\n                            <div class="wistia_responsive_padding js-video__w" style="padding: 56.25% 0 0 0; position: relative;">\n                                <div class="wistia_responsive_wrapper" style="height: 100%; left: 0; position: absolute; top: 0; width: 100%;">\n                                    <div class="wistia_embed wistia_async_'+e.teaservideoreference+' videoFoam=true" style="height: 100%; width: 100%">&nbsp;</div>\n                                </div>\n                            </div>\n                        </div>':'<img class="img-overlay__image" src="'+e.img.url+'" alt="'+e.img.alt+'" />')+"\n                </div>\n            </article>"}},{key:"handleLoadMore",value:function(e){this.loadMoreText.textContent="Viewing 1 - "+this.state.totalItems+" of "+(e.data.total-1),this.state.totalItems>=e.data.total-1?this.loadMoreButton.classList.add("hide"):this.loadMoreButton.classList.remove("hide"),this.loadMoreWrapper.classList.remove("hide")}},{key:"handleStatusMessage",value:function(e){var t=this.container.querySelector(".status");t&&(t.classList.remove("status--searching"),this.state.error?(t.classList.remove("hide"),t.classList.add("status--error"),t.children[0].textContent="Error"):0===e?(t.classList.remove("hide"),t.classList.add("status--empty"),t.children[0].textContent="No results found"):t.classList.add("hide"))}}]),e}(),t=document.querySelectorAll(".js-wide-cards__outer-wrapper"),i=0;i<t.length;i++)new e(t[i])}},{"./utils":146,axios:2}],148:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(e("../../constants")),s=e("../../version"),r=e("storm-load"),o=(n=r)&&n.__esModule?n:{default:n};var l=function(e){return e[0].toUpperCase()+e.slice(1)},u=function(e){return e.split("-").join("_").toUpperCase()};i.default=function(e){return function(){document.querySelector(a[u(e)].SELECTOR)&&(0,o.default)(a.PATHS.JS_ASYNC+"/"+(a[u(e)].MODULE||e)+".min.js?v="+s.version).then(function(){return a[u(e)].INIT?a[u(e)].INIT():a[u(e)].MODULE?window[a[u(e)].MODULE](a[u(e)].SELECTOR,a[u(e)].OPTIONS||{}):window[e.split("-").map(l).join("")].init(a[u(e)].SELECTOR,a[u(e)].OPTIONS||{})})}}},{"../../constants":130,"../../version":181,"storm-load":39}],149:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=e("@tarekraafat/autocomplete.js"),s=(n=a)&&n.__esModule?n:{default:n};i.default=function(){var e=document.querySelector("#q");new s.default({data:{src:function(){var e=document.querySelector("#q").value;return fetch("/api/v1/search/autosuggest?term="+e,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}}).then(function(e){return e.json()}).then(function(e){return e.Hits})},key:["Query"],cache:!1},sort:function(e,t){return e.match<t.match?-1:e.match>t.match?1:0},selector:"#q",observer:!0,threshold:2,debounce:300,searchEngine:"strict",resultsList:{destination:"#q",position:"afterend",element:"ul",id:"",className:"autocomplete"},maxResults:5,resultItem:{content:function(e,t){t.innerHTML=e.match},element:"li",id:"",className:"autocomplete__item"},onSelection:function(t){e.value=t.selection.value.Query,e.focus()}});var t=document.querySelector("#search__form");if(t){var i=document.querySelector(".search_icon"),n=document.querySelector(".search-loader");t.addEventListener("submit",function(){i.setAttribute("hidden","true"),n.classList.remove("hide")})}e&&e.addEventListener("keyup",function(e){"Enter"==e.key&&(searchIcon.setAttribute("hidden","true"),searchLoader.classList.remove("hide"),t.submit())})}},{"@tarekraafat/autocomplete.js":1}],150:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.default=function(){function e(e,t){var i=$("li.nav-tabs__item.active");if($(i).find("button").data("target")!==e){if($(i).removeClass("active"),null===t){var n=$('button[data-target="'+e+'"]');$(n).parent().addClass("active")}else $(t).parent().addClass("active");$(".event-tab__container").removeClass("active"),$(e).addClass("active"),$(window).scrollTop(315)}}function t(e){var t=$(e).find(".description-main").height()+50;$(e).hasClass("collapsed")?$(e).css({"max-height":t}):$(e).removeAttr("style")}function i(e){$("#eventOverviewNav").click(),$("html,body").animate({scrollTop:$("#"+e).offset().top-150})}document.querySelector(".event-tab")&&($(".event-tab > li > button").click(function(t){t.preventDefault();var n=$(this).data("target");"registerCTA"===$(this).attr("id")?i(n):e(n,t.target)}),$(".event-anchor").click(function(t){t.preventDefault(),e($(this).attr("href"),null)}),$("button.event-agenda-tab").click(function(e){e.preventDefault();var t=$(this).data("target"),i=$(".event-agenda-tab__container").find("button.active");$(i).data("target")!==t&&($(i).removeClass("active"),$(this).addClass("active"),$(".event-agenda-container").removeClass("active"),$(t).addClass("active"))}),$(document).ready(function(){$(".agenda-session__description > .description-main").each(function(e,t){""==$(t).prop("innerText").trim()&&$(t).parent().next(".description-toggle").hide()})}),$(".agenda-session__description, .description-toggle").click(function(){var e=$(this);$(this).hasClass("agenda-session__description")||(e=$(this).prev(".agenda-session__description")),t(e),$(e).toggleClass("collapsed");var i=$(e).closest(".multi-session-scroll__item").siblings();i.length>0&&i.each(function(i,n){t(e=$(n).find(".agenda-session__description")),$(e).toggleClass("collapsed")})}),$("#registerCTAMobile").click(function(){i($(this).data("target"))}),window.addEventListener("scroll",function(){var e=$("#eventMainTabs"),t=e.hasClass("is--stuck");$(window).scrollTop()<300&&t&&e.removeClass("is--stuck")}))}},{}],151:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=e("../../constants"),a=e("../../kc-implementations/utils");i.default=function(){var e,t,i,s,r,o="data-filter-endpoint",l="data-columns",u="data-filter-batchsize",c=4,d="",h=8,f={ERROR:"error",LOADING:"loading",EMPTY:"empty",SUCCESS:"success"},p={from:1},m=function(e){var t=void 0;return t=1==c?"small-12 small-medium-12":2==c?"small-12 small-medium-6":3==c?"small-12 small-medium-6 large-4":"small-12 small-medium-6 large-4 xlarge-3",'<a href="'+e.url+'" class="col '+t+' push--bottom flexgrid__item bg-white img-overlay tile-link flexgrid__content relative card__content soft-half--bottom">\n        <div class="soft-half--sides soft-half--top bg-white">\n          '+(e.format?'<span class="badge push--bottom">'+e.format+"</span>":"")+'\n          <div>\n              <time class="gamma push-quarter--bottom primary-color italic inline">'+(0,a.formatDate)(e.date)+"</time>\n              "+(e.readtimevalue>0?'<p class="read-time"><span>'+e.readtimevalue+" "+e.readtimelabel+"</span></p>":"")+'\n          </div>\n          <h3 class="alpha title-underline push-half--bottom soft--bottom font-600 tile-link__hover-blue">'+e.headline+'</h3>\n        </div>\n        <div class="soft-half--sides">\n          <p class="push-quarter--bottom">'+e.teasertext+"</p>\n        </div>\n      </a>"},v=function(e){if(s){var t=p.from-1+h;t=t<=e.total?t:e.total,s.textContent="Viewing 1 - "+t+" of "+e.total,t===e.total&&(r.style.display="none")}e.data?e.data.length>0?g(e.data.map(m).join("")):b(f.EMPTY):b(f.ERROR)},g=function(e){t.insertAdjacentHTML("beforeend",e)},y=function(e){e.hasAttribute(o)&&(d=e.getAttribute(o));var t=d.split("/").pop().trim(),i=$("#"+t+" [id^=filter-item-]").toArray().filter(function(e){return e.checked}).map(function(e){return e.value}),n=null;return $.ajax({url:d,type:"post",dataType:"json",data:JSON.stringify({from:p.from,cf:i}),contentType:"application/json; charset=utf-8",async:!1,fail:function(){b(f.ERROR)}}).done(function(e){n=e,b(f.SUCCESS)}),r&&r.removeAttribute("disabled"),n};function b(e){switch(e){case f.ERROR:i.classList.add("status--error"),i.children[0].textContent="Error",i.classList.remove("hide","status--searching");break;case f.EMPTY:i.classList.remove("status--empty"),i.classList.add("status--empty"),i.children[0].textContent="No results found",i.classList.remove("hide","status--searching");break;case f.LOADING:i.classList.add("status--searching"),i.children[0].textContent="Loading...",i.classList.remove("hide");break;default:i.classList.add("hide")}}var w;(w=document.querySelectorAll(n.CARD_LIST.SELECTOR.CONTAINER)).length>0&&Array.from(w).forEach(function(a){e=a.querySelector(n.CARD_LIST.SELECTOR.WRAPPER),t=a.querySelector(n.CARD_LIST.SELECTOR.LIST),i=a.querySelector(n.CARD_LIST.SELECTOR.STATUS),h=Number(e.getAttribute(u)),c=e.getAttribute(l);var o=a.querySelector(n.CARD_LIST.SELECTOR.LOAD_MORE_WRAPPER);o&&(o.classList.remove("hide"),s=o.querySelector(n.CARD_LIST.SELECTOR.QUANTITY_TEXT),(r=o.querySelector(n.CARD_LIST.SELECTOR.LOAD_MORE)).addEventListener("click",function(){p.from=p.from+h,r.setAttribute("disabled","true"),b(f.LOADING),v(y(e))})),v(y(e))})}},{"../../constants":130,"../../kc-implementations/utils":146}],152:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=e("lodash.throttle"),s=(n=a)&&n.__esModule?n:{default:n};i.default=function(){var e=document.querySelector(".carousel.swiper-container.swiper-thumbs"),t=document.querySelector(".swiper-control-left"),i=document.querySelector(".swiper-control-right"),n=function(){return t.style.display="flex"},a=function(){return i.style.display="flex"},r=function(){return t.style.display="none"},o=function(){return i.style.display="none"};if(e){i&&i.addEventListener("click",function(){n(),e.swiper.isEnd?o():(a(),e.swiper.slideNext())}),t&&t.addEventListener("click",function(){e.swiper.isBeginning?r():(n(),e.swiper.slidePrev()),!e.swiper.isEnd&&a()});var l=function(){t&&(e.swiper.isBeginning?r():n()),i&&(e.swiper.isEnd?o():a())},u=(0,s.default)(function(){l()},100),c=void 0;i&&(e.swiper.isEnd?o():a()),window.addEventListener("resize",u),e.addEventListener("pointerup",function(){clearInterval(c),l()}),e.addEventListener("pointerdown",function(){c=setInterval(function(){l()},300)}),e.addEventListener("click",function(){l()})}}},{"lodash.throttle":35}],153:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=e("../../../constants"),a=e("../shared");i.default=function(){var e,t;document.querySelector(n.COOKIE.SELECTOR.CONTAINER)&&!(0,a.getCookie)(n.COOKIE.NAME,n.COOKIE.VALUE)&&(e=document.querySelector(n.COOKIE.SELECTOR.CONTAINER),t=document.querySelector(n.COOKIE.SELECTOR.BTN),e.classList.remove(n.COOKIE.CLASSNAME),n.TRIGGER_EVENTS.forEach(function(i){t.addEventListener(i,function(t){t.keyCode&&!~n.TRIGGER_KEYCODES.indexOf(t.keyCode)||(document.cookie=(0,a.writeCookie)(n.COOKIE.NAME,n.COOKIE.VALUE,n.COOKIE.DOMAIN,n.COOKIE.EXPIRY_DAYS),e.parentNode.removeChild(e))})}))}},{"../../../constants":130,"../shared":157}],154:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=s(e("./banner")),a=s(e("./popup"));function s(e){return e&&e.__esModule?e:{default:e}}i.default=function(){(0,n.default)(),(0,a.default)()}},{"./banner":153,"./popup":155}],155:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=e("../../../constants"),a=e("./lib"),s=e("../shared");i.default=function(){var e=document.querySelector(n.COOKIE.SELECTOR.POPUP);if(e){if((0,a.isMobile)())return e.parentNode.removeChild(e);if(!(0,a.cookiesEnabled)())return e.parentNode.removeChild(e);var t=document.querySelector(n.COOKIE.SELECTOR.POPUP_CLOSE);setTimeout(function(){e.classList.add(n.COOKIE.POPUP.VISIBLE_CLASSNAME)},n.COOKIE.POPUP.TIMEOUT),n.TRIGGER_EVENTS.forEach(function(i){t.addEventListener(i,function(t){t.keyCode&&!~n.TRIGGER_KEYCODES.indexOf(t.keyCode)||(document.cookie=(0,s.writeCookie)(n.COOKIE.POPUP.NAME.DISMISS,"1",n.COOKIE.DOMAIN,3),e.parentNode.removeChild(e))})}),"undefined"!=typeof $$epiforms&&$$epiforms(document).ready(function(){$$epiforms(".popup form").on("formsSubmitted",function(){document.cookie=(0,s.writeCookie)(n.COOKIE.POPUP.NAME.SUBMITTED,"1",n.COOKIE.DOMAIN,n.COOKIE.POPUP.EXPIRY_DAYS.SUBMITTED),e.parentNode.removeChild(e),(window.dataLayer||[]).push({event:n.COOKIE.POPUP.GA_EVENT})})})}}},{"../../../constants":130,"../shared":157,"./lib":156}],156:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});i.isMobile=function(){return!window.matchMedia("(min-width: 768px)").matches},i.cookiesEnabled=function(){try{document.cookie="cookietest=1";var e=-1!==document.cookie.indexOf("cookietest=");return document.cookie="cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT",e}catch(e){return!1}}},{}],157:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});i.getCookie=function(e){var t=document.cookie.split("; ").map(function(e){return{name:e.split("=")[0],value:e.split("=")[1]}}).filter(function(t){return t.name===e});return t.length>0&&t[0]},i.writeCookie=function(e,t,i,n){return e+"="+t+";path=/;domain="+i+";expires="+new Date((new Date).getTime()+24*n*60*60*1e3).toGMTString()+";"}},{}],158:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.default=function(){document.querySelector("button.cvent-event-agenda-tab")&&$("button.cvent-event-agenda-tab").click(function(e){e.preventDefault();var t=$(this).data("target"),i=$(".cvent-event-agenda-tab__container").find("button.active");$(i).data("target")!==t&&($(i).removeClass("active"),$(this).addClass("active"),$(".event-agenda-container").removeClass("active"),$(t).addClass("active"))})}},{}],159:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}();i.default=function(){var e=function(){function e(t,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.gatedContainer=t,this.formGuid=i,this.hasTriggeredTheGatedForm=!1,this.initTrigger()}return n(e,[{key:"initTrigger",value:function(){var e=this;localStorage.getItem("formSubmitted-"+this.formGuid)?document.querySelector("main").classList.remove("gated-container"):window.addEventListener("scroll",function(t){e.handleScrollEvent(t,e.formGuid)})}},{key:"handleScrollEvent",value:function(e){var t=this,i=window.innerHeight,n=document.body.scrollHeight;window.scrollY/(n-i)*100>=40&&!this.hasTriggeredTheGatedForm&&(this.hasTriggeredTheGatedForm=!0,document.getElementById("gatedFormBanner").click(),document.getElementById("gatedFormBanner-close").addEventListener("click",function(e){t.hasTriggeredTheGatedForm=!1}))}}]),e}(),t=document.querySelector(".gated-container");if(t){var i=t.getAttribute("gated-form-guid");new e(t,i)}}},{}],160:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=e("./libs/input-toggle"),s=(n=a)&&n.__esModule?n:{default:n},r=e("../../constants");i.default=function(){document.querySelector(r.INPUT_TOGGLE.SELECTOR)&&(0,s.default)(r.INPUT_TOGGLE.SELECTOR)}},{"../../constants":130,"./libs/input-toggle":161}],161:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n={activeClassName:"active"},a={init:function(){var e=this;if(this.target=this.input.parentNode,!this.target)throw new Error("Input toggle target cannot be found");return this.boundToggle=this.toggle.bind(this),(this.group.length?this.group:[this.input]).forEach(function(t){t.addEventListener("change",e.boundToggle)}),this},toggle:function(){!0===this.input.checked?this.target.classList.add(this.settings.activeClassName):!1===this.input.checked&&this.target.classList.remove(this.settings.activeClassName)}};i.default=function(e,t){var i=[].slice.call(document.querySelectorAll(e));if(!i.length)throw new Error("Input toggle cannot be initialised, no augmentable elements found");[].slice.call(i).map(function(e){return Object.assign(Object.create(a),{input:e,group:e.getAttribute("data-toggle-group")?[].slice.call(document.querySelectorAll("[data-toggle-group="+e.getAttribute("data-toggle-group")+"]")):[],settings:Object.assign({},n,t)}).init()})}},{}],162:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.default=function(){var e=document.getElementById("hero-lightbox-cta-url-one"),t=document.getElementById("hero-lightbox-form-one"),i=document.getElementById("hero-lightbox-cta-url-two"),n=document.getElementById("hero-lightbox-form-two"),a=document.getElementById("hero-lightbox-cta-url-three"),s=document.getElementById("hero-lightbox-form-three");if(null!=t)var r=t.getAttribute("data-anchor-tag"),o=document.getElementsByClassName("js-modal-close js-modal--"+r),l=document.getElementsByClassName("modal__close-btn js-modal--"+r);if(null!=n)var u=n.getAttribute("data-anchor-tag"),c=document.getElementsByClassName("js-modal-close js-modal--"+u),d=document.getElementsByClassName("modal__close-btn js-modal--"+u);if(null!=s)var h=s.getAttribute("data-anchor-tag"),f=document.getElementsByClassName("js-modal-close js-modal--"+h),p=document.getElementsByClassName("modal__close-btn js-modal--"+h);null!=e&&e.addEventListener("click",function(t){(window.dataLayer||[]).push({event:"overlay",overlay_title:e.getAttribute("data-title"),overlay_interaction:"open",link_text:e.getAttribute("data-link-text"),link_url:e.getAttribute("data-link-url")})}),null!=i&&i.addEventListener("click",function(e){(window.dataLayer||[]).push({event:"overlay",overlay_title:i.getAttribute("data-title"),overlay_interaction:"open",link_text:i.getAttribute("data-link-text"),link_url:i.getAttribute("data-link-url")})}),null!=a&&a.addEventListener("click",function(e){(window.dataLayer||[]).push({event:"overlay",overlay_title:a.getAttribute("data-title"),overlay_interaction:"open",link_text:a.getAttribute("data-link-text"),link_url:a.getAttribute("data-link-url")})}),null!=t&&t.addEventListener("click",function(e){(window.dataLayer||[]).push({event:"overlay",overlay_title:t.getAttribute("data-title"),overlay_interaction:"open",link_text:t.getAttribute("data-link-text")})}),null!=n&&n.addEventListener("click",function(e){(window.dataLayer||[]).push({event:"overlay",overlay_title:n.getAttribute("data-title"),overlay_interaction:"open",link_text:n.getAttribute("data-link-text")})}),null!=s&&s.addEventListener("click",function(e){(window.dataLayer||[]).push({event:"overlay",overlay_title:s.getAttribute("data-title"),overlay_interaction:"open",link_text:s.getAttribute("data-link-text")})}),null!=t&&o[0].addEventListener("click",function(e){(window.dataLayer||[]).push({event:"overlay",overlay_title:t.getAttribute("data-title"),overlay_interaction:"close",link_text:t.getAttribute("data-link-text")})}),null!=t&&l[0].addEventListener("click",function(e){(window.dataLayer||[]).push({event:"overlay",overlay_title:t.getAttribute("data-title"),overlay_interaction:"close",link_text:t.getAttribute("data-link-text")})}),null!=n&&c[0].addEventListener("click",function(e){(window.dataLayer||[]).push({event:"overlay",overlay_title:n.getAttribute("data-title"),overlay_interaction:"close",link_text:n.getAttribute("data-link-text")})}),null!=t&&d[0].addEventListener("click",function(e){(window.dataLayer||[]).push({event:"overlay",overlay_title:n.getAttribute("data-title"),overlay_interaction:"close",link_text:n.getAttribute("data-link-text")})}),null!=s&&f[0].addEventListener("click",function(e){(window.dataLayer||[]).push({event:"overlay",overlay_title:s.getAttribute("data-title"),overlay_interaction:"close",link_text:s.getAttribute("data-link-text")})}),null!=s&&p[0].addEventListener("click",function(e){(window.dataLayer||[]).push({event:"overlay",overlay_title:s.getAttribute("data-title"),overlay_interaction:"close",link_text:s.getAttribute("data-link-text")})})}},{}],163:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.default=function(){var e=document.getElementById("hero-lightbox-container");null!=e&&e.addEventListener("click",function(t){e.querySelector('div:has([role="dialog"][aria-hidden="false"])')?e.style.zIndex="99999":e.style.zIndex="400"})}},{}],164:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=e("../../constants"),s=e("../../version"),r=e("storm-load"),o=(n=r)&&n.__esModule?n:{default:n};i.default=function(){(document.querySelector(a.GALLERY.SELECTOR.SCROLLABLE_LINK)||document.querySelector(a.GALLERY.SELECTOR.DATA)||document.querySelector(a.GALLERY.SELECTOR.LINK))&&(0,o.default)(a.PATHS.JS_ASYNC+"/storm-modal-gallery.min.js?v="+s.version).then(function(){var e,t;document.querySelector(a.GALLERY.SELECTOR.DATA)&&(e=document.querySelector(a.GALLERY.SELECTOR.DATA),t=StormModalGallery.init(JSON.parse(e.getAttribute("data-gallery"))),e.addEventListener("click",function(){t.open.call(t,0)})),document.querySelector(a.GALLERY.SELECTOR.LINK)&&StormModalGallery.init(a.GALLERY.SELECTOR.LINK),document.querySelector(a.GALLERY.SELECTOR.SCROLLABLE_LINK)&&StormModalGallery.init(a.GALLERY.SELECTOR.SCROLLABLE_LINK,{scrollable:!0}),document.querySelector(a.GALLERY.SELECTOR.SINGLE)&&StormModalGallery.init(a.GALLERY.SELECTOR.SINGLE,{single:!0})})}},{"../../constants":130,"../../version":181,"storm-load":39}],165:[function(e,t,i){"use strict";var n=document.createElement("STYLE"),a=function(e){n.innerHTML=e};document.getElementsByTagName("HEAD")[0].appendChild(n),document.addEventListener("mousedown",function(){a("*:focus{outline:none !important}")}),document.addEventListener("keydown",function(){a("")})},{}],166:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=e("../../constants");i.default=function(){document.querySelector(n.PARDOT.SELECTOR)&&(window.addEventListener("message",function(e){e.origin===n.PARDOT.ORIGIN&&e.data===n.PARDOT.DATA.COMPLETION&&((window.dataLayer||[]).push({event:n.PARDOT.EVENT_NAME.COMPLETION}),console.log("Pardot form - ",n.PARDOT.DATA.COMPLETION))}),window.addEventListener("message",function(e){if("https://go.woodmac.com"==e.origin&&"formSubmit"==e.data){(window.dataLayer||[]).push({event:"form_conversion",form_request_type:void 0,form_step_number:void 0,form_step_description:void 0}),console.log("Pardot form submitted");var t=document.getElementById("pardot-redirect");if(t){var i=t.getAttribute("data-redirecturl");i&&(window.location.href=i)}}}))}},{"../../constants":130}],167:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=e("../../constants"),s=e("axios"),r=(n=s)&&n.__esModule?n:{default:n};var o=function(e){e.dom.forEach(function(t){t.innerHTML=e.data}),e.canBuy&&e.btns.forEach(function(e){e.removeAttribute(a.PRICE_LOADER.HIDDEN)})};i.default=function(){if(document.querySelector(a.PRICE_LOADER.SELECTOR.CONTAINER)){var e={dom:[].slice.call(document.querySelectorAll(a.PRICE_LOADER.SELECTOR.CONTAINER)),btns:[].slice.call(document.querySelectorAll(a.PRICE_LOADER.SELECTOR.BTN)),data:a.PRICE_LOADER.UNAVAILABLE,canBuy:!1};r.default.get(e.dom[0].getAttribute(a.PRICE_LOADER.DATA.ENDPOINT)).then(function(t){var i;t&&t.data?o(Object.assign({},e,{data:(i=t.data,'<p class="delta uppercase white">From</p>\n                        <h3 class="peta white font-light">'+i+"</h3></div>"),canBuy:!0})):o(e)}).catch(function(t){console.log(t),o(e)})}}},{"../../constants":130,axios:2}],168:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=e("../../constants");i.default=function(){if(document.querySelector(n.PRINT.SELECTOR)){var e=function(e){e.keyCode&&!~n.TRIGGER_KEYCODES.indexOf(e.keyCode)||(e.preventDefault(),window.print())};[].slice.call(document.querySelectorAll(n.PRINT.SELECTOR)).forEach(function(t){n.TRIGGER_EVENTS.forEach(function(i){t.addEventListener(i,e)})})}}},{"../../constants":130}],169:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.default={success:!0,executedAt:"2024-09-06T14:25:19.4497849+00:00",status:200,parameters:{Tags:[],from:0,page:1,rows:30,q:null,hl:!0,sort:0,cf:["pfin003"],sf:[],ssf:[],hidew:!1,showact:!1,showpast:!1,EvergreenContent:!1,EvergreenContentInclusion:null,PinnedContentSearch:!1,FilterOutPinnedContent:!1,MarketingNewsTopics:[],SearchAnyCategory:!1},total:21,data:[{id:"853397004",title:"Lens platform: Metals &amp; Mining",url:"https://www-uat.woodmac.com/lens/metals-and-mining/",teasertext:"Gain a holistic view of the industry with our comprehensive data solution.",type:"Platform",productlist:[],productfindertags:["Global","Sector1"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"-106433884",title:"Metals &amp; Mining Market Services",url:"https://www-uat.woodmac.com/industry/metals-and-mining/mm-market-services-suite/",teasertext:"Metals play a crucial role in a low-carbon future. There is a growing pressure to satisfy emissions targets while meeting the demand for raw materials required to build new renewable technologies.",type:"Suite",productlist:["Coal","Lithium","Aluminium","Bulk Alloys","Noble Alloys","Stainless Steel","Copper","Cobalt","Steel","Cathodes & Precursors","Rare Earths","Lead","Graphite","Zinc","Iron Ore","Nickel","Gold","Electric Vehicle & Battery Supply Chain Service"],productfindertags:["Global","Sector2"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"161495018",title:"M&amp;M Cost Services Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/mm-cost-service-suite/",teasertext:"Metals play a crucial role in a low-carbon future. There is a growing pressure to satisfy emissions targets while meeting the demand for raw materials required to build new renewable technologies.",type:"Suite",productlist:["Coal","Lithium","Aluminium","Copper","Cobalt","Lead","Zinc","Iron Ore","Nickel","Steel"],productfindertags:["NorthAmerica","Sector3"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"1422026713",title:"M&amp;M Concentrates Services Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/mm-concentrates-services-suite/",teasertext:"hhzg6wbwyi The mining industry is increasing efforts to decarbonise, from resource extraction to processing and refining raw materials, to build sustainable and critical infrastructures for a low carbon future. Navigate this ever-evolving industry landscape with a detailed view of metal concentr...",type:"Suite",productlist:["Copper","Lead","Zinc","Nickel","Aluminium "],productfindertags:["Europe","Sector2"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"-1926898972",title:"M&amp;M Smelters &amp; Refineries Cost Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/mm-smelters--refineries-cost-suite/",teasertext:"",type:"Suite",productlist:[],productfindertags:["NorthAmerica","Sector2","Sector3"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"1577947927",title:"Copper Research Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/copper-research-suite/",teasertext:"Receive robust insight on costs, concentrates and refined market forecasts - all driven by the most comprehensive databases available to the industry.",type:"Product",productlist:["Metals & Mining Market Service","Metals & Mining Cost Service","Metals & Mining Concentrates Service","Lens Metals & Mining","Metals & Mining Smelters & Refineries Cost Service"],productfindertags:["Europe","Sector3","Sector1"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"333150416",title:"Bulk Steel Alloys Product Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/bulk-steel-alloys/",teasertext:"Gain clarity of the ferrous alloy industry with our in-depth market research on bulk steel alloys.",type:"Product",productlist:["Metals & Mining Market Service","Lens Metals & Mining"],productfindertags:["Europe","Sector1"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"-526748016",title:"Rare Earths Product Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/rare-earths-research-suite/",teasertext:"Unmatched analysis of the entire rare earths supply chain to help you make smarter, more informed decisions.",type:"Product",productlist:["Metals & Mining Market Service","Lens Metals & Mining"],productfindertags:["Europe","Sector2"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"-882555483",title:"Coal Research Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/coal-research-suite/",teasertext:"Access our integrated outlook on thermal and metallurgical coal markets, as well as detailed mine-level analysis covering more than 1,400 assets.",type:"Product",productlist:["Metals & Mining Market Service","Metals & Mining Cost Service","Metals & Mining Concentrates Service","Lens Metals & Mining"],productfindertags:["Europe","Sector2"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"-476501308",title:"Zinc Research Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/zinc-research-suite/",teasertext:"Guide strategic decisions by understanding market trends and the long-term pricing outlook with our comprehensive Zinc Research Suite at Wood Mackenzie.",type:"Product",productlist:["Metals & Mining Market Service","Metals & Mining Cost Service","Metals & Mining Concentrates Service","Lens Metals & Mining","Metals & Mining Smelters & Refineries Cost Service"],productfindertags:["Global","Sector1","Sector2"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"-231487146",title:"Cathode &amp; Precursor Product Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/cathode-and-precursor-research-suite/",teasertext:"Unmatched analysis of the entire cathode and precursor materials supply chain to help you make smarter, more informed decisions.",type:"Product",productlist:["Metals & Mining Market Service","Lens Metals & Mining"],productfindertags:["Global","Sector1","Sector2"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"-1794596641",title:"Steel Research Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/steel-research-suite/",teasertext:"View the full picture — from costs and availability of raw materials to demand for finished products.",type:"Product",productlist:["Metals & Mining Market Service","Metals & Mining Cost Service","Lens Metals & Mining"],productfindertags:["Asia","Sector3"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"-799368884",title:"Nickel Research Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/nickel-research-suite/",teasertext:"Our Nickel Research Suite provides a global view on production costs, trade flows of ore, concentrates and intermediate materials, refined markets and demand.",type:"Product",productlist:["Metals & Mining Market Service","Metals & Mining Cost Service","Metals & Mining Concentrates Service","Lens Metals & Mining"],productfindertags:["Asia","Sector3"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"1746096852",title:"Stainless Steel Research Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/stainless-steel-research-suite/",teasertext:"Our stainless steel research product gives you access to in-depth analysis of the critical factors driving the industry, including prices, demand and supply.",type:"Product",productlist:["Metals & Mining Market Service"],productfindertags:["Global","Sector3","Sector4"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"36361775",title:"Iron Ore Research Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/iron-ore-research-suite/",teasertext:"Analyse the changing iron ore landscape — from costs to market dynamics and valuations along the entire value chain.",type:"Product",productlist:["Metals & Mining Market Service","Metals & Mining Cost Service","Lens Metals & Mining"],productfindertags:["Global","Sector3","Sector4"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"-305173205",title:"Aluminium Research Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/aluminium-research-suite/",teasertext:"Spot emerging trends, evaluate supply and demand, and seize the next opportunity with our industry-leading analysis.",type:"Product",productlist:["Metals & Mining Market Service","Metals & Mining Cost Service","Metals & Mining Concentrates Service","Lens Metals & Mining","Metals & Mining Smelters & Refineries Cost Service"],productfindertags:["Global","Sector1"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"507930640",title:"Noble Steel Alloys Product Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/noble-steel-alloys/",teasertext:"An unmatched level of noble steel alloys research that gives you the knowledge you need to mitigate risk and capitalise on opportunities.",type:"Product",productlist:["Metals & Mining Market Service","Lens Metals & Mining"],productfindertags:["Global","Sector1"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"837566838",title:"Cobalt Product Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/cobalt/",teasertext:"Comprehensive cobalt market analysis covering the entire cobalt supply chain and major cobalt markets across the globe",type:"Product",productlist:["Metals & Mining Market Service","Metals & Mining Cost Service","Lens Metals & Mining"],productfindertags:["NorthAmerica","Sector3"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"1112779168",title:"Gold Research Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/gold-research-suite/",teasertext:"Our comprehensive Gold Research Suite enables asset benchmarking, strategic investment planning and analysis of the impact of industry trends on mine projects.",type:"Product",productlist:["Metals & Mining Market Service","Lens Metals & Mining"],productfindertags:["NorthAmerica","Sector3"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"611501248",title:"Lead Research Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/lead-research-suite/",teasertext:"Get short term and long term analysis and insights to help mitigate market risk and plan strategic initiatives",type:"Product",productlist:["Metals & Mining Market Service","Metals & Mining Cost Service","Metals & Mining Concentrates Service","Lens Metals & Mining"],productfindertags:["NorthAmerica","Sector3"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="},{id:"1862549522",title:"Lithium Product Suite",url:"https://www-uat.woodmac.com/industry/metals-and-mining/lithium-research-suite/",teasertext:"The greatest depth and breadth of lithium market analysis available today",type:"Product",productlist:[],productfindertags:["NorthAmerica","Sector3"],datatrackingattribute:"eyJldmVudCI6ImNvbXBvbmVudF9jbGljayIsInR5cGUiOiJQcm9kdWN0IEZpbmRlciBDYXJkIENsaWNrIiwidGl0bGUiOiJVUyBDb2FsIEJ1cm4gUmVwb3J0IiwidXJsIjoiaHR0cHM6Ly93d3cud29vZG1hYy5jb20vaW5kdXN0cnkvcG93ZXItYW5kLXJlbmV3YWJsZXMvdXMtY29hbC1idXJuLXJlcG9ydC8iLCJjb250ZW50X3R5cGUiOiJQcm9kdWN0In0="}]}},{}],170:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=e("lodash.throttle"),s=(n=a)&&n.__esModule?n:{default:n};i.default=function(){var e=document.getElementById("product-finder__container"),t=document.getElementById("product-cards__toggle-button"),i=document.getElementById("product-cards"),n=t?t.querySelector("span"):null,a=0,r=[],o=[],l=function(){return window.matchMedia("(max-width:600px)").matches},u=function(){return window.matchMedia("(min-width:600px)").matches},c=function(){return window.matchMedia("(min-width:600px) and (max-width:1099px)").matches},d=function(){return window.matchMedia("(min-width:1100px)").matches},h=function(){var e=o.length;0===e||d()&&e<=6||c()&&e<=4||l()&&e<=3?t.classList.add("hide"):t.classList.remove("hide")},f=function(){i.style.height="auto"},p=function(){u()&&r.length>=4?"true"===i.ariaExpanded?i.style.height="auto":i.style.height="728px":i.style.height="auto"},m=function(){var e=o.slice(0,3),t=o.slice(0,4),n=o.slice(0,6),a=function(){return"true"===i.ariaExpanded};switch(!0){case l()&&!a():b(e.map(y).join("")),g();break;case c()&&!a():b(t.map(y).join("")),g();break;case d()&&!a():b(n.map(y).join("")),g();break;default:b(o.map(y).join("")),g()}(r=Array.from(document.querySelectorAll(".product-card"))).forEach(function(e){e.addEventListener("click",function(e){var t=e.target.closest(".product-card");if(t){var i=t.getAttribute("ga4-component-tracking");if(null!=i){i=window.atob(i);var n=JSON.parse(i);dataLayer.push(n)}}})})};t&&t.addEventListener("click",function(){var e="true"===i.ariaExpanded;i.ariaExpanded=String(!e),n&&(n.textContent=e?"Show all "+a+" products":"Show less products"),u()?p():f(),m(),e&&t.scrollIntoView({behavior:"smooth",block:"end"})});var v=(0,s.default)(function(){h(),m(),l()?f():p()},100),g=function(){Array.from(document.querySelectorAll(".product-card__content-list")).map(function(e){var t=e.nextElementSibling,i=e.textContent.split(",").filter(function(e){return e});t.style.maxWidth=e.offsetWidth+"px",t.style.height="auto",t.style.fontSize="14px",t.style.lineHeight="20px",t.style.fontWeight="400",t.style.wordBreak="break-word";for(var n=0,a=[],s=0;s<i.length;s++){if(t.innerHTML+=i[s]+",",!(t.offsetHeight<=e.offsetHeight)){n--;var r=t.innerHTML.slice(0,-1).lastIndexOf(",");a=t.innerHTML.slice(0,r).split(","),e.innerHTML=t.innerHTML.slice(0,r).replaceAll("&amp;","&");break}n++}0===a.length&&t.innerHTML.trim().split(",");var o=a.filter(function(e){return e});(n=0===o.length?0:i.length-o.length)>0?(t.innerHTML="Plus "+n+" more",t.style.fontSize="11px",t.style.lineHeight="12px"):t.style.display="none"})},y=function(e){var t=e.type,i=e.teasertext,n=e.productlist,a=e.title,s=e.url,r=e.datatrackingattribute,o=t.toLowerCase(),l=n.toString().split(",").map(function(e){return e.trim()}).filter(function(e){return e}).join(", ");return'<a href="'+s+'" role="button" class="product-card product-card--'+o+'" ga4-component-tracking="'+r+'">\n                <header class="product-card__header product-card__header--'+o+'">'+o+'</header>\n                <main class="product-card__main">\n                    <h2>'+a+'</h2>\n                    <p aria-hidden="true">'+i+'</p>\n                </main>\n                <footer class="product-card__footer product-card__footer--'+o+'">\n                    <p aria-hidden="true" class="product-card__content-list">'+(""===l?"Only available as a stand-alone service":l)+'</p>\n                    <p class="product-card__footer product-card__footer__extra-items"></p>\n                </footer>\n            </a>'},b=function(e){i.innerHTML=e};e&&(window.addEventListener("resize",v),window.addEventListener("productCardsFetched",function(e){var s,u,c=e.detail;0!==c.FILTERED_DATA.length?((s=c.FILTERED_DATA)&&(a=s.length,""===n.textContent&&(n.textContent="Show all "+a+" products"),"false"===i.ariaExpanded&&(n.textContent="Show all "+a+" products")),u=c.FILTERED_DATA,b((o=u).map(y).join("")),r=Array.from(document.querySelectorAll(".product-card")),g(),h(),l()?f():p(),m()):t.classList.add("hide")}))}},{"lodash.throttle":35}],171:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=e("../product-card/dummy-data.js"),s=(n=a)&&n.__esModule?n:{default:n};i.default=function(){var e=document.getElementById("cancel-filters"),t=document.getElementById("active-filters"),i=document.getElementById("product-finder-filters-button"),n=document.getElementById("product-filters"),a=document.getElementById("apply-filters"),r=document.getElementById("product-filters-form"),o=document.getElementById("product-finder__container"),l="",u=[],c=[];if(o){l=o.getAttribute("data-filter-endpoint");var d=function(e){return Array.from(document.querySelectorAll(e)).map(function(e){return e.id})};u=d("#product-finder-locations-list .product-finder__input"),c=d("#product-finder-sectors-list .product-finder__input")}var h=Array.from(document.getElementsByClassName("product-finder__input")),f=document.getElementById("product-cards"),p=document.getElementById("product-card__message-container"),m=document.getElementById("product-card__message-text-container"),v=document.getElementById("product-card__message-text"),g=document.getElementById("product-card__loading-state"),y=document.getElementById("product-card__retry-button"),b=document.getElementById("product-count"),w=document.getElementById("product-finder-summary"),E={productData:[],filteredData:[],currentFilters:[],previousFilters:[],activeFiltersOrder:[],hasApiError:!1},S=function(){return window.innerWidth<960},C=function(e,t){e.classList.toggle("hide-section",!t)},T=function(e,t){e.textContent=t},x=function(e,t){C(p,!0),C(y,t),t?(m.className="product-card__error",v.className="product-card__error-text"):(m.className="product-card__empty",v.className="product-card__empty-text"),T(v,e)},L=function(){var e,t;T(b,E.filteredData.length),(e=E.productData,t=e.reduce(function(e,t){return t.productfindertags.forEach(function(t){t&&(e[t]=e[t]?{category:t,count:e[t].count+1}:{category:t,count:1})}),e},{}),Object.values(t)).forEach(function(e){var t=e.category,i=e.count,n=document.getElementById(t+"__results");n&&T(n,i)})},M=function(){h.forEach(function(e){var t=E.activeFiltersOrder.indexOf(e.id);e.checked&&-1===t?E.activeFiltersOrder.push(e.id):e.checked||-1===t||E.activeFiltersOrder.splice(t,1)}),E.activeFiltersOrder.length?t.classList.remove("hide"):t.classList.add("hide"),t.innerHTML='<a href="#" id="reset-filters" class="reset-filters core-branding-cobalt">Reset filters</a>',E.activeFiltersOrder.forEach(function(e){var i=h.find(function(t){return t.id===e});if(i){var n=i.parentElement;if(n){var a=document.createElement("div");a.className="active-filter-pill light-100 bg-core-branding-rich-blue",a.textContent=n.textContent.trim(),a.tabIndex=0,a.addEventListener("click",function(){i.checked=!1,A(),E.previousFilters=E.previousFilters.filter(function(t){return t!==e})}),t.appendChild(a)}}}),document.getElementById("reset-filters").addEventListener("click",O)},_=async function(){C(i,!0),C(p,!1),C(g,!0);try{var e="localhost"===window.location.hostname?s.default:await fetch(l,{method:"POST"}).then(function(e){return e.ok?e.json():Promise.reject("Failed to fetch product data")});E.hasApiError=!1,E.productData=e.data,k()}catch(e){E.hasApiError=!0,C(i,!1),C(w,!1),x("Something went wrong, results couldn't be loaded. Please try again",!0)}finally{C(g,!1)}},k=function(){if(!E.hasApiError){var e={Platform:1,Suite:2,Product:3},t=E.currentFilters.filter(function(e){return c.includes(e)}),i=E.currentFilters.filter(function(e){return u.includes(e)});E.filteredData=E.productData.filter(function(e){var n=0===t.length||t.some(function(t){return e.productfindertags.includes(t)}),a=0===i.length||i.some(function(t){return e.productfindertags.includes(t)});return n&&a}),E.filteredData.sort(function(t,i){return(e[t.type]||0)-(e[i.type]||0)}),E.filteredData.length?(C(f,!0),C(p,!1),C(w,!0)):(C(f,!1),C(w,!1),x("Your filters returned 0 results, please adjust them and try again",!1)),L()}var n=new CustomEvent("productCardsFetched",{detail:{FILTERED_DATA:E.filteredData}});window.dispatchEvent(n)},A=function(){E.currentFilters=h.filter(function(e){return e.checked}).map(function(e){return e.id});var e=E.currentFilters.sort().toString()!==E.previousFilters.sort().toString();a.classList.toggle("btn--primary",e),a.classList.toggle("btn--default",!e),M(),k()},O=function(e){e.preventDefault(),h.forEach(function(e){return e.checked=!1}),A()},I=function(){document.body.classList.toggle("clip"),o.classList.toggle("clip"),n.classList.toggle("hide-below-medium")};o&&(window.addEventListener("load",_),window.addEventListener("resize",function(){n.classList.toggle("hide-below-medium",S())}),y.addEventListener("click",_),r.addEventListener("submit",function(e){e.preventDefault(),E.previousFilters=[].concat(function(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}(E.currentFilters)),A(),S()&&I()}),e.addEventListener("click",function(){h.forEach(function(e){e.checked=E.previousFilters.includes(e.id)}),A(),I()}),i.addEventListener("click",I),h.forEach(function(e){e.addEventListener("click",A),S()||e.addEventListener("click",k)}),document.addEventListener("keydown",function(e){"Enter"===e.key&&e.target.classList.contains("product-finder__checkbox")&&e.target.click(),"Enter"===e.key&&e.target.classList.contains("active-filter-pill")&&e.target.click()}))}},{"../product-card/dummy-data.js":169}],172:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=function(e){void 0!==window.dataLayer&&window.dataLayer.push({socialNetwork:e,socialAction:"Share",socialTarget:window.socialProps.absoluteURL,event:"socialShare"})},a=function(){n("Email")},s=function(){n("Twitter"),window.open("https://twitter.com/share?text="+window.socialProps.encodedTitle+"&url="+window.location.protocol+"//"+window.location.hostname+window.socialProps.encodedURL,"Share on Twitter","status=1,width=600,height=480",!0)},r=function(){n("Facebook"),window.open("https://www.facebook.com/sharer/sharer.php?u="+window.location.protocol+"//"+window.location.hostname+window.socialProps.encodedURL,"facebook-share-dialog","status=1,width=600,height=400,scrollbars=no",!0)},o=function(){n("LinkedIn"),window.open("https://www.linkedin.com/shareArticle?mini=true&url="+window.location.protocol+"//"+window.location.hostname+window.socialProps.encodedURL+"&title="+window.socialProps.encodedTitle+"&summary="+window.socialProps.encodedDescription+"&source=Wood%20Mackenzie","Share on LinkedIn","status=1,height=570,width=520",!0)};i.default=function(){window.socialProps&&(window.shareOnEmail=a,window.shareOnTwitter=s,window.shareOnFacebook=r,window.shareOnLinkedIn=o)}},{}],173:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.default=function(){document.querySelectorAll(".tabbed__block").forEach(function(e){var t=e.querySelectorAll(".tabbed__tabs-list-item"),i=e.querySelectorAll(".tabbed__content-container"),n=e.querySelector(".tabbed__tabs-dropdown select");if(t.length&&i.length&&n){var a=function(a){if(a){t.forEach(function(e){return e.classList.remove("active")}),i.forEach(function(e){return e.classList.remove("active")});var s=e.querySelector('[data-target="'+a+'"]'),r=e.querySelector("#"+CSS.escape(a));s&&s.classList.add("active"),r&&r.classList.add("active"),n.value=a}};e.addEventListener("click",function(e){var t=e.target.closest(".tabbed__tabs-list-item");if(t){var i=t.getAttribute("data-target");a(i)}}),n.addEventListener("change",function(){var e=n.value;a(e)}),e.addEventListener("keydown",function(i){var n=e.querySelector(".tabbed__tabs-list-item.active"),s=Array.from(t).indexOf(n);if("ArrowLeft"===i.key||"ArrowUp"===i.key){i.preventDefault();var r=t[s-1]||t[t.length-1];r.focus(),a(r.getAttribute("data-target"))}else if("ArrowRight"===i.key||"ArrowDown"===i.key){i.preventDefault();var o=t[s+1]||t[0];o.focus(),a(o.getAttribute("data-target"))}else if("Enter"===i.key){var l=i.target.closest(".tabbed__tabs-list-item");if(l){var u=l.getAttribute("data-target");a(u)}}})}})}},{}],174:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.default=function(){var e=document.querySelectorAll(".btn.btn--primary"),t=document.querySelectorAll(".btn.btn--secondary"),i=document.querySelectorAll("a.link"),n=document.querySelectorAll(".editor a"),a=document.querySelectorAll('a[href^="mailto"]'),s=document.querySelectorAll('a[href^="tel"]'),r=document.querySelectorAll(".title-underline");if(e||t){var o=function(e){e.forEach(function(e){var t=e.closest("[class*=bg]");t&&["bg-primary-color","bg-secondary-color","bg-dark-grey-3"].some(function(e){return t.classList.contains(e)})&&!e.classList.contains("btn--dark")&&e.classList.add("btn--light")})};o(e),t.length>0&&o(t)}if(i||a||s){var l=function(e){e.forEach(function(e){var t=e.closest("[class*=bg]");t&&["bg-primary-color","bg-secondary-color","bg-dark-grey-3"].some(function(e){return t.classList.contains(e)})&&!e.classList.contains("link--dark")&&e.classList.add("link--light")})};i.length>0&&l(i),n.length>0&&l(n),a.length>0&&l(a),s.length>0&&l(s)}if(r){!function(e){e.forEach(function(e){var t=e.closest("[class*=bg]");t&&["bg-primary-color","bg-secondary-color","bg-dark-grey-3"].some(function(e){return t.classList.contains(e)})&&!e.classList.contains("title-underline--blue")&&e.classList.add("title-underline--white")})}(r)}}},{}],175:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=e("./libs"),s=(n=a)&&n.__esModule?n:{default:n},r=e("../../constants");var o={GLOBAL:function(){s.default.init(r.TOGGLERS.SELECTOR.GLOBAL)},HEADER_GROUP:function(){var e=s.default.init(r.TOGGLERS.SELECTOR.HEADER_GROUP,{focus:!1,callback:function(){var t=this,i=!this.isOpen;i&&(e.forEach(function(e){e!==t&&e.targetElement!==t.targetElement&&e.isOpen&&(e.toggleAttributes(),e.toggleState())}),this.targetElement.querySelector("#q")&&window.setTimeout(function(){t.targetElement.querySelector("#q").focus()},16)),this.isOpen=i}})},FOCUS:function(){s.default.init(r.TOGGLERS.SELECTOR.FOCUS,{focus:!1,callback:function(){this.isOpen&&window.setTimeout(function(){document.getElementById("q").focus()},16)}})},LOCAL:function(){s.default.init(r.TOGGLERS.SELECTOR.LOCAL,{local:!0,focus:!1})},PROFILE:function(){var e=s.default.init(r.TOGGLERS.SELECTOR.PROFILE,{local:!0,focus:!0,trapTab:!0,callback:function(){var t=this;e.forEach(function(e){e!==t&&e.targetElement!==t.targetElement&&e.isOpen&&(e.toggleAttributes(),e.toggleState())})}})},GROUP:function(){var e=document.querySelector(".js-filter__close"),t=s.default.init(r.TOGGLERS.SELECTOR.GROUP,{local:!0,focus:!1,callback:function(){var i=this;this.isOpen?(e.classList.add("active"),t.forEach(function(e){e!==i&&e.isOpen&&e.toggle()}),this.focusableChildren=this.getFocusableChildren(),this.blurHandler=function(e){window.setTimeout(function(){i.focusableChildren.indexOf(document.activeElement)||i.toggle()},16)},this.focusableChildren.forEach(function(e){e.addEventListener("blur",i.blurHandler)})):this.focusableChildren.forEach(function(e){e.removeEventListener("blur",i.blurHandler)})}});e.addEventListener("click",function(){t.forEach(function(e){e.isOpen&&e.toggle()}),e.classList.remove("active")})}};i.default=function(){["GLOBAL","HEADER_GROUP","FOCUS","LOCAL","GROUP","PROFILE"].forEach(function(e){document.querySelector(r.TOGGLERS.SELECTOR[e])&&o[e]()})}},{"../../constants":130,"./libs":176}],176:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=s(e("./lib/defaults")),a=s(e("./lib/component-prototype"));function s(e){return e&&e.__esModule?e:{default:e}}i.default={init:function(e,t){var i=[].slice.call(document.querySelectorAll(e));if(!i.length)throw new Error("Toggler cannot be initialised, no augmentable elements found");return i.map(function(e){return Object.assign(Object.create(a.default),{btn:e,targetId:(e.getAttribute("href")||e.getAttribute("data-target")).substr(1),settings:Object.assign({},n.default,e.dataset,t)}).init()})}}},{"./lib/component-prototype":177,"./lib/defaults":178}],177:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=["click","keydown"],a=[13,32];i.default={init:function(){var e=this;return this.targetElement=document.getElementById(this.targetId),this.classTarget=this.settings.local?this.targetElement.parentNode:document.documentElement,this.siblingBtns=[].slice.call(document.querySelectorAll('[href="#'+this.targetId+'"], [data-target="#'+this.targetId+'"]')),this.settings.focus&&(this.focusableChildren=this.getFocusableChildren()),this.settings.trapTab&&(this.boundKeyListener=this.keyListener.bind(this)),this.statusClass=this.settings.local?"active":"on--"+this.targetId,this.animatingClass=this.settings.local?"animating":"animating--"+this.targetId,this.siblingBtns.forEach(function(t){t.setAttribute("role","button"),t.setAttribute("aria-controls",e.targetId),t.setAttribute("aria-expanded","false")}),this.form=document.querySelector("#form"),this.toggleBtn=document.querySelector(".btn.js-toggle-local"),this.setStickyFormAttributes(),this.tweakArticleStyling(),window.addEventListener("resize",function(){return e.setStickyFormAttributes()}),n.forEach(function(t){e.btn.addEventListener(t,function(t){t.keyCode&&!~a.indexOf(t.keyCode)||e.toggle(t)})}),this.settings.startOpen&&this.toggle(),this},getFocusableChildren:function(){return[].slice.call(this.targetElement.querySelectorAll(["a[href]","area[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","iframe","object","embed","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(",")))},toggleAttributes:function(){this.isOpen=!this.isOpen,this.siblingBtns.forEach(function(e){e.setAttribute("aria-expanded","true"===e.getAttribute("aria-expanded")?"false":"true")})},toggleState:function(){this.classTarget.classList.remove(this.animatingClass),this.classTarget.classList.toggle(this.statusClass);for(var e=this.classTarget.classList.length-1;e>=0;e--){var t=this.classTarget.classList[e];t.startsWith("on--")&&t!=this.statusClass&&this.classTarget.classList.remove(t)}},manageFocus:function(){var e=this;this.isOpen?(this.settings.trapTab&&document.removeEventListener("keydown",this.boundKeyListener),this.focusableChildren.length&&window.setTimeout(function(){e.lastFocused.focus(),e.lastFocused=!1},this.settings.delay)):(this.lastFocused=document.activeElement,this.focusableChildren.length&&window.setTimeout(function(){return e.focusableChildren[0].focus()},this.settings.delay),this.settings.trapTab&&document.addEventListener("keydown",this.boundKeyListener))},trapTab:function(e){var t=this.focusableChildren.indexOf(document.activeElement);e.shiftKey&&0===t?(e.preventDefault(),this.focusableChildren[this.focusableChildren.length-1].focus()):e.shiftKey||t!==this.focusableChildren.length-1||(e.preventDefault(),this.focusableChildren[0].focus())},keyListener:function(e){this.isOpen&&27===e.keyCode&&(e.preventDefault(),this.toggle()),this.isOpen&&9===e.keyCode&&this.trapTab(e)},toggleStickyForm:function(){var e=this;this.form&&this.form.classList.contains("sticky-form")&&window.innerWidth>=60*parseFloat($("body").css("font-size"))&&(this.classTarget.classList.contains(this.statusClass)?(this.form.classList.remove("is-sticky"),this.form.scrollIntoView(),this.toggleBtn.removeAttribute("title")):(setTimeout(function(){!e.form.classList.contains("is-sticky")&&e.form.classList.add("is-sticky")},200),this.toggleBtn.setAttribute("title","Scroll to the top and open the form")))},setStickyFormAttributes:function(){if(this.form&&this.form.classList.contains("sticky-form")){var e=this.form.parentNode.offsetWidth/12*3-24;window.innerWidth>=60*parseFloat(getComputedStyle(document.querySelector("body"))["font-size"])?(this.form.style.width=e+"px",this.toggleBtn.setAttribute("title","Scroll to the top and open the form")):(this.form.hasAttribute("style")&&this.form.removeAttribute("style"),this.toggleBtn.hasAttribute("title")&&this.toggleBtn.removeAttribute("title"))}},tweakArticleStyling:function(){var e=document.querySelectorAll(".content.featured_article div.col"),t=document.querySelectorAll(".edge_article .module div.col");if(e)for(var i=0;i<e.length;i++)e[i].classList.contains("push-4--large")&&(e[i].classList.remove("push-4--large"),e[0].style.marginTop="1.8rem");if(t)for(var n=0;n<t.length;n++)t[n].classList.contains("push-4--large")&&(t[n].classList.remove("push-4--large"),t[0].style.marginTop="1.8rem")},toggle:function(e){var t=this,i=this.classTarget.classList.contains(this.statusClass)?this.settings.delay:0;this.settings.prehook&&"function"==typeof this.settings.prehook&&this.settings.prehook.call(this),e&&(e.preventDefault(),e.stopPropagation()),this.classTarget.classList.add(this.animatingClass),window.setTimeout(function(){t.settings.focus&&t.focusableChildren&&t.manageFocus(),t.toggleAttributes(),t.toggleState(),t.settings.callback&&"function"==typeof t.settings.callback&&t.settings.callback.call(t),e.target.closest("#form")&&t.toggleStickyForm()},i)}}},{}],178:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.default={delay:0,startOpen:!1,local:!1,prehook:!1,callback:!1,focus:!0,trapTab:!1}},{}],179:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.default=function(){if(document.querySelector("form")){var e=[];[].slice.call(document.querySelector("form").querySelectorAll("input, textarea")).forEach(function(t){t.addEventListener("invalid",function(t){e.push(t.target),window.setTimeout(function(t){window.scrollTo(0,""+(t.offsetTop-190)),e=[]}.bind(null,e[0]),16)})}),"undefined"!=typeof $$epiforms&&$$epiforms(document).ready(function(){var e=function e(t){t.preventDefault(),window.scrollTo(0,window.pageYOffset-190),window.removeEventListener("scroll",e)};$$epiforms(".EPiServerForms").on("formsStepValidating",function(t,i,n){window.addEventListener("scroll",e)})})}}},{}],180:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n,a=e("../../constants"),s=e("storm-load");(n=s)&&n.__esModule;var r=function(){window._wq=window._wq||[],window.OnetrustActiveGroups&&-1!==window.OnetrustActiveGroups.indexOf("C0004")&&window._wq.push(function(e){e.consent(!1)}),_wq.push({id:"_all",onReady:function(e){var t=e.container.parentNode.parentNode.parentNode.querySelector(".js-video__trigger");t.parentNode.classList.add("is--ready"),t.addEventListener("click",function(){t.parentNode.classList.add("is--started"),e.play()})}})},o=function(){[].slice.call(document.querySelectorAll(a.VIDEO.SELECTOR.YOUTUBE)).forEach(function(e){if(!e.getAttribute("data-video-id"))throw new Error("Cannot find data-youtube-id attribute on "+e);if(l(e),window.EPiCookiePro){var t=e.parentElement.getElementsByClassName("blocked-iframe-message")[0];t&&t.setAttribute("hidden","true")}})},l=function(e){var t=window.matchMedia("(prefers-reduced-motion: reduce)"),i=e.getAttribute("data-video-background"),n=e.parentElement.parentElement,a=n.getElementsByClassName("js-video__play")[0],s=n.getElementsByClassName("js-video__mute")[0],r=void 0,o=e.hasAttribute("data-video-disabled-mobile");r=!(o&&window.innerWidth<768)&&("true"==e.getAttribute("data-video-autoplay")&&!t.matches),a&&t.matches&&a.setAttribute("aria-pressed","false");var l={playlist:e.getAttribute("data-video-id"),autoplay:r?1:0,mute:1,loop:1,disablekb:1,controls:0,showinfo:0,modestbranding:1,fs:0,autohide:0,rel:0,enablejsapi:1};return new YT.Player(e.firstElementChild,{height:e.getAttribute("data-video-height")||"360",width:e.getAttribute("data-video-width")||"640",videoId:e.getAttribute("data-video-id"),playerVars:"true"==i?l:{enablejsapi:1},events:{onReady:function(t){e.parentNode.classList.add("is--ready"),e.nextElementSibling&&e.nextElementSibling.addEventListener("click",function(){e.parentNode.classList.add("is--started"),t.target.playVideo()});var n=e.parentNode.getElementsByClassName("js-yt-video-play")[0];if(n&&n.addEventListener("click",function(){t.target.playVideo(),n.classList.add("hide")}),"true"==i){r&&t.target.playVideo(),t.target.isMuted()&&s.setAttribute("aria-pressed","true");var o={isPlaying:"true"==a.getAttribute("aria-pressed")||!1};a.addEventListener("click",function(){o.isPlaying?(t.target.pauseVideo(),a.setAttribute("aria-pressed","false"),o.isPlaying=!1):(e.parentNode.classList.add("is-played"),t.target.playVideo(),a.setAttribute("aria-pressed","true"),o.isPlaying=!0)}),s.addEventListener("click",function(){t.target.isMuted()?(t.target.unMute(),s.setAttribute("aria-pressed","false")):(t.target.mute(),s.setAttribute("aria-pressed","true"))})}}}})};i.default=function(){if(document.querySelector(a.VIDEO.SELECTOR.CONTAINER)){var e=document.querySelectorAll(a.VIDEO.SELECTOR.WISTIA_CUSTOM);e.length>0?([].concat(function(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}(e)).forEach(function(e){!function(e){var t=e.getAttribute("data-video-id"),i=e.getAttribute("data-video-background"),n=e.getAttribute("data-video-options"),a=window.matchMedia("(prefers-reduced-motion: reduce)"),s=e.parentElement.parentElement.getElementsByClassName("js-video__play")[0],r=e.parentElement.parentElement.getElementsByClassName("js-video__mute")[0],o=void 0,l=e.hasAttribute("data-video-disabled-mobile");o=!(l&&window.innerWidth<768||"true"!=e.getAttribute("data-video-autoplay")||a.matches),a.matches&&s&&s.setAttribute("aria-pressed","false");var u={};"true"==i&&(u={autoPlay:o,endVideoBehavior:"loop",fitStrategy:"cover",fullscreenButton:!1,playButton:!1,playbar:!1,playbackRateControl:!1,plugin:{"captions-v1":{onByDefault:!1}},settingsControl:!1,smallPlayButton:!1,qualityControl:!1,volumeControl:!1,controlsVisibleOnLoad:!1,captionsButton:!1,preload:!1}),n&&(u=Object.assign({},u,JSON.parse(n.replaceAll("'",'"')))),window._wq=window._wq||[],window.OnetrustActiveGroups&&-1!==window.OnetrustActiveGroups.indexOf("C0004")&&window._wq.push(function(e){e.consent(!1)}),_wq.push({id:t,options:u,onReady:function(e){i&&e.mute(),o&&e.play(),s&&s.addEventListener("click",function(){"playing"===e.state()?(e.pause(),s.setAttribute("aria-pressed","false")):(e.play(),s.setAttribute("aria-pressed","true"))}),r&&r.addEventListener("click",function(){e.isMuted()?(e.unmute(),r.setAttribute("aria-pressed","false")):(e.mute(),r.setAttribute("aria-pressed","true"))})}})}(e)}),r()):document.querySelector(a.VIDEO.SELECTOR.WISTIA)&&r(),window.InitYoutubeIframe=function(){if((window.OnetrustActiveGroups&&-1!==window.OnetrustActiveGroups.indexOf("C0004")||null==window.EPiCookiePro&&void 0===window.EPiCookiePro)&&document.querySelector(a.VIDEO.SELECTOR.YOUTUBE)){var e=document.createElement("script");e.src="https://www.youtube.com/player_api";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t),window.onYouTubeIframeAPIReady=o}},window.InitYoutubeIframe()}}},{"../../constants":130,"storm-load":39}],181:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});i.version=1730799042206},{}]},{},[129]);;
var setupReadMore = function(e) {

    var items = document.querySelectorAll(".read-more-trigger");
    
    for (var i = 0; i < items.length; i++) {
        var item = items[i];
        
        item.addEventListener('click',
            function (e) {
                e.preventDefault();
                e.stopPropagation();
                
                var target = this.getAttribute("data-trigger");
                var short = document.querySelector("#rm-s-" + target);
                var long = document.querySelector("#rm-l-" + target);
                short.style.display = 'none';
                long.style.display = '';
                return false;
            });
    }

};
setupReadMore();

;
