From fe5b68e1c45be43fa49a03fbb03f9cf10233d13b Mon Sep 17 00:00:00 2001 From: baldo Date: Tue, 2 Aug 2022 15:24:19 +0200 Subject: [PATCH] Updated bower dependencies for client. --- .../angular-route/.bower.json | 12 +- app/bower_components/angular-route/README.md | 11 +- .../angular-route/angular-route.js | 6 +- .../angular-route/angular-route.min.js | 6 +- app/bower_components/angular-route/bower.json | 4 +- .../angular-route/package.json | 2 +- .../angular-sanitize/.bower.json | 12 +- .../angular-sanitize/README.md | 11 +- .../angular-sanitize/angular-sanitize.js | 64 +- .../angular-sanitize/angular-sanitize.min.js | 27 +- .../angular-sanitize.min.js.map | 6 +- .../angular-sanitize/bower.json | 4 +- .../angular-sanitize/package.json | 2 +- app/bower_components/angular/.bower.json | 10 +- app/bower_components/angular/README.md | 11 +- app/bower_components/angular/angular.js | 537 ++-- app/bower_components/angular/angular.min.js | 692 +++--- .../angular/angular.min.js.map | 6 +- app/bower_components/angular/bower.json | 2 +- app/bower_components/angular/package.json | 2 +- .../bootstrap-sass-official/.bower.json | 10 +- .../bootstrap-sass-official/CHANGELOG.md | 8 + .../assets/javascripts/bootstrap-sprockets.js | 6 +- .../stylesheets/bootstrap/_carousel.scss | 7 +- .../assets/stylesheets/bootstrap/_code.scss | 5 +- .../assets/stylesheets/bootstrap/_forms.scss | 3 +- .../stylesheets/bootstrap/_jumbotron.scss | 7 +- .../assets/stylesheets/bootstrap/_navbar.scss | 3 +- .../assets/stylesheets/bootstrap/_type.scss | 19 +- .../stylesheets/bootstrap/_variables.scss | 5 +- .../bootstrap/mixins/_grid-framework.scss | 13 +- .../stylesheets/bootstrap/mixins/_grid.scss | 57 +- .../bootstrap/mixins/_nav-divider.scss | 3 +- .../bootstrap/mixins/_nav-vertical-align.scss | 5 +- .../bootstrap-sass-official/package.json | 4 +- app/bower_components/es5-shim/.bower.json | 20 +- .../es5-shim/{CHANGES => CHANGELOG.md} | 85 +- app/bower_components/es5-shim/Makefile | 63 - app/bower_components/es5-shim/README.md | 68 +- app/bower_components/es5-shim/bower.json | 10 +- app/bower_components/es5-shim/es5-sham.js | 102 +- app/bower_components/es5-shim/es5-sham.map | 2 +- app/bower_components/es5-shim/es5-sham.min.js | 4 +- app/bower_components/es5-shim/es5-shim.js | 480 +++- app/bower_components/es5-shim/es5-shim.map | 2 +- app/bower_components/es5-shim/es5-shim.min.js | 4 +- app/bower_components/es5-shim/package.json | 155 +- app/bower_components/geolib/.bower.json | 12 +- app/bower_components/geolib/Gruntfile.js | 228 +- app/bower_components/geolib/LICENSE | 21 - app/bower_components/geolib/README.md | 308 +-- app/bower_components/geolib/bower.json | 6 +- app/bower_components/geolib/component.json | 52 - .../geolib/dist/geolib.elevation.js | 190 -- .../geolib/dist/geolib.elevation.min.js | 10 - .../geolib/dist/geolib.isPointInsideRobust.js | 744 ------ .../dist/geolib.isPointInsideRobust.min.js | 15 - app/bower_components/geolib/dist/geolib.js | 1380 ----------- .../geolib/dist/geolib.min.js | 11 - app/bower_components/geolib/geolib.js | 1069 ++++++++ app/bower_components/geolib/geolib.min.js | 10 + app/bower_components/geolib/index.html | 724 +++--- app/bower_components/geolib/meteor/README.md | 25 - app/bower_components/geolib/meteor/export.js | 3 - app/bower_components/geolib/meteor/package.js | 30 - app/bower_components/geolib/meteor/test.js | 5 - app/bower_components/geolib/package.json | 26 +- .../geolib/src/geolib.elevation.js | 299 +-- .../geolib/src/geolib.isPointInsideRobust.js | 744 ------ app/bower_components/geolib/src/geolib.js | 2204 +++++++---------- app/bower_components/jquery/.bower.json | 10 +- app/bower_components/jquery/AUTHORS.txt | 14 +- app/bower_components/jquery/LICENSE.txt | 2 +- app/bower_components/jquery/README.md | 33 +- app/bower_components/jquery/dist/core.js | 399 --- app/bower_components/jquery/dist/jquery.js | 1415 ++++++----- .../jquery/dist/jquery.min.js | 4 +- .../jquery/dist/jquery.min.map | 2 +- .../jquery/dist/jquery.slim.js | 1355 ++++++---- .../jquery/dist/jquery.slim.min.js | 4 +- .../jquery/dist/jquery.slim.min.map | 2 +- .../jquery/external/sizzle/dist/sizzle.js | 836 ++++--- .../jquery/external/sizzle/dist/sizzle.min.js | 4 +- .../external/sizzle/dist/sizzle.min.map | 2 +- .../jquery/src/.eslintrc.json | 14 - app/bower_components/jquery/src/ajax.js | 30 +- app/bower_components/jquery/src/ajax/jsonp.js | 2 +- .../jquery/src/ajax/var/nonce.js | 2 +- .../jquery/src/attributes/attr.js | 2 +- .../jquery/src/attributes/classes.js | 6 +- app/bower_components/jquery/src/core.js | 49 +- .../jquery/src/core/access.js | 6 +- .../jquery/src/core/camelCase.js | 2 +- .../jquery/src/core/nodeName.js | 4 +- .../jquery/src/{ajax => core}/parseXML.js | 17 +- app/bower_components/jquery/src/css.js | 42 +- .../jquery/src/css/support.js | 50 +- .../jquery/src/css/var/swap.js | 4 +- app/bower_components/jquery/src/deferred.js | 18 +- app/bower_components/jquery/src/deprecated.js | 31 +- .../ajax-event-alias.js} | 4 +- .../jquery/src/deprecated/event.js | 50 + app/bower_components/jquery/src/dimensions.js | 7 +- app/bower_components/jquery/src/effects.js | 14 +- .../jquery/src/effects/Tween.js | 2 +- app/bower_components/jquery/src/event.js | 72 +- .../jquery/src/event/alias.js | 29 - .../jquery/src/event/focusin.js | 7 +- .../jquery/src/event/trigger.js | 2 +- .../jquery/src/exports/global.js | 4 +- app/bower_components/jquery/src/jquery.js | 3 +- .../jquery/src/manipulation.js | 25 +- .../jquery/src/manipulation/_evalUrl.js | 4 +- .../jquery/src/manipulation/support.js | 6 + .../jquery/src/manipulation/wrapMap.js | 15 +- app/bower_components/jquery/src/offset.js | 7 +- .../jquery/src/selector-native.js | 12 +- app/bower_components/jquery/src/serialize.js | 6 +- app/bower_components/jquery/src/traversing.js | 17 +- app/bower_components/jquery/src/var/concat.js | 7 - app/bower_components/jquery/src/var/flat.js | 16 + .../jquery/src/var/isFunction.js | 16 +- app/bower_components/lodash/.bower.json | 10 +- app/bower_components/lodash/.travis.yml | 10 +- app/bower_components/lodash/README.md | 8 +- .../lodash/dist/lodash.core.js | 31 +- .../lodash/dist/lodash.core.min.js | 14 +- app/bower_components/lodash/dist/lodash.js | 157 +- .../lodash/dist/lodash.min.js | 271 +- app/bower_components/lodash/doc/README.md | 671 ++--- app/bower_components/lodash/lodash.js | 157 +- app/bower_components/lodash/package-lock.json | 16 +- app/bower_components/lodash/package.json | 4 +- app/bower_components/lodash/test/test.js | 134 +- app/index.html | 2 +- bower.json | 16 +- 136 files changed, 7596 insertions(+), 9284 deletions(-) rename app/bower_components/es5-shim/{CHANGES => CHANGELOG.md} (82%) delete mode 100644 app/bower_components/es5-shim/Makefile delete mode 100644 app/bower_components/geolib/LICENSE delete mode 100644 app/bower_components/geolib/component.json delete mode 100644 app/bower_components/geolib/dist/geolib.elevation.js delete mode 100644 app/bower_components/geolib/dist/geolib.elevation.min.js delete mode 100644 app/bower_components/geolib/dist/geolib.isPointInsideRobust.js delete mode 100644 app/bower_components/geolib/dist/geolib.isPointInsideRobust.min.js delete mode 100644 app/bower_components/geolib/dist/geolib.js delete mode 100644 app/bower_components/geolib/dist/geolib.min.js create mode 100644 app/bower_components/geolib/geolib.js create mode 100644 app/bower_components/geolib/geolib.min.js delete mode 100644 app/bower_components/geolib/meteor/README.md delete mode 100644 app/bower_components/geolib/meteor/export.js delete mode 100644 app/bower_components/geolib/meteor/package.js delete mode 100644 app/bower_components/geolib/meteor/test.js delete mode 100644 app/bower_components/geolib/src/geolib.isPointInsideRobust.js delete mode 100644 app/bower_components/jquery/dist/core.js delete mode 100644 app/bower_components/jquery/src/.eslintrc.json rename app/bower_components/jquery/src/{ajax => core}/parseXML.js (54%) rename app/bower_components/jquery/src/{event/ajax.js => deprecated/ajax-event-alias.js} (74%) create mode 100644 app/bower_components/jquery/src/deprecated/event.js delete mode 100644 app/bower_components/jquery/src/event/alias.js delete mode 100644 app/bower_components/jquery/src/var/concat.js create mode 100644 app/bower_components/jquery/src/var/flat.js diff --git a/app/bower_components/angular-route/.bower.json b/app/bower_components/angular-route/.bower.json index f6a0ed7..bcd2054 100644 --- a/app/bower_components/angular-route/.bower.json +++ b/app/bower_components/angular-route/.bower.json @@ -1,20 +1,20 @@ { "name": "angular-route", - "version": "1.7.9", + "version": "1.8.3", "license": "MIT", "main": "./angular-route.js", "ignore": [], "dependencies": { - "angular": "1.7.9" + "angular": "1.8.3" }, "homepage": "https://github.com/angular/bower-angular-route", - "_release": "1.7.9", + "_release": "1.8.3", "_resolution": { "type": "version", - "tag": "v1.7.9", - "commit": "ff545591491260ebff98892fac5b26bc34b7e4c4" + "tag": "v1.8.3", + "commit": "01f39b724c144ffc556bef7f3bca43b1b5662fe7" }, "_source": "https://github.com/angular/bower-angular-route.git", - "_target": "1.7.9", + "_target": "1.8.3", "_originalSource": "angular-route" } \ No newline at end of file diff --git a/app/bower_components/angular-route/README.md b/app/bower_components/angular-route/README.md index 2cd4f90..359e565 100644 --- a/app/bower_components/angular-route/README.md +++ b/app/bower_components/angular-route/README.md @@ -1,8 +1,11 @@ # packaged angular-route -This repo is for distribution on `npm` and `bower`. The source for this module is in the -[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngRoute). -Please file issues and pull requests against that repo. +**This package contains the legacy AngularJS (version 1.x). AngularJS support has officially ended +as of January 2022. +[See what ending support means](https://docs.angularjs.org/misc/version-support-status) and +[read the end of life announcement](https://goo.gle/angularjs-end-of-life).** + +**[See `@angular/core` for the actively supported Angular](https://npmjs.com/@angular/core).** ## Install @@ -47,7 +50,7 @@ Documentation is available on the The MIT License -Copyright (c) 2010-2015 Google, Inc. http://angularjs.org +Copyright (c) 2022 Google LLC Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/app/bower_components/angular-route/angular-route.js b/app/bower_components/angular-route/angular-route.js index 04a6d4f..c08ca5f 100644 --- a/app/bower_components/angular-route/angular-route.js +++ b/app/bower_components/angular-route/angular-route.js @@ -1,6 +1,6 @@ /** - * @license AngularJS v1.7.9 - * (c) 2010-2018 Google, Inc. http://angularjs.org + * @license AngularJS v1.8.3 + * (c) 2010-2020 Google LLC. http://angularjs.org * License: MIT */ (function(window, angular) {'use strict'; @@ -101,7 +101,7 @@ var noop; /* global -ngRouteModule */ var ngRouteModule = angular. module('ngRoute', []). - info({ angularVersion: '1.7.9' }). + info({ angularVersion: '1.8.3' }). provider('$route', $RouteProvider). // Ensure `$route` will be instantiated in time to capture the initial `$locationChangeSuccess` // event (unless explicitly disabled). This is necessary in case `ngView` is included in an diff --git a/app/bower_components/angular-route/angular-route.min.js b/app/bower_components/angular-route/angular-route.min.js index d262216..754e16c 100644 --- a/app/bower_components/angular-route/angular-route.min.js +++ b/app/bower_components/angular-route/angular-route.min.js @@ -1,11 +1,11 @@ /* - AngularJS v1.7.9 - (c) 2010-2018 Google, Inc. http://angularjs.org + AngularJS v1.8.3 + (c) 2010-2020 Google LLC. http://angularjs.org License: MIT */ (function(I,b){'use strict';function z(b,h){var d=[],c=b.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)(\*\?|[?*])?/g,function(b,c,h,k){b="?"===k||"*?"===k;k="*"===k||"*?"===k;d.push({name:h,optional:b});c=c||"";return(b?"(?:"+c:c+"(?:")+(k?"(.+?)":"([^/]+)")+(b?"?)?":")")}).replace(/([/$*])/g,"\\$1");h.ignoreTrailingSlashes&&(c=c.replace(/\/+$/,"")+"/*");return{keys:d,regexp:new RegExp("^"+c+"(?:[?#]|$)",h.caseInsensitiveMatch?"i":"")}}function A(b){p&&b.get("$route")}function v(u,h,d){return{restrict:"ECA", terminal:!0,priority:400,transclude:"element",link:function(c,f,g,l,k){function q(){r&&(d.cancel(r),r=null);m&&(m.$destroy(),m=null);s&&(r=d.leave(s),r.done(function(b){!1!==b&&(r=null)}),s=null)}function C(){var g=u.current&&u.current.locals;if(b.isDefined(g&&g.$template)){var g=c.$new(),l=u.current;s=k(g,function(g){d.enter(g,null,s||f).done(function(d){!1===d||!b.isDefined(w)||w&&!c.$eval(w)||h()});q()});m=l.scope=g;m.$emit("$viewContentLoaded");m.$eval(p)}else q()}var m,s,r,w=g.autoscroll,p=g.onload|| -"";c.$on("$routeChangeSuccess",C);C()}}}function x(b,h,d){return{restrict:"ECA",priority:-400,link:function(c,f){var g=d.current,l=g.locals;f.html(l.$template);var k=b(f.contents());if(g.controller){l.$scope=c;var q=h(g.controller,l);g.controllerAs&&(c[g.controllerAs]=q);f.data("$ngControllerController",q);f.children().data("$ngControllerController",q)}c[g.resolveAs||"$resolve"]=l;k(c)}}}var D,E,F,G,y=b.module("ngRoute",[]).info({angularVersion:"1.7.9"}).provider("$route",function(){function u(d, +"";c.$on("$routeChangeSuccess",C);C()}}}function x(b,h,d){return{restrict:"ECA",priority:-400,link:function(c,f){var g=d.current,l=g.locals;f.html(l.$template);var k=b(f.contents());if(g.controller){l.$scope=c;var q=h(g.controller,l);g.controllerAs&&(c[g.controllerAs]=q);f.data("$ngControllerController",q);f.children().data("$ngControllerController",q)}c[g.resolveAs||"$resolve"]=l;k(c)}}}var D,E,F,G,y=b.module("ngRoute",[]).info({angularVersion:"1.8.3"}).provider("$route",function(){function u(d, c){return b.extend(Object.create(d),c)}D=b.isArray;E=b.isObject;F=b.isDefined;G=b.noop;var h={};this.when=function(d,c){var f;f=void 0;if(D(c)){f=f||[];for(var g=0,l=c.length;g * This method must be called during the {@link angular.Module#config config} phase. Once the @@ -426,50 +426,28 @@ function $SanitizeProvider() { } /** - * Create an inert document that contains the dirty HTML that needs sanitizing - * Depending upon browser support we use one of three strategies for doing this. - * Support: Safari 10.x -> XHR strategy - * Support: Firefox -> DomParser strategy + * Create an inert document that contains the dirty HTML that needs sanitizing. + * We use the DOMParser API by default and fall back to createHTMLDocument if DOMParser is not + * available. */ var getInertBodyElement /* function(html: string): HTMLBodyElement */ = (function(window, document) { - var inertDocument; - if (document && document.implementation) { - inertDocument = document.implementation.createHTMLDocument('inert'); - } else { + if (isDOMParserAvailable()) { + return getInertBodyElement_DOMParser; + } + + if (!document || !document.implementation) { throw $sanitizeMinErr('noinert', 'Can\'t create an inert html document'); } + var inertDocument = document.implementation.createHTMLDocument('inert'); var inertBodyElement = (inertDocument.documentElement || inertDocument.getDocumentElement()).querySelector('body'); + return getInertBodyElement_InertDocument; - // Check for the Safari 10.1 bug - which allows JS to run inside the SVG G element - inertBodyElement.innerHTML = ''; - if (!inertBodyElement.querySelector('svg')) { - return getInertBodyElement_XHR; - } else { - // Check for the Firefox bug - which prevents the inner img JS from being sanitized - inertBodyElement.innerHTML = '

'; - if (inertBodyElement.querySelector('svg img')) { - return getInertBodyElement_DOMParser; - } else { - return getInertBodyElement_InertDocument; - } - } - - function getInertBodyElement_XHR(html) { - // We add this dummy element to ensure that the rest of the content is parsed as expected - // e.g. leading whitespace is maintained and tags like `` do not get hoisted to the `` tag. - html = '' + html; + function isDOMParserAvailable() { try { - html = encodeURI(html); + return !!getInertBodyElement_DOMParser(''); } catch (e) { - return undefined; + return false; } - var xhr = new window.XMLHttpRequest(); - xhr.responseType = 'document'; - xhr.open('GET', 'data:text/html;charset=utf-8,' + html, false); - xhr.send(null); - var body = xhr.response.body; - body.firstChild.remove(); - return body; } function getInertBodyElement_DOMParser(html) { @@ -711,7 +689,7 @@ function sanitizeText(chars) { // define ngSanitize module and register $sanitize service angular.module('ngSanitize', []) .provider('$sanitize', $SanitizeProvider) - .info({ angularVersion: '1.7.9' }); + .info({ angularVersion: '1.8.3' }); /** * @ngdoc filter diff --git a/app/bower_components/angular-sanitize/angular-sanitize.min.js b/app/bower_components/angular-sanitize/angular-sanitize.min.js index 8466075..e25d4a1 100644 --- a/app/bower_components/angular-sanitize/angular-sanitize.min.js +++ b/app/bower_components/angular-sanitize/angular-sanitize.min.js @@ -1,18 +1,17 @@ /* - AngularJS v1.7.9 - (c) 2010-2018 Google, Inc. http://angularjs.org + AngularJS v1.8.3 + (c) 2010-2020 Google LLC. http://angularjs.org License: MIT */ -(function(s,c){'use strict';function P(c){var h=[];C(h,E).chars(c);return h.join("")}var D=c.$$minErr("$sanitize"),F,h,G,H,I,q,E,J,K,C;c.module("ngSanitize",[]).provider("$sanitize",function(){function f(a,e){return B(a.split(","),e)}function B(a,e){var d={},b;for(b=0;b/g,">")}function A(a){for(;a;){if(a.nodeType===s.Node.ELEMENT_NODE)for(var e=a.attributes,d=0,b=e.length;d"))},end:function(a){a=q(a);d||!0!==m[a]||!0===r[a]||(b(""));a==d&&(d=!1)},chars:function(a){d|| -b(L(a))}}};J=s.Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)};var z=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=/([^#-~ |!])/g,r=f("area,br,col,hr,img,wbr"),x=f("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),p=f("rp,rt"),n=h({},p,x),x=h({},x,f("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")),p=h({},p,f("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")), -l=f("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan"),w=f("script,style"),m=h({},r,x,p,n),O=f("background,cite,href,longdesc,src,xlink:href,xml:base"),n=f("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"), -p=f("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan", -!0),M=h({},O,p,n),N=function(a,e){function d(b){b=""+b;try{var d=(new a.DOMParser).parseFromString(b,"text/html").body;d.firstChild.remove();return d}catch(e){}}function b(a){c.innerHTML=a;e.documentMode&&A(c);return c}var g;if(e&&e.implementation)g=e.implementation.createHTMLDocument("inert");else throw D("noinert");var c=(g.documentElement||g.getDocumentElement()).querySelector("body");c.innerHTML='';return c.querySelector("svg")? -(c.innerHTML='

',c.querySelector("svg img")?d:b):function(b){b=""+b;try{b=encodeURI(b)}catch(d){return}var e=new a.XMLHttpRequest;e.responseType="document";e.open("GET","data:text/html;charset=utf-8,"+b,!1);e.send(null);b=e.response.body;b.firstChild.remove();return b}}(s,s.document)}).info({angularVersion:"1.7.9"});c.module("ngSanitize").filter("linky",["$sanitize",function(f){var h=/((s?ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i, -t=/^mailto:/i,q=c.$$minErr("linky"),s=c.isDefined,A=c.isFunction,v=c.isObject,y=c.isString;return function(c,z,u){function r(c){c&&l.push(P(c))}function x(c,g){var f,a=p(c);l.push("');r(g);l.push("")}if(null==c||""===c)return c;if(!y(c))throw q("notstring",c);for(var p=A(u)?u:v(u)?function(){return u}:function(){return{}},n=c,l=[],w,m;c=n.match(h);)w=c[0],c[2]|| -c[4]||(w=(c[3]?"http://":"mailto:")+w),m=c.index,r(n.substr(0,m)),x(w,c[0].replace(t,"")),n=n.substring(m+c[0].length);r(n);return f(l.join(""))}}])})(window,window.angular); +(function(s,e){'use strict';function O(e){var g=[];B(g,D).chars(e);return g.join("")}var C=e.$$minErr("$sanitize"),E,g,F,G,H,q,D,I,J,B;e.module("ngSanitize",[]).provider("$sanitize",function(){function h(a,d){return A(a.split(","),d)}function A(a,d){var c={},b;for(b=0;b/g,">")}function z(a){for(;a;){if(a.nodeType===s.Node.ELEMENT_NODE)for(var d=a.attributes,c=0,b=d.length;c"))},end:function(a){a=q(a);c||!0!==m[a]||!0===r[a]||(b(""));a==c&&(c=!1)},chars:function(a){c|| +b(K(a))}}};I=s.Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)};var Q=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=/([^#-~ |!])/g,r=h("area,br,col,hr,img,wbr"),x=h("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),p=h("rp,rt"),n=g({},p,x),x=g({},x,h("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")),p=g({},p,h("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")), +l=h("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan"),w=h("script,style"),m=g({},r,x,p,n),N=h("background,cite,href,longdesc,src,xlink:href,xml:base"),n=h("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"), +p=h("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan", +!0),L=g({},N,p,n),M=function(a,d){function c(b){b=""+b;try{var c=(new a.DOMParser).parseFromString(b,"text/html").body;c.firstChild.remove();return c}catch(d){}}var b;try{b=!!c("")}catch(f){b=!1}if(b)return c;if(!d||!d.implementation)throw C("noinert");b=d.implementation.createHTMLDocument("inert");var e=(b.documentElement||b.getDocumentElement()).querySelector("body");return function(a){e.innerHTML=a;d.documentMode&&z(e);return e}}(s,s.document)}).info({angularVersion:"1.8.3"}); +e.module("ngSanitize").filter("linky",["$sanitize",function(h){var g=/((s?ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,t=/^mailto:/i,q=e.$$minErr("linky"),s=e.isDefined,z=e.isFunction,v=e.isObject,y=e.isString;return function(f,e,u){function r(e){e&&l.push(O(e))}function x(f,h){var g,a=p(f);l.push("');r(h);l.push("")}if(null== +f||""===f)return f;if(!y(f))throw q("notstring",f);for(var p=z(u)?u:v(u)?function(){return u}:function(){return{}},n=f,l=[],w,m;f=n.match(g);)w=f[0],f[2]||f[4]||(w=(f[3]?"http://":"mailto:")+w),m=f.index,r(n.substr(0,m)),x(w,f[0].replace(t,"")),n=n.substring(m+f[0].length);r(n);return h(l.join(""))}}])})(window,window.angular); //# sourceMappingURL=angular-sanitize.min.js.map diff --git a/app/bower_components/angular-sanitize/angular-sanitize.min.js.map b/app/bower_components/angular-sanitize/angular-sanitize.min.js.map index 133f378..031cbd6 100644 --- a/app/bower_components/angular-sanitize/angular-sanitize.min.js.map +++ b/app/bower_components/angular-sanitize/angular-sanitize.min.js.map @@ -1,8 +1,8 @@ { "version":3, "file":"angular-sanitize.min.js", -"lineCount":17, -"mappings":"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", +"lineCount":16, +"mappings":"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", "sources":["angular-sanitize.js"], -"names":["window","angular","sanitizeText","chars","buf","htmlSanitizeWriter","writer","noop","join","$sanitizeMinErr","$$minErr","bind","extend","forEach","isArray","isDefined","lowercase","nodeContains","htmlParser","module","provider","$SanitizeProvider","stringToMap","str","lowercaseKeys","arrayToMap","split","items","obj","i","length","addElementsTo","elementsMap","newElements","attrToMap","attrs","map","ii","attr","name","value","encodeEntities","replace","SURROGATE_PAIR_REGEXP","hi","charCodeAt","low","NON_ALPHANUMERIC_REGEXP","stripCustomNsAttrs","node","nodeType","Node","ELEMENT_NODE","attributes","l","attrNode","attrName","toLowerCase","lastIndexOf","removeAttributeNode","nextNode","firstChild","getNonDescendant","propName","call","outerHTML","outerText","hasBeenInstantiated","svgEnabled","$get","$$sanitizeUri","validElements","svgElements","html","uri","isImage","test","enableSvg","this.enableSvg","addValidElements","this.addValidElements","elements","htmlElements","voidElements","htmlVoidElements","addValidAttrs","this.addValidAttrs","validAttrs","$$lowercase","htmlParserImpl","handler","undefined","inertBodyElement","getInertBodyElement","mXSSAttempts","innerHTML","start","nodeName","textContent","end","removeChild","htmlSanitizeWriterImpl","uriValidator","ignoreCurrentElement","out","push","tag","blockedElements","key","lkey","uriAttrs","prototype","contains","arg","compareDocumentPosition","optionalEndTagBlockElements","optionalEndTagInlineElements","optionalEndTagElements","blockElements","inlineElements","htmlAttrs","svgAttrs","document","getInertBodyElement_DOMParser","body","parseFromString","DOMParser","remove","e","getInertBodyElement_InertDocument","documentMode","inertDocument","implementation","createHTMLDocument","querySelector","documentElement","getDocumentElement","getInertBodyElement_XHR","encodeURI","xhr","XMLHttpRequest","responseType","open","send","response","info","angularVersion","filter","$sanitize","LINKY_URL_REGEXP","MAILTO_REGEXP","linkyMinErr","isFunction","isObject","isString","text","target","addText","addLink","url","linkAttributes","attributesFn","getAttributesObject","getEmptyAttributesObject","raw","match","index","substr","substring"] +"names":["window","angular","sanitizeText","chars","buf","htmlSanitizeWriter","writer","noop","join","$sanitizeMinErr","$$minErr","bind","extend","forEach","isArray","isDefined","lowercase","nodeContains","htmlParser","module","provider","$SanitizeProvider","stringToMap","str","lowercaseKeys","arrayToMap","split","items","obj","i","length","addElementsTo","elementsMap","newElements","attrToMap","attrs","map","ii","attr","name","value","encodeEntities","replace","SURROGATE_PAIR_REGEXP","hi","charCodeAt","low","NON_ALPHANUMERIC_REGEXP","stripCustomNsAttrs","node","nodeType","Node","ELEMENT_NODE","attributes","l","attrNode","attrName","toLowerCase","lastIndexOf","removeAttributeNode","nextNode","firstChild","getNonDescendant","propName","call","outerHTML","outerText","hasBeenInstantiated","svgEnabled","$get","$$sanitizeUri","validElements","svgElements","html","uri","isImage","test","enableSvg","this.enableSvg","addValidElements","this.addValidElements","elements","htmlElements","voidElements","htmlVoidElements","addValidAttrs","this.addValidAttrs","validAttrs","$$lowercase","htmlParserImpl","handler","undefined","inertBodyElement","getInertBodyElement","mXSSAttempts","innerHTML","start","nodeName","textContent","end","removeChild","htmlSanitizeWriterImpl","uriValidator","ignoreCurrentElement","out","push","tag","blockedElements","key","lkey","uriAttrs","prototype","contains","arg","compareDocumentPosition","optionalEndTagBlockElements","optionalEndTagInlineElements","optionalEndTagElements","blockElements","inlineElements","htmlAttrs","svgAttrs","document","getInertBodyElement_DOMParser","body","parseFromString","DOMParser","remove","e","implementation","inertDocument","createHTMLDocument","querySelector","documentElement","getDocumentElement","getInertBodyElement_InertDocument","documentMode","info","angularVersion","filter","$sanitize","LINKY_URL_REGEXP","MAILTO_REGEXP","linkyMinErr","isFunction","isObject","isString","text","target","addText","addLink","url","linkAttributes","attributesFn","getAttributesObject","getEmptyAttributesObject","raw","match","index","substr","substring"] } diff --git a/app/bower_components/angular-sanitize/bower.json b/app/bower_components/angular-sanitize/bower.json index 2786302..ef00d7a 100644 --- a/app/bower_components/angular-sanitize/bower.json +++ b/app/bower_components/angular-sanitize/bower.json @@ -1,10 +1,10 @@ { "name": "angular-sanitize", - "version": "1.7.9", + "version": "1.8.3", "license": "MIT", "main": "./angular-sanitize.js", "ignore": [], "dependencies": { - "angular": "1.7.9" + "angular": "1.8.3" } } diff --git a/app/bower_components/angular-sanitize/package.json b/app/bower_components/angular-sanitize/package.json index 0769ee8..797c2e0 100644 --- a/app/bower_components/angular-sanitize/package.json +++ b/app/bower_components/angular-sanitize/package.json @@ -1,6 +1,6 @@ { "name": "angular-sanitize", - "version": "1.7.9", + "version": "1.8.3", "description": "AngularJS module for sanitizing HTML", "main": "index.js", "scripts": { diff --git a/app/bower_components/angular/.bower.json b/app/bower_components/angular/.bower.json index 0f27610..494e92a 100644 --- a/app/bower_components/angular/.bower.json +++ b/app/bower_components/angular/.bower.json @@ -1,18 +1,18 @@ { "name": "angular", - "version": "1.7.9", + "version": "1.8.3", "license": "MIT", "main": "./angular.js", "ignore": [], "dependencies": {}, "homepage": "https://github.com/angular/bower-angular", - "_release": "1.7.9", + "_release": "1.8.3", "_resolution": { "type": "version", - "tag": "v1.7.9", - "commit": "84a5b810f33f82a552cee361268b77181691ce65" + "tag": "v1.8.3", + "commit": "142f3c4bc7d43b6de39581a0d886bbf97f8b62ef" }, "_source": "https://github.com/angular/bower-angular.git", - "_target": "1.7.9", + "_target": "1.8.3", "_originalSource": "angular" } \ No newline at end of file diff --git a/app/bower_components/angular/README.md b/app/bower_components/angular/README.md index d1bc0ed..604a2dd 100644 --- a/app/bower_components/angular/README.md +++ b/app/bower_components/angular/README.md @@ -1,8 +1,11 @@ # packaged angular -This repo is for distribution on `npm` and `bower`. The source for this module is in the -[main AngularJS repo](https://github.com/angular/angular.js). -Please file issues and pull requests against that repo. +**This package contains the legacy AngularJS (version 1.x). AngularJS support has officially ended +as of January 2022. +[See what ending support means](https://docs.angularjs.org/misc/version-support-status) and +[read the end of life announcement](https://goo.gle/angularjs-end-of-life).** + +**[See `@angular/core` for the actively supported Angular](https://npmjs.com/@angular/core).** ## Install @@ -43,7 +46,7 @@ Documentation is available on the The MIT License -Copyright (c) 2010-2015 Google, Inc. http://angularjs.org +Copyright (c) 2022 Google LLC Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/app/bower_components/angular/angular.js b/app/bower_components/angular/angular.js index 61cc190..a598d93 100644 --- a/app/bower_components/angular/angular.js +++ b/app/bower_components/angular/angular.js @@ -1,6 +1,6 @@ /** - * @license AngularJS v1.7.9 - * (c) 2010-2018 Google, Inc. http://angularjs.org + * @license AngularJS v1.8.3 + * (c) 2010-2020 Google LLC. http://angularjs.org * License: MIT */ (function(window) {'use strict'; @@ -37,7 +37,7 @@ var minErrConfig = { * non-positive or non-numeric value, removes the max depth limit. * Default: 5 * - * * `urlErrorParamsEnabled` **{Boolean}** - Specifies wether the generated error url will + * * `urlErrorParamsEnabled` **{Boolean}** - Specifies whether the generated error url will * contain the parameters of the thrown error. Disabling the parameters can be useful if the * generated error url is very long. * @@ -87,7 +87,7 @@ function isValidObjectMaxDepth(maxDepth) { * Since data will be parsed statically during a build step, some restrictions * are applied with respect to how minErr instances are created and called. * Instances should have names of the form namespaceMinErr for a minErr created - * using minErr('namespace') . Error codes, namespaces and template strings + * using minErr('namespace'). Error codes, namespaces and template strings * should all be static strings, not variables or general expressions. * * @param {string} module The namespace to use for the new minErr instance. @@ -99,7 +99,7 @@ function isValidObjectMaxDepth(maxDepth) { function minErr(module, ErrorConstructor) { ErrorConstructor = ErrorConstructor || Error; - var url = 'https://errors.angularjs.org/1.7.9/'; + var url = 'https://errors.angularjs.org/1.8.3/'; var regex = url.replace('.', '\\.') + '[\\s\\S]*'; var errRegExp = new RegExp(regex, 'g'); @@ -232,6 +232,7 @@ function minErr(module, ErrorConstructor) { hasOwnProperty, createMap, stringify, + UNSAFE_restoreLegacyJqLiteXHTMLReplacement, NODE_TYPE_ELEMENT, NODE_TYPE_ATTRIBUTE, @@ -959,8 +960,8 @@ function arrayRemove(array, value) { * - [`MediaStream`](https://developer.mozilla.org/docs/Web/API/MediaStream) * - [`Set`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set) * - [`WeakMap`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) - * - ['getter'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get)/ - * [`setter`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set)` + * - [`getter`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get)/ + * [`setter`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set) * * @param {*} source The source that will be used to make a copy. Can be any type, including * primitives, `null`, and `undefined`. @@ -1670,7 +1671,7 @@ function allowAutoBootstrap(document) { link.href = src.value; if (document.location.origin === link.origin) { - // Same-origin resources are always allowed, even for non-whitelisted schemes. + // Same-origin resources are always allowed, even for banned URL schemes. return true; } // Disabled bootstrapping unless angular.js was loaded from a known scheme used on the web. @@ -2088,6 +2089,26 @@ function bindJQuery() { bindJQueryFired = true; } +/** + * @ngdoc function + * @name angular.UNSAFE_restoreLegacyJqLiteXHTMLReplacement + * @module ng + * @kind function + * + * @description + * Restores the pre-1.8 behavior of jqLite that turns XHTML-like strings like + * `

` to `
` instead of `
`. + * The new behavior is a security fix. Thus, if you need to call this function, please try to adjust + * your code for this change and remove your use of this function as soon as possible. + + * Note that this only patches jqLite. If you use jQuery 3.5.0 or newer, please read the + * [jQuery 3.5 upgrade guide](https://jquery.com/upgrade-guide/3.5/) for more details + * about the workarounds. + */ +function UNSAFE_restoreLegacyJqLiteXHTMLReplacement() { + JQLite.legacyXHTMLReplacement = true; +} + /** * throw error if the argument is falsy. */ @@ -2807,11 +2828,11 @@ function toDebugString(obj, maxDepth) { var version = { // These placeholder strings will be replaced by grunt's `build` task. // They need to be double- or single-quoted. - full: '1.7.9', + full: '1.8.3', major: 1, - minor: 7, - dot: 9, - codeName: 'pollution-eradication' + minor: 8, + dot: 3, + codeName: 'ultimate-farewell' }; @@ -2844,6 +2865,7 @@ function publishExternalAPI(angular) { 'callbacks': {$$counter: 0}, 'getTestability': getTestability, 'reloadWithDebugInfo': reloadWithDebugInfo, + 'UNSAFE_restoreLegacyJqLiteXHTMLReplacement': UNSAFE_restoreLegacyJqLiteXHTMLReplacement, '$$minErr': minErr, '$$csp': csp, '$$encodeUriSegment': encodeUriSegment, @@ -2961,7 +2983,7 @@ function publishExternalAPI(angular) { }); } ]) - .info({ angularVersion: '1.7.9' }); + .info({ angularVersion: '1.8.3' }); } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -3054,6 +3076,16 @@ function publishExternalAPI(angular) { * - [`val()`](http://api.jquery.com/val/) * - [`wrap()`](http://api.jquery.com/wrap/) * + * jqLite also provides a method restoring pre-1.8 insecure treatment of XHTML-like tags. + * This legacy behavior turns input like `
` to `
` + * instead of `
` like version 1.8 & newer do. To restore it, invoke: + * ```js + * angular.UNSAFE_restoreLegacyJqLiteXHTMLReplacement(); + * ``` + * Note that this only patches jqLite. If you use jQuery 3.5.0 or newer, please read the + * [jQuery 3.5 upgrade guide](https://jquery.com/upgrade-guide/3.5/) for more details + * about the workarounds. + * * ## jQuery/jqLite Extras * AngularJS also provides the following additional methods and events to both jQuery and jqLite: * @@ -3133,20 +3165,36 @@ var HTML_REGEXP = /<|&#?\w+;/; var TAG_NAME_REGEXP = /<([\w:-]+)/; var XHTML_TAG_REGEXP = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi; +// Table parts need to be wrapped with `` or they're +// stripped to their contents when put in a div. +// 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. var wrapMap = { - 'option': [1, ''], - - 'thead': [1, '
', '
'], - 'col': [2, '', '
'], - 'tr': [2, '', '
'], - 'td': [3, '', '
'], - '_default': [0, '', ''] + thead: ['table'], + col: ['colgroup', 'table'], + tr: ['tbody', 'table'], + td: ['tr', 'tbody', 'table'] }; -wrapMap.optgroup = wrapMap.option; wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; +// Support: IE <10 only +// IE 9 requires an option wrapper & it needs to have the whole table structure +// set up in advance; assigning `""` to `tr.innerHTML` doesn't work, etc. +var wrapMapIE9 = { + option: [1, ''], + _default: [0, '', ''] +}; + +for (var key in wrapMap) { + var wrapMapValueClosing = wrapMap[key]; + var wrapMapValue = wrapMapValueClosing.slice().reverse(); + wrapMapIE9[key] = [wrapMapValue.length, '<' + wrapMapValue.join('><') + '>', '']; +} + +wrapMapIE9.optgroup = wrapMapIE9.option; function jqLiteIsTextNode(html) { return !HTML_REGEXP.test(html); @@ -3167,7 +3215,7 @@ function jqLiteHasData(node) { } function jqLiteBuildFragment(html, context) { - var tmp, tag, wrap, + var tmp, tag, wrap, finalHtml, fragment = context.createDocumentFragment(), nodes = [], i; @@ -3178,13 +3226,30 @@ function jqLiteBuildFragment(html, context) { // Convert html into DOM nodes tmp = fragment.appendChild(context.createElement('div')); tag = (TAG_NAME_REGEXP.exec(html) || ['', ''])[1].toLowerCase(); - wrap = wrapMap[tag] || wrapMap._default; - tmp.innerHTML = wrap[1] + html.replace(XHTML_TAG_REGEXP, '<$1>') + wrap[2]; + finalHtml = JQLite.legacyXHTMLReplacement ? + html.replace(XHTML_TAG_REGEXP, '<$1>') : + html; - // Descend through wrappers to the right content - i = wrap[0]; - while (i--) { - tmp = tmp.lastChild; + if (msie < 10) { + wrap = wrapMapIE9[tag] || wrapMapIE9._default; + tmp.innerHTML = wrap[1] + finalHtml + wrap[2]; + + // Descend through wrappers to the right content + i = wrap[0]; + while (i--) { + tmp = tmp.firstChild; + } + } else { + wrap = wrapMap[tag] || []; + + // Create wrappers & descend into them + i = wrap.length; + while (--i > -1) { + tmp.appendChild(window.document.createElement(wrap[i])); + tmp = tmp.firstChild; + } + + tmp.innerHTML = finalHtml; } nodes = concat(nodes, tmp.childNodes); @@ -8283,7 +8348,7 @@ function $TemplateCacheProvider() { * * When the original node and the replace template declare the same directive(s), they will be * {@link guide/compiler#double-compilation-and-how-to-avoid-it compiled twice} because the compiler - * does not deduplicate them. In many cases, this is not noticable, but e.g. {@link ngModel} will + * does not deduplicate them. In many cases, this is not noticeable, but e.g. {@link ngModel} will * attach `$formatters` and `$parsers` twice. * * See issue [#2573](https://github.com/angular/angular.js/issues/2573). @@ -8363,8 +8428,8 @@ function $TemplateCacheProvider() { * * Based on the context, other options may exist to mark a value as trusted / configure the behavior * of {@link ng.$sce}. For example, to restrict the `RESOURCE_URL` context to specific origins, use - * the {@link $sceDelegateProvider#resourceUrlWhitelist resourceUrlWhitelist()} - * and {@link $sceDelegateProvider#resourceUrlBlacklist resourceUrlBlacklist()}. + * the {@link $sceDelegateProvider#trustedResourceUrlList trustedResourceUrlList()} + * and {@link $sceDelegateProvider#bannedResourceUrlList bannedResourceUrlList()}. * * {@link ng.$sce#what-trusted-context-types-are-supported- Find out more about the different context types}. * @@ -8373,7 +8438,7 @@ function $TemplateCacheProvider() { * By default, `$sce` will throw an error if it detects untrusted HTML content, and will not bind the * content. * However, if you include the {@link ngSanitize ngSanitize module}, it will try to sanitize the - * potentially dangerous HTML, e.g. strip non-whitelisted tags and attributes when binding to + * potentially dangerous HTML, e.g. strip non-trusted tags and attributes when binding to * `innerHTML`. * * @example @@ -8955,30 +9020,81 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { /** * @ngdoc method - * @name $compileProvider#aHrefSanitizationWhitelist + * @name $compileProvider#aHrefSanitizationTrustedUrlList * @kind function * * @description - * Retrieves or overrides the default regular expression that is used for whitelisting of safe + * Retrieves or overrides the default regular expression that is used for determining trusted safe * urls during a[href] sanitization. * * The sanitization is a security measure aimed at preventing XSS attacks via html links. * * Any url about to be assigned to a[href] via data-binding is first normalized and turned into - * an absolute url. Afterwards, the url is matched against the `aHrefSanitizationWhitelist` + * an absolute url. Afterwards, the url is matched against the `aHrefSanitizationTrustedUrlList` * regular expression. If a match is found, the original url is written into the dom. Otherwise, * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM. * - * @param {RegExp=} regexp New regexp to whitelist urls with. + * @param {RegExp=} regexp New regexp to trust urls with. * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for * chaining otherwise. */ - this.aHrefSanitizationWhitelist = function(regexp) { + this.aHrefSanitizationTrustedUrlList = function(regexp) { if (isDefined(regexp)) { - $$sanitizeUriProvider.aHrefSanitizationWhitelist(regexp); + $$sanitizeUriProvider.aHrefSanitizationTrustedUrlList(regexp); return this; } else { - return $$sanitizeUriProvider.aHrefSanitizationWhitelist(); + return $$sanitizeUriProvider.aHrefSanitizationTrustedUrlList(); + } + }; + + + /** + * @ngdoc method + * @name $compileProvider#aHrefSanitizationWhitelist + * @kind function + * + * @deprecated + * sinceVersion="1.8.1" + * + * This method is deprecated. Use {@link $compileProvider#aHrefSanitizationTrustedUrlList + * aHrefSanitizationTrustedUrlList} instead. + */ + Object.defineProperty(this, 'aHrefSanitizationWhitelist', { + get: function() { + return this.aHrefSanitizationTrustedUrlList; + }, + set: function(value) { + this.aHrefSanitizationTrustedUrlList = value; + } + }); + + + /** + * @ngdoc method + * @name $compileProvider#imgSrcSanitizationTrustedUrlList + * @kind function + * + * @description + * Retrieves or overrides the default regular expression that is used for determining trusted safe + * urls during img[src] sanitization. + * + * The sanitization is a security measure aimed at prevent XSS attacks via html links. + * + * Any url about to be assigned to img[src] via data-binding is first normalized and turned into + * an absolute url. Afterwards, the url is matched against the `imgSrcSanitizationTrustedUrlList` + * regular expression. If a match is found, the original url is written into the dom. Otherwise, + * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM. + * + * @param {RegExp=} regexp New regexp to trust urls with. + * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for + * chaining otherwise. + */ + this.imgSrcSanitizationTrustedUrlList = function(regexp) { + if (isDefined(regexp)) { + $$sanitizeUriProvider.imgSrcSanitizationTrustedUrlList(regexp); + return this; + } else { + return $$sanitizeUriProvider.imgSrcSanitizationTrustedUrlList(); } }; @@ -8988,29 +9104,20 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { * @name $compileProvider#imgSrcSanitizationWhitelist * @kind function * - * @description - * Retrieves or overrides the default regular expression that is used for whitelisting of safe - * urls during img[src] sanitization. + * @deprecated + * sinceVersion="1.8.1" * - * The sanitization is a security measure aimed at prevent XSS attacks via html links. - * - * Any url about to be assigned to img[src] via data-binding is first normalized and turned into - * an absolute url. Afterwards, the url is matched against the `imgSrcSanitizationWhitelist` - * regular expression. If a match is found, the original url is written into the dom. Otherwise, - * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM. - * - * @param {RegExp=} regexp New regexp to whitelist urls with. - * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for - * chaining otherwise. + * This method is deprecated. Use {@link $compileProvider#imgSrcSanitizationTrustedUrlList + * imgSrcSanitizationTrustedUrlList} instead. */ - this.imgSrcSanitizationWhitelist = function(regexp) { - if (isDefined(regexp)) { - $$sanitizeUriProvider.imgSrcSanitizationWhitelist(regexp); - return this; - } else { - return $$sanitizeUriProvider.imgSrcSanitizationWhitelist(); + Object.defineProperty(this, 'imgSrcSanitizationWhitelist', { + get: function() { + return this.imgSrcSanitizationTrustedUrlList; + }, + set: function(value) { + this.imgSrcSanitizationTrustedUrlList = value; } - }; + }); /** * @ngdoc method @@ -12262,7 +12369,7 @@ function $HttpProvider() { /** * @ngdoc property - * @name $httpProvider#xsrfWhitelistedOrigins + * @name $httpProvider#xsrfTrustedOrigins * @description * * Array containing URLs whose origins are trusted to receive the XSRF token. See the @@ -12276,7 +12383,7 @@ function $HttpProvider() { * Examples: `http://example.com`, `https://api.example.com:9876` * *
- * It is not possible to whitelist specific URLs/paths. The `path`, `query` and `fragment` parts + * It is not possible to trust specific URLs/paths. The `path`, `query` and `fragment` parts * of a URL will be ignored. For example, `https://foo.com/path/bar?query=baz#fragment` will be * treated as `https://foo.com`, meaning that **all** requests to URLs starting with * `https://foo.com/` will include the XSRF token. @@ -12287,9 +12394,9 @@ function $HttpProvider() { * ```js * // App served from `https://example.com/`. * angular. - * module('xsrfWhitelistedOriginsExample', []). + * module('xsrfTrustedOriginsExample', []). * config(['$httpProvider', function($httpProvider) { - * $httpProvider.xsrfWhitelistedOrigins.push('https://api.example.com'); + * $httpProvider.xsrfTrustedOrigins.push('https://api.example.com'); * }]). * run(['$http', function($http) { * // The XSRF token will be sent. @@ -12300,7 +12407,27 @@ function $HttpProvider() { * }]); * ``` */ - var xsrfWhitelistedOrigins = this.xsrfWhitelistedOrigins = []; + var xsrfTrustedOrigins = this.xsrfTrustedOrigins = []; + + /** + * @ngdoc property + * @name $httpProvider#xsrfWhitelistedOrigins + * @description + * + * @deprecated + * sinceVersion="1.8.1" + * + * This property is deprecated. Use {@link $httpProvider#xsrfTrustedOrigins xsrfTrustedOrigins} + * instead. + */ + Object.defineProperty(this, 'xsrfWhitelistedOrigins', { + get: function() { + return this.xsrfTrustedOrigins; + }, + set: function(origins) { + this.xsrfTrustedOrigins = origins; + } + }); this.$get = ['$browser', '$httpBackend', '$$cookieReader', '$cacheFactory', '$rootScope', '$q', '$injector', '$sce', function($browser, $httpBackend, $$cookieReader, $cacheFactory, $rootScope, $q, $injector, $sce) { @@ -12328,7 +12455,7 @@ function $HttpProvider() { /** * A function to check request URLs against a list of allowed origins. */ - var urlIsAllowedOrigin = urlIsAllowedOriginFactory(xsrfWhitelistedOrigins); + var urlIsAllowedOrigin = urlIsAllowedOriginFactory(xsrfTrustedOrigins); /** * @ngdoc service @@ -12702,16 +12829,16 @@ function $HttpProvider() { * The header will — by default — **not** be set for cross-domain requests. This * prevents unauthorized servers (e.g. malicious or compromised 3rd-party APIs) from gaining * access to your users' XSRF tokens and exposing them to Cross Site Request Forgery. If you - * want to, you can whitelist additional origins to also receive the XSRF token, by adding them - * to {@link ng.$httpProvider#xsrfWhitelistedOrigins xsrfWhitelistedOrigins}. This might be + * want to, you can trust additional origins to also receive the XSRF token, by adding them + * to {@link ng.$httpProvider#xsrfTrustedOrigins xsrfTrustedOrigins}. This might be * useful, for example, if your application, served from `example.com`, needs to access your API * at `api.example.com`. - * See {@link ng.$httpProvider#xsrfWhitelistedOrigins $httpProvider.xsrfWhitelistedOrigins} for + * See {@link ng.$httpProvider#xsrfTrustedOrigins $httpProvider.xsrfTrustedOrigins} for * more details. * *
* **Warning**
- * Only whitelist origins that you have control over and make sure you understand the + * Only trusted origins that you have control over and make sure you understand the * implications of doing so. *
* @@ -12838,8 +12965,8 @@ function $HttpProvider() { angular.module('httpExample', []) .config(['$sceDelegateProvider', function($sceDelegateProvider) { - // We must whitelist the JSONP endpoint that we are using to show that we trust it - $sceDelegateProvider.resourceUrlWhitelist([ + // We must add the JSONP endpoint that we are using to the trusted list to show that we trust it + $sceDelegateProvider.trustedResourceUrlList([ 'self', 'https://angularjs.org/**' ]); @@ -13096,8 +13223,8 @@ function $HttpProvider() { * * Note that, since JSONP requests are sensitive because the response is given full access to the browser, * the url must be declared, via {@link $sce} as a trusted resource URL. - * You can trust a URL by adding it to the whitelist via - * {@link $sceDelegateProvider#resourceUrlWhitelist `$sceDelegateProvider.resourceUrlWhitelist`} or + * You can trust a URL by adding it to the trusted resource URL list via + * {@link $sceDelegateProvider#trustedResourceUrlList `$sceDelegateProvider.trustedResourceUrlList`} or * by explicitly trusting the URL via {@link $sce#trustAsResourceUrl `$sce.trustAsResourceUrl(url)`}. * * You should avoid generating the URL for the JSONP request from user provided data. @@ -17473,7 +17600,7 @@ function $ParseProvider() { var useInputs = parsedExpression.inputs && !exp.inputs; - // Propogate the literal/inputs/constant attributes + // Propagate the literal/inputs/constant attributes // ... but not oneTime since we are handling it oneTimeWatch.literal = parsedExpression.literal; oneTimeWatch.constant = parsedExpression.constant; @@ -17560,7 +17687,7 @@ function $ParseProvider() { fn.$$intercepted = parsedExpression; fn.$$interceptor = interceptorFn; - // Propogate the literal/oneTime/constant attributes + // Propagate the literal/oneTime/constant attributes fn.literal = parsedExpression.literal; fn.oneTime = parsedExpression.oneTime; fn.constant = parsedExpression.constant; @@ -19833,12 +19960,12 @@ function $RootScopeProvider() { */ function $$SanitizeUriProvider() { - var aHrefSanitizationWhitelist = /^\s*(https?|s?ftp|mailto|tel|file):/, - imgSrcSanitizationWhitelist = /^\s*((https?|ftp|file|blob):|data:image\/)/; + var aHrefSanitizationTrustedUrlList = /^\s*(https?|s?ftp|mailto|tel|file):/, + imgSrcSanitizationTrustedUrlList = /^\s*((https?|ftp|file|blob):|data:image\/)/; /** * @description - * Retrieves or overrides the default regular expression that is used for whitelisting of safe + * Retrieves or overrides the default regular expression that is used for determining trusted safe * urls during a[href] sanitization. * * The sanitization is a security measure aimed at prevent XSS attacks via HTML anchor links. @@ -19847,27 +19974,27 @@ function $$SanitizeUriProvider() { * the $sce.URL security context. When interpolation occurs a call is made to `$sce.trustAsUrl(url)` * which in turn may call `$$sanitizeUri(url, isMedia)` to sanitize the potentially malicious URL. * - * If the URL matches the `aHrefSanitizationWhitelist` regular expression, it is returned unchanged. + * If the URL matches the `aHrefSanitizationTrustedUrlList` regular expression, it is returned unchanged. * * If there is no match the URL is returned prefixed with `'unsafe:'` to ensure that when it is written * to the DOM it is inactive and potentially malicious code will not be executed. * - * @param {RegExp=} regexp New regexp to whitelist urls with. + * @param {RegExp=} regexp New regexp to trust urls with. * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for * chaining otherwise. */ - this.aHrefSanitizationWhitelist = function(regexp) { + this.aHrefSanitizationTrustedUrlList = function(regexp) { if (isDefined(regexp)) { - aHrefSanitizationWhitelist = regexp; + aHrefSanitizationTrustedUrlList = regexp; return this; } - return aHrefSanitizationWhitelist; + return aHrefSanitizationTrustedUrlList; }; /** * @description - * Retrieves or overrides the default regular expression that is used for whitelisting of safe + * Retrieves or overrides the default regular expression that is used for determining trusted safe * urls during img[src] sanitization. * * The sanitization is a security measure aimed at prevent XSS attacks via HTML image src links. @@ -19877,27 +20004,28 @@ function $$SanitizeUriProvider() { * `$sce.trustAsMediaUrl(url)` which in turn may call `$$sanitizeUri(url, isMedia)` to sanitize * the potentially malicious URL. * - * If the URL matches the `aImgSanitizationWhitelist` regular expression, it is returned unchanged. + * If the URL matches the `imgSrcSanitizationTrustedUrlList` regular expression, it is returned + * unchanged. * * If there is no match the URL is returned prefixed with `'unsafe:'` to ensure that when it is written * to the DOM it is inactive and potentially malicious code will not be executed. * - * @param {RegExp=} regexp New regexp to whitelist urls with. + * @param {RegExp=} regexp New regexp to trust urls with. * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for * chaining otherwise. */ - this.imgSrcSanitizationWhitelist = function(regexp) { + this.imgSrcSanitizationTrustedUrlList = function(regexp) { if (isDefined(regexp)) { - imgSrcSanitizationWhitelist = regexp; + imgSrcSanitizationTrustedUrlList = regexp; return this; } - return imgSrcSanitizationWhitelist; + return imgSrcSanitizationTrustedUrlList; }; this.$get = function() { return function sanitizeUri(uri, isMediaUrl) { // if (!uri) return uri; - var regex = isMediaUrl ? imgSrcSanitizationWhitelist : aHrefSanitizationWhitelist; + var regex = isMediaUrl ? imgSrcSanitizationTrustedUrlList : aHrefSanitizationTrustedUrlList; var normalizedVal = urlResolve(uri && uri.trim()).href; if (normalizedVal !== '' && !normalizedVal.match(regex)) { return 'unsafe:' + normalizedVal; @@ -20025,10 +20153,10 @@ function adjustMatchers(matchers) { * The default instance of `$sceDelegate` should work out of the box with little pain. While you * can override it completely to change the behavior of `$sce`, the common case would * involve configuring the {@link ng.$sceDelegateProvider $sceDelegateProvider} instead by setting - * your own whitelists and blacklists for trusting URLs used for loading AngularJS resources such as - * templates. Refer {@link ng.$sceDelegateProvider#resourceUrlWhitelist - * $sceDelegateProvider.resourceUrlWhitelist} and {@link - * ng.$sceDelegateProvider#resourceUrlBlacklist $sceDelegateProvider.resourceUrlBlacklist} + * your own trusted and banned resource lists for trusting URLs used for loading AngularJS resources + * such as templates. Refer {@link ng.$sceDelegateProvider#trustedResourceUrlList + * $sceDelegateProvider.trustedResourceUrlList} and {@link + * ng.$sceDelegateProvider#bannedResourceUrlList $sceDelegateProvider.bannedResourceUrlList} */ /** @@ -20041,12 +20169,12 @@ function adjustMatchers(matchers) { * The `$sceDelegateProvider` provider allows developers to configure the {@link ng.$sceDelegate * $sceDelegate service}, used as a delegate for {@link ng.$sce Strict Contextual Escaping (SCE)}. * - * The `$sceDelegateProvider` allows one to get/set the whitelists and blacklists used to ensure - * that the URLs used for sourcing AngularJS templates and other script-running URLs are safe (all - * places that use the `$sce.RESOURCE_URL` context). See - * {@link ng.$sceDelegateProvider#resourceUrlWhitelist $sceDelegateProvider.resourceUrlWhitelist} - * and - * {@link ng.$sceDelegateProvider#resourceUrlBlacklist $sceDelegateProvider.resourceUrlBlacklist}, + * The `$sceDelegateProvider` allows one to get/set the `trustedResourceUrlList` and + * `bannedResourceUrlList` used to ensure that the URLs used for sourcing AngularJS templates and + * other script-running URLs are safe (all places that use the `$sce.RESOURCE_URL` context). See + * {@link ng.$sceDelegateProvider#trustedResourceUrlList + * $sceDelegateProvider.trustedResourceUrlList} and + * {@link ng.$sceDelegateProvider#bannedResourceUrlList $sceDelegateProvider.bannedResourceUrlList}, * * For the general details about this service in AngularJS, read the main page for {@link ng.$sce * Strict Contextual Escaping (SCE)}. @@ -20062,64 +20190,117 @@ function adjustMatchers(matchers) { * * ``` * angular.module('myApp', []).config(function($sceDelegateProvider) { - * $sceDelegateProvider.resourceUrlWhitelist([ + * $sceDelegateProvider.trustedResourceUrlList([ * // Allow same origin resource loads. * 'self', * // Allow loading from our assets domain. Notice the difference between * and **. * 'http://srv*.assets.example.com/**' * ]); * - * // The blacklist overrides the whitelist so the open redirect here is blocked. - * $sceDelegateProvider.resourceUrlBlacklist([ + * // The banned resource URL list overrides the trusted resource URL list so the open redirect + * // here is blocked. + * $sceDelegateProvider.bannedResourceUrlList([ * 'http://myapp.example.com/clickThru**' * ]); * }); * ``` - * Note that an empty whitelist will block every resource URL from being loaded, and will require + * Note that an empty trusted resource URL list will block every resource URL from being loaded, and will require * you to manually mark each one as trusted with `$sce.trustAsResourceUrl`. However, templates * requested by {@link ng.$templateRequest $templateRequest} that are present in * {@link ng.$templateCache $templateCache} will not go through this check. If you have a mechanism * to populate your templates in that cache at config time, then it is a good idea to remove 'self' - * from that whitelist. This helps to mitigate the security impact of certain types of issues, like - * for instance attacker-controlled `ng-includes`. + * from the trusted resource URL lsit. This helps to mitigate the security impact of certain types + * of issues, like for instance attacker-controlled `ng-includes`. */ function $SceDelegateProvider() { this.SCE_CONTEXTS = SCE_CONTEXTS; // Resource URLs can also be trusted by policy. - var resourceUrlWhitelist = ['self'], - resourceUrlBlacklist = []; + var trustedResourceUrlList = ['self'], + bannedResourceUrlList = []; + + /** + * @ngdoc method + * @name $sceDelegateProvider#trustedResourceUrlList + * @kind function + * + * @param {Array=} trustedResourceUrlList When provided, replaces the trustedResourceUrlList with + * the value provided. This must be an array or null. A snapshot of this array is used so + * further changes to the array are ignored. + * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items + * allowed in this array. + * + * @return {Array} The currently set trusted resource URL array. + * + * @description + * Sets/Gets the list trusted of resource URLs. + * + * The **default value** when no `trustedResourceUrlList` has been explicitly set is `['self']` + * allowing only same origin resource requests. + * + *
+ * **Note:** the default `trustedResourceUrlList` of 'self' is not recommended if your app shares + * its origin with other apps! It is a good idea to limit it to only your application's directory. + *
+ */ + this.trustedResourceUrlList = function(value) { + if (arguments.length) { + trustedResourceUrlList = adjustMatchers(value); + } + return trustedResourceUrlList; + }; /** * @ngdoc method * @name $sceDelegateProvider#resourceUrlWhitelist * @kind function * - * @param {Array=} whitelist When provided, replaces the resourceUrlWhitelist with the value - * provided. This must be an array or null. A snapshot of this array is used so further - * changes to the array are ignored. - * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items - * allowed in this array. + * @deprecated + * sinceVersion="1.8.1" * - * @return {Array} The currently set whitelist array. + * This method is deprecated. Use {@link $sceDelegateProvider#trustedResourceUrlList + * trustedResourceUrlList} instead. + */ + Object.defineProperty(this, 'resourceUrlWhitelist', { + get: function() { + return this.trustedResourceUrlList; + }, + set: function(value) { + this.trustedResourceUrlList = value; + } + }); + + /** + * @ngdoc method + * @name $sceDelegateProvider#bannedResourceUrlList + * @kind function + * + * @param {Array=} bannedResourceUrlList When provided, replaces the `bannedResourceUrlList` with + * the value provided. This must be an array or null. A snapshot of this array is used so + * further changes to the array are ignored.

+ * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items + * allowed in this array.

+ * The typical usage for the `bannedResourceUrlList` is to **block + * [open redirects](http://cwe.mitre.org/data/definitions/601.html)** served by your domain as + * these would otherwise be trusted but actually return content from the redirected domain. + *

+ * Finally, **the banned resource URL list overrides the trusted resource URL list** and has + * the final say. + * + * @return {Array} The currently set `bannedResourceUrlList` array. * * @description - * Sets/Gets the whitelist of trusted resource URLs. + * Sets/Gets the `bannedResourceUrlList` of trusted resource URLs. * - * The **default value** when no whitelist has been explicitly set is `['self']` allowing only - * same origin resource requests. - * - *

- * **Note:** the default whitelist of 'self' is not recommended if your app shares its origin - * with other apps! It is a good idea to limit it to only your application's directory. - *
+ * The **default value** when no trusted resource URL list has been explicitly set is the empty + * array (i.e. there is no `bannedResourceUrlList`.) */ - this.resourceUrlWhitelist = function(value) { + this.bannedResourceUrlList = function(value) { if (arguments.length) { - resourceUrlWhitelist = adjustMatchers(value); + bannedResourceUrlList = adjustMatchers(value); } - return resourceUrlWhitelist; + return bannedResourceUrlList; }; /** @@ -20127,32 +20308,20 @@ function $SceDelegateProvider() { * @name $sceDelegateProvider#resourceUrlBlacklist * @kind function * - * @param {Array=} blacklist When provided, replaces the resourceUrlBlacklist with the value - * provided. This must be an array or null. A snapshot of this array is used so further - * changes to the array are ignored.

- * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items - * allowed in this array.

- * The typical usage for the blacklist is to **block - * [open redirects](http://cwe.mitre.org/data/definitions/601.html)** served by your domain as - * these would otherwise be trusted but actually return content from the redirected domain. - *

- * Finally, **the blacklist overrides the whitelist** and has the final say. + * @deprecated + * sinceVersion="1.8.1" * - * @return {Array} The currently set blacklist array. - * - * @description - * Sets/Gets the blacklist of trusted resource URLs. - * - * The **default value** when no whitelist has been explicitly set is the empty array (i.e. there - * is no blacklist.) + * This method is deprecated. Use {@link $sceDelegateProvider#bannedResourceUrlList + * bannedResourceUrlList} instead. */ - - this.resourceUrlBlacklist = function(value) { - if (arguments.length) { - resourceUrlBlacklist = adjustMatchers(value); + Object.defineProperty(this, 'resourceUrlBlacklist', { + get: function() { + return this.bannedResourceUrlList; + }, + set: function(value) { + this.bannedResourceUrlList = value; } - return resourceUrlBlacklist; - }; + }); this.$get = ['$injector', '$$sanitizeUri', function($injector, $$sanitizeUri) { @@ -20177,17 +20346,17 @@ function $SceDelegateProvider() { function isResourceUrlAllowedByPolicy(url) { var parsedUrl = urlResolve(url.toString()); var i, n, allowed = false; - // Ensure that at least one item from the whitelist allows this url. - for (i = 0, n = resourceUrlWhitelist.length; i < n; i++) { - if (matchUrl(resourceUrlWhitelist[i], parsedUrl)) { + // Ensure that at least one item from the trusted resource URL list allows this url. + for (i = 0, n = trustedResourceUrlList.length; i < n; i++) { + if (matchUrl(trustedResourceUrlList[i], parsedUrl)) { allowed = true; break; } } if (allowed) { - // Ensure that no item from the blacklist blocked this url. - for (i = 0, n = resourceUrlBlacklist.length; i < n; i++) { - if (matchUrl(resourceUrlBlacklist[i], parsedUrl)) { + // Ensure that no item from the banned resource URL list has blocked this url. + for (i = 0, n = bannedResourceUrlList.length; i < n; i++) { + if (matchUrl(bannedResourceUrlList[i], parsedUrl)) { allowed = false; break; } @@ -20308,9 +20477,9 @@ function $SceDelegateProvider() { * The contexts that can be sanitized are $sce.MEDIA_URL, $sce.URL and $sce.HTML. The first two are available * by default, and the third one relies on the `$sanitize` service (which may be loaded through * the `ngSanitize` module). Furthermore, for $sce.RESOURCE_URL context, a plain string may be - * accepted if the resource url policy defined by {@link ng.$sceDelegateProvider#resourceUrlWhitelist - * `$sceDelegateProvider.resourceUrlWhitelist`} and {@link ng.$sceDelegateProvider#resourceUrlBlacklist - * `$sceDelegateProvider.resourceUrlBlacklist`} accepts that resource. + * accepted if the resource url policy defined by {@link ng.$sceDelegateProvider#trustedResourceUrlList + * `$sceDelegateProvider.trustedResourceUrlList`} and {@link ng.$sceDelegateProvider#bannedResourceUrlList + * `$sceDelegateProvider.bannedResourceUrlList`} accepts that resource. * * This function will throw if the safe type isn't appropriate for this context, or if the * value given cannot be accepted in the context (which might be caused by sanitization not @@ -20404,9 +20573,9 @@ function $SceDelegateProvider() { * * To systematically block XSS security bugs, AngularJS treats all values as untrusted by default in * HTML or sensitive URL bindings. When binding untrusted values, AngularJS will automatically - * run security checks on them (sanitizations, whitelists, depending on context), or throw when it - * cannot guarantee the security of the result. That behavior depends strongly on contexts: HTML - * can be sanitized, but template URLs cannot, for instance. + * run security checks on them (sanitizations, trusted URL resource, depending on context), or throw + * when it cannot guarantee the security of the result. That behavior depends strongly on contexts: + * HTML can be sanitized, but template URLs cannot, for instance. * * To illustrate this, consider the `ng-bind-html` directive. It renders its value directly as HTML: * we call that the *context*. When given an untrusted input, AngularJS will attempt to sanitize it @@ -20485,8 +20654,8 @@ function $SceDelegateProvider() { * By default, AngularJS only loads templates from the same domain and protocol as the application * document. This is done by calling {@link ng.$sce#getTrustedResourceUrl * $sce.getTrustedResourceUrl} on the template URL. To load templates from other domains and/or - * protocols, you may either {@link ng.$sceDelegateProvider#resourceUrlWhitelist whitelist - * them} or {@link ng.$sce#trustAsResourceUrl wrap it} into a trusted value. + * protocols, you may either add them to the {@link ng.$sceDelegateProvider#trustedResourceUrlList + * trustedResourceUrlList} or {@link ng.$sce#trustAsResourceUrl wrap them} into trusted values. * * *Please note*: * The browser's @@ -20514,8 +20683,8 @@ function $SceDelegateProvider() { * templates in `ng-include` from your application's domain without having to even know about SCE. * It blocks loading templates from other domains or loading templates over http from an https * served document. You can change these by setting your own custom {@link - * ng.$sceDelegateProvider#resourceUrlWhitelist whitelists} and {@link - * ng.$sceDelegateProvider#resourceUrlBlacklist blacklists} for matching such URLs. + * ng.$sceDelegateProvider#trustedResourceUrlList trusted resource URL list} and {@link + * ng.$sceDelegateProvider#bannedResourceUrlList banned resource URL list} for matching such URLs. * * This significantly reduces the overhead. It is far easier to pay the small overhead and have an * application that's secure and can be audited to verify that with much more ease than bolting @@ -20530,7 +20699,7 @@ function $SceDelegateProvider() { * | `$sce.CSS` | For CSS that's safe to source into the application. Currently unused. Feel free to use it in your own directives. | * | `$sce.MEDIA_URL` | For URLs that are safe to render as media. Is automatically converted from string by sanitizing when needed. | * | `$sce.URL` | For URLs that are safe to follow as links. Is automatically converted from string by sanitizing when needed. Note that `$sce.URL` makes a stronger statement about the URL than `$sce.MEDIA_URL` does and therefore contexts requiring values trusted for `$sce.URL` can be used anywhere that values trusted for `$sce.MEDIA_URL` are required.| - * | `$sce.RESOURCE_URL` | For URLs that are not only safe to follow as links, but whose contents are also safe to include in your application. Examples include `ng-include`, `src` / `ngSrc` bindings for tags other than `IMG` (e.g. `IFRAME`, `OBJECT`, etc.)

Note that `$sce.RESOURCE_URL` makes a stronger statement about the URL than `$sce.URL` or `$sce.MEDIA_URL` do and therefore contexts requiring values trusted for `$sce.RESOURCE_URL` can be used anywhere that values trusted for `$sce.URL` or `$sce.MEDIA_URL` are required.

The {@link $sceDelegateProvider#resourceUrlWhitelist $sceDelegateProvider#resourceUrlWhitelist()} and {@link $sceDelegateProvider#resourceUrlBlacklist $sceDelegateProvider#resourceUrlBlacklist()} can be used to restrict trusted origins for `RESOURCE_URL` | + * | `$sce.RESOURCE_URL` | For URLs that are not only safe to follow as links, but whose contents are also safe to include in your application. Examples include `ng-include`, `src` / `ngSrc` bindings for tags other than `IMG` (e.g. `IFRAME`, `OBJECT`, etc.)

Note that `$sce.RESOURCE_URL` makes a stronger statement about the URL than `$sce.URL` or `$sce.MEDIA_URL` do and therefore contexts requiring values trusted for `$sce.RESOURCE_URL` can be used anywhere that values trusted for `$sce.URL` or `$sce.MEDIA_URL` are required.

The {@link $sceDelegateProvider#trustedResourceUrlList $sceDelegateProvider#trustedResourceUrlList()} and {@link $sceDelegateProvider#bannedResourceUrlList $sceDelegateProvider#bannedResourceUrlList()} can be used to restrict trusted origins for `RESOURCE_URL` | * | `$sce.JS` | For JavaScript that is safe to execute in your application's context. Currently unused. Feel free to use it in your own directives. | * * @@ -20548,7 +20717,7 @@ function $SceDelegateProvider() { * There are no CSS or JS context bindings in AngularJS currently, so their corresponding `$sce.trustAs` * functions aren't useful yet. This might evolve. * - * ### Format of items in {@link ng.$sceDelegateProvider#resourceUrlWhitelist resourceUrlWhitelist}/{@link ng.$sceDelegateProvider#resourceUrlBlacklist Blacklist} + * ### Format of items in {@link ng.$sceDelegateProvider#trustedResourceUrlList trustedResourceUrlList}/{@link ng.$sceDelegateProvider#bannedResourceUrlList bannedResourceUrlList} * * Each element in these arrays must be one of the following: * @@ -20562,7 +20731,7 @@ function $SceDelegateProvider() { * match themselves. * - `*`: matches zero or more occurrences of any character other than one of the following 6 * characters: '`:`', '`/`', '`.`', '`?`', '`&`' and '`;`'. It's a useful wildcard for use - * in a whitelist. + * for matching resource URL lists. * - `**`: matches zero or more occurrences of *any* character. As such, it's not * appropriate for use in a scheme, domain, etc. as it would match too much. (e.g. * http://**.example.com/ would match http://evil.com/?ignore=.example.com/ and that might @@ -21366,10 +21535,10 @@ function $TemplateRequestProvider() { handleRequestFn.totalPendingRequests++; // We consider the template cache holds only trusted templates, so - // there's no need to go through whitelisting again for keys that already - // are included in there. This also makes AngularJS accept any script - // directive, no matter its name. However, we still need to unwrap trusted - // types. + // there's no need to go through adding the template again to the trusted + // resources for keys that already are included in there. This also makes + // AngularJS accept any script directive, no matter its name. However, we + // still need to unwrap trusted types. if (!isString(tpl) || isUndefined($templateCache.get(tpl))) { tpl = $sce.getTrustedResourceUrl(tpl); } @@ -21774,20 +21943,20 @@ function urlIsSameOriginAsBaseUrl(requestUrl) { } /** - * Create a function that can check a URL's origin against a list of allowed/whitelisted origins. + * Create a function that can check a URL's origin against a list of allowed/trusted origins. * The current location's origin is implicitly trusted. * - * @param {string[]} whitelistedOriginUrls - A list of URLs (strings), whose origins are trusted. + * @param {string[]} trustedOriginUrls - A list of URLs (strings), whose origins are trusted. * * @returns {Function} - A function that receives a URL (string or parsed URL object) and returns * whether it is of an allowed origin. */ -function urlIsAllowedOriginFactory(whitelistedOriginUrls) { - var parsedAllowedOriginUrls = [originUrl].concat(whitelistedOriginUrls.map(urlResolve)); +function urlIsAllowedOriginFactory(trustedOriginUrls) { + var parsedAllowedOriginUrls = [originUrl].concat(trustedOriginUrls.map(urlResolve)); /** * Check whether the specified URL (string or parsed URL object) has an origin that is allowed - * based on a list of whitelisted-origin URLs. The current location's origin is implicitly + * based on a list of trusted-origin URLs. The current location's origin is implicitly * trusted. * * @param {string|Object} requestUrl - The URL to be checked (provided as a string that will be @@ -29534,9 +29703,9 @@ var ngIfDirective = ['$animate', '$compile', function($animate, $compile) { * By default, the template URL is restricted to the same domain and protocol as the * application document. This is done by calling {@link $sce#getTrustedResourceUrl * $sce.getTrustedResourceUrl} on it. To load templates from other domains or protocols - * you may either {@link ng.$sceDelegateProvider#resourceUrlWhitelist whitelist them} or - * {@link $sce#trustAsResourceUrl wrap them} as trusted values. Refer to AngularJS's {@link - * ng.$sce Strict Contextual Escaping}. + * you may either add them to your {@link ng.$sceDelegateProvider#trustedResourceUrlList trusted + * resource URL list} or {@link $sce#trustAsResourceUrl wrap them} as trusted values. Refer to + * AngularJS's {@link ng.$sce Strict Contextual Escaping}. * * In addition, the browser's * [Same Origin Policy](https://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_XMLHttpRequest) @@ -33606,7 +33775,7 @@ var ngRefDirective = ['$parse', function($parse) { * For example: `item in items | filter:x as results` will store the fragment of the repeated items as `results`, but only after * the items have been processed through the filter. * - * Please note that `as [variable name] is not an operator but rather a part of ngRepeat + * Please note that `as [variable name]` is not an operator but rather a part of ngRepeat * micro-syntax so it can be used only after all filters (and not as operator, inside an expression). * * For example: `item in items | filter : x | orderBy : order | limitTo : limit as results track by item.id` . @@ -34415,11 +34584,11 @@ var ngHideDirective = ['$animate', function($animate) { var colorSpan = element(by.css('span')); it('should check ng-style', function() { - expect(colorSpan.getCssValue('color')).toBe('rgba(0, 0, 0, 1)'); + expect(colorSpan.getCssValue('color')).toMatch(/rgba\(0, 0, 0, 1\)|rgb\(0, 0, 0\)/); element(by.css('input[value=\'set color\']')).click(); - expect(colorSpan.getCssValue('color')).toBe('rgba(255, 0, 0, 1)'); + expect(colorSpan.getCssValue('color')).toMatch(/rgba\(255, 0, 0, 1\)|rgb\(255, 0, 0\)/); element(by.css('input[value=clear]')).click(); - expect(colorSpan.getCssValue('color')).toBe('rgba(0, 0, 0, 1)'); + expect(colorSpan.getCssValue('color')).toMatch(/rgba\(0, 0, 0, 1\)|rgb\(0, 0, 0\)/); }); @@ -36428,4 +36597,4 @@ $provide.value("$locale", { })(window); -!window.angular.$$csp().noInlineStyle && window.angular.element(document.head).prepend(''); \ No newline at end of file +!window.angular.$$csp().noInlineStyle && window.angular.element(document.head).prepend(window.angular.element(''); +var g=[],k=[];d=Yb(d)?d:NaN;if(b){if(ye(b)||"[object ArrayBuffer]"===la.call(b))throw oa("cpta");if(a===b)throw oa("cpi");H(b)?b.length=0:r(b,function(a,c){"$$hashKey"!==c&&delete b[c]});g.push(a);k.push(b);return c(a,b,d)}return e(a,d)}function ec(a,b){return a===b||a!==a&&b!==b}function va(a,b){if(a===b)return!0;if(null===a||null===b)return!1;if(a!==a&&b!==b)return!0;var d=typeof a,c;if(d===typeof b&&"object"===d)if(H(a)){if(!H(b))return!1;if((d=a.length)===b.length){for(c=0;c

").append(a).html();try{return a[0].nodeType===Pa?K(b):b.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,function(a,b){return"<"+K(b)})}catch(d){return K(b)}}function Vc(a){try{return decodeURIComponent(a)}catch(b){}}function hc(a){var b={};r((a||"").split("&"), +function(a){var c,e,f;a&&(e=a=a.replace(/\+/g,"%20"),c=a.indexOf("="),-1!==c&&(e=a.substring(0,c),f=a.substring(c+1)),e=Vc(e),w(e)&&(f=w(f)?Vc(f):!0,ta.call(b,e)?H(b[e])?b[e].push(f):b[e]=[b[e],f]:b[e]=f))});return b}function Ce(a){var b=[];r(a,function(a,c){H(a)?r(a,function(a){b.push(ba(c,!0)+(!0===a?"":"="+ba(a,!0)))}):b.push(ba(c,!0)+(!0===a?"":"="+ba(a,!0)))});return b.length?b.join("&"):""}function ic(a){return ba(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ba(a, +b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,b?"%20":"+")}function De(a,b){var d,c,e=Qa.length;for(c=0;c protocol indicates an extension, document.location.href does not match."))}function Wc(a,b,d){D(d)||(d={});d=S({strictDi:!1},d);var c=function(){a=x(a);if(a.injector()){var c=a[0]===z.document?"document":Aa(a);throw oa("btstrpd",c.replace(//,">"));}b=b||[];b.unshift(["$provide",function(b){b.value("$rootElement",a)}]);d.debugInfoEnabled&&b.push(["$compileProvider", +function(a){a.debugInfoEnabled(!0)}]);b.unshift("ng");c=fb(b,d.strictDi);c.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;z&&e.test(z.name)&&(d.debugInfoEnabled=!0,z.name=z.name.replace(e,""));if(z&&!f.test(z.name))return c();z.name=z.name.replace(f,"");ca.resumeBootstrap=function(a){r(a,function(a){b.push(a)});return c()};B(ca.resumeDeferredBootstrap)&& +ca.resumeDeferredBootstrap()}function Ge(){z.name="NG_ENABLE_DEBUG_INFO!"+z.name;z.location.reload()}function He(a){a=ca.element(a).injector();if(!a)throw oa("test");return a.get("$$testability")}function Xc(a,b){b=b||"_";return a.replace(Ie,function(a,c){return(c?b:"")+a.toLowerCase()})}function Je(){var a;if(!Yc){var b=rb();(sb=A(b)?z.jQuery:b?z[b]:void 0)&&sb.fn.on?(x=sb,S(sb.fn,{scope:Wa.scope,isolateScope:Wa.isolateScope,controller:Wa.controller,injector:Wa.injector,inheritedData:Wa.inheritedData})): +x=U;a=x.cleanData;x.cleanData=function(b){for(var c,e=0,f;null!=(f=b[e]);e++)(c=(x._data(f)||{}).events)&&c.$destroy&&x(f).triggerHandler("$destroy");a(b)};ca.element=x;Yc=!0}}function Ke(){U.legacyXHTMLReplacement=!0}function gb(a,b,d){if(!a)throw oa("areq",b||"?",d||"required");return a}function tb(a,b,d){d&&H(a)&&(a=a[a.length-1]);gb(B(a),b,"not a function, got "+(a&&"object"===typeof a?a.constructor.name||"Object":typeof a));return a}function Ja(a,b){if("hasOwnProperty"===a)throw oa("badname", +b);}function Le(a,b,d){if(!b)return a;b=b.split(".");for(var c,e=a,f=b.length,g=0;g"):a;if(10>wa)for(c=hb[c]||hb._default,d.innerHTML=c[1]+e+c[2],k=c[0];k--;)d=d.firstChild;else{c=qa[c]||[];for(k=c.length;-1<--k;)d.appendChild(z.document.createElement(c[k])),d=d.firstChild;d.innerHTML=e}g=db(g,d.childNodes);d=f.firstChild;d.textContent=""}else g.push(b.createTextNode(a)); +f.textContent="";f.innerHTML="";r(g,function(a){f.appendChild(a)});return f}function U(a){if(a instanceof U)return a;var b;C(a)&&(a=V(a),b=!0);if(!(this instanceof U)){if(b&&"<"!==a.charAt(0))throw oc("nosel");return new U(a)}if(b){b=z.document;var d;a=(d=tg.exec(a))?[b.createElement(d[1])]:(d=gd(a,b))?d.childNodes:[];pc(this,a)}else B(a)?hd(a):pc(this,a)}function qc(a){return a.cloneNode(!0)}function zb(a,b){!b&&mc(a)&&x.cleanData([a]);a.querySelectorAll&&x.cleanData(a.querySelectorAll("*"))}function id(a){for(var b in a)return!1; +return!0}function jd(a){var b=a.ng339,d=b&&Ka[b],c=d&&d.events,d=d&&d.data;d&&!id(d)||c&&!id(c)||(delete Ka[b],a.ng339=void 0)}function kd(a,b,d,c){if(w(c))throw oc("offargs");var e=(c=Ab(a))&&c.events,f=c&&c.handle;if(f){if(b){var g=function(b){var c=e[b];w(d)&&cb(c||[],d);w(d)&&c&&0l&&this.remove(n.key);return b}},get:function(a){if(l";b=Fa.firstChild.attributes;var d=b[0];b.removeNamedItem(d.name);d.value=c;a.attributes.setNamedItem(d)}function sa(a,b){try{a.addClass(b)}catch(c){}}function da(a,b,c,d,e){a instanceof x||(a=x(a));var f=Xa(a,b,a,c,d,e);da.$$addScopeClass(a);var g=null;return function(b,c,d){if(!a)throw $("multilink");gb(b,"scope");e&&e.needsNewScope&&(b=b.$parent.$new());d=d||{};var h=d.parentBoundTranscludeFn,k=d.transcludeControllers;d=d.futureParentElement; +h&&h.$$boundTransclude&&(h=h.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==ua(d)&&la.call(d).match(/SVG/)?"svg":"html":"html");d="html"!==g?x(ja(g,x("
").append(a).html())):c?Wa.clone.call(a):a;if(k)for(var l in k)d.data("$"+l+"Controller",k[l].instance);da.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,h);c||(a=f=null);return d}}function Xa(a,b,c,d,e,f){function g(a,c,d,e){var f,k,l,m,p,I,t;if(n)for(t=Array(c.length),m=0;mu.priority)break;if(O=u.scope)u.templateUrl||(D(O)?(ba("new/isolated scope",s||t,u,y),s=u):ba("new/isolated scope",s,u,y)),t=t||u;Q=u.name;if(!ma&&(u.replace&&(u.templateUrl||u.template)||u.transclude&& +!u.$$tlb)){for(O=sa+1;ma=a[O++];)if(ma.transclude&&!ma.$$tlb||ma.replace&&(ma.templateUrl||ma.template)){Jb=!0;break}ma=!0}!u.templateUrl&&u.controller&&(J=J||T(),ba("'"+Q+"' controller",J[Q],u,y),J[Q]=u);if(O=u.transclude)if(G=!0,u.$$tlb||(ba("transclusion",L,u,y),L=u),"element"===O)N=!0,n=u.priority,M=y,y=d.$$element=x(da.$$createComment(Q,d[Q])),b=y[0],oa(f,Ha.call(M,0),b),R=Z(Jb,M,e,n,g&&g.name,{nonTlbTranscludeDirective:L});else{var ka=T();if(D(O)){M=z.document.createDocumentFragment();var Xa= +T(),F=T();r(O,function(a,b){var c="?"===a.charAt(0);a=c?a.substring(1):a;Xa[a]=b;ka[b]=null;F[b]=c});r(y.contents(),function(a){var b=Xa[xa(ua(a))];b?(F[b]=!0,ka[b]=ka[b]||z.document.createDocumentFragment(),ka[b].appendChild(a)):M.appendChild(a)});r(F,function(a,b){if(!a)throw $("reqslot",b);});for(var K in ka)ka[K]&&(R=x(ka[K].childNodes),ka[K]=Z(Jb,R,e));M=x(M.childNodes)}else M=x(qc(b)).contents();y.empty();R=Z(Jb,M,e,void 0,void 0,{needsNewScope:u.$$isolateScope||u.$$newScope});R.$$slots=ka}if(u.template)if(P= +!0,ba("template",v,u,y),v=u,O=B(u.template)?u.template(y,d):u.template,O=Na(O),u.replace){g=u;M=nc.test(O)?td(ja(u.templateNamespace,V(O))):[];b=M[0];if(1!==M.length||1!==b.nodeType)throw $("tplrt",Q,"");oa(f,y,b);C={$attr:{}};O=tc(b,[],C);var Ig=a.splice(sa+1,a.length-(sa+1));(s||t)&&fa(O,s,t);a=a.concat(O).concat(Ig);ga(d,C);C=a.length}else y.html(O);if(u.templateUrl)P=!0,ba("template",v,u,y),v=u,u.replace&&(g=u),p=ha(a.splice(sa,a.length-sa),y,d,f,G&&R,h,k,{controllerDirectives:J,newScopeDirective:t!== +u&&t,newIsolateScopeDirective:s,templateDirective:v,nonTlbTranscludeDirective:L}),C=a.length;else if(u.compile)try{q=u.compile(y,d,R);var Y=u.$$originalDirective||u;B(q)?m(null,Va(Y,q),E,jb):q&&m(Va(Y,q.pre),Va(Y,q.post),E,jb)}catch(ca){c(ca,Aa(y))}u.terminal&&(p.terminal=!0,n=Math.max(n,u.priority))}p.scope=t&&!0===t.scope;p.transcludeOnThisElement=G;p.templateOnThisElement=P;p.transclude=R;l.hasElementTranscludeDirective=N;return p}function X(a,b,c,d){var e;if(C(b)){var f=b.match(l);b=b.substring(f[0].length); +var g=f[1]||f[3],f="?"===f[2];"^^"===g?c=c.parent():e=(e=d&&d[b])&&e.instance;if(!e){var h="$"+b+"Controller";e="^^"===g&&c[0]&&9===c[0].nodeType?null:g?c.inheritedData(h):c.data(h)}if(!e&&!f)throw $("ctreq",b,a);}else if(H(b))for(e=[],g=0,f=b.length;gc.priority)&&-1!==c.restrict.indexOf(e)){k&&(c=bc(c,{$$start:k,$$end:l}));if(!c.$$bindings){var I=m=c,t=c.name,u={isolateScope:null,bindToController:null}; +D(I.scope)&&(!0===I.bindToController?(u.bindToController=d(I.scope,t,!0),u.isolateScope={}):u.isolateScope=d(I.scope,t,!1));D(I.bindToController)&&(u.bindToController=d(I.bindToController,t,!0));if(u.bindToController&&!I.controller)throw $("noctrl",t);m=m.$$bindings=u;D(m.isolateScope)&&(c.$$isolateBindings=m.isolateScope)}b.push(c);m=c}}return m}function ca(b){if(f.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,e=c.length;d"+b+"";return c.childNodes[0].childNodes;default:return b}}function qa(a,b){if("srcdoc"=== +b)return u.HTML;if("src"===b||"ngSrc"===b)return-1===["img","video","audio","source","track"].indexOf(a)?u.RESOURCE_URL:u.MEDIA_URL;if("xlinkHref"===b)return"image"===a?u.MEDIA_URL:"a"===a?u.URL:u.RESOURCE_URL;if("form"===a&&"action"===b||"base"===a&&"href"===b||"link"===a&&"href"===b)return u.RESOURCE_URL;if("a"===a&&("href"===b||"ngHref"===b))return u.URL}function ya(a,b){var c=b.toLowerCase();return v[a+"|"+c]||v["*|"+c]}function za(a){return ma(u.valueOf(a),"ng-prop-srcset")}function Ea(a,b,c, +d){if(m.test(d))throw $("nodomevents");a=ua(a);var e=ya(a,d),f=Ta;"srcset"!==d||"img"!==a&&"source"!==a?e&&(f=u.getTrusted.bind(u,e)):f=za;b.push({priority:100,compile:function(a,b){var e=p(b[c]),g=p(b[c],function(a){return u.valueOf(a)});return{pre:function(a,b){function c(){var g=e(a);b[0][d]=f(g)}c();a.$watch(g,c)}}}})}function Ia(a,c,d,e,f){var g=ua(a),k=qa(g,e),l=h[e]||f,p=b(d,!f,k,l);if(p){if("multiple"===e&&"select"===g)throw $("selmulti",Aa(a));if(m.test(e))throw $("nodomevents");c.push({priority:100, +compile:function(){return{pre:function(a,c,f){c=f.$$observers||(f.$$observers=T());var g=f[e];g!==d&&(p=g&&b(g,!0,k,l),d=g);p&&(f[e]=p(a),(c[e]||(c[e]=[])).$$inter=!0,(f.$$observers&&f.$$observers[e].$$scope||a).$watch(p,function(a,b){"class"===e&&a!==b?f.$updateClass(a,b):f.$set(e,a)}))}}}})}}function oa(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g=b)return a;for(;b--;){var d=a[b];(8===d.nodeType||d.nodeType===Pa&&""===d.nodeValue.trim())&&Kg.call(a,b,1)}return a} +function Gg(a,b){if(b&&C(b))return b;if(C(a)){var d=wd.exec(a);if(d)return d[3]}}function Kf(){var a={};this.has=function(b){return a.hasOwnProperty(b)};this.register=function(b,d){Ja(b,"controller");D(b)?S(a,b):a[b]=d};this.$get=["$injector",function(b){function d(a,b,d,g){if(!a||!D(a.$scope))throw F("$controller")("noscp",g,b);a.$scope[b]=d}return function(c,e,f,g){var k,h,l;f=!0===f;g&&C(g)&&(l=g);if(C(c)){g=c.match(wd);if(!g)throw xd("ctrlfmt",c);h=g[1];l=l||g[3];c=a.hasOwnProperty(h)?a[h]:Le(e.$scope, +h,!0);if(!c)throw xd("ctrlreg",h);tb(c,h,!0)}if(f)return f=(H(c)?c[c.length-1]:c).prototype,k=Object.create(f||null),l&&d(e,l,k,h||c.name),S(function(){var a=b.invoke(c,k,e,h);a!==k&&(D(a)||B(a))&&(k=a,l&&d(e,l,k,h||c.name));return k},{instance:k,identifier:l});k=b.instantiate(c,e,h);l&&d(e,l,k,h||c.name);return k}}]}function Lf(){this.$get=["$window",function(a){return x(a.document)}]}function Mf(){this.$get=["$document","$rootScope",function(a,b){function d(){e=c.hidden}var c=a[0],e=c&&c.hidden; +a.on("visibilitychange",d);b.$on("$destroy",function(){a.off("visibilitychange",d)});return function(){return e}}]}function Nf(){this.$get=["$log",function(a){return function(b,d){a.error.apply(a,arguments)}}]}function vc(a){return D(a)?ha(a)?a.toISOString():eb(a):a}function Tf(){this.$get=function(){return function(a){if(!a)return"";var b=[];Qc(a,function(a,c){null===a||A(a)||B(a)||(H(a)?r(a,function(a){b.push(ba(c)+"="+ba(vc(a)))}):b.push(ba(c)+"="+ba(vc(a))))});return b.join("&")}}}function Uf(){this.$get= +function(){return function(a){function b(a,e,f){H(a)?r(a,function(a,c){b(a,e+"["+(D(a)?c:"")+"]")}):D(a)&&!ha(a)?Qc(a,function(a,c){b(a,e+(f?"":"[")+c+(f?"":"]"))}):(B(a)&&(a=a()),d.push(ba(e)+"="+(null==a?"":ba(vc(a)))))}if(!a)return"";var d=[];b(a,"",!0);return d.join("&")}}}function wc(a,b){if(C(a)){var d=a.replace(Lg,"").trim();if(d){var c=b("Content-Type"),c=c&&0===c.indexOf(yd),e;(e=c)||(e=(e=d.match(Mg))&&Ng[e[0]].test(d));if(e)try{a=Tc(d)}catch(f){if(!c)return a;throw Lb("baddata",a,f);}}}return a} +function zd(a){var b=T(),d;C(a)?r(a.split("\n"),function(a){d=a.indexOf(":");var e=K(V(a.substr(0,d)));a=V(a.substr(d+1));e&&(b[e]=b[e]?b[e]+", "+a:a)}):D(a)&&r(a,function(a,d){var f=K(d),g=V(a);f&&(b[f]=b[f]?b[f]+", "+g:g)});return b}function Ad(a){var b;return function(d){b||(b=zd(a));return d?(d=b[K(d)],void 0===d&&(d=null),d):b}}function Bd(a,b,d,c){if(B(c))return c(a,b,d);r(c,function(c){a=c(a,b,d)});return a}function Sf(){var a=this.defaults={transformResponse:[wc],transformRequest:[function(a){return D(a)&& +"[object File]"!==la.call(a)&&"[object Blob]"!==la.call(a)&&"[object FormData]"!==la.call(a)?eb(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ja(xc),put:ja(xc),patch:ja(xc)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer",jsonpCallbackParam:"callback"},b=!1;this.useApplyAsync=function(a){return w(a)?(b=!!a,this):b};var d=this.interceptors=[],c=this.xsrfTrustedOrigins=[];Object.defineProperty(this,"xsrfWhitelistedOrigins", +{get:function(){return this.xsrfTrustedOrigins},set:function(a){this.xsrfTrustedOrigins=a}});this.$get=["$browser","$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector","$sce",function(e,f,g,k,h,l,m,p){function n(b){function c(a,b){for(var d=0,e=b.length;da?b:l.reject(b)}if(!D(b))throw F("$http")("badreq",b);if(!C(p.valueOf(b.url)))throw F("$http")("badreq",b.url);var g=S({method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse,paramSerializer:a.paramSerializer,jsonpCallbackParam:a.jsonpCallbackParam},b);g.headers=function(b){var c=a.headers,e=S({},b.headers),f,g,h,c=S({},c.common,c[K(b.method)]);a:for(f in c){g=K(f);for(h in e)if(K(h)===g)continue a;e[f]=c[f]}return d(e,ja(b))}(b);g.method= +vb(g.method);g.paramSerializer=C(g.paramSerializer)?m.get(g.paramSerializer):g.paramSerializer;e.$$incOutstandingRequestCount("$http");var h=[],k=[];b=l.resolve(g);r(v,function(a){(a.request||a.requestError)&&h.unshift(a.request,a.requestError);(a.response||a.responseError)&&k.push(a.response,a.responseError)});b=c(b,h);b=b.then(function(b){var c=b.headers,d=Bd(b.data,Ad(c),void 0,b.transformRequest);A(d)&&r(c,function(a,b){"content-type"===K(b)&&delete c[b]});A(b.withCredentials)&&!A(a.withCredentials)&& +(b.withCredentials=a.withCredentials);return s(b,d).then(f,f)});b=c(b,k);return b=b.finally(function(){e.$$completeOutstandingRequest(E,"$http")})}function s(c,d){function e(a){if(a){var c={};r(a,function(a,d){c[d]=function(c){function d(){a(c)}b?h.$applyAsync(d):h.$$phase?d():h.$apply(d)}});return c}}function k(a,c,d,e,f){function g(){m(c,a,d,e,f)}R&&(200<=a&&300>a?R.put(O,[a,c,zd(d),e,f]):R.remove(O));b?h.$applyAsync(g):(g(),h.$$phase||h.$apply())}function m(a,b,d,e,f){b=-1<=b?b:0;(200<=b&&300> +b?L.resolve:L.reject)({data:a,status:b,headers:Ad(d),config:c,statusText:e,xhrStatus:f})}function s(a){m(a.data,a.status,ja(a.headers()),a.statusText,a.xhrStatus)}function v(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var L=l.defer(),u=L.promise,R,q,ma=c.headers,x="jsonp"===K(c.method),O=c.url;x?O=p.getTrustedResourceUrl(O):C(O)||(O=p.valueOf(O));O=G(O,c.paramSerializer(c.params));x&&(O=t(O,c.jsonpCallbackParam));n.pendingRequests.push(c);u.then(v,v);!c.cache&&!a.cache|| +!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(R=D(c.cache)?c.cache:D(a.cache)?a.cache:N);R&&(q=R.get(O),w(q)?q&&B(q.then)?q.then(s,s):H(q)?m(q[1],q[0],ja(q[2]),q[3],q[4]):m(q,200,{},"OK","complete"):R.put(O,u));A(q)&&((q=kc(c.url)?g()[c.xsrfCookieName||a.xsrfCookieName]:void 0)&&(ma[c.xsrfHeaderName||a.xsrfHeaderName]=q),f(c.method,O,d,k,ma,c.timeout,c.withCredentials,c.responseType,e(c.eventHandlers),e(c.uploadEventHandlers)));return u}function G(a,b){0=h&&(t.resolve(s),f(r.$$intervalId));G||c.$apply()},k,t,G);return r}}}]}function Cd(a,b){var d=ga(a);b.$$protocol=d.protocol;b.$$host= +d.hostname;b.$$port=fa(d.port)||Rg[d.protocol]||null}function Dd(a,b,d){if(Sg.test(a))throw kb("badpath",a);var c="/"!==a.charAt(0);c&&(a="/"+a);a=ga(a);for(var c=(c&&"/"===a.pathname.charAt(0)?a.pathname.substring(1):a.pathname).split("/"),e=c.length;e--;)c[e]=decodeURIComponent(c[e]),d&&(c[e]=c[e].replace(/\//g,"%2F"));d=c.join("/");b.$$path=d;b.$$search=hc(a.search);b.$$hash=decodeURIComponent(a.hash);b.$$path&&"/"!==b.$$path.charAt(0)&&(b.$$path="/"+b.$$path)}function yc(a,b){return a.slice(0, +b.length)===b}function ya(a,b){if(yc(b,a))return b.substr(a.length)}function Da(a){var b=a.indexOf("#");return-1===b?a:a.substr(0,b)}function zc(a,b,d){this.$$html5=!0;d=d||"";Cd(a,this);this.$$parse=function(a){var d=ya(b,a);if(!C(d))throw kb("ipthprfx",a,b);Dd(d,this,!0);this.$$path||(this.$$path="/");this.$$compose()};this.$$normalizeUrl=function(a){return b+a.substr(1)};this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;w(f=ya(a,c))?(g=f,g=d&&w(f=ya(d,f))? +b+(ya("/",f)||f):a+g):w(f=ya(b,c))?g=b+f:b===c+"/"&&(g=b);g&&this.$$parse(g);return!!g}}function Ac(a,b,d){Cd(a,this);this.$$parse=function(c){var e=ya(a,c)||ya(b,c),f;A(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",A(e)&&(a=c,this.replace())):(f=ya(d,e),A(f)&&(f=e));Dd(f,this,!1);c=this.$$path;var e=a,g=/^\/[A-Z]:(\/.*)/;yc(f,e)&&(f=f.replace(e,""));g.exec(f)||(c=(f=g.exec(c))?f[1]:c);this.$$path=c;this.$$compose()};this.$$normalizeUrl=function(b){return a+(b?d+b:"")};this.$$parseLinkUrl=function(b, +d){return Da(a)===Da(b)?(this.$$parse(b),!0):!1}}function Ed(a,b,d){this.$$html5=!0;Ac.apply(this,arguments);this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;a===Da(c)?f=c:(g=ya(b,c))?f=a+d+g:b===c+"/"&&(f=b);f&&this.$$parse(f);return!!f};this.$$normalizeUrl=function(b){return a+d+b}}function Mb(a){return function(){return this[a]}}function Fd(a,b){return function(d){if(A(d))return this[a];this[a]=b(d);this.$$compose();return this}}function Yf(){var a="!", +b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return w(b)?(a=b,this):a};this.html5Mode=function(a){if(Ga(a))return b.enabled=a,this;if(D(a)){Ga(a.enabled)&&(b.enabled=a.enabled);Ga(a.requireBase)&&(b.requireBase=a.requireBase);if(Ga(a.rewriteLinks)||C(a.rewriteLinks))b.rewriteLinks=a.rewriteLinks;return this}return b};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(d,c,e,f,g){function k(a,b){return a===b||ga(a).href===ga(b).href}function h(a, +b,d){var e=m.url(),f=m.$$state;try{c.url(a,b,d),m.$$state=c.state()}catch(g){throw m.url(e),m.$$state=f,g;}}function l(a,b){d.$broadcast("$locationChangeSuccess",m.absUrl(),a,m.$$state,b)}var m,p;p=c.baseHref();var n=c.url(),s;if(b.enabled){if(!p&&b.requireBase)throw kb("nobase");s=n.substring(0,n.indexOf("/",n.indexOf("//")+2))+(p||"/");p=e.history?zc:Ed}else s=Da(n),p=Ac;var r=s.substr(0,Da(s).lastIndexOf("/")+1);m=new p(s,r,"#"+a);m.$$parseLinkUrl(n,n);m.$$state=c.state();var t=/^\s*(javascript|mailto):/i; +f.on("click",function(a){var e=b.rewriteLinks;if(e&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&2!==a.which&&2!==a.button){for(var g=x(a.target);"a"!==ua(g[0]);)if(g[0]===f[0]||!(g=g.parent())[0])return;if(!C(e)||!A(g.attr(e))){var e=g.prop("href"),h=g.attr("href")||g.attr("xlink:href");D(e)&&"[object SVGAnimatedString]"===e.toString()&&(e=ga(e.animVal).href);t.test(e)||!e||g.attr("target")||a.isDefaultPrevented()||!m.$$parseLinkUrl(e,h)||(a.preventDefault(),m.absUrl()!==c.url()&&d.$apply())}}});m.absUrl()!== +n&&c.url(m.absUrl(),!0);var N=!0;c.onUrlChange(function(a,b){yc(a,r)?(d.$evalAsync(function(){var c=m.absUrl(),e=m.$$state,f;m.$$parse(a);m.$$state=b;f=d.$broadcast("$locationChangeStart",a,c,b,e).defaultPrevented;m.absUrl()===a&&(f?(m.$$parse(c),m.$$state=e,h(c,!1,e)):(N=!1,l(c,e)))}),d.$$phase||d.$digest()):g.location.href=a});d.$watch(function(){if(N||m.$$urlUpdatedByLocation){m.$$urlUpdatedByLocation=!1;var a=c.url(),b=m.absUrl(),f=c.state(),g=m.$$replace,n=!k(a,b)||m.$$html5&&e.history&&f!== +m.$$state;if(N||n)N=!1,d.$evalAsync(function(){var b=m.absUrl(),c=d.$broadcast("$locationChangeStart",b,a,m.$$state,f).defaultPrevented;m.absUrl()===b&&(c?(m.$$parse(a),m.$$state=f):(n&&h(b,g,f===m.$$state?null:m.$$state),l(a,f)))})}m.$$replace=!1});return m}]}function Zf(){var a=!0,b=this;this.debugEnabled=function(b){return w(b)?(a=b,this):a};this.$get=["$window",function(d){function c(a){dc(a)&&(a.stack&&f?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&& +(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=d.console||{},e=b[a]||b.log||E;return function(){var a=[];r(arguments,function(b){a.push(c(b))});return Function.prototype.apply.call(e,b,a)}}var f=wa||/\bEdge\//.test(d.navigator&&d.navigator.userAgent);return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){a&&c.apply(b,arguments)}}()}}]}function Tg(a){return a+""}function Ug(a,b){return"undefined"!==typeof a?a: +b}function Gd(a,b){return"undefined"===typeof a?b:"undefined"===typeof b?a:a+b}function Vg(a,b){switch(a.type){case q.MemberExpression:if(a.computed)return!1;break;case q.UnaryExpression:return 1;case q.BinaryExpression:return"+"!==a.operator?1:!1;case q.CallExpression:return!1}return void 0===b?Hd:b}function Z(a,b,d){var c,e,f=a.isPure=Vg(a,d);switch(a.type){case q.Program:c=!0;r(a.body,function(a){Z(a.expression,b,f);c=c&&a.expression.constant});a.constant=c;break;case q.Literal:a.constant=!0;a.toWatch= +[];break;case q.UnaryExpression:Z(a.argument,b,f);a.constant=a.argument.constant;a.toWatch=a.argument.toWatch;break;case q.BinaryExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case q.LogicalExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.constant?[]:[a];break;case q.ConditionalExpression:Z(a.test,b,f);Z(a.alternate,b,f);Z(a.consequent,b,f);a.constant=a.test.constant&& +a.alternate.constant&&a.consequent.constant;a.toWatch=a.constant?[]:[a];break;case q.Identifier:a.constant=!1;a.toWatch=[a];break;case q.MemberExpression:Z(a.object,b,f);a.computed&&Z(a.property,b,f);a.constant=a.object.constant&&(!a.computed||a.property.constant);a.toWatch=a.constant?[]:[a];break;case q.CallExpression:c=d=a.filter?!b(a.callee.name).$stateful:!1;e=[];r(a.arguments,function(a){Z(a,b,f);c=c&&a.constant;e.push.apply(e,a.toWatch)});a.constant=c;a.toWatch=d?e:[a];break;case q.AssignmentExpression:Z(a.left, +b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=[a];break;case q.ArrayExpression:c=!0;e=[];r(a.elements,function(a){Z(a,b,f);c=c&&a.constant;e.push.apply(e,a.toWatch)});a.constant=c;a.toWatch=e;break;case q.ObjectExpression:c=!0;e=[];r(a.properties,function(a){Z(a.value,b,f);c=c&&a.value.constant;e.push.apply(e,a.value.toWatch);a.computed&&(Z(a.key,b,!1),c=c&&a.key.constant,e.push.apply(e,a.key.toWatch))});a.constant=c;a.toWatch=e;break;case q.ThisExpression:a.constant= +!1;a.toWatch=[];break;case q.LocalsExpression:a.constant=!1,a.toWatch=[]}}function Id(a){if(1===a.length){a=a[0].expression;var b=a.toWatch;return 1!==b.length?b:b[0]!==a?b:void 0}}function Jd(a){return a.type===q.Identifier||a.type===q.MemberExpression}function Kd(a){if(1===a.body.length&&Jd(a.body[0].expression))return{type:q.AssignmentExpression,left:a.body[0].expression,right:{type:q.NGValueParameter},operator:"="}}function Ld(a){this.$filter=a}function Md(a){this.$filter=a}function Nb(a,b,d){this.ast= +new q(a,d);this.astCompiler=d.csp?new Md(b):new Ld(b)}function Bc(a){return B(a.valueOf)?a.valueOf():Wg.call(a)}function $f(){var a=T(),b={"true":!0,"false":!1,"null":null,undefined:void 0},d,c;this.addLiteral=function(a,c){b[a]=c};this.setIdentifierFns=function(a,b){d=a;c=b;return this};this.$get=["$filter",function(e){function f(b,c){var d,f;switch(typeof b){case "string":return f=b=b.trim(),d=a[f],d||(d=new Ob(G),d=(new Nb(d,e,G)).parse(b),a[f]=p(d)),s(d,c);case "function":return s(b,c);default:return s(E, +c)}}function g(a,b,c){return null==a||null==b?a===b:"object"!==typeof a||(a=Bc(a),"object"!==typeof a||c)?a===b||a!==a&&b!==b:!1}function k(a,b,c,d,e){var f=d.inputs,h;if(1===f.length){var k=g,f=f[0];return a.$watch(function(a){var b=f(a);g(b,k,f.isPure)||(h=d(a,void 0,void 0,[b]),k=b&&Bc(b));return h},b,c,e)}for(var l=[],m=[],n=0,p=f.length;n=c.$$state.status&&e&&e.length&&a(function(){for(var a,c,f=0,g=e.length;fa)for(b in l++, +f)ta.call(e,b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$$pure=g(a).literal;c.$stateful=!c.$$pure;var d=this,e,f,h,k=1r&&(A=4-r,N[A]||(N[A]=[]),N[A].push({msg:B(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,newVal:g,oldVal:h}));else if(a===c){s= +!1;break a}}catch(E){f(E)}if(!(n=!q.$$suspended&&q.$$watchersCount&&q.$$childHead||q!==y&&q.$$nextSibling))for(;q!==y&&!(n=q.$$nextSibling);)q=q.$parent}while(q=n);if((s||w.length)&&!r--)throw v.$$phase=null,d("infdig",b,N);}while(s||w.length);for(v.$$phase=null;Jwa)throw Ea("iequirks");var c=ja(W);c.isEnabled=function(){return a};c.trustAs=d.trustAs;c.getTrusted=d.getTrusted;c.valueOf=d.valueOf;a||(c.trustAs=c.getTrusted=function(a,b){return b},c.valueOf=Ta);c.parseAs=function(a,d){var e=b(d);return e.literal&&e.constant?e:b(d,function(b){return c.getTrusted(a,b)})};var e=c.parseAs,f=c.getTrusted,g=c.trustAs;r(W, +function(a,b){var d=K(b);c[("parse_as_"+d).replace(Dc,xb)]=function(b){return e(a,b)};c[("get_trusted_"+d).replace(Dc,xb)]=function(b){return f(a,b)};c[("trust_as_"+d).replace(Dc,xb)]=function(b){return g(a,b)}});return c}]}function fg(){this.$get=["$window","$document",function(a,b){var d={},c=!((!a.nw||!a.nw.process)&&a.chrome&&(a.chrome.app&&a.chrome.app.runtime||!a.chrome.app&&a.chrome.runtime&&a.chrome.runtime.id))&&a.history&&a.history.pushState,e=fa((/android (\d+)/.exec(K((a.navigator||{}).userAgent))|| +[])[1]),f=/Boxee/i.test((a.navigator||{}).userAgent),g=b[0]||{},k=g.body&&g.body.style,h=!1,l=!1;k&&(h=!!("transition"in k||"webkitTransition"in k),l=!!("animation"in k||"webkitAnimation"in k));return{history:!(!c||4>e||f),hasEvent:function(a){if("input"===a&&wa)return!1;if(A(d[a])){var b=g.createElement("div");d[a]="on"+a in b}return d[a]},csp:Ba(),transitions:h,animations:l,android:e}}]}function gg(){this.$get=ia(function(a){return new Yg(a)})}function Yg(a){function b(){var a=e.pop();return a&& +a.cb}function d(a){for(var b=e.length-1;0<=b;--b){var c=e[b];if(c.type===a)return e.splice(b,1),c.cb}}var c={},e=[],f=this.ALL_TASKS_TYPE="$$all$$",g=this.DEFAULT_TASK_TYPE="$$default$$";this.completeTask=function(e,h){h=h||g;try{e()}finally{var l;l=h||g;c[l]&&(c[l]--,c[f]--);l=c[h];var m=c[f];if(!m||!l)for(l=m?d:b;m=l(h);)try{m()}catch(p){a.error(p)}}};this.incTaskCount=function(a){a=a||g;c[a]=(c[a]||0)+1;c[f]=(c[f]||0)+1};this.notifyWhenNoPendingTasks=function(a,b){b=b||f;c[b]?e.push({type:b,cb:a}): +a()}}function ig(){var a;this.httpOptions=function(b){return b?(a=b,this):a};this.$get=["$exceptionHandler","$templateCache","$http","$q","$sce",function(b,d,c,e,f){function g(k,h){g.totalPendingRequests++;if(!C(k)||A(d.get(k)))k=f.getTrustedResourceUrl(k);var l=c.defaults&&c.defaults.transformResponse;H(l)?l=l.filter(function(a){return a!==wc}):l===wc&&(l=null);return c.get(k,S({cache:d,transformResponse:l},a)).finally(function(){g.totalPendingRequests--}).then(function(a){return d.put(k,a.data)}, +function(a){h||(a=Zg("tpload",k,a.status,a.statusText),b(a));return e.reject(a)})}g.totalPendingRequests=0;return g}]}function jg(){this.$get=["$rootScope","$browser","$location",function(a,b,d){return{findBindings:function(a,b,d){a=a.getElementsByClassName("ng-binding");var g=[];r(a,function(a){var c=ca.element(a).data("$binding");c&&r(c,function(c){d?(new RegExp("(^|\\s)"+Od(b)+"(\\s|\\||$)")).test(c)&&g.push(a):-1!==c.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,d){for(var g=["ng-", +"data-ng-","ng\\:"],k=0;kc&&(c=e),c+=+a.slice(e+1),a=a.substring(0,e)):0>c&&(c=a.length);for(e=0;a.charAt(e)===Fc;e++);if(e===(g=a.length))d=[0],c=1;else{for(g--;a.charAt(g)===Fc;)g--;c-=e;d=[];for(f=0;e<=g;e++,f++)d[f]=+a.charAt(e)}c>Yd&&(d=d.splice(0,Yd-1),b=c-1,c=1);return{d:d,e:b,i:c}}function ih(a, +b,d,c){var e=a.d,f=e.length-a.i;b=A(b)?Math.min(Math.max(d,f),c):+b;d=b+a.i;c=e[d];if(0d-1){for(c=0;c>d;c--)e.unshift(0),a.i++;e.unshift(1);a.i++}else e[d-1]++;for(;fk;)h.unshift(0),k++;0=b.lgSize&&k.unshift(h.splice(-b.lgSize,h.length).join(""));h.length>b.gSize;)k.unshift(h.splice(-b.gSize,h.length).join(""));h.length&&k.unshift(h.join(""));h=k.join(d);f.length&&(h+=c+f.join(""));e&&(h+="e+"+e)}return 0>a&&!g?b.negPre+h+b.negSuf:b.posPre+ +h+b.posSuf}function Pb(a,b,d,c){var e="";if(0>a||c&&0>=a)c?a=-a+1:(a=-a,e="-");for(a=""+a;a.length-d)f+=d;0===f&&-12===d&&(f=12);return Pb(f,b,c,e)}}function lb(a,b,d){return function(c,e){var f=c["get"+a](),g=vb((d?"STANDALONE":"")+(b?"SHORT":"")+a);return e[g][f]}}function Zd(a){var b=(new Date(a,0,1)).getDay();return new Date(a,0,(4>=b?5:12)-b)}function $d(a){return function(b){var d= +Zd(b.getFullYear());b=+new Date(b.getFullYear(),b.getMonth(),b.getDate()+(4-b.getDay()))-+d;b=1+Math.round(b/6048E5);return Pb(b,a)}}function Gc(a,b){return 0>=a.getFullYear()?b.ERAS[0]:b.ERAS[1]}function Td(a){function b(a){var b;if(b=a.match(d)){a=new Date(0);var f=0,g=0,k=b[8]?a.setUTCFullYear:a.setFullYear,h=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=fa(b[9]+b[10]),g=fa(b[9]+b[11]));k.call(a,fa(b[1]),fa(b[2])-1,fa(b[3]));f=fa(b[4]||0)-f;g=fa(b[5]||0)-g;k=fa(b[6]||0);b=Math.round(1E3*parseFloat("0."+ +(b[7]||0)));h.call(a,f,g,k,b)}return a}var d=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,d,f){var g="",k=[],h,l;d=d||"mediumDate";d=a.DATETIME_FORMATS[d]||d;C(c)&&(c=jh.test(c)?fa(c):b(c));X(c)&&(c=new Date(c));if(!ha(c)||!isFinite(c.getTime()))return c;for(;d;)(l=kh.exec(d))?(k=db(k,l,1),d=k.pop()):(k.push(d),d=null);var m=c.getTimezoneOffset();f&&(m=fc(f,m),c=gc(c,f,!0));r(k,function(b){h=lh[b];g+=h?h(c,a.DATETIME_FORMATS, +m):"''"===b?"'":b.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function ch(){return function(a,b){A(b)&&(b=2);return eb(a,b)}}function dh(){return function(a,b,d){b=Infinity===Math.abs(Number(b))?Number(b):fa(b);if(Y(b))return a;X(a)&&(a=a.toString());if(!za(a))return a;d=!d||isNaN(d)?0:fa(d);d=0>d?Math.max(0,a.length+d):d;return 0<=b?Hc(a,d,d+b):0===d?Hc(a,b,a.length):Hc(a,Math.max(0,d+b),d)}}function Hc(a,b,d){return C(a)?a.slice(b,d):Ha.call(a,b,d)}function Vd(a){function b(b){return b.map(function(b){var c= +1,d=Ta;if(B(b))d=b;else if(C(b)){if("+"===b.charAt(0)||"-"===b.charAt(0))c="-"===b.charAt(0)?-1:1,b=b.substring(1);if(""!==b&&(d=a(b),d.constant))var e=d(),d=function(a){return a[e]}}return{get:d,descending:c}})}function d(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}function c(a,b){var c=0,d=a.type,h=b.type;if(d===h){var h=a.value,l=b.value;"string"===d?(h=h.toLowerCase(),l=l.toLowerCase()):"object"===d&&(D(h)&&(h=a.index),D(l)&&(l=b.index));h!==l&&(c= +hb||37<=b&&40>=b|| +m(a,this,this.value)});if(e.hasEvent("paste"))b.on("paste cut drop",m)}b.on("change",l);if(ee[g]&&c.$$hasNativeValidators&&g===d.type)b.on("keydown wheel mousedown",function(a){if(!h){var b=this.validity,c=b.badInput,d=b.typeMismatch;h=f.defer(function(){h=null;b.badInput===c&&b.typeMismatch===d||l(a)})}});c.$render=function(){var a=c.$isEmpty(c.$viewValue)?"":c.$viewValue;b.val()!==a&&b.val(a)}}function Rb(a,b){return function(d,c){var e,f;if(ha(d))return d;if(C(d)){'"'===d.charAt(0)&&'"'===d.charAt(d.length- +1)&&(d=d.substring(1,d.length-1));if(mh.test(d))return new Date(d);a.lastIndex=0;if(e=a.exec(d))return e.shift(),f=c?{yyyy:c.getFullYear(),MM:c.getMonth()+1,dd:c.getDate(),HH:c.getHours(),mm:c.getMinutes(),ss:c.getSeconds(),sss:c.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},r(e,function(a,c){cf.yyyy&&e.setFullYear(f.yyyy),e}return NaN}}function ob(a,b,d,c){return function(e,f,g,k,h,l,m, +p){function n(a){return a&&!(a.getTime&&a.getTime()!==a.getTime())}function s(a){return w(a)&&!ha(a)?r(a)||void 0:a}function r(a,b){var c=k.$options.getOption("timezone");v&&v!==c&&(b=Uc(b,fc(v)));var e=d(a,b);!isNaN(e)&&c&&(e=gc(e,c));return e}Jc(e,f,g,k,a);Sa(e,f,g,k,h,l);var t="time"===a||"datetimelocal"===a,q,v;k.$parsers.push(function(c){if(k.$isEmpty(c))return null;if(b.test(c))return r(c,q);k.$$parserName=a});k.$formatters.push(function(a){if(a&&!ha(a))throw pb("datefmt",a);if(n(a)){q=a;var b= +k.$options.getOption("timezone");b&&(v=b,q=gc(q,b,!0));var d=c;t&&C(k.$options.getOption("timeSecondsFormat"))&&(d=c.replace("ss.sss",k.$options.getOption("timeSecondsFormat")).replace(/:$/,""));a=m("date")(a,d,b);t&&k.$options.getOption("timeStripZeroSeconds")&&(a=a.replace(/(?::00)?(?:\.000)?$/,""));return a}v=q=null;return""});if(w(g.min)||g.ngMin){var x=g.min||p(g.ngMin)(e),z=s(x);k.$validators.min=function(a){return!n(a)||A(z)||d(a)>=z};g.$observe("min",function(a){a!==x&&(z=s(a),x=a,k.$validate())})}if(w(g.max)|| +g.ngMax){var y=g.max||p(g.ngMax)(e),J=s(y);k.$validators.max=function(a){return!n(a)||A(J)||d(a)<=J};g.$observe("max",function(a){a!==y&&(J=s(a),y=a,k.$validate())})}}}function Jc(a,b,d,c,e){(c.$$hasNativeValidators=D(b[0].validity))&&c.$parsers.push(function(a){var d=b.prop("validity")||{};if(d.badInput||d.typeMismatch)c.$$parserName=e;else return a})}function fe(a){a.$parsers.push(function(b){if(a.$isEmpty(b))return null;if(nh.test(b))return parseFloat(b);a.$$parserName="number"});a.$formatters.push(function(b){if(!a.$isEmpty(b)){if(!X(b))throw pb("numfmt", +b);b=b.toString()}return b})}function na(a){w(a)&&!X(a)&&(a=parseFloat(a));return Y(a)?void 0:a}function Kc(a){var b=a.toString(),d=b.indexOf(".");return-1===d?-1a&&(a=/e-(\d+)$/.exec(b))?Number(a[1]):0:b.length-d-1}function ge(a,b,d){a=Number(a);var c=(a|0)!==a,e=(b|0)!==b,f=(d|0)!==d;if(c||e||f){var g=c?Kc(a):0,k=e?Kc(b):0,h=f?Kc(d):0,g=Math.max(g,k,h),g=Math.pow(10,g);a*=g;b*=g;d*=g;c&&(a=Math.round(a));e&&(b=Math.round(b));f&&(d=Math.round(d))}return 0===(a-b)%d}function he(a,b,d,c,e){if(w(c)){a= +a(c);if(!a.constant)throw pb("constexpr",d,c);return a(b)}return e}function Lc(a,b){function d(a,b){if(!a||!a.length)return[];if(!b||!b.length)return a;var c=[],d=0;a:for(;d(?:<\/\1>|)$/,nc=/<|&#?\w+;/,rg=/<([\w:-]+)/,sg=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,qa={thead:["table"],col:["colgroup","table"],tr:["tbody","table"],td:["tr", +"tbody","table"]};qa.tbody=qa.tfoot=qa.colgroup=qa.caption=qa.thead;qa.th=qa.td;var hb={option:[1,'"],_default:[0,"",""]},Nc;for(Nc in qa){var le=qa[Nc],me=le.slice().reverse();hb[Nc]=[me.length,"<"+me.join("><")+">",""]}hb.optgroup=hb.option;var zg=z.Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)},Wa=U.prototype={ready:hd,toString:function(){var a=[];r(this,function(b){a.push(""+b)});return"["+a.join(", ")+ +"]"},eq:function(a){return 0<=a?x(this[a]):x(this[this.length+a])},length:0,push:ph,sort:[].sort,splice:[].splice},Hb={};r("multiple selected checked disabled readOnly required open".split(" "),function(a){Hb[K(a)]=a});var od={};r("input select option textarea button form details".split(" "),function(a){od[a]=!0});var vd={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern",ngStep:"step"};r({data:sc,removeData:rc,hasData:function(a){for(var b in Ka[a.ng339])return!0; +return!1},cleanData:function(a){for(var b=0,d=a.length;b/,Cg=/^[^(]*\(\s*([^)]*)\)/m,sh=/,/,th=/^\s*(_?)(\S+?)\1\s*$/,Ag=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Ca=F("$injector");fb.$$annotate=function(a,b,d){var c;if("function"===typeof a){if(!(c=a.$inject)){c=[];if(a.length){if(b)throw C(d)&&d||(d=a.name||Dg(a)),Ca("strictdi",d);b=qd(a);r(b[1].split(sh),function(a){a.replace(th,function(a,b,d){c.push(d)})})}a.$inject=c}}else H(a)?(b=a.length-1,tb(a[b],"fn"),c=a.slice(0,b)):tb(a,"fn",!0);return c};var ne=F("$animate"), +Ef=function(){this.$get=E},Ff=function(){var a=new Ib,b=[];this.$get=["$$AnimateRunner","$rootScope",function(d,c){function e(a,b,c){var d=!1;b&&(b=C(b)?b.split(" "):H(b)?b:[],r(b,function(b){b&&(d=!0,a[b]=c)}));return d}function f(){r(b,function(b){var c=a.get(b);if(c){var d=Eg(b.attr("class")),e="",f="";r(c,function(a,b){a!==!!d[b]&&(a?e+=(e.length?" ":"")+b:f+=(f.length?" ":"")+b)});r(b,function(a){e&&Eb(a,e);f&&Db(a,f)});a.delete(b)}});b.length=0}return{enabled:E,on:E,off:E,pin:E,push:function(g, +k,h,l){l&&l();h=h||{};h.from&&g.css(h.from);h.to&&g.css(h.to);if(h.addClass||h.removeClass)if(k=h.addClass,l=h.removeClass,h=a.get(g)||{},k=e(h,k,!0),l=e(h,l,!1),k||l)a.set(g,h),b.push(g),1===b.length&&c.$$postDigest(f);g=new d;g.complete();return g}}}]},Cf=["$provide",function(a){var b=this,d=null,c=null;this.$$registeredAnimations=Object.create(null);this.register=function(c,d){if(c&&"."!==c.charAt(0))throw ne("notcsel",c);var g=c+"-animation";b.$$registeredAnimations[c.substr(1)]=g;a.factory(g, +d)};this.customFilter=function(a){1===arguments.length&&(c=B(a)?a:null);return c};this.classNameFilter=function(a){if(1===arguments.length&&(d=a instanceof RegExp?a:null)&&/[(\s|\/)]ng-animate[(\s|\/)]/.test(d.toString()))throw d=null,ne("nongcls","ng-animate");return d};this.$get=["$$animateQueue",function(a){function b(a,c,d){if(d){var e;a:{for(e=0;e <= >= && || ! = |".split(" "),function(a){Vb[a]= +!0});var wh={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Ob=function(a){this.options=a};Ob.prototype={constructor:Ob,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index=a&&"string"=== +typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdentifierStart:function(a){return this.options.isIdentifierStart?this.options.isIdentifierStart(a,this.codePointAt(a)):this.isValidIdentifierStart(a)},isValidIdentifierStart:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isIdentifierContinue:function(a){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(a,this.codePointAt(a)):this.isValidIdentifierContinue(a)}, +isValidIdentifierContinue:function(a,b){return this.isValidIdentifierStart(a,b)||this.isNumber(a)},codePointAt:function(a){return 1===a.length?a.charCodeAt(0):(a.charCodeAt(0)<<10)+a.charCodeAt(1)-56613888},peekMultichar:function(){var a=this.text.charAt(this.index),b=this.peek();if(!b)return a;var d=a.charCodeAt(0),c=b.charCodeAt(0);return 55296<=d&&56319>=d&&56320<=c&&57343>=c?a+b:a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,d){d=d||this.index;b= +w(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,d)+"]":" "+d;throw Ya("lexerr",a,b,this.text);},readNumber:function(){for(var a="",b=this.index;this.index","<=",">=");)a={type:q.BinaryExpression,operator:b.text, +left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),b;b=this.expect("+","-");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),b;b=this.expect("*","/","%");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:q.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()}, +primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?a=Ia(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?a={type:q.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression", +this.peek());for(var b;b=this.expect("(","[",".");)"("===b.text?(a={type:q.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")):"["===b.text?(a={type:q.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===b.text?a={type:q.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var b={type:q.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression()); +return b},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.filterChain());while(this.expect(","))}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:q.Identifier,name:a.text}},constant:function(){return{type:q.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]"); +return{type:q.ArrayExpression,elements:a}},object:function(){var a=[],b;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;b={type:q.Property,kind:"init"};this.peek().constant?(b.key=this.constant(),b.computed=!1,this.consume(":"),b.value=this.expression()):this.peek().identifier?(b.key=this.identifier(),b.computed=!1,this.peek(":")?(this.consume(":"),b.value=this.expression()):b.value=b.key):this.peek("[")?(this.consume("["),b.key=this.expression(),this.consume("]"),b.computed=!0,this.consume(":"), +b.value=this.expression()):this.throwError("invalid key",this.peek());a.push(b)}while(this.expect(","))}this.consume("}");return{type:q.ObjectExpression,properties:a}},throwError:function(a,b){throw Ya("syntax",b.text,a,b.index+1,this.text,this.text.substring(b.index));},consume:function(a){if(0===this.tokens.length)throw Ya("ueoe",this.text);var b=this.expect(a);b||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return b},peekToken:function(){if(0===this.tokens.length)throw Ya("ueoe", +this.text);return this.tokens[0]},peek:function(a,b,d,c){return this.peekAhead(0,a,b,d,c)},peekAhead:function(a,b,d,c,e){if(this.tokens.length>a){a=this.tokens[a];var f=a.text;if(f===b||f===d||f===c||f===e||!(b||d||c||e))return a}return!1},expect:function(a,b,d,c){return(a=this.peek(a,b,d,c))?(this.tokens.shift(),a):!1},selfReferential:{"this":{type:q.ThisExpression},$locals:{type:q.LocalsExpression}}};var Hd=2;Ld.prototype={compile:function(a){var b=this;this.state={nextId:0,filters:{},fn:{vars:[], +body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};Z(a,b.$filter);var d="",c;this.stage="assign";if(c=Kd(a))this.state.computing="assign",d=this.nextId(),this.recurse(c,d),this.return_(d),d="fn.assign="+this.generateFunction("assign","s,v,l");c=Id(a.body);b.stage="inputs";r(c,function(a,c){var d="fn"+c;b.state[d]={vars:[],body:[],own:{}};b.state.computing=d;var k=b.nextId();b.recurse(a,k);b.return_(k);b.state.inputs.push({name:d,isPure:a.isPure});a.watchId=c});this.state.computing="fn";this.stage= +"main";this.recurse(a);a='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+d+this.watchFns()+"return fn;";a=(new Function("$filter","getStringValue","ifDefined","plus",a))(this.$filter,Tg,Ug,Gd);this.state=this.stage=void 0;return a},USE:"use",STRICT:"strict",watchFns:function(){var a=[],b=this.state.inputs,d=this;r(b,function(b){a.push("var "+b.name+"="+d.generateFunction(b.name,"s"));b.isPure&&a.push(b.name,".isPure="+JSON.stringify(b.isPure)+ +";")});b.length&&a.push("fn.inputs=["+b.map(function(a){return a.name}).join(",")+"];");return a.join("")},generateFunction:function(a,b){return"function("+b+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],b=this;r(this.state.filters,function(d,c){a.push(d+"=$filter("+b.escape(c)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")}, +recurse:function(a,b,d,c,e,f){var g,k,h=this,l,m,p;c=c||E;if(!f&&w(a.watchId))b=b||this.nextId(),this.if_("i",this.lazyAssign(b,this.computedMember("i",a.watchId)),this.lazyRecurse(a,b,d,c,e,!0));else switch(a.type){case q.Program:r(a.body,function(b,c){h.recurse(b.expression,void 0,void 0,function(a){k=a});c!==a.body.length-1?h.current().body.push(k,";"):h.return_(k)});break;case q.Literal:m=this.escape(a.value);this.assign(b,m);c(b||m);break;case q.UnaryExpression:this.recurse(a.argument,void 0, +void 0,function(a){k=a});m=a.operator+"("+this.ifDefined(k,0)+")";this.assign(b,m);c(m);break;case q.BinaryExpression:this.recurse(a.left,void 0,void 0,function(a){g=a});this.recurse(a.right,void 0,void 0,function(a){k=a});m="+"===a.operator?this.plus(g,k):"-"===a.operator?this.ifDefined(g,0)+a.operator+this.ifDefined(k,0):"("+g+")"+a.operator+"("+k+")";this.assign(b,m);c(m);break;case q.LogicalExpression:b=b||this.nextId();h.recurse(a.left,b);h.if_("&&"===a.operator?b:h.not(b),h.lazyRecurse(a.right, +b));c(b);break;case q.ConditionalExpression:b=b||this.nextId();h.recurse(a.test,b);h.if_(b,h.lazyRecurse(a.alternate,b),h.lazyRecurse(a.consequent,b));c(b);break;case q.Identifier:b=b||this.nextId();d&&(d.context="inputs"===h.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name);h.if_("inputs"===h.stage||h.not(h.getHasOwnProperty("l",a.name)),function(){h.if_("inputs"===h.stage||"s",function(){e&&1!==e&&h.if_(h.isNull(h.nonComputedMember("s",a.name)), +h.lazyAssign(h.nonComputedMember("s",a.name),"{}"));h.assign(b,h.nonComputedMember("s",a.name))})},b&&h.lazyAssign(b,h.nonComputedMember("l",a.name)));c(b);break;case q.MemberExpression:g=d&&(d.context=this.nextId())||this.nextId();b=b||this.nextId();h.recurse(a.object,g,void 0,function(){h.if_(h.notNull(g),function(){a.computed?(k=h.nextId(),h.recurse(a.property,k),h.getStringValue(k),e&&1!==e&&h.if_(h.not(h.computedMember(g,k)),h.lazyAssign(h.computedMember(g,k),"{}")),m=h.computedMember(g,k),h.assign(b, +m),d&&(d.computed=!0,d.name=k)):(e&&1!==e&&h.if_(h.isNull(h.nonComputedMember(g,a.property.name)),h.lazyAssign(h.nonComputedMember(g,a.property.name),"{}")),m=h.nonComputedMember(g,a.property.name),h.assign(b,m),d&&(d.computed=!1,d.name=a.property.name))},function(){h.assign(b,"undefined")});c(b)},!!e);break;case q.CallExpression:b=b||this.nextId();a.filter?(k=h.filter(a.callee.name),l=[],r(a.arguments,function(a){var b=h.nextId();h.recurse(a,b);l.push(b)}),m=k+"("+l.join(",")+")",h.assign(b,m),c(b)): +(k=h.nextId(),g={},l=[],h.recurse(a.callee,k,g,function(){h.if_(h.notNull(k),function(){r(a.arguments,function(b){h.recurse(b,a.constant?void 0:h.nextId(),void 0,function(a){l.push(a)})});m=g.name?h.member(g.context,g.name,g.computed)+"("+l.join(",")+")":k+"("+l.join(",")+")";h.assign(b,m)},function(){h.assign(b,"undefined")});c(b)}));break;case q.AssignmentExpression:k=this.nextId();g={};this.recurse(a.left,void 0,g,function(){h.if_(h.notNull(g.context),function(){h.recurse(a.right,k);m=h.member(g.context, +g.name,g.computed)+a.operator+k;h.assign(b,m);c(b||m)})},1);break;case q.ArrayExpression:l=[];r(a.elements,function(b){h.recurse(b,a.constant?void 0:h.nextId(),void 0,function(a){l.push(a)})});m="["+l.join(",")+"]";this.assign(b,m);c(b||m);break;case q.ObjectExpression:l=[];p=!1;r(a.properties,function(a){a.computed&&(p=!0)});p?(b=b||this.nextId(),this.assign(b,"{}"),r(a.properties,function(a){a.computed?(g=h.nextId(),h.recurse(a.key,g)):g=a.key.type===q.Identifier?a.key.name:""+a.key.value;k=h.nextId(); +h.recurse(a.value,k);h.assign(h.member(b,g,a.computed),k)})):(r(a.properties,function(b){h.recurse(b.value,a.constant?void 0:h.nextId(),void 0,function(a){l.push(h.escape(b.key.type===q.Identifier?b.key.name:""+b.key.value)+":"+a)})}),m="{"+l.join(",")+"}",this.assign(b,m));c(b||m);break;case q.ThisExpression:this.assign(b,"s");c(b||"s");break;case q.LocalsExpression:this.assign(b,"l");c(b||"l");break;case q.NGValueParameter:this.assign(b,"v"),c(b||"v")}},getHasOwnProperty:function(a,b){var d=a+"."+ +b,c=this.current().own;c.hasOwnProperty(d)||(c[d]=this.nextId(!1,a+"&&("+this.escape(b)+" in "+a+")"));return c[d]},assign:function(a,b){if(a)return this.current().body.push(a,"=",b,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,b){return"ifDefined("+a+","+this.escape(b)+")"},plus:function(a,b){return"plus("+a+","+b+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a, +b,d){if(!0===a)b();else{var c=this.current().body;c.push("if(",a,"){");b();c.push("}");d&&(c.push("else{"),d(),c.push("}"))}},not:function(a){return"!("+a+")"},isNull:function(a){return a+"==null"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,b){var d=/[^$_a-zA-Z0-9]/g;return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(b)?a+"."+b:a+'["'+b.replace(d,this.stringEscapeFn)+'"]'},computedMember:function(a,b){return a+"["+b+"]"},member:function(a,b,d){return d?this.computedMember(a,b):this.nonComputedMember(a, +b)},getStringValue:function(a){this.assign(a,"getStringValue("+a+")")},lazyRecurse:function(a,b,d,c,e,f){var g=this;return function(){g.recurse(a,b,d,c,e,f)}},lazyAssign:function(a,b){var d=this;return function(){d.assign(a,b)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(C(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(X(a))return a.toString();if(!0===a)return"true";if(!1=== +a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw Ya("esc");},nextId:function(a,b){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(b?"="+b:""));return d},current:function(){return this.state[this.state.computing]}};Md.prototype={compile:function(a){var b=this;Z(a,b.$filter);var d,c;if(d=Kd(a))c=this.recurse(d);d=Id(a.body);var e;d&&(e=[],r(d,function(a,c){var d=b.recurse(a);d.isPure=a.isPure;a.input=d;e.push(d);a.watchId=c}));var f=[];r(a.body, +function(a){f.push(b.recurse(a.expression))});a=0===a.body.length?E:1===a.body.length?f[0]:function(a,b){var c;r(f,function(d){c=d(a,b)});return c};c&&(a.assign=function(a,b,d){return c(a,d,b)});e&&(a.inputs=e);return a},recurse:function(a,b,d){var c,e,f=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case q.Literal:return this.value(a.value,b);case q.UnaryExpression:return e=this.recurse(a.argument),this["unary"+a.operator](e,b);case q.BinaryExpression:return c=this.recurse(a.left), +e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case q.LogicalExpression:return c=this.recurse(a.left),e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case q.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),b);case q.Identifier:return f.identifier(a.name,b,d);case q.MemberExpression:return c=this.recurse(a.object,!1,!!d),a.computed||(e=a.property.name),a.computed&&(e=this.recurse(a.property)),a.computed?this.computedMember(c, +e,b,d):this.nonComputedMember(c,e,b,d);case q.CallExpression:return g=[],r(a.arguments,function(a){g.push(f.recurse(a))}),a.filter&&(e=this.$filter(a.callee.name)),a.filter||(e=this.recurse(a.callee,!0)),a.filter?function(a,c,d,f){for(var p=[],n=0;n":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>b(c,e,f,g);return d?{value:c}:c}},"binary<=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<=b(c,e,f,g);return d?{value:c}:c}},"binary>=":function(a,b,d){return function(c,e,f,g){c= +a(c,e,f,g)>=b(c,e,f,g);return d?{value:c}:c}},"binary&&":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)&&b(c,e,f,g);return d?{value:c}:c}},"binary||":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)||b(c,e,f,g);return d?{value:c}:c}},"ternary?:":function(a,b,d,c){return function(e,f,g,k){e=a(e,f,g,k)?b(e,f,g,k):d(e,f,g,k);return c?{value:e}:e}},value:function(a,b){return function(){return b?{context:void 0,name:void 0,value:a}:a}},identifier:function(a,b,d){return function(c,e,f,g){c= +e&&a in e?e:c;d&&1!==d&&c&&null==c[a]&&(c[a]={});e=c?c[a]:void 0;return b?{context:c,name:a,value:e}:e}},computedMember:function(a,b,d,c){return function(e,f,g,k){var h=a(e,f,g,k),l,m;null!=h&&(l=b(e,f,g,k),l+="",c&&1!==c&&h&&!h[l]&&(h[l]={}),m=h[l]);return d?{context:h,name:l,value:m}:m}},nonComputedMember:function(a,b,d,c){return function(e,f,g,k){e=a(e,f,g,k);c&&1!==c&&e&&null==e[b]&&(e[b]={});f=null!=e?e[b]:void 0;return d?{context:e,name:b,value:f}:f}},inputs:function(a,b){return function(d, +c,e,f){return f?f[b]:a(d,c,e)}}};Nb.prototype={constructor:Nb,parse:function(a){a=this.getAst(a);var b=this.astCompiler.compile(a.ast),d=a.ast;b.literal=0===d.body.length||1===d.body.length&&(d.body[0].expression.type===q.Literal||d.body[0].expression.type===q.ArrayExpression||d.body[0].expression.type===q.ObjectExpression);b.constant=a.ast.constant;b.oneTime=a.oneTime;return b},getAst:function(a){var b=!1;a=a.trim();":"===a.charAt(0)&&":"===a.charAt(1)&&(b=!0,a=a.substring(2));return{ast:this.ast.ast(a), +oneTime:b}}};var Ea=F("$sce"),W={HTML:"html",CSS:"css",MEDIA_URL:"mediaUrl",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Dc=/_([a-z])/g,Zg=F("$templateRequest"),$g=F("$timeout"),aa=z.document.createElement("a"),Qd=ga(z.location.href),Na;aa.href="http://[::1]";var ah="[::1]"===aa.hostname;Rd.$inject=["$document"];fd.$inject=["$provide"];var Yd=22,Xd=".",Fc="0";Sd.$inject=["$locale"];Ud.$inject=["$locale"];var lh={yyyy:ea("FullYear",4,0,!1,!0),yy:ea("FullYear",2,0,!0,!0),y:ea("FullYear",1,0,!1,!0), +MMMM:lb("Month"),MMM:lb("Month",!0),MM:ea("Month",2,1),M:ea("Month",1,1),LLLL:lb("Month",!1,!0),dd:ea("Date",2),d:ea("Date",1),HH:ea("Hours",2),H:ea("Hours",1),hh:ea("Hours",2,-12),h:ea("Hours",1,-12),mm:ea("Minutes",2),m:ea("Minutes",1),ss:ea("Seconds",2),s:ea("Seconds",1),sss:ea("Milliseconds",3),EEEE:lb("Day"),EEE:lb("Day",!0),a:function(a,b){return 12>a.getHours()?b.AMPMS[0]:b.AMPMS[1]},Z:function(a,b,d){a=-1*d;return a=(0<=a?"+":"")+(Pb(Math[0=a.getFullYear()?b.ERANAMES[0]:b.ERANAMES[1]}},kh=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))([\s\S]*)/,jh=/^-?\d+$/;Td.$inject=["$locale"];var eh=ia(K),fh=ia(vb);Vd.$inject=["$parse"];var Re=ia({restrict:"E",compile:function(a,b){if(!b.href&&!b.xlinkHref)return function(a,b){if("a"===b[0].nodeName.toLowerCase()){var e="[object SVGAnimatedString]"===la.call(b.prop("href"))?"xlink:href":"href"; +b.on("click",function(a){b.attr(e)||a.preventDefault()})}}}}),wb={};r(Hb,function(a,b){function d(a,d,e){a.$watch(e[c],function(a){e.$set(b,!!a)})}if("multiple"!==a){var c=xa("ng-"+b),e=d;"checked"===a&&(e=function(a,b,e){e.ngModel!==e[c]&&d(a,b,e)});wb[c]=function(){return{restrict:"A",priority:100,link:e}}}});r(vd,function(a,b){wb[b]=function(){return{priority:100,link:function(a,c,e){if("ngPattern"===b&&"/"===e.ngPattern.charAt(0)&&(c=e.ngPattern.match(ke))){e.$set("ngPattern",new RegExp(c[1], +c[2]));return}a.$watch(e[b],function(a){e.$set(b,a)})}}}});r(["src","srcset","href"],function(a){var b=xa("ng-"+a);wb[b]=["$sce",function(d){return{priority:99,link:function(c,e,f){var g=a,k=a;"href"===a&&"[object SVGAnimatedString]"===la.call(e.prop("href"))&&(k="xlinkHref",f.$attr[k]="xlink:href",g=null);f.$set(b,d.getTrustedMediaUrl(f[b]));f.$observe(b,function(b){b?(f.$set(k,b),wa&&g&&e.prop(g,f[k])):"href"===a&&f.$set(k,null)})}}}]});var mb={$addControl:E,$getControls:ia([]),$$renameControl:function(a, +b){a.$name=b},$removeControl:E,$setValidity:E,$setDirty:E,$setPristine:E,$setSubmitted:E,$$setSubmitted:E};Qb.$inject=["$element","$attrs","$scope","$animate","$interpolate"];Qb.prototype={$rollbackViewValue:function(){r(this.$$controls,function(a){a.$rollbackViewValue()})},$commitViewValue:function(){r(this.$$controls,function(a){a.$commitViewValue()})},$addControl:function(a){Ja(a.$name,"input");this.$$controls.push(a);a.$name&&(this[a.$name]=a);a.$$parentForm=this},$getControls:function(){return ja(this.$$controls)}, +$$renameControl:function(a,b){var d=a.$name;this[d]===a&&delete this[d];this[b]=a;a.$name=b},$removeControl:function(a){a.$name&&this[a.$name]===a&&delete this[a.$name];r(this.$pending,function(b,d){this.$setValidity(d,null,a)},this);r(this.$error,function(b,d){this.$setValidity(d,null,a)},this);r(this.$$success,function(b,d){this.$setValidity(d,null,a)},this);cb(this.$$controls,a);a.$$parentForm=mb},$setDirty:function(){this.$$animate.removeClass(this.$$element,Za);this.$$animate.addClass(this.$$element, +Wb);this.$dirty=!0;this.$pristine=!1;this.$$parentForm.$setDirty()},$setPristine:function(){this.$$animate.setClass(this.$$element,Za,Wb+" ng-submitted");this.$dirty=!1;this.$pristine=!0;this.$submitted=!1;r(this.$$controls,function(a){a.$setPristine()})},$setUntouched:function(){r(this.$$controls,function(a){a.$setUntouched()})},$setSubmitted:function(){for(var a=this;a.$$parentForm&&a.$$parentForm!==mb;)a=a.$$parentForm;a.$$setSubmitted()},$$setSubmitted:function(){this.$$animate.addClass(this.$$element, +"ng-submitted");this.$submitted=!0;r(this.$$controls,function(a){a.$$setSubmitted&&a.$$setSubmitted()})}};ce({clazz:Qb,set:function(a,b,d){var c=a[b];c?-1===c.indexOf(d)&&c.push(d):a[b]=[d]},unset:function(a,b,d){var c=a[b];c&&(cb(c,d),0===c.length&&delete a[b])}});var oe=function(a){return["$timeout","$parse",function(b,d){function c(a){return""===a?d('this[""]').assign:d(a).assign||E}return{name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:Qb,compile:function(d,f){d.addClass(Za).addClass(nb); +var g=f.name?"name":a&&f.ngForm?"ngForm":!1;return{pre:function(a,d,e,f){var p=f[0];if(!("action"in e)){var n=function(b){a.$apply(function(){p.$commitViewValue();p.$setSubmitted()});b.preventDefault()};d[0].addEventListener("submit",n);d.on("$destroy",function(){b(function(){d[0].removeEventListener("submit",n)},0,!1)})}(f[1]||p.$$parentForm).$addControl(p);var s=g?c(p.$name):E;g&&(s(a,p),e.$observe(g,function(b){p.$name!==b&&(s(a,void 0),p.$$parentForm.$$renameControl(p,b),s=c(p.$name),s(a,p))})); +d.on("$destroy",function(){p.$$parentForm.$removeControl(p);s(a,void 0);S(p,mb)})}}}}}]},Se=oe(),df=oe(!0),mh=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,xh=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,yh=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/, +nh=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,pe=/^(\d{4,})-(\d{2})-(\d{2})$/,qe=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Oc=/^(\d{4,})-W(\d\d)$/,re=/^(\d{4,})-(\d\d)$/,se=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,ee=T();r(["date","datetime-local","month","time","week"],function(a){ee[a]=!0});var te={text:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Ic(c)},date:ob("date",pe,Rb(pe,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":ob("datetimelocal",qe,Rb(qe,"yyyy MM dd HH mm ss sss".split(" ")), +"yyyy-MM-ddTHH:mm:ss.sss"),time:ob("time",se,Rb(se,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:ob("week",Oc,function(a,b){if(ha(a))return a;if(C(a)){Oc.lastIndex=0;var d=Oc.exec(a);if(d){var c=+d[1],e=+d[2],f=d=0,g=0,k=0,h=Zd(c),e=7*(e-1);b&&(d=b.getHours(),f=b.getMinutes(),g=b.getSeconds(),k=b.getMilliseconds());return new Date(c,0,h.getDate()+e,d,f,g,k)}}return NaN},"yyyy-Www"),month:ob("month",re,Rb(re,["yyyy","MM"]),"yyyy-MM"),number:function(a,b,d,c,e,f,g,k){Jc(a,b,d,c,"number");fe(c);Sa(a, +b,d,c,e,f);var h;if(w(d.min)||d.ngMin){var l=d.min||k(d.ngMin)(a);h=na(l);c.$validators.min=function(a,b){return c.$isEmpty(b)||A(h)||b>=h};d.$observe("min",function(a){a!==l&&(h=na(a),l=a,c.$validate())})}if(w(d.max)||d.ngMax){var m=d.max||k(d.ngMax)(a),p=na(m);c.$validators.max=function(a,b){return c.$isEmpty(b)||A(p)||b<=p};d.$observe("max",function(a){a!==m&&(p=na(a),m=a,c.$validate())})}if(w(d.step)||d.ngStep){var n=d.step||k(d.ngStep)(a),s=na(n);c.$validators.step=function(a,b){return c.$isEmpty(b)|| +A(s)||ge(b,h||0,s)};d.$observe("step",function(a){a!==n&&(s=na(a),n=a,c.$validate())})}},url:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Ic(c);c.$validators.url=function(a,b){var d=a||b;return c.$isEmpty(d)||xh.test(d)}},email:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Ic(c);c.$validators.email=function(a,b){var d=a||b;return c.$isEmpty(d)||yh.test(d)}},radio:function(a,b,d,c){var e=!d.ngTrim||"false"!==V(d.ngTrim);A(d.name)&&b.attr("name",++qb);b.on("change",function(a){var g;b[0].checked&&(g=d.value,e&&(g= +V(g)),c.$setViewValue(g,a&&a.type))});c.$render=function(){var a=d.value;e&&(a=V(a));b[0].checked=a===c.$viewValue};d.$observe("value",c.$render)},range:function(a,b,d,c,e,f){function g(a,c){b.attr(a,d[a]);var e=d[a];d.$observe(a,function(a){a!==e&&(e=a,c(a))})}function k(a){p=na(a);Y(c.$modelValue)||(m?(a=b.val(),p>a&&(a=p,b.val(a)),c.$setViewValue(a)):c.$validate())}function h(a){n=na(a);Y(c.$modelValue)||(m?(a=b.val(),n=p},g("min",k)); +e&&(n=na(d.max),c.$validators.max=m?function(){return!0}:function(a,b){return c.$isEmpty(b)||A(n)||b<=n},g("max",h));f&&(s=na(d.step),c.$validators.step=m?function(){return!r.stepMismatch}:function(a,b){return c.$isEmpty(b)||A(s)||ge(b,p||0,s)},g("step",l))},checkbox:function(a,b,d,c,e,f,g,k){var h=he(k,a,"ngTrueValue",d.ngTrueValue,!0),l=he(k,a,"ngFalseValue",d.ngFalseValue,!1);b.on("change",function(a){c.$setViewValue(b[0].checked,a&&a.type)});c.$render=function(){b[0].checked=c.$viewValue};c.$isEmpty= +function(a){return!1===a};c.$formatters.push(function(a){return va(a,h)});c.$parsers.push(function(a){return a?h:l})},hidden:E,button:E,submit:E,reset:E,file:E},$c=["$browser","$sniffer","$filter","$parse",function(a,b,d,c){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,f,g,k){k[0]&&(te[K(g.type)]||te.text)(e,f,g,k[0],b,a,d,c)}}}}],Af=function(){var a={configurable:!0,enumerable:!1,get:function(){return this.getAttribute("value")||""},set:function(a){this.setAttribute("value",a)}}; +return{restrict:"E",priority:200,compile:function(b,d){if("hidden"===K(d.type))return{pre:function(b,d,f,g){b=d[0];b.parentNode&&b.parentNode.insertBefore(b,b.nextSibling);Object.defineProperty&&Object.defineProperty(b,"value",a)}}}}},zh=/^(true|false|\d+)$/,xf=function(){function a(a,d,c){var e=w(c)?c:9===wa?"":null;a.prop("value",e);d.$set("value",c)}return{restrict:"A",priority:100,compile:function(b,d){return zh.test(d.ngValue)?function(b,d,f){b=b.$eval(f.ngValue);a(d,f,b)}:function(b,d,f){b.$watch(f.ngValue, +function(b){a(d,f,b)})}}}},We=["$compile",function(a){return{restrict:"AC",compile:function(b){a.$$addBindingClass(b);return function(b,c,e){a.$$addBindingInfo(c,e.ngBind);c=c[0];b.$watch(e.ngBind,function(a){c.textContent=jc(a)})}}}}],Ye=["$interpolate","$compile",function(a,b){return{compile:function(d){b.$$addBindingClass(d);return function(c,d,f){c=a(d.attr(f.$attr.ngBindTemplate));b.$$addBindingInfo(d,c.expressions);d=d[0];f.$observe("ngBindTemplate",function(a){d.textContent=A(a)?"":a})}}}}], +Xe=["$sce","$parse","$compile",function(a,b,d){return{restrict:"A",compile:function(c,e){var f=b(e.ngBindHtml),g=b(e.ngBindHtml,function(b){return a.valueOf(b)});d.$$addBindingClass(c);return function(b,c,e){d.$$addBindingInfo(c,e.ngBindHtml);b.$watch(g,function(){var d=f(b);c.html(a.getTrustedHtml(d)||"")})}}}}],wf=ia({restrict:"A",require:"ngModel",link:function(a,b,d,c){c.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),Ze=Lc("",!0),af=Lc("Odd",0),$e=Lc("Even",1),bf=Ra({compile:function(a, +b){b.$set("ngCloak",void 0);a.removeClass("ng-cloak")}}),cf=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],ed={},Ah={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var b=xa("ng-"+a);ed[b]=["$parse","$rootScope","$exceptionHandler",function(d,c,e){return sd(d,c,e,b,a,Ah[a])}]});var ff=["$animate","$compile",function(a,b){return{multiElement:!0, +transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(d,c,e,f,g){var k,h,l;d.$watch(e.ngIf,function(d){d?h||g(function(d,f){h=f;d[d.length++]=b.$$createComment("end ngIf",e.ngIf);k={clone:d};a.enter(d,c.parent(),c)}):(l&&(l.remove(),l=null),h&&(h.$destroy(),h=null),k&&(l=ub(k.clone),a.leave(l).done(function(a){!1!==a&&(l=null)}),k=null))})}}}],gf=["$templateRequest","$anchorScroll","$animate",function(a,b,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element", +controller:ca.noop,compile:function(c,e){var f=e.ngInclude||e.src,g=e.onload||"",k=e.autoscroll;return function(c,e,m,p,n){var r=0,q,t,x,v=function(){t&&(t.remove(),t=null);q&&(q.$destroy(),q=null);x&&(d.leave(x).done(function(a){!1!==a&&(t=null)}),t=x,x=null)};c.$watch(f,function(f){var m=function(a){!1===a||!w(k)||k&&!c.$eval(k)||b()},t=++r;f?(a(f,!0).then(function(a){if(!c.$$destroyed&&t===r){var b=c.$new();p.template=a;a=n(b,function(a){v();d.enter(a,null,e).done(m)});q=b;x=a;q.$emit("$includeContentLoaded", +f);c.$eval(g)}},function(){c.$$destroyed||t!==r||(v(),c.$emit("$includeContentError",f))}),c.$emit("$includeContentRequested",f)):(v(),p.template=null)})}}}}],zf=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(b,d,c,e){la.call(d[0]).match(/SVG/)?(d.empty(),a(gd(e.template,z.document).childNodes)(b,function(a){d.append(a)},{futureParentElement:d})):(d.html(e.template),a(d.contents())(b))}}}],hf=Ra({priority:450,compile:function(){return{pre:function(a, +b,d){a.$eval(d.ngInit)}}}}),vf=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,b,d,c){var e=d.ngList||", ",f="false"!==d.ngTrim,g=f?V(e):e;c.$parsers.push(function(a){if(!A(a)){var b=[];a&&r(a.split(g),function(a){a&&b.push(f?V(a):a)});return b}});c.$formatters.push(function(a){if(H(a))return a.join(e)});c.$isEmpty=function(a){return!a||!a.length}}}},nb="ng-valid",be="ng-invalid",Za="ng-pristine",Wb="ng-dirty",pb=F("ngModel");Sb.$inject="$scope $exceptionHandler $attrs $element $parse $animate $timeout $q $interpolate".split(" "); +Sb.prototype={$$initGetterSetters:function(){if(this.$options.getOption("getterSetter")){var a=this.$$parse(this.$$attr.ngModel+"()"),b=this.$$parse(this.$$attr.ngModel+"($$$p)");this.$$ngModelGet=function(b){var c=this.$$parsedNgModel(b);B(c)&&(c=a(b));return c};this.$$ngModelSet=function(a,c){B(this.$$parsedNgModel(a))?b(a,{$$$p:c}):this.$$parsedNgModelAssign(a,c)}}else if(!this.$$parsedNgModel.assign)throw pb("nonassign",this.$$attr.ngModel,Aa(this.$$element));},$render:E,$isEmpty:function(a){return A(a)|| +""===a||null===a||a!==a},$$updateEmptyClasses:function(a){this.$isEmpty(a)?(this.$$animate.removeClass(this.$$element,"ng-not-empty"),this.$$animate.addClass(this.$$element,"ng-empty")):(this.$$animate.removeClass(this.$$element,"ng-empty"),this.$$animate.addClass(this.$$element,"ng-not-empty"))},$setPristine:function(){this.$dirty=!1;this.$pristine=!0;this.$$animate.removeClass(this.$$element,Wb);this.$$animate.addClass(this.$$element,Za)},$setDirty:function(){this.$dirty=!0;this.$pristine=!1;this.$$animate.removeClass(this.$$element, +Za);this.$$animate.addClass(this.$$element,Wb);this.$$parentForm.$setDirty()},$setUntouched:function(){this.$touched=!1;this.$untouched=!0;this.$$animate.setClass(this.$$element,"ng-untouched","ng-touched")},$setTouched:function(){this.$touched=!0;this.$untouched=!1;this.$$animate.setClass(this.$$element,"ng-touched","ng-untouched")},$rollbackViewValue:function(){this.$$timeout.cancel(this.$$pendingDebounce);this.$viewValue=this.$$lastCommittedViewValue;this.$render()},$validate:function(){if(!Y(this.$modelValue)){var a= +this.$$lastCommittedViewValue,b=this.$$rawModelValue,d=this.$valid,c=this.$modelValue,e=this.$options.getOption("allowInvalid"),f=this;this.$$runValidators(b,a,function(a){e||d===a||(f.$modelValue=a?b:void 0,f.$modelValue!==c&&f.$$writeModelToScope())})}},$$runValidators:function(a,b,d){function c(){var c=!0;r(h.$validators,function(d,e){var g=Boolean(d(a,b));c=c&&g;f(e,g)});return c?!0:(r(h.$asyncValidators,function(a,b){f(b,null)}),!1)}function e(){var c=[],d=!0;r(h.$asyncValidators,function(e, +g){var h=e(a,b);if(!h||!B(h.then))throw pb("nopromise",h);f(g,void 0);c.push(h.then(function(){f(g,!0)},function(){d=!1;f(g,!1)}))});c.length?h.$$q.all(c).then(function(){g(d)},E):g(!0)}function f(a,b){k===h.$$currentValidationRunId&&h.$setValidity(a,b)}function g(a){k===h.$$currentValidationRunId&&d(a)}this.$$currentValidationRunId++;var k=this.$$currentValidationRunId,h=this;(function(){var a=h.$$parserName;if(A(h.$$parserValid))f(a,null);else return h.$$parserValid||(r(h.$validators,function(a, +b){f(b,null)}),r(h.$asyncValidators,function(a,b){f(b,null)})),f(a,h.$$parserValid),h.$$parserValid;return!0})()?c()?e():g(!1):g(!1)},$commitViewValue:function(){var a=this.$viewValue;this.$$timeout.cancel(this.$$pendingDebounce);if(this.$$lastCommittedViewValue!==a||""===a&&this.$$hasNativeValidators)this.$$updateEmptyClasses(a),this.$$lastCommittedViewValue=a,this.$pristine&&this.$setDirty(),this.$$parseAndValidate()},$$parseAndValidate:function(){var a=this.$$lastCommittedViewValue,b=this;this.$$parserValid= +A(a)?void 0:!0;this.$setValidity(this.$$parserName,null);this.$$parserName="parse";if(this.$$parserValid)for(var d=0;dg||e.$isEmpty(b)||b.length<=g}}}}}],cd= +["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=c.minlength||a(c.ngMinlength)(b),g=Ub(f)||-1;c.$observe("minlength",function(a){f!==a&&(g=Ub(a)||-1,f=a,e.$validate())});e.$validators.minlength=function(a,b){return e.$isEmpty(b)||b.length>=g}}}}}];z.angular.bootstrap?z.console&&console.log("WARNING: Tried to load AngularJS more than once."):(Je(),Oe(ca),ca.module("ngLocale",[],["$provide",function(a){function b(a){a+="";var b=a.indexOf(".");return-1== +b?0:a.length-b-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONEMONTH:"January February March April May June July August September October November December".split(" "), +WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(a, +c){var e=a|0,f=c;void 0===f&&(f=Math.min(b(a),3));Math.pow(10,f);return 1==e&&0==f?"one":"other"}})}]),x(function(){Ee(z.document,Wc)}))})(window);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(window.angular.element(" -Fork me on GitHub -
-
+ + -
-
- - +

geolib.js

+

Settings

+

Show all distances in . +

-

geolib.js

-

Settings

+

Distance calculation

+

Calculate distance from to .

-

Show all distances in - . -

-
- -

Documentation

-
-
+

 

-
-
-

Distance calculation

-

Calculate distance from
to
.

-

-
-
+

What's near?

+

Static example

+

+ Show what's the nearest to +

-
-
-

Custom distance calculation

+

 

-

- Calculate distance from
- -
- to
- - . -

- - - -

-
-
- -
-
-

What's near?

-

Static example

-

- Show what's the nearest to -

-

-
-
- -
-
-

Geolocation example

-

Show me some cities near me (uses W3C Geolocation API)
-

-
-
-
- -
-
-

Format conversion

-

- Convert sexagesimal to decimal
- -
- -

-

- Convert decimal to sexagesimal
- -
- -

-
-
- -
+

Geolocation example

+

What's nearest from my position (uses W3C Geolocation API)

+

 

- - \ No newline at end of file diff --git a/app/bower_components/geolib/meteor/README.md b/app/bower_components/geolib/meteor/README.md deleted file mode 100644 index 8128b8d..0000000 --- a/app/bower_components/geolib/meteor/README.md +++ /dev/null @@ -1,25 +0,0 @@ -Packaging [Geolib](http://github.com/manuelbieh/Geolib) for [Meteor.js](http://meteor.com). - - -# Meteor - -If you're new to Meteor, here's what the excitement is all about - -[watch the first two minutes](https://www.youtube.com/watch?v=fsi0aJ9yr2o); you'll be hooked by 1:28. - -That screencast is from 2012. In the meantime, Meteor has become a mature JavaScript-everywhere web -development framework. Read more at [Why Meteor](http://www.meteorpedia.com/read/Why_Meteor). - - -# Issues - -If you encounter an issue while using this package, please CC @dandv when you file it in this repo. - - -# DONE - -* Simple test. Should be enough. - - -# TODO - -* Add other tests; however, that is overkill, and the responsibiity of Moment, not of the Meteor integration. diff --git a/app/bower_components/geolib/meteor/export.js b/app/bower_components/geolib/meteor/export.js deleted file mode 100644 index 043ff98..0000000 --- a/app/bower_components/geolib/meteor/export.js +++ /dev/null @@ -1,3 +0,0 @@ -// Geolib makes `geolib` global on the window (or global) object, while Meteor expects a file-scoped global variable -geolib = this.geolib; -delete this.geolib; diff --git a/app/bower_components/geolib/meteor/package.js b/app/bower_components/geolib/meteor/package.js deleted file mode 100644 index baae8eb..0000000 --- a/app/bower_components/geolib/meteor/package.js +++ /dev/null @@ -1,30 +0,0 @@ -// package metadata file for Meteor.js -'use strict'; - -var packageName = 'outatime:geolib'; // https://atmospherejs.com/outatime/geolib - -var packageJson = JSON.parse(Npm.require("fs").readFileSync('package.json')); - -Package.describe({ - name: packageName, - summary: 'Geolib - Library to perform geo specific tasks', - version: packageJson.version, - documentation: 'meteor/README.md', - git: 'https://github.com/manuelbieh/geolib.git' -}); - -Package.onUse(function (api) { - api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']); - api.export('geolib'); - api.addFiles([ - 'dist/geolib.js', - 'meteor/export.js' - ]); -}); - -Package.onTest(function (api) { - api.use(packageName); - api.use('tinytest'); - - api.addFiles('meteor/test.js'); -}); diff --git a/app/bower_components/geolib/meteor/test.js b/app/bower_components/geolib/meteor/test.js deleted file mode 100644 index 097c1c9..0000000 --- a/app/bower_components/geolib/meteor/test.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -Tinytest.add('Geolib.is', function (test) { - test.equal(geolib.radius, 6378137, {message: 'simple geolib object'}); -}); diff --git a/app/bower_components/geolib/package.json b/app/bower_components/geolib/package.json index bbbdb48..2ce1953 100644 --- a/app/bower_components/geolib/package.json +++ b/app/bower_components/geolib/package.json @@ -5,6 +5,9 @@ "name": "Manuel Bieh", "url": "http://www.manuelbieh.com/" }, + "bin": { + "geolib": "./geolib.js" + }, "repository": { "type": "git", "url": "http://github.com/manuelbieh/geolib.git" @@ -19,34 +22,27 @@ "grunt-contrib-qunit": "~0.2.0", "grunt-text-replace": "~0.3.6", "grunt-contrib-jshint": "~0.6.2", - "phantomjs": ">=1.8.0", - "grunt-jslint": "~1.0.0", - "time-grunt": "~0.3.1", - "load-grunt-tasks": "~0.4.0" + "phantomjs": "~1.8.0", + "grunt-jslint": "~1.0.0" }, "licenses": [ { - "type": "MIT", - "url": "http://opensource.org/licenses/MIT" + "type": "LGPL", + "url": "http://www.gnu.org/licenses/lgpl-3.0.txt" } ], "files": [ - "dist/geolib.js", - "dist/geolib.elevation.js" + "geolib.js" ], "description": "Library to perform geo specific tasks", "keywords": [ "geolocation", "geo", - "distance", - "geojson", - "geospatial", - "lbs", - "location" + "distance" ], "scripts": { "test": "grunt travis --verbose" }, - "version": "2.0.22", - "main": "dist/geolib.js" + "version": "1.3.5", + "main": "./geolib" } diff --git a/app/bower_components/geolib/src/geolib.elevation.js b/app/bower_components/geolib/src/geolib.elevation.js index 2dcc2d0..745f5ae 100644 --- a/app/bower_components/geolib/src/geolib.elevation.js +++ b/app/bower_components/geolib/src/geolib.elevation.js @@ -1,190 +1,135 @@ -/*! geolib.elevation $version$ by Manuel Bieh -* -* Elevation Addon for Geolib.js -* -* @author Manuel Bieh -* @url http://www.manuelbieh.com/ -* @version $version$ -* @license MIT -*/ -;(function(global, geolib, undefined) { - - var elevation = { - - /*global google:true geolib:true require:true module:true elevationResult:true */ - - /** - * @param Array Collection of coords [{latitude: 51.510, longitude: 7.1321}, {latitude: 49.1238, longitude: "8° 30' W"}, ...] - * @return Array [{lat:#lat, lng:#lng, elev:#elev},....]} - */ - getElevation: function() { - if (typeof global.navigator !== 'undefined') { - this.getElevationClient.apply(this, arguments); - } else { - this.getElevationServer.apply(this, arguments); - } - }, - - - /* Optional elevation addon requires Googlemaps API JS */ - getElevationClient: function(coords, cb) { - - if (!global.google) { - throw new Error("Google maps api not loaded"); - } - - if (coords.length === 0) { - return cb(null, null); - } - - if (coords.length === 1) { - return cb(new Error("getElevation requires at least 2 points.")); - } - - var path = []; - - for(var i = 0; i < coords.length; i++) { - path.push(new google.maps.LatLng( - this.latitude(coords[i]), - this.longitude(coords[i]) - )); - } - - var positionalRequest = { - 'path': path, - 'samples': path.length - }; - - var elevationService = new google.maps.ElevationService(); - var geolib = this; - - elevationService.getElevationAlongPath(positionalRequest, function (results, status) { - geolib.elevationHandler(results, status, coords, cb); - }); - - }, - - - getElevationServer: function(coords, cb) { - - if (coords.length === 0) { - return cb(null, null); - } - - if (coords.length === 1) { - return cb(new Error("getElevation requires at least 2 points.")); - } - - var gm = require('googlemaps'); - var path = []; - - for(var i = 0; i < coords.length; i++) { - path.push( - this.latitude(coords[i]) + ',' + this.longitude(coords[i]) - ); - } - - var geolib = this; - - gm.elevationFromPath(path.join('|'), path.length, function(err, results) { - geolib.elevationHandler(results.results, results.status, coords, cb); - }); - - }, - - - elevationHandler: function(results, status, coords, cb) { - - var latsLngsElevs = []; - - if (status == "OK" ) { - - for (var i = 0; i < results.length; i++) { - latsLngsElevs.push({ - "lat": this.latitude(coords[i]), - "lng": this.longitude(coords[i]), - "elev":results[i].elevation - }); - } - - cb(null, latsLngsElevs); - - } else { - - cb(new Error("Could not get elevation using Google's API"), elevationResult.status); - - } - - }, - - - /** - * @param Array [{lat:#lat, lng:#lng, elev:#elev},....]} - * @return Number % grade - */ - getGrade: function(coords) { - - var rise = Math.abs( - this.elevation(coords[coords.length-1]) - this.elevation(coords[0]) - ); - - var run = this.getPathLength(coords); - - return Math.floor((rise/run)*100); - - }, - - - /** - * @param Array [{lat:#lat, lng:#lng, elev:#elev},....]} - * @return Object {gain:#gain, loss:#loss} - */ - getTotalElevationGainAndLoss: function(coords) { - - var gain = 0; - var loss = 0; - - for(var i = 0; i < coords.length - 1; i++) { - - var deltaElev = this.elevation(coords[i]) - this.elevation(coords[i + 1]); - - if (deltaElev > 0) { - loss += deltaElev; - } else { - gain += Math.abs(deltaElev); - } - - } - - return { - "gain": gain, - "loss": loss - }; + /* Optional elevation addon requires Googlemaps API JS */ + /*global google:true geolib:true require:true module:true elevationResult*/ + /** + * @param Array Collection of coords [{latitude: 51.510, longitude: 7.1321}, {latitude: 49.1238, longitude: "8° 30' W"}, ...] + * + * @return Array [{lat:#lat, lng:#lng, elev:#elev},....]} + */ + geolib.getElevation = function() { + if (typeof window.navigator !== 'undefined') { + geolib.getElevationClient.apply(this, arguments); + } else { + geolib.getElevationServer.apply(this, arguments); } + }; + + geolib.getElevationClient = function(coords, cb) { + + if (!window.google) { + throw new Error("Google maps api not loaded"); + } + + if (coords.length === 0) { + return cb(null, null); + } + + if (coords.length === 1) { + return cb(new Error("getElevation requires at least 2 points.")); + } + + var path = []; + var keys = geolib.getKeys(coords[0]); + var latitude = keys.latitude; + var longitude = keys.longitude; + + for(var i = 0; i < coords.length; i++) { + path.push(new google.maps.LatLng( + geolib.useDecimal(coords[i][latitude]), + geolib.useDecimal(coords[i][longitude]) + )); + } + + var positionalRequest = { + 'path': path, + 'samples': path.length + }; + var elevationService = new google.maps.ElevationService(); + elevationService.getElevationAlongPath(positionalRequest,function (results, status) { + geolib.elevationHandler(results, status, coords, keys, cb); + }); }; - // Node module - if (typeof module !== 'undefined' && - typeof module.exports !== 'undefined') { + geolib.getElevationServer = function(coords, cb) { - geolib = require('geolib'); - geolib.extend(elevation); + if (coords.length === 0) { + return cb(null, null); + } - // AMD module - } else if (typeof define === "function" && define.amd) { + if (coords.length === 1) { + return cb(new Error("getElevation requires at least 2 points.")); + } - define(["geolib"], function (geolib) { - geolib.extend(elevation); - return geolib; + var gm = require('googlemaps'); + var path = []; + var keys = geolib.getKeys(coords[0]); + //coords[0] + var latitude = keys.latitude; + var longitude = keys.longitude; + + for(var i = 0; i < coords.length; i++) { + path.push(geolib.useDecimal(coords[i][latitude]) + ',' + + geolib.useDecimal(coords[i][longitude])); + } + + gm.elevationFromPath(path.join('|'), path.length, function(err, results) { + geolib.elevationHandler(results.results, results.status, coords, keys, cb); }); - // we're in a browser - } else { + }, - geolib.extend(elevation); + geolib.elevationHandler = function(results, status, coords, keys, cb){ + var latsLngsElevs = []; + var latitude = keys.latitude; + var longitude = keys.longitude; + if (status == "OK" ) { + for (var i = 0; i < results.length; i++) { + latsLngsElevs.push({ + "lat":coords[i][latitude], + "lng":coords[i][longitude], + "elev":results[i].elevation + }); + } + cb(null, latsLngsElevs); + } else { + cb(new Error("Could not get elevation using Google's API"), elevationResult.status); + } + }; - } + /** + * @param Array [{lat:#lat, lng:#lng, elev:#elev},....]} + * + * @return Number % grade + */ + geolib.getGrade = function(coords){ + var keys = geolib.getKeys(coords[0]); + var elevation = keys.elevation; + var rise = Math.abs(coords[coords.length-1][elevation] - coords[0][elevation]); + var run = geolib.getPathLength(coords); + return Math.floor((rise/run)*100); + }; -}(this, this.geolib)); \ No newline at end of file + /** + * @param Array [{lat:#lat, lng:#lng, elev:#elev},....]} + * + * @return Object {gain:#gain, loss:#loss} + */ + geolib.getTotalElevationGainAndLoss = function(coords){ + var keys = geolib.getKeys(coords[0]); + var elevation = keys.elevation; + var gain = 0; + var loss = 0; + for(var i = 0; i < coords.length - 1; i++){ + var deltaElev = coords[i][elevation] - coords[i + 1][elevation]; + if (deltaElev > 0) { + loss += deltaElev; + } else { + gain += Math.abs(deltaElev); + } + } + return { + "gain": gain, + "loss": loss + }; + }; diff --git a/app/bower_components/geolib/src/geolib.isPointInsideRobust.js b/app/bower_components/geolib/src/geolib.isPointInsideRobust.js deleted file mode 100644 index 1cd91dc..0000000 --- a/app/bower_components/geolib/src/geolib.isPointInsideRobust.js +++ /dev/null @@ -1,744 +0,0 @@ -/*! geolib.isPointInsideRobust $version$ -* !!EXPERIMENTAL!! -* -* Robust version of isPointInside for Geolib.js -* -* Based on https://github.com/mikolalysenko/robust-point-in-polygon -* by Mikola Lysenko, licensed under MIT -* -* @author Manuel Bieh -* @url http://www.manuelbieh.com/ -* @version $version$ -* @license MIT -* -*/ -;(function(global, geolib, undefined) { - - var addOn = function(geolib) { - - var SPLITTER = +(Math.pow(2, 27) + 1.0); - - var NUM_EXPAND = 5; - var EPSILON = 1.1102230246251565e-16; - var ERRBOUND3 = (3.0 + 16.0 * EPSILON) * EPSILON; - var ERRBOUND4 = (7.0 + 56.0 * EPSILON) * EPSILON; - - var twoProduct = function(a, b, result) { - var x = a * b; - var c = SPLITTER * a; - var abig = c - a; - var ahi = c - abig; - var alo = a - ahi; - var d = SPLITTER * b; - var bbig = d - b; - var bhi = d - bbig; - var blo = b - bhi; - var err1 = x - (ahi * bhi); - var err2 = err1 - (alo * bhi); - var err3 = err2 - (ahi * blo); - var y = alo * blo - err3; - if(result) { - result[0] = y; - result[1] = x; - return result; - } - return [ y, x ]; - }; - - var fastTwoSum = function(a, b, result) { - var x = a + b; - var bv = x - a; - var av = x - bv; - var br = b - bv; - var ar = a - av; - if(result) { - result[0] = ar + br; - result[1] = x; - return result; - } - return [ar+br, x]; - }; - - var twoSum = fastTwoSum; - - var linearExpansionSum = function(e, f) { - var ne = e.length|0; - var nf = f.length|0; - if(ne === 1 && nf === 1) { - return scalarScalar(e[0], f[0]); - } - var n = ne + nf; - var g = new Array(n); - var count = 0; - var eptr = 0; - var fptr = 0; - var abs = Math.abs; - var ei = e[eptr]; - var ea = abs(ei); - var fi = f[fptr]; - var fa = abs(fi); - var a, b; - if(ea < fa) { - b = ei; - eptr += 1; - if(eptr < ne) { - ei = e[eptr]; - ea = abs(ei); - } - } else { - b = fi; - fptr += 1; - if(fptr < nf) { - fi = f[fptr]; - fa = abs(fi); - } - } - if((eptr < ne && ea < fa) || (fptr >= nf)) { - a = ei; - eptr += 1; - if(eptr < ne) { - ei = e[eptr]; - ea = abs(ei); - } - } else { - a = fi; - fptr += 1; - if(fptr < nf) { - fi = f[fptr]; - fa = abs(fi); - } - } - var x = a + b; - var bv = x - a; - var y = b - bv; - var q0 = y; - var q1 = x; - var _x, _bv, _av, _br, _ar; - while(eptr < ne && fptr < nf) { - if(ea < fa) { - a = ei; - eptr += 1; - if(eptr < ne) { - ei = e[eptr]; - ea = abs(ei); - } - } else { - a = fi; - fptr += 1; - if(fptr < nf) { - fi = f[fptr]; - fa = abs(fi); - } - } - b = q0; - x = a + b; - bv = x - a; - y = b - bv; - if(y) { - g[count++] = y; - } - _x = q1 + x; - _bv = _x - q1; - _av = _x - _bv; - _br = x - _bv; - _ar = q1 - _av; - q0 = _ar + _br; - q1 = _x; - } - while(eptr < ne) { - a = ei; - b = q0; - x = a + b; - bv = x - a; - y = b - bv; - if(y) { - g[count++] = y; - } - _x = q1 + x; - _bv = _x - q1; - _av = _x - _bv; - _br = x - _bv; - _ar = q1 - _av; - q0 = _ar + _br; - q1 = _x; - eptr += 1; - if(eptr < ne) { - ei = e[eptr]; - } - } - while(fptr < nf) { - a = fi; - b = q0; - x = a + b; - bv = x - a; - y = b - bv; - if(y) { - g[count++] = y; - } - _x = q1 + x; - _bv = _x - q1; - _av = _x - _bv; - _br = x - _bv; - _ar = q1 - _av; - q0 = _ar + _br; - q1 = _x; - fptr += 1; - if(fptr < nf) { - fi = f[fptr]; - } - } - if(q0) { - g[count++] = q0; - } - if(q1) { - g[count++] = q1; - } - if(!count) { - g[count++] = 0.0; - } - g.length = count; - return g; - }; - - var robustSum = linearExpansionSum; - - var scaleLinearExpansion = function(e, scale) { - var n = e.length; - if(n === 1) { - var ts = twoProduct(e[0], scale); - if(ts[0]) { - return ts; - } - return [ ts[1] ]; - } - var g = new Array(2 * n); - var q = [0.1, 0.1]; - var t = [0.1, 0.1]; - var count = 0; - twoProduct(e[0], scale, q); - if(q[0]) { - g[count++] = q[0]; - } - for(var i=1; i= nf)) { - a = ei; - eptr += 1; - if(eptr < ne) { - ei = e[eptr]; - ea = abs(ei); - } - } else { - a = fi; - fptr += 1; - if(fptr < nf) { - fi = -f[fptr]; - fa = abs(fi); - } - } - var x = a + b; - var bv = x - a; - var y = b - bv; - var q0 = y; - var q1 = x; - var _x, _bv, _av, _br, _ar; - while(eptr < ne && fptr < nf) { - if(ea < fa) { - a = ei; - eptr += 1; - if(eptr < ne) { - ei = e[eptr]; - ea = abs(ei); - } - } else { - a = fi; - fptr += 1; - if(fptr < nf) { - fi = -f[fptr]; - fa = abs(fi); - } - } - b = q0; - x = a + b; - bv = x - a; - y = b - bv; - if(y) { - g[count++] = y; - } - _x = q1 + x; - _bv = _x - q1; - _av = _x - _bv; - _br = x - _bv; - _ar = q1 - _av; - q0 = _ar + _br; - q1 = _x; - } - while(eptr < ne) { - a = ei; - b = q0; - x = a + b; - bv = x - a; - y = b - bv; - if(y) { - g[count++] = y; - } - _x = q1 + x; - _bv = _x - q1; - _av = _x - _bv; - _br = x - _bv; - _ar = q1 - _av; - q0 = _ar + _br; - q1 = _x; - eptr += 1; - if(eptr < ne) { - ei = e[eptr]; - } - } - while(fptr < nf) { - a = fi; - b = q0; - x = a + b; - bv = x - a; - y = b - bv; - if(y) { - g[count++] = y; - } - _x = q1 + x; - _bv = _x - q1; - _av = _x - _bv; - _br = x - _bv; - _ar = q1 - _av; - q0 = _ar + _br; - q1 = _x; - fptr += 1; - if(fptr < nf) { - fi = -f[fptr]; - } - } - if(q0) { - g[count++] = q0; - } - if(q1) { - g[count++] = q1; - } - if(!count) { - g[count++] = 0.0; - } - g.length = count; - return g; - }; - - var cofactor = function(m, c) { - var result = new Array(m.length-1); - for(var i=1; i>1; - return ["sum(", generateSum(expr.slice(0, m)), ",", generateSum(expr.slice(m)), ")"].join(""); - } - }; - - var determinant = function(m) { - if(m.length === 2) { - return [["sum(prod(", m[0][0], ",", m[1][1], "),prod(-", m[0][1], ",", m[1][0], "))"].join("")]; - } else { - var expr = []; - for(var i=0; i 0) { - if(r <= 0) { - return det; - } else { - s = l + r; - } - } else if(l < 0) { - if(r >= 0) { - return det; - } else { - s = -(l + r); - } - } else { - return det; - } - var tol = ERRBOUND3 * s; - if(det >= tol || det <= -tol) { - return det; - } - return orientation3Exact(a, b, c); - }, - function orientation4(a,b,c,d) { - var adx = a[0] - d[0]; - var bdx = b[0] - d[0]; - var cdx = c[0] - d[0]; - var ady = a[1] - d[1]; - var bdy = b[1] - d[1]; - var cdy = c[1] - d[1]; - var adz = a[2] - d[2]; - var bdz = b[2] - d[2]; - var cdz = c[2] - d[2]; - var bdxcdy = bdx * cdy; - var cdxbdy = cdx * bdy; - var cdxady = cdx * ady; - var adxcdy = adx * cdy; - var adxbdy = adx * bdy; - var bdxady = bdx * ady; - var det = adz * (bdxcdy - cdxbdy) + - bdz * (cdxady - adxcdy) + - cdz * (adxbdy - bdxady); - var permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) + - (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) + - (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz); - var tol = ERRBOUND4 * permanent; - if ((det > tol) || (-det > tol)) { - return det; - } - return orientation4Exact(a,b,c,d); - } - ]; - - var slowOrient = function(args) { - var proc = CACHED[args.length]; - if(!proc) { - proc = CACHED[args.length] = orientation(args.length); - } - return proc.apply(undefined, args); - }; - - var generateOrientationProc = function() { - while(CACHED.length <= NUM_EXPAND) { - CACHED.push(orientation(CACHED.length)); - } - var args = []; - var procArgs = ["slow"]; - for(var i=0; i<=NUM_EXPAND; ++i) { - args.push("a" + i); - procArgs.push("o" + i); - } - var code = [ - "function getOrientation(", - args.join(), - "){switch(arguments.length){case 0:case 1:return 0;" - ]; - for(i=2; i<=NUM_EXPAND; ++i) { - code.push("case ", i, ":return o", i, "(", args.slice(0, i).join(), ");"); - } - code.push("}var s=new Array(arguments.length);for(var i=0;i0) { - var k = (j+n-1)%n; - p = vs[k]; - if(p[1] !== y) { - break; - } - px = p[0]; - x0 = Math.min(x0, px); - x1 = Math.max(x1, px); - j = k; - } - if(j === 0) { - if(x0 <= x && x <= x1) { - return 0; - } - return 1; - } - lim = j+1; - } - var y0 = vs[(j+n-1)%n][1]; - while(i+1= 1 ? 0 : undefined, - latitude: point.length >= 2 ? 1 : undefined, - elevation: point.length >= 3 ? 2 : undefined - }; - - } - - var getKey = function(possibleValues) { - - var key; - - possibleValues.every(function(val) { - // TODO: check if point is an object - if(typeof point != 'object') { - return true; - } - return point.hasOwnProperty(val) ? (function() { key = val; return false; }()) : true; - }); - - return key; - - }; - - var longitude = getKey(['lng', 'lon', 'longitude']); - var latitude = getKey(['lat', 'latitude']); - var elevation = getKey(['alt', 'altitude', 'elevation', 'elev']); - - // return undefined if not at least one valid property was found - if(typeof latitude == 'undefined' && - typeof longitude == 'undefined' && - typeof elevation == 'undefined') { - return undefined; - } - - return { - latitude: latitude, - longitude: longitude, - elevation: elevation - }; - - }, - - // returns latitude of a given point, converted to decimal - // set raw to true to avoid conversion - getLat: function(point, raw) { - return raw === true ? point[this.getKeys(point).latitude] : this.useDecimal(point[this.getKeys(point).latitude]); - }, - - // Alias for getLat - latitude: function(point) { - return this.getLat.call(this, point); - }, - - // returns longitude of a given point, converted to decimal - // set raw to true to avoid conversion - getLon: function(point, raw) { - return raw === true ? point[this.getKeys(point).longitude] : this.useDecimal(point[this.getKeys(point).longitude]); - }, +/*global console:true geolib:true require:true module:true window:true global:true define:true*/ +(function (global, undefined) { + + var radius = 6378137; // Earth radius + var sexagesimalPattern = /^([0-9]{1,3})°\s*([0-9]{1,3})'\s*(([0-9]{1,3}(\.([0-9]{1,2}))?)"\s*)?([NEOSW]?)$/; + var MIN_LAT = -90; + var MAX_LAT = 90; + var MIN_LON = -180; + var MAX_LON = 180; + + var geolib = { + + decimal: {}, + + sexagesimal: {}, + + distance: 0, + + measures: { + m: 1, + km: 0.001, + cm: 100, + mm: 1000, + mi: (1 / 1609.344), + sm: (1 / 1852.216), + ft: (100 / 30.48), + "in": (100 / 2.54), + yd: (1 / 0.9144) + }, + + /** + * Get the key names for a geo point. + * + * @param object Point position {latitude: 123, longitude: 123, elevation: 123} + * @return object { + * longitude: 'lng|long|longitude', + * latitude: 'lat|latitude', + * elevation: 'alt|altitude|elev|elevation' + * } + */ + getKeys: function(point) { + + var latitude = point.hasOwnProperty('lat') ? 'lat' : 'latitude'; + + var longitude = (point.hasOwnProperty('lng') ? 'lng' : false) || + (point.hasOwnProperty('long') ? 'long' : false) || + 'longitude'; + + var elevation = (point.hasOwnProperty('alt') ? 'alt' : false) || + (point.hasOwnProperty('altitude') ? 'altitude' : false) || + (point.hasOwnProperty('elev') ? 'elev' : false) || + 'elevation'; + + return { + latitude: latitude, + longitude: longitude, + elevation: elevation + }; + + }, + + /** + * Calculates geodetic distance between two points specified by latitude/longitude using + * Vincenty inverse formula for ellipsoids + * Vincenty Inverse Solution of Geodesics on the Ellipsoid (c) Chris Veness 2002-2010 + * (Licensed under CC BY 3.0) + * + * @param object Start position {latitude: 123, longitude: 123} + * @param object End position {latitude: 123, longitude: 123} + * @param integer Accuracy (in meters) + * @return integer Distance (in meters) + */ + + getDistance: function(start, end, accuracy) { + + var keys = geolib.getKeys(start); + var latitude = keys.latitude; + var longitude = keys.longitude; + var elevation = keys.elevation; + + accuracy = Math.floor(accuracy) || 1; + + var coord1 = {}, coord2 = {}; + coord1[latitude] = geolib.useDecimal(start[latitude]); + coord1[longitude] = geolib.useDecimal(start[longitude]); + + coord2[latitude] = geolib.useDecimal(end[latitude]); + coord2[longitude] = geolib.useDecimal(end[longitude]); + + var a = 6378137, b = 6356752.314245, f = 1/298.257223563; // WGS-84 ellipsoid params + var L = (coord2[longitude]-coord1[longitude]).toRad(); + + var cosSigma, sigma, sinAlpha, cosSqAlpha, cos2SigmaM, sinSigma; + + var U1 = Math.atan((1-f) * Math.tan(parseFloat(coord1[latitude]).toRad())); + var U2 = Math.atan((1-f) * Math.tan(parseFloat(coord2[latitude]).toRad())); + var sinU1 = Math.sin(U1), cosU1 = Math.cos(U1); + var sinU2 = Math.sin(U2), cosU2 = Math.cos(U2); + + var lambda = L, lambdaP, iterLimit = 100; + do { + var sinLambda = Math.sin(lambda), cosLambda = Math.cos(lambda); + sinSigma = ( + Math.sqrt( + ( + cosU2 * sinLambda + ) * ( + cosU2 * sinLambda + ) + ( + cosU1 * sinU2 - sinU1 * cosU2 * cosLambda + ) * ( + cosU1 * sinU2 - sinU1 * cosU2 * cosLambda + ) + ) + ); + if (sinSigma === 0) { + return geolib.distance = 0; // co-incident points + } + + cosSigma = sinU1 * sinU2 + cosU1 * cosU2 * cosLambda; + sigma = Math.atan2(sinSigma, cosSigma); + sinAlpha = cosU1 * cosU2 * sinLambda / sinSigma; + cosSqAlpha = 1 - sinAlpha * sinAlpha; + cos2SigmaM = cosSigma - 2 * sinU1 * sinU2 / cosSqAlpha; + + if (isNaN(cos2SigmaM)) { + cos2SigmaM = 0; // equatorial line: cosSqAlpha=0 (§6) + } + var C = ( + f / 16 * cosSqAlpha * ( + 4 + f * ( + 4 - 3 * cosSqAlpha + ) + ) + ); + lambdaP = lambda; + lambda = ( + L + ( + 1 - C + ) * f * sinAlpha * ( + sigma + C * sinSigma * ( + cos2SigmaM + C * cosSigma * ( + -1 + 2 * cos2SigmaM * cos2SigmaM + ) + ) + ) + ); + + } while (Math.abs(lambda-lambdaP) > 1e-12 && --iterLimit>0); + + if (iterLimit === 0) { + return NaN; // formula failed to converge + } + + var uSq = ( + cosSqAlpha * ( + a * a - b * b + ) / ( + b*b + ) + ); + + var A = ( + 1 + uSq / 16384 * ( + 4096 + uSq * ( + -768 + uSq * ( + 320 - 175 * uSq + ) + ) + ) + ); + + var B = ( + uSq / 1024 * ( + 256 + uSq * ( + -128 + uSq * ( + 74-47 * uSq + ) + ) + ) + ); + + var deltaSigma = ( + B * sinSigma * ( + cos2SigmaM + B / 4 * ( + cosSigma * ( + -1 + 2 * cos2SigmaM * cos2SigmaM + ) -B / 6 * cos2SigmaM * ( + -3 + 4 * sinSigma * sinSigma + ) * ( + -3 + 4 * cos2SigmaM * cos2SigmaM + ) + ) + ) + ); + + var distance = b * A * (sigma - deltaSigma); + + distance = distance.toFixed(3); // round to 1mm precision + + if (start.hasOwnProperty(elevation) && end.hasOwnProperty(elevation)) { + var climb = Math.abs(start[elevation] - end[elevation]); + distance = Math.sqrt(distance*distance + climb*climb); + } + + return geolib.distance = Math.floor(Math.round(distance/accuracy)*accuracy); + + /* + // note: to return initial/final bearings in addition to distance, use something like: + var fwdAz = Math.atan2(cosU2*sinLambda, cosU1*sinU2-sinU1*cosU2*cosLambda); + var revAz = Math.atan2(cosU1*sinLambda, -sinU1*cosU2+cosU1*sinU2*cosLambda); + + return { distance: s, initialBearing: fwdAz.toDeg(), finalBearing: revAz.toDeg() }; + */ + + }, + + + /** + * Calculates the distance between two spots. + * This method is more simple but also more inaccurate + * + * @param object Start position {latitude: 123, longitude: 123} + * @param object End position {latitude: 123, longitude: 123} + * @param integer Accuracy (in meters) + * @return integer Distance (in meters) + */ + getDistanceSimple: function(start, end, accuracy) { + + var keys = geolib.getKeys(start); + var latitude = keys.latitude; + var longitude = keys.longitude; + + accuracy = Math.floor(accuracy) || 1; + + var coord1 = {}, coord2 = {}; + coord1[latitude] = parseFloat(geolib.useDecimal(start[latitude])).toRad(); + coord1[longitude] = parseFloat(geolib.useDecimal(start[longitude])).toRad(); + + coord2[latitude] = parseFloat(geolib.useDecimal(end[latitude])).toRad(); + coord2[longitude] = parseFloat(geolib.useDecimal(end[longitude])).toRad(); + + var distance = + Math.round( + Math.acos( + Math.sin( + coord2[latitude] + ) * + Math.sin( + coord1[latitude] + ) + + Math.cos( + coord2[latitude] + ) * + Math.cos( + coord1[latitude] + ) * + Math.cos( + coord1[longitude] - coord2[longitude] + ) + ) * radius + ); + + return geolib.distance = Math.floor(Math.round(distance/accuracy)*accuracy); + + }, + + + /** + * Calculates the center of a collection of geo coordinates + * + * @param array Collection of coords [{latitude: 51.510, longitude: 7.1321}, {latitude: 49.1238, longitude: "8° 30' W"}, ...] + * @return object {latitude: centerLat, longitude: centerLng, distance: diagonalDistance} + */ + getCenter: function(coords) { + + if (!coords.length) { + return false; + } + + var keys = geolib.getKeys(coords[0]); + var latitude = keys.latitude; + var longitude = keys.longitude; + + var max = function( array ){ + return Math.max.apply( Math, array ); + }; + + var min = function( array ){ + return Math.min.apply( Math, array ); + }; + + var lat, lng, splitCoords = {lat: [], lng: []}; + + for(var coord in coords) { + splitCoords.lat.push(geolib.useDecimal(coords[coord][latitude])); + splitCoords.lng.push(geolib.useDecimal(coords[coord][longitude])); + } + + var minLat = min(splitCoords.lat); + var minLng = min(splitCoords.lng); + var maxLat = max(splitCoords.lat); + var maxLng = max(splitCoords.lng); + + lat = ((minLat + maxLat)/2).toFixed(6); + lng = ((minLng + maxLng)/2).toFixed(6); + + // distance from the deepest left to the highest right point (diagonal distance) + var distance = geolib.convertUnit('km', geolib.getDistance({lat:minLat, lng:minLng}, {lat:maxLat, lng:maxLng})); + + return {"latitude": lat, "longitude": lng, "distance": distance}; + + }, + + /** + * Gets the max and min, latitude, longitude, and elevation (if provided). + * @param array array with coords e.g. [{latitude: 51.5143, longitude: 7.4138}, {latitude: 123, longitude: 123}, ...] + * @return object {maxLat: maxLat, + * minLat: minLat + * maxLng: maxLng, + * minLng: minLng, + * maxElev: maxElev, + * minElev: minElev} + */ + getBounds: function(coords) { + + if (!coords.length) { + return false; + } + + var keys = geolib.getKeys(coords[0]); + var latitude = keys.latitude; + var longitude = keys.longitude; + var elevation = keys.elevation; + + var useElevation = coords[0].hasOwnProperty(elevation); + var stats = { + maxLat: -Infinity, + minLat: Infinity, + maxLng: -Infinity, + minLng: Infinity + }; + + if (useElevation) { + stats.maxElev = 0; + stats.minElev = Infinity; + } + + for (var i = 0, l = coords.length; i < l; ++i) { + stats.maxLat = Math.max(coords[i][latitude], stats.maxLat); + stats.minLat = Math.min(coords[i][latitude], stats.minLat); + stats.maxLng = Math.max(coords[i][longitude], stats.maxLng); + stats.minLng = Math.min(coords[i][longitude], stats.minLng); + if (useElevation) { + stats.maxElev = Math.max(coords[i][elevation], stats.maxElev); + stats.minElev = Math.min(coords[i][elevation], stats.minElev); + } + } + return stats; + }, + + /** + * Computes the bounding coordinates of all points on the surface + * of the earth less than or equal to the specified great circle + * distance. + * + * @param object Point position {latitude: 123, longitude: 123} + * @param number Distance (in meters). + * @return array Collection of two points defining the SW and NE corners. + */ + getBoundsOfDistance: function(point, distance) { + var keys = geolib.getKeys(point); + var latitude = keys.latitude; + var longitude = keys.longitude; + var coord = {}; + coord[latitude] = geolib.useDecimal(point[latitude]); + coord[longitude] = geolib.useDecimal(point[longitude]); + var radLat = coord[latitude].toRad(); + var radLon = coord[longitude].toRad(); + var radDist = distance / radius; + var minLat = radLat - radDist; + var maxLat = radLat + radDist; + var MAX_LAT_RAD = MAX_LAT.toRad(); + var MIN_LAT_RAD = MIN_LAT.toRad(); + var MAX_LON_RAD = MAX_LON.toRad(); + var MIN_LON_RAD = MIN_LON.toRad(); + var minLon, maxLon; + if (minLat > MIN_LAT_RAD && maxLat < MAX_LAT_RAD) { + var deltaLon = Math.asin(Math.sin(radDist) / Math.cos(radLat)); + minLon = radLon - deltaLon; + if (minLon < MIN_LON_RAD) { + minLon += 2 * Math.PI; + } + maxLon = radLon + deltaLon; + if (maxLon > MAX_LON_RAD) { + maxLon -= 2 * Math.PI; + } + } else { + // A pole is within the distance. + minLat = Math.max(minLat, MIN_LAT_RAD); + maxLat = Math.min(maxLat, MAX_LAT_RAD); + minLon = MIN_LON_RAD; + maxLon = MAX_LON_RAD; + } + + return [ + // Southwest + {"latitude": minLat.toDeg(), "longitude": minLon.toDeg()}, + // Northeast + {"latitude": maxLat.toDeg(), "longitude": maxLon.toDeg()} + ]; + }, + + /** + * Checks whether a point is inside of a polygon or not. + * Note that the polygon coords must be in correct order! + * + * @param object coordinate to check e.g. {latitude: 51.5023, longitude: 7.3815} + * @param array array with coords e.g. [{latitude: 51.5143, longitude: 7.4138}, {latitude: 123, longitude: 123}, ...] + * @return bool true if the coordinate is inside the given polygon + */ + isPointInside: function(latlng, coords) { + + var keys = geolib.getKeys(latlng); + var latitude = keys.latitude; + var longitude = keys.longitude; + + for(var c = false, i = -1, l = coords.length, j = l - 1; ++i < l; j = i) { + + if( + ( + (coords[i][longitude] <= latlng[longitude] && latlng[longitude] < coords[j][longitude]) || + (coords[j][longitude] <= latlng[longitude] && latlng[longitude] < coords[i][longitude]) + ) && + ( + latlng[latitude] < (coords[j][latitude] - coords[i][latitude]) * + (latlng[longitude] - coords[i][longitude]) / + (coords[j][longitude] - coords[i][longitude]) + + coords[i][latitude] + ) + ) { + c = !c; + } + + } + + return c; + + }, + + /** + * Shortcut for geolib.isPointInside() + */ + isInside: function() { + return geolib.isPointInside.apply(geolib, arguments); + }, + + + /** + * Checks whether a point is inside of a circle or not. + * + * @param object coordinate to check (e.g. {latitude: 51.5023, longitude: 7.3815}) + * @param object coordinate of the circle's center (e.g. {latitude: 51.4812, longitude: 7.4025}) + * @param integer maximum radius in meters + * @return bool true if the coordinate is inside the given radius + */ + isPointInCircle: function(latlng, center, radius) { + + return geolib.getDistance(latlng, center) < radius; + + }, + + /** + * Shortcut for geolib.isPointInCircle() + */ + withinRadius: function() { + return geolib.isPointInCircle.apply(geolib, arguments); + }, + + + /** + * Gets rhumb line bearing of two points. Find out about the difference between rhumb line and + * great circle bearing on Wikipedia. It's quite complicated. Rhumb line should be fine in most cases: + * + * http://en.wikipedia.org/wiki/Rhumb_line#General_and_mathematical_description + * + * Function heavily based on Doug Vanderweide's great PHP version (licensed under GPL 3.0) + * http://www.dougv.com/2009/07/13/calculating-the-bearing-and-compass-rose-direction-between-two-latitude-longitude-coordinates-in-php/ + * + * @param object origin coordinate (e.g. {latitude: 51.5023, longitude: 7.3815}) + * @param object destination coordinate + * @return integer calculated bearing + */ + getRhumbLineBearing: function(originLL, destLL) { + + var keys = geolib.getKeys(originLL); + var latitude = keys.latitude; + var longitude = keys.longitude; + + // difference of longitude coords + var diffLon = geolib.useDecimal(destLL[longitude]).toRad() - geolib.useDecimal(originLL[longitude]).toRad(); + + // difference latitude coords phi + var diffPhi = Math.log(Math.tan(geolib.useDecimal(destLL[latitude]).toRad() / 2 + Math.PI / 4) / Math.tan(geolib.useDecimal(originLL[latitude]).toRad() / 2 + Math.PI / 4)); + + // recalculate diffLon if it is greater than pi + if(Math.abs(diffLon) > Math.PI) { + if(diffLon > 0) { + diffLon = (2 * Math.PI - diffLon) * -1; + } + else { + diffLon = 2 * Math.PI + diffLon; + } + } + + //return the angle, normalized + return (Math.atan2(diffLon, diffPhi).toDeg() + 360) % 360; + + }, + + + /** + * Gets great circle bearing of two points. See description of getRhumbLineBearing for more information + * + * @param object origin coordinate (e.g. {latitude: 51.5023, longitude: 7.3815}) + * @param object destination coordinate + * @return integer calculated bearing + */ + getBearing: function(originLL, destLL) { + + var keys = geolib.getKeys(originLL); + var latitude = keys.latitude; + var longitude = keys.longitude; + + destLL[latitude] = geolib.useDecimal(destLL[latitude]); + destLL[longitude] = geolib.useDecimal(destLL[longitude]); + originLL[latitude] = geolib.useDecimal(originLL[latitude]); + originLL[longitude] = geolib.useDecimal(originLL[longitude]); + + var bearing = ( + ( + Math.atan2( + Math.sin( + destLL[longitude].toRad() - + originLL[longitude].toRad() + ) * + Math.cos( + destLL[latitude].toRad() + ), + Math.cos( + originLL[latitude].toRad() + ) * + Math.sin( + destLL[latitude].toRad() + ) - + Math.sin( + originLL[latitude].toRad() + ) * + Math.cos( + destLL[latitude].toRad() + ) * + Math.cos( + destLL[longitude].toRad() - originLL[longitude].toRad() + ) + ) + ).toDeg() + 360 + ) % 360; + + return bearing; + + }, + + + /** + * Gets the compass direction from an origin coordinate to a destination coordinate. + * + * @param object origin coordinate (e.g. {latitude: 51.5023, longitude: 7.3815}) + * @param object destination coordinate + * @param string Bearing mode. Can be either circle or rhumbline + * @return object Returns an object with a rough (NESW) and an exact direction (NNE, NE, ENE, E, ESE, etc). + */ + getCompassDirection: function(originLL, destLL, bearingMode) { + + var direction, bearing; + if(bearingMode == 'circle') { // use great circle bearing + bearing = geolib.getBearing(originLL, destLL); + } else { // default is rhumb line bearing + bearing = geolib.getRhumbLineBearing(originLL, destLL); + } + + switch(Math.round(bearing/22.5)) { + case 1: + direction = {exact: "NNE", rough: "N"}; + break; + case 2: + direction = {exact: "NE", rough: "N"}; + break; + case 3: + direction = {exact: "ENE", rough: "E"}; + break; + case 4: + direction = {exact: "E", rough: "E"}; + break; + case 5: + direction = {exact: "ESE", rough: "E"}; + break; + case 6: + direction = {exact: "SE", rough: "E"}; + break; + case 7: + direction = {exact: "SSE", rough: "S"}; + break; + case 8: + direction = {exact: "S", rough: "S"}; + break; + case 9: + direction = {exact: "SSW", rough: "S"}; + break; + case 10: + direction = {exact: "SW", rough: "S"}; + break; + case 11: + direction = {exact: "WSW", rough: "W"}; + break; + case 12: + direction = {exact: "W", rough: "W"}; + break; + case 13: + direction = {exact: "WNW", rough: "W"}; + break; + case 14: + direction = {exact: "NW", rough: "W"}; + break; + case 15: + direction = {exact: "NNW", rough: "N"}; + break; + default: + direction = {exact: "N", rough: "N"}; + } + + direction['bearing'] = bearing; + return direction; + + }, + + /** + * Shortcut for getCompassDirection + */ + getDirection: function(originLL, destLL, bearingMode) { + return geolib.getCompassDirection.apply(geolib, arguments); + }, + + /** + * Sorts an array of coords by distance from a reference coordinate + * + * @param object reference coordinate e.g. {latitude: 51.5023, longitude: 7.3815} + * @param mixed array or object with coords [{latitude: 51.5143, longitude: 7.4138}, {latitude: 123, longitude: 123}, ...] + * @return array ordered array + */ + orderByDistance: function(latlng, coords) { + + var keys = geolib.getKeys(latlng); + var latitude = keys.latitude; + var longitude = keys.longitude; + + var coordsArray = []; + for(var coord in coords) { + var d = geolib.getDistance(latlng, coords[coord]); + coordsArray.push({ + key: coord, latitude: coords[coord][latitude], + longitude: coords[coord][longitude], distance: d + }); + } + + return coordsArray.sort(function(a, b) { return a.distance - b.distance; }); + + }, + + + /** + * Finds the nearest coordinate to a reference coordinate + * + * @param object reference coordinate e.g. {latitude: 51.5023, longitude: 7.3815} + * @param mixed array or object with coords [{latitude: 51.5143, longitude: 7.4138}, {latitude: 123, longitude: 123}, ...] + * @return array ordered array + */ + findNearest: function(latlng, coords, offset) { + + offset = offset || 0; + var ordered = geolib.orderByDistance(latlng, coords); + return ordered[offset]; + + }, + + + /** + * Calculates the length of a given path + * + * @param mixed array or object with coords [{latitude: 51.5143, longitude: 7.4138}, {latitude: 123, longitude: 123}, ...] + * @return integer length of the path (in meters) + */ + getPathLength: function(coords) { + + var dist = 0, last; + for (var i = 0, l = coords.length; i < l; ++i) { + if(last) { + dist += geolib.getDistance(coords[i], last); + } + last = coords[i]; + } + + return dist; + + }, + + + /** + * Calculates the speed between to points within a given time span. + * + * @param object coords with javascript timestamp {latitude: 51.5143, longitude: 7.4138, time: 1360231200880} + * @param object coords with javascript timestamp {latitude: 51.5502, longitude: 7.4323, time: 1360245600460} + * @param object options (currently "unit" is the only option. Default: km(h)); + * @return float speed in *unit* per hour + */ + getSpeed: function(start, end, options) { + + var unit = options && options.unit || 'km'; + + if(unit == 'mph') { + unit = 'mi'; + } else if(unit == 'kmh') { + unit = 'km'; + } + + var distance = geolib.getDistance(start, end); + var time = ((end.time*1)/1000) - ((start.time*1)/1000); + var mPerHr = (distance/time)*3600; + var speed = Math.round(mPerHr * geolib.measures[unit] * 10000)/10000; + return speed; + + }, + + + /** + * Converts a distance from meters to km, mm, cm, mi, ft, in or yd + * + * @param string Format to be converted in + * @param float Distance in meters + * @param float Decimal places for rounding (default: 4) + * @return float Converted distance + */ + convertUnit: function(unit, distance, round) { + + if(distance === 0 || typeof distance == 'undefined') { + + if(geolib.distance === 0) { + // throw 'No distance given.'; + return 0; + } else { + distance = geolib.distance; + } - // Alias for getLon - longitude: function(point) { - return this.getLon.call(this, point); - }, + } - getElev: function(point) { - return point[this.getKeys(point).elevation]; - }, + unit = unit || 'm'; + round = (null == round ? 4 : round); + + if(typeof geolib.measures[unit] !== 'undefined') { + return geolib.round(distance * geolib.measures[unit], round); + } else { + throw new Error('Unknown unit for conversion.'); + } - // Alias for getElev - elevation: function(point) { - return this.getElev.call(this, point); - }, + }, - coords: function(point, raw) { - - var retval = { - latitude: raw === true ? point[this.getKeys(point).latitude] : this.useDecimal(point[this.getKeys(point).latitude]), - longitude: raw === true ? point[this.getKeys(point).longitude] : this.useDecimal(point[this.getKeys(point).longitude]) - }; - - var elev = point[this.getKeys(point).elevation]; - - if(typeof elev !== 'undefined') { - retval['elevation'] = elev; - } - - return retval; - - }, - - // Alias for coords - ll: function(point, raw) { - return this.coords.call(this, point, raw); - }, - - - // checks if a variable contains a valid latlong object - validate: function(point) { - - var keys = this.getKeys(point); - - if(typeof keys === 'undefined' || typeof keys.latitude === 'undefined' || keys.longitude === 'undefined') { - return false; - } - - var lat = point[keys.latitude]; - var lng = point[keys.longitude]; - - if(typeof lat === 'undefined' || !this.isDecimal(lat) && !this.isSexagesimal(lat)) { - return false; - } - - if(typeof lng === 'undefined' || !this.isDecimal(lng) && !this.isSexagesimal(lng)) { - return false; - } - - lat = this.useDecimal(lat); - lng = this.useDecimal(lng); - - if(lat < this.minLat || lat > this.maxLat || lng < this.minLon || lng > this.maxLon) { - return false; - } - - return true; - - }, - - /** - * Calculates geodetic distance between two points specified by latitude/longitude using - * Vincenty inverse formula for ellipsoids - * Vincenty Inverse Solution of Geodesics on the Ellipsoid (c) Chris Veness 2002-2010 - * (Licensed under CC BY 3.0) - * - * @param object Start position {latitude: 123, longitude: 123} - * @param object End position {latitude: 123, longitude: 123} - * @param integer Accuracy (in meters) - * @param integer Precision (in decimal cases) - * @return integer Distance (in meters) - */ - getDistance: function(start, end, accuracy, precision) { - - accuracy = Math.floor(accuracy) || 1; - precision = Math.floor(precision) || 0; - - var s = this.coords(start); - var e = this.coords(end); - - var a = 6378137, b = 6356752.314245, f = 1/298.257223563; // WGS-84 ellipsoid params - var L = (e['longitude']-s['longitude']).toRad(); - - var cosSigma, sigma, sinAlpha, cosSqAlpha, cos2SigmaM, sinSigma; - - var U1 = Math.atan((1-f) * Math.tan(parseFloat(s['latitude']).toRad())); - var U2 = Math.atan((1-f) * Math.tan(parseFloat(e['latitude']).toRad())); - var sinU1 = Math.sin(U1), cosU1 = Math.cos(U1); - var sinU2 = Math.sin(U2), cosU2 = Math.cos(U2); - - var lambda = L, lambdaP, iterLimit = 100; - do { - var sinLambda = Math.sin(lambda), cosLambda = Math.cos(lambda); - sinSigma = ( - Math.sqrt( - ( - cosU2 * sinLambda - ) * ( - cosU2 * sinLambda - ) + ( - cosU1 * sinU2 - sinU1 * cosU2 * cosLambda - ) * ( - cosU1 * sinU2 - sinU1 * cosU2 * cosLambda - ) - ) - ); - if (sinSigma === 0) { - return geolib.distance = 0; // co-incident points - } - - cosSigma = sinU1 * sinU2 + cosU1 * cosU2 * cosLambda; - sigma = Math.atan2(sinSigma, cosSigma); - sinAlpha = cosU1 * cosU2 * sinLambda / sinSigma; - cosSqAlpha = 1 - sinAlpha * sinAlpha; - cos2SigmaM = cosSigma - 2 * sinU1 * sinU2 / cosSqAlpha; - - if (isNaN(cos2SigmaM)) { - cos2SigmaM = 0; // equatorial line: cosSqAlpha=0 (§6) - } - var C = ( - f / 16 * cosSqAlpha * ( - 4 + f * ( - 4 - 3 * cosSqAlpha - ) - ) - ); - lambdaP = lambda; - lambda = ( - L + ( - 1 - C - ) * f * sinAlpha * ( - sigma + C * sinSigma * ( - cos2SigmaM + C * cosSigma * ( - -1 + 2 * cos2SigmaM * cos2SigmaM - ) - ) - ) - ); - - } while (Math.abs(lambda-lambdaP) > 1e-12 && --iterLimit>0); - - if (iterLimit === 0) { - return NaN; // formula failed to converge - } - - var uSq = ( - cosSqAlpha * ( - a * a - b * b - ) / ( - b*b - ) - ); - - var A = ( - 1 + uSq / 16384 * ( - 4096 + uSq * ( - -768 + uSq * ( - 320 - 175 * uSq - ) - ) - ) - ); - - var B = ( - uSq / 1024 * ( - 256 + uSq * ( - -128 + uSq * ( - 74-47 * uSq - ) - ) - ) - ); - - var deltaSigma = ( - B * sinSigma * ( - cos2SigmaM + B / 4 * ( - cosSigma * ( - -1 + 2 * cos2SigmaM * cos2SigmaM - ) -B / 6 * cos2SigmaM * ( - -3 + 4 * sinSigma * sinSigma - ) * ( - -3 + 4 * cos2SigmaM * cos2SigmaM - ) - ) - ) - ); - - var distance = b * A * (sigma - deltaSigma); - - distance = distance.toFixed(precision); // round to 1mm precision - - //if (start.hasOwnProperty(elevation) && end.hasOwnProperty(elevation)) { - if (typeof this.elevation(start) !== 'undefined' && typeof this.elevation(end) !== 'undefined') { - var climb = Math.abs(this.elevation(start) - this.elevation(end)); - distance = Math.sqrt(distance * distance + climb * climb); - } - - return this.distance = Math.round(distance * Math.pow(10, precision) / accuracy) * accuracy / Math.pow(10, precision); - - /* - // note: to return initial/final bearings in addition to distance, use something like: - var fwdAz = Math.atan2(cosU2*sinLambda, cosU1*sinU2-sinU1*cosU2*cosLambda); - var revAz = Math.atan2(cosU1*sinLambda, -sinU1*cosU2+cosU1*sinU2*cosLambda); - - return { distance: s, initialBearing: fwdAz.toDeg(), finalBearing: revAz.toDeg() }; - */ - - }, - - - /** - * Calculates the distance between two spots. - * This method is more simple but also far more inaccurate - * - * @param object Start position {latitude: 123, longitude: 123} - * @param object End position {latitude: 123, longitude: 123} - * @param integer Accuracy (in meters) - * @return integer Distance (in meters) - */ - getDistanceSimple: function(start, end, accuracy) { - - accuracy = Math.floor(accuracy) || 1; - - var distance = - Math.round( - Math.acos( - Math.sin( - this.latitude(end).toRad() - ) * - Math.sin( - this.latitude(start).toRad() - ) + - Math.cos( - this.latitude(end).toRad() - ) * - Math.cos( - this.latitude(start).toRad() - ) * - Math.cos( - this.longitude(start).toRad() - this.longitude(end).toRad() - ) - ) * this.radius - ); - - return geolib.distance = Math.floor(Math.round(distance/accuracy)*accuracy); - - }, - - - /** - * Calculates the center of a collection of geo coordinates - * - * @param array Collection of coords [{latitude: 51.510, longitude: 7.1321}, {latitude: 49.1238, longitude: "8° 30' W"}, ...] - * @return object {latitude: centerLat, longitude: centerLng} - */ - getCenter: function(coords) { - - var coordsArray = coords; - if(typeof coords === 'object' && !(coords instanceof Array)) { - - coordsArray = []; - - for(var key in coords) { - coordsArray.push( - this.coords(coords[key]) - ); - } - - } - - if(!coordsArray.length) { - return false; - } - - var X = 0.0; - var Y = 0.0; - var Z = 0.0; - var lat, lon, hyp; - - coordsArray.forEach(function(coord) { - - lat = this.latitude(coord).toRad(); - lon = this.longitude(coord).toRad(); - - X += Math.cos(lat) * Math.cos(lon); - Y += Math.cos(lat) * Math.sin(lon); - Z += Math.sin(lat); - - }, this); - - var nb_coords = coordsArray.length; - X = X / nb_coords; - Y = Y / nb_coords; - Z = Z / nb_coords; - - lon = Math.atan2(Y, X); - hyp = Math.sqrt(X * X + Y * Y); - lat = Math.atan2(Z, hyp); - - return { - latitude: (lat * Geolib.TO_DEG).toFixed(6), - longitude: (lon * Geolib.TO_DEG).toFixed(6) - }; - - }, - - - /** - * Gets the max and min, latitude, longitude, and elevation (if provided). - * @param array array with coords e.g. [{latitude: 51.5143, longitude: 7.4138}, {latitude: 123, longitude: 123}, ...] - * @return object {maxLat: maxLat, - * minLat: minLat - * maxLng: maxLng, - * minLng: minLng, - * maxElev: maxElev, - * minElev: minElev} - */ - getBounds: function(coords) { - - if (!coords.length) { - return false; - } - - var useElevation = this.elevation(coords[0]); - - var stats = { - maxLat: -Infinity, - minLat: Infinity, - maxLng: -Infinity, - minLng: Infinity - }; - - if (typeof useElevation != 'undefined') { - stats.maxElev = 0; - stats.minElev = Infinity; - } - - for (var i = 0, l = coords.length; i < l; ++i) { - - stats.maxLat = Math.max(this.latitude(coords[i]), stats.maxLat); - stats.minLat = Math.min(this.latitude(coords[i]), stats.minLat); - stats.maxLng = Math.max(this.longitude(coords[i]), stats.maxLng); - stats.minLng = Math.min(this.longitude(coords[i]), stats.minLng); - - if (useElevation) { - stats.maxElev = Math.max(this.elevation(coords[i]), stats.maxElev); - stats.minElev = Math.min(this.elevation(coords[i]), stats.minElev); - } - - } - - return stats; - - }, - - /** - * Calculates the center of the bounds of geo coordinates. - * - * On polygons like political borders (eg. states) - * this may gives a closer result to human expectation, than `getCenter`, - * because that function can be disturbed by uneven distribution of - * point in different sides. - * Imagine the US state Oklahoma: `getCenter` on that gives a southern - * point, because the southern border contains a lot more nodes, - * than the others. - * - * @param array Collection of coords [{latitude: 51.510, longitude: 7.1321}, {latitude: 49.1238, longitude: "8° 30' W"}, ...] - * @return object {latitude: centerLat, longitude: centerLng} - */ - getCenterOfBounds: function(coords) { - var b = this.getBounds(coords); - var latitude = b.minLat + ((b.maxLat - b.minLat) / 2); - var longitude = b.minLng + ((b.maxLng - b.minLng) / 2); - return { - latitude: parseFloat(latitude.toFixed(6)), - longitude: parseFloat(longitude.toFixed(6)) - }; - }, - - - /** - * Computes the bounding coordinates of all points on the surface - * of the earth less than or equal to the specified great circle - * distance. - * - * @param object Point position {latitude: 123, longitude: 123} - * @param number Distance (in meters). - * @return array Collection of two points defining the SW and NE corners. - */ - getBoundsOfDistance: function(point, distance) { - - var latitude = this.latitude(point); - var longitude = this.longitude(point); - - var radLat = latitude.toRad(); - var radLon = longitude.toRad(); - - var radDist = distance / this.radius; - var minLat = radLat - radDist; - var maxLat = radLat + radDist; - - var MAX_LAT_RAD = this.maxLat.toRad(); - var MIN_LAT_RAD = this.minLat.toRad(); - var MAX_LON_RAD = this.maxLon.toRad(); - var MIN_LON_RAD = this.minLon.toRad(); - - var minLon; - var maxLon; - - if (minLat > MIN_LAT_RAD && maxLat < MAX_LAT_RAD) { - - var deltaLon = Math.asin(Math.sin(radDist) / Math.cos(radLat)); - minLon = radLon - deltaLon; - - if (minLon < MIN_LON_RAD) { - minLon += Geolib.PI_X2; - } - - maxLon = radLon + deltaLon; - - if (maxLon > MAX_LON_RAD) { - maxLon -= Geolib.PI_X2; - } - - } else { - // A pole is within the distance. - minLat = Math.max(minLat, MIN_LAT_RAD); - maxLat = Math.min(maxLat, MAX_LAT_RAD); - minLon = MIN_LON_RAD; - maxLon = MAX_LON_RAD; - } - - return [ - // Southwest - { - latitude: minLat.toDeg(), - longitude: minLon.toDeg() - }, - // Northeast - { - latitude: maxLat.toDeg(), - longitude: maxLon.toDeg() - } - ]; - - }, - - - /** - * Checks whether a point is inside of a polygon or not. - * Note that the polygon coords must be in correct order! - * - * @param object coordinate to check e.g. {latitude: 51.5023, longitude: 7.3815} - * @param array array with coords e.g. [{latitude: 51.5143, longitude: 7.4138}, {latitude: 123, longitude: 123}, ...] - * @return bool true if the coordinate is inside the given polygon - */ - isPointInside: function(latlng, coords) { - - for(var c = false, i = -1, l = coords.length, j = l - 1; ++i < l; j = i) { - - if( - ( - (this.longitude(coords[i]) <= this.longitude(latlng) && this.longitude(latlng) < this.longitude(coords[j])) || - (this.longitude(coords[j]) <= this.longitude(latlng) && this.longitude(latlng) < this.longitude(coords[i])) - ) && - ( - this.latitude(latlng) < (this.latitude(coords[j]) - this.latitude(coords[i])) * - (this.longitude(latlng) - this.longitude(coords[i])) / - (this.longitude(coords[j]) - this.longitude(coords[i])) + - this.latitude(coords[i]) - ) - ) { - c = !c; - } - - } - - return c; - - }, - - - /** - * Pre calculate the polygon coords, to speed up the point inside check. - * Use this function before calling isPointInsideWithPreparedPolygon() - * @see Algorythm from http://alienryderflex.com/polygon/ - * @param array array with coords e.g. [{latitude: 51.5143, longitude: 7.4138}, {latitude: 123, longitude: 123}, ...] - */ - preparePolygonForIsPointInsideOptimized: function(coords) { - for(var i = 0, j = coords.length-1; i < coords.length; i++) { - - if(this.longitude(coords[j]) === this.longitude(coords[i])) { - - coords[i].constant = this.latitude(coords[i]); - coords[i].multiple = 0; - - } else { - - coords[i].constant = this.latitude(coords[i]) - ( - this.longitude(coords[i]) * this.latitude(coords[j]) - ) / ( - this.longitude(coords[j]) - this.longitude(coords[i]) - ) + ( - this.longitude(coords[i])*this.latitude(coords[i]) - ) / ( - this.longitude(coords[j])-this.longitude(coords[i]) - ); - - coords[i].multiple = ( - this.latitude(coords[j])-this.latitude(coords[i]) - ) / ( - this.longitude(coords[j])-this.longitude(coords[i]) - ); - - } - - j=i; - - } - - }, - - /** - * Checks whether a point is inside of a polygon or not. - * "This is useful if you have many points that need to be tested against the same (static) polygon." - * Please call the function preparePolygonForIsPointInsideOptimized() with the same coords object before using this function. - * Note that the polygon coords must be in correct order! - * - * @see Algorythm from http://alienryderflex.com/polygon/ - * - * @param object coordinate to check e.g. {latitude: 51.5023, longitude: 7.3815} - * @param array array with coords e.g. [{latitude: 51.5143, longitude: 7.4138}, {latitude: 123, longitude: 123}, ...] - * @return bool true if the coordinate is inside the given polygon - */ - isPointInsideWithPreparedPolygon: function(point, coords) { - - var flgPointInside = false, - y = this.longitude(point), - x = this.latitude(point); - - for(var i = 0, j = coords.length-1; i < coords.length; i++) { - - if ((this.longitude(coords[i]) < y && this.longitude(coords[j]) >=y || - this.longitude(coords[j]) < y && this.longitude(coords[i]) >= y)) { - - flgPointInside^=(y*coords[i].multiple+coords[i].constant < x); - - } - - j=i; - - } - - return flgPointInside; - - }, - - - /** - * Shortcut for geolib.isPointInside() - */ - isInside: function() { - return this.isPointInside.apply(this, arguments); - }, - - - /** - * Checks whether a point is inside of a circle or not. - * - * @param object coordinate to check (e.g. {latitude: 51.5023, longitude: 7.3815}) - * @param object coordinate of the circle's center (e.g. {latitude: 51.4812, longitude: 7.4025}) - * @param integer maximum radius in meters - * @return bool true if the coordinate is within the given radius - */ - isPointInCircle: function(latlng, center, radius) { - return this.getDistance(latlng, center) < radius; - }, - - - /** - * Shortcut for geolib.isPointInCircle() - */ - withinRadius: function() { - return this.isPointInCircle.apply(this, arguments); - }, - - - /** - * Gets rhumb line bearing of two points. Find out about the difference between rhumb line and - * great circle bearing on Wikipedia. It's quite complicated. Rhumb line should be fine in most cases: - * - * http://en.wikipedia.org/wiki/Rhumb_line#General_and_mathematical_description - * - * Function heavily based on Doug Vanderweide's great PHP version (licensed under GPL 3.0) - * http://www.dougv.com/2009/07/13/calculating-the-bearing-and-compass-rose-direction-between-two-latitude-longitude-coordinates-in-php/ - * - * @param object origin coordinate (e.g. {latitude: 51.5023, longitude: 7.3815}) - * @param object destination coordinate - * @return integer calculated bearing - */ - getRhumbLineBearing: function(originLL, destLL) { - - // difference of longitude coords - var diffLon = this.longitude(destLL).toRad() - this.longitude(originLL).toRad(); - - // difference latitude coords phi - var diffPhi = Math.log( - Math.tan( - this.latitude(destLL).toRad() / 2 + Geolib.PI_DIV4 - ) / - Math.tan( - this.latitude(originLL).toRad() / 2 + Geolib.PI_DIV4 - ) - ); - - // recalculate diffLon if it is greater than pi - if(Math.abs(diffLon) > Math.PI) { - if(diffLon > 0) { - diffLon = (Geolib.PI_X2 - diffLon) * -1; - } - else { - diffLon = Geolib.PI_X2 + diffLon; - } - } - - //return the angle, normalized - return (Math.atan2(diffLon, diffPhi).toDeg() + 360) % 360; - - }, - - - /** - * Gets great circle bearing of two points. See description of getRhumbLineBearing for more information - * - * @param object origin coordinate (e.g. {latitude: 51.5023, longitude: 7.3815}) - * @param object destination coordinate - * @return integer calculated bearing - */ - getBearing: function(originLL, destLL) { - - destLL['latitude'] = this.latitude(destLL); - destLL['longitude'] = this.longitude(destLL); - originLL['latitude'] = this.latitude(originLL); - originLL['longitude'] = this.longitude(originLL); - - var bearing = ( - ( - Math.atan2( - Math.sin( - destLL['longitude'].toRad() - - originLL['longitude'].toRad() - ) * - Math.cos( - destLL['latitude'].toRad() - ), - Math.cos( - originLL['latitude'].toRad() - ) * - Math.sin( - destLL['latitude'].toRad() - ) - - Math.sin( - originLL['latitude'].toRad() - ) * - Math.cos( - destLL['latitude'].toRad() - ) * - Math.cos( - destLL['longitude'].toRad() - originLL['longitude'].toRad() - ) - ) - ).toDeg() + 360 - ) % 360; - - return bearing; - - }, - - - /** - * Gets the compass direction from an origin coordinate to a destination coordinate. - * - * @param object origin coordinate (e.g. {latitude: 51.5023, longitude: 7.3815}) - * @param object destination coordinate - * @param string Bearing mode. Can be either circle or rhumbline - * @return object Returns an object with a rough (NESW) and an exact direction (NNE, NE, ENE, E, ESE, etc). - */ - getCompassDirection: function(originLL, destLL, bearingMode) { - - var direction; - var bearing; - - if(bearingMode == 'circle') { - // use great circle bearing - bearing = this.getBearing(originLL, destLL); - } else { - // default is rhumb line bearing - bearing = this.getRhumbLineBearing(originLL, destLL); - } - - switch(Math.round(bearing/22.5)) { - case 1: - direction = {exact: "NNE", rough: "N"}; - break; - case 2: - direction = {exact: "NE", rough: "N"}; - break; - case 3: - direction = {exact: "ENE", rough: "E"}; - break; - case 4: - direction = {exact: "E", rough: "E"}; - break; - case 5: - direction = {exact: "ESE", rough: "E"}; - break; - case 6: - direction = {exact: "SE", rough: "E"}; - break; - case 7: - direction = {exact: "SSE", rough: "S"}; - break; - case 8: - direction = {exact: "S", rough: "S"}; - break; - case 9: - direction = {exact: "SSW", rough: "S"}; - break; - case 10: - direction = {exact: "SW", rough: "S"}; - break; - case 11: - direction = {exact: "WSW", rough: "W"}; - break; - case 12: - direction = {exact: "W", rough: "W"}; - break; - case 13: - direction = {exact: "WNW", rough: "W"}; - break; - case 14: - direction = {exact: "NW", rough: "W"}; - break; - case 15: - direction = {exact: "NNW", rough: "N"}; - break; - default: - direction = {exact: "N", rough: "N"}; - } - - direction['bearing'] = bearing; - return direction; - - }, - - - /** - * Shortcut for getCompassDirection - */ - getDirection: function(originLL, destLL, bearingMode) { - return this.getCompassDirection.apply(this, arguments); - }, - - - /** - * Sorts an array of coords by distance from a reference coordinate - * - * @param object reference coordinate e.g. {latitude: 51.5023, longitude: 7.3815} - * @param mixed array or object with coords [{latitude: 51.5143, longitude: 7.4138}, {latitude: 123, longitude: 123}, ...] - * @return array ordered array - */ - orderByDistance: function(latlng, coords) { - - var coordsArray = []; - - for(var coord in coords) { - - var distance = this.getDistance(latlng, coords[coord]); - var augmentedCoord = Object.create(coords[coord]); - augmentedCoord.distance = distance; - augmentedCoord.key = coord; - - coordsArray.push(augmentedCoord); - - } - - return coordsArray.sort(function(a, b) { - return a.distance - b.distance; - }); - - }, - - /** - * Check if a point lies in line created by two other points - * - * @param object Point to check: {latitude: 123, longitude: 123} - * @param object Start of line {latitude: 123, longitude: 123} - * @param object End of line {latitude: 123, longitude: 123} - * @return boolean - */ - isPointInLine: function(point, start, end) { - - return (this.getDistance(start, point, 1, 3)+this.getDistance(point, end, 1, 3)).toFixed(3)==this.getDistance(start, end, 1, 3); - }, - - /** - * Check if a point lies within a given distance from a line created by two other points - * - * @param object Point to check: {latitude: 123, longitude: 123} - * @param object Start of line {latitude: 123, longitude: 123} - * @param object End of line {latitude: 123, longitude: 123} - * @pararm float maximum distance from line - * @return boolean - */ - isPointNearLine: function(point, start, end, distance) { - return this.getDistanceFromLine(point, start, end) < distance; - }, - - /** - * return the minimum distance from a point to a line - * - * @param object Point away from line - * @param object Start of line {latitude: 123, longitude: 123} - * @param object End of line {latitude: 123, longitude: 123} - * @return float distance from point to line - */ - getDistanceFromLine: function(point, start, end) { - var d1 = this.getDistance(start, point, 1, 3); - var d2 = this.getDistance(point, end, 1, 3); - var d3 = this.getDistance(start, end, 1, 3); - var distance = 0; - - // alpha is the angle between the line from start to point, and from start to end // - var alpha = Math.acos((d1*d1 + d3*d3 - d2*d2)/(2*d1*d3)); - // beta is the angle between the line from end to point and from end to start // - var beta = Math.acos((d2*d2 + d3*d3 - d1*d1)/(2*d2*d3)); - - // if the angle is greater than 90 degrees, then the minimum distance is the - // line from the start to the point // - if(alpha>Math.PI/2) { - distance = d1; - } - // same for the beta // - else if(beta > Math.PI/2) { - distance = d2; - } - // otherwise the minimum distance is achieved through a line perpendular to the start-end line, - // which goes from the start-end line to the point // - else { - distance = Math.sin(alpha) * d1; - } - - return distance; - }, - - /** - * Finds the nearest coordinate to a reference coordinate - * - * @param object reference coordinate e.g. {latitude: 51.5023, longitude: 7.3815} - * @param mixed array or object with coords [{latitude: 51.5143, longitude: 7.4138}, {latitude: 123, longitude: 123}, ...] - * @return array ordered array - */ - findNearest: function(latlng, coords, offset, limit) { - - offset = offset || 0; - limit = limit || 1; - var ordered = this.orderByDistance(latlng, coords); - - if(limit === 1) { - return ordered[offset]; - } else { - return ordered.splice(offset, limit); - } - - }, - - - /** - * Calculates the length of a given path - * - * @param mixed array or object with coords [{latitude: 51.5143, longitude: 7.4138}, {latitude: 123, longitude: 123}, ...] - * @return integer length of the path (in meters) - */ - getPathLength: function(coords) { - - var dist = 0; - var last; - - for (var i = 0, l = coords.length; i < l; ++i) { - if(last) { - //console.log(coords[i], last, this.getDistance(coords[i], last)); - dist += this.getDistance(this.coords(coords[i]), last); - } - last = this.coords(coords[i]); - } - - return dist; - - }, - - - /** - * Calculates the speed between to points within a given time span. - * - * @param object coords with javascript timestamp {latitude: 51.5143, longitude: 7.4138, time: 1360231200880} - * @param object coords with javascript timestamp {latitude: 51.5502, longitude: 7.4323, time: 1360245600460} - * @param object options (currently "unit" is the only option. Default: km(h)); - * @return float speed in unit per hour - */ - getSpeed: function(start, end, options) { - - var unit = options && options.unit || 'km'; - - if(unit == 'mph') { - unit = 'mi'; - } else if(unit == 'kmh') { - unit = 'km'; - } - - var distance = geolib.getDistance(start, end); - var time = ((end.time*1)/1000) - ((start.time*1)/1000); - var mPerHr = (distance/time)*3600; - var speed = Math.round(mPerHr * this.measures[unit] * 10000)/10000; - return speed; - - }, - - - /** - * Computes the destination point given an initial point, a distance - * and a bearing - * - * see http://www.movable-type.co.uk/scripts/latlong.html for the original code - * - * @param object start coordinate (e.g. {latitude: 51.5023, longitude: 7.3815}) - * @param float longitude of the inital point in degree - * @param float distance to go from the inital point in meter - * @param float bearing in degree of the direction to go, e.g. 0 = north, 180 = south - * @param float optional (in meter), defaults to mean radius of the earth - * @return object {latitude: destLat (in degree), longitude: destLng (in degree)} - */ - computeDestinationPoint: function(start, distance, bearing, radius) { + /** + * Checks if a value is in decimal format or, if neccessary, converts to decimal + * + * @param mixed Value to be checked/converted + * @return float Coordinate in decimal format + */ + useDecimal: function(value) { - var lat = this.latitude(start); - var lng = this.longitude(start); + value = value.toString().replace(/\s*/, ''); - radius = (typeof radius === 'undefined') ? this.radius : Number(radius); + // looks silly but works as expected + // checks if value is in decimal format + if (!isNaN(parseFloat(value)) && parseFloat(value) == value) { + return parseFloat(value); + // checks if it's sexagesimal format (HHH° MM' SS" (NESW)) + } else if(geolib.isSexagesimal(value) === true) { + return parseFloat(geolib.sexagesimal2decimal(value)); + } else { + throw 'Unknown format.'; + } - var δ = Number(distance) / radius; // angular distance in radians - var θ = Number(bearing).toRad(); + }, - var φ1 = Number(lat).toRad(); - var λ1 = Number(lng).toRad(); - var φ2 = Math.asin( Math.sin(φ1)*Math.cos(δ) + - Math.cos(φ1)*Math.sin(δ)*Math.cos(θ) ); - var λ2 = λ1 + Math.atan2(Math.sin(θ)*Math.sin(δ)*Math.cos(φ1), - Math.cos(δ)-Math.sin(φ1)*Math.sin(φ2)); - λ2 = (λ2+3*Math.PI) % (2*Math.PI) - Math.PI; // normalise to -180..+180° + /** + * Converts a decimal coordinate value to sexagesimal format + * + * @param float decimal + * @return string Sexagesimal value (XX° YY' ZZ") + */ + decimal2sexagesimal: function(dec) { - return { - latitude: φ2.toDeg(), - longitude: λ2.toDeg() - }; + if (dec in geolib.sexagesimal) { + return geolib.sexagesimal[dec]; + } - }, + var tmp = dec.toString().split('.'); + var deg = Math.abs(tmp[0]); + var min = ('0.' + tmp[1])*60; + var sec = min.toString().split('.'); - /** - * Converts a distance from meters to km, mm, cm, mi, ft, in or yd - * - * @param string Format to be converted in - * @param float Distance in meters - * @param float Decimal places for rounding (default: 4) - * @return float Converted distance - */ - convertUnit: function(unit, distance, round) { + min = Math.floor(min); + sec = (('0.' + sec[1]) * 60).toFixed(2); - if(distance === 0) { + geolib.sexagesimal[dec] = (deg + '° ' + min + "' " + sec + '"'); - return 0; + return geolib.sexagesimal[dec]; - } else if(typeof distance === 'undefined') { + }, - if(this.distance === null) { - throw new Error('No distance was given'); - } else if(this.distance === 0) { - return 0; - } else { - distance = this.distance; - } - } + /** + * Converts a sexagesimal coordinate to decimal format + * + * @param float Sexagesimal coordinate + * @return string Decimal value (XX.XXXXXXXX) + */ + sexagesimal2decimal: function(sexagesimal) { - unit = unit || 'm'; - round = (null == round ? 4 : round); + if (sexagesimal in geolib.decimal) { + return geolib.decimal[sexagesimal]; + } - if(typeof this.measures[unit] !== 'undefined') { - return this.round(distance * this.measures[unit], round); - } else { - throw new Error('Unknown unit for conversion.'); - } + var regEx = new RegExp(sexagesimalPattern); + var data = regEx.exec(sexagesimal); + var min = 0, sec = 0; - }, + if(data) { + min = parseFloat(data[2]/60); + sec = parseFloat(data[4]/3600) || 0; + } + var dec = ((parseFloat(data[1]) + min + sec)).toFixed(8); + // South and West are negative decimals + dec = (data[7] == 'S' || data[7] == 'W') ? dec * -1 : dec; - /** - * Checks if a value is in decimal format or, if neccessary, converts to decimal - * - * @param mixed Value(s) to be checked/converted (array of latlng objects, latlng object, sexagesimal string, float) - * @return float Input data in decimal format - */ - useDecimal: function(value) { + geolib.decimal[sexagesimal] = dec; - if(Object.prototype.toString.call(value) === '[object Array]') { + return dec; - var geolib = this; + }, - value = value.map(function(val) { - //if(!isNaN(parseFloat(val))) { - if(geolib.isDecimal(val)) { + /** + * Checks if a value is in sexagesimal format + * + * @param string Value to be checked + * @return bool True if in sexagesimal format + */ + isSexagesimal: function(value) { - return geolib.useDecimal(val); + return sexagesimalPattern.test(value); - } else if(typeof val == 'object') { + }, - if(geolib.validate(val)) { + round: function(value, n) { + var decPlace = Math.pow(10, n); + return Math.round(value * decPlace)/decPlace; + } - return geolib.coords(val); + }; - } else { + /* %ELEVATION% */ - for(var prop in val) { - val[prop] = geolib.useDecimal(val[prop]); - } + if (typeof(Number.prototype.toRad) === "undefined") { + Number.prototype.toRad = function() { + return this * Math.PI / 180; + }; + } - return val; + if (typeof(Number.prototype.toDeg) === "undefined") { + Number.prototype.toDeg = function() { + return this * 180 / Math.PI; + }; + } - } +/* + // we're in a browser + window.geolib = geolib; + if (typeof module != 'undefined') { + module.exports = geolib; + } +*/ - } else if(geolib.isSexagesimal(val)) { + if (typeof module != 'undefined') { - return geolib.sexagesimal2decimal(val); + // Node module + global.geolib = module.exports = geolib; - } else { + } else if (typeof define === "function" && define.amd) { - return val; + // AMD module + define("geolib", [], function () { + return geolib; + }); - } + // what's the difference to: + //define(function() { return geolib; }); + // ? - }); + } else { - return value; + // we're in a browser, yay + global.geolib = geolib; - } else if(typeof value === 'object' && this.validate(value)) { - - return this.coords(value); - - } else if(typeof value === 'object') { - - for(var prop in value) { - value[prop] = this.useDecimal(value[prop]); - } - - return value; - - } - - - if (this.isDecimal(value)) { - - return parseFloat(value); - - } else if(this.isSexagesimal(value) === true) { - - return parseFloat(this.sexagesimal2decimal(value)); - - } - - throw new Error('Unknown format.'); - - }, - - /** - * Converts a decimal coordinate value to sexagesimal format - * - * @param float decimal - * @return string Sexagesimal value (XX° YY' ZZ") - */ - decimal2sexagesimal: function(dec) { - - if (dec in this.sexagesimal) { - return this.sexagesimal[dec]; - } - - var tmp = dec.toString().split('.'); - - var deg = Math.abs(tmp[0]); - var min = ('0.' + (tmp[1] || 0))*60; - var sec = min.toString().split('.'); - - min = Math.floor(min); - sec = (('0.' + (sec[1] || 0)) * 60).toFixed(2); - - this.sexagesimal[dec] = (deg + '° ' + min + "' " + sec + '"'); - - return this.sexagesimal[dec]; - - }, - - - /** - * Converts a sexagesimal coordinate to decimal format - * - * @param float Sexagesimal coordinate - * @return string Decimal value (XX.XXXXXXXX) - */ - sexagesimal2decimal: function(sexagesimal) { - - if (sexagesimal in this.decimal) { - return this.decimal[sexagesimal]; - } - - var regEx = new RegExp(this.sexagesimalPattern); - var data = regEx.exec(sexagesimal); - var min = 0, sec = 0; - - if(data) { - min = parseFloat(data[2]/60); - sec = parseFloat(data[4]/3600) || 0; - } - - var dec = ((parseFloat(data[1]) + min + sec)).toFixed(8); - //var dec = ((parseFloat(data[1]) + min + sec)); - - // South and West are negative decimals - dec = (data[7] == 'S' || data[7] == 'W') ? parseFloat(-dec) : parseFloat(dec); - //dec = (data[7] == 'S' || data[7] == 'W') ? -dec : dec; - - this.decimal[sexagesimal] = dec; - - return dec; - - }, - - - /** - * Checks if a value is in decimal format - * - * @param string Value to be checked - * @return bool True if in sexagesimal format - */ - isDecimal: function(value) { - - value = value.toString().replace(/\s*/, ''); - - // looks silly but works as expected - // checks if value is in decimal format - return (!isNaN(parseFloat(value)) && parseFloat(value) == value); - - }, - - - /** - * Checks if a value is in sexagesimal format - * - * @param string Value to be checked - * @return bool True if in sexagesimal format - */ - isSexagesimal: function(value) { - - value = value.toString().replace(/\s*/, ''); - - return this.sexagesimalPattern.test(value); - - }, - - round: function(value, n) { - var decPlace = Math.pow(10, n); - return Math.round(value * decPlace)/decPlace; - } - - }); - - // Node module - if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - - module.exports = geolib; - - // react native - if (typeof global === 'object') { - global.geolib = geolib; - } - - // AMD module - } else if (typeof define === "function" && define.amd) { - - define("geolib", [], function () { - return geolib; - }); - - // we're in a browser - } else { - - global.geolib = geolib; - - } + } }(this)); diff --git a/app/bower_components/jquery/.bower.json b/app/bower_components/jquery/.bower.json index 9a2d995..bc51fe0 100644 --- a/app/bower_components/jquery/.bower.json +++ b/app/bower_components/jquery/.bower.json @@ -12,14 +12,14 @@ "library" ], "homepage": "https://github.com/jquery/jquery-dist", - "version": "3.4.1", - "_release": "3.4.1", + "version": "3.6.0", + "_release": "3.6.0", "_resolution": { "type": "version", - "tag": "3.4.1", - "commit": "15bc73803f76bc53b654b9fdbbbc096f56d7c03d" + "tag": "3.6.0", + "commit": "e786e3d9707ffd9b0dd330ca135b66344dcef85a" }, "_source": "https://github.com/jquery/jquery-dist.git", - "_target": "3.4.1", + "_target": "3.6.0", "_originalSource": "jquery" } \ No newline at end of file diff --git a/app/bower_components/jquery/AUTHORS.txt b/app/bower_components/jquery/AUTHORS.txt index a314d6a..0d44990 100644 --- a/app/bower_components/jquery/AUTHORS.txt +++ b/app/bower_components/jquery/AUTHORS.txt @@ -1,5 +1,3 @@ -Authors ordered by first contribution. - John Resig Gilles van den Hoven Michael Geary @@ -319,3 +317,15 @@ Andrei Fangli Marja Hölttä abnud1 buddh4 +Pat O'Callaghan +Ahmed.S.ElAfifi +Wonseop Kim +Christian Oliff +Christian Wenz +Sean Robinson +Jonathan +Pierre Grimaud +Beatriz Rezener +Natalia Sroka <37873210+natipo@users.noreply.github.com> +Wonhyoung Park +Dallas Fraser diff --git a/app/bower_components/jquery/LICENSE.txt b/app/bower_components/jquery/LICENSE.txt index e3dbacb..f642c3f 100644 --- a/app/bower_components/jquery/LICENSE.txt +++ b/app/bower_components/jquery/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright JS Foundation and other contributors, https://js.foundation/ +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/app/bower_components/jquery/README.md b/app/bower_components/jquery/README.md index 411a859..60982f7 100644 --- a/app/bower_components/jquery/README.md +++ b/app/bower_components/jquery/README.md @@ -2,10 +2,10 @@ > jQuery is a fast, small, and feature-rich JavaScript library. -For information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/). +For information on how to get started and how to use jQuery, please see [jQuery's documentation](https://api.jquery.com/). For source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery). -If upgrading, please see the [blog post for 3.4.1](https://blog.jquery.com/2019/05/01/jquery-3-4-1-triggering-focus-events-in-ie-and-finding-root-elements-in-ios-10/). This includes notable differences from the previous version and a more readable changelog. +If upgrading, please see the [blog post for 3.6.0](https://blog.jquery.com/2021/03/02/jquery-3-6-0-released/). This includes notable differences from the previous version and a more readable changelog. ## Including jQuery @@ -16,12 +16,12 @@ Below are some of the most common ways to include jQuery. #### Script tag ```html - + ``` #### Babel -[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively. +[Babel](https://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively. ```js import $ from "jquery"; @@ -29,39 +29,34 @@ import $ from "jquery"; #### Browserify/Webpack -There are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this... +There are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documentation. In the script, including jQuery will usually look like this... ```js -var $ = require("jquery"); +var $ = require( "jquery" ); ``` #### AMD (Asynchronous Module Definition) -AMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html). +AMD is a module format built for the browser. For more information, we recommend [require.js' documentation](https://requirejs.org/docs/whyamd.html). ```js -define(["jquery"], function($) { +define( [ "jquery" ], function( $ ) { -}); +} ); ``` ### Node -To include jQuery in [Node](nodejs.org), first install with npm. +To include jQuery in [Node](https://nodejs.org/), first install with npm. ```sh npm install jquery ``` -For jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes. +For jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/jsdom/jsdom). This can be useful for testing purposes. ```js -require("jsdom").env("", function(err, window) { - if (err) { - console.error(err); - return; - } - - var $ = require("jquery")(window); -}); +const { JSDOM } = require( "jsdom" ); +const { window } = new JSDOM( "" ); +const $ = require( "jquery" )( window ); ``` diff --git a/app/bower_components/jquery/dist/core.js b/app/bower_components/jquery/dist/core.js deleted file mode 100644 index aeafc70..0000000 --- a/app/bower_components/jquery/dist/core.js +++ /dev/null @@ -1,399 +0,0 @@ -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - -define( [ - "./var/arr", - "./var/document", - "./var/getProto", - "./var/slice", - "./var/concat", - "./var/push", - "./var/indexOf", - "./var/class2type", - "./var/toString", - "./var/hasOwn", - "./var/fnToString", - "./var/ObjectFunctionString", - "./var/support", - "./var/isFunction", - "./var/isWindow", - "./core/DOMEval", - "./core/toType" -], function( arr, document, getProto, slice, concat, push, indexOf, - class2type, toString, hasOwn, fnToString, ObjectFunctionString, - support, isFunction, isWindow, DOMEval, toType ) { - -"use strict"; - -var - version = "3.4.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; - -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" && !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 ) { - copy = options[ name ]; - - // Prevent Object.prototype pollution - // Prevent never-ending loop - if ( name === "__proto__" || target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - src = target[ name ]; - - // Ensure proper type for the source value - if ( copyIsArray && !Array.isArray( src ) ) { - clone = []; - } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { - clone = {}; - } else { - clone = src; - } - copyIsArray = false; - - // 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() {}, - - 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 ) { - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - // Evaluates a script in a global context - globalEval: function( code, options ) { - DOMEval( code, { nonce: options && options.nonce } ); - }, - - 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, - - // 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 = toType( obj ); - - if ( isFunction( obj ) || isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} - -return jQuery; -} ); diff --git a/app/bower_components/jquery/dist/jquery.js b/app/bower_components/jquery/dist/jquery.js index 773ad95..fc6c299 100644 --- a/app/bower_components/jquery/dist/jquery.js +++ b/app/bower_components/jquery/dist/jquery.js @@ -1,15 +1,15 @@ /*! - * jQuery JavaScript Library v3.4.1 + * jQuery JavaScript Library v3.6.0 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright OpenJS Foundation and other contributors * Released under the MIT license * https://jquery.org/license * - * Date: 2019-05-01T21:04Z + * Date: 2021-03-02T17:08Z */ ( function( global, factory ) { @@ -47,13 +47,16 @@ var arr = []; -var document = window.document; - var getProto = Object.getPrototypeOf; var slice = arr.slice; -var concat = arr.concat; +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + var push = arr.push; @@ -73,12 +76,16 @@ var support = {}; var isFunction = function isFunction( obj ) { - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; var isWindow = function isWindow( obj ) { @@ -86,6 +93,8 @@ var isWindow = function isWindow( obj ) { }; +var document = window.document; + var preservedScriptAttributes = { @@ -142,7 +151,7 @@ function toType( obj ) { var - version = "3.4.1", + version = "3.6.0", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -150,11 +159,7 @@ var // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + }; jQuery.fn = jQuery.prototype = { @@ -220,6 +225,18 @@ jQuery.fn = jQuery.prototype = { return this.eq( -1 ); }, + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); @@ -353,9 +370,10 @@ jQuery.extend( { return true; }, - // Evaluates a script in a global context - globalEval: function( code, options ) { - DOMEval( code, { nonce: options && options.nonce } ); + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); }, each: function( obj, callback ) { @@ -379,13 +397,6 @@ jQuery.extend( { return obj; }, - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - // results is for internal usage only makeArray: function( arr, results ) { var ret = results || []; @@ -394,7 +405,7 @@ jQuery.extend( { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? - [ arr ] : arr + [ arr ] : arr ); } else { push.call( ret, arr ); @@ -472,7 +483,7 @@ jQuery.extend( { } // Flatten any nested arrays - return concat.apply( [], ret ); + return flat( ret ); }, // A global GUID counter for objects @@ -489,9 +500,9 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); function isArrayLike( obj ) { @@ -511,17 +522,16 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.4 + * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2019-04-08 + * Date: 2021-02-16 */ -(function( window ) { - +( function( window ) { var i, support, Expr, @@ -561,59 +571,70 @@ var i, }, // Instance methods - hasOwn = ({}).hasOwnProperty, + hasOwn = ( {} ).hasOwnProperty, arr = [], pop = arr.pop, - push_native = arr.push, + pushNative = arr.push, push = arr.push, slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native // https://jsperf.com/thor-indexof-vs-for/5 indexOf = function( list, elem ) { var i = 0, len = list.length; for ( ; i < len; i++ ) { - if ( list[i] === elem ) { + if ( list[ i ] === elem ) { return i; } } return -1; }, - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", // Regular expressions // http://www.w3.org/TR/css3-selectors/#whitespace whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: // 1. quoted (capture 3; capture 4 or capture 5) "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) ".*" + ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), rdescend = new RegExp( whitespace + "|>" ), rpseudo = new RegExp( pseudos ), @@ -625,14 +646,16 @@ var i, "TAG": new RegExp( "^(" + identifier + "|[*])" ), "ATTR": new RegExp( "^" + attributes ), "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) }, rhtml = /HTML$/i, @@ -648,18 +671,21 @@ var i, // CSS escapes // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair high < 0 ? - // BMP codepoint String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); }, @@ -675,7 +701,8 @@ var i, } // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; } // Other potentially-special ASCII characters get backslash-escaped @@ -700,18 +727,20 @@ var i, // Optimize for push.apply( _, NodeList ) try { push.apply( - (arr = slice.call( preferredDoc.childNodes )), + ( arr = slice.call( preferredDoc.childNodes ) ), preferredDoc.childNodes ); + // Support: Android<4.0 // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions arr[ preferredDoc.childNodes.length ].nodeType; } catch ( e ) { push = { apply: arr.length ? // Leverage slice if possible function( target, els ) { - push_native.apply( target, slice.call(els) ); + pushNative.apply( target, slice.call( els ) ); } : // Support: IE<9 @@ -719,8 +748,9 @@ try { function( target, els ) { var j = target.length, i = 0; + // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} + while ( ( target[ j++ ] = els[ i++ ] ) ) {} target.length = j - 1; } }; @@ -744,24 +774,21 @@ function Sizzle( selector, context, results, seed ) { // Try to shortcut find operations (as opposed to filters) in HTML documents if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } + setDocument( context ); context = context || document; if ( documentIsHTML ) { // If the selector is sufficiently simple, try using a "get*By*" DOM method // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { // ID selector - if ( (m = match[1]) ) { + if ( ( m = match[ 1 ] ) ) { // Document context if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { + if ( ( elem = context.getElementById( m ) ) ) { // Support: IE, Opera, Webkit // TODO: identify versions @@ -780,7 +807,7 @@ function Sizzle( selector, context, results, seed ) { // Support: IE, Opera, Webkit // TODO: identify versions // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && + if ( newContext && ( elem = newContext.getElementById( m ) ) && contains( context, elem ) && elem.id === m ) { @@ -790,12 +817,12 @@ function Sizzle( selector, context, results, seed ) { } // Type selector - } else if ( match[2] ) { + } else if ( match[ 2 ] ) { push.apply( results, context.getElementsByTagName( selector ) ); return results; // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && context.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); @@ -806,11 +833,11 @@ function Sizzle( selector, context, results, seed ) { // Take advantage of querySelectorAll if ( support.qsa && !nonnativeSelectorCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && // Support: IE 8 only // Exclude object elements - (nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) { + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { newSelector = selector; newContext = context; @@ -819,27 +846,36 @@ function Sizzle( selector, context, results, seed ) { // descendant combinators, which is not what we want. // In such cases, we work around the behavior by prefixing every selector in the // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && rdescend.test( selector ) ) { + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { - // 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) ); + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } } // Prefix every selector in the list groups = tokenize( selector ); i = groups.length; while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); } newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; } try { @@ -872,12 +908,14 @@ function createCache() { var keys = []; function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries delete cache[ keys.shift() ]; } - return (cache[ key + " " ] = value); + return ( cache[ key + " " ] = value ); } return cache; } @@ -896,17 +934,19 @@ function markFunction( fn ) { * @param {Function} fn Passed the created element and returns a boolean result */ function assert( fn ) { - var el = document.createElement("fieldset"); + var el = document.createElement( "fieldset" ); try { return !!fn( el ); - } catch (e) { + } catch ( e ) { return false; } finally { + // Remove from its parent by default if ( el.parentNode ) { el.parentNode.removeChild( el ); } + // release memory in IE el = null; } @@ -918,11 +958,11 @@ function assert( fn ) { * @param {Function} handler The method that will be applied */ function addHandle( attrs, handler ) { - var arr = attrs.split("|"), + var arr = attrs.split( "|" ), i = arr.length; while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; + Expr.attrHandle[ arr[ i ] ] = handler; } } @@ -944,7 +984,7 @@ function siblingCheck( a, b ) { // Check if b follows a if ( cur ) { - while ( (cur = cur.nextSibling) ) { + while ( ( cur = cur.nextSibling ) ) { if ( cur === b ) { return -1; } @@ -972,7 +1012,7 @@ function createInputPseudo( type ) { function createButtonPseudo( type ) { return function( elem ) { var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; + return ( name === "input" || name === "button" ) && elem.type === type; }; } @@ -1015,7 +1055,7 @@ function createDisabledPseudo( disabled ) { // Where there is no isDisabled, check manually /* jshint -W018 */ elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; + inDisabledFieldset( elem ) === disabled; } return elem.disabled === disabled; @@ -1037,21 +1077,21 @@ function createDisabledPseudo( disabled ) { * @param {Function} fn */ function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { + return markFunction( function( argument ) { argument = +argument; - return markFunction(function( seed, matches ) { + return markFunction( function( seed, matches ) { var j, matchIndexes = fn( [], seed.length, argument ), i = matchIndexes.length; // Match elements found at the specified indexes while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); } } - }); - }); + } ); + } ); } /** @@ -1072,8 +1112,8 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = (elem.ownerDocument || elem).documentElement; + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -1091,7 +1131,11 @@ setDocument = Sizzle.setDocument = function( node ) { doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { return document; } @@ -1100,10 +1144,14 @@ setDocument = Sizzle.setDocument = function( node ) { docElem = document.documentElement; documentIsHTML = !isXML( document ); - // Support: IE 9-11, Edge + // Support: IE 9 - 11+, Edge 12 - 18+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { // Support: IE 11, Edge if ( subWindow.addEventListener ) { @@ -1115,25 +1163,36 @@ setDocument = Sizzle.setDocument = function( node ) { } } + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 // Verify that getAttribute really returns attributes and not properties // (excepting IE8 booleans) - support.attributes = assert(function( el ) { + support.attributes = assert( function( el ) { el.className = "i"; - return !el.getAttribute("className"); - }); + return !el.getAttribute( "className" ); + } ); /* getElement(s)By* ---------------------------------------------------------------------- */ // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; - }); + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); // Support: IE<9 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); @@ -1142,38 +1201,38 @@ setDocument = Sizzle.setDocument = function( node ) { // Check if getElementById returns elements by name // The broken getElementById methods don't pick up programmatically-set names, // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { + support.getById = assert( function( el ) { docElem.appendChild( el ).id = expando; return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); + } ); // ID filter and find if ( support.getById ) { - Expr.filter["ID"] = function( id ) { + Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { - return elem.getAttribute("id") === attrId; + return elem.getAttribute( "id" ) === attrId; }; }; - Expr.find["ID"] = function( id, context ) { + Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var elem = context.getElementById( id ); return elem ? [ elem ] : []; } }; } else { - Expr.filter["ID"] = function( id ) { + Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); + elem.getAttributeNode( "id" ); return node && node.value === attrId; }; }; // Support: IE 6 - 7 only // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { + Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var node, i, elems, elem = context.getElementById( id ); @@ -1181,7 +1240,7 @@ setDocument = Sizzle.setDocument = function( node ) { if ( elem ) { // Verify the id attribute - node = elem.getAttributeNode("id"); + node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } @@ -1189,8 +1248,8 @@ setDocument = Sizzle.setDocument = function( node ) { // Fall back on getElementsByName elems = context.getElementsByName( id ); i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } @@ -1203,7 +1262,7 @@ setDocument = Sizzle.setDocument = function( node ) { } // Tag - Expr.find["TAG"] = support.getElementsByTagName ? + Expr.find[ "TAG" ] = support.getElementsByTagName ? function( tag, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); @@ -1218,12 +1277,13 @@ setDocument = Sizzle.setDocument = function( node ) { var elem, tmp = [], i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments if ( tag === "*" ) { - while ( (elem = results[i++]) ) { + while ( ( elem = results[ i++ ] ) ) { if ( elem.nodeType === 1 ) { tmp.push( elem ); } @@ -1235,7 +1295,7 @@ setDocument = Sizzle.setDocument = function( node ) { }; // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { return context.getElementsByClassName( className ); } @@ -1256,10 +1316,14 @@ setDocument = Sizzle.setDocument = function( node ) { // See https://bugs.jquery.com/ticket/13378 rbuggyQSA = []; - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + // Build QSA regex // Regex strategy adopted from Diego Perini - assert(function( el ) { + assert( function( el ) { + + var input; + // Select is set to empty string on purpose // This is to test IE's treatment of not explicitly // setting a boolean content attribute, @@ -1273,78 +1337,98 @@ setDocument = Sizzle.setDocument = function( node ) { // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // Support: IE8 // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { + if ( !el.querySelectorAll( "[selected]" ).length ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); } // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); } // Support: Safari 8+, iOS 8+ // https://bugs.webkit.org/show_bug.cgi?id=136851 // In-page `selector#id sibling-combinator selector` fails if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); + rbuggyQSA.push( ".#.+[+~]" ); } - }); - assert(function( el ) { + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { el.innerHTML = "" + ""; // Support: Windows 8 Native Apps // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); + var input = document.createElement( "input" ); input.setAttribute( "type", "hidden" ); el.appendChild( input ).setAttribute( "name", "D" ); // Support: IE8 // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { + if ( el.querySelectorAll( "[name=d]" ).length ) { rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Support: IE9-11+ // IE's :disabled selector does not pick up the children of disabled fieldsets docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } + // Support: Opera 10 - 11 only // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); } - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { - assert(function( el ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9) support.disconnectedMatch = matches.call( el, "*" ); @@ -1353,11 +1437,11 @@ setDocument = Sizzle.setDocument = function( node ) { // Gecko does not error, returns false instead matches.call( el, "[s!='']:x" ); rbuggyMatches.push( "!=", pseudos ); - }); + } ); } - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); /* Contains ---------------------------------------------------------------------- */ @@ -1374,11 +1458,11 @@ setDocument = Sizzle.setDocument = function( node ) { adown.contains ? adown.contains( bup ) : a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); + ) ); } : function( a, b ) { if ( b ) { - while ( (b = b.parentNode) ) { + while ( ( b = b.parentNode ) ) { if ( b === a ) { return true; } @@ -1407,7 +1491,11 @@ setDocument = Sizzle.setDocument = function( node ) { } // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? a.compareDocumentPosition( b ) : // Otherwise we know they are disconnected @@ -1415,13 +1503,24 @@ setDocument = Sizzle.setDocument = function( node ) { // Disconnected nodes if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { return -1; } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { return 1; } @@ -1434,6 +1533,7 @@ setDocument = Sizzle.setDocument = function( node ) { return compare & 4 ? -1 : 1; } : function( a, b ) { + // Exit early if the nodes are identical if ( a === b ) { hasDuplicate = true; @@ -1449,8 +1549,14 @@ setDocument = Sizzle.setDocument = function( node ) { // Parentless nodes are either documents or disconnected if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ aup ? -1 : bup ? 1 : sortInput ? @@ -1464,26 +1570,32 @@ setDocument = Sizzle.setDocument = function( node ) { // Otherwise we need full lists of their ancestors for comparison cur = a; - while ( (cur = cur.parentNode) ) { + while ( ( cur = cur.parentNode ) ) { ap.unshift( cur ); } cur = b; - while ( (cur = cur.parentNode) ) { + while ( ( cur = cur.parentNode ) ) { bp.unshift( cur ); } // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { + while ( ap[ i ] === bp[ i ] ) { i++; } return i ? + // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : + siblingCheck( ap[ i ], bp[ i ] ) : // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ 0; }; @@ -1495,10 +1607,7 @@ Sizzle.matches = function( expr, elements ) { }; Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } + setDocument( elem ); if ( support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[ expr + " " ] && @@ -1510,12 +1619,13 @@ Sizzle.matchesSelector = function( elem, expr ) { // IE 9's matchesSelector returns false on disconnected nodes if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch (e) { + } catch ( e ) { nonnativeSelectorCache( expr, true ); } } @@ -1524,20 +1634,31 @@ Sizzle.matchesSelector = function( elem, expr ) { }; Sizzle.contains = function( context, elem ) { + // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { setDocument( context ); } return contains( context, elem ); }; Sizzle.attr = function( elem, name ) { + // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { setDocument( elem ); } var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? fn( elem, name, !documentIsHTML ) : @@ -1547,13 +1668,13 @@ Sizzle.attr = function( elem, name ) { val : support.attributes || !documentIsHTML ? elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? + ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : null; }; Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); + return ( sel + "" ).replace( rcssescape, fcssescape ); }; Sizzle.error = function( msg ) { @@ -1576,7 +1697,7 @@ Sizzle.uniqueSort = function( results ) { results.sort( sortOrder ); if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { + while ( ( elem = results[ i++ ] ) ) { if ( elem === results[ i ] ) { j = duplicates.push( i ); } @@ -1604,17 +1725,21 @@ getText = Sizzle.getText = function( elem ) { nodeType = elem.nodeType; if ( !nodeType ) { + // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { + while ( ( node = elem[ i++ ] ) ) { + // Do not traverse comment nodes ret += getText( node ); } } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements // innerText usage removed for consistency of new lines (jQuery #11153) if ( typeof elem.textContent === "string" ) { return elem.textContent; } else { + // Traverse its children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { ret += getText( elem ); @@ -1623,6 +1748,7 @@ getText = Sizzle.getText = function( elem ) { } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } + // Do not include comment or processing instruction nodes return ret; @@ -1650,19 +1776,21 @@ Expr = Sizzle.selectors = { preFilter: { "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; } return match.slice( 0, 4 ); }, "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] 1 type (only|nth|...) 2 what (child|of-type) @@ -1673,22 +1801,25 @@ Expr = Sizzle.selectors = { 7 sign of y-component 8 y of y-component */ - match[1] = match[1].toLowerCase(); + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { - if ( match[1].slice( 0, 3 ) === "nth" ) { // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); } // numeric x and y parameters for Expr.filter.CHILD // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); } return match; @@ -1696,26 +1827,28 @@ Expr = Sizzle.selectors = { "PSEUDO": function( match ) { var excess, - unquoted = !match[6] && match[2]; + unquoted = !match[ 6 ] && match[ 2 ]; - if ( matchExpr["CHILD"].test( match[0] ) ) { + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { return null; } // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; // Strip excess characters from unquoted arguments } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && + ( excess = tokenize( unquoted, true ) ) && + // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); } // Return only captures needed by the pseudo filter method (type and argument) @@ -1728,7 +1861,9 @@ Expr = Sizzle.selectors = { "TAG": function( nodeNameSelector ) { var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); return nodeNameSelector === "*" ? - function() { return true; } : + function() { + return true; + } : function( elem ) { return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; }; @@ -1738,10 +1873,16 @@ Expr = Sizzle.selectors = { var pattern = classCache[ className + " " ]; return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); }, "ATTR": function( name, operator, check ) { @@ -1757,6 +1898,8 @@ Expr = Sizzle.selectors = { result += ""; + /* eslint-disable max-len */ + return operator === "=" ? result === check : operator === "!=" ? result !== check : operator === "^=" ? check && result.indexOf( check ) === 0 : @@ -1765,10 +1908,12 @@ Expr = Sizzle.selectors = { operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; + /* eslint-enable max-len */ + }; }, - "CHILD": function( type, what, argument, first, last ) { + "CHILD": function( type, what, _argument, first, last ) { var simple = type.slice( 0, 3 ) !== "nth", forward = type.slice( -4 ) !== "last", ofType = what === "of-type"; @@ -1780,7 +1925,7 @@ Expr = Sizzle.selectors = { return !!elem.parentNode; } : - function( elem, context, xml ) { + function( elem, _context, xml ) { var cache, uniqueCache, outerCache, node, nodeIndex, start, dir = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, @@ -1794,7 +1939,7 @@ Expr = Sizzle.selectors = { if ( simple ) { while ( dir ) { node = elem; - while ( (node = node[ dir ]) ) { + while ( ( node = node[ dir ] ) ) { if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { @@ -1802,6 +1947,7 @@ Expr = Sizzle.selectors = { return false; } } + // Reverse direction for :only-* (if we haven't yet done so) start = dir = type === "only" && !start && "nextSibling"; } @@ -1817,22 +1963,22 @@ Expr = Sizzle.selectors = { // ...in a gzip-friendly way node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; diff = nodeIndex && cache[ 2 ]; node = nodeIndex && parent.childNodes[ nodeIndex ]; - while ( (node = ++nodeIndex && node && node[ dir ] || + while ( ( node = ++nodeIndex && node && node[ dir ] || // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { + ( diff = nodeIndex = 0 ) || start.pop() ) ) { // When found, cache indexes on `parent` and break if ( node.nodeType === 1 && ++diff && node === elem ) { @@ -1842,16 +1988,18 @@ Expr = Sizzle.selectors = { } } else { + // Use previously-cached element index if available if ( useCache ) { + // ...in a gzip-friendly way node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; @@ -1861,9 +2009,10 @@ Expr = Sizzle.selectors = { // xml :nth-child(...) // or :nth-last-child(...) or :nth(-last)?-of-type(...) if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { if ( ( ofType ? node.nodeName.toLowerCase() === name : @@ -1872,12 +2021,13 @@ Expr = Sizzle.selectors = { // Cache the index of each encountered element if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || + ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); uniqueCache[ type ] = [ dirruns, diff ]; } @@ -1898,6 +2048,7 @@ Expr = Sizzle.selectors = { }, "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive // http://www.w3.org/TR/selectors/#pseudo-classes // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters @@ -1917,15 +2068,15 @@ Expr = Sizzle.selectors = { if ( fn.length > 1 ) { args = [ pseudo, pseudo, "", argument ]; return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { + markFunction( function( seed, matches ) { var idx, matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); } - }) : + } ) : function( elem ) { return fn( elem, 0, args ); }; @@ -1936,8 +2087,10 @@ Expr = Sizzle.selectors = { }, pseudos: { + // Potentially complex pseudos - "not": markFunction(function( selector ) { + "not": markFunction( function( selector ) { + // Trim the selector passed to compile // to avoid treating leading and trailing // spaces as combinators @@ -1946,39 +2099,40 @@ Expr = Sizzle.selectors = { matcher = compile( selector.replace( rtrim, "$1" ) ); return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { + markFunction( function( seed, matches, _context, xml ) { var elem, unmatched = matcher( seed, null, xml, [] ), i = seed.length; // Match elements unmatched by `matcher` while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); } } - }) : - function( elem, context, xml ) { - input[0] = elem; + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; matcher( input, null, xml, results ); + // Don't keep the element (issue #299) - input[0] = null; + input[ 0 ] = null; return !results.pop(); }; - }), + } ), - "has": markFunction(function( selector ) { + "has": markFunction( function( selector ) { return function( elem ) { return Sizzle( selector, elem ).length > 0; }; - }), + } ), - "contains": markFunction(function( text ) { + "contains": markFunction( function( text ) { text = text.replace( runescape, funescape ); return function( elem ) { return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; }; - }), + } ), // "Whether an element is represented by a :lang() selector // is based solely on the element's language value @@ -1988,25 +2142,26 @@ Expr = Sizzle.selectors = { // The identifier C does not have to be a valid language name." // http://www.w3.org/TR/selectors/#lang-pseudo "lang": markFunction( function( lang ) { + // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { + if ( !ridentifier.test( lang || "" ) ) { Sizzle.error( "unsupported lang: " + lang ); } lang = lang.replace( runescape, funescape ).toLowerCase(); return function( elem ) { var elemLang; do { - if ( (elemLang = documentIsHTML ? + if ( ( elemLang = documentIsHTML ? elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { elemLang = elemLang.toLowerCase(); return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); return false; }; - }), + } ), // Miscellaneous "target": function( elem ) { @@ -2019,7 +2174,9 @@ Expr = Sizzle.selectors = { }, "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); }, // Boolean properties @@ -2027,16 +2184,20 @@ Expr = Sizzle.selectors = { "disabled": createDisabledPseudo( true ), "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); }, "selected": function( elem ) { + // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions elem.parentNode.selectedIndex; } @@ -2045,6 +2206,7 @@ Expr = Sizzle.selectors = { // Contents "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), // but not by others (comment: 8; processing instruction: 7; etc.) @@ -2058,7 +2220,7 @@ Expr = Sizzle.selectors = { }, "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); + return !Expr.pseudos[ "empty" ]( elem ); }, // Element/input types @@ -2082,39 +2244,40 @@ Expr = Sizzle.selectors = { // Support: IE<8 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); }, // Position-in-collection - "first": createPositionalPseudo(function() { + "first": createPositionalPseudo( function() { return [ 0 ]; - }), + } ), - "last": createPositionalPseudo(function( matchIndexes, length ) { + "last": createPositionalPseudo( function( _matchIndexes, length ) { return [ length - 1 ]; - }), + } ), - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { return [ argument < 0 ? argument + length : argument ]; - }), + } ), - "even": createPositionalPseudo(function( matchIndexes, length ) { + "even": createPositionalPseudo( function( matchIndexes, length ) { var i = 0; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "odd": createPositionalPseudo(function( matchIndexes, length ) { + "odd": createPositionalPseudo( function( matchIndexes, length ) { var i = 1; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument > length ? @@ -2124,19 +2287,19 @@ Expr = Sizzle.selectors = { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument; for ( ; ++i < length; ) { matchIndexes.push( i ); } return matchIndexes; - }) + } ) } }; -Expr.pseudos["nth"] = Expr.pseudos["eq"]; +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; // Add button/input type pseudos for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { @@ -2167,37 +2330,39 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { while ( soFar ) { // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { if ( match ) { + // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; + soFar = soFar.slice( match[ 0 ].length ) || soFar; } - groups.push( (tokens = []) ); + groups.push( ( tokens = [] ) ); } matched = false; // Combinators - if ( (match = rcombinators.exec( soFar )) ) { + if ( ( match = rcombinators.exec( soFar ) ) ) { matched = match.shift(); - tokens.push({ + tokens.push( { value: matched, + // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); + type: match[ 0 ].replace( rtrim, " " ) + } ); soFar = soFar.slice( matched.length ); } // Filters for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { matched = match.shift(); - tokens.push({ + tokens.push( { value: matched, type: type, matches: match - }); + } ); soFar = soFar.slice( matched.length ); } } @@ -2214,6 +2379,7 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { soFar.length : soFar ? Sizzle.error( selector ) : + // Cache the tokens tokenCache( selector, groups ).slice( 0 ); }; @@ -2223,7 +2389,7 @@ function toSelector( tokens ) { len = tokens.length, selector = ""; for ( ; i < len; i++ ) { - selector += tokens[i].value; + selector += tokens[ i ].value; } return selector; } @@ -2236,9 +2402,10 @@ function addCombinator( matcher, combinator, base ) { doneName = done++; return combinator.first ? + // Check against closest ancestor/preceding element function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { return matcher( elem, context, xml ); } @@ -2253,7 +2420,7 @@ function addCombinator( matcher, combinator, base ) { // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching if ( xml ) { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { if ( matcher( elem, context, xml ) ) { return true; @@ -2261,27 +2428,29 @@ function addCombinator( matcher, combinator, base ) { } } } else { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); if ( skip && skip === elem.nodeName.toLowerCase() ) { elem = elem[ dir ] || elem; - } else if ( (oldCache = uniqueCache[ key ]) && + } else if ( ( oldCache = uniqueCache[ key ] ) && oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); + return ( newCache[ 2 ] = oldCache[ 2 ] ); } else { + // Reuse newcache so results back-propagate to previous elements uniqueCache[ key ] = newCache; // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { return true; } } @@ -2297,20 +2466,20 @@ function elementMatcher( matchers ) { function( elem, context, xml ) { var i = matchers.length; while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { + if ( !matchers[ i ]( elem, context, xml ) ) { return false; } } return true; } : - matchers[0]; + matchers[ 0 ]; } function multipleContexts( selector, contexts, results ) { var i = 0, len = contexts.length; for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); + Sizzle( selector, contexts[ i ], results ); } return results; } @@ -2323,7 +2492,7 @@ function condense( unmatched, map, filter, context, xml ) { mapped = map != null; for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { + if ( ( elem = unmatched[ i ] ) ) { if ( !filter || filter( elem, context, xml ) ) { newUnmatched.push( elem ); if ( mapped ) { @@ -2343,14 +2512,18 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( postFinder && !postFinder[ expando ] ) { postFinder = setMatcher( postFinder, postSelector ); } - return markFunction(function( seed, results, context, xml ) { + return markFunction( function( seed, results, context, xml ) { var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), // Prefilter to get matcher input, preserving a map for seed-results synchronization matcherIn = preFilter && ( seed || !selector ) ? @@ -2358,6 +2531,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS elems, matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, postFinder || ( seed ? preFilter : preexisting || postFilter ) ? @@ -2381,8 +2555,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS // Un-match failing elements by moving them back to matcherIn i = temp.length; while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); } } } @@ -2390,25 +2564,27 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( seed ) { if ( postFinder || preFilter ) { if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts temp = []; i = matcherOut.length; while ( i-- ) { - if ( (elem = matcherOut[i]) ) { + if ( ( elem = matcherOut[ i ] ) ) { + // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); + temp.push( ( matcherIn[ i ] = elem ) ); } } - postFinder( null, (matcherOut = []), temp, xml ); + postFinder( null, ( matcherOut = [] ), temp, xml ); } // Move matched elements from seed to results to keep them synchronized i = matcherOut.length; while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { - seed[temp] = !(results[temp] = elem); + seed[ temp ] = !( results[ temp ] = elem ); } } } @@ -2426,14 +2602,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS push.apply( results, matcherOut ); } } - }); + } ); } function matcherFromTokens( tokens ) { var checkContext, matcher, j, len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], i = leadingRelative ? 1 : 0, // The foundational matcher ensures that elements are reachable from top-level context(s) @@ -2445,38 +2621,43 @@ function matcherFromTokens( tokens ) { }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? + ( checkContext = context ).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) checkContext = null; return ret; } ]; for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); // Return special upon seeing a positional matcher if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling j = ++i; for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { + if ( Expr.relative[ tokens[ j ].type ] ) { break; } } return setMatcher( i > 1 && elementMatcher( matchers ), i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) ).replace( rtrim, "$1" ), matcher, i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), j < len && toSelector( tokens ) ); } @@ -2497,28 +2678,40 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { unmatched = seed && [], setMatched = [], contextBackup = outermostContext, + // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), len = elems.length; if ( outermost ) { - outermostContext = context === document || context || outermost; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; } // Add elements passing elementMatchers directly to results // Support: IE<9, Safari // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { if ( byElement && elem ) { j = 0; - if ( !context && elem.ownerDocument !== document ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { setDocument( elem ); xml = !documentIsHTML; } - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { results.push( elem ); break; } @@ -2530,8 +2723,9 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // Track unmatched elements for set filters if ( bySet ) { + // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { + if ( ( elem = !matcher && elem ) ) { matchedCount--; } @@ -2555,16 +2749,17 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // numerically zero. if ( bySet && i !== matchedCount ) { j = 0; - while ( (matcher = setMatchers[j++]) ) { + while ( ( matcher = setMatchers[ j++ ] ) ) { matcher( unmatched, setMatched, context, xml ); } if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting if ( matchedCount > 0 ) { while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); } } } @@ -2605,13 +2800,14 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { cached = compilerCache[ selector + " " ]; if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element if ( !match ) { match = tokenize( selector ); } i = match.length; while ( i-- ) { - cached = matcherFromTokens( match[i] ); + cached = matcherFromTokens( match[ i ] ); if ( cached[ expando ] ) { setMatchers.push( cached ); } else { @@ -2620,7 +2816,10 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { } // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); // Save selector and tokenization cached.selector = selector; @@ -2640,7 +2839,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { select = Sizzle.select = function( selector, context, results, seed ) { var i, tokens, token, type, find, compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); results = results || []; @@ -2649,11 +2848,12 @@ select = Sizzle.select = function( selector, context, results, seed ) { if ( match.length === 1 ) { // Reduce context if the leading compound selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; if ( !context ) { return results; @@ -2666,20 +2866,22 @@ select = Sizzle.select = function( selector, context, results, seed ) { } // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; while ( i-- ) { - token = tokens[i]; + token = tokens[ i ]; // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { + if ( Expr.relative[ ( type = token.type ) ] ) { break; } - if ( (find = Expr.find[ type ]) ) { + if ( ( find = Expr.find[ type ] ) ) { + // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { // If seed is empty or no tokens remain, we can return early tokens.splice( i, 1 ); @@ -2710,7 +2912,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { // One-time assignments // Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; // Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function @@ -2721,58 +2923,59 @@ setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) // Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( el ) { +support.sortDetached = assert( function( el ) { + // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; -}); + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); // Support: IE<8 // Prevent attribute/property "interpolation" // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( el ) { +if ( !assert( function( el ) { el.innerHTML = ""; - return el.firstChild.getAttribute("href") === "#" ; -}) ) { + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { addHandle( "type|href|height|width", function( elem, name, isXML ) { if ( !isXML ) { return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); } - }); + } ); } // Support: IE<9 // Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( el ) { +if ( !support.attributes || !assert( function( el ) { el.innerHTML = ""; el.firstChild.setAttribute( "value", "" ); return el.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { return elem.defaultValue; } - }); + } ); } // Support: IE<9 // Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; -}) ) { +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { addHandle( booleans, function( elem, name, isXML ) { var val; if ( !isXML ) { return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? + ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : - null; + null; } - }); + } ); } return Sizzle; -})( window ); +} )( window ); @@ -2825,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext; function nodeName( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); -}; +} var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); @@ -3141,7 +3344,7 @@ jQuery.each( { parents: function( elem ) { return dir( elem, "parentNode" ); }, - parentsUntil: function( elem, i, until ) { + parentsUntil: function( elem, _i, until ) { return dir( elem, "parentNode", until ); }, next: function( elem ) { @@ -3156,10 +3359,10 @@ jQuery.each( { prevAll: function( elem ) { return dir( elem, "previousSibling" ); }, - nextUntil: function( elem, i, until ) { + nextUntil: function( elem, _i, until ) { return dir( elem, "nextSibling", until ); }, - prevUntil: function( elem, i, until ) { + prevUntil: function( elem, _i, until ) { return dir( elem, "previousSibling", until ); }, siblings: function( elem ) { @@ -3169,7 +3372,13 @@ jQuery.each( { return siblings( elem.firstChild ); }, contents: function( elem ) { - if ( typeof elem.contentDocument !== "undefined" ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + return elem.contentDocument; } @@ -3512,7 +3721,7 @@ jQuery.extend( { var fns = arguments; return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { + jQuery.each( tuples, function( _i, tuple ) { // Map tuples (progress, done, fail) to arguments (done, fail, progress) var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; @@ -3792,8 +4001,8 @@ jQuery.extend( { resolveContexts = Array( i ), resolveValues = slice.call( arguments ), - // the master Deferred - master = jQuery.Deferred(), + // the primary Deferred + primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { @@ -3801,30 +4010,30 @@ jQuery.extend( { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || + if ( primary.state() === "pending" || isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - return master.then(); + return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } - return master.promise(); + return primary.promise(); } } ); @@ -3965,7 +4174,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { // ...except when executing function values } else { bulk = fn; - fn = function( elem, key, value ) { + fn = function( elem, _key, value ) { return bulk.call( jQuery( elem ), value ); }; } @@ -3975,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } @@ -4000,7 +4209,7 @@ var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace() -function fcamelCase( all, letter ) { +function fcamelCase( _all, letter ) { return letter.toUpperCase(); } @@ -4528,27 +4737,6 @@ var isHiddenWithinTree = function( elem, el ) { 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 ) { @@ -4719,11 +4907,40 @@ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); -// We have to close these tags to support XHTML (#13200) -var wrapMap = { +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#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; // Support: IE <=9 only - option: [ 1, "" ], + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { // XHTML parsers do not magically insert elements in the // same way that tag soup parsers do. So we cannot shorten @@ -4736,12 +4953,14 @@ var wrapMap = { _default: [ 0, "", "" ] }; -// Support: IE <=9 only -wrapMap.optgroup = wrapMap.option; - wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + function getAll( context, tag ) { @@ -4874,36 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -} )(); - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; @@ -5008,8 +5198,8 @@ jQuery.event = { special, handlers, type, namespaces, origType, elemData = dataPriv.get( elem ); - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { return; } @@ -5033,7 +5223,7 @@ jQuery.event = { // Init the element's event structure and main handler, if this is the first if ( !( events = elemData.events ) ) { - events = elemData.events = {}; + events = elemData.events = Object.create( null ); } if ( !( eventHandle = elemData.handle ) ) { eventHandle = elemData.handle = function( e ) { @@ -5191,12 +5381,15 @@ jQuery.event = { dispatch: function( nativeEvent ) { - // Make a writable jQuery.Event from the native event object - var event = jQuery.event.fix( nativeEvent ); - var i, j, ret, matched, handleObj, handlerQueue, args = new Array( arguments.length ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5320,12 +5513,12 @@ jQuery.event = { get: isFunction( hook ) ? function() { if ( this.originalEvent ) { - return hook( this.originalEvent ); + return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { - return this.originalEvent[ name ]; + return this.originalEvent[ name ]; } }, @@ -5464,7 +5657,13 @@ function leverageNative( el, type, expectSync ) { // Cancel the outer synthetic event event.stopImmediatePropagation(); event.preventDefault(); - return result.value; + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; } // If this is an inner synthetic event for an event with a bubbling surrogate @@ -5629,34 +5828,7 @@ jQuery.each( { 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; - } + which: true }, jQuery.event.addProp ); jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { @@ -5682,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp return true; }, + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + delegateType: delegateType }; } ); @@ -5771,13 +5949,6 @@ jQuery.fn.extend( { var - /* eslint-disable max-len */ - - // See https://github.com/eslint/eslint/issues/3229 - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, - - /* eslint-enable */ - // Support: IE <=10 - 11, Edge 12 - 13 only // In IE/Edge using regex groups here causes severe slowdowns. // See https://connect.microsoft.com/IE/feedback/details/1736512/ @@ -5814,7 +5985,7 @@ function restoreScript( elem ) { } function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + var i, l, type, pdataOld, udataOld, udataCur, events; if ( dest.nodeType !== 1 ) { return; @@ -5822,13 +5993,11 @@ function cloneCopyEvent( src, dest ) { // 1. Copy private data: events, handlers, etc. if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); + pdataOld = dataPriv.get( src ); events = pdataOld.events; if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; + dataPriv.remove( dest, "handle events" ); for ( type in events ) { for ( i = 0, l = events[ type ].length; i < l; i++ ) { @@ -5864,7 +6033,7 @@ function fixInput( src, dest ) { function domManip( collection, args, callback, ignored ) { // Flatten any nested arrays - args = concat.apply( [], args ); + args = flat( args ); var fragment, first, scripts, hasScripts, node, doc, i = 0, @@ -5939,7 +6108,7 @@ function domManip( collection, args, callback, ignored ) { if ( jQuery._evalUrl && !node.noModule ) { jQuery._evalUrl( node.src, { nonce: node.nonce || node.getAttribute( "nonce" ) - } ); + }, doc ); } } else { DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); @@ -5976,7 +6145,7 @@ function remove( elem, selector, keepData ) { jQuery.extend( { htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1>" ); + return html; }, clone: function( elem, dataAndEvents, deepDataAndEvents ) { @@ -6238,6 +6407,27 @@ var getStyles = function( elem ) { return view.getComputedStyle( elem ); }; +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); @@ -6295,7 +6485,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); } var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableMarginLeftVal, + reliableTrDimensionsVal, reliableMarginLeftVal, container = document.createElement( "div" ), div = document.createElement( "div" ); @@ -6330,6 +6520,54 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); scrollboxSize: function() { computeStyleTests(); return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. + tr.style.height = "1px"; + trChild.style.height = "9px"; + + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; } } ); } )(); @@ -6454,7 +6692,7 @@ var fontWeight: "400" }; -function setPositiveNumber( elem, value, subtract ) { +function setPositiveNumber( _elem, value, subtract ) { // Any relative (+/-) values have already been // normalized at this point @@ -6559,17 +6797,26 @@ function getWidthOrHeight( elem, dimension, extra ) { } - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - // Support: IE 9-11 only - // Also use offsetWidth/offsetHeight for when box sizing is unreliable - // We use getClientRects() to check for hidden/disconnected. - // In those cases, the computed value can be trusted to be border-box + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected elem.getClientRects().length ) { isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; @@ -6764,7 +7011,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "height", "width" ], function( i, dimension ) { +jQuery.each( [ "height", "width" ], function( _i, dimension ) { jQuery.cssHooks[ dimension ] = { get: function( elem, computed, extra ) { if ( computed ) { @@ -6780,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( i, dimension ) { // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); } }, @@ -6842,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) - ) + "px"; + ) + "px"; } } ); @@ -6981,7 +7228,7 @@ Tween.propHooks = { if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || + jQuery.cssHooks[ tween.prop ] || tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { @@ -7226,7 +7473,7 @@ function defaultPrefilter( elem, props, opts ) { anim.done( function() { - /* eslint-enable no-loop-func */ + /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { @@ -7346,7 +7593,7 @@ function Animation( elem, properties, options ) { tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, @@ -7519,7 +7766,8 @@ jQuery.fn.extend( { anim.stop( true ); } }; - doAnimation.finish = doAnimation; + + doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : @@ -7537,7 +7785,7 @@ jQuery.fn.extend( { clearQueue = type; type = undefined; } - if ( clearQueue && type !== false ) { + if ( clearQueue ) { this.queue( type || "fx", [] ); } @@ -7620,7 +7868,7 @@ jQuery.fn.extend( { } } ); -jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { var cssFn = jQuery.fn[ name ]; jQuery.fn[ name ] = function( speed, easing, callback ) { return speed == null || typeof speed === "boolean" ? @@ -7841,7 +8089,7 @@ boolHook = { } }; -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { var getter = attrHandle[ name ] || jQuery.find.attr; attrHandle[ name ] = function( elem, name, isXML ) { @@ -8159,8 +8407,8 @@ jQuery.fn.extend( { if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" + "" : + dataPriv.get( this, "__className__" ) || "" ); } } @@ -8175,7 +8423,7 @@ jQuery.fn.extend( { while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; + return true; } } @@ -8465,7 +8713,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8576,7 +8824,10 @@ if ( !support.focusin ) { jQuery.event.special[ fix ] = { setup: function() { - var doc = this.ownerDocument || this, + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ); if ( !attaches ) { @@ -8585,7 +8836,7 @@ if ( !support.focusin ) { dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); }, teardown: function() { - var doc = this.ownerDocument || this, + var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ) - 1; if ( !attaches ) { @@ -8601,7 +8852,7 @@ if ( !support.focusin ) { } var location = window.location; -var nonce = Date.now(); +var nonce = { guid: Date.now() }; var rquery = ( /\?/ ); @@ -8609,7 +8860,7 @@ var rquery = ( /\?/ ); // Cross-browser xml parsing jQuery.parseXML = function( data ) { - var xml; + var xml, parserErrorElem; if ( !data || typeof data !== "string" ) { return null; } @@ -8618,12 +8869,17 @@ jQuery.parseXML = function( data ) { // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } + } catch ( e ) {} - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); } return xml; }; @@ -8724,16 +8980,14 @@ jQuery.fn.extend( { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { + } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( i, elem ) { + } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -8786,7 +9040,8 @@ var // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; + +originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -9167,8 +9422,8 @@ jQuery.extend( { // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, + jQuery( callbackContext ) : + jQuery.event, // Deferreds deferred = jQuery.Deferred(), @@ -9346,7 +9601,8 @@ jQuery.extend( { // Add or update anti-cache param if needed if ( s.cache === false ) { cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; } // Put hash and anti-cache on the URL that will be requested (gh-1732) @@ -9479,6 +9735,13 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { + s.converters[ "text script" ] = function() {}; + } + // Convert no matter what (that way responseXXX fields are always set) response = ajaxConvert( s, response, jqXHR, isSuccess ); @@ -9569,7 +9832,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "get", "post" ], function( i, method ) { +jQuery.each( [ "get", "post" ], function( _i, method ) { jQuery[ method ] = function( url, data, callback, type ) { // Shift arguments if data argument was omitted @@ -9590,8 +9853,17 @@ jQuery.each( [ "get", "post" ], function( i, method ) { }; } ); +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); -jQuery._evalUrl = function( url, options ) { + +jQuery._evalUrl = function( url, options, doc ) { return jQuery.ajax( { url: url, @@ -9609,7 +9881,7 @@ jQuery._evalUrl = function( url, options ) { "text script": function() {} }, dataFilter: function( response ) { - jQuery.globalEval( response, options ); + jQuery.globalEval( response, options, doc ); } } ); }; @@ -9931,7 +10203,7 @@ var oldCallbacks = [], jQuery.ajaxSetup( { jsonp: "callback", jsonpCallback: function() { - var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) ); this[ callback ] = true; return callback; } @@ -10148,23 +10420,6 @@ jQuery.fn.load = function( url, params, callback ) { -// Attach a bunch of functions for handling common AJAX events -jQuery.each( [ - "ajaxStart", - "ajaxStop", - "ajaxComplete", - "ajaxError", - "ajaxSuccess", - "ajaxSend" -], function( i, type ) { - jQuery.fn[ type ] = function( fn ) { - return this.on( type, fn ); - }; -} ); - - - - jQuery.expr.pseudos.animated = function( elem ) { return jQuery.grep( jQuery.timers, function( fn ) { return elem === fn.elem; @@ -10371,7 +10626,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 // getComputedStyle returns percent when specified for top/left/bottom/right; // rather than make the css module depend on the offset module, just check for it here -jQuery.each( [ "top", "left" ], function( i, prop ) { +jQuery.each( [ "top", "left" ], function( _i, prop ) { jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, function( elem, computed ) { if ( computed ) { @@ -10389,8 +10644,11 @@ jQuery.each( [ "top", "left" ], function( i, prop ) { // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, - function( defaultExtra, funcName ) { + jQuery.each( { + padding: "inner" + name, + content: type, + "": "outer" + name + }, function( defaultExtra, funcName ) { // Margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { @@ -10434,25 +10692,19 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { } ); -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.each( [ + "ajaxStart", + "ajaxStop", + "ajaxComplete", + "ajaxError", + "ajaxSuccess", + "ajaxSend" +], function( _i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); }; } ); -jQuery.fn.extend( { - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - } -} ); - @@ -10474,9 +10726,35 @@ jQuery.fn.extend( { return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); } } ); +jQuery.each( + ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( _i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + } +); + + + + +// Support: Android <=4.0 only +// Make sure we trim BOM and NBSP +var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + // Bind a function to a context, optionally partially applying any // arguments. // jQuery.proxy is deprecated to promote standards (specifically Function#bind) @@ -10539,6 +10817,11 @@ jQuery.isNumeric = function( obj ) { !isNaN( obj - parseFloat( obj ) ); }; +jQuery.trim = function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); +}; @@ -10587,7 +10870,7 @@ jQuery.noConflict = function( deep ) { // Expose jQuery and $ identifiers, even in AMD // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) // and CommonJS for browser emulators (#13566) -if ( !noGlobal ) { +if ( typeof noGlobal === "undefined" ) { window.jQuery = window.$ = jQuery; } diff --git a/app/bower_components/jquery/dist/jquery.min.js b/app/bower_components/jquery/dist/jquery.min.js index a1c07fd..c4c6022 100644 --- a/app/bower_components/jquery/dist/jquery.min.js +++ b/app/bower_components/jquery/dist/jquery.min.js @@ -1,2 +1,2 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","targets","l","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","object","flag","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","showHide","show","values","body","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","optgroup","tbody","tfoot","colgroup","caption","th","div","buildFragment","scripts","selection","ignored","wrap","attached","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","zoom","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","opt","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","bind","complete","timer","anim","*","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","parseInt","for","class","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","text script","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","hover","fnOver","fnOut","unbind","delegate","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery.min.js"} \ No newline at end of file +{"version":3,"sources":["jquery.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","getProto","Object","getPrototypeOf","slice","flat","array","call","concat","apply","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","support","isFunction","obj","nodeType","item","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","i","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","jQuery","selector","context","fn","init","isArrayLike","length","prototype","jquery","constructor","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","name","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","value","guid","Symbol","iterator","split","_i","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","testContext","scope","toSelector","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","_matchIndexes","lt","gt","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","targets","l","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","object","_","flag","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","showHide","show","values","body","hide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","create","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","swap","old","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","zoom","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","opt","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","bind","complete","timer","anim","*","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","for","class","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","text script","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","trim","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery.min.js"} \ No newline at end of file diff --git a/app/bower_components/jquery/dist/jquery.slim.js b/app/bower_components/jquery/dist/jquery.slim.js index aaabce8..665bf10 100644 --- a/app/bower_components/jquery/dist/jquery.slim.js +++ b/app/bower_components/jquery/dist/jquery.slim.js @@ -1,15 +1,15 @@ /*! - * jQuery JavaScript Library v3.4.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector + * jQuery JavaScript Library v3.6.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/Tween,-effects/animatedSelector * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright OpenJS Foundation and other contributors * Released under the MIT license * https://jquery.org/license * - * Date: 2019-05-01T21:04Z + * Date: 2021-03-02T17:08Z */ ( function( global, factory ) { @@ -47,13 +47,16 @@ var arr = []; -var document = window.document; - var getProto = Object.getPrototypeOf; var slice = arr.slice; -var concat = arr.concat; +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + var push = arr.push; @@ -73,12 +76,16 @@ var support = {}; var isFunction = function isFunction( obj ) { - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; var isWindow = function isWindow( obj ) { @@ -86,6 +93,8 @@ var isWindow = function isWindow( obj ) { }; +var document = window.document; + var preservedScriptAttributes = { @@ -142,7 +151,7 @@ function toType( obj ) { var - version = "3.4.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector", + version = "3.6.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/Tween,-effects/animatedSelector", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -150,11 +159,7 @@ var // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + }; jQuery.fn = jQuery.prototype = { @@ -220,6 +225,18 @@ jQuery.fn = jQuery.prototype = { return this.eq( -1 ); }, + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); @@ -353,9 +370,10 @@ jQuery.extend( { return true; }, - // Evaluates a script in a global context - globalEval: function( code, options ) { - DOMEval( code, { nonce: options && options.nonce } ); + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); }, each: function( obj, callback ) { @@ -379,13 +397,6 @@ jQuery.extend( { return obj; }, - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - // results is for internal usage only makeArray: function( arr, results ) { var ret = results || []; @@ -394,7 +405,7 @@ jQuery.extend( { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? - [ arr ] : arr + [ arr ] : arr ); } else { push.call( ret, arr ); @@ -472,7 +483,7 @@ jQuery.extend( { } // Flatten any nested arrays - return concat.apply( [], ret ); + return flat( ret ); }, // A global GUID counter for objects @@ -489,9 +500,9 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); function isArrayLike( obj ) { @@ -511,17 +522,16 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.4 + * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2019-04-08 + * Date: 2021-02-16 */ -(function( window ) { - +( function( window ) { var i, support, Expr, @@ -561,59 +571,70 @@ var i, }, // Instance methods - hasOwn = ({}).hasOwnProperty, + hasOwn = ( {} ).hasOwnProperty, arr = [], pop = arr.pop, - push_native = arr.push, + pushNative = arr.push, push = arr.push, slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native // https://jsperf.com/thor-indexof-vs-for/5 indexOf = function( list, elem ) { var i = 0, len = list.length; for ( ; i < len; i++ ) { - if ( list[i] === elem ) { + if ( list[ i ] === elem ) { return i; } } return -1; }, - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", // Regular expressions // http://www.w3.org/TR/css3-selectors/#whitespace whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: // 1. quoted (capture 3; capture 4 or capture 5) "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) ".*" + ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), rdescend = new RegExp( whitespace + "|>" ), rpseudo = new RegExp( pseudos ), @@ -625,14 +646,16 @@ var i, "TAG": new RegExp( "^(" + identifier + "|[*])" ), "ATTR": new RegExp( "^" + attributes ), "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) }, rhtml = /HTML$/i, @@ -648,18 +671,21 @@ var i, // CSS escapes // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair high < 0 ? - // BMP codepoint String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); }, @@ -675,7 +701,8 @@ var i, } // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; } // Other potentially-special ASCII characters get backslash-escaped @@ -700,18 +727,20 @@ var i, // Optimize for push.apply( _, NodeList ) try { push.apply( - (arr = slice.call( preferredDoc.childNodes )), + ( arr = slice.call( preferredDoc.childNodes ) ), preferredDoc.childNodes ); + // Support: Android<4.0 // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions arr[ preferredDoc.childNodes.length ].nodeType; } catch ( e ) { push = { apply: arr.length ? // Leverage slice if possible function( target, els ) { - push_native.apply( target, slice.call(els) ); + pushNative.apply( target, slice.call( els ) ); } : // Support: IE<9 @@ -719,8 +748,9 @@ try { function( target, els ) { var j = target.length, i = 0; + // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} + while ( ( target[ j++ ] = els[ i++ ] ) ) {} target.length = j - 1; } }; @@ -744,24 +774,21 @@ function Sizzle( selector, context, results, seed ) { // Try to shortcut find operations (as opposed to filters) in HTML documents if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } + setDocument( context ); context = context || document; if ( documentIsHTML ) { // If the selector is sufficiently simple, try using a "get*By*" DOM method // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { // ID selector - if ( (m = match[1]) ) { + if ( ( m = match[ 1 ] ) ) { // Document context if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { + if ( ( elem = context.getElementById( m ) ) ) { // Support: IE, Opera, Webkit // TODO: identify versions @@ -780,7 +807,7 @@ function Sizzle( selector, context, results, seed ) { // Support: IE, Opera, Webkit // TODO: identify versions // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && + if ( newContext && ( elem = newContext.getElementById( m ) ) && contains( context, elem ) && elem.id === m ) { @@ -790,12 +817,12 @@ function Sizzle( selector, context, results, seed ) { } // Type selector - } else if ( match[2] ) { + } else if ( match[ 2 ] ) { push.apply( results, context.getElementsByTagName( selector ) ); return results; // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && context.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); @@ -806,11 +833,11 @@ function Sizzle( selector, context, results, seed ) { // Take advantage of querySelectorAll if ( support.qsa && !nonnativeSelectorCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && // Support: IE 8 only // Exclude object elements - (nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) { + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { newSelector = selector; newContext = context; @@ -819,27 +846,36 @@ function Sizzle( selector, context, results, seed ) { // descendant combinators, which is not what we want. // In such cases, we work around the behavior by prefixing every selector in the // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && rdescend.test( selector ) ) { + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { - // 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) ); + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } } // Prefix every selector in the list groups = tokenize( selector ); i = groups.length; while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); } newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; } try { @@ -872,12 +908,14 @@ function createCache() { var keys = []; function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries delete cache[ keys.shift() ]; } - return (cache[ key + " " ] = value); + return ( cache[ key + " " ] = value ); } return cache; } @@ -896,17 +934,19 @@ function markFunction( fn ) { * @param {Function} fn Passed the created element and returns a boolean result */ function assert( fn ) { - var el = document.createElement("fieldset"); + var el = document.createElement( "fieldset" ); try { return !!fn( el ); - } catch (e) { + } catch ( e ) { return false; } finally { + // Remove from its parent by default if ( el.parentNode ) { el.parentNode.removeChild( el ); } + // release memory in IE el = null; } @@ -918,11 +958,11 @@ function assert( fn ) { * @param {Function} handler The method that will be applied */ function addHandle( attrs, handler ) { - var arr = attrs.split("|"), + var arr = attrs.split( "|" ), i = arr.length; while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; + Expr.attrHandle[ arr[ i ] ] = handler; } } @@ -944,7 +984,7 @@ function siblingCheck( a, b ) { // Check if b follows a if ( cur ) { - while ( (cur = cur.nextSibling) ) { + while ( ( cur = cur.nextSibling ) ) { if ( cur === b ) { return -1; } @@ -972,7 +1012,7 @@ function createInputPseudo( type ) { function createButtonPseudo( type ) { return function( elem ) { var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; + return ( name === "input" || name === "button" ) && elem.type === type; }; } @@ -1015,7 +1055,7 @@ function createDisabledPseudo( disabled ) { // Where there is no isDisabled, check manually /* jshint -W018 */ elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; + inDisabledFieldset( elem ) === disabled; } return elem.disabled === disabled; @@ -1037,21 +1077,21 @@ function createDisabledPseudo( disabled ) { * @param {Function} fn */ function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { + return markFunction( function( argument ) { argument = +argument; - return markFunction(function( seed, matches ) { + return markFunction( function( seed, matches ) { var j, matchIndexes = fn( [], seed.length, argument ), i = matchIndexes.length; // Match elements found at the specified indexes while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); } } - }); - }); + } ); + } ); } /** @@ -1072,8 +1112,8 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = (elem.ownerDocument || elem).documentElement; + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -1091,7 +1131,11 @@ setDocument = Sizzle.setDocument = function( node ) { doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { return document; } @@ -1100,10 +1144,14 @@ setDocument = Sizzle.setDocument = function( node ) { docElem = document.documentElement; documentIsHTML = !isXML( document ); - // Support: IE 9-11, Edge + // Support: IE 9 - 11+, Edge 12 - 18+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { // Support: IE 11, Edge if ( subWindow.addEventListener ) { @@ -1115,25 +1163,36 @@ setDocument = Sizzle.setDocument = function( node ) { } } + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 // Verify that getAttribute really returns attributes and not properties // (excepting IE8 booleans) - support.attributes = assert(function( el ) { + support.attributes = assert( function( el ) { el.className = "i"; - return !el.getAttribute("className"); - }); + return !el.getAttribute( "className" ); + } ); /* getElement(s)By* ---------------------------------------------------------------------- */ // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; - }); + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); // Support: IE<9 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); @@ -1142,38 +1201,38 @@ setDocument = Sizzle.setDocument = function( node ) { // Check if getElementById returns elements by name // The broken getElementById methods don't pick up programmatically-set names, // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { + support.getById = assert( function( el ) { docElem.appendChild( el ).id = expando; return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); + } ); // ID filter and find if ( support.getById ) { - Expr.filter["ID"] = function( id ) { + Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { - return elem.getAttribute("id") === attrId; + return elem.getAttribute( "id" ) === attrId; }; }; - Expr.find["ID"] = function( id, context ) { + Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var elem = context.getElementById( id ); return elem ? [ elem ] : []; } }; } else { - Expr.filter["ID"] = function( id ) { + Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); + elem.getAttributeNode( "id" ); return node && node.value === attrId; }; }; // Support: IE 6 - 7 only // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { + Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var node, i, elems, elem = context.getElementById( id ); @@ -1181,7 +1240,7 @@ setDocument = Sizzle.setDocument = function( node ) { if ( elem ) { // Verify the id attribute - node = elem.getAttributeNode("id"); + node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } @@ -1189,8 +1248,8 @@ setDocument = Sizzle.setDocument = function( node ) { // Fall back on getElementsByName elems = context.getElementsByName( id ); i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } @@ -1203,7 +1262,7 @@ setDocument = Sizzle.setDocument = function( node ) { } // Tag - Expr.find["TAG"] = support.getElementsByTagName ? + Expr.find[ "TAG" ] = support.getElementsByTagName ? function( tag, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); @@ -1218,12 +1277,13 @@ setDocument = Sizzle.setDocument = function( node ) { var elem, tmp = [], i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments if ( tag === "*" ) { - while ( (elem = results[i++]) ) { + while ( ( elem = results[ i++ ] ) ) { if ( elem.nodeType === 1 ) { tmp.push( elem ); } @@ -1235,7 +1295,7 @@ setDocument = Sizzle.setDocument = function( node ) { }; // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { return context.getElementsByClassName( className ); } @@ -1256,10 +1316,14 @@ setDocument = Sizzle.setDocument = function( node ) { // See https://bugs.jquery.com/ticket/13378 rbuggyQSA = []; - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + // Build QSA regex // Regex strategy adopted from Diego Perini - assert(function( el ) { + assert( function( el ) { + + var input; + // Select is set to empty string on purpose // This is to test IE's treatment of not explicitly // setting a boolean content attribute, @@ -1273,78 +1337,98 @@ setDocument = Sizzle.setDocument = function( node ) { // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // Support: IE8 // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { + if ( !el.querySelectorAll( "[selected]" ).length ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); } // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); } // Support: Safari 8+, iOS 8+ // https://bugs.webkit.org/show_bug.cgi?id=136851 // In-page `selector#id sibling-combinator selector` fails if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); + rbuggyQSA.push( ".#.+[+~]" ); } - }); - assert(function( el ) { + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { el.innerHTML = "" + ""; // Support: Windows 8 Native Apps // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); + var input = document.createElement( "input" ); input.setAttribute( "type", "hidden" ); el.appendChild( input ).setAttribute( "name", "D" ); // Support: IE8 // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { + if ( el.querySelectorAll( "[name=d]" ).length ) { rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Support: IE9-11+ // IE's :disabled selector does not pick up the children of disabled fieldsets docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } + // Support: Opera 10 - 11 only // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); } - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { - assert(function( el ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9) support.disconnectedMatch = matches.call( el, "*" ); @@ -1353,11 +1437,11 @@ setDocument = Sizzle.setDocument = function( node ) { // Gecko does not error, returns false instead matches.call( el, "[s!='']:x" ); rbuggyMatches.push( "!=", pseudos ); - }); + } ); } - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); /* Contains ---------------------------------------------------------------------- */ @@ -1374,11 +1458,11 @@ setDocument = Sizzle.setDocument = function( node ) { adown.contains ? adown.contains( bup ) : a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); + ) ); } : function( a, b ) { if ( b ) { - while ( (b = b.parentNode) ) { + while ( ( b = b.parentNode ) ) { if ( b === a ) { return true; } @@ -1407,7 +1491,11 @@ setDocument = Sizzle.setDocument = function( node ) { } // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? a.compareDocumentPosition( b ) : // Otherwise we know they are disconnected @@ -1415,13 +1503,24 @@ setDocument = Sizzle.setDocument = function( node ) { // Disconnected nodes if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { return -1; } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { return 1; } @@ -1434,6 +1533,7 @@ setDocument = Sizzle.setDocument = function( node ) { return compare & 4 ? -1 : 1; } : function( a, b ) { + // Exit early if the nodes are identical if ( a === b ) { hasDuplicate = true; @@ -1449,8 +1549,14 @@ setDocument = Sizzle.setDocument = function( node ) { // Parentless nodes are either documents or disconnected if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ aup ? -1 : bup ? 1 : sortInput ? @@ -1464,26 +1570,32 @@ setDocument = Sizzle.setDocument = function( node ) { // Otherwise we need full lists of their ancestors for comparison cur = a; - while ( (cur = cur.parentNode) ) { + while ( ( cur = cur.parentNode ) ) { ap.unshift( cur ); } cur = b; - while ( (cur = cur.parentNode) ) { + while ( ( cur = cur.parentNode ) ) { bp.unshift( cur ); } // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { + while ( ap[ i ] === bp[ i ] ) { i++; } return i ? + // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : + siblingCheck( ap[ i ], bp[ i ] ) : // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ 0; }; @@ -1495,10 +1607,7 @@ Sizzle.matches = function( expr, elements ) { }; Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } + setDocument( elem ); if ( support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[ expr + " " ] && @@ -1510,12 +1619,13 @@ Sizzle.matchesSelector = function( elem, expr ) { // IE 9's matchesSelector returns false on disconnected nodes if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch (e) { + } catch ( e ) { nonnativeSelectorCache( expr, true ); } } @@ -1524,20 +1634,31 @@ Sizzle.matchesSelector = function( elem, expr ) { }; Sizzle.contains = function( context, elem ) { + // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { setDocument( context ); } return contains( context, elem ); }; Sizzle.attr = function( elem, name ) { + // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { setDocument( elem ); } var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? fn( elem, name, !documentIsHTML ) : @@ -1547,13 +1668,13 @@ Sizzle.attr = function( elem, name ) { val : support.attributes || !documentIsHTML ? elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? + ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : null; }; Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); + return ( sel + "" ).replace( rcssescape, fcssescape ); }; Sizzle.error = function( msg ) { @@ -1576,7 +1697,7 @@ Sizzle.uniqueSort = function( results ) { results.sort( sortOrder ); if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { + while ( ( elem = results[ i++ ] ) ) { if ( elem === results[ i ] ) { j = duplicates.push( i ); } @@ -1604,17 +1725,21 @@ getText = Sizzle.getText = function( elem ) { nodeType = elem.nodeType; if ( !nodeType ) { + // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { + while ( ( node = elem[ i++ ] ) ) { + // Do not traverse comment nodes ret += getText( node ); } } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements // innerText usage removed for consistency of new lines (jQuery #11153) if ( typeof elem.textContent === "string" ) { return elem.textContent; } else { + // Traverse its children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { ret += getText( elem ); @@ -1623,6 +1748,7 @@ getText = Sizzle.getText = function( elem ) { } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } + // Do not include comment or processing instruction nodes return ret; @@ -1650,19 +1776,21 @@ Expr = Sizzle.selectors = { preFilter: { "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; } return match.slice( 0, 4 ); }, "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] 1 type (only|nth|...) 2 what (child|of-type) @@ -1673,22 +1801,25 @@ Expr = Sizzle.selectors = { 7 sign of y-component 8 y of y-component */ - match[1] = match[1].toLowerCase(); + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { - if ( match[1].slice( 0, 3 ) === "nth" ) { // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); } // numeric x and y parameters for Expr.filter.CHILD // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); } return match; @@ -1696,26 +1827,28 @@ Expr = Sizzle.selectors = { "PSEUDO": function( match ) { var excess, - unquoted = !match[6] && match[2]; + unquoted = !match[ 6 ] && match[ 2 ]; - if ( matchExpr["CHILD"].test( match[0] ) ) { + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { return null; } // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; // Strip excess characters from unquoted arguments } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && + ( excess = tokenize( unquoted, true ) ) && + // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); } // Return only captures needed by the pseudo filter method (type and argument) @@ -1728,7 +1861,9 @@ Expr = Sizzle.selectors = { "TAG": function( nodeNameSelector ) { var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); return nodeNameSelector === "*" ? - function() { return true; } : + function() { + return true; + } : function( elem ) { return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; }; @@ -1738,10 +1873,16 @@ Expr = Sizzle.selectors = { var pattern = classCache[ className + " " ]; return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); }, "ATTR": function( name, operator, check ) { @@ -1757,6 +1898,8 @@ Expr = Sizzle.selectors = { result += ""; + /* eslint-disable max-len */ + return operator === "=" ? result === check : operator === "!=" ? result !== check : operator === "^=" ? check && result.indexOf( check ) === 0 : @@ -1765,10 +1908,12 @@ Expr = Sizzle.selectors = { operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; + /* eslint-enable max-len */ + }; }, - "CHILD": function( type, what, argument, first, last ) { + "CHILD": function( type, what, _argument, first, last ) { var simple = type.slice( 0, 3 ) !== "nth", forward = type.slice( -4 ) !== "last", ofType = what === "of-type"; @@ -1780,7 +1925,7 @@ Expr = Sizzle.selectors = { return !!elem.parentNode; } : - function( elem, context, xml ) { + function( elem, _context, xml ) { var cache, uniqueCache, outerCache, node, nodeIndex, start, dir = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, @@ -1794,7 +1939,7 @@ Expr = Sizzle.selectors = { if ( simple ) { while ( dir ) { node = elem; - while ( (node = node[ dir ]) ) { + while ( ( node = node[ dir ] ) ) { if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { @@ -1802,6 +1947,7 @@ Expr = Sizzle.selectors = { return false; } } + // Reverse direction for :only-* (if we haven't yet done so) start = dir = type === "only" && !start && "nextSibling"; } @@ -1817,22 +1963,22 @@ Expr = Sizzle.selectors = { // ...in a gzip-friendly way node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; diff = nodeIndex && cache[ 2 ]; node = nodeIndex && parent.childNodes[ nodeIndex ]; - while ( (node = ++nodeIndex && node && node[ dir ] || + while ( ( node = ++nodeIndex && node && node[ dir ] || // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { + ( diff = nodeIndex = 0 ) || start.pop() ) ) { // When found, cache indexes on `parent` and break if ( node.nodeType === 1 && ++diff && node === elem ) { @@ -1842,16 +1988,18 @@ Expr = Sizzle.selectors = { } } else { + // Use previously-cached element index if available if ( useCache ) { + // ...in a gzip-friendly way node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; @@ -1861,9 +2009,10 @@ Expr = Sizzle.selectors = { // xml :nth-child(...) // or :nth-last-child(...) or :nth(-last)?-of-type(...) if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { if ( ( ofType ? node.nodeName.toLowerCase() === name : @@ -1872,12 +2021,13 @@ Expr = Sizzle.selectors = { // Cache the index of each encountered element if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || + ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); uniqueCache[ type ] = [ dirruns, diff ]; } @@ -1898,6 +2048,7 @@ Expr = Sizzle.selectors = { }, "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive // http://www.w3.org/TR/selectors/#pseudo-classes // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters @@ -1917,15 +2068,15 @@ Expr = Sizzle.selectors = { if ( fn.length > 1 ) { args = [ pseudo, pseudo, "", argument ]; return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { + markFunction( function( seed, matches ) { var idx, matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); } - }) : + } ) : function( elem ) { return fn( elem, 0, args ); }; @@ -1936,8 +2087,10 @@ Expr = Sizzle.selectors = { }, pseudos: { + // Potentially complex pseudos - "not": markFunction(function( selector ) { + "not": markFunction( function( selector ) { + // Trim the selector passed to compile // to avoid treating leading and trailing // spaces as combinators @@ -1946,39 +2099,40 @@ Expr = Sizzle.selectors = { matcher = compile( selector.replace( rtrim, "$1" ) ); return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { + markFunction( function( seed, matches, _context, xml ) { var elem, unmatched = matcher( seed, null, xml, [] ), i = seed.length; // Match elements unmatched by `matcher` while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); } } - }) : - function( elem, context, xml ) { - input[0] = elem; + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; matcher( input, null, xml, results ); + // Don't keep the element (issue #299) - input[0] = null; + input[ 0 ] = null; return !results.pop(); }; - }), + } ), - "has": markFunction(function( selector ) { + "has": markFunction( function( selector ) { return function( elem ) { return Sizzle( selector, elem ).length > 0; }; - }), + } ), - "contains": markFunction(function( text ) { + "contains": markFunction( function( text ) { text = text.replace( runescape, funescape ); return function( elem ) { return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; }; - }), + } ), // "Whether an element is represented by a :lang() selector // is based solely on the element's language value @@ -1988,25 +2142,26 @@ Expr = Sizzle.selectors = { // The identifier C does not have to be a valid language name." // http://www.w3.org/TR/selectors/#lang-pseudo "lang": markFunction( function( lang ) { + // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { + if ( !ridentifier.test( lang || "" ) ) { Sizzle.error( "unsupported lang: " + lang ); } lang = lang.replace( runescape, funescape ).toLowerCase(); return function( elem ) { var elemLang; do { - if ( (elemLang = documentIsHTML ? + if ( ( elemLang = documentIsHTML ? elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { elemLang = elemLang.toLowerCase(); return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); return false; }; - }), + } ), // Miscellaneous "target": function( elem ) { @@ -2019,7 +2174,9 @@ Expr = Sizzle.selectors = { }, "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); }, // Boolean properties @@ -2027,16 +2184,20 @@ Expr = Sizzle.selectors = { "disabled": createDisabledPseudo( true ), "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); }, "selected": function( elem ) { + // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions elem.parentNode.selectedIndex; } @@ -2045,6 +2206,7 @@ Expr = Sizzle.selectors = { // Contents "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), // but not by others (comment: 8; processing instruction: 7; etc.) @@ -2058,7 +2220,7 @@ Expr = Sizzle.selectors = { }, "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); + return !Expr.pseudos[ "empty" ]( elem ); }, // Element/input types @@ -2082,39 +2244,40 @@ Expr = Sizzle.selectors = { // Support: IE<8 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); }, // Position-in-collection - "first": createPositionalPseudo(function() { + "first": createPositionalPseudo( function() { return [ 0 ]; - }), + } ), - "last": createPositionalPseudo(function( matchIndexes, length ) { + "last": createPositionalPseudo( function( _matchIndexes, length ) { return [ length - 1 ]; - }), + } ), - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { return [ argument < 0 ? argument + length : argument ]; - }), + } ), - "even": createPositionalPseudo(function( matchIndexes, length ) { + "even": createPositionalPseudo( function( matchIndexes, length ) { var i = 0; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "odd": createPositionalPseudo(function( matchIndexes, length ) { + "odd": createPositionalPseudo( function( matchIndexes, length ) { var i = 1; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument > length ? @@ -2124,19 +2287,19 @@ Expr = Sizzle.selectors = { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument; for ( ; ++i < length; ) { matchIndexes.push( i ); } return matchIndexes; - }) + } ) } }; -Expr.pseudos["nth"] = Expr.pseudos["eq"]; +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; // Add button/input type pseudos for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { @@ -2167,37 +2330,39 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { while ( soFar ) { // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { if ( match ) { + // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; + soFar = soFar.slice( match[ 0 ].length ) || soFar; } - groups.push( (tokens = []) ); + groups.push( ( tokens = [] ) ); } matched = false; // Combinators - if ( (match = rcombinators.exec( soFar )) ) { + if ( ( match = rcombinators.exec( soFar ) ) ) { matched = match.shift(); - tokens.push({ + tokens.push( { value: matched, + // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); + type: match[ 0 ].replace( rtrim, " " ) + } ); soFar = soFar.slice( matched.length ); } // Filters for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { matched = match.shift(); - tokens.push({ + tokens.push( { value: matched, type: type, matches: match - }); + } ); soFar = soFar.slice( matched.length ); } } @@ -2214,6 +2379,7 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { soFar.length : soFar ? Sizzle.error( selector ) : + // Cache the tokens tokenCache( selector, groups ).slice( 0 ); }; @@ -2223,7 +2389,7 @@ function toSelector( tokens ) { len = tokens.length, selector = ""; for ( ; i < len; i++ ) { - selector += tokens[i].value; + selector += tokens[ i ].value; } return selector; } @@ -2236,9 +2402,10 @@ function addCombinator( matcher, combinator, base ) { doneName = done++; return combinator.first ? + // Check against closest ancestor/preceding element function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { return matcher( elem, context, xml ); } @@ -2253,7 +2420,7 @@ function addCombinator( matcher, combinator, base ) { // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching if ( xml ) { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { if ( matcher( elem, context, xml ) ) { return true; @@ -2261,27 +2428,29 @@ function addCombinator( matcher, combinator, base ) { } } } else { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); if ( skip && skip === elem.nodeName.toLowerCase() ) { elem = elem[ dir ] || elem; - } else if ( (oldCache = uniqueCache[ key ]) && + } else if ( ( oldCache = uniqueCache[ key ] ) && oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); + return ( newCache[ 2 ] = oldCache[ 2 ] ); } else { + // Reuse newcache so results back-propagate to previous elements uniqueCache[ key ] = newCache; // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { return true; } } @@ -2297,20 +2466,20 @@ function elementMatcher( matchers ) { function( elem, context, xml ) { var i = matchers.length; while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { + if ( !matchers[ i ]( elem, context, xml ) ) { return false; } } return true; } : - matchers[0]; + matchers[ 0 ]; } function multipleContexts( selector, contexts, results ) { var i = 0, len = contexts.length; for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); + Sizzle( selector, contexts[ i ], results ); } return results; } @@ -2323,7 +2492,7 @@ function condense( unmatched, map, filter, context, xml ) { mapped = map != null; for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { + if ( ( elem = unmatched[ i ] ) ) { if ( !filter || filter( elem, context, xml ) ) { newUnmatched.push( elem ); if ( mapped ) { @@ -2343,14 +2512,18 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( postFinder && !postFinder[ expando ] ) { postFinder = setMatcher( postFinder, postSelector ); } - return markFunction(function( seed, results, context, xml ) { + return markFunction( function( seed, results, context, xml ) { var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), // Prefilter to get matcher input, preserving a map for seed-results synchronization matcherIn = preFilter && ( seed || !selector ) ? @@ -2358,6 +2531,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS elems, matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, postFinder || ( seed ? preFilter : preexisting || postFilter ) ? @@ -2381,8 +2555,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS // Un-match failing elements by moving them back to matcherIn i = temp.length; while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); } } } @@ -2390,25 +2564,27 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( seed ) { if ( postFinder || preFilter ) { if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts temp = []; i = matcherOut.length; while ( i-- ) { - if ( (elem = matcherOut[i]) ) { + if ( ( elem = matcherOut[ i ] ) ) { + // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); + temp.push( ( matcherIn[ i ] = elem ) ); } } - postFinder( null, (matcherOut = []), temp, xml ); + postFinder( null, ( matcherOut = [] ), temp, xml ); } // Move matched elements from seed to results to keep them synchronized i = matcherOut.length; while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { - seed[temp] = !(results[temp] = elem); + seed[ temp ] = !( results[ temp ] = elem ); } } } @@ -2426,14 +2602,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS push.apply( results, matcherOut ); } } - }); + } ); } function matcherFromTokens( tokens ) { var checkContext, matcher, j, len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], i = leadingRelative ? 1 : 0, // The foundational matcher ensures that elements are reachable from top-level context(s) @@ -2445,38 +2621,43 @@ function matcherFromTokens( tokens ) { }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? + ( checkContext = context ).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) checkContext = null; return ret; } ]; for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); // Return special upon seeing a positional matcher if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling j = ++i; for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { + if ( Expr.relative[ tokens[ j ].type ] ) { break; } } return setMatcher( i > 1 && elementMatcher( matchers ), i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) ).replace( rtrim, "$1" ), matcher, i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), j < len && toSelector( tokens ) ); } @@ -2497,28 +2678,40 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { unmatched = seed && [], setMatched = [], contextBackup = outermostContext, + // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), len = elems.length; if ( outermost ) { - outermostContext = context === document || context || outermost; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; } // Add elements passing elementMatchers directly to results // Support: IE<9, Safari // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { if ( byElement && elem ) { j = 0; - if ( !context && elem.ownerDocument !== document ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { setDocument( elem ); xml = !documentIsHTML; } - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { results.push( elem ); break; } @@ -2530,8 +2723,9 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // Track unmatched elements for set filters if ( bySet ) { + // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { + if ( ( elem = !matcher && elem ) ) { matchedCount--; } @@ -2555,16 +2749,17 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // numerically zero. if ( bySet && i !== matchedCount ) { j = 0; - while ( (matcher = setMatchers[j++]) ) { + while ( ( matcher = setMatchers[ j++ ] ) ) { matcher( unmatched, setMatched, context, xml ); } if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting if ( matchedCount > 0 ) { while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); } } } @@ -2605,13 +2800,14 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { cached = compilerCache[ selector + " " ]; if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element if ( !match ) { match = tokenize( selector ); } i = match.length; while ( i-- ) { - cached = matcherFromTokens( match[i] ); + cached = matcherFromTokens( match[ i ] ); if ( cached[ expando ] ) { setMatchers.push( cached ); } else { @@ -2620,7 +2816,10 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { } // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); // Save selector and tokenization cached.selector = selector; @@ -2640,7 +2839,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { select = Sizzle.select = function( selector, context, results, seed ) { var i, tokens, token, type, find, compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); results = results || []; @@ -2649,11 +2848,12 @@ select = Sizzle.select = function( selector, context, results, seed ) { if ( match.length === 1 ) { // Reduce context if the leading compound selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; if ( !context ) { return results; @@ -2666,20 +2866,22 @@ select = Sizzle.select = function( selector, context, results, seed ) { } // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; while ( i-- ) { - token = tokens[i]; + token = tokens[ i ]; // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { + if ( Expr.relative[ ( type = token.type ) ] ) { break; } - if ( (find = Expr.find[ type ]) ) { + if ( ( find = Expr.find[ type ] ) ) { + // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { // If seed is empty or no tokens remain, we can return early tokens.splice( i, 1 ); @@ -2710,7 +2912,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { // One-time assignments // Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; // Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function @@ -2721,58 +2923,59 @@ setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) // Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( el ) { +support.sortDetached = assert( function( el ) { + // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; -}); + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); // Support: IE<8 // Prevent attribute/property "interpolation" // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( el ) { +if ( !assert( function( el ) { el.innerHTML = ""; - return el.firstChild.getAttribute("href") === "#" ; -}) ) { + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { addHandle( "type|href|height|width", function( elem, name, isXML ) { if ( !isXML ) { return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); } - }); + } ); } // Support: IE<9 // Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( el ) { +if ( !support.attributes || !assert( function( el ) { el.innerHTML = ""; el.firstChild.setAttribute( "value", "" ); return el.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { return elem.defaultValue; } - }); + } ); } // Support: IE<9 // Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; -}) ) { +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { addHandle( booleans, function( elem, name, isXML ) { var val; if ( !isXML ) { return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? + ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : - null; + null; } - }); + } ); } return Sizzle; -})( window ); +} )( window ); @@ -2825,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext; function nodeName( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); -}; +} var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); @@ -3141,7 +3344,7 @@ jQuery.each( { parents: function( elem ) { return dir( elem, "parentNode" ); }, - parentsUntil: function( elem, i, until ) { + parentsUntil: function( elem, _i, until ) { return dir( elem, "parentNode", until ); }, next: function( elem ) { @@ -3156,10 +3359,10 @@ jQuery.each( { prevAll: function( elem ) { return dir( elem, "previousSibling" ); }, - nextUntil: function( elem, i, until ) { + nextUntil: function( elem, _i, until ) { return dir( elem, "nextSibling", until ); }, - prevUntil: function( elem, i, until ) { + prevUntil: function( elem, _i, until ) { return dir( elem, "previousSibling", until ); }, siblings: function( elem ) { @@ -3169,7 +3372,13 @@ jQuery.each( { return siblings( elem.firstChild ); }, contents: function( elem ) { - if ( typeof elem.contentDocument !== "undefined" ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + return elem.contentDocument; } @@ -3512,7 +3721,7 @@ jQuery.extend( { var fns = arguments; return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { + jQuery.each( tuples, function( _i, tuple ) { // Map tuples (progress, done, fail) to arguments (done, fail, progress) var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; @@ -3792,8 +4001,8 @@ jQuery.extend( { resolveContexts = Array( i ), resolveValues = slice.call( arguments ), - // the master Deferred - master = jQuery.Deferred(), + // the primary Deferred + primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { @@ -3801,30 +4010,30 @@ jQuery.extend( { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || + if ( primary.state() === "pending" || isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - return master.then(); + return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } - return master.promise(); + return primary.promise(); } } ); @@ -3965,7 +4174,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { // ...except when executing function values } else { bulk = fn; - fn = function( elem, key, value ) { + fn = function( elem, _key, value ) { return bulk.call( jQuery( elem ), value ); }; } @@ -3975,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } @@ -4000,7 +4209,7 @@ var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace() -function fcamelCase( all, letter ) { +function fcamelCase( _all, letter ) { return letter.toUpperCase(); } @@ -4528,27 +4737,6 @@ var isHiddenWithinTree = function( elem, el ) { 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 ) { @@ -4719,11 +4907,40 @@ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); -// We have to close these tags to support XHTML (#13200) -var wrapMap = { +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#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; // Support: IE <=9 only - option: [ 1, "" ], + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { // XHTML parsers do not magically insert elements in the // same way that tag soup parsers do. So we cannot shorten @@ -4736,12 +4953,14 @@ var wrapMap = { _default: [ 0, "", "" ] }; -// Support: IE <=9 only -wrapMap.optgroup = wrapMap.option; - wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + function getAll( context, tag ) { @@ -4874,36 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -} )(); - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; @@ -5008,8 +5198,8 @@ jQuery.event = { special, handlers, type, namespaces, origType, elemData = dataPriv.get( elem ); - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { return; } @@ -5033,7 +5223,7 @@ jQuery.event = { // Init the element's event structure and main handler, if this is the first if ( !( events = elemData.events ) ) { - events = elemData.events = {}; + events = elemData.events = Object.create( null ); } if ( !( eventHandle = elemData.handle ) ) { eventHandle = elemData.handle = function( e ) { @@ -5191,12 +5381,15 @@ jQuery.event = { dispatch: function( nativeEvent ) { - // Make a writable jQuery.Event from the native event object - var event = jQuery.event.fix( nativeEvent ); - var i, j, ret, matched, handleObj, handlerQueue, args = new Array( arguments.length ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5320,12 +5513,12 @@ jQuery.event = { get: isFunction( hook ) ? function() { if ( this.originalEvent ) { - return hook( this.originalEvent ); + return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { - return this.originalEvent[ name ]; + return this.originalEvent[ name ]; } }, @@ -5464,7 +5657,13 @@ function leverageNative( el, type, expectSync ) { // Cancel the outer synthetic event event.stopImmediatePropagation(); event.preventDefault(); - return result.value; + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; } // If this is an inner synthetic event for an event with a bubbling surrogate @@ -5629,34 +5828,7 @@ jQuery.each( { 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; - } + which: true }, jQuery.event.addProp ); jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { @@ -5682,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp return true; }, + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + delegateType: delegateType }; } ); @@ -5771,13 +5949,6 @@ jQuery.fn.extend( { var - /* eslint-disable max-len */ - - // See https://github.com/eslint/eslint/issues/3229 - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, - - /* eslint-enable */ - // Support: IE <=10 - 11, Edge 12 - 13 only // In IE/Edge using regex groups here causes severe slowdowns. // See https://connect.microsoft.com/IE/feedback/details/1736512/ @@ -5814,7 +5985,7 @@ function restoreScript( elem ) { } function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + var i, l, type, pdataOld, udataOld, udataCur, events; if ( dest.nodeType !== 1 ) { return; @@ -5822,13 +5993,11 @@ function cloneCopyEvent( src, dest ) { // 1. Copy private data: events, handlers, etc. if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); + pdataOld = dataPriv.get( src ); events = pdataOld.events; if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; + dataPriv.remove( dest, "handle events" ); for ( type in events ) { for ( i = 0, l = events[ type ].length; i < l; i++ ) { @@ -5864,7 +6033,7 @@ function fixInput( src, dest ) { function domManip( collection, args, callback, ignored ) { // Flatten any nested arrays - args = concat.apply( [], args ); + args = flat( args ); var fragment, first, scripts, hasScripts, node, doc, i = 0, @@ -5939,7 +6108,7 @@ function domManip( collection, args, callback, ignored ) { if ( jQuery._evalUrl && !node.noModule ) { jQuery._evalUrl( node.src, { nonce: node.nonce || node.getAttribute( "nonce" ) - } ); + }, doc ); } } else { DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); @@ -5976,7 +6145,7 @@ function remove( elem, selector, keepData ) { jQuery.extend( { htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1>" ); + return html; }, clone: function( elem, dataAndEvents, deepDataAndEvents ) { @@ -6238,6 +6407,27 @@ var getStyles = function( elem ) { return view.getComputedStyle( elem ); }; +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); @@ -6295,7 +6485,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); } var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableMarginLeftVal, + reliableTrDimensionsVal, reliableMarginLeftVal, container = document.createElement( "div" ), div = document.createElement( "div" ); @@ -6330,6 +6520,54 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); scrollboxSize: function() { computeStyleTests(); return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. + tr.style.height = "1px"; + trChild.style.height = "9px"; + + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; } } ); } )(); @@ -6454,7 +6692,7 @@ var fontWeight: "400" }; -function setPositiveNumber( elem, value, subtract ) { +function setPositiveNumber( _elem, value, subtract ) { // Any relative (+/-) values have already been // normalized at this point @@ -6559,17 +6797,26 @@ function getWidthOrHeight( elem, dimension, extra ) { } - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - // Support: IE 9-11 only - // Also use offsetWidth/offsetHeight for when box sizing is unreliable - // We use getClientRects() to check for hidden/disconnected. - // In those cases, the computed value can be trusted to be border-box + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected elem.getClientRects().length ) { isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; @@ -6764,7 +7011,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "height", "width" ], function( i, dimension ) { +jQuery.each( [ "height", "width" ], function( _i, dimension ) { jQuery.cssHooks[ dimension ] = { get: function( elem, computed, extra ) { if ( computed ) { @@ -6780,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( i, dimension ) { // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); } }, @@ -6842,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) - ) + "px"; + ) + "px"; } } ); @@ -7048,7 +7295,7 @@ boolHook = { } }; -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { var getter = attrHandle[ name ] || jQuery.find.attr; attrHandle[ name ] = function( elem, name, isXML ) { @@ -7366,8 +7613,8 @@ jQuery.fn.extend( { if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" + "" : + dataPriv.get( this, "__className__" ) || "" ); } } @@ -7382,7 +7629,7 @@ jQuery.fn.extend( { while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; + return true; } } @@ -7672,7 +7919,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -7783,7 +8030,10 @@ if ( !support.focusin ) { jQuery.event.special[ fix ] = { setup: function() { - var doc = this.ownerDocument || this, + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ); if ( !attaches ) { @@ -7792,7 +8042,7 @@ if ( !support.focusin ) { dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); }, teardown: function() { - var doc = this.ownerDocument || this, + var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ) - 1; if ( !attaches ) { @@ -7808,6 +8058,33 @@ if ( !support.focusin ) { } +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, parserErrorElem; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) {} + + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); + } + return xml; +}; + + var rbracket = /\[\]$/, rCRLF = /\r?\n/g, @@ -7903,16 +8180,14 @@ jQuery.fn.extend( { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { + } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( i, elem ) { + } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -8268,7 +8543,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 // getComputedStyle returns percent when specified for top/left/bottom/right; // rather than make the css module depend on the offset module, just check for it here -jQuery.each( [ "top", "left" ], function( i, prop ) { +jQuery.each( [ "top", "left" ], function( _i, prop ) { jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, function( elem, computed ) { if ( computed ) { @@ -8286,8 +8561,11 @@ jQuery.each( [ "top", "left" ], function( i, prop ) { // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, - function( defaultExtra, funcName ) { + jQuery.each( { + padding: "inner" + name, + content: type, + "": "outer" + name + }, function( defaultExtra, funcName ) { // Margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { @@ -8331,28 +8609,6 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { } ); -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 ); - } -} ); - - - - jQuery.fn.extend( { bind: function( types, data, fn ) { @@ -8371,9 +8627,35 @@ jQuery.fn.extend( { return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); } } ); +jQuery.each( + ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( _i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + } +); + + + + +// Support: Android <=4.0 only +// Make sure we trim BOM and NBSP +var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + // Bind a function to a context, optionally partially applying any // arguments. // jQuery.proxy is deprecated to promote standards (specifically Function#bind) @@ -8436,6 +8718,11 @@ jQuery.isNumeric = function( obj ) { !isNaN( obj - parseFloat( obj ) ); }; +jQuery.trim = function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); +}; @@ -8484,7 +8771,7 @@ jQuery.noConflict = function( deep ) { // Expose jQuery and $ identifiers, even in AMD // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) // and CommonJS for browser emulators (#13566) -if ( !noGlobal ) { +if ( typeof noGlobal === "undefined" ) { window.jQuery = window.$ = jQuery; } diff --git a/app/bower_components/jquery/dist/jquery.slim.min.js b/app/bower_components/jquery/dist/jquery.slim.min.js index af151cf..7556941 100644 --- a/app/bower_components/jquery/dist/jquery.slim.min.js +++ b/app/bower_components/jquery/dist/jquery.slim.min.js @@ -1,2 +1,2 @@ -/*! jQuery v3.4.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(g,e){"use strict";var t=[],v=g.document,r=Object.getPrototypeOf,s=t.slice,y=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,m=n.hasOwnProperty,a=m.toString,l=a.call(Object),b={},x=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},w=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function C(e,t,n){var r,i,o=(n=n||v).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function T(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",E=function(e,t){return new E.fn.init(e,t)},d=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function p(e){var t=!!e&&"length"in e&&e.length,n=T(e);return!x(e)&&!w(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+R+")"+R+"*"),U=new RegExp(R+"|>"),V=new RegExp(W),X=new RegExp("^"+B+"$"),Q={ID:new RegExp("^#("+B+")"),CLASS:new RegExp("^\\.("+B+")"),TAG:new RegExp("^("+B+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+R+"*(even|odd|(([+-]|)(\\d*)n|)"+R+"*(?:([+-]|)"+R+"*(\\d+)|))"+R+"*\\)|)","i"),bool:new RegExp("^(?:"+I+")$","i"),needsContext:new RegExp("^"+R+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+R+"*((?:-\\d)?\\d*)"+R+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,G=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+R+"?|("+R+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){C()},ae=xe(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{O.apply(t=P.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){O={apply:t.length?function(e,t){q.apply(e,P.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,d=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==d&&9!==d&&11!==d)return n;if(!r&&((e?e.ownerDocument||e:m)!==T&&C(e),e=e||T,E)){if(11!==d&&(u=Z.exec(t)))if(i=u[1]){if(9===d){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return O.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&p.getElementsByClassName&&e.getElementsByClassName)return O.apply(n,e.getElementsByClassName(i)),n}if(p.qsa&&!S[t+" "]&&(!v||!v.test(t))&&(1!==d||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===d&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=N),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+be(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return O.apply(n,f.querySelectorAll(c)),n}catch(e){S(t,!0)}finally{s===N&&e.removeAttribute("id")}}}return g(t.replace(F,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>x.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[N]=!0,e}function ce(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)x.attrHandle[n[r]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pe(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in p=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},C=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==T&&9===r.nodeType&&r.documentElement&&(a=(T=r).documentElement,E=!i(T),m!==T&&(n=T.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),p.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=ce(function(e){return e.appendChild(T.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=J.test(T.getElementsByClassName),p.getById=ce(function(e){return a.appendChild(e).id=N,!T.getElementsByName||!T.getElementsByName(N).length}),p.getById?(x.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(x.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},x.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),x.find.TAG=p.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},x.find.CLASS=p.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(p.qsa=J.test(T.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+R+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+R+"*(?:value|"+I+")"),e.querySelectorAll("[id~="+N+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+N+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=T.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+R+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(p.matchesSelector=J.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){p.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",W)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=J.test(a.compareDocumentPosition),y=t||J.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument===m&&y(m,e)?-1:t===T||t.ownerDocument===m&&y(m,t)?1:u?H(u,e)-H(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===T?-1:t===T?1:i?-1:o?1:u?H(u,e)-H(u,t):0;if(i===o)return de(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?de(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),T},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==T&&C(e),p.matchesSelector&&E&&!S[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){S(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&V.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=d[e+" "];return t||(t=new RegExp("(^|"+R+")"+e+"("+R+"|$)"))&&d(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function L(e,n,r){return x(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):"string"!=typeof n?E.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:v,!0)),D.test(r[1])&&E.isPlainObject(t))for(r in t)x(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=v.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):x(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,j=E(v);var O=/^(?:parents|prev(?:Until|All))/,P={children:!0,contents:!0,next:!0,prev:!0};function H(e,t){while((e=e[t])&&1!==e.nodeType);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,pe=/^$|^module$|\/(?:java|ecma)script/i,he={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ge(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&S(e,t)?E.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;nx",b.noCloneChecked=!!ye.cloneNode(!0).lastChild.defaultValue;var we=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function Ne(){return!1}function Ae(e,t){return e===function(){try{return v.activeElement}catch(e){}}()==("focus"===t)}function ke(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)ke(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ne;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return E().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=E.guid++)),e.each(function(){E.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(G.set(e,i,!1),E.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=G.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(E.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),G.set(this,i,r),t=o(this,i),this[i](),r!==(n=G.get(this,i))||t?G.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(G.set(this,i,{value:E.event.trigger(E.extend(r[0],E.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===G.get(e,i)&&E.event.add(e,i,Ee)}E.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=G.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&E.find.matchesSelector(ie,i),n.guid||(n.guid=E.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(I)||[""]).length;while(l--)p=g=(s=Te.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),p&&(f=E.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=E.event.special[p]||{},c=E.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&E.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=u[p])||((d=u[p]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(p,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,c):d.push(c),E.event.global[p]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=G.hasData(e)&&G.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(I)||[""]).length;while(l--)if(p=g=(s=Te.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),p){f=E.event.special[p]||{},d=u[p=(r?f.delegateType:f.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=d.length;while(o--)c=d[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(e,c));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||E.removeEvent(e,p,v.handle),delete u[p])}else for(p in u)E.event.remove(e,p+t[l],n,r,!0);E.isEmptyObject(u)&&G.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=E.event.fix(e),u=new Array(arguments.length),l=(G.get(this,"events")||{})[s.type]||[],c=E.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,Le=/\s*$/g;function Oe(e,t){return S(e,"table")&&S(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Ie(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(G.hasData(e)&&(o=G.access(e),a=G.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(b.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||E.isXMLDoc(e)))for(a=ge(c),r=0,i=(o=ge(e)).length;r
",2===pt.childNodes.length),E.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(b.createHTMLDocument?((r=(t=v.implementation.createHTMLDocument("")).createElement("base")).href=v.location.href,t.head.appendChild(r)):t=v),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&E(o).remove(),E.merge([],i.childNodes)));var r,i,o},E.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=E.css(e,"position"),c=E(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=E.css(e,"top"),u=E.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),x(t)&&(t=t.call(e,n,E.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===E.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===E.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,"borderTopWidth",!0),i.left+=E.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-E.css(r,"marginTop",!0),left:t.left-i.left-E.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===E.css(e,"position"))e=e.offsetParent;return e||ie})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;E.fn[t]=function(e){return z(this,function(e,t,n){var r;if(w(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=ze(b.pixelPosition,function(e,t){if(t)return t=Fe(e,n),Me.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(a,s){E.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){E.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return z(this,function(e,t,n){var r;return w(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n)}})}),E.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){E.fn[n]=function(e,t){return 0+~]|"+R+")"+R+"*"),U=new RegExp(R+"|>"),V=new RegExp(W),X=new RegExp("^"+B+"$"),Q={ID:new RegExp("^#("+B+")"),CLASS:new RegExp("^\\.("+B+")"),TAG:new RegExp("^("+B+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+R+"*(even|odd|(([+-]|)(\\d*)n|)"+R+"*(?:([+-]|)"+R+"*(\\d+)|))"+R+"*\\)|)","i"),bool:new RegExp("^(?:"+I+")$","i"),needsContext:new RegExp("^"+R+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+R+"*((?:-\\d)?\\d*)"+R+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,G=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+R+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){C()},ae=xe(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{O.apply(t=P.call(d.childNodes),d.childNodes),t[d.childNodes.length].nodeType}catch(e){O={apply:t.length?function(e,t){q.apply(e,P.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,d=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==d&&9!==d&&11!==d)return n;if(!r&&(C(e),e=e||T,E)){if(11!==d&&(u=Z.exec(t)))if(i=u[1]){if(9===d){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return O.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&p.getElementsByClassName&&e.getElementsByClassName)return O.apply(n,e.getElementsByClassName(i)),n}if(p.qsa&&!k[t+" "]&&(!v||!v.test(t))&&(1!==d||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===d&&(U.test(t)||_.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&p.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=A)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+be(l[o]);c=l.join(",")}try{return O.apply(n,f.querySelectorAll(c)),n}catch(e){k(t,!0)}finally{s===A&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>x.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[A]=!0,e}function ce(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)x.attrHandle[n[r]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pe(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in p=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},C=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:d;return r!=T&&9===r.nodeType&&r.documentElement&&(a=(T=r).documentElement,E=!i(T),d!=T&&(n=T.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),p.scope=ce(function(e){return a.appendChild(e).appendChild(T.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),p.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=ce(function(e){return e.appendChild(T.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=J.test(T.getElementsByClassName),p.getById=ce(function(e){return a.appendChild(e).id=A,!T.getElementsByName||!T.getElementsByName(A).length}),p.getById?(x.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(x.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},x.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),x.find.TAG=p.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},x.find.CLASS=p.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(p.qsa=J.test(T.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+R+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+R+"*(?:value|"+I+")"),e.querySelectorAll("[id~="+A+"-]").length||v.push("~="),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+R+"*name"+R+"*="+R+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+A+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=T.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+R+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(p.matchesSelector=J.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){p.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",W)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=J.test(a.compareDocumentPosition),y=t||J.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e==T||e.ownerDocument==d&&y(d,e)?-1:t==T||t.ownerDocument==d&&y(d,t)?1:u?H(u,e)-H(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==T?-1:t==T?1:i?-1:o?1:u?H(u,e)-H(u,t):0;if(i===o)return de(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?de(a[r],s[r]):a[r]==d?-1:s[r]==d?1:0}),T},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(C(e),p.matchesSelector&&E&&!k[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){k(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&V.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+R+")"+e+"("+R+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return b(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):"string"!=typeof n?E.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||L,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:j.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:w,!0)),k.test(r[1])&&E.isPlainObject(t))for(r in t)b(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=w.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):b(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,L=E(w);var q=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,pe=/^$|^module$|\/(?:java|ecma)script/i;le=w.createDocumentFragment().appendChild(w.createElement("div")),(ce=w.createElement("input")).setAttribute("type","radio"),ce.setAttribute("checked","checked"),ce.setAttribute("name","t"),le.appendChild(ce),m.checkClone=le.cloneNode(!0).cloneNode(!0).lastChild.checked,le.innerHTML="",m.noCloneChecked=!!le.cloneNode(!0).lastChild.defaultValue,le.innerHTML="",m.option=!!le.lastChild;var he={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ge(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&S(e,t)?E.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var ye=/<|&#?\w+;/;function me(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),d=[],p=0,h=e.length;p\s*$/g;function ke(e,t){return S(e,"table")&&S(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Le(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function je(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n
",2===lt.childNodes.length),E.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(m.createHTMLDocument?((r=(t=w.implementation.createHTMLDocument("")).createElement("base")).href=w.location.href,t.head.appendChild(r)):t=w),o=!n&&[],(i=k.exec(e))?[t.createElement(i[1])]:(i=me([e],t,o),o&&o.length&&E(o).remove(),E.merge([],i.childNodes)));var r,i,o},E.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=E.css(e,"position"),c=E(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=E.css(e,"top"),u=E.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),b(t)&&(t=t.call(e,n,E.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===E.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===E.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,"borderTopWidth",!0),i.left+=E.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-E.css(r,"marginTop",!0),left:t.left-i.left-E.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===E.css(e,"position"))e=e.offsetParent;return e||re})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;E.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=Me(m.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(a,s){E.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){E.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n)}})}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){E.fn[n]=function(e,t){return 0"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","targets","l","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","object","flag","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","swap","old","defaultDisplayMap","showHide","show","values","body","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","optgroup","tbody","tfoot","colgroup","caption","th","div","buildFragment","scripts","selection","ignored","wrap","attached","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","opt","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","cssHooks","opacity","cssNumber","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","zoom","origName","isCustomProp","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","initialInUnit","adjustCSS","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","delay","time","fx","speeds","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","propHooks","tabindex","parseInt","for","class","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","hidden","visible","offsetHeight","createHTMLDocument","implementation","keepScripts","parsed","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollLeft","scrollTop","scrollTo","Height","Width","","defaultExtra","funcName","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery.slim.min.js"} \ No newline at end of file +{"version":3,"sources":["jquery.slim.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","getProto","Object","getPrototypeOf","slice","flat","array","call","concat","apply","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","support","isFunction","obj","nodeType","item","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","i","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","jQuery","selector","context","fn","init","isArrayLike","length","prototype","jquery","constructor","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","name","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","value","guid","Symbol","iterator","split","_i","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","testContext","scope","toSelector","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","_matchIndexes","lt","gt","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","targets","l","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","object","_","flag","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","defaultDisplayMap","showHide","show","values","body","hide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","create","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","swap","old","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","opt","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","cssHooks","opacity","cssNumber","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","zoom","origName","isCustomProp","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","initialInUnit","adjustCSS","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","delay","time","fx","speeds","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","propHooks","tabindex","for","class","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","hidden","visible","createHTMLDocument","implementation","keepScripts","parsed","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollLeft","scrollTop","scrollTo","Height","Width","","defaultExtra","funcName","bind","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","trim","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery.slim.min.js"} \ No newline at end of file diff --git a/app/bower_components/jquery/external/sizzle/dist/sizzle.js b/app/bower_components/jquery/external/sizzle/dist/sizzle.js index 414d172..24a4964 100644 --- a/app/bower_components/jquery/external/sizzle/dist/sizzle.js +++ b/app/bower_components/jquery/external/sizzle/dist/sizzle.js @@ -1,15 +1,14 @@ /*! - * Sizzle CSS Selector Engine v2.3.4 + * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2019-04-08 + * Date: 2021-02-16 */ -(function( window ) { - +( function( window ) { var i, support, Expr, @@ -49,59 +48,70 @@ var i, }, // Instance methods - hasOwn = ({}).hasOwnProperty, + hasOwn = ( {} ).hasOwnProperty, arr = [], pop = arr.pop, - push_native = arr.push, + pushNative = arr.push, push = arr.push, slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native // https://jsperf.com/thor-indexof-vs-for/5 indexOf = function( list, elem ) { var i = 0, len = list.length; for ( ; i < len; i++ ) { - if ( list[i] === elem ) { + if ( list[ i ] === elem ) { return i; } } return -1; }, - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", // Regular expressions // http://www.w3.org/TR/css3-selectors/#whitespace whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: // 1. quoted (capture 3; capture 4 or capture 5) "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) ".*" + ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), rdescend = new RegExp( whitespace + "|>" ), rpseudo = new RegExp( pseudos ), @@ -113,14 +123,16 @@ var i, "TAG": new RegExp( "^(" + identifier + "|[*])" ), "ATTR": new RegExp( "^" + attributes ), "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) }, rhtml = /HTML$/i, @@ -136,18 +148,21 @@ var i, // CSS escapes // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair high < 0 ? - // BMP codepoint String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); }, @@ -163,7 +178,8 @@ var i, } // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; } // Other potentially-special ASCII characters get backslash-escaped @@ -188,18 +204,20 @@ var i, // Optimize for push.apply( _, NodeList ) try { push.apply( - (arr = slice.call( preferredDoc.childNodes )), + ( arr = slice.call( preferredDoc.childNodes ) ), preferredDoc.childNodes ); + // Support: Android<4.0 // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions arr[ preferredDoc.childNodes.length ].nodeType; } catch ( e ) { push = { apply: arr.length ? // Leverage slice if possible function( target, els ) { - push_native.apply( target, slice.call(els) ); + pushNative.apply( target, slice.call( els ) ); } : // Support: IE<9 @@ -207,8 +225,9 @@ try { function( target, els ) { var j = target.length, i = 0; + // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} + while ( ( target[ j++ ] = els[ i++ ] ) ) {} target.length = j - 1; } }; @@ -232,24 +251,21 @@ function Sizzle( selector, context, results, seed ) { // Try to shortcut find operations (as opposed to filters) in HTML documents if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } + setDocument( context ); context = context || document; if ( documentIsHTML ) { // If the selector is sufficiently simple, try using a "get*By*" DOM method // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { // ID selector - if ( (m = match[1]) ) { + if ( ( m = match[ 1 ] ) ) { // Document context if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { + if ( ( elem = context.getElementById( m ) ) ) { // Support: IE, Opera, Webkit // TODO: identify versions @@ -268,7 +284,7 @@ function Sizzle( selector, context, results, seed ) { // Support: IE, Opera, Webkit // TODO: identify versions // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && + if ( newContext && ( elem = newContext.getElementById( m ) ) && contains( context, elem ) && elem.id === m ) { @@ -278,12 +294,12 @@ function Sizzle( selector, context, results, seed ) { } // Type selector - } else if ( match[2] ) { + } else if ( match[ 2 ] ) { push.apply( results, context.getElementsByTagName( selector ) ); return results; // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && context.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); @@ -294,11 +310,11 @@ function Sizzle( selector, context, results, seed ) { // Take advantage of querySelectorAll if ( support.qsa && !nonnativeSelectorCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && // Support: IE 8 only // Exclude object elements - (nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) { + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { newSelector = selector; newContext = context; @@ -307,27 +323,36 @@ function Sizzle( selector, context, results, seed ) { // descendant combinators, which is not what we want. // In such cases, we work around the behavior by prefixing every selector in the // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && rdescend.test( selector ) ) { + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { - // 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) ); + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } } // Prefix every selector in the list groups = tokenize( selector ); i = groups.length; while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); } newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; } try { @@ -360,12 +385,14 @@ function createCache() { var keys = []; function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries delete cache[ keys.shift() ]; } - return (cache[ key + " " ] = value); + return ( cache[ key + " " ] = value ); } return cache; } @@ -384,17 +411,19 @@ function markFunction( fn ) { * @param {Function} fn Passed the created element and returns a boolean result */ function assert( fn ) { - var el = document.createElement("fieldset"); + var el = document.createElement( "fieldset" ); try { return !!fn( el ); - } catch (e) { + } catch ( e ) { return false; } finally { + // Remove from its parent by default if ( el.parentNode ) { el.parentNode.removeChild( el ); } + // release memory in IE el = null; } @@ -406,11 +435,11 @@ function assert( fn ) { * @param {Function} handler The method that will be applied */ function addHandle( attrs, handler ) { - var arr = attrs.split("|"), + var arr = attrs.split( "|" ), i = arr.length; while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; + Expr.attrHandle[ arr[ i ] ] = handler; } } @@ -432,7 +461,7 @@ function siblingCheck( a, b ) { // Check if b follows a if ( cur ) { - while ( (cur = cur.nextSibling) ) { + while ( ( cur = cur.nextSibling ) ) { if ( cur === b ) { return -1; } @@ -460,7 +489,7 @@ function createInputPseudo( type ) { function createButtonPseudo( type ) { return function( elem ) { var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; + return ( name === "input" || name === "button" ) && elem.type === type; }; } @@ -503,7 +532,7 @@ function createDisabledPseudo( disabled ) { // Where there is no isDisabled, check manually /* jshint -W018 */ elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; + inDisabledFieldset( elem ) === disabled; } return elem.disabled === disabled; @@ -525,21 +554,21 @@ function createDisabledPseudo( disabled ) { * @param {Function} fn */ function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { + return markFunction( function( argument ) { argument = +argument; - return markFunction(function( seed, matches ) { + return markFunction( function( seed, matches ) { var j, matchIndexes = fn( [], seed.length, argument ), i = matchIndexes.length; // Match elements found at the specified indexes while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); } } - }); - }); + } ); + } ); } /** @@ -560,8 +589,8 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = (elem.ownerDocument || elem).documentElement; + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -579,7 +608,11 @@ setDocument = Sizzle.setDocument = function( node ) { doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { return document; } @@ -588,10 +621,14 @@ setDocument = Sizzle.setDocument = function( node ) { docElem = document.documentElement; documentIsHTML = !isXML( document ); - // Support: IE 9-11, Edge + // Support: IE 9 - 11+, Edge 12 - 18+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { // Support: IE 11, Edge if ( subWindow.addEventListener ) { @@ -603,25 +640,36 @@ setDocument = Sizzle.setDocument = function( node ) { } } + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 // Verify that getAttribute really returns attributes and not properties // (excepting IE8 booleans) - support.attributes = assert(function( el ) { + support.attributes = assert( function( el ) { el.className = "i"; - return !el.getAttribute("className"); - }); + return !el.getAttribute( "className" ); + } ); /* getElement(s)By* ---------------------------------------------------------------------- */ // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; - }); + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); // Support: IE<9 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); @@ -630,38 +678,38 @@ setDocument = Sizzle.setDocument = function( node ) { // Check if getElementById returns elements by name // The broken getElementById methods don't pick up programmatically-set names, // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { + support.getById = assert( function( el ) { docElem.appendChild( el ).id = expando; return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); + } ); // ID filter and find if ( support.getById ) { - Expr.filter["ID"] = function( id ) { + Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { - return elem.getAttribute("id") === attrId; + return elem.getAttribute( "id" ) === attrId; }; }; - Expr.find["ID"] = function( id, context ) { + Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var elem = context.getElementById( id ); return elem ? [ elem ] : []; } }; } else { - Expr.filter["ID"] = function( id ) { + Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); + elem.getAttributeNode( "id" ); return node && node.value === attrId; }; }; // Support: IE 6 - 7 only // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { + Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var node, i, elems, elem = context.getElementById( id ); @@ -669,7 +717,7 @@ setDocument = Sizzle.setDocument = function( node ) { if ( elem ) { // Verify the id attribute - node = elem.getAttributeNode("id"); + node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } @@ -677,8 +725,8 @@ setDocument = Sizzle.setDocument = function( node ) { // Fall back on getElementsByName elems = context.getElementsByName( id ); i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } @@ -691,7 +739,7 @@ setDocument = Sizzle.setDocument = function( node ) { } // Tag - Expr.find["TAG"] = support.getElementsByTagName ? + Expr.find[ "TAG" ] = support.getElementsByTagName ? function( tag, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); @@ -706,12 +754,13 @@ setDocument = Sizzle.setDocument = function( node ) { var elem, tmp = [], i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments if ( tag === "*" ) { - while ( (elem = results[i++]) ) { + while ( ( elem = results[ i++ ] ) ) { if ( elem.nodeType === 1 ) { tmp.push( elem ); } @@ -723,7 +772,7 @@ setDocument = Sizzle.setDocument = function( node ) { }; // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { return context.getElementsByClassName( className ); } @@ -744,10 +793,14 @@ setDocument = Sizzle.setDocument = function( node ) { // See https://bugs.jquery.com/ticket/13378 rbuggyQSA = []; - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + // Build QSA regex // Regex strategy adopted from Diego Perini - assert(function( el ) { + assert( function( el ) { + + var input; + // Select is set to empty string on purpose // This is to test IE's treatment of not explicitly // setting a boolean content attribute, @@ -761,78 +814,98 @@ setDocument = Sizzle.setDocument = function( node ) { // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // Support: IE8 // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { + if ( !el.querySelectorAll( "[selected]" ).length ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); } // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); } // Support: Safari 8+, iOS 8+ // https://bugs.webkit.org/show_bug.cgi?id=136851 // In-page `selector#id sibling-combinator selector` fails if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); + rbuggyQSA.push( ".#.+[+~]" ); } - }); - assert(function( el ) { + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { el.innerHTML = "" + ""; // Support: Windows 8 Native Apps // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); + var input = document.createElement( "input" ); input.setAttribute( "type", "hidden" ); el.appendChild( input ).setAttribute( "name", "D" ); // Support: IE8 // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { + if ( el.querySelectorAll( "[name=d]" ).length ) { rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Support: IE9-11+ // IE's :disabled selector does not pick up the children of disabled fieldsets docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } + // Support: Opera 10 - 11 only // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); } - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { - assert(function( el ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9) support.disconnectedMatch = matches.call( el, "*" ); @@ -841,11 +914,11 @@ setDocument = Sizzle.setDocument = function( node ) { // Gecko does not error, returns false instead matches.call( el, "[s!='']:x" ); rbuggyMatches.push( "!=", pseudos ); - }); + } ); } - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); /* Contains ---------------------------------------------------------------------- */ @@ -862,11 +935,11 @@ setDocument = Sizzle.setDocument = function( node ) { adown.contains ? adown.contains( bup ) : a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); + ) ); } : function( a, b ) { if ( b ) { - while ( (b = b.parentNode) ) { + while ( ( b = b.parentNode ) ) { if ( b === a ) { return true; } @@ -895,7 +968,11 @@ setDocument = Sizzle.setDocument = function( node ) { } // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? a.compareDocumentPosition( b ) : // Otherwise we know they are disconnected @@ -903,13 +980,24 @@ setDocument = Sizzle.setDocument = function( node ) { // Disconnected nodes if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { return -1; } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { return 1; } @@ -922,6 +1010,7 @@ setDocument = Sizzle.setDocument = function( node ) { return compare & 4 ? -1 : 1; } : function( a, b ) { + // Exit early if the nodes are identical if ( a === b ) { hasDuplicate = true; @@ -937,8 +1026,14 @@ setDocument = Sizzle.setDocument = function( node ) { // Parentless nodes are either documents or disconnected if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ aup ? -1 : bup ? 1 : sortInput ? @@ -952,26 +1047,32 @@ setDocument = Sizzle.setDocument = function( node ) { // Otherwise we need full lists of their ancestors for comparison cur = a; - while ( (cur = cur.parentNode) ) { + while ( ( cur = cur.parentNode ) ) { ap.unshift( cur ); } cur = b; - while ( (cur = cur.parentNode) ) { + while ( ( cur = cur.parentNode ) ) { bp.unshift( cur ); } // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { + while ( ap[ i ] === bp[ i ] ) { i++; } return i ? + // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : + siblingCheck( ap[ i ], bp[ i ] ) : // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ 0; }; @@ -983,10 +1084,7 @@ Sizzle.matches = function( expr, elements ) { }; Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } + setDocument( elem ); if ( support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[ expr + " " ] && @@ -998,12 +1096,13 @@ Sizzle.matchesSelector = function( elem, expr ) { // IE 9's matchesSelector returns false on disconnected nodes if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch (e) { + } catch ( e ) { nonnativeSelectorCache( expr, true ); } } @@ -1012,20 +1111,31 @@ Sizzle.matchesSelector = function( elem, expr ) { }; Sizzle.contains = function( context, elem ) { + // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { setDocument( context ); } return contains( context, elem ); }; Sizzle.attr = function( elem, name ) { + // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { setDocument( elem ); } var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? fn( elem, name, !documentIsHTML ) : @@ -1035,13 +1145,13 @@ Sizzle.attr = function( elem, name ) { val : support.attributes || !documentIsHTML ? elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? + ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : null; }; Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); + return ( sel + "" ).replace( rcssescape, fcssescape ); }; Sizzle.error = function( msg ) { @@ -1064,7 +1174,7 @@ Sizzle.uniqueSort = function( results ) { results.sort( sortOrder ); if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { + while ( ( elem = results[ i++ ] ) ) { if ( elem === results[ i ] ) { j = duplicates.push( i ); } @@ -1092,17 +1202,21 @@ getText = Sizzle.getText = function( elem ) { nodeType = elem.nodeType; if ( !nodeType ) { + // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { + while ( ( node = elem[ i++ ] ) ) { + // Do not traverse comment nodes ret += getText( node ); } } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements // innerText usage removed for consistency of new lines (jQuery #11153) if ( typeof elem.textContent === "string" ) { return elem.textContent; } else { + // Traverse its children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { ret += getText( elem ); @@ -1111,6 +1225,7 @@ getText = Sizzle.getText = function( elem ) { } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } + // Do not include comment or processing instruction nodes return ret; @@ -1138,19 +1253,21 @@ Expr = Sizzle.selectors = { preFilter: { "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; } return match.slice( 0, 4 ); }, "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] 1 type (only|nth|...) 2 what (child|of-type) @@ -1161,22 +1278,25 @@ Expr = Sizzle.selectors = { 7 sign of y-component 8 y of y-component */ - match[1] = match[1].toLowerCase(); + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { - if ( match[1].slice( 0, 3 ) === "nth" ) { // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); } // numeric x and y parameters for Expr.filter.CHILD // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); } return match; @@ -1184,26 +1304,28 @@ Expr = Sizzle.selectors = { "PSEUDO": function( match ) { var excess, - unquoted = !match[6] && match[2]; + unquoted = !match[ 6 ] && match[ 2 ]; - if ( matchExpr["CHILD"].test( match[0] ) ) { + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { return null; } // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; // Strip excess characters from unquoted arguments } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && + ( excess = tokenize( unquoted, true ) ) && + // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); } // Return only captures needed by the pseudo filter method (type and argument) @@ -1216,7 +1338,9 @@ Expr = Sizzle.selectors = { "TAG": function( nodeNameSelector ) { var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); return nodeNameSelector === "*" ? - function() { return true; } : + function() { + return true; + } : function( elem ) { return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; }; @@ -1226,10 +1350,16 @@ Expr = Sizzle.selectors = { var pattern = classCache[ className + " " ]; return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); }, "ATTR": function( name, operator, check ) { @@ -1245,6 +1375,8 @@ Expr = Sizzle.selectors = { result += ""; + /* eslint-disable max-len */ + return operator === "=" ? result === check : operator === "!=" ? result !== check : operator === "^=" ? check && result.indexOf( check ) === 0 : @@ -1253,10 +1385,12 @@ Expr = Sizzle.selectors = { operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; + /* eslint-enable max-len */ + }; }, - "CHILD": function( type, what, argument, first, last ) { + "CHILD": function( type, what, _argument, first, last ) { var simple = type.slice( 0, 3 ) !== "nth", forward = type.slice( -4 ) !== "last", ofType = what === "of-type"; @@ -1268,7 +1402,7 @@ Expr = Sizzle.selectors = { return !!elem.parentNode; } : - function( elem, context, xml ) { + function( elem, _context, xml ) { var cache, uniqueCache, outerCache, node, nodeIndex, start, dir = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, @@ -1282,7 +1416,7 @@ Expr = Sizzle.selectors = { if ( simple ) { while ( dir ) { node = elem; - while ( (node = node[ dir ]) ) { + while ( ( node = node[ dir ] ) ) { if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { @@ -1290,6 +1424,7 @@ Expr = Sizzle.selectors = { return false; } } + // Reverse direction for :only-* (if we haven't yet done so) start = dir = type === "only" && !start && "nextSibling"; } @@ -1305,22 +1440,22 @@ Expr = Sizzle.selectors = { // ...in a gzip-friendly way node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; diff = nodeIndex && cache[ 2 ]; node = nodeIndex && parent.childNodes[ nodeIndex ]; - while ( (node = ++nodeIndex && node && node[ dir ] || + while ( ( node = ++nodeIndex && node && node[ dir ] || // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { + ( diff = nodeIndex = 0 ) || start.pop() ) ) { // When found, cache indexes on `parent` and break if ( node.nodeType === 1 && ++diff && node === elem ) { @@ -1330,16 +1465,18 @@ Expr = Sizzle.selectors = { } } else { + // Use previously-cached element index if available if ( useCache ) { + // ...in a gzip-friendly way node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; @@ -1349,9 +1486,10 @@ Expr = Sizzle.selectors = { // xml :nth-child(...) // or :nth-last-child(...) or :nth(-last)?-of-type(...) if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { if ( ( ofType ? node.nodeName.toLowerCase() === name : @@ -1360,12 +1498,13 @@ Expr = Sizzle.selectors = { // Cache the index of each encountered element if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || + ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); uniqueCache[ type ] = [ dirruns, diff ]; } @@ -1386,6 +1525,7 @@ Expr = Sizzle.selectors = { }, "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive // http://www.w3.org/TR/selectors/#pseudo-classes // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters @@ -1405,15 +1545,15 @@ Expr = Sizzle.selectors = { if ( fn.length > 1 ) { args = [ pseudo, pseudo, "", argument ]; return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { + markFunction( function( seed, matches ) { var idx, matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); } - }) : + } ) : function( elem ) { return fn( elem, 0, args ); }; @@ -1424,8 +1564,10 @@ Expr = Sizzle.selectors = { }, pseudos: { + // Potentially complex pseudos - "not": markFunction(function( selector ) { + "not": markFunction( function( selector ) { + // Trim the selector passed to compile // to avoid treating leading and trailing // spaces as combinators @@ -1434,39 +1576,40 @@ Expr = Sizzle.selectors = { matcher = compile( selector.replace( rtrim, "$1" ) ); return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { + markFunction( function( seed, matches, _context, xml ) { var elem, unmatched = matcher( seed, null, xml, [] ), i = seed.length; // Match elements unmatched by `matcher` while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); } } - }) : - function( elem, context, xml ) { - input[0] = elem; + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; matcher( input, null, xml, results ); + // Don't keep the element (issue #299) - input[0] = null; + input[ 0 ] = null; return !results.pop(); }; - }), + } ), - "has": markFunction(function( selector ) { + "has": markFunction( function( selector ) { return function( elem ) { return Sizzle( selector, elem ).length > 0; }; - }), + } ), - "contains": markFunction(function( text ) { + "contains": markFunction( function( text ) { text = text.replace( runescape, funescape ); return function( elem ) { return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; }; - }), + } ), // "Whether an element is represented by a :lang() selector // is based solely on the element's language value @@ -1476,25 +1619,26 @@ Expr = Sizzle.selectors = { // The identifier C does not have to be a valid language name." // http://www.w3.org/TR/selectors/#lang-pseudo "lang": markFunction( function( lang ) { + // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { + if ( !ridentifier.test( lang || "" ) ) { Sizzle.error( "unsupported lang: " + lang ); } lang = lang.replace( runescape, funescape ).toLowerCase(); return function( elem ) { var elemLang; do { - if ( (elemLang = documentIsHTML ? + if ( ( elemLang = documentIsHTML ? elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { elemLang = elemLang.toLowerCase(); return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); return false; }; - }), + } ), // Miscellaneous "target": function( elem ) { @@ -1507,7 +1651,9 @@ Expr = Sizzle.selectors = { }, "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); }, // Boolean properties @@ -1515,16 +1661,20 @@ Expr = Sizzle.selectors = { "disabled": createDisabledPseudo( true ), "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); }, "selected": function( elem ) { + // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions elem.parentNode.selectedIndex; } @@ -1533,6 +1683,7 @@ Expr = Sizzle.selectors = { // Contents "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), // but not by others (comment: 8; processing instruction: 7; etc.) @@ -1546,7 +1697,7 @@ Expr = Sizzle.selectors = { }, "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); + return !Expr.pseudos[ "empty" ]( elem ); }, // Element/input types @@ -1570,39 +1721,40 @@ Expr = Sizzle.selectors = { // Support: IE<8 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); }, // Position-in-collection - "first": createPositionalPseudo(function() { + "first": createPositionalPseudo( function() { return [ 0 ]; - }), + } ), - "last": createPositionalPseudo(function( matchIndexes, length ) { + "last": createPositionalPseudo( function( _matchIndexes, length ) { return [ length - 1 ]; - }), + } ), - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { return [ argument < 0 ? argument + length : argument ]; - }), + } ), - "even": createPositionalPseudo(function( matchIndexes, length ) { + "even": createPositionalPseudo( function( matchIndexes, length ) { var i = 0; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "odd": createPositionalPseudo(function( matchIndexes, length ) { + "odd": createPositionalPseudo( function( matchIndexes, length ) { var i = 1; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument > length ? @@ -1612,19 +1764,19 @@ Expr = Sizzle.selectors = { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument; for ( ; ++i < length; ) { matchIndexes.push( i ); } return matchIndexes; - }) + } ) } }; -Expr.pseudos["nth"] = Expr.pseudos["eq"]; +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; // Add button/input type pseudos for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { @@ -1655,37 +1807,39 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { while ( soFar ) { // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { if ( match ) { + // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; + soFar = soFar.slice( match[ 0 ].length ) || soFar; } - groups.push( (tokens = []) ); + groups.push( ( tokens = [] ) ); } matched = false; // Combinators - if ( (match = rcombinators.exec( soFar )) ) { + if ( ( match = rcombinators.exec( soFar ) ) ) { matched = match.shift(); - tokens.push({ + tokens.push( { value: matched, + // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); + type: match[ 0 ].replace( rtrim, " " ) + } ); soFar = soFar.slice( matched.length ); } // Filters for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { matched = match.shift(); - tokens.push({ + tokens.push( { value: matched, type: type, matches: match - }); + } ); soFar = soFar.slice( matched.length ); } } @@ -1702,6 +1856,7 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { soFar.length : soFar ? Sizzle.error( selector ) : + // Cache the tokens tokenCache( selector, groups ).slice( 0 ); }; @@ -1711,7 +1866,7 @@ function toSelector( tokens ) { len = tokens.length, selector = ""; for ( ; i < len; i++ ) { - selector += tokens[i].value; + selector += tokens[ i ].value; } return selector; } @@ -1724,9 +1879,10 @@ function addCombinator( matcher, combinator, base ) { doneName = done++; return combinator.first ? + // Check against closest ancestor/preceding element function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { return matcher( elem, context, xml ); } @@ -1741,7 +1897,7 @@ function addCombinator( matcher, combinator, base ) { // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching if ( xml ) { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { if ( matcher( elem, context, xml ) ) { return true; @@ -1749,27 +1905,29 @@ function addCombinator( matcher, combinator, base ) { } } } else { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); if ( skip && skip === elem.nodeName.toLowerCase() ) { elem = elem[ dir ] || elem; - } else if ( (oldCache = uniqueCache[ key ]) && + } else if ( ( oldCache = uniqueCache[ key ] ) && oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); + return ( newCache[ 2 ] = oldCache[ 2 ] ); } else { + // Reuse newcache so results back-propagate to previous elements uniqueCache[ key ] = newCache; // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { return true; } } @@ -1785,20 +1943,20 @@ function elementMatcher( matchers ) { function( elem, context, xml ) { var i = matchers.length; while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { + if ( !matchers[ i ]( elem, context, xml ) ) { return false; } } return true; } : - matchers[0]; + matchers[ 0 ]; } function multipleContexts( selector, contexts, results ) { var i = 0, len = contexts.length; for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); + Sizzle( selector, contexts[ i ], results ); } return results; } @@ -1811,7 +1969,7 @@ function condense( unmatched, map, filter, context, xml ) { mapped = map != null; for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { + if ( ( elem = unmatched[ i ] ) ) { if ( !filter || filter( elem, context, xml ) ) { newUnmatched.push( elem ); if ( mapped ) { @@ -1831,14 +1989,18 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( postFinder && !postFinder[ expando ] ) { postFinder = setMatcher( postFinder, postSelector ); } - return markFunction(function( seed, results, context, xml ) { + return markFunction( function( seed, results, context, xml ) { var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), // Prefilter to get matcher input, preserving a map for seed-results synchronization matcherIn = preFilter && ( seed || !selector ) ? @@ -1846,6 +2008,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS elems, matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, postFinder || ( seed ? preFilter : preexisting || postFilter ) ? @@ -1869,8 +2032,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS // Un-match failing elements by moving them back to matcherIn i = temp.length; while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); } } } @@ -1878,25 +2041,27 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( seed ) { if ( postFinder || preFilter ) { if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts temp = []; i = matcherOut.length; while ( i-- ) { - if ( (elem = matcherOut[i]) ) { + if ( ( elem = matcherOut[ i ] ) ) { + // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); + temp.push( ( matcherIn[ i ] = elem ) ); } } - postFinder( null, (matcherOut = []), temp, xml ); + postFinder( null, ( matcherOut = [] ), temp, xml ); } // Move matched elements from seed to results to keep them synchronized i = matcherOut.length; while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { - seed[temp] = !(results[temp] = elem); + seed[ temp ] = !( results[ temp ] = elem ); } } } @@ -1914,14 +2079,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS push.apply( results, matcherOut ); } } - }); + } ); } function matcherFromTokens( tokens ) { var checkContext, matcher, j, len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], i = leadingRelative ? 1 : 0, // The foundational matcher ensures that elements are reachable from top-level context(s) @@ -1933,38 +2098,43 @@ function matcherFromTokens( tokens ) { }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? + ( checkContext = context ).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) checkContext = null; return ret; } ]; for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); // Return special upon seeing a positional matcher if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling j = ++i; for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { + if ( Expr.relative[ tokens[ j ].type ] ) { break; } } return setMatcher( i > 1 && elementMatcher( matchers ), i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) ).replace( rtrim, "$1" ), matcher, i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), j < len && toSelector( tokens ) ); } @@ -1985,28 +2155,40 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { unmatched = seed && [], setMatched = [], contextBackup = outermostContext, + // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), len = elems.length; if ( outermost ) { - outermostContext = context === document || context || outermost; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; } // Add elements passing elementMatchers directly to results // Support: IE<9, Safari // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { if ( byElement && elem ) { j = 0; - if ( !context && elem.ownerDocument !== document ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { setDocument( elem ); xml = !documentIsHTML; } - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { results.push( elem ); break; } @@ -2018,8 +2200,9 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // Track unmatched elements for set filters if ( bySet ) { + // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { + if ( ( elem = !matcher && elem ) ) { matchedCount--; } @@ -2043,16 +2226,17 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // numerically zero. if ( bySet && i !== matchedCount ) { j = 0; - while ( (matcher = setMatchers[j++]) ) { + while ( ( matcher = setMatchers[ j++ ] ) ) { matcher( unmatched, setMatched, context, xml ); } if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting if ( matchedCount > 0 ) { while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); } } } @@ -2093,13 +2277,14 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { cached = compilerCache[ selector + " " ]; if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element if ( !match ) { match = tokenize( selector ); } i = match.length; while ( i-- ) { - cached = matcherFromTokens( match[i] ); + cached = matcherFromTokens( match[ i ] ); if ( cached[ expando ] ) { setMatchers.push( cached ); } else { @@ -2108,7 +2293,10 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { } // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); // Save selector and tokenization cached.selector = selector; @@ -2128,7 +2316,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { select = Sizzle.select = function( selector, context, results, seed ) { var i, tokens, token, type, find, compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); results = results || []; @@ -2137,11 +2325,12 @@ select = Sizzle.select = function( selector, context, results, seed ) { if ( match.length === 1 ) { // Reduce context if the leading compound selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; if ( !context ) { return results; @@ -2154,20 +2343,22 @@ select = Sizzle.select = function( selector, context, results, seed ) { } // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; while ( i-- ) { - token = tokens[i]; + token = tokens[ i ]; // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { + if ( Expr.relative[ ( type = token.type ) ] ) { break; } - if ( (find = Expr.find[ type ]) ) { + if ( ( find = Expr.find[ type ] ) ) { + // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { // If seed is empty or no tokens remain, we can return early tokens.splice( i, 1 ); @@ -2198,7 +2389,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { // One-time assignments // Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; // Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function @@ -2209,53 +2400,54 @@ setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) // Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( el ) { +support.sortDetached = assert( function( el ) { + // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; -}); + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); // Support: IE<8 // Prevent attribute/property "interpolation" // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( el ) { +if ( !assert( function( el ) { el.innerHTML = ""; - return el.firstChild.getAttribute("href") === "#" ; -}) ) { + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { addHandle( "type|href|height|width", function( elem, name, isXML ) { if ( !isXML ) { return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); } - }); + } ); } // Support: IE<9 // Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( el ) { +if ( !support.attributes || !assert( function( el ) { el.innerHTML = ""; el.firstChild.setAttribute( "value", "" ); return el.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { return elem.defaultValue; } - }); + } ); } // Support: IE<9 // Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; -}) ) { +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { addHandle( booleans, function( elem, name, isXML ) { var val; if ( !isXML ) { return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? + ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : - null; + null; } - }); + } ); } // EXPOSE @@ -2270,13 +2462,17 @@ Sizzle.noConflict = function() { }; if ( typeof define === "function" && define.amd ) { - define(function() { return Sizzle; }); + define( function() { + return Sizzle; + } ); + // Sizzle requires that there be a global window in Common-JS like environments } else if ( typeof module !== "undefined" && module.exports ) { module.exports = Sizzle; } else { window.Sizzle = Sizzle; } + // EXPOSE -})( window ); +} )( window ); diff --git a/app/bower_components/jquery/external/sizzle/dist/sizzle.min.js b/app/bower_components/jquery/external/sizzle/dist/sizzle.min.js index fdbef69..82af986 100644 --- a/app/bower_components/jquery/external/sizzle/dist/sizzle.min.js +++ b/app/bower_components/jquery/external/sizzle/dist/sizzle.min.js @@ -1,3 +1,3 @@ -/*! Sizzle v2.3.4 | (c) JS Foundation and other contributors | js.foundation */ -!function(e){var t,n,r,i,o,u,l,a,c,s,f,d,p,h,g,m,y,w,v,b="sizzle"+1*new Date,N=e.document,x=0,C=0,E=ae(),D=ae(),S=ae(),A=ae(),T=function(e,t){return e===t&&(f=!0),0},L={}.hasOwnProperty,I=[],q=I.pop,B=I.push,R=I.push,$=I.slice,k=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),V=new RegExp(M+"|>"),X=new RegExp(F),J=new RegExp("^"+P+"$"),K={ID:new RegExp("^#("+P+")"),CLASS:new RegExp("^\\.("+P+")"),TAG:new RegExp("^("+P+"|[*])"),ATTR:new RegExp("^"+z),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+H+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/HTML$/i,W=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){d()},ue=we(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{R.apply(I=$.call(N.childNodes),N.childNodes),I[N.childNodes.length].nodeType}catch(e){R={apply:I.length?function(e,t){B.apply(e,$.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function le(e,t,r,i){var o,l,c,s,f,h,y,w=t&&t.ownerDocument,x=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==x&&9!==x&&11!==x)return r;if(!i&&((t?t.ownerDocument||t:N)!==p&&d(t),t=t||p,g)){if(11!==x&&(f=_.exec(e)))if(o=f[1]){if(9===x){if(!(c=t.getElementById(o)))return r;if(c.id===o)return r.push(c),r}else if(w&&(c=w.getElementById(o))&&v(t,c)&&c.id===o)return r.push(c),r}else{if(f[2])return R.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return R.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!A[e+" "]&&(!m||!m.test(e))&&(1!==x||"object"!==t.nodeName.toLowerCase())){if(y=e,w=t,1===x&&V.test(e)){(s=t.getAttribute("id"))?s=s.replace(re,ie):t.setAttribute("id",s=b),l=(h=u(e)).length;while(l--)h[l]="#"+s+" "+ye(h[l]);y=h.join(","),w=ee.test(e)&&ge(t.parentNode)||t}try{return R.apply(r,w.querySelectorAll(y)),r}catch(t){A(e,!0)}finally{s===b&&t.removeAttribute("id")}}}return a(e.replace(j,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function ce(e){return e[b]=!0,e}function se(e){var t=p.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pe(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ue(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return ce(function(t){return t=+t,ce(function(n,r){var i,o=e([],n.length,t),u=o.length;while(u--)n[i=o[u]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&void 0!==e.getElementsByTagName&&e}n=le.support={},o=le.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Q.test(t||n&&n.nodeName||"HTML")},d=le.setDocument=function(e){var t,i,u=e?e.ownerDocument||e:N;return u!==p&&9===u.nodeType&&u.documentElement?(p=u,h=p.documentElement,g=!o(p),N!==p&&(i=p.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",oe,!1):i.attachEvent&&i.attachEvent("onunload",oe)),n.attributes=se(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=se(function(e){return e.appendChild(p.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Z.test(p.getElementsByClassName),n.getById=se(function(e){return h.appendChild(e).id=b,!p.getElementsByName||!p.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&g)return t.getElementsByClassName(e)},y=[],m=[],(n.qsa=Z.test(p.querySelectorAll))&&(se(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+M+"*(?:value|"+H+")"),e.querySelectorAll("[id~="+b+"-]").length||m.push("~="),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||m.push(".#.+[+~]")}),se(function(e){e.innerHTML="";var t=p.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&m.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")})),(n.matchesSelector=Z.test(w=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&se(function(e){n.disconnectedMatch=w.call(e,"*"),w.call(e,"[s!='']:x"),y.push("!=",F)}),m=m.length&&new RegExp(m.join("|")),y=y.length&&new RegExp(y.join("|")),t=Z.test(h.compareDocumentPosition),v=t||Z.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},T=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===p||e.ownerDocument===N&&v(N,e)?-1:t===p||t.ownerDocument===N&&v(N,t)?1:s?k(s,e)-k(s,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,u=[e],l=[t];if(!i||!o)return e===p?-1:t===p?1:i?-1:o?1:s?k(s,e)-k(s,t):0;if(i===o)return de(e,t);n=e;while(n=n.parentNode)u.unshift(n);n=t;while(n=n.parentNode)l.unshift(n);while(u[r]===l[r])r++;return r?de(u[r],l[r]):u[r]===N?-1:l[r]===N?1:0},p):p},le.matches=function(e,t){return le(e,null,null,t)},le.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&d(e),n.matchesSelector&&g&&!A[t+" "]&&(!y||!y.test(t))&&(!m||!m.test(t)))try{var r=w.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){A(t,!0)}return le(t,p,null,[e]).length>0},le.contains=function(e,t){return(e.ownerDocument||e)!==p&&d(e),v(e,t)},le.attr=function(e,t){(e.ownerDocument||e)!==p&&d(e);var i=r.attrHandle[t.toLowerCase()],o=i&&L.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},le.escape=function(e){return(e+"").replace(re,ie)},le.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},le.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,s=!n.sortStable&&e.slice(0),e.sort(T),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return s=null,e},i=le.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=le.selectors={cacheLength:50,createPseudo:ce,match:K,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||le.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&le.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return K.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=u(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=le.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(O," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),u="last"!==e.slice(-4),l="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,a){var c,s,f,d,p,h,g=o!==u?"nextSibling":"previousSibling",m=t.parentNode,y=l&&t.nodeName.toLowerCase(),w=!a&&!l,v=!1;if(m){if(o){while(g){d=t;while(d=d[g])if(l?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[u?m.firstChild:m.lastChild],u&&w){v=(p=(c=(s=(f=(d=m)[b]||(d[b]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]||[])[0]===x&&c[1])&&c[2],d=p&&m.childNodes[p];while(d=++p&&d&&d[g]||(v=p=0)||h.pop())if(1===d.nodeType&&++v&&d===t){s[e]=[x,p,v];break}}else if(w&&(v=p=(c=(s=(f=(d=t)[b]||(d[b]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]||[])[0]===x&&c[1]),!1===v)while(d=++p&&d&&d[g]||(v=p=0)||h.pop())if((l?d.nodeName.toLowerCase()===y:1===d.nodeType)&&++v&&(w&&((s=(f=d[b]||(d[b]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]=[x,v]),d===t))break;return(v-=i)===r||v%r==0&&v/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||le.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?ce(function(e,n){var r,o=i(e,t),u=o.length;while(u--)e[r=k(e,o[u])]=!(n[r]=o[u])}):function(e){return i(e,0,n)}):i}},pseudos:{not:ce(function(e){var t=[],n=[],r=l(e.replace(j,"$1"));return r[b]?ce(function(e,t,n,i){var o,u=r(e,null,i,[]),l=e.length;while(l--)(o=u[l])&&(e[l]=!(t[l]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:ce(function(e){return function(t){return le(e,t).length>0}}),contains:ce(function(e){return e=e.replace(te,ne),function(t){return(t.textContent||i(t)).indexOf(e)>-1}}),lang:ce(function(e){return J.test(e||"")||le.error("unsupported lang: "+e),e=e.replace(te,ne).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:pe(!1),disabled:pe(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return W.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;nt?t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[c]=!(u[c]=f))}}else y=Ne(y===u?y.splice(h,y.length):y),i?i(null,u,y,a):R.apply(u,y)})}function Ce(e){for(var t,n,i,o=e.length,u=r.relative[e[0].type],l=u||r.relative[" "],a=u?1:0,s=we(function(e){return e===t},l,!0),f=we(function(e){return k(t,e)>-1},l,!0),d=[function(e,n,r){var i=!u&&(r||n!==c)||((t=n).nodeType?s(e,n,r):f(e,n,r));return t=null,i}];a1&&ve(d),a>1&&ye(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(j,"$1"),n,a0,i=e.length>0,o=function(o,u,l,a,s){var f,h,m,y=0,w="0",v=o&&[],b=[],N=c,C=o||i&&r.find.TAG("*",s),E=x+=null==N?1:Math.random()||.1,D=C.length;for(s&&(c=u===p||u||s);w!==D&&null!=(f=C[w]);w++){if(i&&f){h=0,u||f.ownerDocument===p||(d(f),l=!g);while(m=e[h++])if(m(f,u||p,l)){a.push(f);break}s&&(x=E)}n&&((f=!m&&f)&&y--,o&&v.push(f))}if(y+=w,n&&w!==y){h=0;while(m=t[h++])m(v,b,u,l);if(o){if(y>0)while(w--)v[w]||b[w]||(b[w]=q.call(a));b=Ne(b)}R.apply(a,b),s&&!o&&b.length>0&&y+t.length>1&&le.uniqueSort(a)}return s&&(x=E,c=N),v};return n?ce(o):o}l=le.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=u(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},a=le.select=function(e,t,n,i){var o,a,c,s,f,d="function"==typeof e&&e,p=!i&&u(e=d.selector||e);if(n=n||[],1===p.length){if((a=p[0]=p[0].slice(0)).length>2&&"ID"===(c=a[0]).type&&9===t.nodeType&&g&&r.relative[a[1].type]){if(!(t=(r.find.ID(c.matches[0].replace(te,ne),t)||[])[0]))return n;d&&(t=t.parentNode),e=e.slice(a.shift().value.length)}o=K.needsContext.test(e)?0:a.length;while(o--){if(c=a[o],r.relative[s=c.type])break;if((f=r.find[s])&&(i=f(c.matches[0].replace(te,ne),ee.test(a[0].type)&&ge(t.parentNode)||t))){if(a.splice(o,1),!(e=i.length&&ye(a)))return R.apply(n,i),n;break}}}return(d||l(e,p))(i,t,!g,n,!t||ee.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(T).join("")===b,n.detectDuplicates=!!f,d(),n.sortDetached=se(function(e){return 1&e.compareDocumentPosition(p.createElement("fieldset"))}),se(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&se(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),se(function(e){return null==e.getAttribute("disabled")})||fe(H,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null});var De=e.Sizzle;le.noConflict=function(){return e.Sizzle===le&&(e.Sizzle=De),le},"function"==typeof define&&define.amd?define(function(){return le}):"undefined"!=typeof module&&module.exports?module.exports=le:e.Sizzle=le}(window); +/*! Sizzle v2.3.6 | (c) JS Foundation and other contributors | js.foundation */ +!function(e){var t,n,r,i,o,u,l,a,c,s,d,f,p,h,g,m,y,v,w,b="sizzle"+1*new Date,N=e.document,C=0,x=0,E=ae(),A=ae(),S=ae(),D=ae(),T=function(e,t){return e===t&&(d=!0),0},L={}.hasOwnProperty,q=[],I=q.pop,B=q.push,R=q.push,$=q.slice,k=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),V=new RegExp(M+"|>"),X=new RegExp(F),J=new RegExp("^"+P+"$"),K={ID:new RegExp("^#("+P+")"),CLASS:new RegExp("^\\.("+P+")"),TAG:new RegExp("^("+P+"|[*])"),ATTR:new RegExp("^"+z),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+H+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/HTML$/i,W=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){f()},ue=ve(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{R.apply(q=$.call(N.childNodes),N.childNodes),q[N.childNodes.length].nodeType}catch(e){R={apply:q.length?function(e,t){B.apply(e,$.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function le(e,t,r,i){var o,l,c,s,d,h,y,v=t&&t.ownerDocument,N=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==N&&9!==N&&11!==N)return r;if(!i&&(f(t),t=t||p,g)){if(11!==N&&(d=_.exec(e)))if(o=d[1]){if(9===N){if(!(c=t.getElementById(o)))return r;if(c.id===o)return r.push(c),r}else if(v&&(c=v.getElementById(o))&&w(t,c)&&c.id===o)return r.push(c),r}else{if(d[2])return R.apply(r,t.getElementsByTagName(e)),r;if((o=d[3])&&n.getElementsByClassName&&t.getElementsByClassName)return R.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!D[e+" "]&&(!m||!m.test(e))&&(1!==N||"object"!==t.nodeName.toLowerCase())){if(y=e,v=t,1===N&&(V.test(e)||U.test(e))){(v=ee.test(e)&&ge(t.parentNode)||t)===t&&n.scope||((s=t.getAttribute("id"))?s=s.replace(re,ie):t.setAttribute("id",s=b)),l=(h=u(e)).length;while(l--)h[l]=(s?"#"+s:":scope")+" "+ye(h[l]);y=h.join(",")}try{return R.apply(r,v.querySelectorAll(y)),r}catch(t){D(e,!0)}finally{s===b&&t.removeAttribute("id")}}}return a(e.replace(j,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function ce(e){return e[b]=!0,e}function se(e){var t=p.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function de(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function fe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pe(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ue(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return ce(function(t){return t=+t,ce(function(n,r){var i,o=e([],n.length,t),u=o.length;while(u--)n[i=o[u]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&void 0!==e.getElementsByTagName&&e}n=le.support={},o=le.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Q.test(t||n&&n.nodeName||"HTML")},f=le.setDocument=function(e){var t,i,u=e?e.ownerDocument||e:N;return u!=p&&9===u.nodeType&&u.documentElement?(p=u,h=p.documentElement,g=!o(p),N!=p&&(i=p.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",oe,!1):i.attachEvent&&i.attachEvent("onunload",oe)),n.scope=se(function(e){return h.appendChild(e).appendChild(p.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),n.attributes=se(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=se(function(e){return e.appendChild(p.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Z.test(p.getElementsByClassName),n.getById=se(function(e){return h.appendChild(e).id=b,!p.getElementsByName||!p.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&g)return t.getElementsByClassName(e)},y=[],m=[],(n.qsa=Z.test(p.querySelectorAll))&&(se(function(e){var t;h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+M+"*(?:value|"+H+")"),e.querySelectorAll("[id~="+b+"-]").length||m.push("~="),(t=p.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||m.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||m.push(".#.+[+~]"),e.querySelectorAll("\\\f"),m.push("[\\r\\n\\f]")}),se(function(e){e.innerHTML="";var t=p.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&m.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")})),(n.matchesSelector=Z.test(v=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&se(function(e){n.disconnectedMatch=v.call(e,"*"),v.call(e,"[s!='']:x"),y.push("!=",F)}),m=m.length&&new RegExp(m.join("|")),y=y.length&&new RegExp(y.join("|")),t=Z.test(h.compareDocumentPosition),w=t||Z.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},T=t?function(e,t){if(e===t)return d=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e==p||e.ownerDocument==N&&w(N,e)?-1:t==p||t.ownerDocument==N&&w(N,t)?1:s?k(s,e)-k(s,t):0:4&r?-1:1)}:function(e,t){if(e===t)return d=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,u=[e],l=[t];if(!i||!o)return e==p?-1:t==p?1:i?-1:o?1:s?k(s,e)-k(s,t):0;if(i===o)return fe(e,t);n=e;while(n=n.parentNode)u.unshift(n);n=t;while(n=n.parentNode)l.unshift(n);while(u[r]===l[r])r++;return r?fe(u[r],l[r]):u[r]==N?-1:l[r]==N?1:0},p):p},le.matches=function(e,t){return le(e,null,null,t)},le.matchesSelector=function(e,t){if(f(e),n.matchesSelector&&g&&!D[t+" "]&&(!y||!y.test(t))&&(!m||!m.test(t)))try{var r=v.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){D(t,!0)}return le(t,p,null,[e]).length>0},le.contains=function(e,t){return(e.ownerDocument||e)!=p&&f(e),w(e,t)},le.attr=function(e,t){(e.ownerDocument||e)!=p&&f(e);var i=r.attrHandle[t.toLowerCase()],o=i&&L.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},le.escape=function(e){return(e+"").replace(re,ie)},le.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},le.uniqueSort=function(e){var t,r=[],i=0,o=0;if(d=!n.detectDuplicates,s=!n.sortStable&&e.slice(0),e.sort(T),d){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return s=null,e},i=le.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=le.selectors={cacheLength:50,createPseudo:ce,match:K,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||le.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&le.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return K.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=u(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=le.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(O," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),u="last"!==e.slice(-4),l="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,a){var c,s,d,f,p,h,g=o!==u?"nextSibling":"previousSibling",m=t.parentNode,y=l&&t.nodeName.toLowerCase(),v=!a&&!l,w=!1;if(m){if(o){while(g){f=t;while(f=f[g])if(l?f.nodeName.toLowerCase()===y:1===f.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[u?m.firstChild:m.lastChild],u&&v){w=(p=(c=(s=(d=(f=m)[b]||(f[b]={}))[f.uniqueID]||(d[f.uniqueID]={}))[e]||[])[0]===C&&c[1])&&c[2],f=p&&m.childNodes[p];while(f=++p&&f&&f[g]||(w=p=0)||h.pop())if(1===f.nodeType&&++w&&f===t){s[e]=[C,p,w];break}}else if(v&&(w=p=(c=(s=(d=(f=t)[b]||(f[b]={}))[f.uniqueID]||(d[f.uniqueID]={}))[e]||[])[0]===C&&c[1]),!1===w)while(f=++p&&f&&f[g]||(w=p=0)||h.pop())if((l?f.nodeName.toLowerCase()===y:1===f.nodeType)&&++w&&(v&&((s=(d=f[b]||(f[b]={}))[f.uniqueID]||(d[f.uniqueID]={}))[e]=[C,w]),f===t))break;return(w-=i)===r||w%r==0&&w/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||le.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?ce(function(e,n){var r,o=i(e,t),u=o.length;while(u--)e[r=k(e,o[u])]=!(n[r]=o[u])}):function(e){return i(e,0,n)}):i}},pseudos:{not:ce(function(e){var t=[],n=[],r=l(e.replace(j,"$1"));return r[b]?ce(function(e,t,n,i){var o,u=r(e,null,i,[]),l=e.length;while(l--)(o=u[l])&&(e[l]=!(t[l]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:ce(function(e){return function(t){return le(e,t).length>0}}),contains:ce(function(e){return e=e.replace(te,ne),function(t){return(t.textContent||i(t)).indexOf(e)>-1}}),lang:ce(function(e){return J.test(e||"")||le.error("unsupported lang: "+e),e=e.replace(te,ne).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:pe(!1),disabled:pe(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return W.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;nt?t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[c]=!(u[c]=d))}}else y=Ne(y===u?y.splice(h,y.length):y),i?i(null,u,y,a):R.apply(u,y)})}function xe(e){for(var t,n,i,o=e.length,u=r.relative[e[0].type],l=u||r.relative[" "],a=u?1:0,s=ve(function(e){return e===t},l,!0),d=ve(function(e){return k(t,e)>-1},l,!0),f=[function(e,n,r){var i=!u&&(r||n!==c)||((t=n).nodeType?s(e,n,r):d(e,n,r));return t=null,i}];a1&&we(f),a>1&&ye(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(j,"$1"),n,a0,i=e.length>0,o=function(o,u,l,a,s){var d,h,m,y=0,v="0",w=o&&[],b=[],N=c,x=o||i&&r.find.TAG("*",s),E=C+=null==N?1:Math.random()||.1,A=x.length;for(s&&(c=u==p||u||s);v!==A&&null!=(d=x[v]);v++){if(i&&d){h=0,u||d.ownerDocument==p||(f(d),l=!g);while(m=e[h++])if(m(d,u||p,l)){a.push(d);break}s&&(C=E)}n&&((d=!m&&d)&&y--,o&&w.push(d))}if(y+=v,n&&v!==y){h=0;while(m=t[h++])m(w,b,u,l);if(o){if(y>0)while(v--)w[v]||b[v]||(b[v]=I.call(a));b=Ne(b)}R.apply(a,b),s&&!o&&b.length>0&&y+t.length>1&&le.uniqueSort(a)}return s&&(C=E,c=N),w};return n?ce(o):o}l=le.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=u(e)),n=t.length;while(n--)(o=xe(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},a=le.select=function(e,t,n,i){var o,a,c,s,d,f="function"==typeof e&&e,p=!i&&u(e=f.selector||e);if(n=n||[],1===p.length){if((a=p[0]=p[0].slice(0)).length>2&&"ID"===(c=a[0]).type&&9===t.nodeType&&g&&r.relative[a[1].type]){if(!(t=(r.find.ID(c.matches[0].replace(te,ne),t)||[])[0]))return n;f&&(t=t.parentNode),e=e.slice(a.shift().value.length)}o=K.needsContext.test(e)?0:a.length;while(o--){if(c=a[o],r.relative[s=c.type])break;if((d=r.find[s])&&(i=d(c.matches[0].replace(te,ne),ee.test(a[0].type)&&ge(t.parentNode)||t))){if(a.splice(o,1),!(e=i.length&&ye(a)))return R.apply(n,i),n;break}}}return(f||l(e,p))(i,t,!g,n,!t||ee.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(T).join("")===b,n.detectDuplicates=!!d,f(),n.sortDetached=se(function(e){return 1&e.compareDocumentPosition(p.createElement("fieldset"))}),se(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||de("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&se(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||de("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),se(function(e){return null==e.getAttribute("disabled")})||de(H,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null});var Ae=e.Sizzle;le.noConflict=function(){return e.Sizzle===le&&(e.Sizzle=Ae),le},"function"==typeof define&&define.amd?define(function(){return le}):"undefined"!=typeof module&&module.exports?module.exports=le:e.Sizzle=le}(window); //# sourceMappingURL=sizzle.min.map \ No newline at end of file diff --git a/app/bower_components/jquery/external/sizzle/dist/sizzle.min.map b/app/bower_components/jquery/external/sizzle/dist/sizzle.min.map index 876174e..06ebc1f 100644 --- a/app/bower_components/jquery/external/sizzle/dist/sizzle.min.map +++ b/app/bower_components/jquery/external/sizzle/dist/sizzle.min.map @@ -1 +1 @@ -{"version":3,"sources":["sizzle.js"],"names":["window","i","support","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","document","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","matches","contains","expando","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","hasOwn","hasOwnProperty","arr","pop","push_native","push","slice","indexOf","list","elem","len","length","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","toString","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","toLowerCase","dir","next","apply","call","childNodes","nodeType","e","target","els","j","Sizzle","selector","context","results","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","replace","setAttribute","toSelector","join","testContext","parentNode","querySelectorAll","qsaError","removeAttribute","keys","cache","key","value","cacheLength","shift","markFunction","fn","assert","el","createElement","removeChild","addHandle","attrs","handler","split","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","node","hasCompare","subWindow","doc","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","elems","tag","tmp","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","ret","attr","name","val","undefined","specified","escape","sel","error","msg","Error","uniqueSort","duplicates","detectDuplicates","sortStable","sort","splice","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">","first"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","type","what","last","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","text","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","eq","even","odd","lt","gt","radio","checkbox","file","password","image","createInputPseudo","submit","reset","createButtonPseudo","prototype","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","map","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","concat","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","Math","random","token","compiled","defaultValue","_sizzle","noConflict","define","amd","module","exports"],"mappings":"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","file":"sizzle.min.js"} \ No newline at end of file +{"version":3,"sources":["sizzle.js"],"names":["window","i","support","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","document","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","matches","contains","expando","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","hasOwn","hasOwnProperty","arr","pop","pushNative","push","slice","indexOf","list","elem","len","length","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","toString","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","toLowerCase","dir","next","apply","call","childNodes","nodeType","e","target","els","j","Sizzle","selector","context","results","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","testContext","parentNode","scope","getAttribute","replace","setAttribute","toSelector","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","value","cacheLength","shift","markFunction","fn","assert","el","createElement","removeChild","addHandle","attrs","handler","split","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","node","hasCompare","subWindow","doc","defaultView","top","addEventListener","attachEvent","appendChild","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","elems","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","ret","attr","name","val","undefined","specified","sel","error","msg","Error","uniqueSort","duplicates","detectDuplicates","sortStable","sort","splice","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">","first"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","type","what","_argument","last","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","text","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","_matchIndexes","eq","even","odd","lt","gt","radio","checkbox","file","password","image","createInputPseudo","submit","reset","createButtonPseudo","prototype","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","map","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","concat","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","Math","random","token","compiled","_name","defaultValue","_sizzle","noConflict","define","amd","module","exports"],"mappings":"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","file":"sizzle.min.js"} \ No newline at end of file diff --git a/app/bower_components/jquery/src/.eslintrc.json b/app/bower_components/jquery/src/.eslintrc.json deleted file mode 100644 index 3d0ca18..0000000 --- a/app/bower_components/jquery/src/.eslintrc.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "root": true, - - "extends": "../.eslintrc-browser.json", - - "overrides": [ - { - "files": "wrapper.js", - "globals": { - "jQuery": false - } - } - ] -} diff --git a/app/bower_components/jquery/src/ajax.js b/app/bower_components/jquery/src/ajax.js index 4cbefab..4be4a9e 100644 --- a/app/bower_components/jquery/src/ajax.js +++ b/app/bower_components/jquery/src/ajax.js @@ -8,7 +8,7 @@ define( [ "./ajax/var/rquery", "./core/init", - "./ajax/parseXML", + "./core/parseXML", "./event/trigger", "./deferred", "./serialize" // jQuery.param @@ -50,7 +50,8 @@ var // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; + +originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -431,8 +432,8 @@ jQuery.extend( { // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, + jQuery( callbackContext ) : + jQuery.event, // Deferreds deferred = jQuery.Deferred(), @@ -610,7 +611,8 @@ jQuery.extend( { // Add or update anti-cache param if needed if ( s.cache === false ) { cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; } // Put hash and anti-cache on the URL that will be requested (gh-1732) @@ -743,6 +745,13 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { + s.converters[ "text script" ] = function() {}; + } + // Convert no matter what (that way responseXXX fields are always set) response = ajaxConvert( s, response, jqXHR, isSuccess ); @@ -833,7 +842,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "get", "post" ], function( i, method ) { +jQuery.each( [ "get", "post" ], function( _i, method ) { jQuery[ method ] = function( url, data, callback, type ) { // Shift arguments if data argument was omitted @@ -854,5 +863,14 @@ jQuery.each( [ "get", "post" ], function( i, method ) { }; } ); +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + return jQuery; } ); diff --git a/app/bower_components/jquery/src/ajax/jsonp.js b/app/bower_components/jquery/src/ajax/jsonp.js index 28ae036..10186de 100644 --- a/app/bower_components/jquery/src/ajax/jsonp.js +++ b/app/bower_components/jquery/src/ajax/jsonp.js @@ -15,7 +15,7 @@ var oldCallbacks = [], jQuery.ajaxSetup( { jsonp: "callback", jsonpCallback: function() { - var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) ); this[ callback ] = true; return callback; } diff --git a/app/bower_components/jquery/src/ajax/var/nonce.js b/app/bower_components/jquery/src/ajax/var/nonce.js index 33d0cff..c0e4472 100644 --- a/app/bower_components/jquery/src/ajax/var/nonce.js +++ b/app/bower_components/jquery/src/ajax/var/nonce.js @@ -1,5 +1,5 @@ define( function() { "use strict"; - return Date.now(); + return { guid: Date.now() }; } ); diff --git a/app/bower_components/jquery/src/attributes/attr.js b/app/bower_components/jquery/src/attributes/attr.js index 6b5cbd2..4c43eb1 100644 --- a/app/bower_components/jquery/src/attributes/attr.js +++ b/app/bower_components/jquery/src/attributes/attr.js @@ -117,7 +117,7 @@ boolHook = { } }; -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { var getter = attrHandle[ name ] || jQuery.find.attr; attrHandle[ name ] = function( elem, name, isXML ) { diff --git a/app/bower_components/jquery/src/attributes/classes.js b/app/bower_components/jquery/src/attributes/classes.js index 0c90a8d..23e4847 100644 --- a/app/bower_components/jquery/src/attributes/classes.js +++ b/app/bower_components/jquery/src/attributes/classes.js @@ -159,8 +159,8 @@ jQuery.fn.extend( { if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" + "" : + dataPriv.get( this, "__className__" ) || "" ); } } @@ -175,7 +175,7 @@ jQuery.fn.extend( { while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; + return true; } } diff --git a/app/bower_components/jquery/src/core.js b/app/bower_components/jquery/src/core.js index aeafc70..03eefa7 100644 --- a/app/bower_components/jquery/src/core.js +++ b/app/bower_components/jquery/src/core.js @@ -4,10 +4,9 @@ define( [ "./var/arr", - "./var/document", "./var/getProto", "./var/slice", - "./var/concat", + "./var/flat", "./var/push", "./var/indexOf", "./var/class2type", @@ -20,14 +19,14 @@ define( [ "./var/isWindow", "./core/DOMEval", "./core/toType" -], function( arr, document, getProto, slice, concat, push, indexOf, +], function( arr, getProto, slice, flat, push, indexOf, class2type, toString, hasOwn, fnToString, ObjectFunctionString, support, isFunction, isWindow, DOMEval, toType ) { "use strict"; var - version = "3.4.1", + version = "3.6.0", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -35,11 +34,7 @@ var // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + }; jQuery.fn = jQuery.prototype = { @@ -105,6 +100,18 @@ jQuery.fn = jQuery.prototype = { return this.eq( -1 ); }, + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); @@ -238,9 +245,10 @@ jQuery.extend( { return true; }, - // Evaluates a script in a global context - globalEval: function( code, options ) { - DOMEval( code, { nonce: options && options.nonce } ); + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); }, each: function( obj, callback ) { @@ -264,13 +272,6 @@ jQuery.extend( { return obj; }, - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - // results is for internal usage only makeArray: function( arr, results ) { var ret = results || []; @@ -279,7 +280,7 @@ jQuery.extend( { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? - [ arr ] : arr + [ arr ] : arr ); } else { push.call( ret, arr ); @@ -357,7 +358,7 @@ jQuery.extend( { } // Flatten any nested arrays - return concat.apply( [], ret ); + return flat( ret ); }, // A global GUID counter for objects @@ -374,9 +375,9 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); function isArrayLike( obj ) { diff --git a/app/bower_components/jquery/src/core/access.js b/app/bower_components/jquery/src/core/access.js index 842c4a4..524c980 100644 --- a/app/bower_components/jquery/src/core/access.js +++ b/app/bower_components/jquery/src/core/access.js @@ -38,7 +38,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { // ...except when executing function values } else { bulk = fn; - fn = function( elem, key, value ) { + fn = function( elem, _key, value ) { return bulk.call( jQuery( elem ), value ); }; } @@ -48,8 +48,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } diff --git a/app/bower_components/jquery/src/core/camelCase.js b/app/bower_components/jquery/src/core/camelCase.js index 799fb37..b271044 100644 --- a/app/bower_components/jquery/src/core/camelCase.js +++ b/app/bower_components/jquery/src/core/camelCase.js @@ -7,7 +7,7 @@ var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace() -function fcamelCase( all, letter ) { +function fcamelCase( _all, letter ) { return letter.toUpperCase(); } diff --git a/app/bower_components/jquery/src/core/nodeName.js b/app/bower_components/jquery/src/core/nodeName.js index 8a5f5f0..ef1b80b 100644 --- a/app/bower_components/jquery/src/core/nodeName.js +++ b/app/bower_components/jquery/src/core/nodeName.js @@ -4,9 +4,9 @@ define( function() { function nodeName( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); -}; +} return nodeName; diff --git a/app/bower_components/jquery/src/ajax/parseXML.js b/app/bower_components/jquery/src/core/parseXML.js similarity index 54% rename from app/bower_components/jquery/src/ajax/parseXML.js rename to app/bower_components/jquery/src/core/parseXML.js index acf7ab2..9b5d290 100644 --- a/app/bower_components/jquery/src/ajax/parseXML.js +++ b/app/bower_components/jquery/src/core/parseXML.js @@ -6,7 +6,7 @@ define( [ // Cross-browser xml parsing jQuery.parseXML = function( data ) { - var xml; + var xml, parserErrorElem; if ( !data || typeof data !== "string" ) { return null; } @@ -15,12 +15,17 @@ jQuery.parseXML = function( data ) { // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } + } catch ( e ) {} - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); } return xml; }; diff --git a/app/bower_components/jquery/src/css.js b/app/bower_components/jquery/src/css.js index ac4c66e..a41cc2c 100644 --- a/app/bower_components/jquery/src/css.js +++ b/app/bower_components/jquery/src/css.js @@ -2,6 +2,7 @@ define( [ "./core", "./core/access", "./core/camelCase", + "./core/nodeName", "./var/rcssNum", "./css/var/rnumnonpx", "./css/var/cssExpand", @@ -16,7 +17,7 @@ define( [ "./core/init", "./core/ready", "./selector" // contains -], function( jQuery, access, camelCase, rcssNum, rnumnonpx, cssExpand, +], function( jQuery, access, camelCase, nodeName, rcssNum, rnumnonpx, cssExpand, getStyles, swap, curCSS, adjustCSS, addGetHookIf, support, finalPropName ) { "use strict"; @@ -34,7 +35,7 @@ var fontWeight: "400" }; -function setPositiveNumber( elem, value, subtract ) { +function setPositiveNumber( _elem, value, subtract ) { // Any relative (+/-) values have already been // normalized at this point @@ -139,17 +140,26 @@ function getWidthOrHeight( elem, dimension, extra ) { } - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - // Support: IE 9-11 only - // Also use offsetWidth/offsetHeight for when box sizing is unreliable - // We use getClientRects() to check for hidden/disconnected. - // In those cases, the computed value can be trusted to be border-box + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected elem.getClientRects().length ) { isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; @@ -344,7 +354,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "height", "width" ], function( i, dimension ) { +jQuery.each( [ "height", "width" ], function( _i, dimension ) { jQuery.cssHooks[ dimension ] = { get: function( elem, computed, extra ) { if ( computed ) { @@ -360,10 +370,10 @@ jQuery.each( [ "height", "width" ], function( i, dimension ) { // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); } }, @@ -422,7 +432,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) - ) + "px"; + ) + "px"; } } ); diff --git a/app/bower_components/jquery/src/css/support.js b/app/bower_components/jquery/src/css/support.js index 9c4da57..3a9d25c 100644 --- a/app/bower_components/jquery/src/css/support.js +++ b/app/bower_components/jquery/src/css/support.js @@ -60,7 +60,7 @@ define( [ } var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableMarginLeftVal, + reliableTrDimensionsVal, reliableMarginLeftVal, container = document.createElement( "div" ), div = document.createElement( "div" ); @@ -95,6 +95,54 @@ define( [ scrollboxSize: function() { computeStyleTests(); return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. + tr.style.height = "1px"; + trChild.style.height = "9px"; + + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; } } ); } )(); diff --git a/app/bower_components/jquery/src/css/var/swap.js b/app/bower_components/jquery/src/css/var/swap.js index 1a9556b..69388e5 100644 --- a/app/bower_components/jquery/src/css/var/swap.js +++ b/app/bower_components/jquery/src/css/var/swap.js @@ -3,7 +3,7 @@ define( function() { "use strict"; // A method for quickly swapping in/out CSS properties to get correct calculations. -return function( elem, options, callback, args ) { +return function( elem, options, callback ) { var ret, name, old = {}; @@ -13,7 +13,7 @@ return function( elem, options, callback, args ) { elem.style[ name ] = options[ name ]; } - ret = callback.apply( elem, args || [] ); + ret = callback.call( elem ); // Revert the old values for ( name in options ) { diff --git a/app/bower_components/jquery/src/deferred.js b/app/bower_components/jquery/src/deferred.js index 0425d36..439653f 100644 --- a/app/bower_components/jquery/src/deferred.js +++ b/app/bower_components/jquery/src/deferred.js @@ -79,7 +79,7 @@ jQuery.extend( { var fns = arguments; return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { + jQuery.each( tuples, function( _i, tuple ) { // Map tuples (progress, done, fail) to arguments (done, fail, progress) var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; @@ -359,8 +359,8 @@ jQuery.extend( { resolveContexts = Array( i ), resolveValues = slice.call( arguments ), - // the master Deferred - master = jQuery.Deferred(), + // the primary Deferred + primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { @@ -368,30 +368,30 @@ jQuery.extend( { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || + if ( primary.state() === "pending" || isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - return master.then(); + return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } - return master.promise(); + return primary.promise(); } } ); diff --git a/app/bower_components/jquery/src/deprecated.js b/app/bower_components/jquery/src/deprecated.js index c11b0d3..cc13c3c 100644 --- a/app/bower_components/jquery/src/deprecated.js +++ b/app/bower_components/jquery/src/deprecated.js @@ -7,31 +7,15 @@ define( [ "./var/isWindow", "./var/slice", - "./event/alias" + "./deprecated/ajax-event-alias", + "./deprecated/event" ], function( jQuery, nodeName, camelCase, toType, isFunction, isWindow, slice ) { "use strict"; -jQuery.fn.extend( { - - bind: function( types, data, fn ) { - return this.on( types, null, data, fn ); - }, - unbind: function( types, fn ) { - return this.off( types, null, fn ); - }, - - delegate: function( selector, types, data, fn ) { - return this.on( types, selector, data, fn ); - }, - undelegate: function( selector, types, fn ) { - - // ( namespace ) or ( selector, types [, fn] ) - return arguments.length === 1 ? - this.off( selector, "**" ) : - this.off( types, selector || "**", fn ); - } -} ); +// Support: Android <=4.0 only +// Make sure we trim BOM and NBSP +var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; // Bind a function to a context, optionally partially applying any // arguments. @@ -95,4 +79,9 @@ jQuery.isNumeric = function( obj ) { !isNaN( obj - parseFloat( obj ) ); }; +jQuery.trim = function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); +}; } ); diff --git a/app/bower_components/jquery/src/event/ajax.js b/app/bower_components/jquery/src/deprecated/ajax-event-alias.js similarity index 74% rename from app/bower_components/jquery/src/event/ajax.js rename to app/bower_components/jquery/src/deprecated/ajax-event-alias.js index 500b36c..b96c0aa 100644 --- a/app/bower_components/jquery/src/event/ajax.js +++ b/app/bower_components/jquery/src/deprecated/ajax-event-alias.js @@ -1,11 +1,11 @@ define( [ "../core", + "../ajax", "../event" ], function( jQuery ) { "use strict"; -// Attach a bunch of functions for handling common AJAX events jQuery.each( [ "ajaxStart", "ajaxStop", @@ -13,7 +13,7 @@ jQuery.each( [ "ajaxError", "ajaxSuccess", "ajaxSend" -], function( i, type ) { +], function( _i, type ) { jQuery.fn[ type ] = function( fn ) { return this.on( type, fn ); }; diff --git a/app/bower_components/jquery/src/deprecated/event.js b/app/bower_components/jquery/src/deprecated/event.js new file mode 100644 index 0000000..d46a3b8 --- /dev/null +++ b/app/bower_components/jquery/src/deprecated/event.js @@ -0,0 +1,50 @@ +define( [ + "../core", + + "../event", + "../event/trigger" +], function( jQuery ) { + +"use strict"; + +jQuery.fn.extend( { + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? + this.off( selector, "**" ) : + this.off( types, selector || "**", fn ); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +} ); + +jQuery.each( + ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( _i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + } +); + +} ); diff --git a/app/bower_components/jquery/src/dimensions.js b/app/bower_components/jquery/src/dimensions.js index 2a2c039..5d12450 100644 --- a/app/bower_components/jquery/src/dimensions.js +++ b/app/bower_components/jquery/src/dimensions.js @@ -9,8 +9,11 @@ define( [ // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, - function( defaultExtra, funcName ) { + jQuery.each( { + padding: "inner" + name, + content: type, + "": "outer" + name + }, function( defaultExtra, funcName ) { // Margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { diff --git a/app/bower_components/jquery/src/effects.js b/app/bower_components/jquery/src/effects.js index a778de1..4c011b1 100644 --- a/app/bower_components/jquery/src/effects.js +++ b/app/bower_components/jquery/src/effects.js @@ -7,7 +7,6 @@ define( [ "./var/rnothtmlwhite", "./css/var/cssExpand", "./css/var/isHiddenWithinTree", - "./css/var/swap", "./css/adjustCSS", "./data/var/dataPriv", "./css/showHide", @@ -20,7 +19,7 @@ define( [ "./css", "./effects/Tween" ], function( jQuery, camelCase, document, isFunction, rcssNum, rnothtmlwhite, cssExpand, - isHiddenWithinTree, swap, adjustCSS, dataPriv, showHide ) { + isHiddenWithinTree, adjustCSS, dataPriv, showHide ) { "use strict"; @@ -231,7 +230,7 @@ function defaultPrefilter( elem, props, opts ) { anim.done( function() { - /* eslint-enable no-loop-func */ + /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { @@ -351,7 +350,7 @@ function Animation( elem, properties, options ) { tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, @@ -524,7 +523,8 @@ jQuery.fn.extend( { anim.stop( true ); } }; - doAnimation.finish = doAnimation; + + doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : @@ -542,7 +542,7 @@ jQuery.fn.extend( { clearQueue = type; type = undefined; } - if ( clearQueue && type !== false ) { + if ( clearQueue ) { this.queue( type || "fx", [] ); } @@ -625,7 +625,7 @@ jQuery.fn.extend( { } } ); -jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { var cssFn = jQuery.fn[ name ]; jQuery.fn[ name ] = function( speed, easing, callback ) { return speed == null || typeof speed === "boolean" ? diff --git a/app/bower_components/jquery/src/effects/Tween.js b/app/bower_components/jquery/src/effects/Tween.js index bf501ea..c452b7f 100644 --- a/app/bower_components/jquery/src/effects/Tween.js +++ b/app/bower_components/jquery/src/effects/Tween.js @@ -87,7 +87,7 @@ Tween.propHooks = { if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || + jQuery.cssHooks[ tween.prop ] || tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { diff --git a/app/bower_components/jquery/src/event.js b/app/bower_components/jquery/src/event.js index 3ff11ad..a954400 100644 --- a/app/bower_components/jquery/src/event.js +++ b/app/bower_components/jquery/src/event.js @@ -6,20 +6,18 @@ define( [ "./var/rnothtmlwhite", "./var/rcheckableType", "./var/slice", + "./data/var/acceptData", "./data/var/dataPriv", "./core/nodeName", "./core/init", "./selector" ], function( jQuery, document, documentElement, isFunction, rnothtmlwhite, - rcheckableType, slice, dataPriv, nodeName ) { + rcheckableType, slice, acceptData, dataPriv, nodeName ) { "use strict"; -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; @@ -124,8 +122,8 @@ jQuery.event = { special, handlers, type, namespaces, origType, elemData = dataPriv.get( elem ); - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { return; } @@ -149,7 +147,7 @@ jQuery.event = { // Init the element's event structure and main handler, if this is the first if ( !( events = elemData.events ) ) { - events = elemData.events = {}; + events = elemData.events = Object.create( null ); } if ( !( eventHandle = elemData.handle ) ) { eventHandle = elemData.handle = function( e ) { @@ -307,12 +305,15 @@ jQuery.event = { dispatch: function( nativeEvent ) { - // Make a writable jQuery.Event from the native event object - var event = jQuery.event.fix( nativeEvent ); - var i, j, ret, matched, handleObj, handlerQueue, args = new Array( arguments.length ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -436,12 +437,12 @@ jQuery.event = { get: isFunction( hook ) ? function() { if ( this.originalEvent ) { - return hook( this.originalEvent ); + return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { - return this.originalEvent[ name ]; + return this.originalEvent[ name ]; } }, @@ -580,7 +581,13 @@ function leverageNative( el, type, expectSync ) { // Cancel the outer synthetic event event.stopImmediatePropagation(); event.preventDefault(); - return result.value; + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; } // If this is an inner synthetic event for an event with a bubbling surrogate @@ -745,34 +752,7 @@ jQuery.each( { 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; - } + which: true }, jQuery.event.addProp ); jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { @@ -798,6 +778,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp return true; }, + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + delegateType: delegateType }; } ); diff --git a/app/bower_components/jquery/src/event/alias.js b/app/bower_components/jquery/src/event/alias.js deleted file mode 100644 index 863c94a..0000000 --- a/app/bower_components/jquery/src/event/alias.js +++ /dev/null @@ -1,29 +0,0 @@ -define( [ - "../core", - - "../event", - "./trigger" -], function( jQuery ) { - -"use strict"; - -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 ); - } -} ); - -} ); diff --git a/app/bower_components/jquery/src/event/focusin.js b/app/bower_components/jquery/src/event/focusin.js index 7faef29..3da86c7 100644 --- a/app/bower_components/jquery/src/event/focusin.js +++ b/app/bower_components/jquery/src/event/focusin.js @@ -27,7 +27,10 @@ if ( !support.focusin ) { jQuery.event.special[ fix ] = { setup: function() { - var doc = this.ownerDocument || this, + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ); if ( !attaches ) { @@ -36,7 +39,7 @@ if ( !support.focusin ) { dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); }, teardown: function() { - var doc = this.ownerDocument || this, + var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ) - 1; if ( !attaches ) { diff --git a/app/bower_components/jquery/src/event/trigger.js b/app/bower_components/jquery/src/event/trigger.js index cf40b4f..2f5e65e 100644 --- a/app/bower_components/jquery/src/event/trigger.js +++ b/app/bower_components/jquery/src/event/trigger.js @@ -103,7 +103,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); diff --git a/app/bower_components/jquery/src/exports/global.js b/app/bower_components/jquery/src/exports/global.js index 460b56e..2cc9577 100644 --- a/app/bower_components/jquery/src/exports/global.js +++ b/app/bower_components/jquery/src/exports/global.js @@ -1,6 +1,6 @@ define( [ "../core" -], function( jQuery, noGlobal ) { +], function( jQuery ) { "use strict"; @@ -27,7 +27,7 @@ jQuery.noConflict = function( deep ) { // Expose jQuery and $ identifiers, even in AMD // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) // and CommonJS for browser emulators (#13566) -if ( !noGlobal ) { +if ( typeof noGlobal === "undefined" ) { window.jQuery = window.$ = jQuery; } diff --git a/app/bower_components/jquery/src/jquery.js b/app/bower_components/jquery/src/jquery.js index 0e026a6..0c144c1 100644 --- a/app/bower_components/jquery/src/jquery.js +++ b/app/bower_components/jquery/src/jquery.js @@ -23,7 +23,8 @@ define( [ "./ajax/script", "./ajax/jsonp", "./ajax/load", - "./event/ajax", + "./core/parseXML", + "./core/parseHTML", "./effects", "./effects/animatedSelector", "./offset", diff --git a/app/bower_components/jquery/src/manipulation.js b/app/bower_components/jquery/src/manipulation.js index ab19d8b..dec21ea 100644 --- a/app/bower_components/jquery/src/manipulation.js +++ b/app/bower_components/jquery/src/manipulation.js @@ -1,7 +1,7 @@ define( [ "./core", "./core/isAttached", - "./var/concat", + "./var/flat", "./var/isFunction", "./var/push", "./var/rcheckableType", @@ -24,7 +24,7 @@ define( [ "./traversing", "./selector", "./event" -], function( jQuery, isAttached, concat, isFunction, push, rcheckableType, +], function( jQuery, isAttached, flat, isFunction, push, rcheckableType, access, rtagName, rscriptType, wrapMap, getAll, setGlobalEval, buildFragment, support, dataPriv, dataUser, acceptData, DOMEval, nodeName ) { @@ -33,13 +33,6 @@ define( [ 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 only // In IE/Edge using regex groups here causes severe slowdowns. // See https://connect.microsoft.com/IE/feedback/details/1736512/ @@ -76,7 +69,7 @@ function restoreScript( elem ) { } function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + var i, l, type, pdataOld, udataOld, udataCur, events; if ( dest.nodeType !== 1 ) { return; @@ -84,13 +77,11 @@ function cloneCopyEvent( src, dest ) { // 1. Copy private data: events, handlers, etc. if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); + pdataOld = dataPriv.get( src ); events = pdataOld.events; if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; + dataPriv.remove( dest, "handle events" ); for ( type in events ) { for ( i = 0, l = events[ type ].length; i < l; i++ ) { @@ -126,7 +117,7 @@ function fixInput( src, dest ) { function domManip( collection, args, callback, ignored ) { // Flatten any nested arrays - args = concat.apply( [], args ); + args = flat( args ); var fragment, first, scripts, hasScripts, node, doc, i = 0, @@ -201,7 +192,7 @@ function domManip( collection, args, callback, ignored ) { if ( jQuery._evalUrl && !node.noModule ) { jQuery._evalUrl( node.src, { nonce: node.nonce || node.getAttribute( "nonce" ) - } ); + }, doc ); } } else { DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); @@ -238,7 +229,7 @@ function remove( elem, selector, keepData ) { jQuery.extend( { htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1>" ); + return html; }, clone: function( elem, dataAndEvents, deepDataAndEvents ) { diff --git a/app/bower_components/jquery/src/manipulation/_evalUrl.js b/app/bower_components/jquery/src/manipulation/_evalUrl.js index 9a4d2ac..6163b68 100644 --- a/app/bower_components/jquery/src/manipulation/_evalUrl.js +++ b/app/bower_components/jquery/src/manipulation/_evalUrl.js @@ -4,7 +4,7 @@ define( [ "use strict"; -jQuery._evalUrl = function( url, options ) { +jQuery._evalUrl = function( url, options, doc ) { return jQuery.ajax( { url: url, @@ -22,7 +22,7 @@ jQuery._evalUrl = function( url, options ) { "text script": function() {} }, dataFilter: function( response ) { - jQuery.globalEval( response, options ); + jQuery.globalEval( response, options, doc ); } } ); }; diff --git a/app/bower_components/jquery/src/manipulation/support.js b/app/bower_components/jquery/src/manipulation/support.js index 4a5d9af..62d6bb3 100644 --- a/app/bower_components/jquery/src/manipulation/support.js +++ b/app/bower_components/jquery/src/manipulation/support.js @@ -28,6 +28,12 @@ define( [ // Make sure textarea (and checkbox) defaultValue is properly cloned div.innerHTML = ""; support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; } )(); return support; diff --git a/app/bower_components/jquery/src/manipulation/wrapMap.js b/app/bower_components/jquery/src/manipulation/wrapMap.js index 1f446f7..da48bf9 100644 --- a/app/bower_components/jquery/src/manipulation/wrapMap.js +++ b/app/bower_components/jquery/src/manipulation/wrapMap.js @@ -1,13 +1,12 @@ -define( function() { +define( [ + "./support" +], function( support ) { "use strict"; // 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. @@ -19,11 +18,13 @@ var wrapMap = { _default: [ 0, "", "" ] }; -// Support: IE <=9 only -wrapMap.optgroup = wrapMap.option; - wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + return wrapMap; } ); diff --git a/app/bower_components/jquery/src/offset.js b/app/bower_components/jquery/src/offset.js index 83b1c3a..6e97358 100644 --- a/app/bower_components/jquery/src/offset.js +++ b/app/bower_components/jquery/src/offset.js @@ -1,7 +1,6 @@ define( [ "./core", "./core/access", - "./var/document", "./var/documentElement", "./var/isFunction", "./css/var/rnumnonpx", @@ -12,8 +11,8 @@ define( [ "./core/init", "./css", "./selector" // contains -], function( jQuery, access, document, documentElement, isFunction, rnumnonpx, - curCSS, addGetHookIf, support, isWindow ) { +], function( jQuery, access, documentElement, isFunction, rnumnonpx, + curCSS, addGetHookIf, support, isWindow ) { "use strict"; @@ -214,7 +213,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 // getComputedStyle returns percent when specified for top/left/bottom/right; // rather than make the css module depend on the offset module, just check for it here -jQuery.each( [ "top", "left" ], function( i, prop ) { +jQuery.each( [ "top", "left" ], function( _i, prop ) { jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, function( elem, computed ) { if ( computed ) { diff --git a/app/bower_components/jquery/src/selector-native.js b/app/bower_components/jquery/src/selector-native.js index da837a0..05cd8ea 100644 --- a/app/bower_components/jquery/src/selector-native.js +++ b/app/bower_components/jquery/src/selector-native.js @@ -34,6 +34,7 @@ define( [ */ var hasDuplicate, sortInput, + rhtmlSuffix = /HTML$/i, sortStable = jQuery.expando.split( "" ).sort( sortOrder ).join( "" ) === jQuery.expando, matches = documentElement.matches || documentElement.webkitMatchesSelector || @@ -200,11 +201,14 @@ jQuery.extend( { return a === bup || !!( bup && bup.nodeType === 1 && adown.contains( bup ) ); }, isXMLDoc: function( elem ) { + var namespace = elem.namespaceURI, + documentElement = ( elem.ownerDocument || elem ).documentElement; - // 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; + // Assume HTML when documentElement doesn't yet exist, such as inside + // document fragments. + return !rhtmlSuffix.test( namespace || + documentElement && documentElement.nodeName || + "HTML" ); }, expr: { attrHandle: {}, diff --git a/app/bower_components/jquery/src/serialize.js b/app/bower_components/jquery/src/serialize.js index d8a9a36..11a8624 100644 --- a/app/bower_components/jquery/src/serialize.js +++ b/app/bower_components/jquery/src/serialize.js @@ -105,16 +105,14 @@ jQuery.fn.extend( { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { + } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( i, elem ) { + } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { diff --git a/app/bower_components/jquery/src/traversing.js b/app/bower_components/jquery/src/traversing.js index 426d5b6..de37718 100644 --- a/app/bower_components/jquery/src/traversing.js +++ b/app/bower_components/jquery/src/traversing.js @@ -1,5 +1,6 @@ define( [ "./core", + "./var/getProto", "./var/indexOf", "./traversing/var/dir", "./traversing/var/siblings", @@ -9,7 +10,7 @@ define( [ "./core/init", "./traversing/findFilter", "./selector" -], function( jQuery, indexOf, dir, siblings, rneedsContext, nodeName ) { +], function( jQuery, getProto, indexOf, dir, siblings, rneedsContext, nodeName ) { "use strict"; @@ -117,7 +118,7 @@ jQuery.each( { parents: function( elem ) { return dir( elem, "parentNode" ); }, - parentsUntil: function( elem, i, until ) { + parentsUntil: function( elem, _i, until ) { return dir( elem, "parentNode", until ); }, next: function( elem ) { @@ -132,10 +133,10 @@ jQuery.each( { prevAll: function( elem ) { return dir( elem, "previousSibling" ); }, - nextUntil: function( elem, i, until ) { + nextUntil: function( elem, _i, until ) { return dir( elem, "nextSibling", until ); }, - prevUntil: function( elem, i, until ) { + prevUntil: function( elem, _i, until ) { return dir( elem, "previousSibling", until ); }, siblings: function( elem ) { @@ -145,7 +146,13 @@ jQuery.each( { return siblings( elem.firstChild ); }, contents: function( elem ) { - if ( typeof elem.contentDocument !== "undefined" ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + return elem.contentDocument; } diff --git a/app/bower_components/jquery/src/var/concat.js b/app/bower_components/jquery/src/var/concat.js deleted file mode 100644 index e47c19d..0000000 --- a/app/bower_components/jquery/src/var/concat.js +++ /dev/null @@ -1,7 +0,0 @@ -define( [ - "./arr" -], function( arr ) { - "use strict"; - - return arr.concat; -} ); diff --git a/app/bower_components/jquery/src/var/flat.js b/app/bower_components/jquery/src/var/flat.js new file mode 100644 index 0000000..86f91a6 --- /dev/null +++ b/app/bower_components/jquery/src/var/flat.js @@ -0,0 +1,16 @@ +define( [ + "./arr" +], function( arr ) { + +"use strict"; + +// Support: IE 9 - 11+, Edge 18+, Android Browser 4.0 - 4.3 only, iOS 7 - 11 only, Safari 11 only, +// Firefox <= 61 only +// Provide fallback for browsers without Array#flat. +return arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + +} ); diff --git a/app/bower_components/jquery/src/var/isFunction.js b/app/bower_components/jquery/src/var/isFunction.js index dad662e..6e2d3a7 100644 --- a/app/bower_components/jquery/src/var/isFunction.js +++ b/app/bower_components/jquery/src/var/isFunction.js @@ -3,11 +3,15 @@ define( function() { return function isFunction( obj ) { - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; } ); diff --git a/app/bower_components/lodash/.bower.json b/app/bower_components/lodash/.bower.json index f1bd82c..1afdbf5 100644 --- a/app/bower_components/lodash/.bower.json +++ b/app/bower_components/lodash/.bower.json @@ -1,14 +1,14 @@ { "name": "lodash", "homepage": "https://github.com/lodash/lodash", - "version": "4.17.15", - "_release": "4.17.15", + "version": "4.17.21", + "_release": "4.17.21", "_resolution": { "type": "version", - "tag": "4.17.15", - "commit": "ee3991de2ce4d050c7f1a5b402ba308db6983a62" + "tag": "4.17.21", + "commit": "f299b52f39486275a9e6483b60a410e06520c538" }, "_source": "https://github.com/lodash/lodash.git", - "_target": "4.17.15", + "_target": "4.17.21", "_originalSource": "lodash" } \ No newline at end of file diff --git a/app/bower_components/lodash/.travis.yml b/app/bower_components/lodash/.travis.yml index 3d56234..c6c9d8c 100644 --- a/app/bower_components/lodash/.travis.yml +++ b/app/bower_components/lodash/.travis.yml @@ -35,7 +35,7 @@ git: branches: only: - master - - 4.17.5 + - 4.17 notifications: webhooks: @@ -87,10 +87,10 @@ install: # Install packages. - yarn - # Use lodash-cli from GitHub. - - git clone --depth=10 --branch=master git://github.com/lodash/lodash-cli ./node_modules/lodash-cli - - mkdir -p ./node_modules/lodash-cli/node_modules/lodash; cd $_; cp ../../../../lodash.js ./lodash.js; cp ../../../../package.json ./package.json - - cd ../../; npm i --production; cd ../../ + # Use lodash-cli from GitHub. Temporarily use a fork. + - git clone --depth=10 --branch=master git://github.com/bnjmnt4n/lodash-cli ./node_modules/lodash-cli + - cd ./node_modules/lodash-cli/; npm i --production; cd ../../ + - mkdir -p ./node_modules/lodash-cli/node_modules/lodash; cd $_; cp ../../../../lodash.js ./lodash.js; cp ../../../../package.json ./package.json; cd ../../../../ script: # Detect code coverage. diff --git a/app/bower_components/lodash/README.md b/app/bower_components/lodash/README.md index c0a2bb8..9d2ce70 100644 --- a/app/bower_components/lodash/README.md +++ b/app/bower_components/lodash/README.md @@ -1,4 +1,4 @@ -# lodash v4.17.15 +# lodash v4.17.21 [Site](https://lodash.com/) | [Docs](https://lodash.com/docs) | @@ -20,11 +20,11 @@ $ lodash core -o ./dist/lodash.core.js ## Download - * [Core build](https://raw.githubusercontent.com/lodash/lodash/4.17.15/dist/lodash.core.js) ([~4 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.17.15/dist/lodash.core.min.js)) - * [Full build](https://raw.githubusercontent.com/lodash/lodash/4.17.15/dist/lodash.js) ([~24 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.17.15/dist/lodash.min.js)) + * [Core build](https://raw.githubusercontent.com/lodash/lodash/4.17.21/dist/lodash.core.js) ([~4 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.17.21/dist/lodash.core.min.js)) + * [Full build](https://raw.githubusercontent.com/lodash/lodash/4.17.21/dist/lodash.js) ([~24 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.17.21/dist/lodash.min.js)) * [CDN copies](https://www.jsdelivr.com/projects/lodash) -Lodash is released under the [MIT license](https://raw.githubusercontent.com/lodash/lodash/4.17.15/LICENSE) & supports modern environments.
+Lodash is released under the [MIT license](https://raw.githubusercontent.com/lodash/lodash/4.17.21/LICENSE) & supports modern environments.
Review the [build differences](https://github.com/lodash/lodash/wiki/build-differences) & pick one that’s right for you. ## Installation diff --git a/app/bower_components/lodash/dist/lodash.core.js b/app/bower_components/lodash/dist/lodash.core.js index 89c77de..be1d567 100644 --- a/app/bower_components/lodash/dist/lodash.core.js +++ b/app/bower_components/lodash/dist/lodash.core.js @@ -13,7 +13,7 @@ var undefined; /** Used as the semantic version number. */ - var VERSION = '4.17.15'; + var VERSION = '4.17.21'; /** Error message constants. */ var FUNC_ERROR_TEXT = 'Expected a function'; @@ -1183,6 +1183,12 @@ if (arrLength != othLength && !(isPartial && othLength > arrLength)) { return false; } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } var index = -1, result = true, seen = (bitmask & COMPARE_UNORDERED_FLAG) ? [] : undefined; @@ -1293,6 +1299,12 @@ return false; } } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } var result = true; var skipCtor = isPartial; @@ -1935,6 +1947,10 @@ * // The `_.property` iteratee shorthand. * _.filter(users, 'active'); * // => objects for ['barney'] + * + * // Combining several predicates using `_.overEvery` or `_.overSome`. + * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); + * // => objects for ['fred', 'barney'] */ function filter(collection, predicate) { return baseFilter(collection, baseIteratee(predicate)); @@ -2188,15 +2204,15 @@ * var users = [ * { 'user': 'fred', 'age': 48 }, * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 }, + * { 'user': 'fred', 'age': 30 }, * { 'user': 'barney', 'age': 34 } * ]; * * _.sortBy(users, [function(o) { return o.user; }]); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] * * _.sortBy(users, ['user', 'age']); - * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]] + * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] */ function sortBy(collection, iteratee) { var index = 0; @@ -3503,6 +3519,9 @@ * values against any array or object value, respectively. See `_.isEqual` * for a list of supported value comparisons. * + * **Note:** Multiple values can be checked by combining several matchers + * using `_.overSome` + * * @static * @memberOf _ * @since 3.0.0 @@ -3518,6 +3537,10 @@ * * _.filter(objects, _.matches({ 'a': 4, 'c': 6 })); * // => [{ 'a': 4, 'b': 5, 'c': 6 }] + * + * // Checking for several possible values + * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })])); + * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] */ function matches(source) { return baseMatches(assign({}, source)); diff --git a/app/bower_components/lodash/dist/lodash.core.min.js b/app/bower_components/lodash/dist/lodash.core.min.js index bb543ff..e425e4d 100644 --- a/app/bower_components/lodash/dist/lodash.core.min.js +++ b/app/bower_components/lodash/dist/lodash.core.min.js @@ -10,12 +10,12 @@ return n[0]==t});if(p&&s)return p[1]==t;if(o.push([n,t]),o.push([t,n]),a&&!l){if r=u(i,f,r,e,o),o.pop(),r)}function g(n){return typeof n=="function"?n:null==n?X:(typeof n=="object"?d:r)(n)}function _(n,t){return nt&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++ei))return false;for(var c=-1,f=true,a=2&r?[]:Z;++cr?jn(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++rarguments.length,mn)}function G(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Fn(n), -function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=Z),r}}function J(n,t){return n===t||n!==n&&t!==t}function M(n){var t;return(t=null!=n)&&(t=n.length,t=typeof t=="number"&&-1=t),t&&!U(n)}function U(n){return!!V(n)&&(n=hn.call(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function V(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function H(n){return null!=n&&typeof n=="object"}function K(n){ -return typeof n=="number"||H(n)&&"[object Number]"==hn.call(n)}function L(n){return typeof n=="string"||!Nn(n)&&H(n)&&"[object String]"==hn.call(n)}function Q(n){return typeof n=="string"?n:null==n?"":n+""}function W(n){return null==n?[]:u(n,Dn(n))}function X(n){return n}function Y(n,r,e){var u=Dn(r),o=h(r,u);null!=e||V(r)&&(o.length||!u.length)||(e=r,r=n,n=this,o=h(r,Dn(r)));var i=!(V(e)&&"chain"in e&&!e.chain),c=U(n);return mn(o,function(e){var u=r[e];n[e]=u,c&&(n.prototype[e]=function(){var r=this.__chain__; -if(i||r){var e=n(this.__wrapped__);return(e.__actions__=A(this.__actions__)).push({func:u,args:arguments,thisArg:n}),e.__chain__=r,e}return u.apply(n,t([this.value()],arguments))})}),n}var Z,nn=1/0,tn=/[&<>"']/g,rn=RegExp(tn.source),en=/^(?:0|[1-9]\d*)$/,un=typeof self=="object"&&self&&self.Object===Object&&self,on=typeof global=="object"&&global&&global.Object===Object&&global||un||Function("return this")(),cn=(un=typeof exports=="object"&&exports&&!exports.nodeType&&exports)&&typeof module=="object"&&module&&!module.nodeType&&module,fn=function(n){ +var u=F(n);return e}function T(n,t,r,e,u,o){var i=n.length,c=t.length;if(i!=c&&!(1&r&&c>i))return false;var c=o.get(n),f=o.get(t);if(c&&f)return c==t&&f==n;for(var c=-1,f=true,a=2&r?[]:Z;++cr?jn(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++rarguments.length,mn); +}function G(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Fn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=Z),r}}function J(n,t){return n===t||n!==n&&t!==t}function M(n){var t;return(t=null!=n)&&(t=n.length,t=typeof t=="number"&&-1=t),t&&!U(n)}function U(n){return!!V(n)&&(n=hn.call(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function V(n){var t=typeof n; +return null!=n&&("object"==t||"function"==t)}function H(n){return null!=n&&typeof n=="object"}function K(n){return typeof n=="number"||H(n)&&"[object Number]"==hn.call(n)}function L(n){return typeof n=="string"||!Nn(n)&&H(n)&&"[object String]"==hn.call(n)}function Q(n){return typeof n=="string"?n:null==n?"":n+""}function W(n){return null==n?[]:u(n,Dn(n))}function X(n){return n}function Y(n,r,e){var u=Dn(r),o=h(r,u);null!=e||V(r)&&(o.length||!u.length)||(e=r,r=n,n=this,o=h(r,Dn(r)));var i=!(V(e)&&"chain"in e&&!e.chain),c=U(n); +return mn(o,function(e){var u=r[e];n[e]=u,c&&(n.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=n(this.__wrapped__);return(e.__actions__=A(this.__actions__)).push({func:u,args:arguments,thisArg:n}),e.__chain__=r,e}return u.apply(n,t([this.value()],arguments))})}),n}var Z,nn=1/0,tn=/[&<>"']/g,rn=RegExp(tn.source),en=/^(?:0|[1-9]\d*)$/,un=typeof self=="object"&&self&&self.Object===Object&&self,on=typeof global=="object"&&global&&global.Object===Object&&global||un||Function("return this")(),cn=(un=typeof exports=="object"&&exports&&!exports.nodeType&&exports)&&typeof module=="object"&&module&&!module.nodeType&&module,fn=function(n){ return function(t){return null==n?Z:n[t]}}({"&":"&","<":"<",">":">",'"':""","'":"'"}),an=Array.prototype,ln=Object.prototype,pn=ln.hasOwnProperty,sn=0,hn=ln.toString,vn=on._,bn=Object.create,yn=ln.propertyIsEnumerable,gn=on.isFinite,_n=function(n,t){return function(r){return n(t(r))}}(Object.keys,Object),jn=Math.max,dn=function(){function n(){}return function(t){return V(t)?bn?bn(t):(n.prototype=t,t=new n,n.prototype=Z,t):{}}}();i.prototype=dn(o.prototype),i.prototype.constructor=i; var mn=function(n,t){return function(r,e){if(null==r)return r;if(!M(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++or&&(r=jn(e+r,0));n:{for(t=g(t),e=n.length,r+=-1;++r arrLength)) { return false; } - // Assume cyclic values are equal. - var stacked = stack.get(array); - if (stacked && stack.get(other)) { - return stacked == other; + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; } var index = -1, result = true, @@ -5783,10 +5846,11 @@ return false; } } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked && stack.get(other)) { - return stacked == other; + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; } var result = true; stack.set(object, other); @@ -9167,6 +9231,10 @@ * // The `_.property` iteratee shorthand. * _.filter(users, 'active'); * // => objects for ['barney'] + * + * // Combining several predicates using `_.overEvery` or `_.overSome`. + * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); + * // => objects for ['fred', 'barney'] */ function filter(collection, predicate) { var func = isArray(collection) ? arrayFilter : baseFilter; @@ -9916,15 +9984,15 @@ * var users = [ * { 'user': 'fred', 'age': 48 }, * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 }, + * { 'user': 'fred', 'age': 30 }, * { 'user': 'barney', 'age': 34 } * ]; * * _.sortBy(users, [function(o) { return o.user; }]); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] * * _.sortBy(users, ['user', 'age']); - * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]] + * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] */ var sortBy = baseRest(function(collection, iteratees) { if (collection == null) { @@ -12468,7 +12536,7 @@ if (typeof value != 'string') { return value === 0 ? value : +value; } - value = value.replace(reTrim, ''); + value = baseTrim(value); var isBinary = reIsBinary.test(value); return (isBinary || reIsOctal.test(value)) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) @@ -14799,11 +14867,11 @@ // Use a sourceURL for easier debugging. // The sourceURL gets injected into the source that's eval-ed, so be careful - // with lookup (in case of e.g. prototype pollution), and strip newlines if any. - // A newline wouldn't be a valid sourceURL anyway, and it'd enable code injection. + // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in + // and escape the comment, thus injecting code that gets evaled. var sourceURL = '//# sourceURL=' + (hasOwnProperty.call(options, 'sourceURL') - ? (options.sourceURL + '').replace(/[\r\n]/g, ' ') + ? (options.sourceURL + '').replace(/\s/g, ' ') : ('lodash.templateSources[' + (++templateCounter) + ']') ) + '\n'; @@ -14836,12 +14904,16 @@ // If `variable` is not specified wrap a with-statement around the generated // code to add the data object to the top of the scope chain. - // Like with sourceURL, we take care to not check the option's prototype, - // as this configuration is a code injection vector. var variable = hasOwnProperty.call(options, 'variable') && options.variable; if (!variable) { source = 'with (obj) {\n' + source + '\n}\n'; } + // Throw an error if a forbidden character was found in `variable`, to prevent + // potential command injection attacks. + else if (reForbiddenIdentifierChars.test(variable)) { + throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT); + } + // Cleanup code by stripping empty strings. source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source) .replace(reEmptyStringMiddle, '$1') @@ -14955,7 +15027,7 @@ function trim(string, chars, guard) { string = toString(string); if (string && (guard || chars === undefined)) { - return string.replace(reTrim, ''); + return baseTrim(string); } if (!string || !(chars = baseToString(chars))) { return string; @@ -14990,7 +15062,7 @@ function trimEnd(string, chars, guard) { string = toString(string); if (string && (guard || chars === undefined)) { - return string.replace(reTrimEnd, ''); + return string.slice(0, trimmedEndIndex(string) + 1); } if (!string || !(chars = baseToString(chars))) { return string; @@ -15544,6 +15616,9 @@ * values against any array or object value, respectively. See `_.isEqual` * for a list of supported value comparisons. * + * **Note:** Multiple values can be checked by combining several matchers + * using `_.overSome` + * * @static * @memberOf _ * @since 3.0.0 @@ -15559,6 +15634,10 @@ * * _.filter(objects, _.matches({ 'a': 4, 'c': 6 })); * // => [{ 'a': 4, 'b': 5, 'c': 6 }] + * + * // Checking for several possible values + * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })])); + * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] */ function matches(source) { return baseMatches(baseClone(source, CLONE_DEEP_FLAG)); @@ -15573,6 +15652,9 @@ * `srcValue` values against any array or object value, respectively. See * `_.isEqual` for a list of supported value comparisons. * + * **Note:** Multiple values can be checked by combining several matchers + * using `_.overSome` + * * @static * @memberOf _ * @since 3.2.0 @@ -15589,6 +15671,10 @@ * * _.find(objects, _.matchesProperty('a', 4)); * // => { 'a': 4, 'b': 5, 'c': 6 } + * + * // Checking for several possible values + * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)])); + * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] */ function matchesProperty(path, srcValue) { return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG)); @@ -15812,6 +15898,10 @@ * Creates a function that checks if **all** of the `predicates` return * truthy when invoked with the arguments it receives. * + * Following shorthands are possible for providing predicates. + * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate. + * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them. + * * @static * @memberOf _ * @since 4.0.0 @@ -15838,6 +15928,10 @@ * Creates a function that checks if **any** of the `predicates` return * truthy when invoked with the arguments it receives. * + * Following shorthands are possible for providing predicates. + * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate. + * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them. + * * @static * @memberOf _ * @since 4.0.0 @@ -15857,6 +15951,9 @@ * * func(NaN); * // => false + * + * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }]) + * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]]) */ var overSome = createOver(arraySome); diff --git a/app/bower_components/lodash/dist/lodash.min.js b/app/bower_components/lodash/dist/lodash.min.js index 13ec307..4219da7 100644 --- a/app/bower_components/lodash/dist/lodash.min.js +++ b/app/bower_components/lodash/dist/lodash.min.js @@ -1,137 +1,140 @@ /** * @license - * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ -;(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u"']/g,G=RegExp(V.source),H=RegExp(K.source),J=/<%-([\s\S]+?)%>/g,Y=/<%([\s\S]+?)%>/g,Q=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nn=/^\w*$/,tn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rn=/[\\^$.*+?()[\]{}|]/g,en=RegExp(rn.source),un=/^\s+|\s+$/g,on=/^\s+/,fn=/\s+$/,cn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,an=/\{\n\/\* \[wrapped with (.+)\] \*/,ln=/,? & /,sn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,hn=/\\(\\)?/g,pn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,_n=/\w*$/,vn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,dn=/^\[object .+?Constructor\]$/,yn=/^0o[0-7]+$/i,bn=/^(?:0|[1-9]\d*)$/,xn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,jn=/($^)/,wn=/['\n\r\u2028\u2029\\]/g,mn="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",An="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+mn,En="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",kn=RegExp("['\u2019]","g"),Sn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),On=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+En+mn,"g"),In=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",An].join("|"),"g"),Rn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),zn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Bn={}; -Bn["[object Float32Array]"]=Bn["[object Float64Array]"]=Bn["[object Int8Array]"]=Bn["[object Int16Array]"]=Bn["[object Int32Array]"]=Bn["[object Uint8Array]"]=Bn["[object Uint8ClampedArray]"]=Bn["[object Uint16Array]"]=Bn["[object Uint32Array]"]=true,Bn["[object Arguments]"]=Bn["[object Array]"]=Bn["[object ArrayBuffer]"]=Bn["[object Boolean]"]=Bn["[object DataView]"]=Bn["[object Date]"]=Bn["[object Error]"]=Bn["[object Function]"]=Bn["[object Map]"]=Bn["[object Number]"]=Bn["[object Object]"]=Bn["[object RegExp]"]=Bn["[object Set]"]=Bn["[object String]"]=Bn["[object WeakMap]"]=false; -var Ln={};Ln["[object Arguments]"]=Ln["[object Array]"]=Ln["[object ArrayBuffer]"]=Ln["[object DataView]"]=Ln["[object Boolean]"]=Ln["[object Date]"]=Ln["[object Float32Array]"]=Ln["[object Float64Array]"]=Ln["[object Int8Array]"]=Ln["[object Int16Array]"]=Ln["[object Int32Array]"]=Ln["[object Map]"]=Ln["[object Number]"]=Ln["[object Object]"]=Ln["[object RegExp]"]=Ln["[object Set]"]=Ln["[object String]"]=Ln["[object Symbol]"]=Ln["[object Uint8Array]"]=Ln["[object Uint8ClampedArray]"]=Ln["[object Uint16Array]"]=Ln["[object Uint32Array]"]=true, -Ln["[object Error]"]=Ln["[object Function]"]=Ln["[object WeakMap]"]=false;var Un={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Cn=parseFloat,Dn=parseInt,Mn=typeof global=="object"&&global&&global.Object===Object&&global,Tn=typeof self=="object"&&self&&self.Object===Object&&self,$n=Mn||Tn||Function("return this")(),Fn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Nn=Fn&&typeof module=="object"&&module&&!module.nodeType&&module,Pn=Nn&&Nn.exports===Fn,Zn=Pn&&Mn.process,qn=function(){ -try{var n=Nn&&Nn.f&&Nn.f("util").types;return n?n:Zn&&Zn.binding&&Zn.binding("util")}catch(n){}}(),Vn=qn&&qn.isArrayBuffer,Kn=qn&&qn.isDate,Gn=qn&&qn.isMap,Hn=qn&&qn.isRegExp,Jn=qn&&qn.isSet,Yn=qn&&qn.isTypedArray,Qn=b("length"),Xn=x({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I", -"\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C", -"\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i", -"\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r", -"\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij", -"\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),nt=x({"&":"&","<":"<",">":">",'"':""","'":"'"}),tt=x({"&":"&","<":"<",">":">",""":'"',"'":"'"}),rt=function x(mn){function An(n){if(yu(n)&&!ff(n)&&!(n instanceof Un)){if(n instanceof On)return n;if(oi.call(n,"__wrapped__"))return Fe(n)}return new On(n)}function En(){}function On(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=T}function Un(n){this.__wrapped__=n, -this.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function _t(n,t,e,u,i,o){var f,c=1&t,a=2&t,l=4&t;if(e&&(f=i?e(n,u,i,o):e(n)),f!==T)return f;if(!du(n))return n;if(u=ff(n)){if(f=me(n),!c)return Ur(n,f)}else{var s=vo(n),h="[object Function]"==s||"[object GeneratorFunction]"==s;if(af(n))return Ir(n,c);if("[object Object]"==s||"[object Arguments]"==s||h&&!i){if(f=a||h?{}:Ae(n),!c)return a?Mr(n,lt(f,n)):Dr(n,at(f,n))}else{if(!Ln[s])return i?n:{};f=Ee(n,s,c)}}if(o||(o=new Zn), -i=o.get(n))return i;o.set(n,f),pf(n)?n.forEach(function(r){f.add(_t(r,t,e,r,n,o))}):sf(n)&&n.forEach(function(r,u){f.set(u,_t(r,t,e,u,n,o))});var a=l?a?ve:_e:a?Bu:Wu,p=u?T:a(n);return r(p||n,function(r,u){p&&(u=r,r=n[u]),ot(f,u,_t(r,t,e,u,n,o))}),f}function vt(n){var t=Wu(n);return function(r){return gt(r,n,t)}}function gt(n,t,r){var e=r.length;if(null==n)return!e;for(n=Qu(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===T&&!(u in n)||!i(o))return false}return true}function dt(n,t,r){if(typeof n!="function")throw new ti("Expected a function"); -return bo(function(){n.apply(T,r)},t)}function yt(n,t,r,e){var u=-1,i=o,a=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=c(t,k(r))),e?(i=f,a=false):200<=t.length&&(i=O,a=false,t=new Nn(t));n:for(;++ut}function Rt(n,t){return null!=n&&oi.call(n,t)}function zt(n,t){return null!=n&&t in Qu(n)}function Wt(n,t,r){for(var e=r?f:o,u=n[0].length,i=n.length,a=i,l=Ku(i),s=1/0,h=[];a--;){var p=n[a];a&&t&&(p=c(p,k(t))),s=Ci(p.length,s), -l[a]=!r&&(t||120<=u&&120<=p.length)?new Nn(a&&p):T}var p=n[0],_=-1,v=l[0];n:for(;++_r.length?t:kt(t,hr(r,0,-1)),r=null==t?t:t[Me(Ve(r))],null==r?T:n(r,t,e)}function Ut(n){return yu(n)&&"[object Arguments]"==Ot(n)}function Ct(n){ -return yu(n)&&"[object ArrayBuffer]"==Ot(n)}function Dt(n){return yu(n)&&"[object Date]"==Ot(n)}function Mt(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!yu(n)&&!yu(t))t=n!==n&&t!==t;else n:{var i=ff(n),o=ff(t),f=i?"[object Array]":vo(n),c=o?"[object Array]":vo(t),f="[object Arguments]"==f?"[object Object]":f,c="[object Arguments]"==c?"[object Object]":c,a="[object Object]"==f,o="[object Object]"==c;if((c=f==c)&&af(n)){if(!af(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Zn),t=i||_f(n)?se(n,t,r,e,Mt,u):he(n,t,f,r,e,Mt,u);else{ -if(!(1&r)&&(i=a&&oi.call(n,"__wrapped__"),f=o&&oi.call(t,"__wrapped__"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Zn),t=Mt(n,t,r,e,u);break n}if(c)t:if(u||(u=new Zn),i=1&r,f=_e(n),o=f.length,c=_e(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:oi.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++at?r:0,Se(t,r)?n[t]:T}function Xt(n,t,r){var e=-1;return t=c(t.length?t:[$u],k(ye())),n=Gt(n,function(n){return{ -a:c(t,function(t){return t(n)}),b:++e,c:n}}),w(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e=f?c:c*("desc"==r[e]?-1:1);break n}}e=n.b-t.b}return e})}function nr(n,t){return tr(n,t,function(t,r){return zu(n,r)})}function tr(n,t,r){for(var e=-1,u=t.length,i={};++et||9007199254740991t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Ku(u);++e=u){for(;e>>1,o=n[i];null!==o&&!wu(o)&&(r?o<=t:ot.length?n:kt(n,hr(t,0,-1)),null==n||delete n[Me(Ve(t))]}function jr(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++ie)return e?br(n[0]):[];for(var u=-1,i=Ku(e);++u=e?n:hr(n,t,r)}function Ir(n,t){if(t)return n.slice();var r=n.length,r=gi?gi(r):new n.constructor(r);return n.copy(r),r}function Rr(n){var t=new n.constructor(n.byteLength);return new vi(t).set(new vi(n)), -t}function zr(n,t){return new n.constructor(t?Rr(n.buffer):n.buffer,n.byteOffset,n.length)}function Wr(n,t){if(n!==t){var r=n!==T,e=null===n,u=n===n,i=wu(n),o=t!==T,f=null===t,c=t===t,a=wu(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&nu?T:i,u=1),t=Qu(t);++eo&&f[0]!==a&&f[o-1]!==a?[]:L(f,a), -o-=c.length,or?r?or(t,n):t:(r=or(t,Oi(n/D(t))),Rn.test(t)?Or(M(r),0,n).join(""):r.slice(0,n))}function te(t,r,e,u){function i(){for(var r=-1,c=arguments.length,a=-1,l=u.length,s=Ku(l+c),h=this&&this!==$n&&this instanceof i?f:t;++at||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Br(e,r,h[4]):r,i[4]=e?L(i[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Lr(e,r,h[6]):r,i[6]=e?L(i[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Ci(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0], -t=i[1],r=i[2],e=i[3],u=i[4],f=i[9]=i[9]===T?c?0:n.length:Ui(i[9]-a,0),!f&&24&t&&(t&=-25),Ue((h?co:yo)(t&&1!=t?8==t||16==t?Kr(n,t,f):32!=t&&33!=t||u.length?Jr.apply(T,i):te(n,t,r,e):Pr(n,t,r),i),n,t)}function ce(n,t,r,e){return n===T||lu(n,ei[r])&&!oi.call(e,r)?t:n}function ae(n,t,r,e,u,i){return du(n)&&du(t)&&(i.set(t,n),Yt(n,t,T,ae,i),i.delete(t)),n}function le(n){return xu(n)?T:n}function se(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t; -var c=-1,a=true,l=2&r?new Nn:T;for(i.set(n,t),i.set(t,n);++cr&&(r=Ui(e+r,0)),_(n,ye(t,3),r)):-1}function Pe(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==T&&(u=Eu(r),u=0>r?Ui(e+u,0):Ci(u,e-1)), -_(n,ye(t,3),u,true)}function Ze(n){return(null==n?0:n.length)?wt(n,1):[]}function qe(n){return n&&n.length?n[0]:T}function Ve(n){var t=null==n?0:n.length;return t?n[t-1]:T}function Ke(n,t){return n&&n.length&&t&&t.length?er(n,t):n}function Ge(n){return null==n?n:$i.call(n)}function He(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){if(hu(n))return t=Ui(n.length,t),true}),A(t,function(t){return c(n,b(t))})}function Je(t,r){if(!t||!t.length)return[];var e=He(t);return null==r?e:c(e,function(t){ -return n(r,T,t)})}function Ye(n){return n=An(n),n.__chain__=true,n}function Qe(n,t){return t(n)}function Xe(){return this}function nu(n,t){return(ff(n)?r:uo)(n,ye(t,3))}function tu(n,t){return(ff(n)?e:io)(n,ye(t,3))}function ru(n,t){return(ff(n)?c:Gt)(n,ye(t,3))}function eu(n,t,r){return t=r?T:t,t=n&&null==t?n.length:t,fe(n,128,T,T,T,T,t)}function uu(n,t){var r;if(typeof t!="function")throw new ti("Expected a function");return n=Eu(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=T), -r}}function iu(n,t,r){return t=r?T:t,n=fe(n,8,T,T,T,T,T,t),n.placeholder=iu.placeholder,n}function ou(n,t,r){return t=r?T:t,n=fe(n,16,T,T,T,T,T,t),n.placeholder=ou.placeholder,n}function fu(n,t,r){function e(t){var r=c,e=a;return c=a=T,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===T||r>=t||0>r||g&&n>=l}function i(){var n=Go();if(u(n))return o(n);var r,e=bo;r=n-_,n=t-(n-p),r=g?Ci(n,l-r):n,h=e(i,r)}function o(n){return h=T,d&&c?e(n):(c=a=T,s)}function f(){var n=Go(),r=u(n);if(c=arguments, -a=this,p=n,r){if(h===T)return _=n=p,h=bo(i,t),v?e(n):s;if(g)return lo(h),h=bo(i,t),e(p)}return h===T&&(h=bo(i,t)),s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!="function")throw new ti("Expected a function");return t=Su(t)||0,du(r)&&(v=!!r.leading,l=(g="maxWait"in r)?Ui(Su(r.maxWait)||0,t):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==T&&lo(h),_=0,c=p=a=h=T},f.flush=function(){return h===T?s:o(Go())},f}function cu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache; -return i.has(u)?i.get(u):(e=n.apply(this,e),r.cache=i.set(u,e)||i,e)}if(typeof n!="function"||null!=t&&typeof t!="function")throw new ti("Expected a function");return r.cache=new(cu.Cache||Fn),r}function au(n){if(typeof n!="function")throw new ti("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function lu(n,t){return n===t||n!==n&&t!==t; -}function su(n){return null!=n&&gu(n.length)&&!_u(n)}function hu(n){return yu(n)&&su(n)}function pu(n){if(!yu(n))return false;var t=Ot(n);return"[object Error]"==t||"[object DOMException]"==t||typeof n.message=="string"&&typeof n.name=="string"&&!xu(n)}function _u(n){return!!du(n)&&(n=Ot(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function vu(n){return typeof n=="number"&&n==Eu(n)}function gu(n){return typeof n=="number"&&-1=n; -}function du(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function yu(n){return null!=n&&typeof n=="object"}function bu(n){return typeof n=="number"||yu(n)&&"[object Number]"==Ot(n)}function xu(n){return!(!yu(n)||"[object Object]"!=Ot(n))&&(n=di(n),null===n||(n=oi.call(n,"constructor")&&n.constructor,typeof n=="function"&&n instanceof n&&ii.call(n)==li))}function ju(n){return typeof n=="string"||!ff(n)&&yu(n)&&"[object String]"==Ot(n)}function wu(n){return typeof n=="symbol"||yu(n)&&"[object Symbol]"==Ot(n); -}function mu(n){if(!n)return[];if(su(n))return ju(n)?M(n):Ur(n);if(wi&&n[wi]){n=n[wi]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=vo(n),("[object Map]"==t?W:"[object Set]"==t?U:Uu)(n)}function Au(n){return n?(n=Su(n),n===$||n===-$?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Eu(n){n=Au(n);var t=n%1;return n===n?t?n-t:n:0}function ku(n){return n?pt(Eu(n),0,4294967295):0}function Su(n){if(typeof n=="number")return n;if(wu(n))return F;if(du(n)&&(n=typeof n.valueOf=="function"?n.valueOf():n, -n=du(n)?n+"":n),typeof n!="string")return 0===n?n:+n;n=n.replace(un,"");var t=gn.test(n);return t||yn.test(n)?Dn(n.slice(2),t?2:8):vn.test(n)?F:+n}function Ou(n){return Cr(n,Bu(n))}function Iu(n){return null==n?"":yr(n)}function Ru(n,t,r){return n=null==n?T:kt(n,t),n===T?r:n}function zu(n,t){return null!=n&&we(n,t,zt)}function Wu(n){return su(n)?qn(n):Vt(n)}function Bu(n){if(su(n))n=qn(n,true);else if(du(n)){var t,r=ze(n),e=[];for(t in n)("constructor"!=t||!r&&oi.call(n,t))&&e.push(t);n=e}else{if(t=[], -null!=n)for(r in Qu(n))t.push(r);n=t}return n}function Lu(n,t){if(null==n)return{};var r=c(ve(n),function(n){return[n]});return t=ye(t),tr(n,r,function(n,r){return t(n,r[0])})}function Uu(n){return null==n?[]:S(n,Wu(n))}function Cu(n){return $f(Iu(n).toLowerCase())}function Du(n){return(n=Iu(n))&&n.replace(xn,Xn).replace(Sn,"")}function Mu(n,t,r){return n=Iu(n),t=r?T:t,t===T?zn.test(n)?n.match(In)||[]:n.match(sn)||[]:n.match(t)||[]}function Tu(n){return function(){return n}}function $u(n){return n; -}function Fu(n){return qt(typeof n=="function"?n:_t(n,1))}function Nu(n,t,e){var u=Wu(t),i=Et(t,u);null!=e||du(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=Et(t,Wu(t)));var o=!(du(e)&&"chain"in e&&!e.chain),f=_u(n);return r(i,function(r){var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Ur(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Pu(){} -function Zu(n){return Ie(n)?b(Me(n)):rr(n)}function qu(){return[]}function Vu(){return false}mn=null==mn?$n:rt.defaults($n.Object(),mn,rt.pick($n,Wn));var Ku=mn.Array,Gu=mn.Date,Hu=mn.Error,Ju=mn.Function,Yu=mn.Math,Qu=mn.Object,Xu=mn.RegExp,ni=mn.String,ti=mn.TypeError,ri=Ku.prototype,ei=Qu.prototype,ui=mn["__core-js_shared__"],ii=Ju.prototype.toString,oi=ei.hasOwnProperty,fi=0,ci=function(){var n=/[^.]+$/.exec(ui&&ui.keys&&ui.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),ai=ei.toString,li=ii.call(Qu),si=$n._,hi=Xu("^"+ii.call(oi).replace(rn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),pi=Pn?mn.Buffer:T,_i=mn.Symbol,vi=mn.Uint8Array,gi=pi?pi.g:T,di=B(Qu.getPrototypeOf,Qu),yi=Qu.create,bi=ei.propertyIsEnumerable,xi=ri.splice,ji=_i?_i.isConcatSpreadable:T,wi=_i?_i.iterator:T,mi=_i?_i.toStringTag:T,Ai=function(){ -try{var n=je(Qu,"defineProperty");return n({},"",{}),n}catch(n){}}(),Ei=mn.clearTimeout!==$n.clearTimeout&&mn.clearTimeout,ki=Gu&&Gu.now!==$n.Date.now&&Gu.now,Si=mn.setTimeout!==$n.setTimeout&&mn.setTimeout,Oi=Yu.ceil,Ii=Yu.floor,Ri=Qu.getOwnPropertySymbols,zi=pi?pi.isBuffer:T,Wi=mn.isFinite,Bi=ri.join,Li=B(Qu.keys,Qu),Ui=Yu.max,Ci=Yu.min,Di=Gu.now,Mi=mn.parseInt,Ti=Yu.random,$i=ri.reverse,Fi=je(mn,"DataView"),Ni=je(mn,"Map"),Pi=je(mn,"Promise"),Zi=je(mn,"Set"),qi=je(mn,"WeakMap"),Vi=je(Qu,"create"),Ki=qi&&new qi,Gi={},Hi=Te(Fi),Ji=Te(Ni),Yi=Te(Pi),Qi=Te(Zi),Xi=Te(qi),no=_i?_i.prototype:T,to=no?no.valueOf:T,ro=no?no.toString:T,eo=function(){ -function n(){}return function(t){return du(t)?yi?yi(t):(n.prototype=t,t=new n,n.prototype=T,t):{}}}();An.templateSettings={escape:J,evaluate:Y,interpolate:Q,variable:"",imports:{_:An}},An.prototype=En.prototype,An.prototype.constructor=An,On.prototype=eo(En.prototype),On.prototype.constructor=On,Un.prototype=eo(En.prototype),Un.prototype.constructor=Un,Mn.prototype.clear=function(){this.__data__=Vi?Vi(null):{},this.size=0},Mn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n], -this.size-=n?1:0,n},Mn.prototype.get=function(n){var t=this.__data__;return Vi?(n=t[n],"__lodash_hash_undefined__"===n?T:n):oi.call(t,n)?t[n]:T},Mn.prototype.has=function(n){var t=this.__data__;return Vi?t[n]!==T:oi.call(t,n)},Mn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=Vi&&t===T?"__lodash_hash_undefined__":t,this},Tn.prototype.clear=function(){this.__data__=[],this.size=0},Tn.prototype.delete=function(n){var t=this.__data__;return n=ft(t,n),!(0>n)&&(n==t.length-1?t.pop():xi.call(t,n,1), ---this.size,true)},Tn.prototype.get=function(n){var t=this.__data__;return n=ft(t,n),0>n?T:t[n][1]},Tn.prototype.has=function(n){return-1e?(++this.size,r.push([n,t])):r[e][1]=t,this},Fn.prototype.clear=function(){this.size=0,this.__data__={hash:new Mn,map:new(Ni||Tn),string:new Mn}},Fn.prototype.delete=function(n){return n=be(this,n).delete(n),this.size-=n?1:0,n},Fn.prototype.get=function(n){return be(this,n).get(n); -},Fn.prototype.has=function(n){return be(this,n).has(n)},Fn.prototype.set=function(n,t){var r=be(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Nn.prototype.add=Nn.prototype.push=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this},Nn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.clear=function(){this.__data__=new Tn,this.size=0},Zn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Zn.prototype.get=function(n){ -return this.__data__.get(n)},Zn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Tn){var e=r.__data__;if(!Ni||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Fn(e)}return r.set(n,t),this.size=r.size,this};var uo=Fr(mt),io=Fr(At,true),oo=Nr(),fo=Nr(true),co=Ki?function(n,t){return Ki.set(n,t),n}:$u,ao=Ai?function(n,t){return Ai(n,"toString",{configurable:true,enumerable:false,value:Tu(t),writable:true})}:$u,lo=Ei||function(n){ -return $n.clearTimeout(n)},so=Zi&&1/U(new Zi([,-0]))[1]==$?function(n){return new Zi(n)}:Pu,ho=Ki?function(n){return Ki.get(n)}:Pu,po=Ri?function(n){return null==n?[]:(n=Qu(n),i(Ri(n),function(t){return bi.call(n,t)}))}:qu,_o=Ri?function(n){for(var t=[];n;)a(t,po(n)),n=di(n);return t}:qu,vo=Ot;(Fi&&"[object DataView]"!=vo(new Fi(new ArrayBuffer(1)))||Ni&&"[object Map]"!=vo(new Ni)||Pi&&"[object Promise]"!=vo(Pi.resolve())||Zi&&"[object Set]"!=vo(new Zi)||qi&&"[object WeakMap]"!=vo(new qi))&&(vo=function(n){ -var t=Ot(n);if(n=(n="[object Object]"==t?n.constructor:T)?Te(n):"")switch(n){case Hi:return"[object DataView]";case Ji:return"[object Map]";case Yi:return"[object Promise]";case Qi:return"[object Set]";case Xi:return"[object WeakMap]"}return t});var go=ui?_u:Vu,yo=Ce(co),bo=Si||function(n,t){return $n.setTimeout(n,t)},xo=Ce(ao),jo=function(n){n=cu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(""),n.replace(tn,function(n,r,e,u){ -t.push(e?u.replace(hn,"$1"):r||n)}),t}),wo=fr(function(n,t){return hu(n)?yt(n,wt(t,1,hu,true)):[]}),mo=fr(function(n,t){var r=Ve(t);return hu(r)&&(r=T),hu(n)?yt(n,wt(t,1,hu,true),ye(r,2)):[]}),Ao=fr(function(n,t){var r=Ve(t);return hu(r)&&(r=T),hu(n)?yt(n,wt(t,1,hu,true),T,r):[]}),Eo=fr(function(n){var t=c(n,Er);return t.length&&t[0]===n[0]?Wt(t):[]}),ko=fr(function(n){var t=Ve(n),r=c(n,Er);return t===Ve(r)?t=T:r.pop(),r.length&&r[0]===n[0]?Wt(r,ye(t,2)):[]}),So=fr(function(n){var t=Ve(n),r=c(n,Er);return(t=typeof t=="function"?t:T)&&r.pop(), -r.length&&r[0]===n[0]?Wt(r,T,t):[]}),Oo=fr(Ke),Io=pe(function(n,t){var r=null==n?0:n.length,e=ht(n,t);return ur(n,c(t,function(n){return Se(n,r)?+n:n}).sort(Wr)),e}),Ro=fr(function(n){return br(wt(n,1,hu,true))}),zo=fr(function(n){var t=Ve(n);return hu(t)&&(t=T),br(wt(n,1,hu,true),ye(t,2))}),Wo=fr(function(n){var t=Ve(n),t=typeof t=="function"?t:T;return br(wt(n,1,hu,true),T,t)}),Bo=fr(function(n,t){return hu(n)?yt(n,t):[]}),Lo=fr(function(n){return mr(i(n,hu))}),Uo=fr(function(n){var t=Ve(n);return hu(t)&&(t=T), -mr(i(n,hu),ye(t,2))}),Co=fr(function(n){var t=Ve(n),t=typeof t=="function"?t:T;return mr(i(n,hu),T,t)}),Do=fr(He),Mo=fr(function(n){var t=n.length,t=1=t}),of=Ut(function(){return arguments}())?Ut:function(n){return yu(n)&&oi.call(n,"callee")&&!bi.call(n,"callee")},ff=Ku.isArray,cf=Vn?k(Vn):Ct,af=zi||Vu,lf=Kn?k(Kn):Dt,sf=Gn?k(Gn):Tt,hf=Hn?k(Hn):Nt,pf=Jn?k(Jn):Pt,_f=Yn?k(Yn):Zt,vf=ee(Kt),gf=ee(function(n,t){return n<=t}),df=$r(function(n,t){ -if(ze(t)||su(t))Cr(t,Wu(t),n);else for(var r in t)oi.call(t,r)&&ot(n,r,t[r])}),yf=$r(function(n,t){Cr(t,Bu(t),n)}),bf=$r(function(n,t,r,e){Cr(t,Bu(t),n,e)}),xf=$r(function(n,t,r,e){Cr(t,Wu(t),n,e)}),jf=pe(ht),wf=fr(function(n,t){n=Qu(n);var r=-1,e=t.length,u=2--n)return t.apply(this,arguments)}},An.ary=eu,An.assign=df,An.assignIn=yf,An.assignInWith=bf,An.assignWith=xf,An.at=jf,An.before=uu,An.bind=Ho,An.bindAll=Nf,An.bindKey=Jo,An.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return ff(n)?n:[n]},An.chain=Ye,An.chunk=function(n,t,r){if(t=(r?Oe(n,t,r):t===T)?1:Ui(Eu(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Ku(Oi(r/t));et?0:t,e)):[]},An.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Eu(t),t=e-t,hr(n,0,0>t?0:t)):[]},An.dropRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true,true):[]; -},An.dropWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true):[]},An.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!="number"&&Oe(n,t,r)&&(r=0,e=u),u=n.length,r=Eu(r),0>r&&(r=-r>u?0:u+r),e=e===T||e>u?u:Eu(e),0>e&&(e+=u),e=r>e?0:ku(e);r>>0,r?(n=Iu(n))&&(typeof t=="string"||null!=t&&!hf(t))&&(t=yr(t),!t&&Rn.test(n))?Or(M(n),0,r):n.split(t,r):[]},An.spread=function(t,r){if(typeof t!="function")throw new ti("Expected a function");return r=null==r?0:Ui(Eu(r),0), -fr(function(e){var u=e[r];return e=Or(e,0,r),u&&a(e,u),n(t,this,e)})},An.tail=function(n){var t=null==n?0:n.length;return t?hr(n,1,t):[]},An.take=function(n,t,r){return n&&n.length?(t=r||t===T?1:Eu(t),hr(n,0,0>t?0:t)):[]},An.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Eu(t),t=e-t,hr(n,0>t?0:t,e)):[]},An.takeRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),false,true):[]},An.takeWhile=function(n,t){return n&&n.length?jr(n,ye(t,3)):[]},An.tap=function(n,t){return t(n), -n},An.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new ti("Expected a function");return du(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),fu(n,t,{leading:e,maxWait:t,trailing:u})},An.thru=Qe,An.toArray=mu,An.toPairs=zf,An.toPairsIn=Wf,An.toPath=function(n){return ff(n)?c(n,Me):wu(n)?[n]:Ur(jo(Iu(n)))},An.toPlainObject=Ou,An.transform=function(n,t,e){var u=ff(n),i=u||af(n)||_f(n);if(t=ye(t,4),null==e){var o=n&&n.constructor;e=i?u?new o:[]:du(n)&&_u(o)?eo(di(n)):{}; -}return(i?r:mt)(n,function(n,r,u){return t(e,n,r,u)}),e},An.unary=function(n){return eu(n,1)},An.union=Ro,An.unionBy=zo,An.unionWith=Wo,An.uniq=function(n){return n&&n.length?br(n):[]},An.uniqBy=function(n,t){return n&&n.length?br(n,ye(t,2)):[]},An.uniqWith=function(n,t){return t=typeof t=="function"?t:T,n&&n.length?br(n,T,t):[]},An.unset=function(n,t){return null==n||xr(n,t)},An.unzip=He,An.unzipWith=Je,An.update=function(n,t,r){return null==n?n:lr(n,t,kr(r)(kt(n,t)),void 0)},An.updateWith=function(n,t,r,e){ -return e=typeof e=="function"?e:T,null!=n&&(n=lr(n,t,kr(r)(kt(n,t)),e)),n},An.values=Uu,An.valuesIn=function(n){return null==n?[]:S(n,Bu(n))},An.without=Bo,An.words=Mu,An.wrap=function(n,t){return nf(kr(t),n)},An.xor=Lo,An.xorBy=Uo,An.xorWith=Co,An.zip=Do,An.zipObject=function(n,t){return Ar(n||[],t||[],ot)},An.zipObjectDeep=function(n,t){return Ar(n||[],t||[],lr)},An.zipWith=Mo,An.entries=zf,An.entriesIn=Wf,An.extend=yf,An.extendWith=bf,Nu(An,An),An.add=Qf,An.attempt=Ff,An.camelCase=Bf,An.capitalize=Cu, -An.ceil=Xf,An.clamp=function(n,t,r){return r===T&&(r=t,t=T),r!==T&&(r=Su(r),r=r===r?r:0),t!==T&&(t=Su(t),t=t===t?t:0),pt(Su(n),t,r)},An.clone=function(n){return _t(n,4)},An.cloneDeep=function(n){return _t(n,5)},An.cloneDeepWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,5,t)},An.cloneWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,4,t)},An.conformsTo=function(n,t){return null==t||gt(n,t,Wu(t))},An.deburr=Du,An.defaultTo=function(n,t){return null==n||n!==n?t:n},An.divide=nc,An.endsWith=function(n,t,r){ -n=Iu(n),t=yr(t);var e=n.length,e=r=r===T?e:pt(Eu(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},An.eq=lu,An.escape=function(n){return(n=Iu(n))&&H.test(n)?n.replace(K,nt):n},An.escapeRegExp=function(n){return(n=Iu(n))&&en.test(n)?n.replace(rn,"\\$&"):n},An.every=function(n,t,r){var e=ff(n)?u:bt;return r&&Oe(n,t,r)&&(t=T),e(n,ye(t,3))},An.find=Fo,An.findIndex=Ne,An.findKey=function(n,t){return p(n,ye(t,3),mt)},An.findLast=No,An.findLastIndex=Pe,An.findLastKey=function(n,t){return p(n,ye(t,3),At); -},An.floor=tc,An.forEach=nu,An.forEachRight=tu,An.forIn=function(n,t){return null==n?n:oo(n,ye(t,3),Bu)},An.forInRight=function(n,t){return null==n?n:fo(n,ye(t,3),Bu)},An.forOwn=function(n,t){return n&&mt(n,ye(t,3))},An.forOwnRight=function(n,t){return n&&At(n,ye(t,3))},An.get=Ru,An.gt=ef,An.gte=uf,An.has=function(n,t){return null!=n&&we(n,t,Rt)},An.hasIn=zu,An.head=qe,An.identity=$u,An.includes=function(n,t,r,e){return n=su(n)?n:Uu(n),r=r&&!e?Eu(r):0,e=n.length,0>r&&(r=Ui(e+r,0)),ju(n)?r<=e&&-1r&&(r=Ui(e+r,0)),v(n,t,r)):-1},An.inRange=function(n,t,r){return t=Au(t),r===T?(r=t,t=0):r=Au(r),n=Su(n),n>=Ci(t,r)&&n=n},An.isSet=pf,An.isString=ju,An.isSymbol=wu,An.isTypedArray=_f,An.isUndefined=function(n){return n===T},An.isWeakMap=function(n){return yu(n)&&"[object WeakMap]"==vo(n)},An.isWeakSet=function(n){return yu(n)&&"[object WeakSet]"==Ot(n)},An.join=function(n,t){return null==n?"":Bi.call(n,t)},An.kebabCase=Lf,An.last=Ve,An.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==T&&(u=Eu(r),u=0>u?Ui(e+u,0):Ci(u,e-1)), -t===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=_(n,d,u,true);return n},An.lowerCase=Uf,An.lowerFirst=Cf,An.lt=vf,An.lte=gf,An.max=function(n){return n&&n.length?xt(n,$u,It):T},An.maxBy=function(n,t){return n&&n.length?xt(n,ye(t,2),It):T},An.mean=function(n){return y(n,$u)},An.meanBy=function(n,t){return y(n,ye(t,2))},An.min=function(n){return n&&n.length?xt(n,$u,Kt):T},An.minBy=function(n,t){return n&&n.length?xt(n,ye(t,2),Kt):T},An.stubArray=qu,An.stubFalse=Vu,An.stubObject=function(){return{}},An.stubString=function(){ -return""},An.stubTrue=function(){return true},An.multiply=rc,An.nth=function(n,t){return n&&n.length?Qt(n,Eu(t)):T},An.noConflict=function(){return $n._===this&&($n._=si),this},An.noop=Pu,An.now=Go,An.pad=function(n,t,r){n=Iu(n);var e=(t=Eu(t))?D(n):0;return!t||e>=t?n:(t=(t-e)/2,ne(Ii(t),r)+n+ne(Oi(t),r))},An.padEnd=function(n,t,r){n=Iu(n);var e=(t=Eu(t))?D(n):0;return t&&et){var e=n;n=t,t=e}return r||n%1||t%1?(r=Ti(),Ci(n+r*(t-n+Cn("1e-"+((r+"").length-1))),t)):ir(n,t)},An.reduce=function(n,t,r){var e=ff(n)?l:j,u=3>arguments.length;return e(n,ye(t,4),r,u,uo)},An.reduceRight=function(n,t,r){var e=ff(n)?s:j,u=3>arguments.length; -return e(n,ye(t,4),r,u,io)},An.repeat=function(n,t,r){return t=(r?Oe(n,t,r):t===T)?1:Eu(t),or(Iu(n),t)},An.replace=function(){var n=arguments,t=Iu(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},An.result=function(n,t,r){t=Sr(t,n);var e=-1,u=t.length;for(u||(u=1,n=T);++en||9007199254740991=i)return n;if(i=r-D(e),1>i)return e;if(r=o?Or(o,0,i).join(""):n.slice(0,i),u===T)return r+e;if(o&&(i+=r.length-i),hf(u)){if(n.slice(i).search(u)){ -var f=r;for(u.global||(u=Xu(u.source,Iu(_n.exec(u))+"g")),u.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===T?i:c)}}else n.indexOf(yr(u),i)!=i&&(u=r.lastIndexOf(u),-1e.__dir__?"Right":"")}),e},Un.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),r(["filter","map","takeWhile"],function(n,t){ -var r=t+1,e=1==r||3==r;Un.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:ye(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r(["head","last"],function(n,t){var r="take"+(t?"Right":"");Un.prototype[n]=function(){return this[r](1).value()[0]}}),r(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");Un.prototype[n]=function(){return this.__filtered__?new Un(this):this[r](1)}}),Un.prototype.compact=function(){return this.filter($u)},Un.prototype.find=function(n){ -return this.filter(n).head()},Un.prototype.findLast=function(n){return this.reverse().find(n)},Un.prototype.invokeMap=fr(function(n,t){return typeof n=="function"?new Un(this):this.map(function(r){return Lt(r,n,t)})}),Un.prototype.reject=function(n){return this.filter(au(ye(n)))},Un.prototype.slice=function(n,t){n=Eu(n);var r=this;return r.__filtered__&&(0t)?new Un(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==T&&(t=Eu(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Un.prototype.takeRightWhile=function(n){ -return this.reverse().takeWhile(n).reverse()},Un.prototype.toArray=function(){return this.take(4294967295)},mt(Un.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=An[e?"take"+("last"==t?"Right":""):t],i=e||/^find/.test(t);u&&(An.prototype[t]=function(){function t(n){return n=u.apply(An,a([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Un,l=f[0],s=c||ff(o);s&&r&&typeof l=="function"&&1!=l.length&&(c=s=false);var h=this.__chain__,p=!!this.__actions__.length,l=i&&!h,c=c&&!p; -return!i&&s?(o=c?o:new Un(this),o=n.apply(o,f),o.__actions__.push({func:Qe,args:[t],thisArg:T}),new On(o,h)):l&&c?n.apply(this,f):(o=this.thru(t),l?e?o.value()[0]:o.value():o)})}),r("pop push shift sort splice unshift".split(" "),function(n){var t=ri[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);An.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(ff(u)?u:[],n)}return this[r](function(r){return t.apply(ff(r)?r:[],n)}); -}}),mt(Un.prototype,function(n,t){var r=An[t];if(r){var e=r.name+"";oi.call(Gi,e)||(Gi[e]=[]),Gi[e].push({name:t,func:r})}}),Gi[Jr(T,2).name]=[{name:"wrapper",func:T}],Un.prototype.clone=function(){var n=new Un(this.__wrapped__);return n.__actions__=Ur(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Ur(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Ur(this.__views__),n},Un.prototype.reverse=function(){if(this.__filtered__){var n=new Un(this); -n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},Un.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=ff(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c=this.__values__.length;return{done:n,value:n?T:this.__values__[this.__index__++]}},An.prototype.plant=function(n){ -for(var t,r=this;r instanceof En;){var e=Fe(r);e.__index__=0,e.__values__=T,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},An.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Un?(this.__actions__.length&&(n=new Un(this)),n=n.reverse(),n.__actions__.push({func:Qe,args:[Ge],thisArg:T}),new On(n,this.__chain__)):this.thru(Ge)},An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=function(){return wr(this.__wrapped__,this.__actions__)},An.prototype.first=An.prototype.head, -wi&&(An.prototype[wi]=Xe),An}();typeof define=="function"&&typeof define.amd=="object"&&define.amd?($n._=rt, define(function(){return rt})):Nn?((Nn.exports=rt)._=rt,Fn._=rt):$n._=rt}).call(this); \ No newline at end of file +(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u-1}function f(n,t,r){for(var e=-1,u=null==n?0:n.length;++e-1;);return r}function L(n,t){for(var r=n.length;r--&&y(t,n[r],0)>-1;);return r}function C(n,t){for(var r=n.length,e=0;r--;)n[r]===t&&++e; +return e}function U(n){return"\\"+Yr[n]}function B(n,t){return null==n?X:n[t]}function T(n){return Nr.test(n)}function $(n){return Pr.test(n)}function D(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}function M(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function F(n,t){return function(r){return n(t(r))}}function N(n,t){for(var r=-1,e=n.length,u=0,i=[];++r>>1,$n=[["ary",mn],["bind",_n],["bindKey",vn],["curry",yn],["curryRight",dn],["flip",jn],["partial",bn],["partialRight",wn],["rearg",xn]],Dn="[object Arguments]",Mn="[object Array]",Fn="[object AsyncFunction]",Nn="[object Boolean]",Pn="[object Date]",qn="[object DOMException]",Zn="[object Error]",Kn="[object Function]",Vn="[object GeneratorFunction]",Gn="[object Map]",Hn="[object Number]",Jn="[object Null]",Yn="[object Object]",Qn="[object Promise]",Xn="[object Proxy]",nt="[object RegExp]",tt="[object Set]",rt="[object String]",et="[object Symbol]",ut="[object Undefined]",it="[object WeakMap]",ot="[object WeakSet]",ft="[object ArrayBuffer]",ct="[object DataView]",at="[object Float32Array]",lt="[object Float64Array]",st="[object Int8Array]",ht="[object Int16Array]",pt="[object Int32Array]",_t="[object Uint8Array]",vt="[object Uint8ClampedArray]",gt="[object Uint16Array]",yt="[object Uint32Array]",dt=/\b__p \+= '';/g,bt=/\b(__p \+=) '' \+/g,wt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,mt=/&(?:amp|lt|gt|quot|#39);/g,xt=/[&<>"']/g,jt=RegExp(mt.source),At=RegExp(xt.source),kt=/<%-([\s\S]+?)%>/g,Ot=/<%([\s\S]+?)%>/g,It=/<%=([\s\S]+?)%>/g,Rt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,zt=/^\w*$/,Et=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,St=/[\\^$.*+?()[\]{}|]/g,Wt=RegExp(St.source),Lt=/^\s+/,Ct=/\s/,Ut=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Bt=/\{\n\/\* \[wrapped with (.+)\] \*/,Tt=/,? & /,$t=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Dt=/[()=,{}\[\]\/\s]/,Mt=/\\(\\)?/g,Ft=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Nt=/\w*$/,Pt=/^[-+]0x[0-9a-f]+$/i,qt=/^0b[01]+$/i,Zt=/^\[object .+?Constructor\]$/,Kt=/^0o[0-7]+$/i,Vt=/^(?:0|[1-9]\d*)$/,Gt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ht=/($^)/,Jt=/['\n\r\u2028\u2029\\]/g,Yt="\\ud800-\\udfff",Qt="\\u0300-\\u036f",Xt="\\ufe20-\\ufe2f",nr="\\u20d0-\\u20ff",tr=Qt+Xt+nr,rr="\\u2700-\\u27bf",er="a-z\\xdf-\\xf6\\xf8-\\xff",ur="\\xac\\xb1\\xd7\\xf7",ir="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",or="\\u2000-\\u206f",fr=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",cr="A-Z\\xc0-\\xd6\\xd8-\\xde",ar="\\ufe0e\\ufe0f",lr=ur+ir+or+fr,sr="['\u2019]",hr="["+Yt+"]",pr="["+lr+"]",_r="["+tr+"]",vr="\\d+",gr="["+rr+"]",yr="["+er+"]",dr="[^"+Yt+lr+vr+rr+er+cr+"]",br="\\ud83c[\\udffb-\\udfff]",wr="(?:"+_r+"|"+br+")",mr="[^"+Yt+"]",xr="(?:\\ud83c[\\udde6-\\uddff]){2}",jr="[\\ud800-\\udbff][\\udc00-\\udfff]",Ar="["+cr+"]",kr="\\u200d",Or="(?:"+yr+"|"+dr+")",Ir="(?:"+Ar+"|"+dr+")",Rr="(?:"+sr+"(?:d|ll|m|re|s|t|ve))?",zr="(?:"+sr+"(?:D|LL|M|RE|S|T|VE))?",Er=wr+"?",Sr="["+ar+"]?",Wr="(?:"+kr+"(?:"+[mr,xr,jr].join("|")+")"+Sr+Er+")*",Lr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Cr="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Ur=Sr+Er+Wr,Br="(?:"+[gr,xr,jr].join("|")+")"+Ur,Tr="(?:"+[mr+_r+"?",_r,xr,jr,hr].join("|")+")",$r=RegExp(sr,"g"),Dr=RegExp(_r,"g"),Mr=RegExp(br+"(?="+br+")|"+Tr+Ur,"g"),Fr=RegExp([Ar+"?"+yr+"+"+Rr+"(?="+[pr,Ar,"$"].join("|")+")",Ir+"+"+zr+"(?="+[pr,Ar+Or,"$"].join("|")+")",Ar+"?"+Or+"+"+Rr,Ar+"+"+zr,Cr,Lr,vr,Br].join("|"),"g"),Nr=RegExp("["+kr+Yt+tr+ar+"]"),Pr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,qr=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Zr=-1,Kr={}; +Kr[at]=Kr[lt]=Kr[st]=Kr[ht]=Kr[pt]=Kr[_t]=Kr[vt]=Kr[gt]=Kr[yt]=!0,Kr[Dn]=Kr[Mn]=Kr[ft]=Kr[Nn]=Kr[ct]=Kr[Pn]=Kr[Zn]=Kr[Kn]=Kr[Gn]=Kr[Hn]=Kr[Yn]=Kr[nt]=Kr[tt]=Kr[rt]=Kr[it]=!1;var Vr={};Vr[Dn]=Vr[Mn]=Vr[ft]=Vr[ct]=Vr[Nn]=Vr[Pn]=Vr[at]=Vr[lt]=Vr[st]=Vr[ht]=Vr[pt]=Vr[Gn]=Vr[Hn]=Vr[Yn]=Vr[nt]=Vr[tt]=Vr[rt]=Vr[et]=Vr[_t]=Vr[vt]=Vr[gt]=Vr[yt]=!0,Vr[Zn]=Vr[Kn]=Vr[it]=!1;var Gr={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a", +"\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae", +"\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g", +"\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O", +"\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w", +"\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},Hr={"&":"&","<":"<",">":">",'"':""","'":"'"},Jr={"&":"&","<":"<",">":">",""":'"',"'":"'"},Yr={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Qr=parseFloat,Xr=parseInt,ne="object"==typeof global&&global&&global.Object===Object&&global,te="object"==typeof self&&self&&self.Object===Object&&self,re=ne||te||Function("return this")(),ee="object"==typeof exports&&exports&&!exports.nodeType&&exports,ue=ee&&"object"==typeof module&&module&&!module.nodeType&&module,ie=ue&&ue.exports===ee,oe=ie&&ne.process,fe=function(){ +try{var n=ue&&ue.require&&ue.require("util").types;return n?n:oe&&oe.binding&&oe.binding("util")}catch(n){}}(),ce=fe&&fe.isArrayBuffer,ae=fe&&fe.isDate,le=fe&&fe.isMap,se=fe&&fe.isRegExp,he=fe&&fe.isSet,pe=fe&&fe.isTypedArray,_e=m("length"),ve=x(Gr),ge=x(Hr),ye=x(Jr),de=function p(x){function Z(n){if(cc(n)&&!bh(n)&&!(n instanceof Ct)){if(n instanceof Y)return n;if(bl.call(n,"__wrapped__"))return eo(n)}return new Y(n)}function J(){}function Y(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t, +this.__index__=0,this.__values__=X}function Ct(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Un,this.__views__=[]}function $t(){var n=new Ct(this.__wrapped__);return n.__actions__=Tu(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Tu(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Tu(this.__views__),n}function Yt(){if(this.__filtered__){var n=new Ct(this);n.__dir__=-1, +n.__filtered__=!0}else n=this.clone(),n.__dir__*=-1;return n}function Qt(){var n=this.__wrapped__.value(),t=this.__dir__,r=bh(n),e=t<0,u=r?n.length:0,i=Oi(0,u,this.__views__),o=i.start,f=i.end,c=f-o,a=e?f:o-1,l=this.__iteratees__,s=l.length,h=0,p=Hl(c,this.__takeCount__);if(!r||!e&&u==c&&p==c)return wu(n,this.__actions__);var _=[];n:for(;c--&&h-1}function lr(n,t){var r=this.__data__,e=Wr(r,n);return e<0?(++this.size,r.push([n,t])):r[e][1]=t,this}function sr(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function Fr(n,t,e,u,i,o){var f,c=t&an,a=t&ln,l=t&sn;if(e&&(f=i?e(n,u,i,o):e(n)),f!==X)return f;if(!fc(n))return n;var s=bh(n);if(s){if(f=zi(n),!c)return Tu(n,f)}else{var h=zs(n),p=h==Kn||h==Vn;if(mh(n))return Iu(n,c);if(h==Yn||h==Dn||p&&!i){if(f=a||p?{}:Ei(n),!c)return a?Mu(n,Ur(f,n)):Du(n,Cr(f,n))}else{if(!Vr[h])return i?n:{};f=Si(n,h,c)}}o||(o=new wr);var _=o.get(n);if(_)return _;o.set(n,f),kh(n)?n.forEach(function(r){f.add(Fr(r,t,e,r,n,o))}):jh(n)&&n.forEach(function(r,u){ +f.set(u,Fr(r,t,e,u,n,o))});var v=l?a?di:yi:a?qc:Pc,g=s?X:v(n);return r(g||n,function(r,u){g&&(u=r,r=n[u]),Sr(f,u,Fr(r,t,e,u,n,o))}),f}function Nr(n){var t=Pc(n);return function(r){return Pr(r,n,t)}}function Pr(n,t,r){var e=r.length;if(null==n)return!e;for(n=ll(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===X&&!(u in n)||!i(o))return!1}return!0}function Gr(n,t,r){if("function"!=typeof n)throw new pl(en);return Ws(function(){n.apply(X,r)},t)}function Hr(n,t,r,e){var u=-1,i=o,a=!0,l=n.length,s=[],h=t.length; +if(!l)return s;r&&(t=c(t,z(r))),e?(i=f,a=!1):t.length>=tn&&(i=S,a=!1,t=new yr(t));n:for(;++uu?0:u+r), +e=e===X||e>u?u:kc(e),e<0&&(e+=u),e=r>e?0:Oc(e);r0&&r(f)?t>1?ee(f,t-1,r,e,u):a(u,f):e||(u[u.length]=f)}return u}function ue(n,t){return n&&bs(n,t,Pc)}function oe(n,t){return n&&ws(n,t,Pc)}function fe(n,t){return i(t,function(t){return uc(n[t])})}function _e(n,t){t=ku(t,n);for(var r=0,e=t.length;null!=n&&rt}function xe(n,t){return null!=n&&bl.call(n,t)}function je(n,t){return null!=n&&t in ll(n)}function Ae(n,t,r){return n>=Hl(t,r)&&n=120&&p.length>=120)?new yr(a&&p):X}p=n[0]; +var _=-1,v=l[0];n:for(;++_-1;)f!==n&&Ll.call(f,a,1),Ll.call(n,a,1);return n}function nu(n,t){for(var r=n?t.length:0,e=r-1;r--;){ +var u=t[r];if(r==e||u!==i){var i=u;Ci(u)?Ll.call(n,u,1):yu(n,u)}}return n}function tu(n,t){return n+Nl(Ql()*(t-n+1))}function ru(n,t,r,e){for(var u=-1,i=Gl(Fl((t-n)/(r||1)),0),o=il(i);i--;)o[e?i:++u]=n,n+=r;return o}function eu(n,t){var r="";if(!n||t<1||t>Wn)return r;do t%2&&(r+=n),t=Nl(t/2),t&&(n+=n);while(t);return r}function uu(n,t){return Ls(Vi(n,t,La),n+"")}function iu(n){return Ir(ra(n))}function ou(n,t){var r=ra(n);return Xi(r,Mr(t,0,r.length))}function fu(n,t,r,e){if(!fc(n))return n;t=ku(t,n); +for(var u=-1,i=t.length,o=i-1,f=n;null!=f&&++uu?0:u+t),r=r>u?u:r,r<0&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var i=il(u);++e>>1,o=n[i];null!==o&&!bc(o)&&(r?o<=t:o=tn){var s=t?null:ks(n);if(s)return P(s);c=!1,u=S,l=new yr}else l=t?[]:a;n:for(;++e=e?n:au(n,t,r)}function Iu(n,t){if(t)return n.slice();var r=n.length,e=zl?zl(r):new n.constructor(r); +return n.copy(e),e}function Ru(n){var t=new n.constructor(n.byteLength);return new Rl(t).set(new Rl(n)),t}function zu(n,t){return new n.constructor(t?Ru(n.buffer):n.buffer,n.byteOffset,n.byteLength)}function Eu(n){var t=new n.constructor(n.source,Nt.exec(n));return t.lastIndex=n.lastIndex,t}function Su(n){return _s?ll(_s.call(n)):{}}function Wu(n,t){return new n.constructor(t?Ru(n.buffer):n.buffer,n.byteOffset,n.length)}function Lu(n,t){if(n!==t){var r=n!==X,e=null===n,u=n===n,i=bc(n),o=t!==X,f=null===t,c=t===t,a=bc(t); +if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&n=f)return c;return c*("desc"==r[e]?-1:1)}}return n.index-t.index}function Uu(n,t,r,e){for(var u=-1,i=n.length,o=r.length,f=-1,c=t.length,a=Gl(i-o,0),l=il(c+a),s=!e;++f1?r[u-1]:X,o=u>2?r[2]:X;for(i=n.length>3&&"function"==typeof i?(u--,i):X,o&&Ui(r[0],r[1],o)&&(i=u<3?X:i,u=1),t=ll(t);++e-1?u[i?t[o]:o]:X}}function Yu(n){return gi(function(t){var r=t.length,e=r,u=Y.prototype.thru;for(n&&t.reverse();e--;){var i=t[e];if("function"!=typeof i)throw new pl(en);if(u&&!o&&"wrapper"==bi(i))var o=new Y([],!0)}for(e=o?e:r;++e1&&d.reverse(),s&&cf))return!1;var a=i.get(n),l=i.get(t);if(a&&l)return a==t&&l==n;var s=-1,p=!0,_=r&pn?new yr:X;for(i.set(n,t),i.set(t,n);++s1?"& ":"")+t[e],t=t.join(r>2?", ":" "),n.replace(Ut,"{\n/* [wrapped with "+t+"] */\n")}function Li(n){return bh(n)||dh(n)||!!(Cl&&n&&n[Cl])}function Ci(n,t){var r=typeof n; +return t=null==t?Wn:t,!!t&&("number"==r||"symbol"!=r&&Vt.test(n))&&n>-1&&n%1==0&&n0){if(++t>=On)return arguments[0]}else t=0; +return n.apply(X,arguments)}}function Xi(n,t){var r=-1,e=n.length,u=e-1;for(t=t===X?e:t;++r=this.__values__.length;return{done:n,value:n?X:this.__values__[this.__index__++]}}function uf(){return this}function of(n){for(var t,r=this;r instanceof J;){var e=eo(r);e.__index__=0,e.__values__=X,t?u.__wrapped__=e:t=e;var u=e;r=r.__wrapped__}return u.__wrapped__=n,t}function ff(){var n=this.__wrapped__;if(n instanceof Ct){var t=n;return this.__actions__.length&&(t=new Ct(this)),t=t.reverse(),t.__actions__.push({func:nf,args:[Eo],thisArg:X}),new Y(t,this.__chain__)}return this.thru(Eo); +}function cf(){return wu(this.__wrapped__,this.__actions__)}function af(n,t,r){var e=bh(n)?u:Jr;return r&&Ui(n,t,r)&&(t=X),e(n,mi(t,3))}function lf(n,t){return(bh(n)?i:te)(n,mi(t,3))}function sf(n,t){return ee(yf(n,t),1)}function hf(n,t){return ee(yf(n,t),Sn)}function pf(n,t,r){return r=r===X?1:kc(r),ee(yf(n,t),r)}function _f(n,t){return(bh(n)?r:ys)(n,mi(t,3))}function vf(n,t){return(bh(n)?e:ds)(n,mi(t,3))}function gf(n,t,r,e){n=Hf(n)?n:ra(n),r=r&&!e?kc(r):0;var u=n.length;return r<0&&(r=Gl(u+r,0)), +dc(n)?r<=u&&n.indexOf(t,r)>-1:!!u&&y(n,t,r)>-1}function yf(n,t){return(bh(n)?c:Pe)(n,mi(t,3))}function df(n,t,r,e){return null==n?[]:(bh(t)||(t=null==t?[]:[t]),r=e?X:r,bh(r)||(r=null==r?[]:[r]),He(n,t,r))}function bf(n,t,r){var e=bh(n)?l:j,u=arguments.length<3;return e(n,mi(t,4),r,u,ys)}function wf(n,t,r){var e=bh(n)?s:j,u=arguments.length<3;return e(n,mi(t,4),r,u,ds)}function mf(n,t){return(bh(n)?i:te)(n,Uf(mi(t,3)))}function xf(n){return(bh(n)?Ir:iu)(n)}function jf(n,t,r){return t=(r?Ui(n,t,r):t===X)?1:kc(t), +(bh(n)?Rr:ou)(n,t)}function Af(n){return(bh(n)?zr:cu)(n)}function kf(n){if(null==n)return 0;if(Hf(n))return dc(n)?V(n):n.length;var t=zs(n);return t==Gn||t==tt?n.size:Me(n).length}function Of(n,t,r){var e=bh(n)?h:lu;return r&&Ui(n,t,r)&&(t=X),e(n,mi(t,3))}function If(n,t){if("function"!=typeof t)throw new pl(en);return n=kc(n),function(){if(--n<1)return t.apply(this,arguments)}}function Rf(n,t,r){return t=r?X:t,t=n&&null==t?n.length:t,ai(n,mn,X,X,X,X,t)}function zf(n,t){var r;if("function"!=typeof t)throw new pl(en); +return n=kc(n),function(){return--n>0&&(r=t.apply(this,arguments)),n<=1&&(t=X),r}}function Ef(n,t,r){t=r?X:t;var e=ai(n,yn,X,X,X,X,X,t);return e.placeholder=Ef.placeholder,e}function Sf(n,t,r){t=r?X:t;var e=ai(n,dn,X,X,X,X,X,t);return e.placeholder=Sf.placeholder,e}function Wf(n,t,r){function e(t){var r=h,e=p;return h=p=X,d=t,v=n.apply(e,r)}function u(n){return d=n,g=Ws(f,t),b?e(n):v}function i(n){var r=n-y,e=n-d,u=t-r;return w?Hl(u,_-e):u}function o(n){var r=n-y,e=n-d;return y===X||r>=t||r<0||w&&e>=_; +}function f(){var n=fh();return o(n)?c(n):(g=Ws(f,i(n)),X)}function c(n){return g=X,m&&h?e(n):(h=p=X,v)}function a(){g!==X&&As(g),d=0,h=y=p=g=X}function l(){return g===X?v:c(fh())}function s(){var n=fh(),r=o(n);if(h=arguments,p=this,y=n,r){if(g===X)return u(y);if(w)return As(g),g=Ws(f,t),e(y)}return g===X&&(g=Ws(f,t)),v}var h,p,_,v,g,y,d=0,b=!1,w=!1,m=!0;if("function"!=typeof n)throw new pl(en);return t=Ic(t)||0,fc(r)&&(b=!!r.leading,w="maxWait"in r,_=w?Gl(Ic(r.maxWait)||0,t):_,m="trailing"in r?!!r.trailing:m), +s.cancel=a,s.flush=l,s}function Lf(n){return ai(n,jn)}function Cf(n,t){if("function"!=typeof n||null!=t&&"function"!=typeof t)throw new pl(en);var r=function(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;if(i.has(u))return i.get(u);var o=n.apply(this,e);return r.cache=i.set(u,o)||i,o};return r.cache=new(Cf.Cache||sr),r}function Uf(n){if("function"!=typeof n)throw new pl(en);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2: +return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function Bf(n){return zf(2,n)}function Tf(n,t){if("function"!=typeof n)throw new pl(en);return t=t===X?t:kc(t),uu(n,t)}function $f(t,r){if("function"!=typeof t)throw new pl(en);return r=null==r?0:Gl(kc(r),0),uu(function(e){var u=e[r],i=Ou(e,0,r);return u&&a(i,u),n(t,this,i)})}function Df(n,t,r){var e=!0,u=!0;if("function"!=typeof n)throw new pl(en);return fc(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u), +Wf(n,t,{leading:e,maxWait:t,trailing:u})}function Mf(n){return Rf(n,1)}function Ff(n,t){return ph(Au(t),n)}function Nf(){if(!arguments.length)return[];var n=arguments[0];return bh(n)?n:[n]}function Pf(n){return Fr(n,sn)}function qf(n,t){return t="function"==typeof t?t:X,Fr(n,sn,t)}function Zf(n){return Fr(n,an|sn)}function Kf(n,t){return t="function"==typeof t?t:X,Fr(n,an|sn,t)}function Vf(n,t){return null==t||Pr(n,t,Pc(t))}function Gf(n,t){return n===t||n!==n&&t!==t}function Hf(n){return null!=n&&oc(n.length)&&!uc(n); +}function Jf(n){return cc(n)&&Hf(n)}function Yf(n){return n===!0||n===!1||cc(n)&&we(n)==Nn}function Qf(n){return cc(n)&&1===n.nodeType&&!gc(n)}function Xf(n){if(null==n)return!0;if(Hf(n)&&(bh(n)||"string"==typeof n||"function"==typeof n.splice||mh(n)||Oh(n)||dh(n)))return!n.length;var t=zs(n);if(t==Gn||t==tt)return!n.size;if(Mi(n))return!Me(n).length;for(var r in n)if(bl.call(n,r))return!1;return!0}function nc(n,t){return Se(n,t)}function tc(n,t,r){r="function"==typeof r?r:X;var e=r?r(n,t):X;return e===X?Se(n,t,X,r):!!e; +}function rc(n){if(!cc(n))return!1;var t=we(n);return t==Zn||t==qn||"string"==typeof n.message&&"string"==typeof n.name&&!gc(n)}function ec(n){return"number"==typeof n&&Zl(n)}function uc(n){if(!fc(n))return!1;var t=we(n);return t==Kn||t==Vn||t==Fn||t==Xn}function ic(n){return"number"==typeof n&&n==kc(n)}function oc(n){return"number"==typeof n&&n>-1&&n%1==0&&n<=Wn}function fc(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function cc(n){return null!=n&&"object"==typeof n}function ac(n,t){ +return n===t||Ce(n,t,ji(t))}function lc(n,t,r){return r="function"==typeof r?r:X,Ce(n,t,ji(t),r)}function sc(n){return vc(n)&&n!=+n}function hc(n){if(Es(n))throw new fl(rn);return Ue(n)}function pc(n){return null===n}function _c(n){return null==n}function vc(n){return"number"==typeof n||cc(n)&&we(n)==Hn}function gc(n){if(!cc(n)||we(n)!=Yn)return!1;var t=El(n);if(null===t)return!0;var r=bl.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&dl.call(r)==jl}function yc(n){ +return ic(n)&&n>=-Wn&&n<=Wn}function dc(n){return"string"==typeof n||!bh(n)&&cc(n)&&we(n)==rt}function bc(n){return"symbol"==typeof n||cc(n)&&we(n)==et}function wc(n){return n===X}function mc(n){return cc(n)&&zs(n)==it}function xc(n){return cc(n)&&we(n)==ot}function jc(n){if(!n)return[];if(Hf(n))return dc(n)?G(n):Tu(n);if(Ul&&n[Ul])return D(n[Ul]());var t=zs(n);return(t==Gn?M:t==tt?P:ra)(n)}function Ac(n){if(!n)return 0===n?n:0;if(n=Ic(n),n===Sn||n===-Sn){return(n<0?-1:1)*Ln}return n===n?n:0}function kc(n){ +var t=Ac(n),r=t%1;return t===t?r?t-r:t:0}function Oc(n){return n?Mr(kc(n),0,Un):0}function Ic(n){if("number"==typeof n)return n;if(bc(n))return Cn;if(fc(n)){var t="function"==typeof n.valueOf?n.valueOf():n;n=fc(t)?t+"":t}if("string"!=typeof n)return 0===n?n:+n;n=R(n);var r=qt.test(n);return r||Kt.test(n)?Xr(n.slice(2),r?2:8):Pt.test(n)?Cn:+n}function Rc(n){return $u(n,qc(n))}function zc(n){return n?Mr(kc(n),-Wn,Wn):0===n?n:0}function Ec(n){return null==n?"":vu(n)}function Sc(n,t){var r=gs(n);return null==t?r:Cr(r,t); +}function Wc(n,t){return v(n,mi(t,3),ue)}function Lc(n,t){return v(n,mi(t,3),oe)}function Cc(n,t){return null==n?n:bs(n,mi(t,3),qc)}function Uc(n,t){return null==n?n:ws(n,mi(t,3),qc)}function Bc(n,t){return n&&ue(n,mi(t,3))}function Tc(n,t){return n&&oe(n,mi(t,3))}function $c(n){return null==n?[]:fe(n,Pc(n))}function Dc(n){return null==n?[]:fe(n,qc(n))}function Mc(n,t,r){var e=null==n?X:_e(n,t);return e===X?r:e}function Fc(n,t){return null!=n&&Ri(n,t,xe)}function Nc(n,t){return null!=n&&Ri(n,t,je); +}function Pc(n){return Hf(n)?Or(n):Me(n)}function qc(n){return Hf(n)?Or(n,!0):Fe(n)}function Zc(n,t){var r={};return t=mi(t,3),ue(n,function(n,e,u){Br(r,t(n,e,u),n)}),r}function Kc(n,t){var r={};return t=mi(t,3),ue(n,function(n,e,u){Br(r,e,t(n,e,u))}),r}function Vc(n,t){return Gc(n,Uf(mi(t)))}function Gc(n,t){if(null==n)return{};var r=c(di(n),function(n){return[n]});return t=mi(t),Ye(n,r,function(n,r){return t(n,r[0])})}function Hc(n,t,r){t=ku(t,n);var e=-1,u=t.length;for(u||(u=1,n=X);++et){ +var e=n;n=t,t=e}if(r||n%1||t%1){var u=Ql();return Hl(n+u*(t-n+Qr("1e-"+((u+"").length-1))),t)}return tu(n,t)}function fa(n){return Qh(Ec(n).toLowerCase())}function ca(n){return n=Ec(n),n&&n.replace(Gt,ve).replace(Dr,"")}function aa(n,t,r){n=Ec(n),t=vu(t);var e=n.length;r=r===X?e:Mr(kc(r),0,e);var u=r;return r-=t.length,r>=0&&n.slice(r,u)==t}function la(n){return n=Ec(n),n&&At.test(n)?n.replace(xt,ge):n}function sa(n){return n=Ec(n),n&&Wt.test(n)?n.replace(St,"\\$&"):n}function ha(n,t,r){n=Ec(n),t=kc(t); +var e=t?V(n):0;if(!t||e>=t)return n;var u=(t-e)/2;return ri(Nl(u),r)+n+ri(Fl(u),r)}function pa(n,t,r){n=Ec(n),t=kc(t);var e=t?V(n):0;return t&&e>>0)?(n=Ec(n),n&&("string"==typeof t||null!=t&&!Ah(t))&&(t=vu(t),!t&&T(n))?Ou(G(n),0,r):n.split(t,r)):[]}function ba(n,t,r){return n=Ec(n),r=null==r?0:Mr(kc(r),0,n.length),t=vu(t),n.slice(r,r+t.length)==t}function wa(n,t,r){var e=Z.templateSettings;r&&Ui(n,t,r)&&(t=X),n=Ec(n),t=Sh({},t,e,li);var u,i,o=Sh({},t.imports,e.imports,li),f=Pc(o),c=E(o,f),a=0,l=t.interpolate||Ht,s="__p += '",h=sl((t.escape||Ht).source+"|"+l.source+"|"+(l===It?Ft:Ht).source+"|"+(t.evaluate||Ht).source+"|$","g"),p="//# sourceURL="+(bl.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Zr+"]")+"\n"; +n.replace(h,function(t,r,e,o,f,c){return e||(e=o),s+=n.slice(a,c).replace(Jt,U),r&&(u=!0,s+="' +\n__e("+r+") +\n'"),f&&(i=!0,s+="';\n"+f+";\n__p += '"),e&&(s+="' +\n((__t = ("+e+")) == null ? '' : __t) +\n'"),a=c+t.length,t}),s+="';\n";var _=bl.call(t,"variable")&&t.variable;if(_){if(Dt.test(_))throw new fl(un)}else s="with (obj) {\n"+s+"\n}\n";s=(i?s.replace(dt,""):s).replace(bt,"$1").replace(wt,"$1;"),s="function("+(_||"obj")+") {\n"+(_?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(u?", __e = _.escape":"")+(i?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+s+"return __p\n}"; +var v=Xh(function(){return cl(f,p+"return "+s).apply(X,c)});if(v.source=s,rc(v))throw v;return v}function ma(n){return Ec(n).toLowerCase()}function xa(n){return Ec(n).toUpperCase()}function ja(n,t,r){if(n=Ec(n),n&&(r||t===X))return R(n);if(!n||!(t=vu(t)))return n;var e=G(n),u=G(t);return Ou(e,W(e,u),L(e,u)+1).join("")}function Aa(n,t,r){if(n=Ec(n),n&&(r||t===X))return n.slice(0,H(n)+1);if(!n||!(t=vu(t)))return n;var e=G(n);return Ou(e,0,L(e,G(t))+1).join("")}function ka(n,t,r){if(n=Ec(n),n&&(r||t===X))return n.replace(Lt,""); +if(!n||!(t=vu(t)))return n;var e=G(n);return Ou(e,W(e,G(t))).join("")}function Oa(n,t){var r=An,e=kn;if(fc(t)){var u="separator"in t?t.separator:u;r="length"in t?kc(t.length):r,e="omission"in t?vu(t.omission):e}n=Ec(n);var i=n.length;if(T(n)){var o=G(n);i=o.length}if(r>=i)return n;var f=r-V(e);if(f<1)return e;var c=o?Ou(o,0,f).join(""):n.slice(0,f);if(u===X)return c+e;if(o&&(f+=c.length-f),Ah(u)){if(n.slice(f).search(u)){var a,l=c;for(u.global||(u=sl(u.source,Ec(Nt.exec(u))+"g")),u.lastIndex=0;a=u.exec(l);)var s=a.index; +c=c.slice(0,s===X?f:s)}}else if(n.indexOf(vu(u),f)!=f){var h=c.lastIndexOf(u);h>-1&&(c=c.slice(0,h))}return c+e}function Ia(n){return n=Ec(n),n&&jt.test(n)?n.replace(mt,ye):n}function Ra(n,t,r){return n=Ec(n),t=r?X:t,t===X?$(n)?Q(n):_(n):n.match(t)||[]}function za(t){var r=null==t?0:t.length,e=mi();return t=r?c(t,function(n){if("function"!=typeof n[1])throw new pl(en);return[e(n[0]),n[1]]}):[],uu(function(e){for(var u=-1;++uWn)return[];var r=Un,e=Hl(n,Un);t=mi(t),n-=Un;for(var u=O(e,t);++r1?n[t-1]:X;return r="function"==typeof r?(n.pop(), +r):X,Ho(n,r)}),Qs=gi(function(n){var t=n.length,r=t?n[0]:0,e=this.__wrapped__,u=function(t){return Tr(t,n)};return!(t>1||this.__actions__.length)&&e instanceof Ct&&Ci(r)?(e=e.slice(r,+r+(t?1:0)),e.__actions__.push({func:nf,args:[u],thisArg:X}),new Y(e,this.__chain__).thru(function(n){return t&&!n.length&&n.push(X),n})):this.thru(u)}),Xs=Fu(function(n,t,r){bl.call(n,r)?++n[r]:Br(n,r,1)}),nh=Ju(ho),th=Ju(po),rh=Fu(function(n,t,r){bl.call(n,r)?n[r].push(t):Br(n,r,[t])}),eh=uu(function(t,r,e){var u=-1,i="function"==typeof r,o=Hf(t)?il(t.length):[]; +return ys(t,function(t){o[++u]=i?n(r,t,e):Ie(t,r,e)}),o}),uh=Fu(function(n,t,r){Br(n,r,t)}),ih=Fu(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),oh=uu(function(n,t){if(null==n)return[];var r=t.length;return r>1&&Ui(n,t[0],t[1])?t=[]:r>2&&Ui(t[0],t[1],t[2])&&(t=[t[0]]),He(n,ee(t,1),[])}),fh=Dl||function(){return re.Date.now()},ch=uu(function(n,t,r){var e=_n;if(r.length){var u=N(r,wi(ch));e|=bn}return ai(n,e,t,r,u)}),ah=uu(function(n,t,r){var e=_n|vn;if(r.length){var u=N(r,wi(ah));e|=bn; +}return ai(t,e,n,r,u)}),lh=uu(function(n,t){return Gr(n,1,t)}),sh=uu(function(n,t,r){return Gr(n,Ic(t)||0,r)});Cf.Cache=sr;var hh=js(function(t,r){r=1==r.length&&bh(r[0])?c(r[0],z(mi())):c(ee(r,1),z(mi()));var e=r.length;return uu(function(u){for(var i=-1,o=Hl(u.length,e);++i=t}),dh=Re(function(){return arguments}())?Re:function(n){return cc(n)&&bl.call(n,"callee")&&!Wl.call(n,"callee")},bh=il.isArray,wh=ce?z(ce):ze,mh=ql||qa,xh=ae?z(ae):Ee,jh=le?z(le):Le,Ah=se?z(se):Be,kh=he?z(he):Te,Oh=pe?z(pe):$e,Ih=ii(Ne),Rh=ii(function(n,t){return n<=t}),zh=Nu(function(n,t){if(Mi(t)||Hf(t))return $u(t,Pc(t),n),X;for(var r in t)bl.call(t,r)&&Sr(n,r,t[r])}),Eh=Nu(function(n,t){$u(t,qc(t),n)}),Sh=Nu(function(n,t,r,e){$u(t,qc(t),n,e)}),Wh=Nu(function(n,t,r,e){$u(t,Pc(t),n,e); +}),Lh=gi(Tr),Ch=uu(function(n,t){n=ll(n);var r=-1,e=t.length,u=e>2?t[2]:X;for(u&&Ui(t[0],t[1],u)&&(e=1);++r1),t}),$u(n,di(n),r),e&&(r=Fr(r,an|ln|sn,hi));for(var u=t.length;u--;)yu(r,t[u]);return r}),Nh=gi(function(n,t){return null==n?{}:Je(n,t)}),Ph=ci(Pc),qh=ci(qc),Zh=Vu(function(n,t,r){return t=t.toLowerCase(),n+(r?fa(t):t)}),Kh=Vu(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),Vh=Vu(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),Gh=Ku("toLowerCase"),Hh=Vu(function(n,t,r){ +return n+(r?"_":"")+t.toLowerCase()}),Jh=Vu(function(n,t,r){return n+(r?" ":"")+Qh(t)}),Yh=Vu(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),Qh=Ku("toUpperCase"),Xh=uu(function(t,r){try{return n(t,X,r)}catch(n){return rc(n)?n:new fl(n)}}),np=gi(function(n,t){return r(t,function(t){t=no(t),Br(n,t,ch(n[t],n))}),n}),tp=Yu(),rp=Yu(!0),ep=uu(function(n,t){return function(r){return Ie(r,n,t)}}),up=uu(function(n,t){return function(r){return Ie(n,r,t)}}),ip=ti(c),op=ti(u),fp=ti(h),cp=ui(),ap=ui(!0),lp=ni(function(n,t){ +return n+t},0),sp=fi("ceil"),hp=ni(function(n,t){return n/t},1),pp=fi("floor"),_p=ni(function(n,t){return n*t},1),vp=fi("round"),gp=ni(function(n,t){return n-t},0);return Z.after=If,Z.ary=Rf,Z.assign=zh,Z.assignIn=Eh,Z.assignInWith=Sh,Z.assignWith=Wh,Z.at=Lh,Z.before=zf,Z.bind=ch,Z.bindAll=np,Z.bindKey=ah,Z.castArray=Nf,Z.chain=Qo,Z.chunk=uo,Z.compact=io,Z.concat=oo,Z.cond=za,Z.conforms=Ea,Z.constant=Sa,Z.countBy=Xs,Z.create=Sc,Z.curry=Ef,Z.curryRight=Sf,Z.debounce=Wf,Z.defaults=Ch,Z.defaultsDeep=Uh, +Z.defer=lh,Z.delay=sh,Z.difference=Us,Z.differenceBy=Bs,Z.differenceWith=Ts,Z.drop=fo,Z.dropRight=co,Z.dropRightWhile=ao,Z.dropWhile=lo,Z.fill=so,Z.filter=lf,Z.flatMap=sf,Z.flatMapDeep=hf,Z.flatMapDepth=pf,Z.flatten=_o,Z.flattenDeep=vo,Z.flattenDepth=go,Z.flip=Lf,Z.flow=tp,Z.flowRight=rp,Z.fromPairs=yo,Z.functions=$c,Z.functionsIn=Dc,Z.groupBy=rh,Z.initial=mo,Z.intersection=$s,Z.intersectionBy=Ds,Z.intersectionWith=Ms,Z.invert=Bh,Z.invertBy=Th,Z.invokeMap=eh,Z.iteratee=Ca,Z.keyBy=uh,Z.keys=Pc,Z.keysIn=qc, +Z.map=yf,Z.mapKeys=Zc,Z.mapValues=Kc,Z.matches=Ua,Z.matchesProperty=Ba,Z.memoize=Cf,Z.merge=Dh,Z.mergeWith=Mh,Z.method=ep,Z.methodOf=up,Z.mixin=Ta,Z.negate=Uf,Z.nthArg=Ma,Z.omit=Fh,Z.omitBy=Vc,Z.once=Bf,Z.orderBy=df,Z.over=ip,Z.overArgs=hh,Z.overEvery=op,Z.overSome=fp,Z.partial=ph,Z.partialRight=_h,Z.partition=ih,Z.pick=Nh,Z.pickBy=Gc,Z.property=Fa,Z.propertyOf=Na,Z.pull=Fs,Z.pullAll=Oo,Z.pullAllBy=Io,Z.pullAllWith=Ro,Z.pullAt=Ns,Z.range=cp,Z.rangeRight=ap,Z.rearg=vh,Z.reject=mf,Z.remove=zo,Z.rest=Tf, +Z.reverse=Eo,Z.sampleSize=jf,Z.set=Jc,Z.setWith=Yc,Z.shuffle=Af,Z.slice=So,Z.sortBy=oh,Z.sortedUniq=$o,Z.sortedUniqBy=Do,Z.split=da,Z.spread=$f,Z.tail=Mo,Z.take=Fo,Z.takeRight=No,Z.takeRightWhile=Po,Z.takeWhile=qo,Z.tap=Xo,Z.throttle=Df,Z.thru=nf,Z.toArray=jc,Z.toPairs=Ph,Z.toPairsIn=qh,Z.toPath=Ha,Z.toPlainObject=Rc,Z.transform=Qc,Z.unary=Mf,Z.union=Ps,Z.unionBy=qs,Z.unionWith=Zs,Z.uniq=Zo,Z.uniqBy=Ko,Z.uniqWith=Vo,Z.unset=Xc,Z.unzip=Go,Z.unzipWith=Ho,Z.update=na,Z.updateWith=ta,Z.values=ra,Z.valuesIn=ea, +Z.without=Ks,Z.words=Ra,Z.wrap=Ff,Z.xor=Vs,Z.xorBy=Gs,Z.xorWith=Hs,Z.zip=Js,Z.zipObject=Jo,Z.zipObjectDeep=Yo,Z.zipWith=Ys,Z.entries=Ph,Z.entriesIn=qh,Z.extend=Eh,Z.extendWith=Sh,Ta(Z,Z),Z.add=lp,Z.attempt=Xh,Z.camelCase=Zh,Z.capitalize=fa,Z.ceil=sp,Z.clamp=ua,Z.clone=Pf,Z.cloneDeep=Zf,Z.cloneDeepWith=Kf,Z.cloneWith=qf,Z.conformsTo=Vf,Z.deburr=ca,Z.defaultTo=Wa,Z.divide=hp,Z.endsWith=aa,Z.eq=Gf,Z.escape=la,Z.escapeRegExp=sa,Z.every=af,Z.find=nh,Z.findIndex=ho,Z.findKey=Wc,Z.findLast=th,Z.findLastIndex=po, +Z.findLastKey=Lc,Z.floor=pp,Z.forEach=_f,Z.forEachRight=vf,Z.forIn=Cc,Z.forInRight=Uc,Z.forOwn=Bc,Z.forOwnRight=Tc,Z.get=Mc,Z.gt=gh,Z.gte=yh,Z.has=Fc,Z.hasIn=Nc,Z.head=bo,Z.identity=La,Z.includes=gf,Z.indexOf=wo,Z.inRange=ia,Z.invoke=$h,Z.isArguments=dh,Z.isArray=bh,Z.isArrayBuffer=wh,Z.isArrayLike=Hf,Z.isArrayLikeObject=Jf,Z.isBoolean=Yf,Z.isBuffer=mh,Z.isDate=xh,Z.isElement=Qf,Z.isEmpty=Xf,Z.isEqual=nc,Z.isEqualWith=tc,Z.isError=rc,Z.isFinite=ec,Z.isFunction=uc,Z.isInteger=ic,Z.isLength=oc,Z.isMap=jh, +Z.isMatch=ac,Z.isMatchWith=lc,Z.isNaN=sc,Z.isNative=hc,Z.isNil=_c,Z.isNull=pc,Z.isNumber=vc,Z.isObject=fc,Z.isObjectLike=cc,Z.isPlainObject=gc,Z.isRegExp=Ah,Z.isSafeInteger=yc,Z.isSet=kh,Z.isString=dc,Z.isSymbol=bc,Z.isTypedArray=Oh,Z.isUndefined=wc,Z.isWeakMap=mc,Z.isWeakSet=xc,Z.join=xo,Z.kebabCase=Kh,Z.last=jo,Z.lastIndexOf=Ao,Z.lowerCase=Vh,Z.lowerFirst=Gh,Z.lt=Ih,Z.lte=Rh,Z.max=Ya,Z.maxBy=Qa,Z.mean=Xa,Z.meanBy=nl,Z.min=tl,Z.minBy=rl,Z.stubArray=Pa,Z.stubFalse=qa,Z.stubObject=Za,Z.stubString=Ka, +Z.stubTrue=Va,Z.multiply=_p,Z.nth=ko,Z.noConflict=$a,Z.noop=Da,Z.now=fh,Z.pad=ha,Z.padEnd=pa,Z.padStart=_a,Z.parseInt=va,Z.random=oa,Z.reduce=bf,Z.reduceRight=wf,Z.repeat=ga,Z.replace=ya,Z.result=Hc,Z.round=vp,Z.runInContext=p,Z.sample=xf,Z.size=kf,Z.snakeCase=Hh,Z.some=Of,Z.sortedIndex=Wo,Z.sortedIndexBy=Lo,Z.sortedIndexOf=Co,Z.sortedLastIndex=Uo,Z.sortedLastIndexBy=Bo,Z.sortedLastIndexOf=To,Z.startCase=Jh,Z.startsWith=ba,Z.subtract=gp,Z.sum=el,Z.sumBy=ul,Z.template=wa,Z.times=Ga,Z.toFinite=Ac,Z.toInteger=kc, +Z.toLength=Oc,Z.toLower=ma,Z.toNumber=Ic,Z.toSafeInteger=zc,Z.toString=Ec,Z.toUpper=xa,Z.trim=ja,Z.trimEnd=Aa,Z.trimStart=ka,Z.truncate=Oa,Z.unescape=Ia,Z.uniqueId=Ja,Z.upperCase=Yh,Z.upperFirst=Qh,Z.each=_f,Z.eachRight=vf,Z.first=bo,Ta(Z,function(){var n={};return ue(Z,function(t,r){bl.call(Z.prototype,r)||(n[r]=t)}),n}(),{chain:!1}),Z.VERSION=nn,r(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){Z[n].placeholder=Z}),r(["drop","take"],function(n,t){Ct.prototype[n]=function(r){ +r=r===X?1:Gl(kc(r),0);var e=this.__filtered__&&!t?new Ct(this):this.clone();return e.__filtered__?e.__takeCount__=Hl(r,e.__takeCount__):e.__views__.push({size:Hl(r,Un),type:n+(e.__dir__<0?"Right":"")}),e},Ct.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),r(["filter","map","takeWhile"],function(n,t){var r=t+1,e=r==Rn||r==En;Ct.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:mi(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r(["head","last"],function(n,t){ +var r="take"+(t?"Right":"");Ct.prototype[n]=function(){return this[r](1).value()[0]}}),r(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");Ct.prototype[n]=function(){return this.__filtered__?new Ct(this):this[r](1)}}),Ct.prototype.compact=function(){return this.filter(La)},Ct.prototype.find=function(n){return this.filter(n).head()},Ct.prototype.findLast=function(n){return this.reverse().find(n)},Ct.prototype.invokeMap=uu(function(n,t){return"function"==typeof n?new Ct(this):this.map(function(r){ +return Ie(r,n,t)})}),Ct.prototype.reject=function(n){return this.filter(Uf(mi(n)))},Ct.prototype.slice=function(n,t){n=kc(n);var r=this;return r.__filtered__&&(n>0||t<0)?new Ct(r):(n<0?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==X&&(t=kc(t),r=t<0?r.dropRight(-t):r.take(t-n)),r)},Ct.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Ct.prototype.toArray=function(){return this.take(Un)},ue(Ct.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=Z[e?"take"+("last"==t?"Right":""):t],i=e||/^find/.test(t); +u&&(Z.prototype[t]=function(){var t=this.__wrapped__,o=e?[1]:arguments,f=t instanceof Ct,c=o[0],l=f||bh(t),s=function(n){var t=u.apply(Z,a([n],o));return e&&h?t[0]:t};l&&r&&"function"==typeof c&&1!=c.length&&(f=l=!1);var h=this.__chain__,p=!!this.__actions__.length,_=i&&!h,v=f&&!p;if(!i&&l){t=v?t:new Ct(this);var g=n.apply(t,o);return g.__actions__.push({func:nf,args:[s],thisArg:X}),new Y(g,h)}return _&&v?n.apply(this,o):(g=this.thru(s),_?e?g.value()[0]:g.value():g)})}),r(["pop","push","shift","sort","splice","unshift"],function(n){ +var t=_l[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);Z.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(bh(u)?u:[],n)}return this[r](function(r){return t.apply(bh(r)?r:[],n)})}}),ue(Ct.prototype,function(n,t){var r=Z[t];if(r){var e=r.name+"";bl.call(fs,e)||(fs[e]=[]),fs[e].push({name:t,func:r})}}),fs[Qu(X,vn).name]=[{name:"wrapper",func:X}],Ct.prototype.clone=$t,Ct.prototype.reverse=Yt,Ct.prototype.value=Qt,Z.prototype.at=Qs, +Z.prototype.chain=tf,Z.prototype.commit=rf,Z.prototype.next=ef,Z.prototype.plant=of,Z.prototype.reverse=ff,Z.prototype.toJSON=Z.prototype.valueOf=Z.prototype.value=cf,Z.prototype.first=Z.prototype.head,Ul&&(Z.prototype[Ul]=uf),Z},be=de();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(re._=be,define(function(){return be})):ue?((ue.exports=be)._=be,ee._=be):re._=be}).call(this); \ No newline at end of file diff --git a/app/bower_components/lodash/doc/README.md b/app/bower_components/lodash/doc/README.md index 332017c..167c804 100644 --- a/app/bower_components/lodash/doc/README.md +++ b/app/bower_components/lodash/doc/README.md @@ -1,4 +1,4 @@ -# lodash v4.17.15 +# lodash v4.17.21 @@ -415,7 +415,7 @@

_.chunk(array, [size=1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L6839 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.chunk "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L6903 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.chunk "See the npm package") [Ⓣ][1] Creates an array of elements split into groups the length of `size`. If `array` can't be split evenly, the final chunk will be the remaining @@ -446,7 +446,7 @@ _.chunk(['a', 'b', 'c', 'd'], 3);

_.compact(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L6874 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.compact "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L6938 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.compact "See the npm package") [Ⓣ][1] Creates an array with all falsey values removed. The values `false`, `null`, `0`, `""`, `undefined`, and `NaN` are falsey. @@ -472,7 +472,7 @@ _.compact([0, 1, false, 2, '', 3]);

_.concat(array, [values])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L6911 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.concat "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L6975 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.concat "See the npm package") [Ⓣ][1] Creates a new array concatenating `array` with any additional arrays and/or values. @@ -505,7 +505,7 @@ console.log(array);

_.difference(array, [values])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L6947 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.difference "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7011 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.difference "See the npm package") [Ⓣ][1] Creates an array of `array` values not included in the other given arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) @@ -537,7 +537,7 @@ _.difference([2, 1], [2, 3]);

_.differenceBy(array, [values], [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L6979 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.differenceby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7043 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.differenceby "See the npm package") [Ⓣ][1] This method is like `_.difference` except that it accepts `iteratee` which is invoked for each element of `array` and `values` to generate the criterion @@ -575,7 +575,7 @@ _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');

_.differenceWith(array, [values], [comparator])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7012 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.differencewith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7076 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.differencewith "See the npm package") [Ⓣ][1] This method is like `_.difference` except that it accepts `comparator` which is invoked to compare elements of `array` to `values`. The order and @@ -610,7 +610,7 @@ _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);

_.drop(array, [n=1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7047 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.drop "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7111 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.drop "See the npm package") [Ⓣ][1] Creates a slice of `array` with `n` elements dropped from the beginning. @@ -645,7 +645,7 @@ _.drop([1, 2, 3], 0);

_.dropRight(array, [n=1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7081 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.dropright "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7145 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.dropright "See the npm package") [Ⓣ][1] Creates a slice of `array` with `n` elements dropped from the end. @@ -680,7 +680,7 @@ _.dropRight([1, 2, 3], 0);

_.dropRightWhile(array, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7126 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.droprightwhile "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7190 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.droprightwhile "See the npm package") [Ⓣ][1] Creates a slice of `array` excluding elements dropped from the end. Elements are dropped until `predicate` returns falsey. The predicate is @@ -726,7 +726,7 @@ _.dropRightWhile(users, 'active');

_.dropWhile(array, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7167 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.dropwhile "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7231 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.dropwhile "See the npm package") [Ⓣ][1] Creates a slice of `array` excluding elements dropped from the beginning. Elements are dropped until `predicate` returns falsey. The predicate is @@ -772,7 +772,7 @@ _.dropWhile(users, 'active');

_.fill(array, value, [start=0], [end=array.length])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7202 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.fill "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7266 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.fill "See the npm package") [Ⓣ][1] Fills elements of `array` with `value` from `start` up to, but not including, `end`. @@ -813,7 +813,7 @@ _.fill([4, 6, 8, 10], '*', 1, 3);

_.findIndex(array, [predicate=_.identity], [fromIndex=0])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7249 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findindex "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7313 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findindex "See the npm package") [Ⓣ][1] This method is like `_.find` except that it returns the index of the first element `predicate` returns truthy for instead of the element itself. @@ -859,7 +859,7 @@ _.findIndex(users, 'active');

_.findLastIndex(array, [predicate=_.identity], [fromIndex=array.length-1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7296 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findlastindex "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7360 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findlastindex "See the npm package") [Ⓣ][1] This method is like `_.findIndex` except that it iterates over elements of `collection` from right to left. @@ -905,7 +905,7 @@ _.findLastIndex(users, 'active');

_.flatten(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7325 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatten "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7389 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatten "See the npm package") [Ⓣ][1] Flattens `array` a single level deep. @@ -930,7 +930,7 @@ _.flatten([1, [2, [3, [4]], 5]]);

_.flattenDeep(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7344 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flattendeep "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7408 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flattendeep "See the npm package") [Ⓣ][1] Recursively flattens `array`. @@ -955,7 +955,7 @@ _.flattenDeep([1, [2, [3, [4]], 5]]);

_.flattenDepth(array, [depth=1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7369 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flattendepth "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7433 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flattendepth "See the npm package") [Ⓣ][1] Recursively flatten `array` up to `depth` times. @@ -986,7 +986,7 @@ _.flattenDepth(array, 2);

_.fromPairs(pairs)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7393 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.frompairs "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7457 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.frompairs "See the npm package") [Ⓣ][1] The inverse of `_.toPairs`; this method returns an object composed from key-value `pairs`. @@ -1012,7 +1012,7 @@ _.fromPairs([['a', 1], ['b', 2]]);

_.head(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7423 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.head "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7487 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.head "See the npm package") [Ⓣ][1] Gets the first element of `array`. @@ -1043,7 +1043,7 @@ _.head([]);

_.indexOf(array, value, [fromIndex=0])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7450 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.indexof "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7514 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.indexof "See the npm package") [Ⓣ][1] Gets the index at which the first occurrence of `value` is found in `array` using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) @@ -1077,7 +1077,7 @@ _.indexOf([1, 2, 1, 2], 2, 2);

_.initial(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7476 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.initial "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7540 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.initial "See the npm package") [Ⓣ][1] Gets all but the last element of `array`. @@ -1102,7 +1102,7 @@ _.initial([1, 2, 3]);

_.intersection([arrays])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7498 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.intersection "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7562 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.intersection "See the npm package") [Ⓣ][1] Creates an array of unique values that are included in all given arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) @@ -1130,7 +1130,7 @@ _.intersection([2, 1], [2, 3]);

_.intersectionBy([arrays], [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7528 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.intersectionby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7592 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.intersectionby "See the npm package") [Ⓣ][1] This method is like `_.intersection` except that it accepts `iteratee` which is invoked for each element of each `arrays` to generate the criterion @@ -1164,7 +1164,7 @@ _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');

_.intersectionWith([arrays], [comparator])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7563 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.intersectionwith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7627 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.intersectionwith "See the npm package") [Ⓣ][1] This method is like `_.intersection` except that it accepts `comparator` which is invoked to compare elements of `arrays`. The order and references @@ -1196,7 +1196,7 @@ _.intersectionWith(objects, others, _.isEqual);

_.join(array, [separator=','])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7591 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.join "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7655 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.join "See the npm package") [Ⓣ][1] Converts all elements in `array` into a string separated by `separator`. @@ -1222,7 +1222,7 @@ _.join(['a', 'b', 'c'], '~');

_.last(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7609 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.last "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7673 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.last "See the npm package") [Ⓣ][1] Gets the last element of `array`. @@ -1247,7 +1247,7 @@ _.last([1, 2, 3]);

_.lastIndexOf(array, value, [fromIndex=array.length-1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7635 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lastindexof "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7699 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lastindexof "See the npm package") [Ⓣ][1] This method is like `_.indexOf` except that it iterates over elements of `array` from right to left. @@ -1279,7 +1279,7 @@ _.lastIndexOf([1, 2, 1, 2], 2, 2);

_.nth(array, [n=0])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7671 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.nth "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7735 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.nth "See the npm package") [Ⓣ][1] Gets the element at index `n` of `array`. If `n` is negative, the nth element from the end is returned. @@ -1311,7 +1311,7 @@ _.nth(array, -2);

_.pull(array, [values])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7698 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pull "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7762 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pull "See the npm package") [Ⓣ][1] Removes all given values from `array` using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) @@ -1346,7 +1346,7 @@ console.log(array);

_.pullAll(array, values)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7720 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullall "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7784 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullall "See the npm package") [Ⓣ][1] This method is like `_.pull` except that it accepts an array of values to remove.
@@ -1378,7 +1378,7 @@ console.log(array);

_.pullAllBy(array, values, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7749 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullallby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7813 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullallby "See the npm package") [Ⓣ][1] This method is like `_.pullAll` except that it accepts `iteratee` which is invoked for each element of `array` and `values` to generate the criterion @@ -1413,7 +1413,7 @@ console.log(array);

_.pullAllWith(array, values, [comparator])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7778 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullallwith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7842 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullallwith "See the npm package") [Ⓣ][1] This method is like `_.pullAll` except that it accepts `comparator` which is invoked to compare elements of `array` to `values`. The comparator is @@ -1448,7 +1448,7 @@ console.log(array);

_.pullAt(array, [indexes])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7808 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullat "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7872 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullat "See the npm package") [Ⓣ][1] Removes elements from `array` corresponding to `indexes` and returns an array of removed elements. @@ -1484,7 +1484,7 @@ console.log(pulled);

_.remove(array, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7847 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.remove "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7911 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.remove "See the npm package") [Ⓣ][1] Removes all elements from `array` that `predicate` returns truthy for and returns an array of the removed elements. The predicate is invoked @@ -1524,7 +1524,7 @@ console.log(evens);

_.reverse(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7891 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reverse "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7955 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reverse "See the npm package") [Ⓣ][1] Reverses `array` so that the first element becomes the last, the second element becomes the second to last, and so on. @@ -1559,7 +1559,7 @@ console.log(array);

_.slice(array, [start=0], [end=array.length])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7911 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.slice "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L7975 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.slice "See the npm package") [Ⓣ][1] Creates a slice of `array` from `start` up to, but not including, `end`.
@@ -1586,7 +1586,7 @@ returned.

_.sortedIndex(array, value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7944 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedindex "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8008 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedindex "See the npm package") [Ⓣ][1] Uses a binary search to determine the lowest index at which `value` should be inserted into `array` in order to maintain its sort order. @@ -1613,7 +1613,7 @@ _.sortedIndex([30, 50], 40);

_.sortedIndexBy(array, value, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7973 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedindexby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8037 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedindexby "See the npm package") [Ⓣ][1] This method is like `_.sortedIndex` except that it accepts `iteratee` which is invoked for `value` and each element of `array` to compute their @@ -1648,7 +1648,7 @@ _.sortedIndexBy(objects, { 'x': 4 }, 'x');

_.sortedIndexOf(array, value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L7993 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedindexof "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8057 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedindexof "See the npm package") [Ⓣ][1] This method is like `_.indexOf` except that it performs a binary search on a sorted `array`. @@ -1675,7 +1675,7 @@ _.sortedIndexOf([4, 5, 5, 5, 6], 5);

_.sortedLastIndex(array, value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8022 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindex "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8086 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindex "See the npm package") [Ⓣ][1] This method is like `_.sortedIndex` except that it returns the highest index at which `value` should be inserted into `array` in order to @@ -1703,7 +1703,7 @@ _.sortedLastIndex([4, 5, 5, 5, 6], 5);

_.sortedLastIndexBy(array, value, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8051 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindexby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8115 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindexby "See the npm package") [Ⓣ][1] This method is like `_.sortedLastIndex` except that it accepts `iteratee` which is invoked for `value` and each element of `array` to compute their @@ -1738,7 +1738,7 @@ _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');

_.sortedLastIndexOf(array, value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8071 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindexof "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8135 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindexof "See the npm package") [Ⓣ][1] This method is like `_.lastIndexOf` except that it performs a binary search on a sorted `array`. @@ -1765,7 +1765,7 @@ _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);

_.sortedUniq(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8097 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sorteduniq "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8161 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sorteduniq "See the npm package") [Ⓣ][1] This method is like `_.uniq` except that it's designed and optimized for sorted arrays. @@ -1791,7 +1791,7 @@ _.sortedUniq([1, 1, 2]);

_.sortedUniqBy(array, [iteratee])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8119 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sorteduniqby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8183 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sorteduniqby "See the npm package") [Ⓣ][1] This method is like `_.uniqBy` except that it's designed and optimized for sorted arrays. @@ -1818,7 +1818,7 @@ _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);

_.tail(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8139 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tail "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8203 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tail "See the npm package") [Ⓣ][1] Gets all but the first element of `array`. @@ -1843,7 +1843,7 @@ _.tail([1, 2, 3]);

_.take(array, [n=1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8169 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.take "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8233 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.take "See the npm package") [Ⓣ][1] Creates a slice of `array` with `n` elements taken from the beginning. @@ -1878,7 +1878,7 @@ _.take([1, 2, 3], 0);

_.takeRight(array, [n=1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8202 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.takeright "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8266 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.takeright "See the npm package") [Ⓣ][1] Creates a slice of `array` with `n` elements taken from the end. @@ -1913,7 +1913,7 @@ _.takeRight([1, 2, 3], 0);

_.takeRightWhile(array, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8247 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.takerightwhile "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8311 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.takerightwhile "See the npm package") [Ⓣ][1] Creates a slice of `array` with elements taken from the end. Elements are taken until `predicate` returns falsey. The predicate is invoked with @@ -1959,7 +1959,7 @@ _.takeRightWhile(users, 'active');

_.takeWhile(array, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8288 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.takewhile "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8352 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.takewhile "See the npm package") [Ⓣ][1] Creates a slice of `array` with elements taken from the beginning. Elements are taken until `predicate` returns falsey. The predicate is invoked with @@ -2005,7 +2005,7 @@ _.takeWhile(users, 'active');

_.union([arrays])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8310 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.union "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8374 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.union "See the npm package") [Ⓣ][1] Creates an array of unique values, in order, from all given arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) @@ -2032,7 +2032,7 @@ _.union([2], [1, 2]);

_.unionBy([arrays], [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8337 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unionby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8401 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unionby "See the npm package") [Ⓣ][1] This method is like `_.union` except that it accepts `iteratee` which is invoked for each element of each `arrays` to generate the criterion by @@ -2066,7 +2066,7 @@ _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');

_.unionWith([arrays], [comparator])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8366 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unionwith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8430 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unionwith "See the npm package") [Ⓣ][1] This method is like `_.union` except that it accepts `comparator` which is invoked to compare elements of `arrays`. Result values are chosen from @@ -2098,7 +2098,7 @@ _.unionWith(objects, others, _.isEqual);

_.uniq(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8390 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniq "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8454 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniq "See the npm package") [Ⓣ][1] Creates a duplicate-free version of an array, using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) @@ -2127,7 +2127,7 @@ _.uniq([2, 1, 2]);

_.uniqBy(array, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8417 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniqby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8481 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniqby "See the npm package") [Ⓣ][1] This method is like `_.uniq` except that it accepts `iteratee` which is invoked for each element in `array` to generate the criterion by which @@ -2161,7 +2161,7 @@ _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');

_.uniqWith(array, [comparator])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8441 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniqwith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8505 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniqwith "See the npm package") [Ⓣ][1] This method is like `_.uniq` except that it accepts `comparator` which is invoked to compare elements of `array`. The order of result values is @@ -2192,7 +2192,7 @@ _.uniqWith(objects, _.isEqual);

_.unzip(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8465 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unzip "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8529 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unzip "See the npm package") [Ⓣ][1] This method is like `_.zip` except that it accepts an array of grouped elements and creates an array regrouping the elements to their pre-zip @@ -2222,7 +2222,7 @@ _.unzip(zipped);

_.unzipWith(array, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8502 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unzipwith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8566 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unzipwith "See the npm package") [Ⓣ][1] This method is like `_.unzip` except that it accepts `iteratee` to specify how regrouped values should be combined. The iteratee is invoked with the @@ -2253,7 +2253,7 @@ _.unzipWith(zipped, _.add);

_.without(array, [values])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8535 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.without "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8599 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.without "See the npm package") [Ⓣ][1] Creates an array excluding all given values using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) @@ -2284,7 +2284,7 @@ _.without([2, 1, 2, 3], 1, 2);

_.xor([arrays])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8559 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.xor "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8623 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.xor "See the npm package") [Ⓣ][1] Creates an array of unique values that is the [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) @@ -2312,7 +2312,7 @@ _.xor([2, 1], [2, 3]);

_.xorBy([arrays], [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8586 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.xorby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8650 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.xorby "See the npm package") [Ⓣ][1] This method is like `_.xor` except that it accepts `iteratee` which is invoked for each element of each `arrays` to generate the criterion by @@ -2346,7 +2346,7 @@ _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');

_.xorWith([arrays], [comparator])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8615 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.xorwith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8679 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.xorwith "See the npm package") [Ⓣ][1] This method is like `_.xor` except that it accepts `comparator` which is invoked to compare elements of `arrays`. The order of result values is @@ -2378,7 +2378,7 @@ _.xorWith(objects, others, _.isEqual);

_.zip([arrays])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8637 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zip "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8701 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zip "See the npm package") [Ⓣ][1] Creates an array of grouped elements, the first of which contains the first elements of the given arrays, the second of which contains the @@ -2405,7 +2405,7 @@ _.zip(['a', 'b'], [1, 2], [true, false]);

_.zipObject([props=[]], [values=[]])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8655 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zipobject "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8719 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zipobject "See the npm package") [Ⓣ][1] This method is like `_.fromPairs` except that it accepts two arrays, one of property identifiers and one of corresponding values. @@ -2432,7 +2432,7 @@ _.zipObject(['a', 'b'], [1, 2]);

_.zipObjectDeep([props=[]], [values=[]])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8674 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zipobjectdeep "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8738 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zipobjectdeep "See the npm package") [Ⓣ][1] This method is like `_.zipObject` except that it supports property paths. @@ -2458,7 +2458,7 @@ _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);

_.zipWith([arrays], [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8698 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zipwith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8762 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zipwith "See the npm package") [Ⓣ][1] This method is like `_.zip` except that it accepts `iteratee` to specify how grouped values should be combined. The iteratee is invoked with the @@ -2494,7 +2494,7 @@ _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {

_.countBy(collection, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9077 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.countby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9141 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.countby "See the npm package") [Ⓣ][1] Creates an object composed of keys generated from the results of running each element of `collection` thru `iteratee`. The corresponding value of @@ -2527,7 +2527,7 @@ _.countBy(['one', 'two', 'three'], 'length');

_.every(collection, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9126 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.every "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9190 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.every "See the npm package") [Ⓣ][1] Checks if `predicate` returns truthy for **all** elements of `collection`. Iteration is stopped once `predicate` returns falsey. The predicate is @@ -2578,7 +2578,7 @@ _.every(users, 'active');

_.filter(collection, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9171 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.filter "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9239 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.filter "See the npm package") [Ⓣ][1] Iterates over elements of `collection`, returning an array of all elements `predicate` returns truthy for. The predicate is invoked with three @@ -2618,6 +2618,10 @@ _.filter(users, ['active', false]); // The `_.property` iteratee shorthand. _.filter(users, 'active'); // => objects for ['barney'] + +// Combining several predicates using `_.overEvery` or `_.overSome`. +_.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); +// => objects for ['fred', 'barney'] ``` --- @@ -2626,7 +2630,7 @@ _.filter(users, 'active');

_.find(collection, [predicate=_.identity], [fromIndex=0])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9212 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.find "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9280 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.find "See the npm package") [Ⓣ][1] Iterates over elements of `collection`, returning the first element `predicate` returns truthy for. The predicate is invoked with three @@ -2673,7 +2677,7 @@ _.find(users, 'active');

_.findLast(collection, [predicate=_.identity], [fromIndex=collection.length-1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9233 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findlast "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9301 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findlast "See the npm package") [Ⓣ][1] This method is like `_.find` except that it iterates over elements of `collection` from right to left. @@ -2703,7 +2707,7 @@ _.findLast([1, 2, 3, 4], function(n) {

_.flatMap(collection, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9256 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatmap "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9324 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatmap "See the npm package") [Ⓣ][1] Creates a flattened array of values by running each element in `collection` thru `iteratee` and flattening the mapped results. The iteratee is invoked @@ -2735,7 +2739,7 @@ _.flatMap([1, 2], duplicate);

_.flatMapDeep(collection, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9280 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatmapdeep "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9348 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatmapdeep "See the npm package") [Ⓣ][1] This method is like `_.flatMap` except that it recursively flattens the mapped results. @@ -2766,7 +2770,7 @@ _.flatMapDeep([1, 2], duplicate);

_.flatMapDepth(collection, [iteratee=_.identity], [depth=1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9305 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatmapdepth "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9373 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatmapdepth "See the npm package") [Ⓣ][1] This method is like `_.flatMap` except that it recursively flattens the mapped results up to `depth` times. @@ -2798,7 +2802,7 @@ _.flatMapDepth([1, 2], duplicate, 2);

_.forEach(collection, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9340 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.foreach "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9408 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.foreach "See the npm package") [Ⓣ][1] Iterates over elements of `collection` and invokes `iteratee` for each element. The iteratee is invoked with three arguments: *(value, index|key, collection)*. @@ -2841,7 +2845,7 @@ _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {

_.forEachRight(collection, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9365 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.foreachright "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9433 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.foreachright "See the npm package") [Ⓣ][1] This method is like `_.forEach` except that it iterates over elements of `collection` from right to left. @@ -2873,7 +2877,7 @@ _.forEachRight([1, 2], function(value) {

_.groupBy(collection, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9393 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.groupby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9461 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.groupby "See the npm package") [Ⓣ][1] Creates an object composed of keys generated from the results of running each element of `collection` thru `iteratee`. The order of grouped values @@ -2907,7 +2911,7 @@ _.groupBy(['one', 'two', 'three'], 'length');

_.includes(collection, value, [fromIndex=0])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9431 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.includes "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9499 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.includes "See the npm package") [Ⓣ][1] Checks if `value` is in `collection`. If `collection` is a string, it's checked for a substring of `value`, otherwise @@ -2947,7 +2951,7 @@ _.includes('abcd', 'bc');

_.invokeMap(collection, path, [args])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9467 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invokemap "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9535 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invokemap "See the npm package") [Ⓣ][1] Invokes the method at `path` of each element in `collection`, returning an array of the results of each invoked method. Any additional arguments @@ -2980,7 +2984,7 @@ _.invokeMap([123, 456], String.prototype.split, '');

_.keyBy(collection, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9506 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.keyby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9574 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.keyby "See the npm package") [Ⓣ][1] Creates an object composed of keys generated from the results of running each element of `collection` thru `iteratee`. The corresponding value of @@ -3019,7 +3023,7 @@ _.keyBy(array, 'dir');

_.map(collection, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9552 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.map "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9620 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.map "See the npm package") [Ⓣ][1] Creates an array of values by running each element in `collection` thru `iteratee`. The iteratee is invoked with three arguments:
@@ -3074,7 +3078,7 @@ _.map(users, 'user');

_.orderBy(collection, [iteratees=[_.identity]], [orders])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9586 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.orderby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9654 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.orderby "See the npm package") [Ⓣ][1] This method is like `_.sortBy` except that it allows specifying the sort orders of the iteratees to sort by. If `orders` is unspecified, all values @@ -3112,7 +3116,7 @@ _.orderBy(users, ['user', 'age'], ['asc', 'desc']);

_.partition(collection, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9636 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.partition "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9704 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.partition "See the npm package") [Ⓣ][1] Creates an array of elements split into two groups, the first of which contains elements `predicate` returns truthy for, the second of which @@ -3159,7 +3163,7 @@ _.partition(users, 'active');

_.reduce(collection, [iteratee=_.identity], [accumulator])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9677 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reduce "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9745 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reduce "See the npm package") [Ⓣ][1] Reduces `collection` to a value which is the accumulated result of running each element in `collection` thru `iteratee`, where each successive @@ -3208,7 +3212,7 @@ _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {

_.reduceRight(collection, [iteratee=_.identity], [accumulator])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9706 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reduceright "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9774 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reduceright "See the npm package") [Ⓣ][1] This method is like `_.reduce` except that it iterates over elements of `collection` from right to left. @@ -3240,7 +3244,7 @@ _.reduceRight(array, function(flattened, other) {

_.reject(collection, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9747 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reject "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9815 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reject "See the npm package") [Ⓣ][1] The opposite of `_.filter`; this method returns the elements of `collection` that `predicate` does **not** return truthy for. @@ -3284,7 +3288,7 @@ _.reject(users, 'active');

_.sample(collection)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9766 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sample "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9834 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sample "See the npm package") [Ⓣ][1] Gets a random element from `collection`. @@ -3309,7 +3313,7 @@ _.sample([1, 2, 3, 4]);

_.sampleSize(collection, [n=1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9791 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.samplesize "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9859 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.samplesize "See the npm package") [Ⓣ][1] Gets `n` random elements at unique keys from `collection` up to the size of `collection`. @@ -3339,7 +3343,7 @@ _.sampleSize([1, 2, 3], 4);

_.shuffle(collection)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9816 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.shuffle "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9884 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.shuffle "See the npm package") [Ⓣ][1] Creates an array of shuffled values, using a version of the [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). @@ -3365,7 +3369,7 @@ _.shuffle([1, 2, 3, 4]);

_.size(collection)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9842 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.size "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9910 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.size "See the npm package") [Ⓣ][1] Gets the size of `collection` by returning its length for array-like values or the number of own enumerable string keyed properties for objects. @@ -3397,7 +3401,7 @@ _.size('pebbles');

_.some(collection, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9892 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.some "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9960 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.some "See the npm package") [Ⓣ][1] Checks if `predicate` returns truthy for **any** element of `collection`. Iteration is stopped once `predicate` returns truthy. The predicate is @@ -3442,7 +3446,7 @@ _.some(users, 'active');

_.sortBy(collection, [iteratees=[_.identity]])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9929 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9997 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortby "See the npm package") [Ⓣ][1] Creates an array of elements, sorted in ascending order by the results of running each element in a collection thru each iteratee. This method @@ -3464,15 +3468,15 @@ equal elements. The iteratees are invoked with one argument: *(value)*. var users = [ { 'user': 'fred', 'age': 48 }, { 'user': 'barney', 'age': 36 }, - { 'user': 'fred', 'age': 40 }, + { 'user': 'fred', 'age': 30 }, { 'user': 'barney', 'age': 34 } ]; _.sortBy(users, [function(o) { return o.user; }]); -// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] +// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] _.sortBy(users, ['user', 'age']); -// => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]] +// => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] ``` --- @@ -3487,7 +3491,7 @@ _.sortBy(users, ['user', 'age']);

_.now()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9960 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.now "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10028 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.now "See the npm package") [Ⓣ][1] Gets the timestamp of the number of milliseconds that have elapsed since the Unix epoch *(1 January `1970 00`:00:00 UTC)*. @@ -3518,7 +3522,7 @@ _.defer(function(stamp) {

_.after(n, func)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9990 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.after "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10058 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.after "See the npm package") [Ⓣ][1] The opposite of `_.before`; this method creates a function that invokes `func` once it's called `n` or more times. @@ -3553,7 +3557,7 @@ _.forEach(saves, function(type) {

_.ary(func, [n=func.length])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10019 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ary "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10087 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ary "See the npm package") [Ⓣ][1] Creates a function that invokes `func`, with up to `n` arguments, ignoring any additional arguments. @@ -3580,7 +3584,7 @@ _.map(['6', '8', '10'], _.ary(parseInt, 1));

_.before(n, func)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10042 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.before "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10110 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.before "See the npm package") [Ⓣ][1] Creates a function that invokes `func`, with the `this` binding and arguments of the created function, while it's called less than `n` times. Subsequent @@ -3608,7 +3612,7 @@ jQuery(element).on('click', _.before(5, addContactToList));

_.bind(func, thisArg, [partials])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10094 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.bind "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10162 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.bind "See the npm package") [Ⓣ][1] Creates a function that invokes `func` with the `this` binding of `thisArg` and `partials` prepended to the arguments it receives. @@ -3656,7 +3660,7 @@ bound('hi');

_.bindKey(object, key, [partials])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10148 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.bindkey "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10216 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.bindkey "See the npm package") [Ⓣ][1] Creates a function that invokes the method at `object[key]` with `partials` prepended to the arguments it receives. @@ -3714,7 +3718,7 @@ bound('hi');

_.curry(func, [arity=func.length])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10198 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.curry "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10266 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.curry "See the npm package") [Ⓣ][1] Creates a function that accepts arguments of `func` and either invokes `func` returning its result, if at least `arity` number of arguments have @@ -3767,7 +3771,7 @@ curried(1)(_, 3)(2);

_.curryRight(func, [arity=func.length])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10243 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.curryright "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10311 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.curryright "See the npm package") [Ⓣ][1] This method is like `_.curry` except that arguments are applied to `func` in the manner of `_.partialRight` instead of `_.partial`. @@ -3817,7 +3821,7 @@ curried(3)(1, _)(2);

_.debounce(func, [wait=0], [options={}])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10304 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.debounce "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10372 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.debounce "See the npm package") [Ⓣ][1] Creates a debounced function that delays invoking `func` until after `wait` milliseconds have elapsed since the last time the debounced function was @@ -3882,7 +3886,7 @@ jQuery(window).on('popstate', debounced.cancel);

_.defer(func, [args])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10447 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defer "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10515 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defer "See the npm package") [Ⓣ][1] Defers invoking the `func` until the current call stack has cleared. Any additional arguments are provided to `func` when it's invoked. @@ -3911,7 +3915,7 @@ _.defer(function(text) {

_.delay(func, wait, [args])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10470 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.delay "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10538 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.delay "See the npm package") [Ⓣ][1] Invokes `func` after `wait` milliseconds. Any additional arguments are provided to `func` when it's invoked. @@ -3941,7 +3945,7 @@ _.delay(function(text) {

_.flip(func)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10492 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flip "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10560 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flip "See the npm package") [Ⓣ][1] Creates a function that invokes `func` with arguments reversed. @@ -3970,7 +3974,7 @@ flipped('a', 'b', 'c', 'd');

_.memoize(func, [resolver])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10540 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.memoize "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10608 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.memoize "See the npm package") [Ⓣ][1] Creates a function that memoizes the result of `func`. If `resolver` is provided, it determines the cache key for storing the result based on the @@ -4026,7 +4030,7 @@ _.memoize.Cache = WeakMap;

_.negate(predicate)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10583 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.negate "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10651 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.negate "See the npm package") [Ⓣ][1] Creates a function that negates the result of the predicate `func`. The `func` predicate is invoked with the `this` binding and arguments of the @@ -4057,7 +4061,7 @@ _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));

_.once(func)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10617 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.once "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10685 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.once "See the npm package") [Ⓣ][1] Creates a function that is restricted to invoking `func` once. Repeat calls to the function return the value of the first invocation. The `func` is @@ -4086,7 +4090,7 @@ initialize();

_.overArgs(func, [transforms=[_.identity]])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10652 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.overargs "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10720 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.overargs "See the npm package") [Ⓣ][1] Creates a function that invokes `func` with its arguments transformed. @@ -4127,7 +4131,7 @@ func(10, 5);

_.partial(func, [partials])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10702 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.partial "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10770 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.partial "See the npm package") [Ⓣ][1] Creates a function that invokes `func` with `partials` prepended to the arguments it receives. This method is like `_.bind` except it does **not** @@ -4173,7 +4177,7 @@ greetFred('hi');

_.partialRight(func, [partials])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10739 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.partialright "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10807 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.partialright "See the npm package") [Ⓣ][1] This method is like `_.partial` except that partially applied arguments are appended to the arguments it receives. @@ -4218,7 +4222,7 @@ sayHelloTo('fred');

_.rearg(func, indexes)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10766 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.rearg "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10834 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.rearg "See the npm package") [Ⓣ][1] Creates a function that invokes `func` with arguments arranged according to the specified `indexes` where the argument value at the first index is @@ -4251,7 +4255,7 @@ rearged('b', 'c', 'a')

_.rest(func, [start=func.length-1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10795 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.rest "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10863 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.rest "See the npm package") [Ⓣ][1] Creates a function that invokes `func` with the `this` binding of the created function and arguments from `start` and beyond provided as @@ -4288,7 +4292,7 @@ say('hello', 'fred', 'barney', 'pebbles');

_.spread(func, [start=0])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10837 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.spread "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10905 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.spread "See the npm package") [Ⓣ][1] Creates a function that invokes `func` with the `this` binding of the create function and an array of arguments much like @@ -4334,7 +4338,7 @@ numbers.then(_.spread(function(x, y) {

_.throttle(func, [wait=0], [options={}])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10897 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.throttle "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10965 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.throttle "See the npm package") [Ⓣ][1] Creates a throttled function that only invokes `func` at most once per every `wait` milliseconds. The throttled function comes with a `cancel` @@ -4390,7 +4394,7 @@ jQuery(window).on('popstate', throttled.cancel);

_.unary(func)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10930 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unary "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L10998 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unary "See the npm package") [Ⓣ][1] Creates a function that accepts up to one argument, ignoring any additional arguments. @@ -4416,7 +4420,7 @@ _.map(['6', '8', '10'], _.unary(parseInt));

_.wrap(value, [wrapper=identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10956 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.wrap "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11024 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.wrap "See the npm package") [Ⓣ][1] Creates a function that provides `value` to `wrapper` as its first argument. Any additional arguments provided to the function are appended @@ -4455,7 +4459,7 @@ p('fred, barney, & pebbles');

_.castArray(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L10995 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.castarray "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11063 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.castarray "See the npm package") [Ⓣ][1] Casts `value` as an array if it's not one. @@ -4499,7 +4503,7 @@ console.log(_.castArray(array) === array);

_.clone(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11029 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clone "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11097 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clone "See the npm package") [Ⓣ][1] Creates a shallow clone of `value`.
@@ -4536,7 +4540,7 @@ console.log(shallow[0] === objects[0]);

_.cloneDeep(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11087 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clonedeep "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11155 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clonedeep "See the npm package") [Ⓣ][1] This method is like `_.clone` except that it recursively clones `value`. @@ -4564,7 +4568,7 @@ console.log(deep[0] === objects[0]);

_.cloneDeepWith(value, [customizer])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11119 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clonedeepwith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11187 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clonedeepwith "See the npm package") [Ⓣ][1] This method is like `_.cloneWith` except that it recursively clones `value`. @@ -4602,7 +4606,7 @@ console.log(el.childNodes.length);

_.cloneWith(value, [customizer])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11064 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clonewith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11132 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clonewith "See the npm package") [Ⓣ][1] This method is like `_.clone` except that it accepts `customizer` which is invoked to produce the cloned value. If `customizer` returns `undefined`, @@ -4643,7 +4647,7 @@ console.log(el.childNodes.length);

_.conformsTo(object, source)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11148 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.conformsto "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11216 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.conformsto "See the npm package") [Ⓣ][1] Checks if `object` conforms to `source` by invoking the predicate properties of `source` with the corresponding property values of `object`. @@ -4679,7 +4683,7 @@ _.conformsTo(object, { 'b': function(n) { return n > 2; } });

_.eq(value, other)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11184 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.eq "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11252 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.eq "See the npm package") [Ⓣ][1] Performs a [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) @@ -4722,7 +4726,7 @@ _.eq(NaN, NaN);

_.gt(value, other)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11211 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.gt "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11279 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.gt "See the npm package") [Ⓣ][1] Checks if `value` is greater than `other`. @@ -4754,7 +4758,7 @@ _.gt(1, 3);

_.gte(value, other)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11236 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.gte "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11304 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.gte "See the npm package") [Ⓣ][1] Checks if `value` is greater than or equal to `other`. @@ -4786,7 +4790,7 @@ _.gte(1, 3);

_.isArguments(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11258 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarguments "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11326 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarguments "See the npm package") [Ⓣ][1] Checks if `value` is likely an `arguments` object. @@ -4814,7 +4818,7 @@ _.isArguments([1, 2, 3]);

_.isArray(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11286 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarray "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11354 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarray "See the npm package") [Ⓣ][1] Checks if `value` is classified as an `Array` object. @@ -4848,7 +4852,7 @@ _.isArray(_.noop);

_.isArrayBuffer(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11305 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarraybuffer "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11373 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarraybuffer "See the npm package") [Ⓣ][1] Checks if `value` is classified as an `ArrayBuffer` object. @@ -4876,7 +4880,7 @@ _.isArrayBuffer(new Array(2));

_.isArrayLike(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11332 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarraylike "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11400 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarraylike "See the npm package") [Ⓣ][1] Checks if `value` is array-like. A value is considered array-like if it's not a function and has a `value.length` that's an integer greater than or @@ -4912,7 +4916,7 @@ _.isArrayLike(_.noop);

_.isArrayLikeObject(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11361 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarraylikeobject "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11429 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarraylikeobject "See the npm package") [Ⓣ][1] This method is like `_.isArrayLike` except that it also checks if `value` is an object. @@ -4947,7 +4951,7 @@ _.isArrayLikeObject(_.noop);

_.isBoolean(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11382 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isboolean "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11450 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isboolean "See the npm package") [Ⓣ][1] Checks if `value` is classified as a boolean primitive or object. @@ -4975,7 +4979,7 @@ _.isBoolean(null);

_.isBuffer(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11404 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isbuffer "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11472 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isbuffer "See the npm package") [Ⓣ][1] Checks if `value` is a buffer. @@ -5003,7 +5007,7 @@ _.isBuffer(new Uint8Array(2));

_.isDate(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11423 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isdate "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11491 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isdate "See the npm package") [Ⓣ][1] Checks if `value` is classified as a `Date` object. @@ -5031,7 +5035,7 @@ _.isDate('Mon April 23 2012');

_.isElement(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11442 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.iselement "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11510 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.iselement "See the npm package") [Ⓣ][1] Checks if `value` is likely a DOM element. @@ -5059,7 +5063,7 @@ _.isElement('');

_.isEmpty(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11479 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isempty "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11547 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isempty "See the npm package") [Ⓣ][1] Checks if `value` is an empty object, collection, map, or set.
@@ -5105,7 +5109,7 @@ _.isEmpty({ 'a': 1 });

_.isEqual(value, other)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11531 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isequal "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11599 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isequal "See the npm package") [Ⓣ][1] Performs a deep comparison between two values to determine if they are equivalent. @@ -5145,7 +5149,7 @@ object === other;

_.isEqualWith(value, other, [customizer])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11567 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isequalwith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11635 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isequalwith "See the npm package") [Ⓣ][1] This method is like `_.isEqual` except that it accepts `customizer` which is invoked to compare values. If `customizer` returns `undefined`, comparisons @@ -5188,7 +5192,7 @@ _.isEqualWith(array, other, customizer);

_.isError(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11591 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.iserror "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11659 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.iserror "See the npm package") [Ⓣ][1] Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, `SyntaxError`, `TypeError`, or `URIError` object. @@ -5217,7 +5221,7 @@ _.isError(Error);

_.isFinite(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11626 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isfinite "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11694 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isfinite "See the npm package") [Ⓣ][1] Checks if `value` is a finite primitive number.
@@ -5255,7 +5259,7 @@ _.isFinite('3');

_.isFunction(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11647 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isfunction "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11715 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isfunction "See the npm package") [Ⓣ][1] Checks if `value` is classified as a `Function` object. @@ -5283,7 +5287,7 @@ _.isFunction(/abc/);

_.isInteger(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11683 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isinteger "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11751 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isinteger "See the npm package") [Ⓣ][1] Checks if `value` is an integer.
@@ -5321,7 +5325,7 @@ _.isInteger('3');

_.isLength(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11713 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.islength "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11781 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.islength "See the npm package") [Ⓣ][1] Checks if `value` is a valid array-like length.
@@ -5359,7 +5363,7 @@ _.isLength('3');

_.isMap(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11793 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ismap "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11861 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ismap "See the npm package") [Ⓣ][1] Checks if `value` is classified as a `Map` object. @@ -5387,7 +5391,7 @@ _.isMap(new WeakMap);

_.isMatch(object, source)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11823 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ismatch "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11891 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ismatch "See the npm package") [Ⓣ][1] Performs a partial deep comparison between `object` and `source` to determine if `object` contains equivalent property values. @@ -5428,7 +5432,7 @@ _.isMatch(object, { 'b': 1 });

_.isMatchWith(object, source, [customizer])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11859 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ismatchwith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11927 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ismatchwith "See the npm package") [Ⓣ][1] This method is like `_.isMatch` except that it accepts `customizer` which is invoked to compare values. If `customizer` returns `undefined`, comparisons @@ -5471,7 +5475,7 @@ _.isMatchWith(object, source, customizer);

_.isNaN(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11892 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnan "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11960 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnan "See the npm package") [Ⓣ][1] Checks if `value` is `NaN`.
@@ -5511,7 +5515,7 @@ _.isNaN(undefined);

_.isNative(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11925 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnative "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11993 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnative "See the npm package") [Ⓣ][1] Checks if `value` is a pristine native function.
@@ -5548,7 +5552,7 @@ _.isNative(_);

_.isNil(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11973 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnil "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12041 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnil "See the npm package") [Ⓣ][1] Checks if `value` is `null` or `undefined`. @@ -5579,7 +5583,7 @@ _.isNil(NaN);

_.isNull(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11949 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnull "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12017 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnull "See the npm package") [Ⓣ][1] Checks if `value` is `null`. @@ -5607,7 +5611,7 @@ _.isNull(void 0);

_.isNumber(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12003 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnumber "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12071 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnumber "See the npm package") [Ⓣ][1] Checks if `value` is classified as a `Number` primitive or object.
@@ -5645,7 +5649,7 @@ _.isNumber('3');

_.isObject(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11743 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isobject "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11811 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isobject "See the npm package") [Ⓣ][1] Checks if `value` is the [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) @@ -5681,7 +5685,7 @@ _.isObject(null);

_.isObjectLike(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11772 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isobjectlike "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L11840 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isobjectlike "See the npm package") [Ⓣ][1] Checks if `value` is object-like. A value is object-like if it's not `null` and has a `typeof` result of "object". @@ -5716,7 +5720,7 @@ _.isObjectLike(null);

_.isPlainObject(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12036 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isplainobject "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12104 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isplainobject "See the npm package") [Ⓣ][1] Checks if `value` is a plain object, that is, an object created by the `Object` constructor or one with a `[[Prototype]]` of `null`. @@ -5755,7 +5759,7 @@ _.isPlainObject(Object.create(null));

_.isRegExp(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12066 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isregexp "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12134 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isregexp "See the npm package") [Ⓣ][1] Checks if `value` is classified as a `RegExp` object. @@ -5783,7 +5787,7 @@ _.isRegExp('/abc/');

_.isSafeInteger(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12095 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.issafeinteger "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12163 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.issafeinteger "See the npm package") [Ⓣ][1] Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 double precision number which isn't the result of a rounded unsafe integer. @@ -5822,7 +5826,7 @@ _.isSafeInteger('3');

_.isSet(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12116 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isset "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12184 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isset "See the npm package") [Ⓣ][1] Checks if `value` is classified as a `Set` object. @@ -5850,7 +5854,7 @@ _.isSet(new WeakSet);

_.isString(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12135 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isstring "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12203 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isstring "See the npm package") [Ⓣ][1] Checks if `value` is classified as a `String` primitive or object. @@ -5878,7 +5882,7 @@ _.isString(1);

_.isSymbol(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12157 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.issymbol "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12225 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.issymbol "See the npm package") [Ⓣ][1] Checks if `value` is classified as a `Symbol` primitive or object. @@ -5906,7 +5910,7 @@ _.isSymbol('abc');

_.isTypedArray(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12179 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.istypedarray "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12247 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.istypedarray "See the npm package") [Ⓣ][1] Checks if `value` is classified as a typed array. @@ -5934,7 +5938,7 @@ _.isTypedArray([]);

_.isUndefined(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12198 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isundefined "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12266 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isundefined "See the npm package") [Ⓣ][1] Checks if `value` is `undefined`. @@ -5962,7 +5966,7 @@ _.isUndefined(null);

_.isWeakMap(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12219 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isweakmap "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12287 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isweakmap "See the npm package") [Ⓣ][1] Checks if `value` is classified as a `WeakMap` object. @@ -5990,7 +5994,7 @@ _.isWeakMap(new Map);

_.isWeakSet(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12240 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isweakset "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12308 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isweakset "See the npm package") [Ⓣ][1] Checks if `value` is classified as a `WeakSet` object. @@ -6018,7 +6022,7 @@ _.isWeakSet(new Set);

_.lt(value, other)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12267 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lt "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12335 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lt "See the npm package") [Ⓣ][1] Checks if `value` is less than `other`. @@ -6050,7 +6054,7 @@ _.lt(3, 1);

_.lte(value, other)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12292 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lte "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12360 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lte "See the npm package") [Ⓣ][1] Checks if `value` is less than or equal to `other`. @@ -6082,7 +6086,7 @@ _.lte(3, 1);

_.toArray(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12319 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.toarray "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12387 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.toarray "See the npm package") [Ⓣ][1] Converts `value` to an array. @@ -6116,7 +6120,7 @@ _.toArray(null);

_.toFinite(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12358 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tofinite "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12426 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tofinite "See the npm package") [Ⓣ][1] Converts `value` to a finite number. @@ -6150,7 +6154,7 @@ _.toFinite('3.2');

_.toInteger(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12396 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tointeger "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12464 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tointeger "See the npm package") [Ⓣ][1] Converts `value` to an integer.
@@ -6188,7 +6192,7 @@ _.toInteger('3.2');

_.toLength(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12430 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tolength "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12498 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tolength "See the npm package") [Ⓣ][1] Converts `value` to an integer suitable for use as the length of an array-like object. @@ -6227,7 +6231,7 @@ _.toLength('3.2');

_.toNumber(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12457 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tonumber "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12525 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tonumber "See the npm package") [Ⓣ][1] Converts `value` to a number. @@ -6261,7 +6265,7 @@ _.toNumber('3.2');

_.toPlainObject(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12502 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.toplainobject "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12570 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.toplainobject "See the npm package") [Ⓣ][1] Converts `value` to a plain object flattening inherited enumerable string keyed properties of `value` to own properties of the plain object. @@ -6296,7 +6300,7 @@ _.assign({ 'a': 1 }, _.toPlainObject(new Foo));

_.toSafeInteger(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12530 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tosafeinteger "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12598 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tosafeinteger "See the npm package") [Ⓣ][1] Converts `value` to a safe integer. A safe integer can be compared and represented correctly. @@ -6331,7 +6335,7 @@ _.toSafeInteger('3.2');

_.toString(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12557 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tostring "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12625 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tostring "See the npm package") [Ⓣ][1] Converts `value` to a string. An empty string is returned for `null` and `undefined` values. The sign of `-0` is preserved. @@ -6369,7 +6373,7 @@ _.toString([1, 2, 3]);

_.add(augend, addend)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16192 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.add "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16289 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.add "See the npm package") [Ⓣ][1] Adds two numbers. @@ -6395,7 +6399,7 @@ _.add(6, 4);

_.ceil(number, [precision=0])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16217 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ceil "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16314 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ceil "See the npm package") [Ⓣ][1] Computes `number` rounded up to `precision`. @@ -6427,7 +6431,7 @@ _.ceil(6040, -2);

_.divide(dividend, divisor)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16234 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.divide "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16331 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.divide "See the npm package") [Ⓣ][1] Divide two numbers. @@ -6453,7 +6457,7 @@ _.divide(6, 4);

_.floor(number, [precision=0])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16259 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.floor "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16356 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.floor "See the npm package") [Ⓣ][1] Computes `number` rounded down to `precision`. @@ -6485,7 +6489,7 @@ _.floor(4060, -2);

_.max(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16279 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.max "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16376 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.max "See the npm package") [Ⓣ][1] Computes the maximum value of `array`. If `array` is empty or falsey, `undefined` is returned. @@ -6514,7 +6518,7 @@ _.max([]);

_.maxBy(array, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16308 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.maxby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16405 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.maxby "See the npm package") [Ⓣ][1] This method is like `_.max` except that it accepts `iteratee` which is invoked for each element in `array` to generate the criterion by which @@ -6548,7 +6552,7 @@ _.maxBy(objects, 'n');

_.mean(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16328 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mean "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16425 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mean "See the npm package") [Ⓣ][1] Computes the mean of the values in `array`. @@ -6573,7 +6577,7 @@ _.mean([4, 2, 8, 6]);

_.meanBy(array, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16355 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.meanby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16452 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.meanby "See the npm package") [Ⓣ][1] This method is like `_.mean` except that it accepts `iteratee` which is invoked for each element in `array` to generate the value to be averaged. @@ -6607,7 +6611,7 @@ _.meanBy(objects, 'n');

_.min(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16377 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.min "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16474 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.min "See the npm package") [Ⓣ][1] Computes the minimum value of `array`. If `array` is empty or falsey, `undefined` is returned. @@ -6636,7 +6640,7 @@ _.min([]);

_.minBy(array, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16406 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.minby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16503 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.minby "See the npm package") [Ⓣ][1] This method is like `_.min` except that it accepts `iteratee` which is invoked for each element in `array` to generate the criterion by which @@ -6670,7 +6674,7 @@ _.minBy(objects, 'n');

_.multiply(multiplier, multiplicand)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16427 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.multiply "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16524 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.multiply "See the npm package") [Ⓣ][1] Multiply two numbers. @@ -6696,7 +6700,7 @@ _.multiply(6, 4);

_.round(number, [precision=0])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16452 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.round "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16549 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.round "See the npm package") [Ⓣ][1] Computes `number` rounded to `precision`. @@ -6728,7 +6732,7 @@ _.round(4060, -2);

_.subtract(minuend, subtrahend)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16469 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.subtract "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16566 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.subtract "See the npm package") [Ⓣ][1] Subtract two numbers. @@ -6754,7 +6758,7 @@ _.subtract(6, 4);

_.sum(array)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16487 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sum "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16584 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sum "See the npm package") [Ⓣ][1] Computes the sum of the values in `array`. @@ -6779,7 +6783,7 @@ _.sum([4, 2, 8, 6]);

_.sumBy(array, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16516 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sumby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16613 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sumby "See the npm package") [Ⓣ][1] This method is like `_.sum` except that it accepts `iteratee` which is invoked for each element in `array` to generate the value to be summed. @@ -6819,7 +6823,7 @@ _.sumBy(objects, 'n');

_.clamp(number, [lower], upper)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13981 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clamp "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14049 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clamp "See the npm package") [Ⓣ][1] Clamps `number` within the inclusive `lower` and `upper` bounds. @@ -6849,7 +6853,7 @@ _.clamp(10, -5, 5);

_.inRange(number, [start=0], end)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14035 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.inrange "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14103 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.inrange "See the npm package") [Ⓣ][1] Checks if `n` is between `start` and up to, but not including, `end`. If `end` is not specified, it's set to `start` with `start` then set to `0`. @@ -6897,7 +6901,7 @@ _.inRange(-3, -2, -6);

_.random([lower=0], [upper=1], [floating])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14078 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.random "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14146 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.random "See the npm package") [Ⓣ][1] Produces a random number between the inclusive `lower` and `upper` bounds. If only one argument is provided a number between `0` and the given number @@ -6946,7 +6950,7 @@ _.random(1.2, 5.2);

_.assign(object, [sources])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12595 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assign "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12663 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assign "See the npm package") [Ⓣ][1] Assigns own enumerable string keyed properties of source objects to the destination object. Source objects are applied from left to right. @@ -6989,7 +6993,7 @@ _.assign({ 'a': 0 }, new Foo, new Bar);

_.assignIn(object, [sources])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12638 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assignin "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12706 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assignin "See the npm package") [Ⓣ][1] This method is like `_.assign` except that it iterates over own and inherited source properties. @@ -7033,7 +7037,7 @@ _.assignIn({ 'a': 0 }, new Foo, new Bar);

_.assignInWith(object, sources, [customizer])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12671 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assigninwith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12739 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assigninwith "See the npm package") [Ⓣ][1] This method is like `_.assignIn` except that it accepts `customizer` which is invoked to produce the assigned values. If `customizer` returns @@ -7075,7 +7079,7 @@ defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });

_.assignWith(object, sources, [customizer])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12703 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assignwith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12771 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assignwith "See the npm package") [Ⓣ][1] This method is like `_.assign` except that it accepts `customizer` which is invoked to produce the assigned values. If `customizer` returns @@ -7114,7 +7118,7 @@ defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });

_.at(object, [paths])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12724 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.at "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12792 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.at "See the npm package") [Ⓣ][1] Creates an array of values corresponding to `paths` of `object`. @@ -7142,7 +7146,7 @@ _.at(object, ['a[0].b.c', 'a[1]']);

_.create(prototype, [properties])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12760 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.create "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12828 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.create "See the npm package") [Ⓣ][1] Creates an object that inherits from the `prototype` object. If a `properties` object is given, its own enumerable string keyed properties @@ -7187,7 +7191,7 @@ circle instanceof Shape;

_.defaults(object, [sources])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12786 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defaults "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12854 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defaults "See the npm package") [Ⓣ][1] Assigns own and inherited enumerable string keyed properties of source objects to the destination object for all destination properties that @@ -7219,7 +7223,7 @@ _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });

_.defaultsDeep(object, [sources])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12836 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defaultsdeep "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12904 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defaultsdeep "See the npm package") [Ⓣ][1] This method is like `_.defaults` except that it recursively assigns default properties. @@ -7249,7 +7253,7 @@ _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });

_.findKey(object, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12876 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findkey "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12944 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findkey "See the npm package") [Ⓣ][1] This method is like `_.find` except that it returns the key of the first element `predicate` returns truthy for instead of the element itself. @@ -7294,7 +7298,7 @@ _.findKey(users, 'active');

_.findLastKey(object, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12915 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findlastkey "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L12983 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findlastkey "See the npm package") [Ⓣ][1] This method is like `_.findKey` except that it iterates over elements of a collection in the opposite order. @@ -7339,7 +7343,7 @@ _.findLastKey(users, 'active');

_.forIn(object, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12947 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forin "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13015 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forin "See the npm package") [Ⓣ][1] Iterates over own and inherited enumerable string keyed properties of an object and invokes `iteratee` for each property. The iteratee is invoked @@ -7377,7 +7381,7 @@ _.forIn(new Foo, function(value, key) {

_.forInRight(object, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12979 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forinright "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13047 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forinright "See the npm package") [Ⓣ][1] This method is like `_.forIn` except that it iterates over properties of `object` in the opposite order. @@ -7413,7 +7417,7 @@ _.forInRight(new Foo, function(value, key) {

_.forOwn(object, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13013 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forown "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13081 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forown "See the npm package") [Ⓣ][1] Iterates over own enumerable string keyed properties of an object and invokes `iteratee` for each property. The iteratee is invoked with three @@ -7451,7 +7455,7 @@ _.forOwn(new Foo, function(value, key) {

_.forOwnRight(object, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13043 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forownright "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13111 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forownright "See the npm package") [Ⓣ][1] This method is like `_.forOwn` except that it iterates over properties of `object` in the opposite order. @@ -7487,7 +7491,7 @@ _.forOwnRight(new Foo, function(value, key) {

_.functions(object)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13070 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.functions "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13138 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.functions "See the npm package") [Ⓣ][1] Creates an array of function property names from own enumerable properties of `object`. @@ -7520,7 +7524,7 @@ _.functions(new Foo);

_.functionsIn(object)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13097 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.functionsin "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13165 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.functionsin "See the npm package") [Ⓣ][1] Creates an array of function property names from own and inherited enumerable properties of `object`. @@ -7553,7 +7557,7 @@ _.functionsIn(new Foo);

_.get(object, path, [defaultValue])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13126 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.get "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13194 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.get "See the npm package") [Ⓣ][1] Gets the value at `path` of `object`. If the resolved value is `undefined`, the `defaultValue` is returned in its place. @@ -7589,7 +7593,7 @@ _.get(object, 'a.b.c', 'default');

_.has(object, path)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13158 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.has "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13226 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.has "See the npm package") [Ⓣ][1] Checks if `path` is a direct property of `object`. @@ -7627,7 +7631,7 @@ _.has(other, 'a');

_.hasIn(object, path)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13188 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.hasin "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13256 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.hasin "See the npm package") [Ⓣ][1] Checks if `path` is a direct or inherited property of `object`. @@ -7664,7 +7668,7 @@ _.hasIn(object, 'b');

_.invert(object)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13210 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invert "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13278 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invert "See the npm package") [Ⓣ][1] Creates an object composed of the inverted keys and values of `object`. If `object` contains duplicate values, subsequent values overwrite @@ -7693,7 +7697,7 @@ _.invert(object);

_.invertBy(object, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13245 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invertby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13313 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invertby "See the npm package") [Ⓣ][1] This method is like `_.invert` except that the inverted object is generated from the results of running each element of `object` thru `iteratee`. The @@ -7730,7 +7734,7 @@ _.invertBy(object, function(value) {

_.invoke(object, path, [args])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13276 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invoke "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13344 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invoke "See the npm package") [Ⓣ][1] Invokes the method at `path` of `object`. @@ -7759,7 +7763,7 @@ _.invoke(object, 'a[0].b.c.slice', 1, 3);

_.keys(object)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13306 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.keys "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13374 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.keys "See the npm package") [Ⓣ][1] Creates an array of the own enumerable property names of `object`.
@@ -7799,7 +7803,7 @@ _.keys('hi');

_.keysIn(object)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13333 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.keysin "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13401 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.keysin "See the npm package") [Ⓣ][1] Creates an array of the own and inherited enumerable property names of `object`.
@@ -7834,7 +7838,7 @@ _.keysIn(new Foo);

_.mapKeys(object, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13358 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mapkeys "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13426 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mapkeys "See the npm package") [Ⓣ][1] The opposite of `_.mapValues`; this method creates an object with the same values as `object` and keys generated by running each own enumerable @@ -7865,7 +7869,7 @@ _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {

_.mapValues(object, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13396 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mapvalues "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13464 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mapvalues "See the npm package") [Ⓣ][1] Creates an object with the same keys as `object` and values generated by running each own enumerable string keyed property of `object` thru @@ -7903,7 +7907,7 @@ _.mapValues(users, 'age');

_.merge(object, [sources])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13437 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.merge "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13505 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.merge "See the npm package") [Ⓣ][1] This method is like `_.assign` except that it recursively merges own and inherited enumerable string keyed properties of source objects into the @@ -7946,7 +7950,7 @@ _.merge(object, other);

_.mergeWith(object, sources, customizer)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13472 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mergewith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13540 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mergewith "See the npm package") [Ⓣ][1] This method is like `_.merge` except that it accepts `customizer` which is invoked to produce the merged values of the destination and source @@ -7989,7 +7993,7 @@ _.mergeWith(object, other, customizer);

_.omit(object, [paths])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13496 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.omit "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13564 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.omit "See the npm package") [Ⓣ][1] The opposite of `_.pick`; this method creates an object composed of the own and inherited enumerable property paths of `object` that are not omitted. @@ -8021,7 +8025,7 @@ _.omit(object, ['a', 'c']);

_.omitBy(object, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13538 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.omitby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13606 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.omitby "See the npm package") [Ⓣ][1] The opposite of `_.pickBy`; this method creates an object composed of the own and inherited enumerable string keyed properties of `object` that @@ -8052,7 +8056,7 @@ _.omitBy(object, _.isNumber);

_.pick(object, [paths])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13559 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pick "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13627 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pick "See the npm package") [Ⓣ][1] Creates an object composed of the picked `object` properties. @@ -8080,7 +8084,7 @@ _.pick(object, ['a', 'c']);

_.pickBy(object, [predicate=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13581 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pickby "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13649 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pickby "See the npm package") [Ⓣ][1] Creates an object composed of the `object` properties `predicate` returns truthy for. The predicate is invoked with two arguments: *(value, key)*. @@ -8109,7 +8113,7 @@ _.pickBy(object, _.isNumber);

_.result(object, path, [defaultValue])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13623 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.result "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13691 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.result "See the npm package") [Ⓣ][1] This method is like `_.get` except that if the resolved value is a function it's invoked with the `this` binding of its parent object and @@ -8149,7 +8153,7 @@ _.result(object, 'a[0].b.c3', _.constant('default'));

_.set(object, path, value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13673 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.set "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13741 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.set "See the npm package") [Ⓣ][1] Sets the value at `path` of `object`. If a portion of `path` doesn't exist, it's created. Arrays are created for missing index properties while objects @@ -8189,7 +8193,7 @@ console.log(object.x[0].y.z);

_.setWith(object, path, value, [customizer])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13701 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.setwith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13769 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.setwith "See the npm package") [Ⓣ][1] This method is like `_.set` except that it accepts `customizer` which is invoked to produce the objects of `path`. If `customizer` returns `undefined` @@ -8225,7 +8229,7 @@ _.setWith(object, '[0][1]', 'a', Object);

_.toPairs(object)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13730 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.topairs "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13798 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.topairs "See the npm package") [Ⓣ][1] Creates an array of own enumerable string keyed-value pairs for `object` which can be consumed by `_.fromPairs`. If `object` is a map or set, its @@ -8262,7 +8266,7 @@ _.toPairs(new Foo);

_.toPairsIn(object)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13756 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.topairsin "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13824 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.topairsin "See the npm package") [Ⓣ][1] Creates an array of own and inherited enumerable string keyed-value pairs for `object` which can be consumed by `_.fromPairs`. If `object` is a map @@ -8299,7 +8303,7 @@ _.toPairsIn(new Foo);

_.transform(object, [iteratee=_.identity], [accumulator])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13788 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.transform "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13856 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.transform "See the npm package") [Ⓣ][1] An alternative to `_.reduce`; this method transforms `object` to a new `accumulator` object which is the result of running each of its own @@ -8340,7 +8344,7 @@ _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {

_.unset(object, path)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13838 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unset "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13906 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unset "See the npm package") [Ⓣ][1] Removes the property at `path` of `object`.
@@ -8379,7 +8383,7 @@ console.log(object);

_.update(object, path, updater)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13869 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.update "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13937 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.update "See the npm package") [Ⓣ][1] This method is like `_.set` except that accepts `updater` to produce the value to set. Use `_.updateWith` to customize `path` creation. The `updater` @@ -8418,7 +8422,7 @@ console.log(object.x[0].y.z);

_.updateWith(object, path, updater, [customizer])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13897 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.updatewith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13965 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.updatewith "See the npm package") [Ⓣ][1] This method is like `_.update` except that it accepts `customizer` which is invoked to produce the objects of `path`. If `customizer` returns `undefined` @@ -8454,7 +8458,7 @@ _.updateWith(object, '[0][1]', _.constant('a'), Object);

_.values(object)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13928 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.values "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L13996 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.values "See the npm package") [Ⓣ][1] Creates an array of the own enumerable string keyed property values of `object`.
@@ -8492,7 +8496,7 @@ _.values('hi');

_.valuesIn(object)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L13956 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.valuesin "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14024 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.valuesin "See the npm package") [Ⓣ][1] Creates an array of the own and inherited enumerable string keyed property values of `object`. @@ -8534,7 +8538,7 @@ _.valuesIn(new Foo);

_(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L1648 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L1690 "View in source") [Ⓣ][1] Creates a `lodash` object which wraps `value` to enable implicit method chain sequences. Methods that operate on and return arrays, collections, @@ -8670,7 +8674,7 @@ _.isArray(squares.value());

_.chain(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8737 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8801 "View in source") [Ⓣ][1] Creates a `lodash` wrapper instance that wraps `value` with explicit method chain sequences enabled. The result of such sequences must be unwrapped @@ -8710,7 +8714,7 @@ var youngest = _

_.tap(value, interceptor)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8766 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8830 "View in source") [Ⓣ][1] This method invokes `interceptor` and returns `value`. The interceptor is invoked with one argument; *(value)*. The purpose of this method is to @@ -8744,7 +8748,7 @@ _([1, 2, 3])

_.thru(value, interceptor)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8794 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8858 "View in source") [Ⓣ][1] This method is like `_.tap` except that it returns the result of `interceptor`. The purpose of this method is to "pass thru" values replacing intermediate @@ -8778,7 +8782,7 @@ _(' abc ')

_.prototype[Symbol.iterator]()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8949 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9013 "View in source") [Ⓣ][1] Enables the wrapper to be iterable. @@ -8805,7 +8809,7 @@ Array.from(wrapped);

_.prototype.at([paths])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8814 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8878 "View in source") [Ⓣ][1] This method is the wrapper version of `_.at`. @@ -8832,7 +8836,7 @@ _(object).at(['a[0].b.c', 'a[1]']).value();

_.prototype.chain()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8865 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8929 "View in source") [Ⓣ][1] Creates a `lodash` wrapper instance with explicit method chain sequences enabled. @@ -8868,7 +8872,7 @@ _(users)

_.prototype.commit()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8895 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8959 "View in source") [Ⓣ][1] Executes the chain sequence and returns the wrapped result. @@ -8903,7 +8907,7 @@ console.log(array);

_.prototype.next()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8921 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L8985 "View in source") [Ⓣ][1] Gets the next value on a wrapped object following the [iterator protocol](https://mdn.io/iteration_protocols#iterator). @@ -8934,7 +8938,7 @@ wrapped.next();

_.prototype.plant(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8977 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9041 "View in source") [Ⓣ][1] Creates a clone of the chain sequence planting `value` as the wrapped value. @@ -8969,7 +8973,7 @@ wrapped.value();

_.prototype.reverse()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9017 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9081 "View in source") [Ⓣ][1] This method is the wrapper version of `_.reverse`.
@@ -8999,7 +9003,7 @@ console.log(array);

_.prototype.value()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L9049 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L9113 "View in source") [Ⓣ][1] Executes the chain sequence to resolve the unwrapped value. @@ -9030,7 +9034,7 @@ _([1, 2, 3]).value();

_.camelCase([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14139 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.camelcase "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14207 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.camelcase "See the npm package") [Ⓣ][1] Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). @@ -9061,7 +9065,7 @@ _.camelCase('__FOO_BAR__');

_.capitalize([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14159 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.capitalize "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14227 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.capitalize "See the npm package") [Ⓣ][1] Converts the first character of `string` to upper case and the remaining to lower case. @@ -9087,7 +9091,7 @@ _.capitalize('FRED');

_.deburr([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14181 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.deburr "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14249 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.deburr "See the npm package") [Ⓣ][1] Deburrs `string` by converting [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) @@ -9116,7 +9120,7 @@ _.deburr('déjà vu');

_.endsWith([string=''], [target], [position=string.length])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14209 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.endswith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14277 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.endswith "See the npm package") [Ⓣ][1] Checks if `string` ends with the given target string. @@ -9149,7 +9153,7 @@ _.endsWith('abc', 'b', 2);

_.escape([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14251 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.escape "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14319 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.escape "See the npm package") [Ⓣ][1] Converts the characters "&", "<", ">", '"', and "'" in `string` to their corresponding HTML entities. @@ -9191,7 +9195,7 @@ _.escape('fred, barney, & pebbles');

_.escapeRegExp([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14273 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.escaperegexp "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14341 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.escaperegexp "See the npm package") [Ⓣ][1] Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. @@ -9217,7 +9221,7 @@ _.escapeRegExp('[lodash](https://lodash.com/)');

_.kebabCase([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14301 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.kebabcase "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14369 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.kebabcase "See the npm package") [Ⓣ][1] Converts `string` to [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). @@ -9249,7 +9253,7 @@ _.kebabCase('__FOO_BAR__');

_.lowerCase([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14325 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lowercase "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14393 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lowercase "See the npm package") [Ⓣ][1] Converts `string`, as space separated words, to lower case. @@ -9280,7 +9284,7 @@ _.lowerCase('__FOO_BAR__');

_.lowerFirst([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14346 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lowerfirst "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14414 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lowerfirst "See the npm package") [Ⓣ][1] Converts the first character of `string` to lower case. @@ -9308,7 +9312,7 @@ _.lowerFirst('FRED');

_.pad([string=''], [length=0], [chars=' '])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14371 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pad "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14439 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pad "See the npm package") [Ⓣ][1] Pads `string` on the left and right sides if it's shorter than `length`. Padding characters are truncated if they can't be evenly divided by `length`. @@ -9342,7 +9346,7 @@ _.pad('abc', 3);

_.padEnd([string=''], [length=0], [chars=' '])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14410 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.padend "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14478 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.padend "See the npm package") [Ⓣ][1] Pads `string` on the right side if it's shorter than `length`. Padding characters are truncated if they exceed `length`. @@ -9376,7 +9380,7 @@ _.padEnd('abc', 3);

_.padStart([string=''], [length=0], [chars=' '])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14443 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.padstart "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14511 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.padstart "See the npm package") [Ⓣ][1] Pads `string` on the left side if it's shorter than `length`. Padding characters are truncated if they exceed `length`. @@ -9410,7 +9414,7 @@ _.padStart('abc', 3);

_.parseInt(string, [radix=10])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14477 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.parseint "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14545 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.parseint "See the npm package") [Ⓣ][1] Converts `string` to an integer of the specified radix. If `radix` is `undefined` or `0`, a `radix` of `10` is used unless `value` is a @@ -9445,7 +9449,7 @@ _.map(['6', '08', '10'], _.parseInt);

_.repeat([string=''], [n=1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14508 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.repeat "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14576 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.repeat "See the npm package") [Ⓣ][1] Repeats the given string `n` times. @@ -9477,7 +9481,7 @@ _.repeat('abc', 0);

_.replace([string=''], pattern, replacement)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14536 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.replace "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14604 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.replace "See the npm package") [Ⓣ][1] Replaces matches for `pattern` in `string` with `replacement`.
@@ -9508,7 +9512,7 @@ _.replace('Hi Fred', 'Fred', 'Barney');

_.snakeCase([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14564 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.snakecase "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14632 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.snakecase "See the npm package") [Ⓣ][1] Converts `string` to [snake case](https://en.wikipedia.org/wiki/Snake_case). @@ -9540,7 +9544,7 @@ _.snakeCase('--FOO-BAR--');

_.split([string=''], separator, [limit])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14587 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.split "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14655 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.split "See the npm package") [Ⓣ][1] Splits `string` by `separator`.
@@ -9571,7 +9575,7 @@ _.split('a-b-c', '-', 2);

_.startCase([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14629 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.startcase "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14697 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.startcase "See the npm package") [Ⓣ][1] Converts `string` to [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). @@ -9603,7 +9607,7 @@ _.startCase('__FOO_BAR__');

_.startsWith([string=''], [target], [position=0])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14656 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.startswith "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14724 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.startswith "See the npm package") [Ⓣ][1] Checks if `string` starts with the given target string. @@ -9636,7 +9640,7 @@ _.startsWith('abc', 'b', 1);

_.template([string=''], [options={}])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14770 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.template "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14838 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.template "See the npm package") [Ⓣ][1] Creates a compiled template function that can interpolate data properties in "interpolate" delimiters, HTML-escape interpolated data properties in @@ -9747,7 +9751,7 @@ fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\

_.toLower([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14904 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tolower "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L14976 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tolower "See the npm package") [Ⓣ][1] Converts `string`, as a whole, to lower case just like [String#toLowerCase](https://mdn.io/toLowerCase). @@ -9779,7 +9783,7 @@ _.toLower('__FOO_BAR__');

_.toUpper([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14929 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.toupper "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15001 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.toupper "See the npm package") [Ⓣ][1] Converts `string`, as a whole, to upper case just like [String#toUpperCase](https://mdn.io/toUpperCase). @@ -9811,7 +9815,7 @@ _.toUpper('__foo_bar__');

_.trim([string=''], [chars=whitespace])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14955 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.trim "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15027 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.trim "See the npm package") [Ⓣ][1] Removes leading and trailing whitespace or specified characters from `string`. @@ -9843,7 +9847,7 @@ _.map([' foo ', ' bar '], _.trim);

_.trimEnd([string=''], [chars=whitespace])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L14990 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.trimend "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15062 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.trimend "See the npm package") [Ⓣ][1] Removes trailing whitespace or specified characters from `string`. @@ -9872,7 +9876,7 @@ _.trimEnd('-_-abc-_-', '_-');

_.trimStart([string=''], [chars=whitespace])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15023 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.trimstart "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15095 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.trimstart "See the npm package") [Ⓣ][1] Removes leading whitespace or specified characters from `string`. @@ -9901,7 +9905,7 @@ _.trimStart('-_-abc-_-', '_-');

_.truncate([string=''], [options={}])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15074 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.truncate "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15146 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.truncate "See the npm package") [Ⓣ][1] Truncates `string` if it's longer than the given maximum string length. The last characters of the truncated string are replaced with the omission @@ -9949,7 +9953,7 @@ _.truncate('hi-diddly-ho there, neighborino', {

_.unescape([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15149 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unescape "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15221 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unescape "See the npm package") [Ⓣ][1] The inverse of `_.escape`; this method converts the HTML entities `&`, `<`, `>`, `"`, and `'` in `string` to @@ -9980,7 +9984,7 @@ _.unescape('fred, barney, & pebbles');

_.upperCase([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15176 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uppercase "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15248 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uppercase "See the npm package") [Ⓣ][1] Converts `string`, as space separated words, to upper case. @@ -10011,7 +10015,7 @@ _.upperCase('__foo_bar__');

_.upperFirst([string=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15197 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.upperfirst "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15269 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.upperfirst "See the npm package") [Ⓣ][1] Converts the first character of `string` to upper case. @@ -10039,7 +10043,7 @@ _.upperFirst('FRED');

_.words([string=''], [pattern])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15218 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.words "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15290 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.words "See the npm package") [Ⓣ][1] Splits `string` into an array of its words. @@ -10074,7 +10078,7 @@ _.words('fred, barney, & pebbles', /[^, ]+/g);

_.attempt(func, [args])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15252 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.attempt "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15324 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.attempt "See the npm package") [Ⓣ][1] Attempts to invoke `func`, returning either the result or the caught error object. Any additional arguments are provided to `func` when it's invoked. @@ -10107,7 +10111,7 @@ if (_.isError(elements)) {

_.bindAll(object, methodNames)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15286 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.bindall "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15358 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.bindall "See the npm package") [Ⓣ][1] Binds methods of an object to the object itself, overwriting the existing method. @@ -10145,7 +10149,7 @@ jQuery(element).on('click', view.click);

_.cond(pairs)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15323 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.cond "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15395 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.cond "See the npm package") [Ⓣ][1] Creates a function that iterates over `pairs` and invokes the corresponding function of the first predicate to return truthy. The predicate-function @@ -10185,7 +10189,7 @@ func({ 'a': '1', 'b': '2' });

_.conforms(source)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15369 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.conforms "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15441 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.conforms "See the npm package") [Ⓣ][1] Creates a function that invokes the predicate properties of `source` with the corresponding property values of a given object, returning `true` if @@ -10221,7 +10225,7 @@ _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));

_.constant(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15392 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.constant "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15464 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.constant "See the npm package") [Ⓣ][1] Creates a function that returns `value`. @@ -10251,7 +10255,7 @@ console.log(objects[0] === objects[1]);

_.defaultTo(value, defaultValue)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15418 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defaultto "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15490 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defaultto "See the npm package") [Ⓣ][1] Checks `value` to determine whether a default value should be returned in its place. The `defaultValue` is returned if `value` is `NaN`, `null`, @@ -10282,7 +10286,7 @@ _.defaultTo(undefined, 10);

_.flow([funcs])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15444 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flow "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15516 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flow "See the npm package") [Ⓣ][1] Creates a function that returns the result of invoking the given functions with the `this` binding of the created function, where each successive @@ -10314,7 +10318,7 @@ addSquare(1, 2);

_.flowRight([funcs])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15467 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flowright "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15539 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flowright "See the npm package") [Ⓣ][1] This method is like `_.flow` except that it creates a function that invokes the given functions from right to left. @@ -10345,7 +10349,7 @@ addSquare(1, 2);

_.identity(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15485 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.identity "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15557 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.identity "See the npm package") [Ⓣ][1] This method returns the first argument it receives. @@ -10372,7 +10376,7 @@ console.log(_.identity(object) === object);

_.iteratee([func=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15531 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.iteratee "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15603 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.iteratee "See the npm package") [Ⓣ][1] Creates a function that invokes `func` with the arguments of the created function. If `func` is a property name, the created function returns the @@ -10425,7 +10429,7 @@ _.filter(['abc', 'def'], /ef/);

_.matches(source)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15563 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.matches "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15642 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.matches "See the npm package") [Ⓣ][1] Creates a function that performs a partial deep comparison between a given object and `source`, returning `true` if the given object has equivalent @@ -10439,6 +10443,10 @@ partially applied. Partial comparisons will match empty array and empty object `source` values against any array or object value, respectively. See `_.isEqual` for a list of supported value comparisons. +
+
+**Note:** Multiple values can be checked by combining several matchers +using `_.overSome` #### Since 3.0.0 @@ -10458,6 +10466,10 @@ var objects = [ _.filter(objects, _.matches({ 'a': 4, 'c': 6 })); // => [{ 'a': 4, 'b': 5, 'c': 6 }] + +// Checking for several possible values +_.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })])); +// => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] ``` --- @@ -10466,7 +10478,7 @@ _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));

_.matchesProperty(path, srcValue)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15593 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.matchesproperty "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15679 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.matchesproperty "See the npm package") [Ⓣ][1] Creates a function that performs a partial deep comparison between the value at `path` of a given object to `srcValue`, returning `true` if the @@ -10476,6 +10488,10 @@ object value is equivalent, else `false`. **Note:** Partial comparisons will match empty array and empty object `srcValue` values against any array or object value, respectively. See `_.isEqual` for a list of supported value comparisons. +
+
+**Note:** Multiple values can be checked by combining several matchers +using `_.overSome` #### Since 3.2.0 @@ -10496,6 +10512,10 @@ var objects = [ _.find(objects, _.matchesProperty('a', 4)); // => { 'a': 4, 'b': 5, 'c': 6 } + +// Checking for several possible values +_.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)])); +// => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] ``` --- @@ -10504,7 +10524,7 @@ _.find(objects, _.matchesProperty('a', 4));

_.method(path, [args])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15621 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.method "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15707 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.method "See the npm package") [Ⓣ][1] Creates a function that invokes the method at `path` of a given object. Any additional arguments are provided to the invoked method. @@ -10539,7 +10559,7 @@ _.map(objects, _.method(['a', 'b']));

_.methodOf(object, [args])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15650 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.methodof "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15736 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.methodof "See the npm package") [Ⓣ][1] The opposite of `_.method`; this method creates a function that invokes the method at a given path of `object`. Any additional arguments are @@ -10573,7 +10593,7 @@ _.map([['a', '2'], ['c', '0']], _.methodOf(object));

_.mixin([object=lodash], source, [options={}])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15692 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mixin "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15778 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mixin "See the npm package") [Ⓣ][1] Adds all own enumerable string keyed function properties of a source object to the destination object. If `object` is a function, then methods @@ -10621,7 +10641,7 @@ _('fred').vowels();

_.noConflict()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15741 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.noconflict "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15827 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.noconflict "See the npm package") [Ⓣ][1] Reverts the `_` variable to its previous value and returns a reference to the `lodash` function. @@ -10643,7 +10663,7 @@ var lodash = _.noConflict();

_.noop()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15760 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.noop "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15846 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.noop "See the npm package") [Ⓣ][1] This method returns `undefined`. @@ -10662,7 +10682,7 @@ _.times(2, _.noop);

_.nthArg([n=0])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15784 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ntharg "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15870 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ntharg "See the npm package") [Ⓣ][1] Creates a function that gets the argument at index `n`. If `n` is negative, the nth argument from the end is returned. @@ -10693,7 +10713,7 @@ func('a', 'b', 'c', 'd');

_.over([iteratees=[_.identity]])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15809 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.over "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15895 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.over "See the npm package") [Ⓣ][1] Creates a function that invokes `iteratees` with the arguments it receives and returns their results. @@ -10721,10 +10741,15 @@ func(1, 2, 3, 4);

_.overEvery([predicates=[_.identity]])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15835 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.overevery "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15925 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.overevery "See the npm package") [Ⓣ][1] Creates a function that checks if **all** of the `predicates` return truthy when invoked with the arguments it receives. +
+
+Following shorthands are possible for providing predicates. +Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate. +Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them. #### Since 4.0.0 @@ -10755,10 +10780,15 @@ func(NaN);

_.overSome([predicates=[_.identity]])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15861 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.oversome "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15958 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.oversome "See the npm package") [Ⓣ][1] Creates a function that checks if **any** of the `predicates` return truthy when invoked with the arguments it receives. +
+
+Following shorthands are possible for providing predicates. +Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate. +Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them. #### Since 4.0.0 @@ -10781,6 +10811,9 @@ func(null); func(NaN); // => false + +var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }]) +var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]]) ``` --- @@ -10789,7 +10822,7 @@ func(NaN);

_.property(path)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15885 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.property "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L15982 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.property "See the npm package") [Ⓣ][1] Creates a function that returns the value at `path` of a given object. @@ -10822,7 +10855,7 @@ _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');

_.propertyOf(object)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15910 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.propertyof "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16007 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.propertyof "See the npm package") [Ⓣ][1] The opposite of `_.property`; this method creates a function that returns the value at a given path of `object`. @@ -10854,7 +10887,7 @@ _.map([['a', '2'], ['c', '0']], _.propertyOf(object));

_.range([start=0], end, [step=1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15957 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.range "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16054 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.range "See the npm package") [Ⓣ][1] Creates an array of numbers *(positive and/or negative)* progressing from `start` up to, but not including, `end`. A step of `-1` is used if a negative @@ -10906,7 +10939,7 @@ _.range(0);

_.rangeRight([start=0], end, [step=1])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L15995 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.rangeright "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16092 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.rangeright "See the npm package") [Ⓣ][1] This method is like `_.range` except that it populates values in descending order. @@ -10952,7 +10985,7 @@ _.rangeRight(0);

_.runInContext([context=root])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L1406 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.runincontext "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L1448 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.runincontext "See the npm package") [Ⓣ][1] Create a new pristine `lodash` function using the `context` object. @@ -10992,7 +11025,7 @@ var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;

_.stubArray()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16015 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubarray "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16112 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubarray "See the npm package") [Ⓣ][1] This method returns a new empty array. @@ -11019,7 +11052,7 @@ console.log(arrays[0] === arrays[1]);

_.stubFalse()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16032 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubfalse "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16129 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubfalse "See the npm package") [Ⓣ][1] This method returns `false`. @@ -11041,7 +11074,7 @@ _.times(2, _.stubFalse);

_.stubObject()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16054 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubobject "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16151 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubobject "See the npm package") [Ⓣ][1] This method returns a new empty object. @@ -11068,7 +11101,7 @@ console.log(objects[0] === objects[1]);

_.stubString()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16071 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubstring "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16168 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubstring "See the npm package") [Ⓣ][1] This method returns an empty string. @@ -11090,7 +11123,7 @@ _.times(2, _.stubString);

_.stubTrue()

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16088 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubtrue "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16185 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubtrue "See the npm package") [Ⓣ][1] This method returns `true`. @@ -11112,7 +11145,7 @@ _.times(2, _.stubTrue);

_.times(n, [iteratee=_.identity])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16111 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.times "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16208 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.times "See the npm package") [Ⓣ][1] Invokes the iteratee `n` times, returning an array of the results of each invocation. The iteratee is invoked with one argument; *(index)*. @@ -11142,7 +11175,7 @@ _.times(3, String);

_.toPath(value)

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16146 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.topath "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16243 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.topath "See the npm package") [Ⓣ][1] Converts `value` to a property path array. @@ -11170,7 +11203,7 @@ _.toPath('a[0].b.c');

_.uniqueId([prefix=''])

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16170 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniqueid "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16267 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniqueid "See the npm package") [Ⓣ][1] Generates a unique ID. If `prefix` is given, the ID is appended to it. @@ -11204,7 +11237,7 @@ _.uniqueId();

_.VERSION

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L16861 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L16958 "View in source") [Ⓣ][1] (string): The semantic version number. @@ -11215,7 +11248,7 @@ _.uniqueId();

_.templateSettings

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L1717 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.templatesettings "See the npm package") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L1759 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.templatesettings "See the npm package") [Ⓣ][1] (Object): By default, the template delimiters used by lodash are like those in embedded Ruby *(ERB)* as well as ES2015 template strings. Change the @@ -11228,7 +11261,7 @@ following template settings to use alternative delimiters.

_.templateSettings.escape

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L1725 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L1767 "View in source") [Ⓣ][1] (RegExp): Used to detect `data` property values to be HTML-escaped. @@ -11239,7 +11272,7 @@ following template settings to use alternative delimiters.

_.templateSettings.evaluate

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L1733 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L1775 "View in source") [Ⓣ][1] (RegExp): Used to detect code to be evaluated. @@ -11250,7 +11283,7 @@ following template settings to use alternative delimiters.

_.templateSettings.imports

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L1757 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L1799 "View in source") [Ⓣ][1] (Object): Used to import variables into the compiled template. @@ -11261,7 +11294,7 @@ following template settings to use alternative delimiters.

_.templateSettings.interpolate

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L1741 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L1783 "View in source") [Ⓣ][1] (RegExp): Used to detect `data` property values to inject. @@ -11272,7 +11305,7 @@ following template settings to use alternative delimiters.

_.templateSettings.variable

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L1749 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L1791 "View in source") [Ⓣ][1] (string): Used to reference the data object in the template text. @@ -11289,7 +11322,7 @@ following template settings to use alternative delimiters.

_.templateSettings.imports._

-[Ⓢ](https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L1765 "View in source") [Ⓣ][1] +[Ⓢ](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L1807 "View in source") [Ⓣ][1] A reference to the `lodash` function. diff --git a/app/bower_components/lodash/lodash.js b/app/bower_components/lodash/lodash.js index 9b95dfe..4131e93 100644 --- a/app/bower_components/lodash/lodash.js +++ b/app/bower_components/lodash/lodash.js @@ -12,14 +12,15 @@ var undefined; /** Used as the semantic version number. */ - var VERSION = '4.17.15'; + var VERSION = '4.17.21'; /** Used as the size to enable large array optimizations. */ var LARGE_ARRAY_SIZE = 200; /** Error message constants. */ var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.', - FUNC_ERROR_TEXT = 'Expected a function'; + FUNC_ERROR_TEXT = 'Expected a function', + INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`'; /** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__'; @@ -152,10 +153,11 @@ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source); - /** Used to match leading and trailing whitespace. */ - var reTrim = /^\s+|\s+$/g, - reTrimStart = /^\s+/, - reTrimEnd = /\s+$/; + /** Used to match leading whitespace. */ + var reTrimStart = /^\s+/; + + /** Used to match a single whitespace character. */ + var reWhitespace = /\s/; /** Used to match wrap detail comments. */ var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, @@ -165,6 +167,18 @@ /** Used to match words composed of alphanumeric characters. */ var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; + /** + * Used to validate the `validate` option in `_.template` variable. + * + * Forbids characters which could potentially change the meaning of the function argument definition: + * - "()," (modification of function parameters) + * - "=" (default value) + * - "[]{}" (destructuring of function parameters) + * - "/" (beginning of a comment) + * - whitespace + */ + var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; + /** Used to match backslashes in property paths. */ var reEscapeChar = /\\(\\)?/g; @@ -993,6 +1007,19 @@ }); } + /** + * The base implementation of `_.trim`. + * + * @private + * @param {string} string The string to trim. + * @returns {string} Returns the trimmed string. + */ + function baseTrim(string) { + return string + ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') + : string; + } + /** * The base implementation of `_.unary` without support for storing metadata. * @@ -1326,6 +1353,21 @@ : asciiToArray(string); } + /** + * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace + * character of `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the index of the last non-whitespace character. + */ + function trimmedEndIndex(string) { + var index = string.length; + + while (index-- && reWhitespace.test(string.charAt(index))) {} + return index; + } + /** * Used by `_.unescape` to convert HTML entities to characters. * @@ -3719,8 +3761,21 @@ * @returns {Array} Returns the new sorted array. */ function baseOrderBy(collection, iteratees, orders) { + if (iteratees.length) { + iteratees = arrayMap(iteratees, function(iteratee) { + if (isArray(iteratee)) { + return function(value) { + return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee); + } + } + return iteratee; + }); + } else { + iteratees = [identity]; + } + var index = -1; - iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(getIteratee())); + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); var result = baseMap(collection, function(value, key, collection) { var criteria = arrayMap(iteratees, function(iteratee) { @@ -3977,6 +4032,10 @@ var key = toKey(path[index]), newValue = value; + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return object; + } + if (index != lastIndex) { var objValue = nested[key]; newValue = customizer ? customizer(objValue, key, nested) : undefined; @@ -4129,11 +4188,14 @@ * into `array`. */ function baseSortedIndexBy(array, value, iteratee, retHighest) { - value = iteratee(value); - var low = 0, - high = array == null ? 0 : array.length, - valIsNaN = value !== value, + high = array == null ? 0 : array.length; + if (high === 0) { + return 0; + } + + value = iteratee(value); + var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined; @@ -5618,10 +5680,11 @@ if (arrLength != othLength && !(isPartial && othLength > arrLength)) { return false; } - // Assume cyclic values are equal. - var stacked = stack.get(array); - if (stacked && stack.get(other)) { - return stacked == other; + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; } var index = -1, result = true, @@ -5783,10 +5846,11 @@ return false; } } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked && stack.get(other)) { - return stacked == other; + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; } var result = true; stack.set(object, other); @@ -9167,6 +9231,10 @@ * // The `_.property` iteratee shorthand. * _.filter(users, 'active'); * // => objects for ['barney'] + * + * // Combining several predicates using `_.overEvery` or `_.overSome`. + * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); + * // => objects for ['fred', 'barney'] */ function filter(collection, predicate) { var func = isArray(collection) ? arrayFilter : baseFilter; @@ -9916,15 +9984,15 @@ * var users = [ * { 'user': 'fred', 'age': 48 }, * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 }, + * { 'user': 'fred', 'age': 30 }, * { 'user': 'barney', 'age': 34 } * ]; * * _.sortBy(users, [function(o) { return o.user; }]); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] * * _.sortBy(users, ['user', 'age']); - * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]] + * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] */ var sortBy = baseRest(function(collection, iteratees) { if (collection == null) { @@ -12468,7 +12536,7 @@ if (typeof value != 'string') { return value === 0 ? value : +value; } - value = value.replace(reTrim, ''); + value = baseTrim(value); var isBinary = reIsBinary.test(value); return (isBinary || reIsOctal.test(value)) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) @@ -14799,11 +14867,11 @@ // Use a sourceURL for easier debugging. // The sourceURL gets injected into the source that's eval-ed, so be careful - // with lookup (in case of e.g. prototype pollution), and strip newlines if any. - // A newline wouldn't be a valid sourceURL anyway, and it'd enable code injection. + // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in + // and escape the comment, thus injecting code that gets evaled. var sourceURL = '//# sourceURL=' + (hasOwnProperty.call(options, 'sourceURL') - ? (options.sourceURL + '').replace(/[\r\n]/g, ' ') + ? (options.sourceURL + '').replace(/\s/g, ' ') : ('lodash.templateSources[' + (++templateCounter) + ']') ) + '\n'; @@ -14836,12 +14904,16 @@ // If `variable` is not specified wrap a with-statement around the generated // code to add the data object to the top of the scope chain. - // Like with sourceURL, we take care to not check the option's prototype, - // as this configuration is a code injection vector. var variable = hasOwnProperty.call(options, 'variable') && options.variable; if (!variable) { source = 'with (obj) {\n' + source + '\n}\n'; } + // Throw an error if a forbidden character was found in `variable`, to prevent + // potential command injection attacks. + else if (reForbiddenIdentifierChars.test(variable)) { + throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT); + } + // Cleanup code by stripping empty strings. source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source) .replace(reEmptyStringMiddle, '$1') @@ -14955,7 +15027,7 @@ function trim(string, chars, guard) { string = toString(string); if (string && (guard || chars === undefined)) { - return string.replace(reTrim, ''); + return baseTrim(string); } if (!string || !(chars = baseToString(chars))) { return string; @@ -14990,7 +15062,7 @@ function trimEnd(string, chars, guard) { string = toString(string); if (string && (guard || chars === undefined)) { - return string.replace(reTrimEnd, ''); + return string.slice(0, trimmedEndIndex(string) + 1); } if (!string || !(chars = baseToString(chars))) { return string; @@ -15544,6 +15616,9 @@ * values against any array or object value, respectively. See `_.isEqual` * for a list of supported value comparisons. * + * **Note:** Multiple values can be checked by combining several matchers + * using `_.overSome` + * * @static * @memberOf _ * @since 3.0.0 @@ -15559,6 +15634,10 @@ * * _.filter(objects, _.matches({ 'a': 4, 'c': 6 })); * // => [{ 'a': 4, 'b': 5, 'c': 6 }] + * + * // Checking for several possible values + * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })])); + * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] */ function matches(source) { return baseMatches(baseClone(source, CLONE_DEEP_FLAG)); @@ -15573,6 +15652,9 @@ * `srcValue` values against any array or object value, respectively. See * `_.isEqual` for a list of supported value comparisons. * + * **Note:** Multiple values can be checked by combining several matchers + * using `_.overSome` + * * @static * @memberOf _ * @since 3.2.0 @@ -15589,6 +15671,10 @@ * * _.find(objects, _.matchesProperty('a', 4)); * // => { 'a': 4, 'b': 5, 'c': 6 } + * + * // Checking for several possible values + * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)])); + * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] */ function matchesProperty(path, srcValue) { return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG)); @@ -15812,6 +15898,10 @@ * Creates a function that checks if **all** of the `predicates` return * truthy when invoked with the arguments it receives. * + * Following shorthands are possible for providing predicates. + * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate. + * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them. + * * @static * @memberOf _ * @since 4.0.0 @@ -15838,6 +15928,10 @@ * Creates a function that checks if **any** of the `predicates` return * truthy when invoked with the arguments it receives. * + * Following shorthands are possible for providing predicates. + * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate. + * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them. + * * @static * @memberOf _ * @since 4.0.0 @@ -15857,6 +15951,9 @@ * * func(NaN); * // => false + * + * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }]) + * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]]) */ var overSome = createOver(arraySome); diff --git a/app/bower_components/lodash/package-lock.json b/app/bower_components/lodash/package-lock.json index 750f35a..84bbfa5 100644 --- a/app/bower_components/lodash/package-lock.json +++ b/app/bower_components/lodash/package-lock.json @@ -1,6 +1,6 @@ { "name": "lodash", - "version": "4.17.15", + "version": "4.17.21", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1386,6 +1386,7 @@ "node-uuid": "~1.4.0", "oauth-sign": "~0.4.0", "qs": "~1.2.0", + "stringstream": "~0.0.4", "tough-cookie": ">=0.12.0", "tunnel-agent": "~0.4.0" } @@ -3681,9 +3682,9 @@ } }, "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, "lodash-doc-globals": { @@ -5231,6 +5232,13 @@ "safe-buffer": "~5.1.0" } }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "dev": true, + "optional": true + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", diff --git a/app/bower_components/lodash/package.json b/app/bower_components/lodash/package.json index 0fc6b66..83080d4 100644 --- a/app/bower_components/lodash/package.json +++ b/app/bower_components/lodash/package.json @@ -1,6 +1,6 @@ { "name": "lodash", - "version": "4.17.15", + "version": "4.17.21", "license": "MIT", "private": true, "main": "lodash.js", @@ -45,7 +45,7 @@ "istanbul": "0.4.5", "jquery": "^3.4.1", "jscs": "^3.0.7", - "lodash": "4.17.14", + "lodash": "4.17.20", "lodash-doc-globals": "^0.1.1", "markdown-doctest": "^0.9.1", "optional-dev-dependency": "^2.0.0", diff --git a/app/bower_components/lodash/test/test.js b/app/bower_components/lodash/test/test.js index 72c71a9..fcb3a16 100644 --- a/app/bower_components/lodash/test/test.js +++ b/app/bower_components/lodash/test/test.js @@ -9741,7 +9741,7 @@ }); QUnit.test('should compare arrays with circular references', function(assert) { - assert.expect(4); + assert.expect(6); var array1 = [], array2 = []; @@ -9766,6 +9766,14 @@ array2 = ['a', ['a', 'b', 'c'], 'c']; assert.strictEqual(_.isEqual(array1, array2), false); + + array1 = [[[]]]; + array1[0][0][0] = array1; + array2 = []; + array2[0] = array2; + + assert.strictEqual(_.isEqual(array1, array2), false); + assert.strictEqual(_.isEqual(array2, array1), false); }); QUnit.test('should have transitive equivalence for circular references of arrays', function(assert) { @@ -9783,7 +9791,7 @@ }); QUnit.test('should compare objects with circular references', function(assert) { - assert.expect(4); + assert.expect(6); var object1 = {}, object2 = {}; @@ -9808,6 +9816,14 @@ object2 = { 'a': 1, 'b': { 'a': 1, 'b': 2, 'c': 3 }, 'c': 3 }; assert.strictEqual(_.isEqual(object1, object2), false); + + object1 = {self: {self: {self: {}}}}; + object1.self.self.self = object1; + object2 = {self: {}}; + object2.self = object2; + + assert.strictEqual(_.isEqual(object1, object2), false); + assert.strictEqual(_.isEqual(object2, object1), false); }); QUnit.test('should have transitive equivalence for circular references of objects', function(assert) { @@ -16020,6 +16036,14 @@ { 'a': 'y', 'b': 2 } ]; + var nestedObj = [ + { id: '4', address: { zipCode: 4, streetName: 'Beta' } }, + { id: '3', address: { zipCode: 3, streetName: 'Alpha' } }, + { id: '1', address: { zipCode: 1, streetName: 'Alpha' } }, + { id: '2', address: { zipCode: 2, streetName: 'Alpha' } }, + { id: '5', address: { zipCode: 4, streetName: 'Alpha' } }, + ]; + QUnit.test('should sort by a single property by a specified order', function(assert) { assert.expect(1); @@ -16027,6 +16051,17 @@ assert.deepEqual(actual, [objects[1], objects[3], objects[0], objects[2]]); }); + QUnit.test('should sort by nested key in array format', function(assert) { + assert.expect(1); + + var actual = _.orderBy( + nestedObj, + [['address', 'zipCode'], ['address.streetName']], + ['asc', 'desc'] + ); + assert.deepEqual(actual, [nestedObj[2], nestedObj[3], nestedObj[1], nestedObj[0], nestedObj[4]]); + }); + QUnit.test('should sort by multiple properties by specified orders', function(assert) { assert.expect(1); @@ -20998,6 +21033,16 @@ assert.strictEqual(actual, 1); }); + QUnit.test('`_.' + methodName + '` should avoid calling iteratee when length is 0', function(assert) { + var objects = [], + iteratee = function() { + throw new Error; + }, + actual = func(objects, { 'x': 50 }, iteratee); + + assert.strictEqual(actual, 0); + }); + QUnit.test('`_.' + methodName + '` should support arrays larger than `MAX_ARRAY_LENGTH / 2`', function(assert) { assert.expect(12); @@ -22251,6 +22296,14 @@ } }); + QUnit.test('should forbid code injection through the "variable" options', function(assert) { + assert.expect(1); + + assert.raises(function () { + _.template('', { 'variable': '){console.log(process.env)}; with(obj' }); + }); + }); + QUnit.test('should support custom delimiters', function(assert) { assert.expect(2); @@ -22596,6 +22649,18 @@ assert.deepEqual(actual, expected); }); + QUnit.test('should not let a sourceURL inject code', function(assert) { + assert.expect(1); + + var actual, + expected = 'no error'; + try { + actual = _.template(expected, {'sourceURL': '\u2028\u2029\n!this would err if it was executed!'})(); + } catch (e) {} + + assert.equal(actual, expected); + }); + QUnit.test('should work as an iteratee for methods like `_.map`', function(assert) { assert.expect(1); @@ -23718,6 +23783,22 @@ assert.deepEqual(actual, expected); }); + + QUnit.test('`_.`' + methodName + '` should prevent ReDoS', function(assert) { + assert.expect(2); + + var largeStrLen = 50000, + largeStr = '1' + lodashStable.repeat(' ', largeStrLen) + '1', + maxMs = 1000, + startTime = lodashStable.now(); + + assert.deepEqual(_[methodName](largeStr), methodName == 'toNumber' ? NaN : 0); + + var endTime = lodashStable.now(), + timeSpent = endTime - startTime; + + assert.ok(timeSpent < maxMs, 'operation took ' + timeSpent + 'ms'); + }); }); /*--------------------------------------------------------------------------*/ @@ -24303,6 +24384,22 @@ assert.strictEqual(func(string, ''), string); }); + QUnit.test('`_.`' + methodName + '` should prevent ReDoS', function(assert) { + assert.expect(2); + + var largeStrLen = 50000, + largeStr = 'A' + lodashStable.repeat(' ', largeStrLen) + 'A', + maxMs = 1000, + startTime = lodashStable.now(); + + assert.strictEqual(_[methodName](largeStr), largeStr); + + var endTime = lodashStable.now(), + timeSpent = endTime - startTime; + + assert.ok(timeSpent < maxMs, 'operation took ' + timeSpent + 'ms'); + }); + QUnit.test('`_.' + methodName + '` should work as an iteratee for methods like `_.map`', function(assert) { assert.expect(1); @@ -25742,6 +25839,39 @@ }); }); + // zipObjectDeep prototype pollution + ['__proto__', 'constructor', 'prototype'].forEach(function (keyToTest) { + QUnit.test('zipObjectDeep is not setting ' + keyToTest + ' on global', function (assert) { + assert.expect(1); + + _.zipObjectDeep([keyToTest + '.a'], ['newValue']); + // Can't access plain `a` as it's not defined and test fails + assert.notEqual(root['a'], 'newValue'); + }); + + QUnit.test('zipObjectDeep is not overwriting ' + keyToTest + ' on vars', function (assert) { + assert.expect(3); + + const b = 'oldValue' + _.zipObjectDeep([keyToTest + '.b'], ['newValue']); + assert.equal(b, 'oldValue'); + assert.notEqual(root['b'], 'newValue'); + + // ensure nothing was created + assert.notOk(root['b']); + }); + + QUnit.test('zipObjectDeep is not overwriting global.' + keyToTest, function (assert) { + assert.expect(2); + + _.zipObjectDeep([root + '.' + keyToTest + '.c'], ['newValue']); + assert.notEqual(root['c'], 'newValue'); + + // ensure nothing was created + assert.notOk(root['c']); + }); + }); + /*--------------------------------------------------------------------------*/ QUnit.module('lodash.zipWith'); diff --git a/app/index.html b/app/index.html index c8b248f..49738bc 100644 --- a/app/index.html +++ b/app/index.html @@ -37,7 +37,7 @@ - + diff --git a/bower.json b/bower.json index 8b3207e..02a0737 100644 --- a/bower.json +++ b/bower.json @@ -3,19 +3,19 @@ "version": "DEVELOPMENT", "license": "MIT", "dependencies": { - "angular": "1.7.9", + "angular": "1.8.3", "angular-bootstrap": "2.5.0", "angular-leaflet-directive": "0.10.0", - "angular-route": "1.7.9", - "angular-sanitize": "1.7.9", - "bootstrap-sass-official": "3.4.1", - "es5-shim": "4.5.13", + "angular-route": "1.8.3", + "angular-sanitize": "1.8.3", + "bootstrap-sass-official": "3.4.3", + "es5-shim": "4.6.7", "font-awesome": "4.7.0", - "geolib": "2.0.22", - "jquery": "3.4.1", + "geolib": "1.3.5", + "jquery": "3.6.0", "json3": "3.3.2", "leaflet-dist": "0.7.2", - "lodash": "4.17.15", + "lodash": "4.17.21", "sass-bootstrap": "3.0.2" }, "devDependencies": {