From 2dee6300b52a27efda4bb65b684e2faa8e1b0138 Mon Sep 17 00:00:00 2001 From: Dylan Cunningham Date: Thu, 13 Jul 2017 14:57:50 -0700 Subject: [PATCH 1/6] module one complete --- .DS_Store | Bin 0 -> 6148 bytes index.html | 11 - jquery-3.2.1.js | 10253 ++++++++++++++++++++++++++++++++++++++++++++++ playlist.css | 120 + playlist.html | 64 + splash.css | 122 + splash.html | 68 + splash.js | 34 + 8 files changed, 10661 insertions(+), 11 deletions(-) create mode 100644 .DS_Store delete mode 100644 index.html create mode 100644 jquery-3.2.1.js create mode 100644 playlist.css create mode 100644 playlist.html create mode 100644 splash.css create mode 100644 splash.html create mode 100644 splash.js diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..80c38c7d0631a733852856080a81def7c8595227 GIT binary patch literal 6148 zcmeHKOHKnZ47H()qHek@yBvYuAgYEfn_d8E2El^SRJ5}X2jEKFg6kljKSdpp1sf1T zwv;?4u^rEoCW(oNH)FRZS`yJ5O^`*Yh)h?P&fItgWQ{S>6SZ_l`^WoApuadJxnCe_ z - - - - - - - - - - diff --git a/jquery-3.2.1.js b/jquery-3.2.1.js new file mode 100644 index 0000000..d2d8ca4 --- /dev/null +++ b/jquery-3.2.1.js @@ -0,0 +1,10253 @@ +/*! + * jQuery JavaScript Library v3.2.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2017-03-20T18:59Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + + + + function DOMEval( code, doc ) { + doc = doc || document; + + var script = doc.createElement( "script" ); + + script.text = code; + doc.head.appendChild( script ).parentNode.removeChild( script ); + } +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.2.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); + }, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE <=9 - 11, Edge 12 - 13 + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.3 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-08-08 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true && ("form" in elem || "label" in elem); + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + disabledAncestor( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9-11, Edge + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( el ) { + el.className = "i"; + return !el.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + }); + + // ID filter and find + if ( support.getById ) { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( el ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll(":enabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll(":disabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !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 || support.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, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "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; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( (oldCache = uniqueCache[ key ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( el ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Simple selector that can be filtered directly, removing non-Elements + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + // Complex selector, compare the two sets, removing non-Elements + qualifier = jQuery.filter( qualifier, elements ); + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; + } ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // 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". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ 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; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // 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( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && 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 dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( nodeName( elem, "iframe" ) ) { + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], 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" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( jQuery.isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + 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; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && jQuery.isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( jQuery.isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + 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( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // 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, + + // 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; + } + + // 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 ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ jQuery.camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ jQuery.camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( jQuery.camelCase ); + } else { + key = jQuery.camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + 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(); + startLength--; + } + + 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 ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +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 ); + } ); + }, + 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-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + jQuery.contains( elem.ownerDocument, elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, + scale = 1, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + do { + + // If previous iteration zeroed out, double until we get *something*. + // Use string for doubling so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + initialInUnit = initialInUnit / scale; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Update scale, tolerating zero or NaN from tween.cur() + // Break the loop if scale is unchanged or perfect, or if we've just had enough. + } while ( + scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations + ); + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); + +var rscriptType = ( /^$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); +var documentElement = document.documentElement; + + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 only +// See #13393 for more info +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + 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 elem; + } + + 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 elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + 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; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, 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 + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = 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" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // 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: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( 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; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // 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; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.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 ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + 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 + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = 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; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: jQuery.isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, 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.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // 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; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/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; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, 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 ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( ">tbody", elem )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + 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 ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + 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 access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + 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() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rmargin = ( /^margin/ ); + +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + div.style.cssText = + "box-sizing:border-box;" + + "position:relative;display:block;" + + "margin:auto;border:1px;padding:1px;" + + "top:1%;width:50%"; + div.innerHTML = ""; + documentElement.appendChild( container ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = divStyle.marginLeft === "2px"; + boxSizingReliableVal = divStyle.width === "4px"; + + // Support: Android 4.0 - 4.3 only + // Some styles come back with percentage values, even though they shouldn't + div.style.marginRight = "50%"; + pixelMarginRightVal = divStyle.marginRight === "4px"; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + + "padding:0;margin-top:1px;position:absolute"; + container.appendChild( div ); + + jQuery.extend( support, { + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelMarginRight: function() { + computeStyleTests(); + return pixelMarginRightVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a property mapped along what jQuery.cssProps suggests or to +// a vendor prefixed property. +function finalPropName( name ) { + var ret = jQuery.cssProps[ name ]; + if ( !ret ) { + ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; + } + return ret; +} + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i, + val = 0; + + // If we already have the right measurement, avoid augmentation + if ( extra === ( isBorderBox ? "border" : "content" ) ) { + i = 4; + + // Otherwise initialize for horizontal or vertical properties + } else { + i = name === "width" ? 1 : 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // At this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + + // At this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // At this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with computed style + var valueIsBorderBox, + styles = getStyles( elem ), + val = curCSS( elem, name, styles ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test( val ) ) { + return val; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && + ( support.boxSizingReliable() || val === elem.style[ name ] ); + + // Fall back to offsetWidth/Height when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + if ( val === "auto" ) { + val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ]; + } + + // 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, + styles + ) + ) + "px"; +} + +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; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": 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: { + "float": "cssFloat" + }, + + // 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 ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + if ( type === "number" ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // 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 ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } 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, extra, styles ) { + var val, num, hooks, + origName = jQuery.camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + 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, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + } ) : + getWidthOrHeight( elem, name, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = extra && getStyles( elem ), + subtract = extra && augmentWidthOrHeight( + elem, + name, + extra, + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ); + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ name ] = value; + value = jQuery.css( elem, name ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// 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 = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; 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; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +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 || jQuery.easing._default; + 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 ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + 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; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // 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, "" ); + + // 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 available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// 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.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = jQuery.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + 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; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + 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() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 13 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +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 ( Array.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 won't overwrite existing keys. + // Reusing 'index' 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; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + 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; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + 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 = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( jQuery.isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + jQuery.proxy( result.stop, result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( 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 + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + 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.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).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, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + 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 = dataPriv.get( 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 ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +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" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// 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.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // 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; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnothtmlwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnothtmlwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( type === "string" ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = value.match( rnothtmlwhite ) || []; + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + 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; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.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 ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !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 ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // 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( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // 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 ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && 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) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === 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( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + 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 ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +} ); + +jQuery.fn.extend( { + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +} ); + + + + +support.focusin = "onfocusin" in window; + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = jQuery.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.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 { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? 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 ); + } +} + +// 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, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = jQuery.isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.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( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* 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 = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// 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, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// 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 ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - 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; + + // 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 + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else 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.unshift( tmp[ 1 ] ); + } + 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 + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // 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: { + url: true, + context: true + } + }, + + // 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 ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + 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 transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 13 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // 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 ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available, append data to url + if ( s.data ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // 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 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 || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // 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 ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.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; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // 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[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + 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( isSuccess ? "ajaxSuccess" : "ajaxError", + [ 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" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +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; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + "throws": true + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( jQuery.isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + 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.firstElementChild ) { + elem = elem.firstElementChild; + } + + 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( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.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 ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + + + + +
+

click an album to add its tracks to the bin

+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+

clear tracks

+
+
+
+
+

submit bin

+
+ +
+
+ +
+ +
+ + + + diff --git a/splash.css b/splash.css new file mode 100644 index 0000000..a2ec496 --- /dev/null +++ b/splash.css @@ -0,0 +1,122 @@ +body{ + box-sizing: border-box; + top:-8px; + left:-8px; + position: relative; +} + +.test { + height:100px; + width:100px; + background-color: black; +} + +/*// ----------- SPLASH PAGE -----------//*/ + +.header { + width: 100%; + height: 60px; + background-color: lightgrey; + position: fixed; + /*opacity: 50%;*/ + z-index: 1; +} + +.footer { + width: 100%; + height: 60px; + background-color: grey; + position: fixed; + bottom: 0px; +} + +.footerdiv{ + margin-left: 50px; + margin-top: -15px; +} +.footertext{ + font-size: 2em; + font-variant: small-caps; + font-family: helvetica; + color: white; +} + + + +.containerleft { + width:50%; + height:100vh; + background-color: #f3f3f3; + display: inline-block; + margin: 0px; + postion: relative; +} + +.containerright { + width:50%; + height:100vh; + /*background-color: blue;*/ + background-image: url("./resources/track.jpg"); + opacity: 0.5; + background-size: cover; + display: inline-block; + margin: 0px; + float: right; + z-index: -1 +} + +.trackbin{ + position: absolute; + /*background-color: black;*/ + top: 40%; + left: 20%; + +} +h1{ + font-size: 4.5em; + color:brown; + font-family: helvetica; + margin: 0px; +} + +.trackbutton{ + background-color: #2e1503; + height: 100px; + width: 19em; + position:relative; + border-radius: 5%; +} + +.choosetracks{ + position: absolute; + /*top: 5%;*/ + text-align: center; + margin-left: 38px; + font-size: 2em; + /*font-variant: small-caps;*/ + font-family: helvetica; + color: white; +} + +.album{ + width: 330px; + /*background-color:blue;*/ + height: 330px; + margin-left: auto; + margin-right:auto; + margin-top:30px; + margin-bottom:30px; +} + +.top{ + background-color: red; + margin-top: 90px; +} + +.middle{ + background-color: blue; +} + +.bottom{ + background-color: pink; +} diff --git a/splash.html b/splash.html new file mode 100644 index 0000000..5723a86 --- /dev/null +++ b/splash.html @@ -0,0 +1,68 @@ + + + + + Splash Landing Page + + + + + + +
+
+ +
+ + + +
+
+

track bin

+
+ +

choose tracks

+
+
+
+ + + +
+
+ +
+
+ +
+
+ +
+ + + +
+ + + + + + + + +
+ + + + + + + diff --git a/splash.js b/splash.js new file mode 100644 index 0000000..5da553d --- /dev/null +++ b/splash.js @@ -0,0 +1,34 @@ +function readyFn( jQuery ) { + console.log("here we go") + + + + + + +console.log($(".test")); + + + + + + + + + + + + + + + + + + + + + + +} + +$( window ).on( "load", readyFn ); From 4c1e89c204bd5910c80df23f1631372d89e36fbe Mon Sep 17 00:00:00 2001 From: Dylan Cunningham Date: Fri, 14 Jul 2017 10:23:31 -0700 Subject: [PATCH 2/6] module 2 and module 3 completed --- .DS_Store | Bin 6148 -> 6148 bytes 21.jpg | Bin 0 -> 13417 bytes ghost_in_the_machine.jpg | Bin 0 -> 55650 bytes playlist.css | 33 +++++++++++++++-- playlist.html | 25 +++++++------ playlist.js | 74 +++++++++++++++++++++++++++++++++++++++ red.jpg | Bin 0 -> 26891 bytes splash.css | 55 ++++++++++++++++++++++++----- splash.html | 8 ++--- splash.js | 50 ++++++++++++++++---------- the_division_bell.jpg | Bin 0 -> 69601 bytes thriller.jpg | Bin 0 -> 19839 bytes thriller.png | Bin 0 -> 138262 bytes 13 files changed, 199 insertions(+), 46 deletions(-) create mode 100644 21.jpg create mode 100644 ghost_in_the_machine.jpg create mode 100644 playlist.js create mode 100644 red.jpg create mode 100644 the_division_bell.jpg create mode 100644 thriller.jpg create mode 100644 thriller.png diff --git a/.DS_Store b/.DS_Store index 80c38c7d0631a733852856080a81def7c8595227..7de72459364e44ab352a84cb036dcc6f476f9693 100644 GIT binary patch delta 130 zcmZoMXfc@JFUroqz`)4BAi%(o%21qAoSc)CpPw^%BjfU5kPI6`CPOYmB11Z|EKoTE tJ5V^EA(uBX6N|J4*=V!AJ_l@ delta 51 zcmZoMXfc@JFUrEez`)4BAi%&-%233R%#g}ZoRdD8k!d+2%j64;Vw+1CC$mj#2-?if H@s}R}Ar}o5 diff --git a/21.jpg b/21.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1b18041d5388dccfb1ee434020ea67f0e5c6fb5d GIT binary patch literal 13417 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 Lp*auyGxh%fc>Xb} literal 0 HcmV?d00001 diff --git a/playlist.css b/playlist.css index 2663a26..2ca2daf 100644 --- a/playlist.css +++ b/playlist.css @@ -32,7 +32,7 @@ body{ .footerdiv{ margin-left: 50px; - margin-top: -15px; + margin-top: -20px; } .footertext{ font-size: 2em; @@ -48,6 +48,11 @@ h1{ /*margin: 0px;*/ margin-top: 80px; margin-left: 140px; + font-weight: 200; +} + +img{ + margin-right: 70px; } .albumscroll{ @@ -64,6 +69,8 @@ h1{ /*background-color: blue;*/ height:150px; width: 100%; + overflow: auto; + white-space: nowrap; } .album{ height: 100px; @@ -84,7 +91,7 @@ h1{ .greybox{ background-color: lightgray; border:3px solid black; - height: 300px; + /*height: 300px;*/ } .buttons{ @@ -104,13 +111,13 @@ h1{ .buttontext{ font-size: 2em; - font-variant: small-caps; font-family: helvetica; color: white; margin-left: auto; margin-right: auto; text-align: center; margin-top: 15px; + font-weight: 200; } .center { @@ -118,3 +125,23 @@ margin-left: auto; margin-right: auto; display: relative; } + +h4{ + font-family: helvetica; + font-size: 2em; + margin-left: 20px; + margin-top: 5px; + margin-bottom: 0px; + padding: 0; +} + + +.flex-container { + display: flex; + flex-direction: column; + min-height: 300px; +} + +.texthere { + flex: 1; +} diff --git a/playlist.html b/playlist.html index bf9efc8..18deb45 100644 --- a/playlist.html +++ b/playlist.html @@ -2,14 +2,14 @@ - Splash Landing Page + Splash Playlist Page - +
@@ -17,20 +17,23 @@

click an album to add its tracks to the bin

-
-
-
-
-
-
-
-
+
-
+
+
+ +
diff --git a/playlist.js b/playlist.js new file mode 100644 index 0000000..95fc330 --- /dev/null +++ b/playlist.js @@ -0,0 +1,74 @@ +function readyFn( jQuery ) { + console.log("here we go") + + // function to generate 3 nonequal random nums. n=how many elements you want the array to generate // + function getXRandomInts(min, max, n) { + array = []; + while (array.length < n){ + var num = Math.floor(Math.random() * (max - min + 1)) + min; + if (num !== array[0] && num !== array[1]){ + array.push(num); + } + } + return array; + } + + + + + + // loads pics on splash page with page loading as the event listener + $( document ).ready( function() { + // lets get the info from the api + $.get('https://lit-fortress-6467.herokuapp.com/object', function(data){ + console.log(data); + var counter = 0; + while (counter < 5) { + for (var i=0; i<(data['results'].length); i++) { + var albumName = data['results'][i]['cover_art']; + var newImg = new Image(130,130); + // var newImg = document.createElement('img'); + newImg.src = albumName; + $(".albumholder").append(newImg); + } + counter ++; + } + var selectedArtTit; + var allImg = $('img') + $(allImg).click(function(event){ + var albumMatch = ($(this).attr('src')); + console.log(albumMatch) + var drillAlbumName = data['results'][j]; + for (var j=0; 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 literal 0 HcmV?d00001 diff --git a/splash.css b/splash.css index a2ec496..d7ea130 100644 --- a/splash.css +++ b/splash.css @@ -20,6 +20,7 @@ body{ position: fixed; /*opacity: 50%;*/ z-index: 1; + border-bottom: 1px solid darkgrey; } .footer { @@ -32,7 +33,7 @@ body{ .footerdiv{ margin-left: 50px; - margin-top: -15px; + margin-top: -20px; } .footertext{ font-size: 2em; @@ -41,8 +42,6 @@ body{ color: white; } - - .containerleft { width:50%; height:100vh; @@ -56,13 +55,25 @@ body{ width:50%; height:100vh; /*background-color: blue;*/ - background-image: url("./resources/track.jpg"); - opacity: 0.5; - background-size: cover; + /*opacity: 0.19;*/ display: inline-block; margin: 0px; float: right; - z-index: -1 + position: relative; +} + +.containerright:after{ + content:''; + display: inline-block; + background-size: cover; + background-image: url("./resources/track.jpg"); + width:100%; + height:100vh; + position:absolute; + top:0; + left:0; + opacity:0.19; + float: right; } .trackbin{ @@ -74,7 +85,7 @@ body{ } h1{ font-size: 4.5em; - color:brown; + color:#4B0082; font-family: helvetica; margin: 0px; } @@ -96,6 +107,8 @@ h1{ /*font-variant: small-caps;*/ font-family: helvetica; color: white; + font-weight: 200; + } .album{ @@ -108,15 +121,39 @@ h1{ margin-bottom:30px; } -.top{ +.top { background-color: red; margin-top: 90px; + opacity: 1; + position: relative; + z-index: 1; } +#toppic, #midpic, #botpic{ + margin-top: 0px; + opacity: 1; + position: relative; + z-index: 1; + src: url('./images/red.jpg'); + width: 330px; + height: 330px; +} + + + + + + .middle{ background-color: blue; + opacity: 1; + position: relative; + z-index: 1; } .bottom{ background-color: pink; + opacity: 1; + position: relative; + z-index: 1; } diff --git a/splash.html b/splash.html index 5723a86..af3c7e7 100644 --- a/splash.html +++ b/splash.html @@ -25,7 +25,7 @@

track bin

choose tracks

-
+
@@ -33,13 +33,13 @@

choose tracks

- +
- +
- +
diff --git a/splash.js b/splash.js index 5da553d..29caf7e 100644 --- a/splash.js +++ b/splash.js @@ -1,34 +1,46 @@ function readyFn( jQuery ) { console.log("here we go") + // function to generate 3 nonequal random nums. n=how many elements you want the array to generate // + function getXRandomInts(min, max, n) { + array = []; + while (array.length < n){ + var num = Math.floor(Math.random() * (max - min + 1)) + min; + if (num !== array[0] && num !== array[1]){ + array.push(num); + } + } + return array; + } + // loads pics on splash page with page loading as the event listener + $( document ).ready( function() { + // lets get the info from the api + $.get('https://lit-fortress-6467.herokuapp.com/object', function(data){ +// define a variable that is an array of 3 random numbers between 0-4. + var randoArray = getXRandomInts(0,4,3) - -console.log($(".test")); - - - - - - - - - - - - - - - - +// now we assign each of the random array elements to an independent variable + var albumName1 = data['results'][randoArray[0]]['cover_art']; + var albumName2 = data['results'][randoArray[1]]['cover_art']; + var albumName3 = data['results'][randoArray[2]]['cover_art']; +// we use these variables as the src that we set each attribute for the src, for each of the three images, respectively. + $('#toppic').attr("src",albumName1); + $('.top').css('background-size', 'cover') + $('#midpic').attr("src",albumName2); + $('.top').css('background-size', 'cover') + $('#botpic').attr("src",albumName3); + $('.top').css('background-size', 'cover') + }) + }) } - +// this is the end of the ready function we always run with jQuery. $( window ).on( "load", readyFn ); diff --git a/the_division_bell.jpg b/the_division_bell.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9dd63b3e0139896f6caea9da5993837bd8daa8b3 GIT binary patch literal 69601 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 literal 0 HcmV?d00001 diff --git a/thriller.jpg b/thriller.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d1033385ea6210a7fdbd8b102845844def24c384 GIT binary patch literal 19839 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 O8&Cp(6auk8fB)I}2M*`} literal 0 HcmV?d00001 diff --git a/thriller.png b/thriller.png new file mode 100644 index 0000000000000000000000000000000000000000..3e8fb61b1da5af8e38f122657cb86292c8f473be GIT binary patch literal 138262 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 Date: Fri, 14 Jul 2017 11:00:55 -0700 Subject: [PATCH 3/6] module 4 completed --- playlist.js | 97 +++++++++++++++++++++++------------------------------ 1 file changed, 42 insertions(+), 55 deletions(-) diff --git a/playlist.js b/playlist.js index 95fc330..fd1638a 100644 --- a/playlist.js +++ b/playlist.js @@ -1,74 +1,61 @@ function readyFn( jQuery ) { console.log("here we go") - // function to generate 3 nonequal random nums. n=how many elements you want the array to generate // - function getXRandomInts(min, max, n) { - array = []; - while (array.length < n){ - var num = Math.floor(Math.random() * (max - min + 1)) + min; - if (num !== array[0] && num !== array[1]){ - array.push(num); + + function getRandomLookingArray(min, max, n) { + // n is the number of elements in array + // min is the minimum possible value + // max is the max posible value + array = []; + while (array.length < n){ + var num = Math.floor(Math.random() * (max - min + 1)) + min; + if (num !== array[array.length-1] && num !== array[array.length-2] ){ + array.push(num); } } return array; } - - - - // loads pics on splash page with page loading as the event listener + // populates the album divs on page load $( document ).ready( function() { // lets get the info from the api $.get('https://lit-fortress-6467.herokuapp.com/object', function(data){ - console.log(data); - var counter = 0; - while (counter < 5) { - for (var i=0; i<(data['results'].length); i++) { - var albumName = data['results'][i]['cover_art']; - var newImg = new Image(130,130); - // var newImg = document.createElement('img'); - newImg.src = albumName; - $(".albumholder").append(newImg); - } - counter ++; - } - var selectedArtTit; - var allImg = $('img') - $(allImg).click(function(event){ - var albumMatch = ($(this).attr('src')); - console.log(albumMatch) - var drillAlbumName = data['results'][j]; - for (var j=0; js + // click event for when any img gets clicked + $(allImg).click(function(event){ + // this variable stores the data that allows our loop to identify which object is clicked upon. + var albumMatch = ($(this).attr('src')); + // now that we have the data to compare against, let's find the matching src info from an object in our loop + for (var j=0; j to append in our grey box + var infoToAppend = document.createElement('h4'); + // set that

's inner text to selectedArtTit' + infoToAppend.innerText = selectedArtTit; + // now append it to the flex-container that's classed as .texthere + $('.texthere').append(infoToAppend); + }) }) - }) + }) } - - - - - - - - - - - // this is the end of the ready function we always run with jQuery. $( window ).on( "load", readyFn ); From 7ab60dcf8e9792d89b4a8eddb07b2a447c7c3ca7 Mon Sep 17 00:00:00 2001 From: Dylan Cunningham Date: Fri, 14 Jul 2017 13:30:00 -0700 Subject: [PATCH 4/6] module 5 completed --- playlist.js | 77 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 63 insertions(+), 14 deletions(-) diff --git a/playlist.js b/playlist.js index fd1638a..a971fe9 100644 --- a/playlist.js +++ b/playlist.js @@ -1,7 +1,9 @@ function readyFn( jQuery ) { console.log("here we go") + var collection = {}; + // Here is a function we'll call later function getRandomLookingArray(min, max, n) { // n is the number of elements in array // min is the minimum possible value @@ -17,45 +19,92 @@ function readyFn( jQuery ) { } - // populates the album divs on page load + // populates the album covers on page load $( document ).ready( function() { // lets get the info from the api $.get('https://lit-fortress-6467.herokuapp.com/object', function(data){ + // let's make an array of 15 numbers that doesn't look repetitive at a glance + var randomLookingArray = getRandomLookingArray(0,4,15); + // this loop is appending new images to the .albumholder div in a way that doesn't look repetitive at a glance + for (var i=0; is + + // click event for when any img gets clicked - $(allImg).click(function(event){ + $($('img')).click(function(event){ + console.log('clickworks') // this variable stores the data that allows our loop to identify which object is clicked upon. var albumMatch = ($(this).attr('src')); + console.log(albumMatch) // now that we have the data to compare against, let's find the matching src info from an object in our loop for (var j=0; j to append in our grey box var infoToAppend = document.createElement('h4'); // set that

's inner text to selectedArtTit' infoToAppend.innerText = selectedArtTit; // now append it to the flex-container that's classed as .texthere $('.texthere').append(infoToAppend); + // console.log(collection); }) }) }) + + + + + // the button to clear the artist: album info in greybox + $('.cleartracks').click(function(event){ + $('.texthere').empty(); + }) + + $('.submitbin').click(function(event){ + // $.post('https://lit-fortress-6467.herokuapp.com/post', function(){ + // console.log('posted to api') + // }) + console.log("sending to API: "); + console.log(collection) + $.ajax({ + type: "POST", + url: "https://lit-fortress-6467.herokuapp.com/post", + data: JSON.stringify(collection), + contentType: "application/json; charset=utf-8", + success: alert('success'), + dataType: "json", + + }); + }) + + + + + + + + + + + } // this is the end of the ready function we always run with jQuery. $( window ).on( "load", readyFn ); From d0f9a228a47d471c478bf5f30644c62f24e9c8cc Mon Sep 17 00:00:00 2001 From: Dylan Cunningham Date: Fri, 14 Jul 2017 15:01:04 -0700 Subject: [PATCH 5/6] final details push --- .DS_Store | Bin 6148 -> 8196 bytes album-api.html | 10 +++ apistuff folder/444.jpg | Bin 0 -> 9091 bytes apistuff folder/boomiverse.jpg | Bin 0 -> 29030 bytes apistuff folder/crackup.jpg | Bin 0 -> 25781 bytes apistuff folder/dylanapi | 1 + apistuff folder/dylanapi.html | 1 + apistuff folder/goodkidmaadcity.jpg | Bin 0 -> 21151 bytes apistuff folder/nevaleft.jpg | Bin 0 -> 29544 bytes apistuff folder/okcomputer.jpg | Bin 0 -> 31824 bytes apistuff folder/thisolddog.jpg | Bin 0 -> 47779 bytes apistuff folder/yeslawd.jpg | Bin 0 -> 14906 bytes myAPI/.DS_Store | Bin 0 -> 6148 bytes myAPI/album-api.html | 10 +++ playlist.css | 64 +++++++------- playlist.html | 82 +++++++++--------- playlist.js | 129 +++++++++++++--------------- splash.css | 78 ++++++++--------- splash.html | 78 +++++++++-------- 19 files changed, 233 insertions(+), 220 deletions(-) create mode 100644 album-api.html create mode 100644 apistuff folder/444.jpg create mode 100644 apistuff folder/boomiverse.jpg create mode 100644 apistuff folder/crackup.jpg create mode 100644 apistuff folder/dylanapi create mode 100644 apistuff folder/dylanapi.html create mode 100644 apistuff folder/goodkidmaadcity.jpg create mode 100644 apistuff folder/nevaleft.jpg create mode 100644 apistuff folder/okcomputer.jpg create mode 100644 apistuff folder/thisolddog.jpg create mode 100644 apistuff folder/yeslawd.jpg create mode 100644 myAPI/.DS_Store create mode 100644 myAPI/album-api.html diff --git a/.DS_Store b/.DS_Store index 7de72459364e44ab352a84cb036dcc6f476f9693..bd54dbe4c95e587883b3e6ebd1aeacbf822c7e51 100644 GIT binary patch literal 8196 zcmeHMU2GIp6h7b5(itYwDWC=IgoPIQ2|^K~B?4~$#1?3gwzQxYc6Ww$!tBnvGuu)y zS`wc`2u~V~hNv(8Jqku2h|w2`CI&L{MCXt<1Xin-oMYszs`d{LfD+L3m%JM-3vZH@M)U8j)AGN&e;bkYSDwwfKM$385j z(|Ol%cDkPJ+irHxfNvf01y4*=!W!7?xp}`em~6o2`K8o6u|{`JD0{oDyvI~k-=AB% zxM9Tu4?esp(SEU7ubDT0fu`-XO)Kl$2W%_fH)@;y@SdcXwz8(39qJ#kJv-%Cz1d{O zs=;biy;!|)(Y^Q88OBVa1BI0ROu_cY^m;`J)`%}Lw5Lqo-453jtC;#}h3Dbbmn|`j zCk3Z9Z*gme3M*F`TCc}@)svy%nzfqNd(h6Bx+hFv)%6=Rqt8jEEJrt0xlYqY&FCMI zTh+IPgPRv<#sK3z!&~&ivE~-T7!=EHPkMfL&dRb$Ux>ANYmc!>djzl9G=)J*eE@iF z>JuwuH*iLMqESBSBGwtyNG;S!gAB+qIz}(kDf*C3(;51VzNGKyGF_!#=vVrUey1A% zs!)SPSc(QL!~Ix`P1u4*kw6Ffup9l@4+}#WhK)Q%F^0o9f*0^2Uczylz$-X~H}MwU z#s@f!Gx!Lf;%l781$=|cxQZX~6Mn{Z{1Ky=Dy@u#ftI@E^F$jH*+MDAb0Ne}mWO!V z*2lMYbhh8N5dVIz#P!|x)W(;sTDxK6mX^u)KjoztLodLa1XKXD2_OY8y9B)#jxuJC1(-dFSMeHN z#~X~@cknLWo5b$N_ynKhE1aK#)NK + + + + Album-Api + + +

{'results':[{'id':1,'title':'Yes Lawd','artist':'Anderson .Paak','cover_art':'yeslawd.jpg'},{'id':2,'title':'444','artist':'Jay-Z','cover_art':'4:44.jpg'},{'id':3,'title':'Good Kid Maad City','artist':'Kendrick Lamar','cover_art':'goodkidmaadcity.jpg'},{'id':4,'title':'Boomiverse','artist':'Big Boi','cover_art':'boomiverse.jpg'},{'id':5,'title':'Crack Up','artist':'Fleet Foxes','cover_art':'crackup.jpg'},{'id':6,'title':'','artist':'','cover_art':''},{'id':7,'title':'Neva Left','artist':'Snoop Dogg','cover_art':'nevaleft.jpg'},{'id':8,'title':'This Old Dog','artist':'Mac DeMarco','cover_art':'thisolddog.jpg'}]}

+ + diff --git a/apistuff folder/444.jpg b/apistuff folder/444.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9928c05508aad097acf1bfbb7e8052e7b4743a9c GIT binary patch literal 9091 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 literal 0 HcmV?d00001 diff --git a/apistuff folder/boomiverse.jpg b/apistuff folder/boomiverse.jpg new file mode 100644 index 0000000000000000000000000000000000000000..26923085394efed5ad2e6c304f51724f27a0a23d GIT binary patch literal 29030 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%0AVe8varCpc!2oH4*rql6fv2Qy|Le{{XOj z)v5l@xx*&Aq=I{cIHeCyEGV(2v85gc;%)|W=Y#20KZd`QeXBe*{G;ttw-;-6kH_ej zzoW9ddH(>keAT%gi!itF+gs8~dU)fSXLHhtJ8%8Dr3J?$#~G@>!(Yli)t(yuQTDBl zFw>!q{@1l;!bmnaY{?k z?!r84T2~qEJ_!C)39)}D`&MjU%0AVBUl{%0kI`-VqI-ka{{U$Dt4~Pj+1hZLhfrxG zviN>0++;?h&=2WEP-vQcm7J#AThkSUc~EWvJF1HC*YXdwdEu|*AK{|o#=`}Kem_LE zqoT4->za!WL4w|D`O!4kjK+JtcS4m#(7YqICoqRR?gZwp~ z5`IDc8r);#e(%TVgp;8q?=JL`KcsxuN!uhzf0M0f`#yI|{pgB&jU-vGi_{uKXa~H; z=@0qWCHQIi2l#6?FXSKLuO5&e;rRU!Q+|&dDFoD=KPdUDZ}A7OG*P15^xsO(Zq3of z<@oqYkKj*S`JUL%eAP@l)?obp)qouKr1f=jRX;ob0O?&Yj3x{&4x$^LB%R6Te3$>( Dgub7L literal 0 HcmV?d00001 diff --git a/apistuff folder/crackup.jpg b/apistuff folder/crackup.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9b7192381ccb7d45f46ba2d23b6c2c5088896dbb GIT binary patch literal 25781 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�y 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 J1~EV%|Jgt^`ZWLm literal 0 HcmV?d00001 diff --git a/apistuff folder/nevaleft.jpg b/apistuff folder/nevaleft.jpg new file mode 100644 index 0000000000000000000000000000000000000000..01cb1ec70c04eba949e76b316cee2227a43d2768 GIT binary patch literal 29544 zcmb4qWl$Vl(C*?Abdd-Si%WvLEVhC#u1RpW;I0YsVhf7~XK@c2AR!4(2np`NeF^Sz z`Rc1%b^qR;s`+zf`aGwmtET&Tx*uj9mH`xSRhTLO3kv|idb|J+^8h6PF3zK2|IZy4 z7Z(qo7#|-G51)jPh=7=kgq)0wgp`z=l9q~`f`*cmlc-{=e;^8$d~jrGTY?gT)HKro_Ub#CqrfFg)VK!+JEp z|FuV;c=!Z_SOB8OWi1K-*8gJ1#V5eUBf$Y+VdGE&9-jcR2!aWybl$Rhgi{Np6cW;~ zDK>ngMOb=9{5gCoj64DGqy%7NKkkQ(Lx_d-cT8Ov`U*6>`Q73+sI3;y0*8OC4s@X&4A|nT5^b4x5nBhbPb98YB!zsL zG+zh8n0=T-c_@ium?-n^948~5bj!km20KQqvb$VJI$a`7;Rb0fs%tYyl9+SRjl44d z4)N+bl-Hi40^#v=s{=uJ$3NT)nN)2a=r)l&&yi9YP&&*mTOf@G$ri})HD#df*O_ge z84qGQb8}_B+UqL&s75L8Ej#znLfR>ocHt$ZIutZIjb={t!>aeN%^i@wQAo!9r@g8G2tX*p z)U{U38dUdlf0av5xAHB17QAwfwWk0!OO*()wPpL>@lC`u(I#v#x&UF?bm^ge6>K{+ z)a^K_fFu0>rsU2ySk&j*R;4mnsU857tFh%TW1{{>_HGK}Q+v*m{#ePEIeh@ACf1l& zwy+oHeOA={!wga|#5=vcC0o zy&{xfR!_a06dH{V4rQfpxv;(osM8bqI=kgMRfkD#&$lF%czWGghDoxhU92a^)K0zE zVf;!>-mS;sei`|GoW#x*Q}fE;DH%(XsBIK_l^W#Ap@+qIW;o_YQWhh}BQPylz95!( z;Klx(ILCzzXBRcms1{$pkoj#G4>M8wlDW|GQmNH0Fnt-FIjGbM~}y zf&&2rX5<@AbQV4N{#i90e|o^4_Tr{dvnqQ(ZL3TUJ9ksPC83s(^yt*5ejUE)ySunE z;dJV{^LyiJ2HsVV{yNTz=G^p;eWs)bE#vF#MD!FT%_lKD)$`hmGpho#jblWoqk zfLz0f4Nn`!LQ&#~gUO3^*^P76QG*O73_eUlS&ZHexougrR5o(eO6?$=!%? z=4i=!=)dmjhPN6`XwF1Q=5F}}=d2c$JYLOJP_(h-bH(vHeJ(fozLqzJ*-wt{;!e3I z*6&{rQum%MwvsH+jt>H(s*uci;D|S#T!6_+{IneX!TVg^6A4SZqH zQ*@as1%?5zfti#{awtZHEImj8wGg>QSKB`@Jw=i=)yI4vWA}iB8_v#~;f_|Y5ezan zJsv4jHCOFd{pB4?N|)_0M@RiU+@DA77YBIF()w&u?mcIX9bHnIb{=-|aS^+#Y28m3 zHJ5v+$CGuR@;uysoA4aITE~UTJP)Fuf0G1c27^r_!q>^(d|O+}HQJR`{D&iVY zv#{HcQB9hal`usG#ER17cKOne)qJ-QYXxy{8eD4gP#xm2MF8f+J?Il1^SwRKHU_;n zfaOF0A1DRx*(+Jc&Hz8HELNM8TB?`omm?`k`$Z1`BIgp+ty;5tp)#Z>obgUYzUjzy zX{EJua`qLX0Q;qpN7iN3{UosogbE1A+^Vs8N)$0x3V3b2*DLD5g!fn4DvxK-{z#tM zbA-*uuE$QJNWlCXe-BbAuD(rW4otY%f~d$N$0h5Z%6bl-HWtuBMWa^{E5QuJTl!T{(5)A4Pp=uhKb5D67=5 z82R~EG7N(~(WMgAov`5k`mv9f;lIXET9j1&{MCStHZh)XPjNC) zio}fsrB0AVq;BQtkMbo5rK@fTAP#LM%{GOx z=Vz+jK8Vc(elXs+txUW7jwt*d5di8LA0Rs96RW zY*~1687*0r(_&CzC+~TT*udOy`Z?v+Qx_jm;A!nTHEjt>Eb^C`1oRVGXB|`BKm?wS z_7&t;B>Hm%YPVwGazVM|2}42CHvNaDL2#8RweE}qw~>kt*Ok@Sxe`O+k~LTQX_&H39wiKjzWU zKuiWy!H?Spa?Zl8Ji21R_G22y!Q&=aB|~R>iH@W(6|?!ZfjO8I*Shd2L*IXG=yXTN zr~S(&hgZYo#DW(O0Jq8fG3WUm_=`ScGw$I)Zyf2gW-5Xy$u+cXzy3V-ajcb zkCySa3b?@r05`8BuFGUcR#V95yzK#icg)o)fZOh$(@9Rv`MEQFNcS|=V08PuwHd5Z zD|J88(4UcL)1kw3`!)XlsOt0x(UN_;NV7R^jpBCCutuR0jD72Z6dVWEy-uEe4E}ic zQ7U9;CK3QY%a`6k zv-|-NGg$i4WN{uT;C%2RQQmO~DKDu0YP)FC?RCak+IsI({_%LXU6nb@S4JIC@=5*j z9-a}@i+%bI?#$Qds35Al)ezN>5^J?`YZv4aC%?FA`soce`0`5fO^gvwS$L=xQeoUE zY)Hr=cRGWZj9IVelMHIq%K`zr@w`P1Kd20af?QMcu|ICUBWx|-UNjh+(@ol@nC!7=I_$(z!^*yykOZ$5V=&@Z?RL z>2lult$+_QI?|c=q6Ke$`@Y+mtBQ+>u*#}%5%$^?HePKc3LPYD(>(hYmdWy_-xxQJ zzM@T}BlpEZ^(;Ss$au7S0aRnimz~*FDD%?4yeNy6`TD$KmcFcX-L7j0Xl` zVFyAv3QPSEB^R>XeA1uPJD8OTiC;-$-M1A|$|Mt>V<5Y2W;}sp+`RCZ+&>HnCWJE) z5Vtghf{^tgS1+fVkX2qTH!;rmN(^rHT3A~5DSf}pJvBSPa7xZLv4OyTA(;7yIs%uQ z9i$M(Rzukxt3wdsw{sg!g2Fk{8qi6?4|c#+R4jyKgWR26I^14IFKW%Y{I2@&0NDQx zN~*)z)2k|Ll!}*p7u4HvVfa*lCLJ@6I8O|hA^T1+R-1m2VL)E7XByquj2%&k560k9 z*lRAB%l&cLn=hmA=l?eoeow7XopoqED6OyD{9J`&s3X8l)Xj6gmCV%AO!52gs*bcm z2W=rj1(eoUp7~psmy9>6PSU8KQvT8u2xRD&qx^58*1d0DdJ^iU8`Ly7#tN8AlZu4z z8U*|nI1@`6cVeTTKF#OIlj#kjb>Y2iKdqh>Ttf!EfzD1mg{;jTh{&@S1Gdf*v>q*GSFb)q?Rx7dYaSzE zR_2VXqOH{>^c!pGey9Irf}&^JPfakv$}8%jq-E%BWo3e(<5Wb)q(4br@H$k<-?n1k^ z*9uEbm*c!NFCS=`e5MrRt%y_GLL2)4Xm%yMj!PT5w6Y1b{P;d?sBkKmE=MVmz|`n| zICkf()}zh4X-O)bcnG*V77ZlgCT7;^#M1pNZNAkcrziWL@6QI4(k;ejChk9&JCy*g zU~B!~>1Hyk8S6KIX6@AZtPq>ZM$BKge=L^dKN;7SvimvY4i5qirglXx zVy|ic^8RPy%g;IJ4g0|Vk-^mH>JXwN#7qDAQ+q>Kz%L9+ z^|zNq9bzTRM}vR(YRjNva50<{zqMy?lmH}~e1;&yFw{#3f3X)GYI6235Zz!7*B_ZG&zHJ@iM)KbXtMY(@fwcWbrvmr-b zr4EsNgd?c}9y|?pQ4#MIUiK1+4&G9Jey+7LRYa`c7NndigEN-;qeDabGt)K z@Ma&pL#_0xxb0--yoCEzt#!(!{s0AU3P>SkdM>4j7YX|F-@)y2Keaef%szRDQzD=M ziy#8}Z)S`c*NaFlb>z81m;`emPqHrSo6+{TGs?S@gII;}J6 z>(z0l=>F0NfbL@DEH7PVy|rt5+Xc=AtTAw_3!`DcaS)HOwZEQeKM+F8)gc0 zR)kdOEEB8TzgFAHc;Y6J3r>aH*SNN|*u0*9cac_1U{?l_nRYZ^X*)Es?_HNR{2UTg5|8>d=D!Z$jNQ|j2~3bgi^{#^`44$U*W#pGE9&A}`h1Cs zFuHx{3!A)evyCo%LWhiWqO`Bgg*5Ni=D!9F)1s+0#;_{1IZeor7SUW79JPc8UAvY0 zH00R3qs9*o+EhR*F_&VVXb5$ySA$TlCWG7n1^N>m@fUR*)f`%kYJB%iUE-}7%*ku- zt=YV~p;vm?jBo}nyJB&GisLUwW2Hh0$@@Z*~+Lh^3f;rEN^Oq7s>Br%h6hMSQ+My(K z(4Hvb{RX!g)liyx>Ir9dy?qyX%CtXkhm%^L^V}yF0lAxU-kYAN65KNxDjhCR*H5mE zG_=t)DB>34FIC0)@rJk67y8!6Prp;~MPE~q>hesM8AN!>zkDGhHX!lhhry}$HwS|i ztPD3j^wTB#=Y)t-<|EEdgTjPE0^EeEp)H}-{<;kNs8^9^bST|OB|lxX&erRh6&Jlc zrFN$zQOI_4C{M*k|BA7jlJF&3l{z7`(oMK!`f}b$zRAQSIIg!tja4V&|@OKiuSE5XLK+94DEhg)WpTNY;+s?ftl+CbGf}t*KG$>^5q9yz5Ej1?eUafERr4v($1iAKSAJopg3aXi_Hpe|`~I z><}9+UHbcO*h4vt>N5bSKlO=*n}^fawcfI2^hJ>2r(vVT?OciX2i2WDr8g`x{7`Mf z^a*c3IFD=qxycXeBc3@_Fh|Rqg*8uVCv+Uu{C|@&PbPQ2UB-PR{ZU|K8)^yE1Gp}e z&sNw69x1j{|tsiTYwW7PR! zKEl6s3Mhs9p{FIlH_tM6c_&J(@ECfqgh#0(fFwP{JV@nlYxSZlP!4e9??jZC1`dna zuf?X+&qV58duqbM-$2vvA&d(#6(A<&}n|*XYpE$#b;?#o8}H?bqf5y`5-+k0P`6^jk<#>@SxBH zK9S6CZdTII=D;K<*kAJ72KFtNJod#foo4PAJ<6YvV}wMpdCfGh-tan{?a7;Dw?yrH z4Aa3jhc3VS=`K$k)XIadC9Zn37A@I8S4c8;Lv`dD_9~Z;cLC*z+AGvUO z-!fL72|~PXL0q3W#faA69}Ip>mw!gTBNgN|9e^Cz?f3F1Shsp5aTHmYdiM3w?AAew zlk4}X)kz|FKzaU#CclfoOMyQwj)NYPxfM|12LOxO=+^UbpI>j>$v+6G(YZBp(KqkT z+f6sfe(}}}+IxW>=8Jl{a6>p`voGQ&*1}T#z6fX4WJP_J=>fog<5PK%(bzPRU39#M zu+9!XHRV2Ky@vZ&V!amdg*q2uuE>%r!e=Xuv zDupxG1cw6&+RJZ$RgYMkxs=vg^sZ&XbzG7fy){|}v^10T{E%7!ZI?N3OPeswdHLT~ zTwGl9m>k*y9du)zp^Cmh=z{fav>nmgoA~q^OtQgAm6}UI$Z>3#JdlS)!yE@SB;=v4 z$loYgJxBMpsyY#T7R0KS$ajql74oAgcX%u~lT9?HYQAbyw#^w!0MkN)$8QS)CodrO z9U4qAq%5ReA*E*+6lauo;Eu?KF&HpWE1F>S=y%BAx zvK%}$#{;`Etka1SmS|Cz97bV=6$7!WXE%5bX^W}N+`2WLt4SAW>Un=eWszehcHH(= z&hMWvo;cFMNYKPuZqYDo@~*d1Y(JdS%LeBcUeC2#MJxVDlv)+5IV9P4;ULQ2^TKYy zI8+N>vuR2q+u%>VDpYc74=i54-D~pZtY>V{`z6W~-{R1VT;7lvlZ;2K(S3I!DW&;v zySZPRK16Sbz*>d=`^kio=yn=`lpGlv-Qt}4RJ6OxV7_OnB_i>EV;KU-GXkR9Lskzk zdsSsJdmk2bYuk#4riwxL99dla2m=lYdR;s^eHON%HIB7!FVm;ye(<44O3Q~9I6x(G zrplq-6g+J@n+swT(|IRxgm48OlQeaJG!hn5RE@398OuOa^P#&7DDaYg>PieznrUqJ z48?hIE%C22_|HGiW|H-WzHL6iJbz5%)k^3GjqPgjdAA&;ti7g4_pK!o&N^fy1HnJa zi5o1v(HFNG0VDlQs=4j_3*6G4hA#QB^`W~I5ETfIY~^Amg0B2qA9d^aRa_;uco0eK%GXHSPs{xi=~r~3?Nfw&M%^_m zL@c;T;MQhwJ;nl#fB|7@Z}uQEAo&*52(jj#cN@F5rLH9_ZUsTAe9ET?LuoNi&bEiu zozwnt#}3sqeaBgs{bN zK0q*~#gQWr>NF_-LOnotm9yk9P}eRQ90bu$)zSaPbwrmi{`-x)-HsZ!Ab_lkl$|-a z#?o&lRYW0>&zoVde3P&&6OnW^v6G+~=Vj;1Y*CiK1C@jva~fkfD7 zk(c-k+L6{er2T{ zu&q%2ei2ZRny8a1XU`%?udtaNfd<{G%E~$@tIaT{@^Hhuh_FeSlRm7#kb&=dsS~aH z8E-W}hZPjk?v6bQG-P45Z%$w{dIi|N&%>#H{?YO(SHDrwc>BDy-^#UF<;13suWw4{ zvC#24Bv`eK6wpr;P?u18SD0sUx_!$z!|!wdrOVaapF^YAuKxbd1EBBISFRE;Q1+@q zZT`c*V=arNm+$^n*En9tc6H&2a4|zu?(!x|=L69T+(Vb<@6TIbu6a7Yo)eopcxL30 z)|Rltd$%N=C7
$uFKB;2pi?`s2c-d2{g#f~r}kU7O(T_>R$i*bkDvt`>4;e_ADs z=E*niS5Xgu9`Ln6_^J=sXaskok?GyY0G}!O`;ccDgz_v*CZjov>{JGMD+wc+d7)ef z1rr%p86dh0;v9ktQ+gKpFs9g2zmC(DGY;ujrSTDCJFUZSJPT3>7>~x6Vpa*#Ve>>x zV3U9E=P2WORYl2cl7#M-pSlieuDC{kxRUl#=+BqQ9A`%qIfAs)jptsfTX3Acuf_Z* zx9N!vJK=F~hXBc$uLtVnemJ`J&eiY-?c_@j!Hh2!sf?%EkNEe4*Df_)HC3(@nTFhj zQn;9p&B)M@?aGh`40=Azm{m)X=1uPC^t6EoZ}8m_fRC|1{lG!Ce)}X)`^pQItKL|@ z?J@aGW+?nouWR`FOoS+8Y0YHTV!`b55M&Os=-vjL=xLVs;;hipJo^`U^|O2;;~By0 zkS)e4eYrG=qOUA41muS-)*__|etR2j-g7&P;D!bRP4OW`8~7!HU{dih3cVsy6N5CG zJmYetFLASyjtll*5#|5XL(UOGjAE$vGz|X2V2O=^x^$ExY;+&K{BnFk&yI`suUN?4Wh};Pi+^6YQb|6jxDun&tb%1`l zHL@W!mdVEJAQqe`Th-)^P&kZT`58}3b+SU!cObG>!<~lRT(<&cfEiL=OxntCghO zfC7cA#arGC0@66kH!6MzFz(NMi&M)?n7j!LhR@+wq5ht^lvVOnSR-4}hH9OBmhy z?d1bN%2D?)m0tZBeO$7=f9BrTIBc*{B8<7L&i-~MZp~qV-TXgg@;+2=dP93|ha!|S z&##W07-=i*T?}Dcp&$tTm0S}3`&hQJMcT$r;4=d zr}}7od3sH$FgXc*#)(I@gvZ*Pt;qx8y-0#NJO$r;u2w6Mi*G zYuGX({QcIk`m|$~g=KyVM4idf6vTb4xu!2q;|cGYBAEdV`;ZXfj$-I9la`ZHOfaa_ zXZzB$W@3xQ+|HG@iV)6Y(Oc54X&1IAo=pHh8GknA zc|HF$AsEZK?S2dQ3=Y;|GK$-#>pLJ#-CV%5A7^Yp*Izo!A8+#JHb~kX1|Ww;zQY%q z{3Kfwb^j>s5+$L%@Y3OC%qq2szKCzS#VdAlve0}>{PO&&+R%rj~9x_IHpoGy86E>O__{9_{V z*wN!h4QN?$yh@=uD>KOKv|#LY=$|p3nJ+_CMB$G!Zb}91efiT*$kgy|c)4y{11OTt z?%1xYW%CkS?}NmTH+;8(`pXm@H`94Y@c$_!G4&JT=>}puGxK7-{Er!dw{vb$vG=ht^{eXpK$^hPo-d?|y<%_ku0yKZtshfQhX%V<_(GU(uG)=9>)JC!*s zwmvrsF*L08SoHbT#I8+)99EZ8B|I6Rzy#$yxsb0W#L38V3Yct(io6GN=LGX3w` zDLjU<0Q!8i!)Lbc{euGkoICB_zNgRLTEM^1RfTV-{oX?jNfRWECnxIq~5`bc}@@)ODH!0b`v?zlym(YKko?%+Ho*&`bxG z)!oXkOS4GxfT>e&uspFa4H-fbj@Ahf4`K%PgZj?4BP>`Q&KJ8eFlG>{`I-rUT>J z$||G7LOzzZA~8s!l%6AVJFNLjO8PPCSiz~l(=uuGcY~OFuZWcK6H)GucrYHhG$HAq z{T%jtTJ(?_5XeRL0l@W$GR8VY1tt4mFqR6aAlcF%qjP1t#qTvznd9x$VZ#_FB^}M4GTHgL_(!L4CAsq`_k9OM?mB+S9%`L;_%N~4 z)s)KPvNL)ADex>|zLoHc(~wZ;VznoEJ9A~J*Zs#n%ae0)*QT-shx4Jh$?ZZdR}+rj z-s&{x=;%Cb=z1th)WD7wRi9D&UFP&EmIY5yE+0NZmPkJqzdxCwu`wJA^HpESHqj}o z!}5WDgyNJOXD1@sK;`|eQX$lL-11dR+%da)1hTp_U?K*8u$y z1vd|a;Wx@D>pzAK5Qk*&HiX*QNpVfk!S#`vv~5L_aQ;nEUF4V@G%Yd}m}@X$90tP3 zmzbL5s217sLh9vEdb-L%fiT9ffhx^r9Vv7VZdjVoj6&WY&ZJy@J+Rq6y%%FzI{)y( zZ4T#BMtEa45vyD(LP~XNHsIIP=FVnzYfBD_e;S*LS%Lm0MQ60U{O~EJZFDS44n#z> zvk;oAW>8LexIgagTJ?iXeVxBrSS-mxW*V7}NjC@)AOg8FQyFy>u+t%k)RncsWBKh9 z#{i~i5f4`D)RXKO6-bn-aeIdqd(7Ug{meq2;S*0+!Kb6MZFQY5UVr~|kji|gLJGr) z5%OEs^`?$OTHluEv&+=#ILNW>>5G`&Id(5&7uwGluF;T&qJ}q9CC$(qyMZi|$nblt z{tca$A(z|Su8v>tUwHSRwRpp#@=7L5uSa~pfEf5Azs+$BMu+@4cf}iz#^OP7+p`Oy zox?Apo)_xC4&x1OQ(PMLp#Y!oZl=EX1=J*rA0u^{{w(bNrri`AwyprP7`~c7zVY5V zMssS4y^KaLd4A)?jmS}OCBYC}1ioXEJS|#C(bClVW@02r@BZdS*PC-G#A?TcwNuV# z?S*b!zny@^1tCfon>RX0Hvf^1~E=&q428c+~V!~ z`&0aw9{}B1hKE(TbrAu&xKRsE44Nlf9bDR6c^{(mX?AN-dRUZ&#x>P?dN>&r78b=$CB~Y^4Dbh!rt(l zT<%10wDpVB)3E+}bVEslWBVNR#%7rXHvo;3-*d;SIKI<#zvFq|`C(!>HRdoOmcRTv zo&8bwOdi_?xTCY7L3MBMhS%r;u*9TfcOp9U{414ctvmI)DBf>y{;W_?+PgU*ghtnM zqu<8K!!`9HeXDo$=VN!5*PSNsigLg5UmqXw(_s~s@AOkfv_r}$fit3{lWVAzYg)g8%JYZXG~h-?aOy#vI@~b1CIj<; z-igK8h056#T>cN#V;=@edE_UKgHrxlCXM8Fc_$1S)oA>+s&h$89SB*pPwLTCD4htw zi)8SpiMG!l3+zpJVe)qW0dN}mEHg)DOz&uZJLAiBC{VVl!i(U)ycd3>wpCPd&5aW< z=ZZ%Wk5D%*d??F<**|iMMZufKI#~Y!kS4E++a%9T-HV;M9PmQj6NWFlJ6!dOjRdWoJ&aO%x+D0_ z1as6yz!tF^AW5(KJ}5|5`bhnlRBTgnac6O(paMh&KBKX$V=mSIC(sP{<{#s)*AQu? zrsrw%lt?6jG>coYSGxA~YoE9xeV^DCkRQEhuz1~pY}54MlXySV>Oh8i*G48zjFNwW zC}8GI%S$G;{6Ts&cTiay;$4l#Y3j!e0mv$`DDt`ov!61iK`H zFnl!hjC#ZY3cXy_Dx=XeR-$91@VnhH_*c7xsd^vItN4A4z)zNUF)n;CbqrU79rCF5 z_sf>wMC3{fT*+vBsqAkKw(_KOr)uK0XD+Lq#2Sdi=-V~<6sSA5zU`JqFLNHnSr6Bm z)ctJs=rfQ?pJqBK!|a;fC{l&2Fob|gPA(B!MT1P?mDf2^zcYl)Qj+X3+O*)_a%7-P zV(35Jry@R8iw}T9LwxDz;{0FL`C~Oo^%~c-0SP~u$H;1aMPW`{CJ1!a3GZcjOPw0A~A|OSKADYV0}>sN4a+atINP zSPdjchCZ^}>ry)`G+OZM*U?RZ7e9dtjap=A+ie(al@PCfcu3DTfkJq+@2S6Te|Z1d`vD;K05Dk9%7X_0vNijNx4TQ?&_Z!#Keumjho`CiGa?M6g?THhtpASf zTHnFhrb0FSkMBPaHo`*J0IC;iLl;Xk8p5&E@NSh>KS!UXkH40*(cH$m@GWjc;X*`( z%z3FCqr(%7ONB_E&OBqa4hozE? zp~-A>l~NZyd;;Np1&c||HjJ8kfuK~*8?~g*`9H^NLTmU=InoSZ6NNX^v97-+D#dFh z5nmhg9snN#)`R*i{)wlx4cXQ$wYLYGrhoCjVhkhe4m8j(sCsN$ey2%7cNP4>q|C@p z^u3Kg-{M#;`Jzi$LQP}7GH0`51|c^;+9k|tg&=%SQGj-wSTQ{|Y?;2lA~B@-V7<)K z7bq1`2xI5ubha+aAiRQtrCZAJo+BmY*2fUk42UrlH{fp4_pDBxh=_`n(;0S(2BAjN zvnYvSGI~H3%_7{Wm{;U7A>K#Fx9yyDiljkxTu`BW^RTQEkcc7S>u>a@_xk-$o@l>n zqM#agyFM?eapIYwpw?oG6lqMkU~!=Oom&*_Unhp7{Ml z>0P713p}XSqKEKt^*sBecQ5)j+qb_oXDeM_(@HYM9vvU;%5+oHauDKJ<@@3KiC~rP z`EA$PWa_h4r1m%lJz*|D+>*i;euyOC@MF!zkE1S%fotjY6Kt4>f4ERzbWq!Of}1{7 zm)@!v`C^UM#)_OSgfZqzjZ}Vb3GB$Q{Pl0H4J0>h4NU*tTrq9Ntw6-iR>oOheM49K zDdV11{(~mFxWt4+>HVxDAyMLb_Sm%vH4%2mKGuvbi{oSm^Q-UL1lc+`QL*!TO3a#=o@Y0I6EPX?{|*^*FIG_dLK^_CP;G{`D=J+mT7dt&*>QRnR1+%_tbE z_-iAz-PETPimfdbDkXhUvpxF6n*;s1LBBY$vDC2G|D_gheHHXD+mjT;$sFoa?b zyoBo%I%mzapZ&|gRK3`me2@I3#;}{jG-l9|uL=!^)7efobVL-v2a~h`TMO6Ig=4RE zw99nO#cjtbVi)Ckw0a~jA2r|_N(EdDZdBx;NK*23uM{;SQ5KPmH^u^u+m^z@oNtkL zcEsdY&Qt?&D0s806kKe56?J+3q5!NsNDS~MmUVJG6xWv8^^~&M81M%Cou%sOA<*W$ z<+*iwYSG_jya3K3S`MKREqQ17!pX$QmR}}$qoV+L;;3swjK{M8^i>A>ZN;@xFMzVl zCM%^G%2awA&7mt6cQ`{Qgs zP?@LSr53Ko+=o^N8TDY+E(PiDqujDcFI1PaK>eH*F?DT7&N2(u_fS?E5Z1P% z^Rlnnah7{pp(8g!2dAP(-=erf!oW@yZ+N1YNg=7(fPEnru~AwWE(V~U zGF4S$Y`*DPW62lc%f0tn@U4<3MOmo53Mmqm*CdZe8uXWrsTt`(6&|%jdJr>pgWHsah+^uuDupM%Au_cqO?K@4l{Otij z)(~0!KqpyF-{NNUX8u>j{^X)6UoExw`f?`yKiz}B(O9^baG@O*abnez<#T;XyM9X~ zQ8X?0t<#*F_F;(`1F}qsWx-6Ha~);7k~D(>RVucp289;9vX=adL<_?;w=QO&kQ+yN zfBDPl={}6l^S3`ss|H`QKcR#Fmni13)a63g3TlEHo)t`^ZP=XN3jPg)X!gX_ z@9YcLbxs~=2((%ga$1HVdd~CLj9=rIL*A9B`MIt186v_;8q;0oFVk1Y6ty|57W&_s zo(n7PIMY;Fn3A>~BZv=}pga!%LLq{&PfBZaejmXDH*BoHX?kIPwJ+^{X)GkW~=gTPBv0*ZK=fLc{1D8(IH%((WW<>N6td%c5h%6?= z{mVoIq2MVUD_g&RKi6L>8w=m}+0vUq(T>5cvww=Z+{0)g6qoQPs&d>^G&y9vD7tsn zI`Jt?*;CWvlI&9HVNeQy8ThR7ZpribB!d60p+54<^j50PE-+5PTgzE@S)&JsGabGZV^haN^Oc(VfT?hVp+lgE>QFi>$Up zU56d!_YKx1EzjEN!-{|k7YvRqz8}PR1K6$ycLUC~1!qeWk z02B~Lw2!nbS-^6p{y@Z522_E-Ay{hKG7z_(6BUpxvamPz=KQIKnP~;oP=PuN{=qB1 z+hBg>{ns1X^yYB`68U%TLyK)8lO;4%T`G>c+AtQjgod9mRwojo6gsdlXmD#!Hvlnq zd||vcQ{QIZ_5C%NoZVvs9+pSQA@0QxqF)8e*3ORG{5gBnr_ zgMiYEpN`8&qK50qiSt7oXh@beFAa4Id{1gf`mYUUUdp{6?+GvQU(JX93i=t&a{roV3ZcUOa6+5M1|rD(kK9N z0WXS4_q7x?%}tTyiXNWx{2>Ntw^9vFz`| zwvvHnoOL>5870Slcd}J=j~TI;!FFp)+l}sa;D{mug?3OM?SaCBFGYe>sUUAozi|BH zi?2={3IFdcNl6KwD8Ez*BiSTh`GH)+T#-QYd0PMaF;|~GuPAMt&0atDaMY+h2R1_b zBJS9j^WZP%Nb7YTl5)-3kmhxvPRkU8X_evNEiG-5Im*mzp5>^iafMiso*0laG|kq| z_`N+tK4{~hbl`8>b^b{$J$o;i;V44(dRoirA5G)Ir8la-3NNA6bR>d)8G#PJDw;BY4VdQulV%wM&Z`)j+y_ctg90Ph8Y!jKL?lM<|!b$1uv(~ zq=1YF)3B%^-G1dnf(@FHFVwU54M%RznafQG1SUAcC{n5JS+lo)TVqX6X#WSxi>aaEymJ!yjd#5{(KbREx%$n^!E-tR0-H(UwO6gv;D=$fkI`%)KZoiCT zF*}p3)T9kr!6wXpo8A4^Tb1aiTqxr&#X;MkRuJvvc%UPFq0$6oMGFo3nU$yTI2>-G zfa3v()P)`X`n*B^skW2$%lEBXOjGdRy*}gCr>fuJTJzb?2Mdbwdl3LU6*hNb+)|Q> zUj(XiwqCi(UTlHYoNn^O2<6x-y$8U5S5LO;TYvIw__R&h;x!t?gW9^bEoqg?R@JYp zN%QJ!Nd?E+X_@{=_)>=a;KN78$ETHW^ZQ#ltX-rLhDjsISv$8XAa*x)C8ud+FFUVj z5+Ez=>G*%#*gzpHEFgCp`kpM&kEMg$ZTyYLHayH^;9FkPX+~j_rM1-XKW)sV^N7gV zClmgoowd<$!Jh8$Ica@1h{OJ7!6c^UrMPPvAAfI6*s(5svd)FwT!W(Se`byUC$ut4 z%`uGDDNRQldHNe?g;!@0;d|l6w+FW+C_mN}l_sw=0TZ-|ZX$OIS~@Bv#tI9+=26 z=lz8UUr1Di1M;f&M+1ekY^lF2BdIDpkF6FxRDK#M%jwd7?ZpWVhSC9e`U6q7g$a2I zN!$;0ALUjHw6xQz@|KT4qy9pn?%FD3ui;r8Kj%ym-5Wy8u-m}MsD#3sAb)Ft2i~4y zE?u?Eq2}Sj5_Yw)xE4T=Hl%~e;zuH9wJ}PQFi*yM^T*;ULlF8cvMs+2s3UYks%-8f zXoVz9fVo7ylGro_inM|mWUk~_fWg1Ftx$EOr&kOki`a6tkj5CEp@CL?Uey%}U46aXIQ{He0k z06Zk~JdU+CaD{<0KK&{qGkT1#B-IaYgG$u6WlgZoLvxwF0 zBH@cv+NDXkOMoktDNwRLB`sw{_2?=J>%rWG-NJ8idWzBZ78aBu;@v=*fDYuSh=iVF znW;qhd#Q3Z7AGS9Hp=0*h*?X4VGIq$2mu}Bq?7cM6#&H--gX(9!XC$dh z5fSVT z!XgQg9edFOW&t95M|#n?p!iJk2_T39y#xSfr>yj^c9T70tt_C)5r2WEBrG*s;6C#mINFoyKb?6+yER7pp20PRxwY82Yi(<%b}6e2f0CA&fC_;sG08t#<=oDy`*u~; zzEQPA!+a74wN5u-;vL?QR(mgDb{K4i+j8Xv3w#mG4&Zv4&Y!eXmkK9xR8`LOllj)& z9-T%`+HdG%*6Sqk$E2Mc>IG(HP^r~ZqjdRrSE$0f14e9Uh zDXWB(^C!@#P~@f2xT0b}0zVr0Yf9MwD5Q}Pj%#Eca4X9_&cod9@wP!7 zW1*!1@emazI!#+;O&79MTM~Ytbu9b>b$3t=p1IfN{ut*8x!vYT}LMN*{|DNTJ#o zWAa%ho@4e(xeYLe(ta;7L0dpD6Wit9lkblWcp4~Al>D6StM6_uwUzsqk15Ce!@WyC z5n8@AbpFznP~e3vOGudQ(wtpfs{a5Xad_*4d(NrSMDe)K^NJfb>biNmRtl8s$_*d^ z$toc~&YQthQZUKeZ0YRfPqSyE< zdv`H-izPnNWhMKylBIF!R$@|5*nymFd*23AbBPUHsYpOt0hlE5^rmWY4LqjGHYg54 zL=VQF-{kEso?6t}m|CVBLh2R5;+ZQ;=vd@}M_O}@y7vh4IK}%p9Vzk$!3UV=1b!4H zsV*o7NuIw6kEJ(a?5AlP8b8(tpTJESZk31%-cJ%t3b`4cO9J9jm2Yh-COYovLQ3A5 zBm#X&6tY+50-eKeBX3Gp#1)kjxSpi{0M4NmHU;3h3j@6U;m^uyz{Xz+y*TBAcod9_ zjRw;DDBOI&VI*}jW>2XAbf_l^l*550HlBBhKRznM;l?WKHL916vAAiM*4M`QO4M6! zKyZLKGMNTviGe*1IQPv&u30*1v#5M2z~AY=3o-bdvt_)2Q!cVvWeq*Ss zJBT6mPe4aONyUUJ&7`p4eYQ|rE+r))T=5eeb?NO!eLHSs4hRN5wdi3TsYFLNx=u_k z*fK)8`c%db1iZV8TDOK9_;)2Bl`MinM-sPhfbFMQ2deLKVOeI+HTCb|R3Z$0;H^ z!RcLO741svY-26O!6mg^Cvs4J_aQ0czr?Y??-df`tlHn-rr?C#-MXie6C`X%2~Xx` zq^|L~9Z{+kfW|P>mln!t`FUlw(%K=_t!w56@P@#SvU^p)_+^H*FWl$#t%Es7Ta|{C zfYrJI1OSyRD2X6RiJJ4e^sVouz&#c z2?`VFW~=(b_+xaQX)dlGbS+6BOz(5cOdsz501De1(OL@M67jv)HkUtUQ)y%-@up#D z_(3Wpo>ekEg>%=8j@Vgd?y-1l#GtzQrv#MW$h9`$CKXHG7R zrD{@EQWQWU06g~et3QVJjpaO9z}pa#gk625W6>=nuaG^`Dz37kN)k{c@^+txk6-6n zkAT?kKU(E7N%r)65wjlux}WR1w-K8$wJI_>Kh;BWi}(JoSj9L<>xHB4g5sfgQQ) z$>~T)6B19fz@?-C!lZ-P8YDv(2;Itg_k%=2R7eR=GsSq3DCj{P^_p5hNZYg%=tneY zgX9m0lylhe)8|A0K;+5nAlHLxinj%N!RbX##Y$ANl6n~6RHKZ0Ut{iZn%#Lswf_J| zy8*;4E8wjl0wb~hH9^YXKcBbIRb2(mo1n zO;)trX0vF*2O&weQ1cX#+IfVZY6gG6266YwZOwMuq;j>3ZiDgbOV0S8sBq|X*yJ|4 z1a2vq2i~%*mx(&I^5w&Ge&W=w@&uod6_+1Ye8+)~NnppuM`Nt^hOot44=XhD<|ax) zf8|u?tkTWG(3_G%cqGA}Zq(xUHFtQjJH6*>lolNk_ z{oGFy0vIMq*q9_HC+XgdfQ6&sNirmb9>3*5DkZ)`K|BwP*R82V1x~b}K!TA3C)#70 zu`?~v^1>wYWcDgFmi{uGu7UwFcGt_5C=l5I^d@W2t_s4{AOJ`_eQH5ryr%;W4}>N^ zbcmnIwT}e!?nzl&ZB1>F8 zaqnFR;6Do$y$F0Hi_Y_@C5 zxBJRjQ6#CuC;nUt706I=Dgq2}Y3G-)@Qyub7XS^X(}5k#Q)KK?DF6h5m?VyO8q)Ne zYDSY`FSb&&t;K96I+^L~^Q`j3GA>#3))0j#B}yVd9sd9-)A6cD*-BY_I*&C;Ocbk# z1_>Q_?^!i+_M}~fb7f?dj))`j;)JdMFgtQNubH?-#i|}o?W;_U!=7m>03;NMJ%^=a zE};uf?@~Y%u$p;S>Z>#ngfKD9v3&BhDt-4ISp=miLO3a%o63OhWP$V*lWU8By+Xy2a4lA>ggAFk#Ija-_S^^3 zwG8F1OC5I5$zty@rSJj;+a)VeacL6~&<&&5&!u9y=TVW=ISaj~%W>t9B6u7R$O^kh z4}HG?>SVSm8GI_;%9J1;0V21r0&(T76_m-T3Jbiw4GqExOHGgFvt0g`602`4DMWF| z;XwA7`d3tVUyfEQ!Q2B1OgQ5Tx>z&1Tv=B?O|wkH)=%0FZuSl?Ehw^rB3Lk5D0h5l_mD zJCVt+5|BY4nD+IeB|Ca?JoJg8OcsxjM&Nf6C#PB}2_gXmbTP-{UM6REPnQ(5g%ofA z6WsGenFqoMj$nGy!V(ei%44rQ*TE)u5j;&PBqcM%@C0|Fvw^9GUtz{vNmEWFrAhW8 z56i7!x!i5WA0>H;btE{#{uPclp#9Z+h>y;?0IE;j0R9zL*4l7p@XEcnYySW^S|F4F zKi;FNkbQkezs|7h^!;dB?uI^_tLS8>*_`cnrLQwLfwtf&T}c%*&ww_g7xvry=GAQ~ zEu=u7N&ISN%JI8oqTw#>j;lzIOk6LE7Y zNZ-4VJ{b0`*c{(>VASKq81RVI1vj`7kQKxl@=6E+Bo6T($XBJ-)D);m?LE&vlr@%` zSC)c6i87v}&>Gk&b>Jv)Hj$te-kC~^7puL4rF z%1=LyNdttuR%KlGPf`4BprQDI_0@k6wiRD+^|pdaaT` zC_cQ<7Xi5YzLcV(NrA^fxgvy8c8%(QOu-yfrgaEf%#vk5an#aGr5uhvawv)=03et? zkWc#g)MjfrjKE=@%4IH+!wm4HtnodE@TsyWau$WDU<7VY3KKEyRh?++1^`(l3U=z^ ze#+7iR7->5L5}1pLO-<~#Z`PF&E&N`{-o4S+&FBmFA7*`MEoEK7n3E8c#wQR>g#Xdeu%E-ZaeCv0vbDC#cDC3+T);3@%!yYW zXgV`4tz)bFNp9IHdfzo{_t{%gVL!1#T4_h!MMs}tDc)Ne_O9`d6@j-}U&Y|<7`47y z$OTAg2XN#1&XkThr4r}eA3T45A(UNvXW4W8{K~J5S-X$ax>;FA5aveL80FQ%geT(> zw4Mj=B$yt8xqS{SiBg0o)OG%6n%BH!)D7ly`hxD*?YAzqVQ!TCDe}UUqaM(K{{Rv7 ztZ?j-3FEA8i6`k=^!(g_$f+of17Bz;WwHx}NeKYKDp7$yjdqI`O=IjWvFJz*+O&&w zh=B-5Px7uz@b?y+$BH_7!AVz?yVlmZCIV1=#eE?Ly5(dkMQT?iMM@oMjs@L|^)Hl! z@Ch*hk6QQwnSvv)CcOz!A`+dW+Pn#r?&FT&R+}-=@FGD2=fx2`PsFd|Um+_g;Utc; z&{Dz(KXjPyKjlQ36ew+uW_=AW;of3M>ObdR4W@YA+KPxMfJq~?Q6@zT06+vsp^92| z#~{znE5^Xv1F13ZOB;cXcs=N>8WNKL^E}7Oy-6KY2jTD9iv)-vJtw6trdH}q zfjoUGZ0Z7&@bZ3qabAPA1OQ3k^fXlmW7$z4NK#~^`o$&JtazrUUC&49lgpnI zjrK67?k*Q?5Sf{gF*O*i#o*HRd|hNmYSA@jiE7;{yu~N6QMU#G{_pu#YU@``JWJ^S zOc12c<3W!kB)z9CHbL#p4b&;dhybXLU=C}P zZ~p*E?+|X1q}p0({9u?KRjQs+KCUSL01Bw&yj}4hETS(p##jOg*=+aO)AUPVR`;xe z7p*M3oxI(dYlLqz8C-*;-{o&_N{{}u`rMEBjaz&u&StP)F5r$X^~+UV-m_xyZ6Nuq zxZ*;Gn^y~=fRL@y!+KVHlu3I~T%TVL5@$Y1seII0HYDs)6jyjr7FEL@9vQ^cC z?X9G^P!^R>PW8w(d5w2zr*5z|n4FlfePK#UnNg5Ce2r<^A6z}9yequ4e+_!hOf5=n zDz_mJe|l<&&Qi7?h>pI$m3&?sV5!L*a(Ew&S1mO*Jvw5>`BzD}TkWDt zM|7<9;B=}szww2v0AY+nP2FB^8#eoek0xL_AM-%xCypOm2~4`Kq^0VC*(hkO?b!RW%gqYkJGKX+Bdczyltg%C!$Y3 zTE>#XEWf0b7`_(8%RS<;`Q-bLFz5vVV+j~4NkMBF*F5>f&;EP>SUI3Fsx zX-z?=vsf*1yoR8+!{o9?Q2pXa+R{>18y>0zpeRq{6^3|KpI$daYFk#>TZ_mz-MLhf zme6FWL{D&?qtvRp9~0oNDSBXDW_4q>X;Tf{xpDSZ(#i{i%~0I64c`KQCyv}!4P@lp zV;=_HJR*~npK`6D^(Ie9=PzPmkq=G^~{hA=aj@_wpjN{AjY?SfKg?yL> zy1hO|HpM^yqV3wm^(2HO{s~o5)}Vw15R#OMJGm!{oYoE@TD^8w?iD7%hV0WE%8-$` z{Zv&|u!OlORD%%{)9M8?)5fu*K38&Pt@=M(43~*+ke(kBAQEtsrnYYX@_D19XmAx0 zP)LxT;%aP)Jqkz=v(HEru$dAz`arCI8RDixO!%FZ(mo-&+HHgDHrW)jw6K*DruT%8 ziISLw^-p;d8vV7+we6F4wl_>&+PfvU?VS!b;Pz5@H7S!QG&n*)5k3BYl`RNToe2Pv zc!c#dB>AdRLR&&op5a82YasEX#v5HXX>p`<<;RVcQ@(D>wevwc&$_sb?kV*&~C;Fq?+M~%v_$0?@O#Jw&Gh}^@aK@w9O~uv1 z$Z^%Y;)1#J2_zp~$E|!W0-J?(JV8Xy<4PV;M%}=`JfFw`LrY0X*mubt#}$`z`Igca zTv$SYDNH2uv+rtcr4F^w(!j!d_; zE(8fIw54!XM^nrWy{k}a^9g#TUTJFsVT4&Ju(eW(l+z>ON=ZD=!zbrhHO;uDHT0+M zk|D2c;Hzkq!RTVMtwoAr;VwDk>~TF5g#1(Q+O>z6D)^E)J$?TG%Bxwdada$hPrQ!R zixygAY?xD2VQNImL5!~XyevRdsrpfi=W z#k;3*Ph{S0=2YjK<*RC%kbVwl;vkMXR_Ff6uy{`nwEqB)_$_;`?=qT_`LStlV~(=> zVY$6is4*(pysLQQ`obf#gm`VG^wx>7@hcPJj!oB;+8N5ViA908B~Gbrd8K8*s7MLz21p}{lhpnl z<@BF~dRtyzWNq#&wGtA$X3&BQWVWTL3qGmZ2fp;0=!|FR*`}3qZ{d3UN7VLq7uY8C zv!U!olG4CQOFMT-aV`X&cAcaMGf@Eb9g$@rVEZM5!-wrcgfW$qfxIreug zw_7^MO8E{nKmkU2Zs|4F&fLr+KciEN)*5pMVW=6(uQ_F7c87(U?ZY2yf`pKwN{T{( zCSru{hPrE5>g_)D^B#VhwZ6G^;Mv=7EmjgjIrw+(1QXh~yUzzOcD@@i;>()LUYxd{ z$=d0pVgCSD*bB=`mR&;(vsyyD zFt#PZvf0%-!|kk;6|CARsT1*lXPK_Hb+eL*N&(v-2qegXR$TY^R>%kPSijWsXJX zjGAWUNV>KN%{He3ZIC~PL7+wywEhL@M?*K&AE5!`Q>Q4`D-Aexe zZE^bsgmOu%a~F+WHlOZQN31gUtzSv3R2S2yyuhKo&^4NmmF?M8lMQV zcyEhVD?&D=!u`5M+*H{SF z{5-|3*GVyc>mmDmmDiT;$%Ke06Wo9Tlw;boJB1sIlWBi{zol|_FYUXp7_?9khY_FYdn}*b@hQXA$Qk4YE zgX`)$(oIH9*&p|?-wZavB3CqCYruUyk#5G|D(fqFr#7rOmldH;-0@*S?A+f3I71Pg#I-z{?Krx$5XNQ8%m)r zB^$Q^-{n;8QoB5Do-gwN+QS?)t2a?QbMFRcnml%yVZ_nNADiSOA8 zq)@TNt2C4LY*1EWXgb!VD%JRYqS*~B}6E2qL~DJYAfUtlUy8^ zfBHjf`zaQOyrf6lm1f$V`R<9IezgApEt|8$Vpo5i$}?qVo;=&9 zHiI3KI;i_36H!urN#9+O$eI5D0<~_N(k|z-`3zHSwBv1g7DZ2~1#1a{U?g?x%=D4g zvRjsRq_Z1C(BE zFv3%leIiOy^5HwW$(oGV_QKg_IX3wswuB9$}TJBF!cP<#XFZ~ zj%QhvleCUL_oYSOEcFL~c{5ks#)s9IXH+tpZy?H2Pwm@iyxAV1Xpt39x@En~1xQbz zFc08qO;hCbF_MzFyC`{SB}oYh@7z_l!Q8mh`bWl0x|R}I(Jv(m2lv$G#PWUCDjy|c zONCJ&d(A<&s!0Zq7-0}3GYlNG;DC1_i(i|I3e zXD?@m{S$Ow>*tuoTj{?OZLIGS^T}Fl(8fX4s3~KJN>wsDbf{fnjmSCw0F#%()!VeD z-*+O5RQZV@mT%Q|!Sw2fK_4+t_8OR}`f)tudU-Qz1dcJEa&;?>pN$}#r$R*oZ2*`-gk_3O+8sbxFR zKVlq#xJsfVNp*$sTgI!+J|400X}f3Mz+CDpiv(%wL?duolG+NAfEHW`R^^c?h#^y4 zaj4~AwbUP?_N~0cWs~+SuZpd^W0SKfSS_z3Y?QpxjHOUPAo3+Nm#r)^fB8N1Ri)c4 ztH{*0OeslO1;u{2ahDuCpNYh&WnSt%xT;P=S@_M1%UkJ7uNKq-t}!XIZJjq@ZQ}Cf z#?ZJa0VN(*@dK&qB5AdbzwwIaN8<7~9xS-l8us@2mTlY9c;^dCv`y37iU;iXAG1uP zm@Y^rB=N)t>5G4PiTyLK@>uuXw!XEnuzKF++``#fQlgb4j)V{l(=P-tmzlhVGgCNj zRPCN+_f__9+6Ns{8(P%hR0Iu*Bu6BL^@yyWQER;Jz0}U?oppRO88_{a$C~m|&%%VA zp9^6i?F9Dcyw-!^7F!!pgUkFKI4WUZnN5-QZ@uh zKTm3pb4coYauoiY%ramq9JN@GM1#|~qEwD<$X6Bs1OQM+CMG_$EvK>HuC;zQ5z)Jg zgduA^o0(d_;R-Z6jXjmLwr=^`C9Rc8lIw7wAw?vZ=w@TquRas$jFr~6`&+hdw!;>x za4ldY0Kb4Mtdde!9{$uBWws7M;*RMgbncDP9v)kPiamE^SD`)nI@H!zZu z$x@b8%y1$oENK4#3UU{0{hwYc-r^JIHmihyI3$o=K;l6IuUe?PZZ2|aP0A963XsZF zw)deRaw9rw6y1T`>bkp|lDbNC4OA9E4ta2nw1V^OBDU8!qwG19Nce$Fb zlF-^89jIK&VKpKq;j9<_t(HDYe_ zZCkONwQk3g6;CPWf-7Dcl%kUQlr-X`+rI@ZW=IJ_c8L))Qdm%g=WG<_ z!VvRnDIx(0P*DVWK#EAU#wpOG>U&}ocO)A}qw`H!G?t#X$!48;&ns_qn-&)Ps7<@b z+MW?Jx2&qSci7+pzh*OPFDpHgI`kOcZwrR#vztFI*@ zP=cr?xbnp<;jhs3mb1qp)|Dgn7bbq5Rc^>*FP^|-GWR;h$zk*as4}NekUhtjGxMzy z%G7NuWlI`te~9r-gl0{SZf)9BsTUheaoE+{51hr{Vs5gH-!Pj-)}^iImJ*iIJE=#2 zD+kS6X;z=u?xL`E=oJElDdz)x^id7*@~Z3YW8Sei-|1@!vP#RTw^6y;R~#ur%J`4Z zr?nQB9%sb+e96k8{wAZWe0H_8FJp9LNxF1OPDbejHb3m!>aXuA2eGVIHJHg~Zx@o! zWp3~8fP}jGw`}wAdsfiBEuPFgxO*Pk4xuDLQWo!)s2%xIPtvOyR2z)S+(LJ@;6sO)`^g3( zuFJ>cMw`6ErzdXb+dQrB1V6b6LiZ8(AWt2A1xE}P5zCumtzC#^UPDP!Zzkj^BqzKx z=@pkEleI413*)!jU*1PrRRO0E5|BE7<6F*#e7wQ85L6vXz#YNjvV1lR1#aR}oneJ_ zT_v?#kTWp81MQe2C2wKcg*L@XoBU*DMu z+GIel&4pR9wJ$}YCL<>EIo4DZ8>9;uzK0W1iZJ>k;Fi8)vMt>VxdLa>qc1;3%}gIYR;JUhfIr?pexwqf+!P)@w0_g68Ku^?*7q4EGIv?$+_`O5 z&NSlC*@JHC-DU>Zge}FWe|ij#DY@2qtXVgYMrF%ecHMdQm~EDuZMD3YP~k#SkP-@C zctGFzZCl)U^`#nl?ZDq}R?rj`u?kue zLG8ICpXNE#8~q+LnAIhA8j8hkTDlx=UQ0m0kiEsSN5n|lXNfb?rSKjVc!7x3ILxK4 kq{m)brzXYK(i*wiwIPyFQi2;uKMIv2iGVpZ)~J*J*`bAZg#Z8m literal 0 HcmV?d00001 diff --git a/apistuff folder/okcomputer.jpg b/apistuff folder/okcomputer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e42c31cd4fd4b88a930ff32cef594bf448cf139f GIT binary patch literal 31824 zcmb4qRZv`A6Ybyx*95m2f`*_01_pO`hXi+mJHdhmcXu1y^}`9yU;_jv!QI_1|HG}i zueVRtdFeXcU8ky7^z~&R0G^zbtP}tN0RTXFdjPM?0C4~^(wiav?~RO%jDm`R zii(1QiiQ3T4Fd-Y7Y7Fm8ygq@Js~b0F+MgnAsHd@2NF_JQd|OZN^%m)_avkw{|kcf z_9-d~Dkdr_CJ7!k9?Ac=z4id`(Gf%tM34~Z0EqYqNcae^0|3gmI+2n7SML8cR3u~+ zGz3I+z`HlMG#&sE;eWLwBcURqqadLmARxZ^@c{(1s2pg7qN+r6#!j4p@#w@rvHZH; z>GvPF)J%dB&OqYMf6w2kYtVB`6x5r(1tLcPAikyffASz9BOsyxP|@C;ocI7lL;3z>1i(Uii-?be4-f{N z1mTB%`Mh8CU+Z}=ng48+HdfvtWNTcsyJV zeO8p4kc9BtrO^prVB4Qvy#ihYzg}TG2-q?hs!2?#&)(j7cJGl*_Rqco?#}&Zc)IPs zIjlL0QU#MmaH%URzXCRYzXD_yLU?#z0kI#RfpWHso8bLf<&YBLR{+)L2dV$8ts7ne z$NyddMYg`rZb2)X*{=UAaxoQzUj$8GRI3!ZNnZiR_>)gSIm?`fVZoaPnbzFC-dDh% zUoY`BWO^=Z=&yi%GL1OTc_prORW%11c;mKbAlg%*o-ZYzpjhyW(Sx%O9?uaLwnQdJ zeoSxE@R*#wUKV>VAmfsma7_rSi2?M$ilcLq$Q{7H56sznep-N~2x6!y%&L z7KcWa(1eTvM(cg(PD-(kZ%OinVXBWwMlG_6i~YO~rsuM7Q$yoRSRaFV@EKL|LU{Lf`49 zd>IC`!~=gtx#?>(we|718GWWYf|KN>vT9VPgS5%nM=Pz{nQXD|S9aL~^aaiDjHC(^ z3DxDe61Qd002{fiF_;A0O9=(HvhXIZF$(yX`E(kUSAd|#?6B`3)@IiR5mwH?!-22d zpP$=$QQ+7T@1QMHZ_guHz}hPSTc5iE6di>KgZ?okmqLSF8|WWDOW6?A*~zN6Eg};% z54bEgKlMD7F7Q#cw^cn$DqA(G(y!)7E!B>2W|cW0jQMQ60{qafvwfc-+Nu@}Dxws` z@&A<+DLi(EEBy;}M1Y;_QtVRfNlIG~2@r~jyZ(O2lfnB27^<7BuCifHrw@g|WP~!H ztn+o`l60RPQKu_HhZLZSROgqb@}WDV3laQelmT>W>YwGO-B{6-`m{YKQaov&<68kI zlVvyXRKigHD%hdAEDQ7KKn|+1z4k4vJV9=&Kvs#@S@v0}v^}(oIy^;EeRzcBa1eUX z;@uIV5Z{4_F5(w>n)d-TNDTNOl)}^(cwE(U-%!O-HFPr%?~S%S*thz0sWlJpS5!nK zwaBqVkEe@j;GzNm2xO-|OL;E-6%IGl{;YguX{6_H%Qu%b(+8_Q=v?G2TSIf!=A*co z`h1+xQt}-2(75Qk5?ah7#(Hx19pVdHAG>q8f|XNs{Rscj^_=#hFRUSRxVmKdv105J z<^8bWq<|&gE5JT`o_7h0lBM$mKN5op4Qme~r%2E6Znl$upzOx%%Rr|;TGSj-?E?9> zXjcl;;}jpq{STv!uRk{KdQQ8A+8LW;62opT&;G0xC0+SHbcefETvH)1nA)%J1PHD; zoWk6nd3eCPD&4=7$#CJFez1N_D>1EMags0VSe68nD#8;%PnKa`wg>Xu6Dd6f^yw26NJ;l&pgJR2Hwk{r*8D-OL{@iYr|9Oou$ZZ zmu5C9;X48Ay=7r71Mi1rW%Ew%k?&Pzsphf~&BH{R+o^f`Cm#=JE5 zHw&jMA(1P`WHPg(H2!0>%CotD!h8&1Iz^fQXr5m#ta z9-o~`NJp+Hfyrm#gr(rIQ@=ezz@sjpR7MXvOYNlCE!N`*Y!}M zs0wz-i)kW^e`vv==F!T)S9M>qCDLopbU*bHNFdF25X&({4u1u7z~+(Kc9F3WJ;@gu zbe=#dQzl=danJEJ<#byFqZ7U|)R!48#Ube9|0kEC67$1ynkuX7S7rTdryZeUQ;}pu z;5`z`r=ceU8wby{tS=bxfr*EcBnw2Ikbll@9>>Lh=h|n_x#!P~TLt6NWpzD($qbZ( zbXv%lm$q%pc>au=Q?}`XUXfcgW;AZ7)$hsu`mzh4`9T^Ehs;R#&(|8)yFcB@Vt#eZ z>K>_xs|tdUFif$OSpg?bIV%TO%O{`O)>I%@ z!Kn1xJWdrXb<;>CmaCd)lyktW-^q~?RKTmu0%IPsW;sDPJ-xT;nlP9kJ2hZBh9#RZ zd*Lnj<6zMT?65EED*ILS&hT(l3?A`qecRXB!hSETXv^u33p(>_)WlOT_n*58($n4o zRSffO?19OT0*=z`vT(DNYv5M9&40DsGvrir0?+{DgvGITnNMfZr5D=C{~ z`F5R}f6)ThXthQh�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 z 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ⅅ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 literal 0 HcmV?d00001 diff --git a/apistuff folder/thisolddog.jpg b/apistuff folder/thisolddog.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eb4ed9ed09906835dba768f25aebf5d962ce2ce2 GIT binary patch literal 47779 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 literal 0 HcmV?d00001 diff --git a/apistuff folder/yeslawd.jpg b/apistuff folder/yeslawd.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0763063a36a190dad1d044bfe7d07c7a5b5086d7 GIT binary patch literal 14906 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 + + + + Album-Api + + +

{'results':[{'id':1,'title':'Yes Lawd','artist':'Anderson .Paak','cover_art':'yeslawd.jpg'},{'id':2,'title':'444','artist':'Jay-Z','cover_art':'4:44.jpg'},{'id':3,'title':'Good Kid Maad City','artist':'Kendrick Lamar','cover_art':'goodkidmaadcity.jpg'},{'id':4,'title':'Boomiverse','artist':'Big Boi','cover_art':'boomiverse.jpg'},{'id':5,'title':'Crack Up','artist':'Fleet Foxes','cover_art':'crackup.jpg'},{'id':6,'title':'','artist':'','cover_art':''},{'id':7,'title':'Neva Left','artist':'Snoop Dogg','cover_art':'nevaleft.jpg'},{'id':8,'title':'This Old Dog','artist':'Mac DeMarco','cover_art':'thisolddog.jpg'}]}

+ + diff --git a/playlist.css b/playlist.css index 2ca2daf..3e89369 100644 --- a/playlist.css +++ b/playlist.css @@ -1,16 +1,17 @@ -body{ +body { box-sizing: border-box; - top:-8px; - left:-8px; + top: -8px; + left: -8px; position: relative; } .test { - height:100px; - width:100px; + height: 100px; + width: 100px; background-color: black; } + /*// ----------- SPLASH PAGE -----------//*/ .header { @@ -30,20 +31,21 @@ body{ bottom: 0px; } -.footerdiv{ - margin-left: 50px; - margin-top: -20px; +.footerdiv { + margin-left: 50px; + margin-top: -20px; } -.footertext{ + +.footertext { font-size: 2em; font-variant: small-caps; font-family: helvetica; color: white; } -h1{ +h1 { font-size: 2.5em; - color:white; + color: white; font-family: helvetica; /*margin: 0px;*/ margin-top: 80px; @@ -51,28 +53,30 @@ h1{ font-weight: 200; } -img{ +img { margin-right: 70px; } -.albumscroll{ +.albumscroll { width: 100%; height: 300px; /*background-color:orange;*/ /*margin-left: auto; margin-right: auto;*/ } -.albumholder{ + +.albumholder { position: absolute; margin-top: 150px; - margin-left:80px; + margin-left: 80px; /*background-color: blue;*/ - height:150px; + height: 150px; width: 100%; overflow: auto; white-space: nowrap; } -.album{ + +.album { height: 100px; width: 100px; background-color: red; @@ -80,36 +84,35 @@ img{ margin-right: 55px; } -.outtergreybox{ +.outtergreybox { margin-left: auto; margin-right: auto; height: 400px; width: 86%; } - -.greybox{ +.greybox { background-color: lightgray; - border:3px solid black; + border: 3px solid black; /*height: 300px;*/ } -.buttons{ +.buttons { height: 10px; - margin-top:30px; + margin-top: 30px; } -.button{ +.button { width: 220px; height: 70px; - background-color:#2e1503; + background-color: #2e1503; margin-right: 5px; display: inline-block; display: relative; border-radius: 10px; } -.buttontext{ +.buttontext { font-size: 2em; font-family: helvetica; color: white; @@ -121,12 +124,12 @@ img{ } .center { -margin-left: auto; -margin-right: auto; -display: relative; + margin-left: auto; + margin-right: auto; + display: relative; } -h4{ +h4 { font-family: helvetica; font-size: 2em; margin-left: 20px; @@ -135,7 +138,6 @@ h4{ padding: 0; } - .flex-container { display: flex; flex-direction: column; diff --git a/playlist.html b/playlist.html index 18deb45..b7bc0ff 100644 --- a/playlist.html +++ b/playlist.html @@ -1,23 +1,22 @@ - - - Splash Playlist Page - - - - - - -
-

click an album to add its tracks to the bin

-
-
-
- -
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-

clear tracks

-
-
-
-
-

submit bin

-
+ +
+
+
+
+

clear tracks

+
+
+

submit bin

+
+
- + + + + diff --git a/playlist.js b/playlist.js index a971fe9..4c965a9 100644 --- a/playlist.js +++ b/playlist.js @@ -1,18 +1,18 @@ -function readyFn( jQuery ) { - console.log("here we go") +function readyFn(jQuery) { + console.log("here we go") var collection = {}; // Here is a function we'll call later function getRandomLookingArray(min, max, n) { - // n is the number of elements in array - // min is the minimum possible value - // max is the max posible value - array = []; - while (array.length < n){ - var num = Math.floor(Math.random() * (max - min + 1)) + min; - if (num !== array[array.length-1] && num !== array[array.length-2] ){ - array.push(num); + // n is the number of elements in array + // min is the minimum possible value + // max is the max posible value + array = []; + while (array.length < n) { + var num = Math.floor(Math.random() * (max - min + 1)) + min; + if (num !== array[array.length - 1] && num !== array[array.length - 2]) { + array.push(num); } } return array; @@ -20,91 +20,82 @@ function readyFn( jQuery ) { // populates the album covers on page load - $( document ).ready( function() { + $(document).ready(function() { // lets get the info from the api - $.get('https://lit-fortress-6467.herokuapp.com/object', function(data){ - // let's make an array of 15 numbers that doesn't look repetitive at a glance - var randomLookingArray = getRandomLookingArray(0,4,15); - // this loop is appending new images to the .albumholder div in a way that doesn't look repetitive at a glance - for (var i=0; is + + // is the location of this block of code ok? It breaks when I move it outside of the on-load handler. Maybe there should be a more general GET? + + // click event for when any img gets clicked + $($('img')).click(function(event) { + console.log('clickworks') + // this variable stores the data that allows our loop to identify which object is clicked upon. + var albumMatch = ($(this).attr('src')); + console.log(albumMatch) + // now that we have the data to compare against, let's find the matching src info from an object in our loop + for (var j = 0; j < data['results'].length; j++) { + // we'll look thru all of objects cover art value and if it is equal to our albumMatch variable, we'll assign the selectedArtTit variable with that objects artist: title info. + if (albumMatch == data['results'][j]['cover_art']) { + selectedArtTit = (data['results'][j]['artist'] + ': ' + data['results'][j]['title']) + artist = data['results'][j]['artist']; + album = data['results'][j]['title'] + collection[artist] = album; - } - var artist; // just artist name - for making object collection - var album; // just album name - for making object collection - var selectedArtTit; // selected artist title info - var allImg = $('img') // a selector for all of the s - - - // click event for when any img gets clicked - $($('img')).click(function(event){ - console.log('clickworks') - // this variable stores the data that allows our loop to identify which object is clicked upon. - var albumMatch = ($(this).attr('src')); - console.log(albumMatch) - // now that we have the data to compare against, let's find the matching src info from an object in our loop - for (var j=0; j to append in our grey box - var infoToAppend = document.createElement('h4'); - // set that

's inner text to selectedArtTit' - infoToAppend.innerText = selectedArtTit; - // now append it to the flex-container that's classed as .texthere - $('.texthere').append(infoToAppend); - // console.log(collection); - }) + // create new

to append in our grey box + var infoToAppend = document.createElement('h4'); + // set that

's inner text to selectedArtTit' + infoToAppend.innerText = selectedArtTit; + // now append it to the flex-container that's classed as .texthere + $('.texthere').append(infoToAppend); + // console.log(collection); }) + }) }) // the button to clear the artist: album info in greybox - $('.cleartracks').click(function(event){ + $('.cleartracks').click(function(event) { $('.texthere').empty(); }) - $('.submitbin').click(function(event){ - // $.post('https://lit-fortress-6467.herokuapp.com/post', function(){ - // console.log('posted to api') - // }) + + // submit bin button handler + $('.submitbin').click(function(event) { console.log("sending to API: "); console.log(collection) + // and here's the post $.ajax({ type: "POST", url: "https://lit-fortress-6467.herokuapp.com/post", data: JSON.stringify(collection), contentType: "application/json; charset=utf-8", - success: alert('success'), + success: alert('Posted!'), dataType: "json", - }); }) - - - - - - - - } // this is the end of the ready function we always run with jQuery. -$( window ).on( "load", readyFn ); +$(window).on("load", readyFn); diff --git a/splash.css b/splash.css index d7ea130..51f1b3e 100644 --- a/splash.css +++ b/splash.css @@ -1,16 +1,17 @@ -body{ +body { box-sizing: border-box; - top:-8px; - left:-8px; + top: -8px; + left: -8px; position: relative; } .test { - height:100px; - width:100px; + height: 100px; + width: 100px; background-color: black; } + /*// ----------- SPLASH PAGE -----------//*/ .header { @@ -31,11 +32,12 @@ body{ bottom: 0px; } -.footerdiv{ - margin-left: 50px; - margin-top: -20px; +.footerdiv { + margin-left: 50px; + margin-top: -20px; } -.footertext{ + +.footertext { font-size: 2em; font-variant: small-caps; font-family: helvetica; @@ -43,8 +45,8 @@ body{ } .containerleft { - width:50%; - height:100vh; + width: 50%; + height: 100vh; background-color: #f3f3f3; display: inline-block; margin: 0px; @@ -52,8 +54,8 @@ body{ } .containerright { - width:50%; - height:100vh; + width: 50%; + height: 100vh; /*background-color: blue;*/ /*opacity: 0.19;*/ display: inline-block; @@ -62,43 +64,43 @@ body{ position: relative; } -.containerright:after{ - content:''; +.containerright:after { + content: ''; display: inline-block; background-size: cover; background-image: url("./resources/track.jpg"); - width:100%; - height:100vh; - position:absolute; - top:0; - left:0; - opacity:0.19; + width: 100%; + height: 100vh; + position: absolute; + top: 0; + left: 0; + opacity: 0.19; float: right; } -.trackbin{ +.trackbin { position: absolute; /*background-color: black;*/ top: 40%; left: 20%; - } -h1{ + +h1 { font-size: 4.5em; - color:#4B0082; + color: #4B0082; font-family: helvetica; margin: 0px; } -.trackbutton{ +.trackbutton { background-color: #2e1503; height: 100px; width: 19em; - position:relative; + position: relative; border-radius: 5%; } -.choosetracks{ +.choosetracks { position: absolute; /*top: 5%;*/ text-align: center; @@ -108,17 +110,16 @@ h1{ font-family: helvetica; color: white; font-weight: 200; - } -.album{ +.album { width: 330px; /*background-color:blue;*/ height: 330px; margin-left: auto; - margin-right:auto; - margin-top:30px; - margin-bottom:30px; + margin-right: auto; + margin-top: 30px; + margin-bottom: 30px; } .top { @@ -129,7 +130,7 @@ h1{ z-index: 1; } -#toppic, #midpic, #botpic{ +#toppic, #midpic, #botpic { margin-top: 0px; opacity: 1; position: relative; @@ -139,19 +140,14 @@ h1{ height: 330px; } - - - - - -.middle{ +.middle { background-color: blue; opacity: 1; position: relative; z-index: 1; } -.bottom{ +.bottom { background-color: pink; opacity: 1; position: relative; diff --git a/splash.html b/splash.html index af3c7e7..094091c 100644 --- a/splash.html +++ b/splash.html @@ -1,50 +1,52 @@ - - - Splash Landing Page - - - - - - -
-
-
+ + + Splash Landing Page + + + + + + + +
+
+ +
- + + - From edc2db5e18678f7d7286d4d2c8c5dbafca01e445 Mon Sep 17 00:00:00 2001 From: Dylan Cunningham Date: Fri, 14 Jul 2017 15:41:48 -0700 Subject: [PATCH 6/6] post surge layout improvements implemented --- splash.html => index.html | 0 splash.css | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) rename splash.html => index.html (100%) diff --git a/splash.html b/index.html similarity index 100% rename from splash.html rename to index.html diff --git a/splash.css b/splash.css index 51f1b3e..b98d827 100644 --- a/splash.css +++ b/splash.css @@ -113,9 +113,9 @@ h1 { } .album { - width: 330px; + width: 240px; /*background-color:blue;*/ - height: 330px; + height: 240px; margin-left: auto; margin-right: auto; margin-top: 30px; @@ -136,8 +136,8 @@ h1 { position: relative; z-index: 1; src: url('./images/red.jpg'); - width: 330px; - height: 330px; + width: 240px; + height: 240px; } .middle {