PageSourceSearch

https://adamkaramanlis.com/combine/6d44a76db4b579bc08db50aed96537e3-1582720164.js

js adamkaramanlis.com collected 2026-10-04 21:17:54 UTC 466,977 bytes, 4,361 lines download raw bytes

vendor: 23,453 bytes, line 1
1!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(x,e){"use strict";var t=[],T=x.document,i=Object.getPrototypeOf,a=t.slice,g=t.concat,l=t.push,r=t.indexOf,n={},o=n.toString,m=n.hasOwnProperty,s=m.toString,u=s.call(Object),v={},y=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},_=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,noModule:!0};function b(e,t,n){var i,r=(t=t||T).createElement("script");if(r.text=e,n)for(i in c)n[i]&&(r[i]=n[i]);t.head.appendChild(r).parentNode.removeChild(r)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.3.1",C=function(e,t){return new C.fn.init(e,t)},d=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function h(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!y(e)&&!_(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}C.fn=C.prototype={jquery:f,constructor:C,length:0,toArray:function(){return a.call(this)},get:function(e){return null==e?a.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=C.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return C.each(this,e)},map:function(n){return this.pushStack(C.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(a.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:l,sort:t.sort,splice:t.splice},C.extend=C.fn.extend=function(){var e,t,n,i,r,o,s=arguments[0]||{},a=1,l=arguments.length,u=!1;for("boolean"==typeof s&&(u=s,s=arguments[a]||{},a++),"object"==typeof s||y(s)||(s={}),a===l&&(s=this,a--);a<l;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],s!==(i=e[t])&&(u&&i&&(C.isPlainObject(i)||(r=Array.isArray(i)))?(r?(r=!1,o=n&&Array.isArray(n)?n:[]):o=n&&C.isPlainObject(n)?n:{},s[t]=C.extend(u,o,i)):void 0!==i&&(s[t]=i));return s},C.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=i(e))||"function"==typeof(n=m.call(t,"constructor")&&t.constructor)&&s.call(n)===u)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){b(e)},each:function(e,t){var n,i=0;if(h(e))for(n=e.length;i<n&&!1!==t.call(e[i],i,e[i]);i++);else for(i in e)if(!1===t.call(e[i],i,e[i]))break;return e},trim:function(e){return null==e?"":(e+"").replace(d,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(h(Object(e))?C.merge(n,"string"==typeof e?[e]:e):l.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:r.call(t,e,n)},merge:function(e,t){for(var n=+t.length,i=0,r=e.length;i<n;i++)e[r++]=t[i];return e.length=r,e},grep:function(e,t,n){for(var i=[],r=0,o=e.length,s=!n;r<o;r++)!t(e[r],r)!==s&&i.push(e[r]);return i},map:function(e,t,n){var i,r,o=0,s=[];if(h(e))for(i=e.length;o<i;o++)null!=(r=t(e[o],o,n))&&s.push(r);else for(o in e)null!=(r=t(e[o],o,n))&&s.push(r);return g.apply([],s)},guid:1,support:v}),"function"==typeof Symbol&&(C.fn[Symbol.iterator]=t[Symbol.iterator]),C.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var p=function(n){var e,h,b,o,r,p,f,g,w,l,u,E,x,s,T,m,a,c,v,C="sizzle"+1*new Date,y=n.document,S=0,i=0,d=se(),_=se(),D=se(),A=function(e,t){return e===t&&(u=!0),0},N={}.hasOwnProperty,t=[],k=t.pop,I=t.push,O=t.push,j=t.slice,L=function(e,t){for(var n=0,i=e.length;n<i;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",H="[\\x20\\t\\r\\n\\f]",q="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+H+"*("+q+")(?:"+H+"*([*^$|!~]?=)"+H+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+q+"))|)"+H+"*\\]",R=":("+q+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",W=new RegExp(H+"+","g"),F=new RegExp("^"+H+"+|((?:^|[^\\\\])(?:\\\\.)*)"+H+"+$","g"),B=new RegExp("^"+H+"*,"+H+"*"),U=new RegExp("^"+H+"*([>+~]|"+H+")"+H+"*"),K=new RegExp("="+H+"*([^\\]'\"]*?)"+H+"*\\]","g"),$=new RegExp(R),Q=new RegExp("^"+q+"$"),Y={ID:new RegExp("^#("+q+")"),CLASS:new RegExp("^\\.("+q+")"),TAG:new RegExp("^("+q+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+R),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+H+"*(even|odd|(([+-]|)(\\d*)n|)"+H+"*(?:([+-]|)"+H+"*(\\d+)|))"+H+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+H+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+H+"*((?:-\\d)?\\d*)"+H+"*\\)|)(?=[^-]|$)","i")},V=/^(?:input|select|textarea|button)$/i,z=/^h\d$/i,X=/^[^{]+\{\s*\[native \w/,G=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,J=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+H+"?|("+H+")|.)","ig"),ee=function(e,t,n){var i="0x"+t-65536;return i!=i||n?t:i<0?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ie=function(){E()},re=ye(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{O.apply(t=j.call(y.childNodes),y.childNodes),t[y.childNodes.length].nodeType}catch(e){O={apply:t.length?function(e,t){I.apply(e,j.call(t))}:function(e,t){for(var n=e.length,i=0;e[n++]=t[i++];);e.length=n-1}}}function oe(e,t,n,i){var r,o,s,a,l,u,c,f=t&&t.ownerDocument,d=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==d&&9!==d&&11!==d)return n;if(!i&&((t?t.ownerDocument||t:y)!==x&&E(t),t=t||x,T)){if(11!==d&&(l=G.exec(e)))if(r=l[1]){if(9===d){if(!(s=t.getElementById(r)))return n;if(s.id===r)return n.push(s),n}else if(f&&(s=f.getElementById(r))&&v(t,s)&&s.id===r)return n.push(s),n}else{if(l[2])return O.apply(n,t.getElementsByTagName(e)),n;if((r=l[3])&&h.getElementsByClassName&&t.getElementsByClassName)return O.apply(n,t.getElementsByClassName(r)),n}if(h.qsa&&!D[e+" "]&&(!m||!m.test(e))){if(1!==d)f=t,c=e;else if("object"!==t.nodeName.toLowerCase()){for((a=t.getAttribute("id"))?a=a.replace(te,ne):t.setAttribute("id",a=C),o=(u=p(e)).length;o--;)u[o]="#"+a+" "+ve(u[o]);c=u.join(","),f=J.test(e)&&ge(t.parentNode)||t}if(c)try{return O.apply(n,f.querySelectorAll(c)),n}catch(e){}finally{a===C&&t.removeAttribute("id")}}}return g(e.replace(F,"$1"),t,n,i)}function se(){var i=[];return function e(t,n){return i.push(t+" ")>b.cacheLength&&delete e[i.shift()],e[t+" "]=n}}function ae(e){return e[C]=!0,e}function le(e){var t=x.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ue(e,t){for(var n=e.split("|"),i=n.length;i--;)b.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,i=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(i)return i;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function fe(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function de(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function he(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&&re(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function pe(s){return ae(function(o){return o=+o,ae(function(e,t){for(var n,i=s([],e.length,o),r=i.length;r--;)e[n=i[r]]&&(e[n]=!(t[n]=e[n]))})})}function ge(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in h=oe.support={},r=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},E=oe.setDocument=function(e){var t,n,i=e?e.ownerDocument||e:y;return i!==x&&9===i.nodeType&&i.documentElement&&(s=(x=i).documentElement,T=!r(x),y!==x&&(n=x.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",ie,!1):n.attachEvent&&n.attachEvent("onunload",ie)),h.attributes=le(function(e){return e.className="i",!e.getAttribute("className")}),h.getElementsByTagName=le(function(e){return e.appendChild(x.createComment("")),!e.getElementsByTagName("*").length}),h.getElementsByClassName=X.test(x.getElementsByClassName),h.getById=le(function(e){return s.appendChild(e).id=C,!x.getElementsByName||!x.getElementsByName(C).length}),h.getById?(b.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&T){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(Z,ee);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&T){var n,i,r,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(r=t.getElementsByName(e),i=0;o=r[i++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=h.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):h.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,i=[],r=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[r++];)1===n.nodeType&&i.push(n);return i}return o},b.find.CLASS=h.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&T)return t.getElementsByClassName(e)},a=[],m=[],(h.qsa=X.test(x.querySelectorAll))&&(le(function(e){s.appendChild(e).innerHTML="<a id='"+C+"'></a><select id='"+C+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+H+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+H+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+C+"-]").length||m.push("~="),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+C+"+*").length||m.push(".#.+[+~]")}),le(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=x.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+H+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&m.push(":enabled",":disabled"),s.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")})),(h.matchesSelector=X.test(c=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.oMatchesSelector||s.msMatchesSelector))&&le(function(e){h.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),a.push("!=",R)}),m=m.length&&new RegExp(m.join("|")),a=a.length&&new RegExp(a.join("|")),t=X.test(s.compareDocumentPosition),v=t||X.test(s.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,i=t&&t.parentNode;return e===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):e.compareDocumentPosition&&16&e.compareDocumentPosition(i)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},A=t?function(e,t){if(e===t)return u=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!h.sortDetached&&t.compareDocumentPosition(e)===n?e===x||e.ownerDocument===y&&v(y,e)?-1:t===x||t.ownerDocument===y&&v(y,t)?1:l?L(l,e)-L(l,t):0:4&n?-1:1)}:function(e,t){if(e===t)return u=!0,0;var n,i=0,r=e.parentNode,o=t.parentNode,s=[e],a=[t];if(!r||!o)return e===x?-1:t===x?1:r?-1:o?1:l?L(l,e)-L(l,t):0;if(r===o)return ce(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)a.unshift(n);for(;s[i]===a[i];)i++;return i?ce(s[i],a[i]):s[i]===y?-1:a[i]===y?1:0}),x},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==x&&E(e),t=t.replace(K,"='$1']"),h.matchesSelector&&T&&!D[t+" "]&&(!a||!a.test(t))&&(!m||!m.test(t)))try{var n=c.call(e,t);if(n||h.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){}return 0<oe(t,x,null,[e]).length},oe.contains=function(e,t){return(e.ownerDocument||e)!==x&&E(e),v(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==x&&E(e);var n=b.attrHandle[t.toLowerCase()],i=n&&N.call(b.attrHandle,t.toLowerCase())?n(e,t,!T):void 0;return void 0!==i?i:h.attributes||!T?e.getAttribute(t):(i=e.getAttributeNode(t))&&i.specified?i.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,n=[],i=0,r=0;if(u=!h.detectDuplicates,l=!h.sortStable&&e.slice(0),e.sort(A),u){for(;t=e[r++];)t===e[r]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return l=null,e},o=oe.getText=function(e){var t,n="",i=0,r=e.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===r||4===r)return e.nodeValue}else for(;t=e[i++];)n+=o(t);return n},(b=oe.selectors={cacheLength:50,createPseudo:ae,match:Y,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(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===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]||oe.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]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Y.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&$.test(n)&&(t=p(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(Z,ee).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("(^|"+H+")"+e+"("+H+"|$)"))&&d(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,i,r){return function(e){var t=oe.attr(e,n);return null==t?"!="===i:!i||(t+="","="===i?t===r:"!="===i?t!==r:"^="===i?r&&0===t.indexOf(r):"*="===i?r&&-1<t.indexOf(r):"$="===i?r&&t.slice(-r.length)===r:"~="===i?-1<(" "+t.replace(W," ")+" ").indexOf(r):"|="===i&&(t===r||t.slice(0,r.length+1)===r+"-"))}},CHILD:function(p,e,t,g,m){var v="nth"!==p.slice(0,3),y="last"!==p.slice(-4),_="of-type"===e;return 1===g&&0===m?function(e){return!!e.parentNode}:function(e,t,n){var i,r,o,s,a,l,u=v!==y?"nextSibling":"previousSibling",c=e.parentNode,f=_&&e.nodeName.toLowerCase(),d=!n&&!_,h=!1;if(c){if(v){for(;u;){for(s=e;s=s[u];)if(_?s.nodeName.toLowerCase()===f:1===s.nodeType)return!1;l=u="only"===p&&!l&&"nextSibling"}return!0}if(l=[y?c.firstChild:c.lastChild],y&&d){for(h=(a=(i=(r=(o=(s=c)[C]||(s[C]={}))[s.uniqueID]||(o[s.uniqueID]={}))[p]||[])[0]===S&&i[1])&&i[2],s=a&&c.childNodes[a];s=++a&&s&&s[u]||(h=a=0)||l.pop();)if(1===s.nodeType&&++h&&s===e){r[p]=[S,a,h];break}}else if(d&&(h=a=(i=(r=(o=(s=e)[C]||(s[C]={}))[s.uniqueID]||(o[s.uniqueID]={}))[p]||[])[0]===S&&i[1]),!1===h)for(;(s=++a&&s&&s[u]||(h=a=0)||l.pop())&&((_?s.nodeName.toLowerCase()!==f:1!==s.nodeType)||!++h||(d&&((r=(o=s[C]||(s[C]={}))[s.uniqueID]||(o[s.uniqueID]={}))[p]=[S,h]),s!==e)););return(h-=m)===g||h%g==0&&0<=h/g}}},PSEUDO:function(e,o){var t,s=b.pseudos[e]||b.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return s[C]?s(o):1<s.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?ae(function(e,t){for(var n,i=s(e,o),r=i.length;r--;)e[n=L(e,i[r])]=!(t[n]=i[r])}):function(e){return s(e,0,t)}):s}},pseudos:{not:ae(function(e){var i=[],r=[],a=f(e.replace(F,"$1"));return a[C]?ae(function(e,t,n,i){for(var r,o=a(e,null,i,[]),s=e.length;s--;)(r=o[s])&&(e[s]=!(t[s]=r))}):function(e,t,n){return i[0]=e,a(i,null,n,r),i[0]=null,!r.pop()}}),has:ae(function(t){return function(e){return 0<oe(t,e).length}}),contains:ae(function(t){return t=t.replace(Z,ee),function(e){return-1<(e.textContent||e.innerText||o(e)).indexOf(t)}}),lang:ae(function(n){return Q.test(n||"")||oe.error("unsupported lang: "+n),n=n.replace(Z,ee).toLowerCase(),function(e){var t;do{if(t=T?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===s},focus:function(e){return e===x.activeElement&&(!x.hasFocus||x.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:he(!1),disabled:he(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return z.test(e.nodeName)},input:function(e){return V.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:pe(function(){return[0]}),last:pe(function(e,t){return[t-1]}),eq:pe(function(e,t,n){return[n<0?n+t:n]}),even:pe(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:pe(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:pe(function(e,t,n){for(var i=n<0?n+t:n;0<=--i;)e.push(i);return e}),gt:pe(function(e,t,n){for(var i=n<0?n+t:n;++i<t;)e.push(i);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=fe(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=de(e);function me(){}function ve(e){for(var t=0,n=e.length,i="";t<n;t++)i+=e[t].value;return i}function ye(a,e,t){var l=e.dir,u=e.next,c=u||l,f=t&&"parentNode"===c,d=i++;return e.first?function(e,t,n){for(;e=e[l];)if(1===e.nodeType||f)return a(e,t,n);return!1}:function(e,t,n){var i,r,o,s=[S,d];if(n){for(;e=e[l];)if((1===e.nodeType||f)&&a(e,t,n))return!0}else for(;e=e[l];)if(1===e.nodeType||f)if(r=(o=e[C]||(e[C]={}))[e.uniqueID]||(o[e.uniqueID]={}),u&&u===e.nodeName.toLowerCase())e=e[l]||e;else{if((i=r[c])&&i[0]===S&&i[1]===d)return s[2]=i[2];if((r[c]=s)[2]=a(e,t,n))return!0}return!1}}function _e(r){return 1<r.length?function(e,t,n){for(var i=r.length;i--;)if(!r[i](e,t,n))return!1;return!0}:r[0]}function be(e,t,n,i,r){for(var o,s=[],a=0,l=e.length,u=null!=t;a<l;a++)(o=e[a])&&(n&&!n(o,i,r)||(s.push(o),u&&t.push(a)));return s}function we(h,p,g,m,v,e){return m&&!m[C]&&(m=we(m)),v&&!v[C]&&(v=we(v,e)),ae(function(e,t,n,i){var r,o,s,a=[],l=[],u=t.length,c=e||function(e,t,n){for(var i=0,r=t.length;i<r;i++)oe(e,t[i],n);return n}(p||"*",n.nodeType?[n]:n,[]),f=!h||!e&&p?c:be(c,a,h,n,i),d=g?v||(e?h:u||m)?[]:t:f;if(g&&g(f,d,n,i),m)for(r=be(d,l),m(r,[],n,i),o=r.length;o--;)(s=r[o])&&(d[l[o]]=!(f[l[o]]=s));if(e){if(v||h){if(v){for(r=[],o=d.length;o--;)(s=d[o])&&r.push(f[o]=s);v(null,d=[],r,i)}for(o=d.length;o--;)(s=d[o])&&-1<(r=v?L(e,s):a[o])&&(e[r]=!(t[r]=s))}}else d=be(d===t?d.splice(u,d.length):d),v?v(null,t,d,i):O.apply(t,d)})}function Ee(e){for(var r,t,n,i=e.length,o=b.relative[e[0].type],s=o||b.relative[" "],a=o?1:0,l=ye(function(e){return e===r},s,!0),u=ye(function(e){return-1<L(r,e)},s,!0),c=[function(e,t,n){var i=!o&&(n||t!==w)||((r=t).nodeType?l(e,t,n):u(e,t,n));return r=null,i}];a<i;a++)if(t=b.relative[e[a].type])c=[ye(_e(c),t)];else{if((t=b.filter[e[a].type].apply(null,e[a].matches))[C]){for(n=++a;n<i&&!b.relative[e[n].type];n++);return we(1<a&&_e(c),1<a&&ve(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(F,"$1"),t,a<n&&Ee(e.slice(a,n)),n<i&&Ee(e=e.slice(n)),n<i&&ve(e))}c.push(t)}return _e(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,p=oe.tokenize=function(e,t){var n,i,r,o,s,a,l,u=_[e+" "];if(u)return t?0:u.slice(0);for(s=e,a=[],l=b.preFilter;s;){for(o in n&&!(i=B.exec(s))||(i&&(s=s.slice(i[0].length)||s),a.push(r=[])),n=!1,(i=U.exec(s))&&(n=i.shift(),r.push({value:n,type:i[0].replace(F," ")}),s=s.slice(n.length)),b.filter)!(i=Y[o].exec(s))||l[o]&&!(i=l[o](i))||(n=i.shift(),r.push({value:n,type:o,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):_(e,a).slice(0)},f=oe.compile=function(e,t){var n,m,v,y,_,i,r=[],o=[],s=D[e+" "];if(!s){for(t||(t=p(e)),n=t.length;n--;)(s=Ee(t[n]))[C]?r.push(s):o.push(s);(s=D(e,(m=o,y=0<(v=r).length,_=0<m.length,i=function(e,t,n,i,r){var o,s,a,l=0,u="0",c=e&&[],f=[],d=w,h=e||_&&b.find.TAG("*",r),p=S+=null==d?1:Math.random()||.1,g=h.length;for(r&&(w=t===x||t||r);u!==g&&null!=(o=h[u]);u++){if(_&&o){for(s=0,t||o.ownerDocument===x||(E(o),n=!T);a=m[s++];)if(a(o,t||x,n)){i.push(o);break}r&&(S=p)}y&&((o=!a&&o)&&l--,e&&c.push(o))}if(l+=u,y&&u!==l){for(s=0;a=v[s++];)a(c,f,t,n);if(e){if(0<l)for(;u--;)c[u]||f[u]||(f[u]=k.call(i));f=be(f)}O.apply(i,f),r&&!e&&0<f.length&&1<l+v.length&&oe.uniqueSort(i)}return r&&(S=p,w=d),c},y?ae(i):i))).selector=e}return s},g=oe.select=function(e,t,n,i){var r,o,s,a,l,u="function"==typeof e&&e,c=!i&&p(e=u.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(s=o[0]).type&&9===t.nodeType&&T&&b.relative[o[1].type]){if(!(t=(b.find.ID(s.matches[0].replace(Z,ee),t)||[])[0]))return n;u&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(r=Y.needsContext.test(e)?0:o.length;r--&&(s=o[r],!b.relative[a=s.type]);)if((l=b.find[a])&&(i=l(s.matches[0].replace(Z,ee),J.test(o[0].type)&&ge(t.parentNode)||t))){if(o.splice(r,1),!(e=i.length&&ve(o)))return O.apply(n,i),n;break}}return(u||f(e,c))(i,t,!T,n,!t||J.test(e)&&ge(t.parentNode)||t),n},h.sortStable=C.split("").sort(A).join("")===C,h.detectDuplicates=!!u,E(),h.sortDetached=le(function(e){return 1&e.compareDocumentPosition(x.createElement("fieldset"))}),le(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ue("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),h.attributes&&le(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ue("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),le(function(e){return null==e.getAttribute("disabled")})||ue(P,function(e,t,n){var i;if(!n)return!0===e[t]?t.toLowerCase():(i=e.getAttributeNode(t))&&i.specified?i.value:null}),oe}(x);C.find=p,C.expr=p.selectors,C.expr[":"]=C.expr.pseudos,C.uniqueSort=C.unique=p.uniqueSort,C.text=p.getText,C.isXMLDoc=p.isXML,C.contains=p.contains,C.escapeSelector=p.escape;var E=function(e,t,n){for(var i=[],r=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(r&&C(e).is(n))break;i.push(e)}return i},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=C.expr.match.needsContext;
vendor: 10,120 bytes, line 1
1function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function k(e,n,i){return y(n)?C.grep(e,function(e,t){return!!n.call(e,t,e)!==i}):n.nodeType?C.grep(e,function(e){return e===n!==i}):"string"!=typeof n?C.grep(e,function(e){return-1<r.call(n,e)!==i}):C.filter(n,e,i)}C.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?C.find.matchesSelector(i,e)?[i]:[]:C.find.matches(e,C.grep(t,function(e){return 1===e.nodeType}))},C.fn.extend({find:function(e){var t,n,i=this.length,r=this;if("string"!=typeof e)return this.pushStack(C(e).filter(function(){for(t=0;t<i;t++)if(C.contains(r[t],this))return!0}));for(n=this.pushStack([]),t=0;t<i;t++)C.find(e,r[t],n);return 1<i?C.uniqueSort(n):n},filter:function(e){return this.pushStack(k(this,e||[],!1))},not:function(e){return this.pushStack(k(this,e||[],!0))},is:function(e){return!!k(this,"string"==typeof e&&D.test(e)?C(e):e||[],!1).length}});var I,O=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(C.fn.init=function(e,t,n){var i,r;if(!e)return this;if(n=n||I,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:O.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof C?t[0]:t,C.merge(this,C.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:T,!0)),N.test(i[1])&&C.isPlainObject(t))for(i in t)y(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(r=T.getElementById(i[2]))&&(this[0]=r,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):y(e)?void 0!==n.ready?n.ready(e):e(C):C.makeArray(e,this)}).prototype=C.fn,I=C(T);var j=/^(?:parents|prev(?:Until|All))/,L={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}C.fn.extend({has:function(e){var t=C(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(C.contains(this,t[e]))return!0})},closest:function(e,t){var n,i=0,r=this.length,o=[],s="string"!=typeof e&&C(e);if(!D.test(e))for(;i<r;i++)for(n=this[i];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(s?-1<s.index(n):1===n.nodeType&&C.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?C.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?r.call(C(e),this[0]):r.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(C.uniqueSort(C.merge(this.get(),C(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),C.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return E(e,"parentNode")},parentsUntil:function(e,t,n){return E(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return E(e,"nextSibling")},prevAll:function(e){return E(e,"previousSibling")},nextUntil:function(e,t,n){return E(e,"nextSibling",n)},prevUntil:function(e,t,n){return E(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return A(e,"iframe")?e.contentDocument:(A(e,"template")&&(e=e.content||e),C.merge([],e.childNodes))}},function(i,r){C.fn[i]=function(e,t){var n=C.map(this,r,e);return"Until"!==i.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=C.filter(t,n)),1<this.length&&(L[i]||C.uniqueSort(n),j.test(i)&&n.reverse()),this.pushStack(n)}});var H=/[^\x20\t\r\n\f]+/g;function q(e){return e}function M(e){throw e}function R(e,t,n,i){var r;try{e&&y(r=e.promise)?r.call(e).done(t).fail(n):e&&y(r=e.then)?r.call(e,t,n):t.apply(void 0,[e].slice(i))}catch(e){n.apply(void 0,[e])}}C.Callbacks=function(i){var e,n;i="string"==typeof i?(e=i,n={},C.each(e.match(H)||[],function(e,t){n[t]=!0}),n):C.extend({},i);var r,t,o,s,a=[],l=[],u=-1,c=function(){for(s=s||i.once,o=r=!0;l.length;u=-1)for(t=l.shift();++u<a.length;)!1===a[u].apply(t[0],t[1])&&i.stopOnFalse&&(u=a.length,t=!1);i.memory||(t=!1),r=!1,s&&(a=t?[]:"")},f={add:function(){return a&&(t&&!r&&(u=a.length-1,l.push(t)),function n(e){C.each(e,function(e,t){y(t)?i.unique&&f.has(t)||a.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!r&&c()),this},remove:function(){return C.each(arguments,function(e,t){for(var n;-1<(n=C.inArray(t,a,n));)a.splice(n,1),n<=u&&u--}),this},has:function(e){return e?-1<C.inArray(e,a):0<a.length},empty:function(){return a&&(a=[]),this},disable:function(){return s=l=[],a=t="",this},disabled:function(){return!a},lock:function(){return s=l=[],t||r||(a=t=""),this},locked:function(){return!!s},fireWith:function(e,t){return s||(t=[e,(t=t||[]).slice?t.slice():t],l.push(t),r||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},C.extend({Deferred:function(e){var o=[["notify","progress",C.Callbacks("memory"),C.Callbacks("memory"),2],["resolve","done",C.Callbacks("once memory"),C.Callbacks("once memory"),0,"resolved"],["reject","fail",C.Callbacks("once memory"),C.Callbacks("once memory"),1,"rejected"]],r="pending",s={state:function(){return r},always:function(){return a.done(arguments).fail(arguments),this},catch:function(e){return s.then(null,e)},pipe:function(){var r=arguments;return C.Deferred(function(i){C.each(o,function(e,t){var n=y(r[t[4]])&&r[t[4]];a[t[1]](function(){var e=n&&n.apply(this,arguments);e&&y(e.promise)?e.promise().progress(i.notify).done(i.resolve).fail(i.reject):i[t[0]+"With"](this,n?[e]:arguments)})}),r=null}).promise()},then:function(t,n,i){var l=0;function u(r,o,s,a){return function(){var n=this,i=arguments,e=function(){var e,t;if(!(r<l)){if((e=s.apply(n,i))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,y(t)?a?t.call(e,u(l,o,q,a),u(l,o,M,a)):(l++,t.call(e,u(l,o,q,a),u(l,o,M,a),u(l,o,q,o.notifyWith))):(s!==q&&(n=void 0,i=[e]),(a||o.resolveWith)(n,i))}},t=a?e:function(){try{e()}catch(e){C.Deferred.exceptionHook&&C.Deferred.exceptionHook(e,t.stackTrace),l<=r+1&&(s!==M&&(n=void 0,i=[e]),o.rejectWith(n,i))}};r?t():(C.Deferred.getStackHook&&(t.stackTrace=C.Deferred.getStackHook()),x.setTimeout(t))}}return C.Deferred(function(e){o[0][3].add(u(0,e,y(i)?i:q,e.notifyWith)),o[1][3].add(u(0,e,y(t)?t:q)),o[2][3].add(u(0,e,y(n)?n:M))}).promise()},promise:function(e){return null!=e?C.extend(e,s):s}},a={};return C.each(o,function(e,t){var n=t[2],i=t[5];s[t[1]]=n.add,i&&n.add(function(){r=i},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),a[t[0]]=function(){return a[t[0]+"With"](this===a?void 0:this,arguments),this},a[t[0]+"With"]=n.fireWith}),s.promise(a),e&&e.call(a,a),a},when:function(e){var n=arguments.length,t=n,i=Array(t),r=a.call(arguments),o=C.Deferred(),s=function(t){return function(e){i[t]=this,r[t]=1<arguments.length?a.call(arguments):e,--n||o.resolveWith(i,r)}};if(n<=1&&(R(e,o.done(s(t)).resolve,o.reject,!n),"pending"===o.state()||y(r[t]&&r[t].then)))return o.then();for(;t--;)R(r[t],s(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;C.Deferred.exceptionHook=function(e,t){x.console&&x.console.warn&&e&&W.test(e.name)&&x.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},C.readyException=function(e){x.setTimeout(function(){throw e})};var F=C.Deferred();function B(){T.removeEventListener("DOMContentLoaded",B),x.removeEventListener("load",B),C.ready()}C.fn.ready=function(e){return F.then(e).catch(function(e){C.readyException(e)}),this},C.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--C.readyWait:C.isReady)||(C.isReady=!0)!==e&&0<--C.readyWait||F.resolveWith(T,[C])}}),C.ready.then=F.then,"complete"===T.readyState||"loading"!==T.readyState&&!T.documentElement.doScroll?x.setTimeout(C.ready):(T.addEventListener("DOMContentLoaded",B),x.addEventListener("load",B));var U=function(e,t,n,i,r,o,s){var a=0,l=e.length,u=null==n;if("object"===w(n))for(a in r=!0,n)U(e,t,a,n[a],!0,o,s);else if(void 0!==i&&(r=!0,y(i)||(s=!0),u&&(s?(t.call(e,i),t=null):(u=t,t=function(e,t,n){return u.call(C(e),n)})),t))for(;a<l;a++)t(e[a],n,s?i:i.call(e[a],a,t(e[a],n)));return r?e:u?t.call(e):l?t(e[0],n):o},K=/^-ms-/,$=/-([a-z])/g;function Q(e,t){return t.toUpperCase()}function Y(e){return e.replace(K,"ms-").replace($,Q)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function z(){this.expando=C.expando+z.uid++}z.uid=1,z.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var i,r=this.cache(e);if("string"==typeof t)r[Y(t)]=n;else for(i in t)r[Y(i)]=t[i];return r},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][Y(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,i=e[this.expando];if(void 0!==i){if(void 0!==t){n=(t=Array.isArray(t)?t.map(Y):(t=Y(t))in i?[t]:t.match(H)||[]).length;for(;n--;)delete i[t[n]]}(void 0===t||C.isEmptyObject(i))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!C.isEmptyObject(t)}};var X=new z,G=new z,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var i,r;if(void 0===n&&1===e.nodeType)if(i="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(i))){try{n="true"===(r=n)||"false"!==r&&("null"===r?null:r===+r+""?+r:J.test(r)?JSON.parse(r):r)}catch(e){}G.set(e,t,n)}else n=void 0;return n}C.extend({hasData:function(e){return G.hasData(e)||X.hasData(e)},data:function(e,t,n){return G.access(e,t,n)},removeData:function(e,t){G.remove(e,t)},_data:function(e,t,n){return X.access(e,t,n)},_removeData:function(e,t){X.remove(e,t)}}),C.fn.extend({data:function(n,e){var t,i,r,o=this[0],s=o&&o.attributes;if(void 0===n){if(this.length&&(r=G.get(o),1===o.nodeType&&!X.get(o,"hasDataAttrs"))){for(t=s.length;t--;
vendor: 11,069 bytes, line 1
1)s[t]&&0===(i=s[t].name).indexOf("data-")&&(i=Y(i.slice(5)),ee(o,i,r[i]));X.set(o,"hasDataAttrs",!0)}return r}return"object"==typeof n?this.each(function(){G.set(this,n)}):U(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=G.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){G.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){G.remove(this,e)})}}),C.extend({queue:function(e,t,n){var i;if(e)return t=(t||"fx")+"queue",i=X.get(e,t),n&&(!i||Array.isArray(n)?i=X.access(e,t,C.makeArray(n)):i.push(n)),i||[]},dequeue:function(e,t){t=t||"fx";var n=C.queue(e,t),i=n.length,r=n.shift(),o=C._queueHooks(e,t);"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===t&&n.unshift("inprogress"),delete o.stop,r.call(e,function(){C.dequeue(e,t)},o)),!i&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return X.get(e,n)||X.access(e,n,{empty:C.Callbacks("once memory").add(function(){X.remove(e,[t+"queue",n])})})}}),C.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?C.queue(this[0],t):void 0===n?this:this.each(function(){var e=C.queue(this,t,n);C._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&C.dequeue(this,t)})},dequeue:function(e){return this.each(function(){C.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,i=1,r=C.Deferred(),o=this,s=this.length,a=function(){--i||r.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";s--;)(n=X.get(o[s],e+"queueHooks"))&&n.empty&&(i++,n.empty.add(a));return a(),r.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),ie=["Top","Right","Bottom","Left"],re=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&C.contains(e.ownerDocument,e)&&"none"===C.css(e,"display")},oe=function(e,t,n,i){var r,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];for(o in r=n.apply(e,i||[]),t)e.style[o]=s[o];return r};function se(e,t,n,i){var r,o,s=20,a=i?function(){return i.cur()}:function(){return C.css(e,t,"")},l=a(),u=n&&n[3]||(C.cssNumber[t]?"":"px"),c=(C.cssNumber[t]||"px"!==u&&+l)&&ne.exec(C.css(e,t));if(c&&c[3]!==u){for(l/=2,u=u||c[3],c=+l||1;s--;)C.style(e,t,c+u),(1-o)*(1-(o=a()/l||.5))<=0&&(s=0),c/=o;c*=2,C.style(e,t,c+u),n=n||[]}return n&&(c=+c||+l||0,r=n[1]?c+(n[1]+1)*n[2]:+n[2],i&&(i.unit=u,i.start=c,i.end=r)),r}var ae={};function le(e,t){for(var n,i,r,o,s,a,l,u=[],c=0,f=e.length;c<f;c++)(i=e[c]).style&&(n=i.style.display,t?("none"===n&&(u[c]=X.get(i,"display")||null,u[c]||(i.style.display="")),""===i.style.display&&re(i)&&(u[c]=(l=s=o=void 0,s=(r=i).ownerDocument,a=r.nodeName,(l=ae[a])||(o=s.body.appendChild(s.createElement(a)),l=C.css(o,"display"),o.parentNode.removeChild(o),"none"===l&&(l="block"),ae[a]=l)))):"none"!==n&&(u[c]="none",X.set(i,"display",n)));for(c=0;c<f;c++)null!=u[c]&&(e[c].style.display=u[c]);return e}C.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){re(this)?C(this).show():C(this).hide()})}});var ue=/^(?:checkbox|radio)$/i,ce=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,fe=/^$|^module$|\/(?:java|ecma)script/i,de={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function he(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?C.merge([e],n):n}function pe(e,t){for(var n=0,i=e.length;n<i;n++)X.set(e[n],"globalEval",!t||X.get(t[n],"globalEval"))}de.optgroup=de.option,de.tbody=de.tfoot=de.colgroup=de.caption=de.thead,de.th=de.td;var ge,me,ve=/<|&#?\w+;/;function ye(e,t,n,i,r){for(var o,s,a,l,u,c,f=t.createDocumentFragment(),d=[],h=0,p=e.length;h<p;h++)if((o=e[h])||0===o)if("object"===w(o))C.merge(d,o.nodeType?[o]:o);else if(ve.test(o)){for(s=s||f.appendChild(t.createElement("div")),a=(ce.exec(o)||["",""])[1].toLowerCase(),l=de[a]||de._default,s.innerHTML=l[1]+C.htmlPrefilter(o)+l[2],c=l[0];c--;)s=s.lastChild;C.merge(d,s.childNodes),(s=f.firstChild).textContent=""}else d.push(t.createTextNode(o));for(f.textContent="",h=0;o=d[h++];)if(i&&-1<C.inArray(o,i))r&&r.push(o);else if(u=C.contains(o.ownerDocument,o),s=he(f.appendChild(o),"script"),u&&pe(s),n)for(c=0;o=s[c++];)fe.test(o.type||"")&&n.push(o);return f}ge=T.createDocumentFragment().appendChild(T.createElement("div")),(me=T.createElement("input")).setAttribute("type","radio"),me.setAttribute("checked","checked"),me.setAttribute("name","t"),ge.appendChild(me),v.checkClone=ge.cloneNode(!0).cloneNode(!0).lastChild.checked,ge.innerHTML="<textarea>x</textarea>",v.noCloneChecked=!!ge.cloneNode(!0).lastChild.defaultValue;var _e=T.documentElement,be=/^key/,we=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function xe(){return!0}function Te(){return!1}function Ce(){try{return T.activeElement}catch(e){}}function Se(e,t,n,i,r,o){var s,a;if("object"==typeof t){for(a in"string"!=typeof n&&(i=i||n,n=void 0),t)Se(e,a,n,i,t[a],o);return e}if(null==i&&null==r?(r=n,i=n=void 0):null==r&&("string"==typeof n?(r=i,i=void 0):(r=i,i=n,n=void 0)),!1===r)r=Te;else if(!r)return e;return 1===o&&(s=r,(r=function(e){return C().off(e),s.apply(this,arguments)}).guid=s.guid||(s.guid=C.guid++)),e.each(function(){C.event.add(this,t,r,i,n)})}C.event={global:{},add:function(t,e,n,i,r){var o,s,a,l,u,c,f,d,h,p,g,m=X.get(t);if(m)for(n.handler&&(n=(o=n).handler,r=o.selector),r&&C.find.matchesSelector(_e,r),n.guid||(n.guid=C.guid++),(l=m.events)||(l=m.events={}),(s=m.handle)||(s=m.handle=function(e){return void 0!==C&&C.event.triggered!==e.type?C.event.dispatch.apply(t,arguments):void 0}),u=(e=(e||"").match(H)||[""]).length;u--;)h=g=(a=Ee.exec(e[u])||[])[1],p=(a[2]||"").split(".").sort(),h&&(f=C.event.special[h]||{},h=(r?f.delegateType:f.bindType)||h,f=C.event.special[h]||{},c=C.extend({type:h,origType:g,data:i,handler:n,guid:n.guid,selector:r,needsContext:r&&C.expr.match.needsContext.test(r),namespace:p.join(".")},o),(d=l[h])||((d=l[h]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,i,p,s)||t.addEventListener&&t.addEventListener(h,s)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),r?d.splice(d.delegateCount++,0,c):d.push(c),C.event.global[h]=!0)},remove:function(e,t,n,i,r){var o,s,a,l,u,c,f,d,h,p,g,m=X.hasData(e)&&X.get(e);if(m&&(l=m.events)){for(u=(t=(t||"").match(H)||[""]).length;u--;)if(h=g=(a=Ee.exec(t[u])||[])[1],p=(a[2]||"").split(".").sort(),h){for(f=C.event.special[h]||{},d=l[h=(i?f.delegateType:f.bindType)||h]||[],a=a[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=d.length;o--;)c=d[o],!r&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||i&&i!==c.selector&&("**"!==i||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(e,c));s&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,p,m.handle)||C.removeEvent(e,h,m.handle),delete l[h])}else for(h in l)C.event.remove(e,h+t[u],n,i,!0);C.isEmptyObject(l)&&X.remove(e,"handle events")}},dispatch:function(e){var t,n,i,r,o,s,a=C.event.fix(e),l=new Array(arguments.length),u=(X.get(this,"events")||{})[a.type]||[],c=C.event.special[a.type]||{};for(l[0]=a,t=1;t<arguments.length;t++)l[t]=arguments[t];if(a.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,a)){for(s=C.event.handlers.call(this,a,u),t=0;(r=s[t++])&&!a.isPropagationStopped();)for(a.currentTarget=r.elem,n=0;(o=r.handlers[n++])&&!a.isImmediatePropagationStopped();)a.rnamespace&&!a.rnamespace.test(o.namespace)||(a.handleObj=o,a.data=o.data,void 0!==(i=((C.event.special[o.origType]||{}).handle||o.handler).apply(r.elem,l))&&!1===(a.result=i)&&(a.preventDefault(),a.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,a),a.result}},handlers:function(e,t){var n,i,r,o,s,a=[],l=t.delegateCount,u=e.target;if(l&&u.nodeType&&!("click"===e.type&&1<=e.button))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&("click"!==e.type||!0!==u.disabled)){for(o=[],s={},n=0;n<l;n++)void 0===s[r=(i=t[n]).selector+" "]&&(s[r]=i.needsContext?-1<C(r,this).index(u):C.find(r,this,null,[u]).length),s[r]&&o.push(i);o.length&&a.push({elem:u,handlers:o})}return u=this,l<t.length&&a.push({elem:u,handlers:t.slice(l)}),a},addProp:function(t,e){Object.defineProperty(C.Event.prototype,t,{enumerable:!0,configurable:!0,get:y(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[C.expando]?e:new C.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Ce()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Ce()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&A(this,"input"))return this.click(),!1},_default:function(e){return A(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},C.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},C.Event=function(e,t){if(!(this instanceof C.Event))return new C.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?xe:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&C.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[C.expando]=!0},C.Event.prototype={constructor:C.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=xe,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=xe,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=xe,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},C.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&be.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&we.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},C.event.addProp),C.each({mouseenter:"mouseover",mouseleave:"mou
1seout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,r){C.event.special[e]={delegateType:r,bindType:r,handle:function(e){var t,n=e.relatedTarget,i=e.handleObj;return n&&(n===this||C.contains(this,n))||(e.type=i.origType,t=i.handler.apply(this,arguments),e.type=r),t}}}),C.fn.extend({on:function(e,t,n,i){return Se(this,e,t,n,i)},one:function(e,t,n,i){return Se(this,e,t,n,i,1)},off:function(e,t,n){var i,r;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,C(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(r in e)this.off(r,t,e[r]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){C.event.remove(this,e,n,t)})}});var De=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,Ne=/checked\s*(?:[^=]|=\s*.checked.)/i,ke=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ie(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&C(e).children("tbody")[0]||e}function Oe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function je(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,i,r,o,s,a,l,u;if(1===t.nodeType){if(X.hasData(e)&&(o=X.access(e),s=X.set(t,o),u=o.events))for(r in delete s.handle,s.events={},u)for(n=0,i=u[r].length;n<i;n++)C.event.add(t,r,u[r][n]);G.hasData(e)&&(a=G.access(e),l=C.extend({},a),G.set(t,l))}}function Pe(n,i,r,o){i=g.apply([],i);var e,t,s,a,l,u,c=0,f=n.length,d=f-1,h=i[0],p=y(h);if(p||1<f&&"string"==typeof h&&!v.checkClone&&Ne.test(h))return n.each(function(e){var t=n.eq(e);p&&(i[0]=h.call(this,e,t.html())),Pe(t,i,r,o)});if(f&&(t=(e=ye(i,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(a=(s=C.map(he(e,"script"),Oe)).length;c<f;c++)l=e,c!==d&&(l=C.clone(l,!0,!0),a&&C.merge(s,he(l,"script"))),r.call(n[c],l,c);if(a)for(u=s[s.length-1].ownerDocument,C.map(s,je),c=0;c<a;c++)l=s[c],fe.test(l.type||"")&&!X.access(l,"globalEval")&&C.contains(u,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?C._evalUrl&&C._evalUrl(l.src):b(l.textContent.replace(ke,""),u,l))}return n}function He(e,t,n){for(var i,r=t?C.filter(t,e):e,o=0;null!=(i=r[o]);o++)n||1!==i.nodeType||C.cleanData(he(i)),i.parentNode&&(n&&C.contains(i.ownerDocument,i)&&pe(he(i,"script")),i.parentNode.removeChild(i));return e}C.extend({htmlPrefilter:function(e){return e.replace(De,"<$1></$2>")},clone:function(e,t,n){var i,r,o,s,a,l,u,c=e.cloneNode(!0),f=C.contains(e.ownerDocument,e);if(!(v.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||C.isXMLDoc(e)))for(s=he(c),i=0,r=(o=he(e)).length;i<r;i++)a=o[i],l=s[i],void 0,"input"===(u=l.nodeName.toLowerCase())&&ue.test(a.type)?l.checked=a.checked:"input"!==u&&"textarea"!==u||(l.defaultValue=a.defaultValue);if(t)if(n)for(o=o||he(e),s=s||he(c),i=0,r=o.length;i<r;i++)Le(o[i],s[i]);else Le(e,c);return 0<(s=he(c,"script")).length&&pe(s,!f&&he(e,"script")),c},cleanData:function(e){for(var t,n,i,r=C.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[X.expando]){if(t.events)for(i in t.events)r[i]?C.event.remove(n,i):C.removeEvent(n,i,t.handle);n[X.expando]=void 0}n[G.expando]&&(n[G.expando]=void 0)}}}),C.fn.extend({detach:function(e){return He(this,e,!0)},remove:function(e){return He(this,e)},text:function(e){return U(this,function(e){return void 0===e?C.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Pe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Ie(this,e).appendChild(e)})},prepend:function(){return Pe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Ie(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(C.cleanData(he(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return C.clone(this,e,t)})},html:function(e){return U(this,function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!de[(ce.exec(e)||["",""])[1].toLowerCase()]){e=C.htmlPrefilter(e);try{for(;n<i;n++)1===(t=this[n]||{}).nodeType&&(C.cleanData(he(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Pe(this,arguments,function(e){var t=this.parentNode;C.inArray(this,n)<0&&(C.cleanData(he(this)),t&&t.replaceChild(e,this))},n)}}),C.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,s){C.fn[e]=function(e){for(var t,n=[],i=C(e),r=i.length-1,o=0;o<=r;
vendor: 15,124 bytes, line 1
1o++)t=o===r?this:this.clone(!0),C(i[o])[s](t),l.apply(n,t.get());return this.pushStack(n)}});var qe=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Me=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=x),t.getComputedStyle(e)},Re=new RegExp(ie.join("|"),"i");function We(e,t,n){var i,r,o,s,a=e.style;return(n=n||Me(e))&&(""!==(s=n.getPropertyValue(t)||n[t])||C.contains(e.ownerDocument,e)||(s=C.style(e,t)),!v.pixelBoxStyles()&&qe.test(s)&&Re.test(t)&&(i=a.width,r=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=n.width,a.width=i,a.minWidth=r,a.maxWidth=o)),void 0!==s?s+"":s}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){a.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",_e.appendChild(a).appendChild(l);var e=x.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),i=36===t(e.width),l.style.position="absolute",r=36===l.offsetWidth||"absolute",_e.removeChild(a),l=null}}function t(e){return Math.round(parseFloat(e))}var n,i,r,o,s,a=T.createElement("div"),l=T.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===l.style.backgroundClip,C.extend(v,{boxSizingReliable:function(){return e(),i},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),r}}))}();var Be=/^(none|table(?!-c[ea]).+)/,Ue=/^--/,Ke={position:"absolute",visibility:"hidden",display:"block"},$e={letterSpacing:"0",fontWeight:"400"},Qe=["Webkit","Moz","ms"],Ye=T.createElement("div").style;function Ve(e){var t=C.cssProps[e];return t||(t=C.cssProps[e]=function(e){if(e in Ye)return e;for(var t=e[0].toUpperCase()+e.slice(1),n=Qe.length;n--;)if((e=Qe[n]+t)in Ye)return e}(e)||e),t}function ze(e,t,n){var i=ne.exec(t);return i?Math.max(0,i[2]-(n||0))+(i[3]||"px"):t}function Xe(e,t,n,i,r,o){var s="width"===t?1:0,a=0,l=0;if(n===(i?"border":"content"))return 0;for(;s<4;s+=2)"margin"===n&&(l+=C.css(e,n+ie[s],!0,r)),i?("content"===n&&(l-=C.css(e,"padding"+ie[s],!0,r)),"margin"!==n&&(l-=C.css(e,"border"+ie[s]+"Width",!0,r))):(l+=C.css(e,"padding"+ie[s],!0,r),"padding"!==n?l+=C.css(e,"border"+ie[s]+"Width",!0,r):a+=C.css(e,"border"+ie[s]+"Width",!0,r));return!i&&0<=o&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-l-a-.5))),l}function Ge(e,t,n){var i=Me(e),r=We(e,t,i),o="border-box"===C.css(e,"boxSizing",!1,i),s=o;if(qe.test(r)){if(!n)return r;r="auto"}return s=s&&(v.boxSizingReliable()||r===e.style[t]),("auto"===r||!parseFloat(r)&&"inline"===C.css(e,"display",!1,i))&&(r=e["offset"+t[0].toUpperCase()+t.slice(1)],s=!0),(r=parseFloat(r)||0)+Xe(e,t,n||(o?"border":"content"),s,i,r)+"px"}function Je(e,t,n,i,r){return new Je.prototype.init(e,t,n,i,r)}C.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var r,o,s,a=Y(t),l=Ue.test(t),u=e.style;if(l||(t=Ve(a)),s=C.cssHooks[t]||C.cssHooks[a],void 0===n)return s&&"get"in s&&void 0!==(r=s.get(e,!1,i))?r:u[t];"string"===(o=typeof n)&&(r=ne.exec(n))&&r[1]&&(n=se(e,t,r),o="number"),null!=n&&n==n&&("number"===o&&(n+=r&&r[3]||(C.cssNumber[a]?"":"px")),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&void 0===(n=s.set(e,n,i))||(l?u.setProperty(t,n):u[t]=n))}},css:function(e,t,n,i){var r,o,s,a=Y(t);return Ue.test(t)||(t=Ve(a)),(s=C.cssHooks[t]||C.cssHooks[a])&&"get"in s&&(r=s.get(e,!0,n)),void 0===r&&(r=We(e,t,i)),"normal"===r&&t in $e&&(r=$e[t]),""===n||n?(o=parseFloat(r),!0===n||isFinite(o)?o||0:r):r}}),C.each(["height","width"],function(e,a){C.cssHooks[a]={get:function(e,t,n){if(t)return!Be.test(C.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ge(e,a,n):oe(e,Ke,function(){return Ge(e,a,n)})},set:function(e,t,n){var i,r=Me(e),o="border-box"===C.css(e,"boxSizing",!1,r),s=n&&Xe(e,a,n,o,r);return o&&v.scrollboxSize()===r.position&&(s-=Math.ceil(e["offset"+a[0].toUpperCase()+a.slice(1)]-parseFloat(r[a])-Xe(e,a,"border",!1,r)-.5)),s&&(i=ne.exec(t))&&"px"!==(i[3]||"px")&&(e.style[a]=t,t=C.css(e,a)),ze(0,t,s)}}}),C.cssHooks.marginLeft=Fe(v.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-oe(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),C.each({margin:"",padding:"",border:"Width"},function(r,o){C.cssHooks[r+o]={expand:function(e){for(var t=0,n={},i="string"==typeof e?e.split(" "):[e];t<4;t++)n[r+ie[t]+o]=i[t]||i[t-2]||i[0];return n}},"margin"!==r&&(C.cssHooks[r+o].set=ze)}),C.fn.extend({css:function(e,t){return U(this,function(e,t,n){var i,r,o={},s=0;if(Array.isArray(t)){for(i=Me(e),r=t.length;s<r;s++)o[t[s]]=C.css(e,t[s],!1,i);return o}return void 0!==n?C.style(e,t,n):C.css(e,t)},e,t,1<arguments.length)}}),((C.Tween=Je).prototype={constructor:Je,init:function(e,t,n,i,r,o){this.elem=e,this.prop=n,this.easing=r||C.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=i,this.unit=o||(C.cssNumber[n]?"":"px")},cur:function(){var e=Je.propHooks[this.prop];return e&&e.get?e.get(this):Je.propHooks._default.get(this)},run:function(e){var t,n=Je.propHooks[this.prop];return this.options.duration?this.pos=t=C.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Je.propHooks._default.set(this),this}}).init.prototype=Je.prototype,(Je.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=C.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){C.fx.step[e.prop]?C.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[C.cssProps[e.prop]]&&!C.cssHooks[e.prop]?e.elem[e.prop]=e.now:C.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Je.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},C.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},C.fx=Je.prototype.init,C.fx.step={};var Ze,et,tt,nt,it=/^(?:toggle|show|hide)$/,rt=/queueHooks$/;function ot(){et&&(!1===T.hidden&&x.requestAnimationFrame?x.requestAnimationFrame(ot):x.setTimeout(ot,C.fx.interval),C.fx.tick())}function st(){return x.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function at(e,t){var n,i=0,r={height:e};for(t=t?1:0;i<4;i+=2-t)r["margin"+(n=ie[i])]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function lt(e,t,n){for(var i,r=(ut.tweeners[t]||[]).concat(ut.tweeners["*"]),o=0,s=r.length;o<s;o++)if(i=r[o].call(n,t,e))return i}function ut(o,e,t){var n,s,i=0,r=ut.prefilters.length,a=C.Deferred().always(function(){delete l.elem}),l=function(){if(s)return!1;for(var e=Ze||st(),t=Math.max(0,u.startTime+u.duration-e),n=1-(t/u.duration||0),i=0,r=u.tweens.length;i<r;i++)u.tweens[i].run(n);return a.notifyWith(o,[u,n,t]),n<1&&r?t:(r||a.notifyWith(o,[u,1,0]),a.resolveWith(o,[u]),!1)},u=a.promise({elem:o,props:C.extend({},e),opts:C.extend(!0,{specialEasing:{},easing:C.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||st(),duration:t.duration,tweens:[],createTween:function(e,t){var n=C.Tween(o,u.opts,e,t,u.opts.specialEasing[e]||u.opts.easing);return u.tweens.push(n),n},stop:function(e){var t=0,n=e?u.tweens.length:0;if(s)return this;for(s=!0;t<n;t++)u.tweens[t].run(1);return e?(a.notifyWith(o,[u,1,0]),a.resolveWith(o,[u,e])):a.rejectWith(o,[u,e]),this}}),c=u.props;for(!function(e,t){var n,i,r,o,s;for(n in e)if(r=t[i=Y(n)],o=e[n],Array.isArray(o)&&(r=o[1],o=e[n]=o[0]),n!==i&&(e[i]=o,delete e[n]),(s=C.cssHooks[i])&&"expand"in s)for(n in o=s.expand(o),delete e[i],o)n in e||(e[n]=o[n],t[n]=r);else t[i]=r}(c,u.opts.specialEasing);i<r;i++)if(n=ut.prefilters[i].call(u,o,c,u.opts))return y(n.stop)&&(C._queueHooks(u.elem,u.opts.queue).stop=n.stop.bind(n)),n;return C.map(c,lt,u),y(u.opts.start)&&u.opts.start.call(o,u),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always),C.fx.timer(C.extend(l,{elem:o,anim:u,queue:u.opts.queue})),u}C.Animation=C.extend(ut,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){y(e)?(t=e,e=["*"]):e=e.match(H);for(var n,i=0,r=e.length;i<r;i++)n=e[i],ut.tweeners[n]=ut.tweeners[n]||[],ut.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var i,r,o,s,a,l,u,c,f="width"in t||"height"in t,d=this,h={},p=e.style,g=e.nodeType&&re(e),m=X.get(e,"fxshow");for(i in n.queue||(null==(s=C._queueHooks(e,"fx")).unqueued&&(s.unqueued=0,a=s.empty.fire,s.empty.fire=function(){s.unqueued||a()}),s.unqueued++,d.always(function(){d.always(function(){s.unqueued--,C.queue(e,"fx").length||s.empty.fire()})})),t)if(r=t[i],it.test(r)){if(delete t[i],o=o||"toggle"===r,r===(g?"hide":"show")){if("show"!==r||!m||void 0===m[i])continue;g=!0}h[i]=m&&m[i]||C.style(e,i)}if((l=!C.isEmptyObject(t))||!C.isEmptyObject(h))for(i in f&&1===e.nodeType&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],null==(u=m&&m.display)&&(u=X.get(e,"display")),"none"===(c=C.css(e,"display"))&&(u?c=u:(le([e],!0),u=e.style.display||u,c=C.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=u)&&"none"===C.css(e,"float")&&(l||(d.done(function(){p.display=u}),null==u&&(c=p.display,u="none"===c?"":c)),p.display="inline-block")),n.overflow&&(p.overflow="hidden",d.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]})),l=!1,h)l||(m?"hidden"in m&&(g=m.hidden):m=X.access(e,"fxshow",{display:u}),o&&(m.hidden=!g),g&&le([e],!0),d.done(function(){for(i in g||le([e]),X.remove(e,"fxshow"),h)C.style(e,i,h[i])})),l=lt(g?m[i]:0,i,d),i in m||(m[i]=l.start,g&&(l.end=l.start,l.start=0))}],prefilter:function(e,t){t?ut.prefilters.unshift(e):ut.prefilters.push(e)}}),C.speed=function(e,t,n){var i=e&&"object"==typeof e?C.extend({},e):{complete:n||!n&&t||y(e)&&e,duration:e,easing:n&&t||t&&!y(t)&&t};return C.fx.off?i.duration=0:"number"!=typeof i.duration&&(i.duration in C.fx.speeds?i.duration=C.fx.speeds[i.duration]:i.duration=C.fx.speeds._default),null!=i.queue&&!0!==i.queue||(i.queue="fx"),i.old=i.complete,i.complete=function(){y(i.old)&&i.old.call(this),i.queue&&C.dequeue(this,i.queue)},i},C.fn.extend({fadeTo:function(e,t,n,i){return this.filter(re).css("opacity",0).show().end().animate({opacity:t},e,n,i)},animate:function(t,e,n,i){var r=C.isEmptyObject(t),o=C.speed(e,n,i),s=function(){var e=ut(this,C.extend({},t),o);(r||X.get(this,"finish"))&&e.stop(!0)};return s.finish=s,r||!1===o.queue?this.each(s):this.queue(o.queue,s)},stop:function(r,e,o){var s=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof r&&(o=e,e=r,r=void 0),e&&!1!==r&&this.queue(r||"fx",[]),this.each(function(){var e=!0,t=null!=r&&r+"queueHooks",n=C.timers,i=X.get(this);if(t)i[t]&&i[t].stop&&s(i[t]);else for(t in i)i[t]&&i[t].stop&&rt.test(t)&&s(i[t]);for(t=n.length;t--;)n[t].elem!==this||null!=r&&n[t].queue!==r||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||C.dequeue(this,r)})},finish:function(s){return!1!==s&&(s=s||"fx"),this.each(function(){var e,t=X.get(this),n=t[s+"queue"],i=t[s+"queueHooks"],r=C.timers,o=n?n.length:0;for(t.finish=!0,C.queue(this,s,[]),i&&i.stop&&i.stop.call(this,!0),e=r.length;e--;)r[e].elem===this&&r[e].queue===s&&(r[e].anim.stop(!0),r.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),C.each(["toggle","show","hide"],function(e,i){var r=C.fn[i];C.fn[i]=function(e,t,n){return null==e||"boolean"==typeof e?r.apply(this,arguments):this.animate(at(i,!0),e,t,n)}}),C.each({slideDown:at("show"),slideUp:at("hide"),slideToggle:at("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,i){C.fn[e]=function(e,t,n){return this.animate(i,e,t,n)}}),C.timers=[],C.fx.tick=function(){var e,t=0,n=C.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||C.fx.stop(),Ze=void 0},C.fx.timer=function(e){C.timers.push(e),C.fx.start()},C.fx.interval=13,C.fx.start=function(){et||(et=!0,ot())},C.fx.stop=function(){et=null},C.fx.speeds={slow:600,fast:200,_default:400},C.fn.delay=function(i,e){return i=C.fx&&C.fx.speeds[i]||i,e=e||"fx",this.queue(e,function(e,t){var n=x.setTimeout(e,i);t.stop=function(){x.clearTimeout(n)}})},tt=T.createElement("input"),nt=T.createElement("select").appendChild(T.createElement("option")),tt.type="checkbox",v.checkOn=""!==tt.value,v.optSelected=nt.selected,(tt=T.createElement("input")).value="t",tt.type="radio",v.radioValue="t"===tt.value;var ct,ft=C.expr.attrHandle;C.fn.extend({attr:function(e,t){return U(this,C.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){C.removeAttr(this,e)})}}),C.extend({attr:function(e,t,n){var i,r,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?C.prop(e,t,n):(1===o&&C.isXMLDoc(e)||(r=C.attrHooks[t.toLowerCase()]||(C.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void C.removeAttr(e,t):r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):r&&"get"in r&&null!==(i=r.get(e,t))?i:null==(i=C.find.attr(e,t))?void 0:i)},attrHooks:{type:{set:function(e,t){if(!v.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,i=0,r=t&&t.match(H);if(r&&1===e.nodeType)for(;n=r[i++];)e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?C.removeAttr(e,n):e.setAttribute(n,n),n}},C.each(C.expr.match.bool.source.match(/\w+/g),function(e,t){var s=ft[t]||C.find.attr;ft[t]=function(e,t,n){var i,r,o=t.toLowerCase();return n||(r=ft[o],ft[o]=i,i=null!=s(e,t,n)?o:null,ft[o]=r),i}});var dt=/^(?:input|select|textarea|button)$/i,ht=/^(?:a|area)$/i;function pt(e){return(e.match(H)||[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(H)||[]}C.fn.extend({prop:function(e,t){return U(this,C.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[C.propFix[e]||e]})}}),C.extend({prop:function(e,t,n){var i,r,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&C.isXMLDoc(e)||(t=C.propFix[t]||t,r=C.propHooks[t]),void 0!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:e[t]=n:r&&"get"in r&&null!==(i=r.get(e,t))?i:e[t]},propHooks:{tabIndex:{get:function(e){var t=C.find.attr(e,"tabindex");return t?parseInt(t,10):dt.test(e.nodeName)||ht.test(e.nodeName)&&e.href?
vendor: 2,807 bytes, line 1
10:-1}}},propFix:{for:"htmlFor",class:"className"}}),v.optSelected||(C.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),C.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){C.propFix[this.toLowerCase()]=this}),C.fn.extend({addClass:function(t){var e,n,i,r,o,s,a,l=0;if(y(t))return this.each(function(e){C(this).addClass(t.call(this,e,gt(this)))});if((e=mt(t)).length)for(;n=this[l++];)if(r=gt(n),i=1===n.nodeType&&" "+pt(r)+" "){for(s=0;o=e[s++];)i.indexOf(" "+o+" ")<0&&(i+=o+" ");r!==(a=pt(i))&&n.setAttribute("class",a)}return this},removeClass:function(t){var e,n,i,r,o,s,a,l=0;if(y(t))return this.each(function(e){C(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=mt(t)).length)for(;n=this[l++];)if(r=gt(n),i=1===n.nodeType&&" "+pt(r)+" "){for(s=0;o=e[s++];)for(;-1<i.indexOf(" "+o+" ");)i=i.replace(" "+o+" "," ");r!==(a=pt(i))&&n.setAttribute("class",a)}return this},toggleClass:function(r,t){var o=typeof r,s="string"===o||Array.isArray(r);return"boolean"==typeof t&&s?t?this.addClass(r):this.removeClass(r):y(r)?this.each(function(e){C(this).toggleClass(r.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,i;if(s)for(t=0,n=C(this),i=mt(r);e=i[t++];)n.hasClass(e)?n.removeClass(e):n.addClass(e);else void 0!==r&&"boolean"!==o||((e=gt(this))&&X.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===r?"":X.get(this,"__className__")||""))})},hasClass:function(e){var t,n,i=0;for(t=" "+e+" ";n=this[i++];)if(1===n.nodeType&&-1<(" "+pt(gt(n))+" ").indexOf(t))return!0;return!1}});var vt=/\r/g;C.fn.extend({val:function(n){var i,e,r,t=this[0];return arguments.length?(r=y(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=r?n.call(this,e,C(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=C.map(t,function(e){return null==e?"":e+""})),(i=C.valHooks[this.type]||C.valHooks[this.nodeName.toLowerCase()])&&"set"in i&&void 0!==i.set(this,t,"value")||(this.value=t))})):t?(i=C.valHooks[t.type]||C.valHooks[t.nodeName.toLowerCase()])&&"get"in i&&void 0!==(e=i.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(vt,""):null==e?"":e:void 0}}),C.extend({valHooks:{option:{get:function(e){var t=C.find.attr(e,"value");return null!=t?t:pt(C.text(e))}},select:{get:function(e){var t,n,i,r=e.options,o=e.selectedIndex,s="select-one"===e.type,a=s?null:[],l=s?o+1:r.length;for(i=o<0?l:s?o:0;i<l;i++)if(((n=r[i]).selected||i===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=C(n).val(),s)return t;a.push(t)}return a}
vendor: 12,755 bytes, line 1
1,set:function(e,t){for(var n,i,r=e.options,o=C.makeArray(t),s=r.length;s--;)((i=r[s]).selected=-1<C.inArray(C.valHooks.option.get(i),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),C.each(["radio","checkbox"],function(){C.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<C.inArray(C(e).val(),t)}},v.checkOn||(C.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),v.focusin="onfocusin"in x;var yt=/^(?:focusinfocus|focusoutblur)$/,_t=function(e){e.stopPropagation()};C.extend(C.event,{trigger:function(e,t,n,i){var r,o,s,a,l,u,c,f,d=[n||T],h=m.call(e,"type")?e.type:e,p=m.call(e,"namespace")?e.namespace.split("."):[];if(o=f=s=n=n||T,3!==n.nodeType&&8!==n.nodeType&&!yt.test(h+C.event.triggered)&&(-1<h.indexOf(".")&&(h=(p=h.split(".")).shift(),p.sort()),l=h.indexOf(":")<0&&"on"+h,(e=e[C.expando]?e:new C.Event(h,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=p.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:C.makeArray(t,[e]),c=C.event.special[h]||{},i||!c.trigger||!1!==c.trigger.apply(n,t))){if(!i&&!c.noBubble&&!_(n)){for(a=c.delegateType||h,yt.test(a+h)||(o=o.parentNode);o;o=o.parentNode)d.push(o),s=o;s===(n.ownerDocument||T)&&d.push(s.defaultView||s.parentWindow||x)}for(r=0;(o=d[r++])&&!e.isPropagationStopped();)f=o,e.type=1<r?a:c.bindType||h,(u=(X.get(o,"events")||{})[e.type]&&X.get(o,"handle"))&&u.apply(o,t),(u=l&&o[l])&&u.apply&&V(o)&&(e.result=u.apply(o,t),!1===e.result&&e.preventDefault());return e.type=h,i||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(d.pop(),t)||!V(n)||l&&y(n[h])&&!_(n)&&((s=n[l])&&(n[l]=null),C.event.triggered=h,e.isPropagationStopped()&&f.addEventListener(h,_t),n[h](),e.isPropagationStopped()&&f.removeEventListener(h,_t),C.event.triggered=void 0,s&&(n[l]=s)),e.result}},simulate:function(e,t,n){var i=C.extend(new C.Event,n,{type:e,isSimulated:!0});C.event.trigger(i,null,t)}}),C.fn.extend({trigger:function(e,t){return this.each(function(){C.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return C.event.trigger(e,t,n,!0)}}),v.focusin||C.each({focus:"focusin",blur:"focusout"},function(n,i){var r=function(e){C.event.simulate(i,e.target,C.event.fix(e))};C.event.special[i]={setup:function(){var e=this.ownerDocument||this,t=X.access(e,i);t||e.addEventListener(n,r,!0),X.access(e,i,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=X.access(e,i)-1;t?X.access(e,i,t):(e.removeEventListener(n,r,!0),X.remove(e,i))}}});var bt=x.location,wt=Date.now(),Et=/\?/;C.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new x.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||C.error("Invalid XML: "+e),t};var xt=/\[\]$/,Tt=/\r?\n/g,Ct=/^(?:submit|button|image|reset|file)$/i,St=/^(?:input|select|textarea|keygen)/i;function Dt(n,e,i,r){var t;if(Array.isArray(e))C.each(e,function(e,t){i||xt.test(n)?r(n,t):Dt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,i,r)});else if(i||"object"!==w(e))r(n,e);else for(t in e)Dt(n+"["+t+"]",e[t],i,r)}C.param=function(e,t){var n,i=[],r=function(e,t){var n=y(t)?t():t;i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!C.isPlainObject(e))C.each(e,function(){r(this.name,this.value)});else for(n in e)Dt(n,e[n],t,r);return i.join("&")},C.fn.extend({serialize:function(){return C.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=C.prop(this,"elements");return e?C.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!C(this).is(":disabled")&&St.test(this.nodeName)&&!Ct.test(e)&&(this.checked||!ue.test(e))}).map(function(e,t){var n=C(this).val();return null==n?null:Array.isArray(n)?C.map(n,function(e){return{name:t.name,value:e.replace(Tt,"\r\n")}}):{name:t.name,value:n.replace(Tt,"\r\n")}}).get()}});var At=/%20/g,Nt=/#.*$/,kt=/([?&])_=[^&]*/,It=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,jt=/^\/\//,Lt={},Pt={},Ht="*/".concat("*"),qt=T.createElement("a");function Mt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,i=0,r=e.toLowerCase().match(H)||[];if(y(t))for(;n=r[i++];)"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Rt(t,r,o,s){var a={},l=t===Pt;function u(e){var i;return a[e]=!0,C.each(t[e]||[],function(e,t){var n=t(r,o,s);return"string"!=typeof n||l||a[n]?l?!(i=n):void 0:(r.dataTypes.unshift(n),u(n),!1)}),i}return u(r.dataTypes[0])||!a["*"]&&u("*")}function Wt(e,t){var n,i,r=C.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((r[n]?e:i||(i={}))[n]=t[n]);return i&&C.extend(!0,e,i),e}qt.href=bt.href,C.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ht,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":C.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Wt(Wt(e,C.ajaxSettings),t):Wt(C.ajaxSettings,e)},ajaxPrefilter:Mt(Lt),ajaxTransport:Mt(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,d,n,h,i,p,g,r,o,m=C.ajaxSetup({},t),v=m.context||m,y=m.context&&(v.nodeType||v.jquery)?C(v):C.event,_=C.Deferred(),b=C.Callbacks("once memory"),w=m.statusCode||{},s={},a={},l="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(p){if(!n)for(n={};t=It.exec(d);)n[t[1].toLowerCase()]=t[2];t=n[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return p?d:null},setRequestHeader:function(e,t){return null==p&&(e=a[e.toLowerCase()]=a[e.toLowerCase()]||e,s[e]=t),this},overrideMimeType:function(e){return null==p&&(m.mimeType=e),this},statusCode:function(e){var t;if(e)if(p)E.always(e[E.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||l;return c&&c.abort(t),u(0,t),this}};if(_.promise(E),m.url=((e||m.url||bt.href)+"").replace(jt,bt.protocol+"//"),m.type=t.method||t.type||m.method||m.type,m.dataTypes=(m.dataType||"*").toLowerCase().match(H)||[""],null==m.crossDomain){i=T.createElement("a");try{i.href=m.url,i.href=i.href,m.crossDomain=qt.protocol+"//"+qt.host!=i.protocol+"//"+i.host}catch(e){m.crossDomain=!0}}if(m.data&&m.processData&&"string"!=typeof m.data&&(m.data=C.param(m.data,m.traditional)),Rt(Lt,m,t,E),p)return E;for(r in(g=C.event&&m.global)&&0==C.active++&&C.event.trigger("ajaxStart"),m.type=m.type.toUpperCase(),m.hasContent=!Ot.test(m.type),f=m.url.replace(Nt,""),m.hasContent?m.data&&m.processData&&0===(m.contentType||"").indexOf("application/x-www-form-urlencoded")&&(m.data=m.data.replace(At,"+")):(o=m.url.slice(f.length),m.data&&(m.processData||"string"==typeof m.data)&&(f+=(Et.test(f)?"&":"?")+m.data,delete m.data),!1===m.cache&&(f=f.replace(kt,"$1"),o=(Et.test(f)?"&":"?")+"_="+wt+++o),m.url=f+o),m.ifModified&&(C.lastModified[f]&&E.setRequestHeader("If-Modified-Since",C.lastModified[f]),C.etag[f]&&E.setRequestHeader("If-None-Match",C.etag[f])),(m.data&&m.hasContent&&!1!==m.contentType||t.contentType)&&E.setRequestHeader("Content-Type",m.contentType),E.setRequestHeader("Accept",m.dataTypes[0]&&m.accepts[m.dataTypes[0]]?m.accepts[m.dataTypes[0]]+("*"!==m.dataTypes[0]?", "+Ht+"; q=0.01":""):m.accepts["*"]),m.headers)E.setRequestHeader(r,m.headers[r]);if(m.beforeSend&&(!1===m.beforeSend.call(v,E,m)||p))return E.abort();if(l="abort",b.add(m.complete),E.done(m.success),E.fail(m.error),c=Rt(Pt,m,t,E)){if(E.readyState=1,g&&y.trigger("ajaxSend",[E,m]),p)return E;m.async&&0<m.timeout&&(h=x.setTimeout(function(){E.abort("timeout")},m.timeout));try{p=!1,c.send(s,u)}catch(e){if(p)throw e;u(-1,e)}}else u(-1,"No Transport");function u(e,t,n,i){var r,o,s,a,l,u=t;p||(p=!0,h&&x.clearTimeout(h),c=void 0,d=i||"",E.readyState=0<e?4:0,r=200<=e&&e<300||304===e,n&&(a=function(e,t,n){for(var i,r,o,s,a=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(r in a)if(a[r]&&a[r].test(i)){l.unshift(r);break}if(l[0]in n)o=l[0];else{for(r in n){if(!l[0]||e.converters[r+" "+l[0]]){o=r;break}s||(s=r)}o=o||s}if(o)return o!==l[0]&&l.unshift(o),n[o]}(m,E,n)),a=function(e,t,n,i){var r,o,s,a,l,u={},c=e.dataTypes.slice();if(c[1])for(s in e.converters)u[s.toLowerCase()]=e.converters[s];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&i&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(!(s=u[l+" "+o]||u["* "+o]))for(r in u)if((a=r.split(" "))[1]===o&&(s=u[l+" "+a[0]]||u["* "+a[0]])){!0===s?s=u[r]:!0!==u[r]&&(o=a[0],c.unshift(a[1]));break}if(!0!==s)if(s&&e.throws)t=s(t);else try{t=s(t)}catch(e){return{state:"parsererror",error:s?e:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}(m,a,E,r),r?(m.ifModified&&((l=E.getResponseHeader("Last-Modified"))&&(C.lastModified[f]=l),(l=E.getResponseHeader("etag"))&&(C.etag[f]=l)),204===e||"HEAD"===m.type?u="nocontent":304===e?u="notmodified":(u=a.state,o=a.data,r=!(s=a.error))):(s=u,!e&&u||(u="error",e<0&&(e=0))),E.status=e,E.statusText=(t||u)+"",r?_.resolveWith(v,[o,u,E]):_.rejectWith(v,[E,u,s]),E.statusCode(w),w=void 0,g&&y.trigger(r?"ajaxSuccess":"ajaxError",[E,m,r?o:s]),b.fireWith(v,[E,u]),g&&(y.trigger("ajaxComplete",[E,m]),--C.active||C.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return C.get(e,t,n,"json")},getScript:function(e,t){return C.get(e,void 0,t,"script")}}),C.each(["get","post"],function(e,r){C[r]=function(e,t,n,i){return y(t)&&(i=i||n,n=t,t=void 0),C.ajax(C.extend({url:e,type:r,dataType:i,data:t,success:n},C.isPlainObject(e)&&e))}}),C._evalUrl=function(e){return C.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},C.fn.extend({wrapAll:function(e){var t;return this[0]&&(y(e)&&(e=e.call(this[0])),t=C(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return y(n)?this.each(function(e){C(this).wrapInner(n.call(this,e))}):this.each(function(){var e=C(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=y(t);return this.each(function(e){C(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){C(this).replaceWith(this.childNodes)}),this}}),C.expr.pseudos.hidden=function(e){return!C.expr.pseudos.visible(e)},C.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},C.ajaxSettings.xhr=function(){try{return new x.XMLHttpRequest}catch(e){}};var Ft={0:200,1223:204},Bt=C.ajaxSettings.xhr();v.cors=!!Bt&&"withCredentials"in Bt,v.ajax=Bt=!!Bt,C.ajaxTransport(function(r){var o,s;if(v.cors||Bt&&!r.crossDomain)return{send:function(e,t){var n,i=r.xhr();if(i.open(r.type,r.url,r.async,r.username,r.password),r.xhrFields)for(n in r.xhrFields)i[n]=r.xhrFields[n];for(n in r.mimeType&&i.overrideMimeType&&i.overrideMimeType(r.mimeType),r.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)i.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=s=i.onload=i.onerror=i.onabort=i.ontimeout=i.onreadystatechange=null,"abort"===e?i.abort():"error"===e?"number"!=typeof i.status?t(0,"error"):t(i.status,i.statusText):t(Ft[i.status]||i.status,i.statusText,"text"!==(i.responseType||"text")||"string"!=typeof i.responseText?{binary:i.response}:{text:i.responseText},i.getAllResponseHeaders()))}},i.onload=o(),s=i.onerror=i.ontimeout=o("error"),void 0!==i.onabort?i.onabort=s:i.onreadystatechange=function(){4===i.readyState&&x.setTimeout(function(){o&&s()})},o=o("abort");try{i.send(r.hasContent&&r.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),C.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),C.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return C.globalEval(e),e}}}),C.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),C.ajaxTransport("script",function(n){var i,r;if(n.crossDomain)return{send:function(e,t){i=C("<script>
1").prop({charset:n.scriptCharset,src:n.url}).on("load error",r=function(e){i.remove(),r=null,e&&t("error"===e.type?404:200,e.type)}),T.head.appendChild(i[0])},abort:function(){r&&r()}}});var Ut,Kt=[],$t=/(=)\?(?=&|$)|\?\?/;C.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||C.expando+"_"+wt++;return this[e]=!0,e}}),C.ajaxPrefilter("json jsonp",function(e,t,n){var i,r,o,s=!1!==e.jsonp&&($t.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&$t.test(e.data)&&"data");if(s||"jsonp"===e.dataTypes[0])return i=e.jsonpCallback=y(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace($t,"$1"+i):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+i),e.converters["script json"]=function(){return o||C.error(i+" was not called"),o[0]},e.dataTypes[0]="json",r=x[i],x[i]=function(){o=arguments},n.always(function(){void 0===r?C(x).removeProp(i):x[i]=r,e[i]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(i)),o&&y(r)&&r(o[0]),o=r=void 0}),"script"}),v.createHTMLDocument=((Ut=T.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),C.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((i=(t=T.implementation.createHTMLDocument("")).createElement("base")).href=T.location.href,t.head.appendChild(i)):t=T),o=!n&&[],(r=N.exec(e))?[t.createElement(r[1])]:(r=ye([e],t,o),o&&o.length&&C(o).remove(),C.merge([],r.childNodes)));var i,r,o},C.fn.load=function(e,t,n){var i,r,o,s=this,a=e.indexOf(" ");return-1<a&&(i=pt(e.slice(a)),e=e.slice(0,a)),y(t)?(n=t,t=void 0):t&&"object"==typeof t&&(r="POST"),0<s.length&&C.ajax({url:e,type:r||"GET",dataType:"html",data:t}).done(function(e){o=arguments,s.html(i?C("<div>").append(C.parseHTML(e)).find(i):e)}).always(n&&function(e,t){s.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},C.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){C.fn[t]=function(e){return this.on(t,e)}}),C.expr.pseudos.animated=function(t){return C.grep(C.timers,function(e){return t===e.elem}).length},C.offset={setOffset:function(e,t,n){var i,r,o,s,a,l,u=C.css(e,"position"),c=C(e),f={};"static"===u&&(e.style.position="relative"),a=c.offset(),o=C.css(e,"top"),l=C.css(e,"left"),("absolute"===u||"fixed"===u)&&-1<(o+l).indexOf("auto")?(s=(i=c.position()).top,r=i.left):(s=parseFloat(o)||0,r=parseFloat(l)||0),y(t)&&(t=t.call(e,n,C.extend({},a))),null!=t.top&&(f.top=t.top-a.top+s),null!=t.left&&(f.left=t.left-a.left+r),"using"in t?t.using.call(e,f):c.css(f)}},C.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){C.offset.setOffset(this,t,e)});var e,n,i=this[0];return i?i.getClientRects().length?(e=i.getBoundingClientRect(),n=i.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,i=this[0],r={top:0,left:0};if("fixed"===C.css(i,"position"))t=i.getBoundingClientRect();else{for(t=this.offset(),n=i.ownerDocument,e=i.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===C.css(e,"position");)e=e.parentNode;e&&e!==i&&1===e.nodeType&&((r=C(e).offset()).top+=C.css(e,"borderTopWidth",!0),r.left+=C.css(e,"borderLeftWidth",!0))}return{top:t.top-r.top-C.css(i,"marginTop",!0),left:t.left-r.left-C.css(i,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===C.css(e,"position");)e=e.offsetParent;return e||_e})}}),C.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,r){var o="pageYOffset"===r;C.fn[t]=function(e){return U(this,function(e,t,n){var i;if(_(e)?i=e:9===e.nodeType&&(i=e.defaultView),void 0===n)return i?i[r]:e[t];i?i.scrollTo(o?i.pageXOffset:n,o?n:i.pageYOffset):e[t]=n},t,e,arguments.length)}}),C.each(["top","left"],function(e,n){C.cssHooks[n]=Fe(v.pixelPosition,function(e,t){if(t)return t=We(e,n),qe.test(t)?C(e).position()[n]+"px":t})}),C.each({Height:"height",Width:"width"},function(s,a){C.each({padding:"inner"+s,content:a,"":"outer"+s},function(i,o){C.fn[o]=function(e,t){var n=arguments.length&&(i||"boolean"!=typeof e),r=i||(!0===e||!0===t?"margin":"border");return U(this,function(e,t,n){var i;return _(e)?0===o.indexOf("outer")?e["inner"+s]:e.document.documentElement["client"+s]:9===e.nodeType?(i=e.documentElement,Math.max(e.body["scroll"+s],i["scroll"+s],e.body["offset"+s],i["offset"+s],i["client"+s])):void 0===n?C.css(e,t,r):C.style(e,t,n,r)},a,n?e:void 0,n)}})}),C.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){C.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),C.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),C.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,i){return this.on(t,e,n,i)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),C.proxy=function(e,t){var n,i,r;if("string"==typeof t&&(n=e[t],t=e,e=n),y(e))return i=a.call(arguments,2),(r=function(){return e.apply(t||this,i.concat(a.call(arguments)))}).guid=e.guid=e.guid||C.guid++,r},C.holdReady=function(e){e?C.readyWait++:C.ready(!0)},C.isArray=Array.isArray,C.parseJSON=JSON.parse,C.nodeName=A,C.isFunction=y,C.isWindow=_,C.camel
1Case=Y,C.type=w,C.now=Date.now,C.isNumeric=function(e){var t=C.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return C});var Qt=x.jQuery,Yt=x.$;return C.noConflict=function(e){return x.$===C&&(x.$=Yt),e&&x.jQuery===C&&(x.jQuery=Qt),C},e||(x.jQuery=x.$=C),C}),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Popper=t()}(this,function(){"use strict";for(var e="undefined"!=typeof window&&"undefined"!=typeof document,t=["Edge","Trident","Firefox"],n=0,i=0;i<t.length;i+=1)if(e&&0<=navigator.userAgent.indexOf(t[i])){n=1;break}var s=e&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},n))}};function a(e){return e&&"[object Function]"==={}.toString.call(e)}function b(e,t){if(1!==e.nodeType)return[];var n=getComputedStyle(e,null);return t?n[t]:n}function h(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function p(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=b(e),n=t.overflow,i=t.overflowX,r=t.overflowY;return/(auto|scroll|overlay)/.test(n+r+i)?e:p(h(e))}var r=e&&!(!window.MSInputMethodContext||!document.documentMode),o=e&&/MSIE 10/.test(navigator.userAgent);function g(e){return 11===e?r:10===e?o:r||o}function _(e){if(!e)return document.documentElement;for(var t=g(10)?document.body:null,n=e.offsetParent;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TD","TABLE"].indexOf(n.nodeName)&&"static"===b(n,"position")?_(n):n:e?e.ownerDocument.documentElement:document.documentElement}function c(e){return null!==e.parentNode?c(e.parentNode):e}function m(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?e:t,r=n?t:e,o=document.createRange();o.setStart(i,0),o.setEnd(r,0);var s,a,l=o.commonAncestorContainer;if(e!==l&&t!==l||i.contains(r))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&_(s.firstElementChild)!==s?_(l):l;var u=c(e);return u.host?m(u.host,t):m(e,c(t).host)}function v(e){var t="top"===(1<arguments.length&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=e.nodeName;if("BODY"===n||"HTML"===n){var i=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||i)[t]}return e[t]}function f(e,t){var n="x"===t?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"],10)+parseFloat(e["border"+i+"Width"],10)}function l(e,t,n,i){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],g(10)?parseInt(n["offset"+e])+parseInt(i["margin"+("Height"===e?"Top":"Left")])+parseInt(i["margin"+("Height"===e?"Bottom":"Right")]):0)}function y(e){var t=e.body,n=e.documentElement,i=g(10)&&getComputedStyle(n);return{height:l("Height",t,n,i),width:l("Width",t,n,i)}}var u=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}(),w=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},E=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e};function x(e){return E({},e,{right:e.left+e.width,bottom:e.top+e.height})}function T(e){var t={};try{if(g(10)){t=e.getBoundingClientRect();var n=v(e,"top"),i=v(e,"left");t.top+=n,t.left+=i,t.bottom+=n,t.right+=i}else t=e.getBoundingClientRect()}catch(e){}var r={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top},o="HTML"===e.nodeName?y(e.ownerDocument):{},s=o.width||e.clientWidth||r.right-r.left,a=o.height||e.clientHeight||r.bottom-r.top,l=e.offsetWidth-s,u=e.offsetHeight-a;if(l||u){var c=b(e);l-=f(c,"x"),u-=f(c,"y"),r.width-=l,r.height-=u}return x(r)}function C(e,t){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=g(10),r="HTML"===t.nodeName,o=T(e),s=T(t),a=p(e),l=b(t),u=parseFloat(l.borderTopWidth,10),c=parseFloat(l.borderLeftWidth,10);n&&r&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var f=x({top:o.top-s.top-u,left:o.left-s.left-c,width:o.width,height:o.height});
vendor: 9,088 bytes, line 1
1if(f.marginTop=0,f.marginLeft=0,!i&&r){var d=parseFloat(l.marginTop,10),h=parseFloat(l.marginLeft,10);f.top-=u-d,f.bottom-=u-d,f.left-=c-h,f.right-=c-h,f.marginTop=d,f.marginLeft=h}return(i&&!n?t.contains(a):t===a&&"BODY"!==a.nodeName)&&(f=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=v(t,"top"),r=v(t,"left"),o=n?-1:1;return e.top+=i*o,e.bottom+=i*o,e.left+=r*o,e.right+=r*o,e}(f,t)),f}function S(e){if(!e||!e.parentElement||g())return document.documentElement;for(var t=e.parentElement;t&&"none"===b(t,"transform");)t=t.parentElement;return t||document.documentElement}function d(e,t,n,i){var r=4<arguments.length&&void 0!==arguments[4]&&arguments[4],o={top:0,left:0},s=r?S(e):m(e,t);if("viewport"===i)o=function(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,i=C(e,n),r=Math.max(n.clientWidth,window.innerWidth||0),o=Math.max(n.clientHeight,window.innerHeight||0),s=t?0:v(n),a=t?0:v(n,"left");return x({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:r,height:o})}(s,r);else{var a=void 0;"scrollParent"===i?"BODY"===(a=p(h(t))).nodeName&&(a=e.ownerDocument.documentElement):a="window"===i?e.ownerDocument.documentElement:i;var l=C(a,s,r);if("HTML"!==a.nodeName||function e(t){var n=t.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===b(t,"position")||e(h(t)))}(s))o=l;else{var u=y(e.ownerDocument),c=u.height,f=u.width;o.top+=l.top-l.marginTop,o.bottom=c+l.top,o.left+=l.left-l.marginLeft,o.right=f+l.left}}var d="number"==typeof(n=n||0);return o.left+=d?n:n.left||0,o.top+=d?n:n.top||0,o.right-=d?n:n.right||0,o.bottom-=d?n:n.bottom||0,o}function D(e,t,i,n,r){var o=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var s=d(i,n,o,r),a={top:{width:s.width,height:t.top-s.top},right:{width:s.right-t.right,height:s.height},bottom:{width:s.width,height:s.bottom-t.bottom},left:{width:t.left-s.left,height:s.height}},l=Object.keys(a).map(function(e){return E({key:e},a[e],{area:(t=a[e],t.width*t.height)});var t}).sort(function(e,t){return t.area-e.area}),u=l.filter(function(e){var t=e.width,n=e.height;return t>=i.clientWidth&&n>=i.clientHeight}),c=0<u.length?u[0].key:l[0].key,f=e.split("-")[1];return c+(f?"-"+f:"")}function A(e,t,n){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return C(n,i?S(t):m(t,n),i)}function N(e){var t=getComputedStyle(e),n=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight);return{width:e.offsetWidth+i,height:e.offsetHeight+n}}function k(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function I(e,t,n){n=n.split("-")[0];var i=N(e),r={width:i.width,height:i.height},o=-1!==["right","left"].indexOf(n),s=o?"top":"left",a=o?"left":"top",l=o?"height":"width",u=o?"width":"height";return r[s]=t[s]+t[l]/2-i[l]/2,r[a]=n===a?t[a]-i[u]:t[k(a)],r}function O(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function j(e,n,t){return(void 0===t?e:e.slice(0,function(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===n});var i=O(e,function(e){return e[t]===n});return e.indexOf(i)}(e,"name",t))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var t=e.function||e.fn;e.enabled&&a(t)&&(n.offsets.popper=x(n.offsets.popper),n.offsets.reference=x(n.offsets.reference),n=t(n,e))}),n}function L(e,n){return e.some(function(e){var t=e.name;return e.enabled&&t===n})}function P(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),i=0;i<t.length;i++){var r=t[i],o=r?""+r+n:e;if(void 0!==document.body.style[o])return o}return null}function H(e){var t=e.ownerDocument;return t?t.defaultView:window}function q(e,t,n,i){n.updateBound=i,H(e).addEventListener("resize",n.updateBound,{passive:!0});var r=p(e);return function e(t,n,i,r){var o="BODY"===t.nodeName,s=o?t.ownerDocument.defaultView:t;s.addEventListener(n,i,{passive:!0}),o||e(p(s.parentNode),n,i,r),r.push(s)}(r,"scroll",n.updateBound,n.scrollParents),n.scrollElement=r,n.eventsEnabled=!0,n}function M(){var e,t;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(e=this.reference,t=this.state,H(e).removeEventListener("resize",t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener("scroll",t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t))}function R(e){return""!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function W(n,i){Object.keys(i).forEach(function(e){var t="";-1!==["width","height","top","right","bottom","left"].indexOf(e)&&R(i[e])&&(t="px"),n.style[e]=i[e]+t})}function F(e,t,n){var i=O(e,function(e){return e.name===t}),r=!!i&&e.some(function(e){return e.name===n&&e.enabled&&e.order<i.order});if(!r){var o="`"+t+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+o+" modifier in order to work, be sure to include it before "+o+"!")}return r}var B=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],U=B.slice(3);function K(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=U.indexOf(e),i=U.slice(n+1).concat(U.slice(0,n));return t?i.reverse():i}var $="flip",Q="clockwise",Y="counterclockwise";function V(e,r,o,t){var s=[0,0],a=-1!==["right","left"].indexOf(t),n=e.split(/(\+|\-)/).map(function(e){return e.trim()}),i=n.indexOf(O(n,function(e){return-1!==e.search(/,|\s/)}));n[i]&&-1===n[i].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,u=-1!==i?[n.slice(0,i).concat([n[i].split(l)[0]]),[n[i].split(l)[1]].concat(n.slice(i+1))]:[n];return(u=u.map(function(e,t){var n=(1===t?!a:a)?"height":"width",i=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,i=!0,e):i?(e[e.length-1]+=t,i=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,n,i){var r=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+r[1],s=r[2];if(!o)return e;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return x(a)[t]/100*o}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o;return o}(e,n,r,o)})})).forEach(function(n,i){n.forEach(function(e,t){R(e)&&(s[i]+=e*("-"===n[t-1]?-1:1))})}),s}var z={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,n=t.split("-")[0],i=t.split("-")[1];if(i){var r=e.offsets,o=r.reference,s=r.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",u=a?"width":"height",c={start:w({},l,o[l]),end:w({},l,o[l]+o[u]-s[u])};e.offsets.popper=E({},s,c[i])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var n=t.offset,i=e.placement,r=e.offsets,o=r.popper,s=r.reference,a=i.split("-")[0],l=void 0;return l=R(+n)?[+n,0]:V(n,o,s,a),"left"===a?(o.top+=l[0],o.left-=l[1]):"right"===a?(o.top+=l[0],o.left+=l[1]):"top"===a?(o.left+=l[0],o.top-=l[1]):"bottom"===a&&(o.left+=l[0],o.top+=l[1]),e.popper=o,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,i){var t=i.boundariesElement||_(e.instance.popper);e.instance.reference===t&&(t=_(t));var n=P("transform"),r=e.instance.popper.style,o=r.top,s=r.left,a=r[n];r.top="",r.left="",r[n]="";var l=d(e.instance.popper,e.instance.reference,i.padding,t,e.positionFixed);r.top=o,r.left=s,r[n]=a,i.boundaries=l;var u=i.priority,c=e.offsets.popper,f={primary:function(e){var t=c[e];return c[e]<l[e]&&!i.escapeWithReference&&(t=Math.max(c[e],l[e])),w({},e,t)},secondary:function(e){var t="right"===e?"left":"top",n=c[t];return c[e]>l[e]&&!i.escapeWithReference&&(n=Math.min(c[t],l[e]-("right"===e?c.width:c.height))),w({},t,n)}};return u.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";c=E({},c,f[t](e))}),e.offsets.popper=c,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,i=t.reference,r=e.placement.split("-")[0],o=Math.floor,s=-1!==["top","bottom"].indexOf(r),a=s?"right":"bottom",l=s?"left":"top",u=s?"width":"height";return n[a]<o(i[l])&&(e.offsets.popper[l]=o(i[l])-n[u]),n[l]>o(i[a])&&(e.offsets.popper[l]=o(i[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!F(e.instance.modifiers,"arrow","keepTogether"))return e;var i=t.element;if("string"==typeof i){if(!(i=e.instance.popper.querySelector(i)))return e}else if(!e.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],o=e.offsets,s=o.popper,a=o.reference,l=-1!==["left","right"].indexOf(r),u=l?"height":"width",c=l?"Top":"Left",f=c.toLowerCase(),d=l?"left"
vendor: 4,711 bytes, line 1
1:"top",h=l?"bottom":"right",p=N(i)[u];a[h]-p<s[f]&&(e.offsets.popper[f]-=s[f]-(a[h]-p)),a[f]+p>s[h]&&(e.offsets.popper[f]+=a[f]+p-s[h]),e.offsets.popper=x(e.offsets.popper);var g=a[f]+a[u]/2-p/2,m=b(e.instance.popper),v=parseFloat(m["margin"+c],10),y=parseFloat(m["border"+c+"Width"],10),_=g-e.offsets.popper[f]-v-y;return _=Math.max(Math.min(s[u]-p,_),0),e.arrowElement=i,e.offsets.arrow=(w(n={},f,Math.round(_)),w(n,d,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(p,g){if(L(p.instance.modifiers,"inner"))return p;if(p.flipped&&p.placement===p.originalPlacement)return p;var m=d(p.instance.popper,p.instance.reference,g.padding,g.boundariesElement,p.positionFixed),v=p.placement.split("-")[0],y=k(v),_=p.placement.split("-")[1]||"",b=[];switch(g.behavior){case $:b=[v,y];break;case Q:b=K(v);break;case Y:b=K(v,!0);break;default:b=g.behavior}return b.forEach(function(e,t){if(v!==e||b.length===t+1)return p;v=p.placement.split("-")[0],y=k(v);var n,i=p.offsets.popper,r=p.offsets.reference,o=Math.floor,s="left"===v&&o(i.right)>o(r.left)||"right"===v&&o(i.left)<o(r.right)||"top"===v&&o(i.bottom)>o(r.top)||"bottom"===v&&o(i.top)<o(r.bottom),a=o(i.left)<o(m.left),l=o(i.right)>o(m.right),u=o(i.top)<o(m.top),c=o(i.bottom)>o(m.bottom),f="left"===v&&a||"right"===v&&l||"top"===v&&u||"bottom"===v&&c,d=-1!==["top","bottom"].indexOf(v),h=!!g.flipVariations&&(d&&"start"===_&&a||d&&"end"===_&&l||!d&&"start"===_&&u||!d&&"end"===_&&c);(s||f||h)&&(p.flipped=!0,(s||f)&&(v=b[t+1]),h&&(_="end"===(n=_)?"start":"start"===n?"end":n),p.placement=v+(_?"-"+_:""),p.offsets.popper=E({},p.offsets.popper,I(p.instance.popper,p.offsets.reference,p.placement)),p=j(p.instance.modifiers,p,"flip"))}),p},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],i=e.offsets,r=i.popper,o=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return r[s?"left":"top"]=o[n]-(a?r[s?"width":"height"]:0),e.placement=k(t),e.offsets.popper=x(r),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=O(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottom<n.top||t.left>n.right||t.top>n.bottom||t.right<n.left){if(!0===e.hide)return e;e.hide=!0,e.attributes["x-out-of-boundaries"]=""}else{if(!1===e.hide)return e;e.hide=!1,e.attributes["x-out-of-boundaries"]=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var n=t.x,i=t.y,r=e.offsets.popper,o=O(e.instance.modifiers,function(e){return"applyStyle"===e.name}).gpuAcceleration;void 0!==o&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==o?o:t.gpuAcceleration,a=_(e.instance.popper),l=T(a),u={position:r.position},c={left:Math.floor(r.left),top:Math.round(r.top),bottom:Math.round(r.bottom),right:Math.floor(r.right)},f="bottom"===n?"top":"bottom",d="right"===i?"left":"right",h=P("transform"),p=void 0,g=void 0;if(g="bottom"===f?"HTML"===a.nodeName?-a.clientHeight+c.bottom:-l.height+c.bottom:c.top,p="right"===d?"HTML"===a.nodeName?-a.clientWidth+c.right:-l.width+c.right:c.left,s&&h)u[h]="translate3d("+p+"px, "+g+"px, 0)",u[f]=0,u[d]=0,u.willChange="transform";else{var m="bottom"===f?-1:1,v="right"===d?-1:1;u[f]=g*m,u[d]=p*v,u.willChange=f+", "+d}var y={"x-placement":e.placement};return e.attributes=E({},y,e.attributes),e.styles=E({},u,e.styles),e.arrowStyles=E({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(e){var t,n;return W(e.instance.popper,e.styles),t=e.instance.popper,n=e.attributes,Object.keys(n).forEach(function(e){!1!==n[e]?t.setAttribute(e,n[e]):t.removeAttribute(e)}),e.arrowElement&&Object.keys(e.arrowStyles).length&&W(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,n,i,r){var o=A(r,t,e,n.positionFixed),s=D(n.placement,o,t,e,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return t.setAttribute("x-placement",s),W(t,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},X=function(){function o(e,t){var n=this,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=s(this.update.bind(this)),this.options=E({},o.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=t&&t.jquery?t[0]:t,this.options.modifiers={},Object.keys(E({}
1,o.Defaults.modifiers,i.modifiers)).forEach(function(e){n.options.modifiers[e]=E({},o.Defaults.modifiers[e]||{},i.modifiers?i.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return E({name:e},n.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&a(e.onLoad)&&e.onLoad(n.reference,n.popper,n.options,e,n.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return u(o,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=A(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=D(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=I(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=j(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,L(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[P("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=q(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return M.call(this)}}]),o}();return X.Utils=("undefined"!=typeof window?window:global).PopperUtils,X.placements=B,X.Defaults=z,X}),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],t):t(e.bootstrap={},e.jQuery,e.Popper)}(this,function(e,t,c){"use strict";function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function s(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}function l(r){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},t=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),t.forEach(function(e){var t,n,i;t=r,i=o[n=e],n in t?Object.defineProperty(t,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[n]=i})}return r}t=t&&t.hasOwnProperty("default")?t.default:t,c=c&&c.hasOwnProperty("default")?c.default:c;var r,n,o,a,u,f,d,h,p,g,m,v,y,_,b,w,E,x,T,C,S,D,A,N,k,I,O,j,L,P,H,q,M,R,W,F,B,U,K,$,Q,Y,V,z,X,G,J,Z,ee,te,ne,ie,re,oe,se,ae,le,ue,ce,fe,de,he,pe,ge,me,ve,ye,_e,be,we,Ee,xe,Te,Ce,Se,De,Ae,Ne,ke,Ie,Oe,je,Le,Pe,He,qe,Me,Re,We,Fe,Be,Ue,Ke,$e,Qe,Ye,Ve,ze,Xe,Ge,Je,Ze,et,tt,nt,it,rt,ot,st,at,lt,ut,ct,ft,dt,ht,pt,gt,mt,vt,yt,_t,bt,wt,Et,xt,Tt,Ct,St,Dt,At,Nt,kt,It,Ot,jt,Lt,Pt,Ht,qt,Mt,Rt,Wt,Ft,Bt,Ut,Kt,$t,Qt,Yt,Vt,zt,Xt,Gt,Jt,Zt,en,tn,nn,rn,on,sn,an,ln,un,cn,fn,dn,hn,pn,gn,mn,vn,yn,_n,bn,wn,En,xn,Tn,Cn,Sn,Dn,An,Nn,kn,In,On,jn,Ln,Pn,Hn,qn,Mn,Rn,Wn,Fn=function(i){var t="transitionend";function e(e){var t=this,n=!1;return i(this).one(l.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||l.triggerTransitionEnd(t)},e),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(e){for(;e+=~~(1e6*Math.random()),document.getElementById(e););return e},getSelectorFromElement:function(e){var t=e.getAttribute("data-target");t&&"#"!==t||(t=e.getAttribute("href")||"");try{return document.querySelector(t)?t:null}catch(e){return null}},getTransitionDurationFromElement:function(e){if(!e)return 0;var t=i(e).css("transition-duration");return parseFloat(t)?(t=t.split(",")[0],1e3*parseFloat(t)):0},reflow:function(e){return e.offsetHeight},triggerTransitionEnd:function(e){i(e).trigger(t)},supportsTransitionEnd:function(){return Boolean(t)},isElement:function(e){return(e[0]||e).nodeType},typeCheckConfig:function(e,t,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i],o=t[i],s=o&&l.isElement(o)?"element":(a=o,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(s))throw new Error(e.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+r+'".')}var a}};return i.fn.emulateTransitionEnd=e,i.event.special[l.TRANSITION_END]={bindType:t,delegateType:t,handle:function(e){if(i(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}},l}(t),Bn=(n="alert",a="."+(o="bs.alert"),u=(r=t).fn[n],f={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},d="alert",h="fade",p="show",g=function(){function i(e){this._element=e}var e=i.prototype;return e.close=function(e){var t=this._element;e&&(t=this._getRootElement(e)),this._triggerCloseEvent(t).isDefaultPrevented()||this._removeElement(t)},e.dispose=function(){r.removeData(this._element,o),this._element=null},e._getRootElement=function(e){var t=Fn.getSelectorFromElement(e),n=!1;return t&&(n=document.querySelector(t)),n||(n=r(e).closest("."+d
1)[0]),n},e._triggerCloseEvent=function(e){var t=r.Event(f.CLOSE);return r(e).trigger(t),t},e._removeElement=function(t){var n=this;if(r(t).removeClass(p),r(t).hasClass(h)){var e=Fn.getTransitionDurationFromElement(t);r(t).one(Fn.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(e)}else this._destroyElement(t)},e._destroyElement=function(e){r(e).detach().trigger(f.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var e=r(this),t=e.data(o);t||(t=new i(this),e.data(o,t)),"close"===n&&t[n](this)})},i._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}}]),i}(),r(document).on(f.CLICK_DATA_API,'[data-dismiss="alert"]',g._handleDismiss(new g)),r.fn[n]=g._jQueryInterface,r.fn[n].Constructor=g,r.fn[n].noConflict=function(){return r.fn[n]=u,g._jQueryInterface},g),Un=(v="button",_="."+(y="bs.button"),b=".data-api",w=(m=t).fn[v],E="active",x="btn",C='[data-toggle^="button"]',S='[data-toggle="buttons"]',D="input",A=".active",N=".btn",k={CLICK_DATA_API:"click"+_+b,FOCUS_BLUR_DATA_API:(T="focus")+_+b+" blur"+_+b},I=function(){function n(e){this._element=e}var e=n.prototype;return e.toggle=function(){var e=!0,t=!0,n=m(this._element).closest(S)[0];if(n){var i=this._element.querySelector(D);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(E))e=!1;else{var r=n.querySelector(A);r&&m(r).removeClass(E)}if(e){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(E),m(i).trigger("change")}i.focus(),t=!1}}t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(E)),e&&m(this._element).toggleClass(E)},e.dispose=function(){m.removeData(this._element,y),this._element=null},n._jQueryInterface=function(t){return this.each(function(){var e=m(this).data(y);e||(e=new n(this),m(this).data(y,e)),"toggle"===t&&e[t]()})},s(n,null,[{key:"VERSION",get:function(){return"4.1.3"}}]),n}(),m(document).on(k.CLICK_DATA_API,C,function(e){e.preventDefault();var t=e.target;m(t).hasClass(x)||(t=m(t).closest(N)),I._jQueryInterface.call(m(t),"toggle")}).on(k.FOCUS_BLUR_DATA_API,C,function(e){var t=m(e.target).closest(N)[0];m(t).toggleClass(T,/^focus(in)?$/.test(e.type))}),m.fn[v]=I._jQueryInterface,m.fn[v].Constructor=I,m.fn[v].noConflict=function(){return m.fn[v]=w,I._jQueryInterface},I),Kn=(j="carousel",P="."+(L="bs.carousel"),H=".data-api",q=(O=t).fn[j],M={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},R={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},W="next",F="prev",B="left",U="right",K={SLIDE:"slide"+P,SLID:"slid"+P,KEYDOWN:"keydown"+P,MOUSEENTER:"mouseenter"+P,MOUSELEAVE:"mouseleave"+P,TOUCHEND:"touchend"+P,LOAD_DATA_API:"load"+P+H,CLICK_DATA_API:"click"+P+H},$="carousel",Q="active",Y="slide",V="carousel-item-right",z="carousel-item-left",X="carousel-item-next",G="carousel-item-prev",J=".active",Z=".active.carousel-item",ee=".carousel-item",te=".carousel-item-next, .carousel-item-prev",ne=".carousel-indicators",ie="[data-slide], [data-slide-to]",re='[data-ride="carousel"]',oe=function(){function o(e,t){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(t),this._element=O(e)[0],this._indicatorsElement=this._element.querySelector(ne),this._addEventListeners()}var e=o.prototype;return e.next=function(){this._isSliding||this._slide(W)},e.nextWhenVisible=function(){!document.hidden&&O(this._element).is(":visible")&&"hidden"!==O(this._element).css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide(F)},e.pause=function(e){e||(this._isPaused=!0),this._element.querySelector(te)&&(Fn.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(e){var t=this;this._activeElement=this._element.querySelector(Z);var n=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)O(this._element).one(K.SLID,function(){return t.to(e)});else{if(n===e)return this.pause(),void this.cycle();var i=n<e?W:F;this._slide(i,this._items[e])}},e.dispose=function(){O(this._element).off(P),O.removeData(this._element,L),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(e){return e=l({},M,e),Fn.typeCheckConfig(j,e,R),e},e._addEventListeners=function(){var t=this;this._config.keyboard&&O(this._element).on(K.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(O(this._element).on(K.MOUSEENTER,function(e){return t.pause(e)}).on(K.MOUSELEAVE,function(e){return t.cycle(e)}),"ontouchstart"in document.documentElement&&O(this._element).on(K.TOUCHEND,function(){t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval)}))},e._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case 37:e.preventDefault(),this.prev();break;case 39:e.preventDefault(),this.next()}},e._getItemIndex=function(e){return this._items=e&&e.parentNode?[].slice.call(e.parentNode.querySelectorAll(ee)):[],this._items.indexOf(e)},e._getItemByDirection=function(e,t){var n=e===W,i=e===F,r=this._getItemIndex(t),o=this._items.length-1;if((i&&0===r||n&&r===o)&&!this._config.wrap)return t;var s=(r+(e===F?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),i=this._getItemIndex(this._element.querySelector(Z)),r=O.Event(K.SLIDE,{relatedTarget:e,direction:t,from:i,to:n});return O(this._element).trigger(r),r},e._setActiveIndicatorElement=function(e){if(this._indicatorsElement){var t=[].slice.call(this._indicatorsElement.querySelectorAll(J));O(t).removeClass(Q);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&O(n).addClass(Q)}},e._slide=function(e,t){var n,i,r,o=this,s=this._element.querySelector(Z),a=this._getItemIndex(s),l=t||s&&this._getItemByDirection(e,s),u=this._getItemIndex(l),c=Boolean(this._interval);if(e===W?(n=z,i=X,r=B):(n=V,i=G,r=U),l&&O(l).hasClass(Q))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).isDefaultPrevented()&&s&&l){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(l);var f=O.Event(K.SLID,{relatedTarget:l,direction:r,from:a,to:u});if(O(this._element).hasClass(Y)){O(l).addClass(i),Fn.reflow(l),O(s).addClass(n),O(l).addClass(n);var d=Fn.getTransitionDurationFromElement(s);O(s).one(Fn.TRANSITION_END,function(){O(l).removeClass(n+" "+i).addClass(Q),O(s).removeClass(Q+" "+i+" "+n),o._isSliding=!1,setTimeout(function(){return O(o._element).trigger(f)},0)}).emulateTransitionEnd(d)}else O(s).removeClass(Q),O(l).addClass(Q),this._isSliding=!1,O(this._element).trigger(f);c&&this.cycle()}},o._jQueryInterface=function(i){return this.each(function(){var e=O(this).data(L),t=l({},M,O(this).data());"object"==typeof i&&(t=l({}
1,t,i));var n="string"==typeof i?i:t.slide;if(e||(e=new o(this,t),O(this).data(L,e)),"number"==typeof i)e.to(i);else if("string"==typeof n){if(void 0===e[n])throw new TypeError('No method named "'+n+'"');e[n]()}else t.interval&&(e.pause(),e.cycle())})},o._dataApiClickHandler=function(e){var t=Fn.getSelectorFromElement(this);if(t){var n=O(t)[0];if(n&&O(n).hasClass($)){var i=l({},O(n).data(),O(this).data()),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),o._jQueryInterface.call(O(n),i),r&&O(n).data(L).to(r),e.preventDefault()}}},s(o,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return M}}]),o}(),O(document).on(K.CLICK_DATA_API,ie,oe._dataApiClickHandler),O(window).on(K.LOAD_DATA_API,function(){for(var e=[].slice.call(document.querySelectorAll(re)),t=0,n=e.length;t<n;t++){var i=O(e[t]);oe._jQueryInterface.call(i,i.data())}}),O.fn[j]=oe._jQueryInterface,O.fn[j].Constructor=oe,O.fn[j].noConflict=function(){return O.fn[j]=q,oe._jQueryInterface},oe),$n=(ae="collapse",ue="."+(le="bs.collapse"),ce=(se=t).fn[ae],fe={toggle:!0,parent:""},de={toggle:"boolean",parent:"(string|element)"},he={SHOW:"show"+ue,SHOWN:"shown"+ue,HIDE:"hide"+ue,HIDDEN:"hidden"+ue,CLICK_DATA_API:"click"+ue+".data-api"},pe="show",ge="collapse",me="collapsing",ve="collapsed",ye="width",_e="height",be=".show, .collapsing",we='[data-toggle="collapse"]',Ee=function(){function a(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=se.makeArray(document.querySelectorAll('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(we)),i=0,r=n.length;i<r;i++){var o=n[i],s=Fn.getSelectorFromElement(o),a=[].slice.call(document.querySelectorAll(s)).filter(function(e){return e===t});null!==s&&0<a.length&&(this._selector=s,this._triggerArray.push(o))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=a.prototype;return e.toggle=function(){se(this._element).hasClass(pe)?this.hide():this.show()},e.show=function(){var e,t,n=this;if(!this._isTransitioning&&!se(this._element).hasClass(pe)&&(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(be)).filter(function(e){return e.getAttribute("data-parent")===n._config.parent})).length&&(e=null),!(e&&(t=se(e).not(this._selector).data(le))&&t._isTransitioning))){var i=se.Event(he.SHOW);if(se(this._element).trigger(i),!i.isDefaultPrevented()){e&&(a._jQueryInterface.call(se(e).not(this._selector),"hide"),t||se(e).data(le,null));var r=this._getDimension();se(this._element).removeClass(ge).addClass(me),this._element.style[r]=0,this._triggerArray.length&&se(this._triggerArray).removeClass(ve).attr("aria-expanded",!0),this.setTransitioning(!0);var o="scroll"+(r[0].toUpperCase()+r.slice(1)),s=Fn.getTransitionDurationFromElement(this._element);se(this._element).one(Fn.TRANSITION_END,function(){se(n._element).removeClass(me).addClass(ge).addClass(pe),n._element.style[r]="",n.setTransitioning(!1),se(n._element).trigger(he.SHOWN)}).emulateTransitionEnd(s),this._element.style[r]=this._element[o]+"px"}}},e.hide=function(){var e=this;if(!this._isTransitioning&&se(this._element).hasClass(pe)){var t=se.Event(he.HIDE);if(se(this._element).trigger(t),!t.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",Fn.reflow(this._element),se(this._element).addClass(me).removeClass(ge).removeClass(pe);var i=this._triggerArray.length;if(0<i)for(var r=0;r<i;r++){var o=this._triggerArray[r],s=Fn.getSelectorFromElement(o);if(null!==s)se([].slice.call(document.querySelectorAll(s))).hasClass(pe)||se(o).addClass(ve).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var a=Fn.getTransitionDurationFromElement(this._element);se(this._element).one(Fn.TRANSITION_END,function(){e.setTransitioning(!1),se(e._element).removeClass(me).addClass(ge).trigger(he.HIDDEN)}).emulateTransitionEnd(a)}}},e.setTransitioning=function(e){this._isTransitioning=e},e.dispose=function(){se.removeData(this._element,le),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(e){return(e=l({},fe,e)).toggle=Boolean(e.toggle),Fn.typeCheckConfig(ae,e,de),e},e._getDimension=function(){return se(this._element).hasClass(ye)?ye:_e},e._getParent=function(){var n=this,e=null;Fn.isElement(this._config.parent)?(e=this._config.parent,void 0!==this._config.parent.jquery&&(e=this._config.parent[0])):e=document.querySelector(this._config.parent);var t='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',i=[].slice.call(e.querySelectorAll(t));return se(i).each(function(e,t){n._addAriaAndCollapsedClass(a._getTargetFromElement(t),[t])}),e},e._addAriaAndCollapsedClass=function(e,t){if(e){var n=se(e).hasClass(pe);t.length&&se(t).toggleClass(ve,!n).attr("aria-expanded",n)}},a._getTargetFromElement=function(e){var t=Fn.getSelectorFromElement(e);return t?document.querySelector(t):null},a._jQueryInterface=function(i){return this.each(function(){var e=se(this),t=e.data(le),n=l({},fe,e.data(),"object"==typeof i&&i?i:{});if(!t&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),t||(t=new a(this,n),e.data(le,t)),"string"==typeof i){if(void 0===t[i])throw new TypeError('No method n
1amed "'+i+'"');t[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return fe}}]),a}(),se(document).on(he.CLICK_DATA_API,we,function(e){"A"===e.currentTarget.tagName&&e.preventDefault();var n=se(this),t=Fn.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(t));se(i).each(function(){var e=se(this),t=e.data(le)?"toggle":n.data();Ee._jQueryInterface.call(e,t)})}),se.fn[ae]=Ee._jQueryInterface,se.fn[ae].Constructor=Ee,se.fn[ae].noConflict=function(){return se.fn[ae]=ce,Ee._jQueryInterface},Ee),Qn=(Te="dropdown",Se="."+(Ce="bs.dropdown"),De=".data-api",Ae=(xe=t).fn[Te],Ne=new RegExp("38|40|27"),ke={HIDE:"hide"+Se,HIDDEN:"hidden"+Se,SHOW:"show"+Se,SHOWN:"shown"+Se,CLICK:"click"+Se,CLICK_DATA_API:"click"+Se+De,KEYDOWN_DATA_API:"keydown"+Se+De,KEYUP_DATA_API:"keyup"+Se+De},Ie="disabled",Oe="show",je="dropup",Le="dropright",Pe="dropleft",He="dropdown-menu-right",qe="position-static",Me='[data-toggle="dropdown"]',Re=".dropdown form",We=".dropdown-menu",Fe=".navbar-nav",Be=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Ue="top-start",Ke="top-end",$e="bottom-start",Qe="bottom-end",Ye="right-start",Ve="left-start",ze={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Xe={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Ge=function(){function u(e,t){this._element=e,this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var e=u.prototype;return e.toggle=function(){if(!this._element.disabled&&!xe(this._element).hasClass(Ie)){var e=u._getParentFromElement(this._element),t=xe(this._menu).hasClass(Oe);if(u._clearMenus(),!t){var n={relatedTarget:this._element},i=xe.Event(ke.SHOW,n);if(xe(e).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if(void 0===c)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=e:Fn.isElement(this._config.reference)&&(r=this._config.reference,void 0!==this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&xe(e).addClass(qe),this._popper=new c(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===xe(e).closest(Fe).length&&xe(document.body).children().on("mouseover",null,xe.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),xe(this._menu).toggleClass(Oe),xe(e).toggleClass(Oe).trigger(xe.Event(ke.SHOWN,n))}}}},e.dispose=function(){xe.removeData(this._element,Ce),xe(this._element).off(Se),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},e.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},e._addEventListeners=function(){var t=this;xe(this._element).on(ke.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},e._getConfig=function(e){return e=l({},this.constructor.Default,xe(this._element).data(),e),Fn.typeCheckConfig(Te,e,this.constructor.DefaultType),e},e._getMenuElement=function(){if(!this._menu){var e=u._getParentFromElement(this._element);e&&(this._menu=e.querySelector(We))}return this._menu},e._getPlacement=function(){var e=xe(this._element.parentNode),t=$e;return e.hasClass(je)?(t=Ue,xe(this._menu).hasClass(He)&&(t=Ke)):e.hasClass(Le)?t=Ye:e.hasClass(Pe)?t=Ve:xe(this._menu).hasClass(He)&&(t=Qe),t},e._detectNavbar=function(){return 0<xe(this._element).closest(".navbar").length},e._getPopperConfig=function(){var t=this,e={};"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=l({},e.offsets,t._config.offset(e.offsets)||{}),e}:e.offset=this._config.offset;var n={placement:this._getPlacement(),modifiers:{offset:e,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(n.modifiers.applyStyle={enabled:!1}),n},u._jQueryInterface=function(t){return this.each(function(){var e=xe(this).data(Ce);if(e||(e=new u(this,"object"==typeof t?t:null),xe(this).data(Ce,e)),"string"==typeof t){if(void 0===e[t])throw new TypeError('No method n
1amed "'+t+'"');e[t]()}})},u._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var t=[].slice.call(document.querySelectorAll(Me)),n=0,i=t.length;n<i;n++){var r=u._getParentFromElement(t[n]),o=xe(t[n]).data(Ce),s={relatedTarget:t[n]};if(e&&"click"===e.type&&(s.clickEvent=e),o){var a=o._menu;if(xe(r).hasClass(Oe)&&!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&xe.contains(r,e.target))){var l=xe.Event(ke.HIDE,s);xe(r).trigger(l),l.isDefaultPrevented()||("ontouchstart"in document.documentElement&&xe(document.body).children().off("mouseover",null,xe.noop),t[n].setAttribute("aria-expanded","false"),xe(a).removeClass(Oe),xe(r).removeClass(Oe).trigger(xe.Event(ke.HIDDEN,s)))}}}},u._getParentFromElement=function(e){var t,n=Fn.getSelectorFromElement(e);return n&&(t=document.querySelector(n)),t||e.parentNode},u._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||xe(e.target).closest(We).length)):Ne.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!xe(this).hasClass(Ie))){var t=u._getParentFromElement(this),n=xe(t).hasClass(Oe);if((n||27===e.which&&32===e.which)&&(!n||27!==e.which&&32!==e.which)){var i=[].slice.call(t.querySelectorAll(Be));if(0!==i.length){var r=i.indexOf(e.target);38===e.which&&0<r&&r--,40===e.which&&r<i.length-1&&r++,r<0&&(r=0),i[r].focus()}}else{if(27===e.which){var o=t.querySelector(Me);xe(o).trigger("focus")}xe(this).trigger("click")}}},s(u,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return ze}},{key:"DefaultType",get:function(){return Xe}}]),u}(),xe(document).on(ke.KEYDOWN_DATA_API,Me,Ge._dataApiKeydownHandler).on(ke.KEYDOWN_DATA_API,We,Ge._dataApiKeydownHandler).on(ke.CLICK_DATA_API+" "+ke.KEYUP_DATA_API,Ge._clearMenus).on(ke.CLICK_DATA_API,Me,function(e){e.preventDefault(),e.stopPropagation(),Ge._jQueryInterface.call(xe(this),"toggle")}).on(ke.CLICK_DATA_API,Re,function(e){e.stopPropagation()}),xe.fn[Te]=Ge._jQueryInterface,xe.fn[Te].Constructor=Ge,xe.fn[Te].noConflict=function(){return xe.fn[Te]=Ae,Ge._jQueryInterface},Ge),Yn=(Ze="modal",tt="."+(et="bs.modal"),nt=(Je=t).fn[Ze],it={backdrop:!0,keyboard:!0,focus:!0,show:!0},rt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},ot={HIDE:"hide"+tt,HIDDEN:"hidden"+tt,SHOW:"show"+tt,SHOWN:"shown"+tt,FOCUSIN:"focusin"+tt,RESIZE:"resize"+tt,CLICK_DISMISS:"click.dismiss"+tt,KEYDOWN_DISMISS:"keydown.dismiss"+tt,MOUSEUP_DISMISS:"mouseup.dismiss"+tt,MOUSEDOWN_DISMISS:"mousedown.dismiss"+tt,CLICK_DATA_API:"click"+tt+".data-api"},st="modal-scrollbar-measure",at="modal-backdrop",lt="modal-open",ut="fade",ct="show",ft=".modal-dialog",dt='[data-toggle="modal"]',ht='[data-dismiss="modal"]',pt=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",gt=".sticky-top",mt=function(){function r(e,t){this._config=this._getConfig(t),this._element=e,this._dialog=e.querySelector(ft),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._scrollbarWidth=0}var e=r.prototype;return e.toggle=function(e){return this._isShown?this.hide():this.show(e)},e.show=function(e){var t=this;if(!this._isTransitioning&&!this._isShown){Je(this._element).hasClass(ut)&&(this._isTransitioning=!0);var n=Je.Event(ot.SHOW,{relatedTarget:e});Je(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),Je(document.body).addClass(lt),this._setEscapeEvent(),this._setResizeEvent(),Je(this._element).on(ot.CLICK_DISMISS,ht,function(e){return t.hide(e)}),Je(this._dialog).on(ot.MOUSEDOWN_DISMISS,function(){Je(t._element).one(ot.MOUSEUP_DISMISS,function(e){Je(e.target).is(t._element)&&(t._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return t._showElement(e)}))}},e.hide=function(e){var t=this;if(e&&e.preventDefault(),!this._isTransitioning&&this._isShown){var n=Je.Event(ot.HIDE);if(Je(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=Je(this._element).hasClass(ut);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Je(document).off(ot.FOCUSIN),Je(this._element).removeClass(ct),Je(this._element).off(ot.CLICK_DISMISS),Je(this._dialog).off(ot.MOUSEDOWN_DISMISS),i){var r=Fn.getTransitionDurationFromElement(this._element);Je(this._element).one(Fn.TRANSITION_END,function(e){return t._hideModal(e)}).emulateTransitionEnd(r)}else this._hideModal()}}},e.dispose=function(){Je.removeData(this._element,et),Je(window,document,this._element,this._backdrop).off(tt),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(e){return e=l({},it,e),Fn.typeCheckConfig(Ze,e,rt),e},e._showElement=function(e){var t=this,n=Je(this._element).hasClass(ut);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,n&&Fn.reflow(this._element),Je(this._element).addClass(ct),this._config.focus&&this._enforceFocus();var i=Je.Event(ot.SHOWN,{relatedTarget:e}),r=function(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,Je(t._element).trigger(i)};if(n){var o=Fn.getTransitionDurationFromElement(this._element);Je(this._dialog).one(Fn.TRANSITION_END,r).emulateTransitionEnd(o)}else r()},e._enforceFocus=function(){var t=this;Je(document).off(ot.FOCUSIN).on(ot.FOCUSIN,function(e){document!==e.target&&t._element!==e.target&&0===Je(t._element).has(e.target).length&&t._element.focus()})},e._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?Je(this._element).on(ot.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||Je(this._element).off(ot.KEYDOWN_DISMISS)},e._setResizeEvent=function(){var t=this;this._isShown?Je(window).on(ot.RESIZE,function(e){return t.handleUpdate(e)}):Je(window).off(ot.RESIZE)},e._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){Je(document.body).removeClass(lt),e._resetAdjustments(),e._resetScrollbar(),Je(e._element).trigger(ot.HIDDEN)})},e._removeBackdrop=function(){this._backdrop&&(Je(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(e){var t=this,n=Je(this._element).hasClass(ut)?ut:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=at,n&&this._backdrop.classList.add(n),Je(this._backdrop).appendTo(document.body),Je(this._element).on(ot.CLICK_DISMISS,function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===t._config.backdrop?t._element.focus():t.hide())}),n&&Fn.reflow(this._backdrop),Je(this._backdrop).addClass(ct),!e)return;if(!n)return void e();var i=Fn.getTransitionDurationFromElement(this._backdrop);Je(this._backdrop).one(Fn.TRANSITION_END,e).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){Je(this._backdrop).removeClass(ct);var r=function(){t._removeBackdrop(),e&&e()};if(Je(this._element).hasClass(ut)){var o=Fn.getTransitionDurationFromElement(this._backdrop);Je(this._backdrop).one(Fn.TRANSITION_END,r).emulateTransitionEnd(o)}else r()}else e&&e()},e._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=e.left+e.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var r=this;if(this._isBodyOverflowing){var e=[].slice.call(document.querySelectorAll(pt)),t=[].slice.call(document.querySelectorAll(gt));Je(e).each(function(e,t){var n=t.style.paddingRight,i=Je(t).css("padding-right");Je(t).data("padding-right",n).css("padding-right",parseFloat(i)+r._scrollbarWidth+"px")}),Je(t).each(function(e,t){var n=t.style.marginRight,i=Je(t).css("margin-right");Je(t).data("margin-right",n).css("margin-right",parseFloat(i)-r._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=Je(document.body).css("padding-right");Je(document.body).data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}},e._resetScrollbar=function(){var e=[].slice.call(document.querySelectorAll(pt));Je(e).each(function(e,t){var n=Je(t).data("padding-right");Je(t).removeData("padding-right"),t.style.paddingRight=n||""});var t=[].slice.call(document.querySelectorAll(""+gt));Je(t).each(function(e,t){var n=Je(t).data("margin-right");void 0!==n&&Je(t).css("margin-right",n).removeData("margin-right")});var n=Je(document.body).data("padding-right");Je(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},e._getScrollbarWidth=function(){var e=document.createElement("div");e.className=st,document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},r._jQueryInterface=function(n,i){return this.each(function(){var e=Je(this).data(et),t=l({},it,Je(this).data(),"object"==typeof n&&n?n:{});if(e||(e=new r(this,t),Je(this).data(et,e)),"string"==typeof n){if(void 0===e[n])throw new TypeError('No method n
1amed "'+n+'"');e[n](i)}else t.show&&e.show(i)})},s(r,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return it}}]),r}(),Je(document).on(ot.CLICK_DATA_API,dt,function(e){var t,n=this,i=Fn.getSelectorFromElement(this);i&&(t=document.querySelector(i));var r=Je(t).data(et)?"toggle":l({},Je(t).data(),Je(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault();var o=Je(t).one(ot.SHOW,function(e){e.isDefaultPrevented()||o.one(ot.HIDDEN,function(){Je(n).is(":visible")&&n.focus()})});mt._jQueryInterface.call(Je(t),r,this)}),Je.fn[Ze]=mt._jQueryInterface,Je.fn[Ze].Constructor=mt,Je.fn[Ze].noConflict=function(){return Je.fn[Ze]=nt,mt._jQueryInterface},mt),Vn=(yt="tooltip",bt="."+(_t="bs.tooltip"),wt=(vt=t).fn[yt],Et="bs-tooltip",xt=new RegExp("(^|\\s)"+Et+"\\S+","g"),St={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!(Ct={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(Tt={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},At="out",Nt={HIDE:"hide"+bt,HIDDEN:"hidden"+bt,SHOW:(Dt="show")+bt,SHOWN:"shown"+bt,INSERTED:"inserted"+bt,CLICK:"click"+bt,FOCUSIN:"focusin"+bt,FOCUSOUT:"focusout"+bt,MOUSEENTER:"mouseenter"+bt,MOUSELEAVE:"mouseleave"+bt},kt="fade",It="show",Ot=".tooltip-inner",jt=".arrow",Lt="hover",Pt="focus",Ht="click",qt="manual",Mt=function(){function i(e,t){if(void 0===c)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners()}var e=i.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(e){if(this._isEnabled)if(e){var t=this.constructor.DATA_KEY,n=vt(e.currentTarget).data(t);n||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),vt(e.currentTarget).data(t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(vt(this.getTipElement()).hasClass(It))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),vt.removeData(this.element,this.constructor.DATA_KEY),vt(this.element).off(this.constructor.EVENT_KEY),vt(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&vt(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===vt(this.element).css("display"))throw new Error("Please use show on visible elements");var e=vt.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){vt(this.element).trigger(e);var n=vt.contains(this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=Fn.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&vt(i).addClass(kt);var o="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,s=this._getAttachment(o);this.addAttachmentClass(s);var a=!1===this.config.container?document.body:vt(document).find(this.config.container);vt(i).data(this.constructor.DATA_KEY,this),vt.contains(this.element.ownerDocument.documentElement,this.tip)||vt(i).appendTo(a),vt(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new c(this.element,i,{placement:s,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:jt}
1,preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){t._handlePopperPlacementChange(e)}}),vt(i).addClass(It),"ontouchstart"in document.documentElement&&vt(document.body).children().on("mouseover",null,vt.noop);var l=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,vt(t.element).trigger(t.constructor.Event.SHOWN),e===At&&t._leave(null,t)};if(vt(this.tip).hasClass(kt)){var u=Fn.getTransitionDurationFromElement(this.tip);vt(this.tip).one(Fn.TRANSITION_END,l).emulateTransitionEnd(u)}else l()}},e.hide=function(e){var t=this,n=this.getTipElement(),i=vt.Event(this.constructor.Event.HIDE),r=function(){t._hoverState!==Dt&&n.parentNode&&n.parentNode.removeChild(n),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),vt(t.element).trigger(t.constructor.Event.HIDDEN),null!==t._popper&&t._popper.destroy(),e&&e()};if(vt(this.element).trigger(i),!i.isDefaultPrevented()){if(vt(n).removeClass(It),"ontouchstart"in document.documentElement&&vt(document.body).children().off("mouseover",null,vt.noop),this._activeTrigger[Ht]=!1,this._activeTrigger[Pt]=!1,this._activeTrigger[Lt]=!1,vt(this.tip).hasClass(kt)){var o=Fn.getTransitionDurationFromElement(n);vt(n).one(Fn.TRANSITION_END,r).emulateTransitionEnd(o)}else r();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(e){vt(this.getTipElement()).addClass(Et+"-"+e)},e.getTipElement=function(){return this.tip=this.tip||vt(this.config.template)[0],this.tip},e.setContent=function(){var e=this.getTipElement();this.setElementContent(vt(e.querySelectorAll(Ot)),this.getTitle()),vt(e).removeClass(kt+" "+It)},e.setElementContent=function(e,t){var n=this.config.html;"object"==typeof t&&(t.nodeType||t.jquery)?n?vt(t).parent().is(e)||e.empty().append(t):e.text(vt(t).text()):e[n?"html":"text"](t)},e.getTitle=function(){var e=this.element.getAttribute("data-original-title");return e||(e="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),e},e._getAttachment=function(e){return Ct[e.toUpperCase()]},e._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)vt(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(e){return i.toggle(e)});else if(e!==qt){var t=e===Lt?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=e===Lt?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;vt(i.element).on(t,i.config.selector,function(e){return i._enter(e)}).on(n,i.config.selector,function(e){return i._leave(e)})}vt(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var e=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==e)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(e,t){var n=this.constructor.DATA_KEY;(t=t||vt(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),vt(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusin"===e.type?Pt:Lt]=!0),vt(t.getTipElement()).hasClass(It)||t._hoverState===Dt?t._hoverState=Dt:(clearTimeout(t._timeout),t._hoverState=Dt,t.config.delay&&t.config.delay.show?t._timeout=setTimeout(function(){t._hoverState===Dt&&t.show()},t.config.delay.show):t.show())},e._leave=function(e,t){var n=this.constructor.DATA_KEY;(t=t||vt(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),vt(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusout"===e.type?Pt:Lt]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=At,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout(function(){t._hoverState===At&&t.hide()},t.config.delay.hide):t.hide())},e._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},e._getConfig=function(e){return"number"==typeof(e=l({},this.constructor.Default,vt(this.element).data(),"object"==typeof e&&e?e:{})).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),Fn.typeCheckConfig(yt,e,this.constructor.DefaultType),e},e._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},e._cleanTipClass=function(){var e=vt(this.getTipElement()),t=e.attr("class").match(xt);null!==t&&t.length&&e.removeClass(t.join(""))},e._handlePopperPlacementChange=function(e){var t=e.instance;this.tip=t.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},e._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(vt(e).removeClass(kt),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},i._jQueryInterface=function(n){return this.each(function(){var e=vt(this).data(_t),t="object"==typeof n&&n;if((e||!/dispose|hide/.test(n))&&(e||(e=new i(this,t),vt(this).data(_t,e)),"string"==typeof n)){if(void 0===e[n])throw new TypeError('No method n
1amed "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return St}},{key:"NAME",get:function(){return yt}},{key:"DATA_KEY",get:function(){return _t}},{key:"Event",get:function(){return Nt}},{key:"EVENT_KEY",get:function(){return bt}},{key:"DefaultType",get:function(){return Tt}}]),i}(),vt.fn[yt]=Mt._jQueryInterface,vt.fn[yt].Constructor=Mt,vt.fn[yt].noConflict=function(){return vt.fn[yt]=wt,Mt._jQueryInterface},Mt),zn=(Wt="popover",Bt="."+(Ft="bs.popover"),Ut=(Rt=t).fn[Wt],Kt="bs-popover",$t=new RegExp("(^|\\s)"+Kt+"\\S+","g"),Qt=l({},Vn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),Yt=l({},Vn.DefaultType,{content:"(string|element|function)"}),Vt="fade",Xt=".popover-header",Gt=".popover-body",Jt={HIDE:"hide"+Bt,HIDDEN:"hidden"+Bt,SHOW:(zt="show")+Bt,SHOWN:"shown"+Bt,INSERTED:"inserted"+Bt,CLICK:"click"+Bt,FOCUSIN:"focusin"+Bt,FOCUSOUT:"focusout"+Bt,MOUSEENTER:"mouseenter"+Bt,MOUSELEAVE:"mouseleave"+Bt},Zt=function(e){var t,n;function i(){return e.apply(this,arguments)||this}n=e,(t=i).prototype=Object.create(n.prototype),(t.prototype.constructor=t).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(e){Rt(this.getTipElement()).addClass(Kt+"-"+e)},r.getTipElement=function(){return this.tip=this.tip||Rt(this.config.template)[0],this.tip},r.setContent=function(){var e=Rt(this.getTipElement());this.setElementContent(e.find(Xt),this.getTitle());var t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(e.find(Gt),t),e.removeClass(Vt+" "+zt)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var e=Rt(this.getTipElement()),t=e.attr("class").match($t);null!==t&&0<t.length&&e.removeClass(t.join(""))},i._jQueryInterface=function(n){return this.each(function(){var e=Rt(this).data(Ft),t="object"==typeof n?n:null;if((e||!/destroy|hide/.test(n))&&(e||(e=new i(this,t),Rt(this).data(Ft,e)),"string"==typeof n)){if(void 0===e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return Qt}},{key:"NAME",get:function(){return Wt}},{key:"DATA_KEY",get:function(){return Ft}},{key:"Event",get:function(){return Jt}},{key:"EVENT_KEY",get:function(){return Bt}},{key:"DefaultType",get:function(){return Yt}}]),i}(Vn),Rt.fn[Wt]=Zt._jQueryInterface,Rt.fn[Wt].Constructor=Zt,Rt.fn[Wt].noConflict=function(){return Rt.fn[Wt]=Ut,Zt._jQueryInterface},Zt),Xn=(tn="scrollspy",rn="."+(nn="bs.scrollspy"),on=(en=t).fn[tn],sn={offset:10,method:"auto",target:""},an={offset:"number",method:"string",target:"(string|element)"},ln={ACTIVATE:"activate"+rn,SCROLL:"scroll"+rn,LOAD_DATA_API:"load"+rn+".data-api"},un="dropdown-item",cn="active",fn='[data-spy="scroll"]',dn=".active",hn=".nav, .list-group",pn=".nav-link",gn=".nav-item",mn=".list-group-item",vn=".dropdown",yn=".dropdown-item",_n=".dropdown-toggle",bn="offset",wn="position",En=function(){function n(e,t){var n=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(t),this._selector=this._config.target+" "+pn+","+this._config.target+" "+mn+","+this._config.target+" "+yn,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,en(this._scrollElement).on(ln.SCROLL,function(e){return n._process(e)}),this.refresh(),this._process()}var e=n.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?bn:wn,r="auto"===this._config.method?e:this._config.method,o=r===wn?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(e){var t,n=Fn.getSelectorFromElement(e);if(n&&(t=document.querySelector(n)),t){var i=t.getBoundingClientRect();if(i.width||i.height)return[en(t)[r]().top+o,n]}return null}).filter(function(e){return e}).sort(function(e,t){return e[0]-t[0]}
1).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},e.dispose=function(){en.removeData(this._element,nn),en(this._scrollElement).off(rn),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(e){if("string"!=typeof(e=l({},sn,"object"==typeof e&&e?e:{})).target){var t=en(e.target).attr("id");t||(t=Fn.getUID(tn),en(e.target).attr("id",t)),e.target="#"+t}return Fn.typeCheckConfig(tn,e,an),e},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),n<=e){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&e<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&e>=this._offsets[r]&&(void 0===this._offsets[r+1]||e<this._offsets[r+1])&&this._activate(this._targets[r])}}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",");e=e.map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'});var n=en([].slice.call(document.querySelectorAll(e.join(","))));n.hasClass(un)?(n.closest(vn).find(_n).addClass(cn),n.addClass(cn)):(n.addClass(cn),n.parents(hn).prev(pn+", "+mn).addClass(cn),n.parents(hn).prev(gn).children(pn).addClass(cn)),en(this._scrollElement).trigger(ln.ACTIVATE,{relatedTarget:t})},e._clear=function(){var e=[].slice.call(document.querySelectorAll(this._selector));en(e).filter(dn).removeClass(cn)},n._jQueryInterface=function(t){return this.each(function(){var e=en(this).data(nn);if(e||(e=new n(this,"object"==typeof t&&t),en(this).data(nn,e)),"string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return sn}}]),n}(),en(window).on(ln.LOAD_DATA_API,function(){for(var e=[].slice.call(document.querySelectorAll(fn)),t=e.length;t--;){var n=en(e[t]);En._jQueryInterface.call(n,n.data())}}),en.fn[tn]=En._jQueryInterface,en.fn[tn].Constructor=En,en.fn[tn].noConflict=function(){return en.fn[tn]=on,En._jQueryInterface},En),Gn=(Cn="."+(Tn="bs.tab"),Sn=(xn=t).fn.tab,Dn={HIDE:"hide"+Cn,HIDDEN:"hidden"+Cn,SHOW:"show"+Cn,SHOWN:"shown"+Cn,CLICK_DATA_API:"click"+Cn+".data-api"},An="dropdown-menu",Nn="active",kn="disabled",In="fade",On="show",jn=".dropdown",Ln=".nav, .list-group",Pn=".active",Hn="> li > .active",qn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Mn=".dropdown-toggle",Rn="> .dropdown-menu .active",Wn=function(){function i(e){this._element=e}var e=i.prototype;return e.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&xn(this._element).hasClass(Nn)||xn(this._element).hasClass(kn))){var e,i,t=xn(this._element).closest(Ln)[0],r=Fn.getSelectorFromElement(this._element);if(t){var o="UL"===t.nodeName?Hn:Pn;i=(i=xn.makeArray(xn(t).find(o)))[i.length-1]}var s=xn.Event(Dn.HIDE,{relatedTarget:this._element}),a=xn.Event(Dn.SHOW,{relatedTarget:i});if(i&&xn(i).trigger(s),xn(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){r&&(e=document.querySelector(r)),this._activate(this._element,t);var l=function(){var e=xn.Event(Dn.HIDDEN,{relatedTarget:n._element}),t=xn.Event(Dn.SHOWN,{relatedTarget:i});xn(i).trigger(e),xn(n._element).trigger(t)};e?this._activate(e,e.parentNode,l):l()}}},e.dispose=function(){xn.removeData(this._element,Tn),this._element=null},e._activate=function(e,t,n){var i=this,r=("UL"===t.nodeName?xn(t).find(Hn):xn(t).children(Pn))[0],o=n&&r&&xn(r).hasClass(In),s=function(){return i._transitionComplete(e,r,n)};if(r&&o){var a=Fn.getTransitionDurationFromElement(r);xn(r).one(Fn.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},e._transitionComplete=function(e,t,n){if(t){xn(t).removeClass(On+" "+Nn);var i=xn(t.parentNode).find(Rn)[0];i&&xn(i).removeClass(Nn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}if(xn(e).addClass(Nn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),Fn.reflow(e),xn(e).addClass(On),e.parentNode&&xn(e.parentNode).hasClass(An)){var r=xn(e).closest(jn)[0];if(r){var o=[].slice.call(r.querySelectorAll(Mn));xn(o).addClass(Nn)}e.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var e=xn(this),t=e.data(Tn);if(t||(t=new i(this),e.data(Tn,t)),"string"==typeof n){if(void 0===t[n])throw new TypeError('No method n
1amed "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}}]),i}(),xn(document).on(Dn.CLICK_DATA_API,qn,function(e){e.preventDefault(),Wn._jQueryInterface.call(xn(this),"show")}),xn.fn.tab=Wn._jQueryInterface,xn.fn.tab.Constructor=Wn,xn.fn.tab.noConflict=function(){return xn.fn.tab=Sn,Wn._jQueryInterface},Wn);!function(e){if(void 0===e)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||4<=t[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(t),e.Util=Fn,e.Alert=Bn,e.Button=Un,e.Carousel=Kn,e.Collapse=$n,e.Dropdown=Qn,e.Modal=Yn,e.Popover=zn,e.Scrollspy=Xn,e.Tab=Gn,e.Tooltip=Vn,Object.defineProperty(e,"__esModule",{value:!0})});
2/**
3* jquery.matchHeight-min.js master
4* http://brm.io/jquery-match-height/
5* License: MIT
6*/
7(function(c){var n=-1,f=-1,g=function(a){return parseFloat(a)||0},r=function(a){var b=null,d=[];c(a).each(function(){var a=c(this),k=a.offset().top-g(a.css("margin-top")),l=0<d.length?d[d.length-1]:null;null===l?d.push(a):1>=Math.floor(Math.abs(b-k))?d[d.length-1]=l.add(a):d.push(a);b=k});return d},p=function(a){var b={byRow:!0,property:"height",target:null,remove:!1};if("object"===typeof a)return c.extend(b,a);"boolean"===typeof a?b.byRow=a:"remove"===a&&(b.remove=!0);return b},b=c.fn.matchHeight=
8function(a){a=p(a);if(a.remove){var e=this;this.css(a.property,"");c.each(b._groups,function(a,b){b.elements=b.elements.not(e)});return this}if(1>=this.length&&!a.target)return this;b._groups.push({elements:this,options:a});b._apply(this,a);return this};b._groups=[];b._throttle=80;b._maintainScroll=!1;b._beforeUpdate=null;b._afterUpdate=null;b._apply=function(a,e){var d=p(e),h=c(a),k=[h],l=c(window).scrollTop(),f=c("html").outerHeight(!0),m=h.parents().filter(":hidden");m.each(function(){var a=c(this);
9a.data("style-cache",a.attr("style"))});m.css("display","block");d.byRow&&!d.target&&(h.each(function(){var a=c(this),b="inline-block"===a.css("display")?"inline-block":"block";a.data("style-cache",a.attr("style"));a.css({display:b,"padding-top":"0","padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px"})}),k=r(h),h.each(function(){var a=c(this);a.attr("style",a.data("style-cache")||"")}));c.each(k,function(a,b){var e=c(b),f=0;if(d.target)f=
10d.target.outerHeight(!1);else{if(d.byRow&&1>=e.length){e.css(d.property,"");return}e.each(function(){var a=c(this),b={display:"inline-block"===a.css("display")?"inline-block":"block"};b[d.property]="";a.css(b);a.outerHeight(!1)>f&&(f=a.outerHeight(!1));a.css("display","")})}e.each(function(){var a=c(this),b=0;d.target&&a.is(d.target)||("border-box"!==a.css("box-sizing")&&(b+=g(a.css("border-top-width"))+g(a.css("border-bottom-width")),b+=g(a.css("padding-top"))+g(a.css("padding-bottom"))),a.css(d.property,
11f-b))})});m.each(function(){var a=c(this);a.attr("style",a.data("style-cache")||null)});b._maintainScroll&&c(window).scrollTop(l/f*c("html").outerHeight(!0));return this};b._applyDataApi=function(){var a={};c("[data-match-height], [data-mh]").each(function(){var b=c(this),d=b.attr("data-mh")||b.attr("data-match-height");a[d]=d in a?a[d].add(b):b});c.each(a,function(){this.matchHeight(!0)})};var q=function(a){b._beforeUpdate&&b._beforeUpdate(a,b._groups);c.each(b._groups,function(){b._apply(this.elements,
12this.options)});b._afterUpdate&&b._afterUpdate(a,b._groups)};b._update=function(a,e){if(e&&"resize"===e.type){var d=c(window).width();if(d===n)return;n=d}a?-1===f&&(f=setTimeout(function(){q(e);f=-1},b._throttle)):q(e)};c(b._applyDataApi);c(window).bind("load",function(a){b._update(!1,a)});c(window).bind("resize orientationchange",function(a){b._update(!0,a)})})(jQuery);
13/*!
14 * Isotope PACKAGED v3.0.4
15 *
16 * Licensed GPLv3 for open source use
17 * or Isotope Commercial License for commercial use
18 *
19 * http://isotope.metafizzy.co
20 * Copyright 2017 Metafizzy
21 */
22
23!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function u(t,e,o){var n,s="$()."+i+'("'+e+'")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var d=h[e];if(!d||"_"==e.charAt(0))return void r(s+" is not a valid method");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=n.call(arguments,1
vendor: 3,663 bytes, line 23
23);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=0,n=i[o];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];n;){var r=s&&s[n];r&&(this.off(t,n),delete s[n]),n.apply(this,e),o+=r?0:1,n=i[o]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=t.indexOf("%")==-1&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<h;e++){var i=u[e];t[i]=0}return t}function o(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),e}function n(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var n=o(e);s.isBoxSizeOuter=r=200==t(n.width),i.removeChild(e)}}function s(e){if(n(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var s=o(e);if("none"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==s.boxSizing,l=0;l<h;l++){var f=u[l],c=s[f],m=parseFloat(c);a[f]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,y=a.paddingTop+a.paddingBottom,g=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,I=a.borderTopWidth+a.borderBottomWidth,z=d&&r,x=t(s.width);x!==!1&&(a.width=x+(z?0:p+_));var S=t(s.height);return S!==!1&&(a.height=S+(z?0:y+I)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(y+I),a.outerWidth=a.width+g,a.outerHeight=a.height+v,a}}var r,a="undefined"==typeof console?e:function(t){console.error(t)},u=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],h=u.length,d=!1;return s}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var o=e[i],n=o+"MatchesSelector";if(t[n])return n}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["de
23sandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e},i.makeArray=function(t){var e=[];if(Array.isArray(t))e=t;else if(t&&"object"==typeof t&&"number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e},i.removeFrom=function(t,e){var i=t.indexOf(e);i!=-1&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,o){t=i.makeArray(t);var n=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!o)return void n.push(t);e(t,o)&&n.push(t);for(var i=t.querySelectorAll(o),s=0;s<i.length;s++)n.push(i[s])}}),n},i.debounceMethod=function(t,e,i){var o=t.prototype[e],n=e+"Timeout";t.prototype[e]=function(){var t=this[n];t&&clearTimeout(t);var e=arguments,s=this;this[n]=setTimeout(function(){o.apply(s,e),delete s[n]},i||100)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var o=t.console;return i.htmlInit=function(e,n){i.docReady(function(){var s=i.toDashed(n),r="data-"+s,a=document.querySelectorAll("["+r+"]"),u=document.querySelectorAll(".js-"+s),h=i.makeArray(a).concat(i.makeArray(u)),d=r+"-options",l=t.jQuery;h.forEach(function(t){var i,s=t.getAttribute(r)||t.getAttribute(d);try{i=s&&JSON.parse(s)}catch(a){return void(o&&o.error("Error parsing "+r+" on "+t.className+": "+a))}var u=new e(t,i);l&&l.data(t,n,u)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function o(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function n(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var s=document.documentElement.style,r="string"==typeof s.transition?"transition":"WebkitTransition",a="string"==typeof s.transform?"transform":"WebkitTransform",u={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[r],h={transform:a,transition:r,transitionDuration:r+"Duration",transitionProperty:r+"Property",transitionDelay:r+"Delay"},d=o.prototype=Object.create(t.prototype);d.constructor=o,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var o=h[i]||i;e[o]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),o=t[e?"left":"right"],n=t[i?"top":"bottom"],s=this.layout.size,r=o.indexOf("%")!=-1?parseFloat(o)/100*s.width:parseInt(o,10),a=n.indexOf("%")!=-1?parseFloat(n)/100*s.height:parseInt(n,10);r=isNaN(r)?0:r,a=isNaN(a)?0:a,r-=e?s.paddingLeft:s.paddingRight,a-=i?s.paddingTop:s.paddingBottom,this.position.x=r,this.position.y=a},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop"),n=i?"paddingLeft":"paddingRight",s=i?"left":"right",r=i?"right":"left",a=this.position.x+t[n];e[s]=this.getXValue(a),e[r]="";var u=o?"paddingTop":"paddingBottom",h=o?"top":"bottom",d=o?"bottom":"top",l=this.position.y+t[u];e[h]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,o=this.position.y,n=parseInt(t,10),s=parseInt(e,10),r=n===this.position.x&&s===this.position.y;if(this.setPosition(t,e),r&&!this.isTransitioning)return void this.layoutPosition();var a=t-i,u=e-o,h={};
23h.transform=this.getTranslate(a,u),this.transition({to:h,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop");return t=i?t:-t,e=o?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseInt(t,10),this.position.y=parseInt(e,10
vendor: 11,351 bytes, line 23
23)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var o=this.element.offsetHeight;o=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+n(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(u,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var f={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,o=f[t.propertyName]||t.propertyName;if(delete e.ingProperties[o],i(e.ingProperties)&&this.disableTransition(),o in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[o]),o in e.onEnd){var n=e.onEnd[o];n.call(this),delete e.onEnd[o]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(u,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var c={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(c)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return r&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},o}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,o,n,s){return e(t,i,o,n,s)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,o,n){"use strict";function s(t,e){var i=o.getQueryElement(t);if(!i)return void(u&&u.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,h&&(this.$element=h(this.element)),this.options=o.extend({},this.constructor.defaults),this.option(e);var n=++l;this.element.outlayerGUID=n,f[n]=this,this._create();var s=this._getOption("initLayout");s&&this.layout()}function r(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],o=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var n=m[o]||1;return i*n}var u=t.console,h=t.jQuery,d=function(){},l=0,f={};s.namespace="outlayer",s.Item=n,s.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var c=s.prototype;o.extend(c,e.prototype),c.option=function(t){o.extend(this.options,t)},c._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},s.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},c._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),o.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},c.reloadItems=function(){this.items=this._itemize(this.element.children)},c._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,o=[],n=0;n<e.length;n++){var s=e[n],r=new i(s,this);o.push(r)}return o},c._filterFindItemElements=function(t){return o.filterFindElements(t,this.options.itemSelector)},c.getItemElements=function(){return this.items.map(function(t){return t.element})},c.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},c._init=c.layout,c._resetLayout=function(){this.getSize()},c.getSize=function(){this.size=i(this.element)},c._getMeasurement=function(t,e){var o,n=this.options[t];n?("string"==typeof n?o=this.element.querySelector(n):n instanceof HTMLElement&&(o=n),this[t]=o?i(o)[e]:n):this[t]=0},c.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},c._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},c._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var o=this._getItemLayoutPosition(t);o.item=t,o.isInstant=e||t.isLayoutInstant,i.push(o)},this),this._processLayoutQueue(i)}},c._getItemLayoutPosition=function(){return{x:0,y:0}},c._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},c.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},c._positionItem=function(t,e,i,o,n){o?t.goTo(e,i):(t.stagger(n*this.stagger),t.moveTo(e,i))},c._postLayout=function(){this.resizeContainer()},c.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},c._getContainerSize=d,c._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},c._emitCompleteOnItems=function(t,e){function i(){n.dispatchEvent(t+"Complete",null,[e])}function o(){r++,r==s&&i()}var n=this,s=e.length;if(!e||!s)return void i();var r=0;e.forEach(function(e){e.once(t,o)})},c.dispatchEvent=function(t,e,i){var o=e?[e].concat(i):i;if(this.emitEvent(t,o),h)if(this.$element=this.$element||h(this.element),e){var n=h.Event(e);n.type=t,this.$element.trigger(n,i)}else this.$element.trigger(t,i)},c.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},c.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},c.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},c.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){o.removeFrom(this.stamps,t),this.unignore(t)},this)},c._find=function(t){if(t)return"string"==typeof t&&(t=this.element.querySelectorAll(t)),t=o.makeArray(t)},c._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},c._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},c._manageStamp=d,c._getElementOffset=function(t){var e=t.getBoundingClientRect(),o=this._boundingRect,n=i(t),s={left:e.left-o.left-n.marginLeft,top:e.top-o.top-n.marginTop,right:o.right-e.right-n.marginRight,bottom:o.bottom-e.bottom-n.marginBottom};return s},c.handleEvent=o.handleEvent,c.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},c.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},c.onresize=function(){this.resize()},o.debounceMethod(s,"onresize",100),c.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},c.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},c.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},c.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},c.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},c.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},c.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},c.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},c.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},c.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},c.getItems=function(t){t=o.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},c.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),o.removeFrom(this.items,t)},this)},c.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete f[e],delete this.element.outlayerGUID,h&&h.removeData(this.element,this.constructor.namespace)},s.data=function(t){t=o.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&f[e]},s.create=function(t,e){var i=r(s);return i.defaults=o.extend({},s.defaults),o.extend(i.defaults,e),i.compatOptions=o.extend({},s.compatOptions),i.namespace=t,i.data=s.data,i.Item=r(n),o.htmlInit(i,t),h&&h.bridget&&h.bridget(t,i),i};var m={ms:1,s:1e3};return s.Item=n,s}),function(t,e){"function"==typeof define&&define.amd?define("isotope
23/js/item",["outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.Item=e(t.Outlayer))}(window,function(t){"use strict";function e(){t.Item.apply(this,arguments)}var i=e.prototype=Object.create(t.Item.prototype),o=i._create;i._create=function(){this.id=this.layout.itemGUID++,o.call(this),this.sortData={}},i.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData["original-order"]=this.id,this.sortData.random=Math.random();var t=this.layout.options.getSortData,e=this.layout._sorters;for(var i in t){var o=e[i];this.sortData[i]=o(this.element,this)}}};var n=i.destroy;return i.destroy=function(){n.apply(this,arguments),this.css({display:""})},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-mode",["get-size/get-size","outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("get-size"),require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.LayoutMode=e(t.getSize,t.Outlayer))}(window,function(t,e){"use strict";function i(t){this.isotope=t,t&&(this.options=t.options[this.namespace],this.element=t.element,this.items=t.filteredItems,this.size=t.size)}var o=i.prototype,n=["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout","_getOption"];
vendor: 12,466 bytes, lines 23-24
23return n.forEach(function(t){o[t]=function(){return e.prototype[t].apply(this.isotope,arguments)}}),o.needsVerticalResizeLayout=function(){var e=t(this.isotope.element),i=this.isotope.size&&e;return i&&e.innerHeight!=this.isotope.size.innerHeight},o._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},o.getColumnWidth=function(){this.getSegmentSize("column","Width")},o.getRowHeight=function(){this.getSegmentSize("row","Height")},o.getSegmentSize=function(t,e){var i=t+e,o="outer"+e;if(this._getMeasurement(i,o),!this[i]){var n=this.getFirstItemSize();this[i]=n&&n[o]||this.isotope.size["inner"+e]}},o.getFirstItemSize=function(){var e=this.isotope.filteredItems[0];return e&&e.element&&t(e.element)},o.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},o.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},i.modes={},i.create=function(t,e){function n(){i.apply(this,arguments)}return n.prototype=Object.create(o),n.prototype.constructor=n,e&&(n.options=e),n.prototype.namespace=t,i.modes[t]=n,n},i}),function(t,e){"function"==typeof define&&define.amd?define("masonry/masonry",["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var o=i.prototype;return o._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},o.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var o=this.columnWidth+=this.gutter,n=this.containerWidth+this.gutter,s=n/o,r=o-n%o,a=r&&r<1?"round":"floor";s=Math[a](s),this.cols=Math.max(s,1)},o.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,o=e(i);this.containerWidth=o&&o.innerWidth},o._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&e<1?"round":"ceil",o=Math[i](t.size.outerWidth/this.columnWidth);o=Math.min(o,this.cols);for(var n=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",s=this[n](o,t),r={x:this.columnWidth*s.col,y:s.y},a=s.y+t.size.outerHeight,u=o+s.col,h=s.col;h<u;h++)this.colYs[h]=a;return r},o._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},o._getTopColGroup=function(t){if(t<2)return this.colYs;for(var e=[],i=this.cols+1-t,o=0;o<i;o++)e[o]=this._getColGroupY(o,t);return e},o._getColGroupY=function(t,e){if(e<2)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},o._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,o=t>1&&i+t>this.cols;i=o?0:i;var n=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=n?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},o._manageStamp=function(t){var i=e(t),o=this._getElementOffset(t),n=this._getOption("originLeft"),s=n?o.left:o.right,r=s+i.outerWidth,a=Math.floor(s/this.columnWidth);a=Math.max(0,a);var u=Math.floor(r/this.columnWidth);u-=r%this.columnWidth?0:1,u=Math.min(this.cols-1,u);for(var h=this._getOption("originTop"),d=(h?o.top:o.bottom)+i.outerHeight,l=a;l<=u;l++)this.colYs[l]=Math.max(d,this.colYs[l])},o._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},o._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},o.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/masonry",["../layout-mode","masonry/masonry"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode"),require("masonry-layout")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){"use strict";var i=t.create("masonry"),o=i.prototype,n={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)n[s]||(o[s]=e.prototype[s]);var r=o.measureColumns;o.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=o._getOption;return o._getOption=function(t){return"fitWidth"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/fit-rows",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("fitRows"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var o={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,o},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/vertical",["../layout-mode"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("vertical",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","desandro-matches-selector/matches-selector","fizzy-ui-utils/utils","isotope/js/item","isotope/js/layout-mode","isotope/js/layout-modes/masonry","isotope/js/layout-modes/fit-rows","isotope/js/layout-modes/vertical"],function(i,o,n,s,r,a){return e(t,i,o,n,s,r,a)}):"object"==typeof module&&module.exports?module.exports=e(t,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("isotope/js/item"),require("isotope/js/layout-mode"),require("isotope/js/layout-modes/masonry"),require("isotope/js/layout-modes/fit-rows"),require("isotope/js/layout-modes/vertical")):t.Isotope=e(t,t.Outlayer,t.getSize,t.matchesSelector,t.fizzyUIUtils,t.Isotope.Item,t.Isotope.LayoutMode)}(window,function(t,e,i,o,n,s,r){function a(t,e){return function(i,o){for(var n=0;n<t.length;n++){var s=t[n],r=i.sortData[s],a=o.sortData[s];if(r>a||r<a){var u=void 0!==e[s]?e[s]:e,h=u?1:-1;return(r>a?1:-1)*h}}return 0}}var u=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\s+|\s+$/g,"")},d=e.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});d.Item=s,d.LayoutMode=r;var l=d.prototype;l._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),e.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var t in r.modes)this._initLayoutMode(t)},l.reloadItems=function(){this.itemGUID=0,e.prototype.reloadItems.call(this)},l._itemize=function(){for(var t=e.prototype._itemize.apply(this,arguments),i=0;i<t.length;i++){var o=t[i];o.id=this.itemGUID++}return this._updateItemsSortData(t),t},l._initLayoutMode=function(t){var e=r.modes[t],i=this.options[t]||{};this.options[t]=e.options?n.extend(e.options,i):i,this.modes[t]=new e(this)},l.layout=function(){return!this._isLayoutInited&&this._getOption("initLayout")?void this.arrange():void this._layout()},l._layout=function(){var t=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,t),this._isLayoutInited=!0},l.arrange=function(t){this.option(t),this._getIsInstant();var e=this._filter(this.items);this.filteredItems=e.matches,this._bindArrangeComplete(),this._isInstant?this._noTransition(this._hideReveal,[e]):this._hideReveal(e),this._sort(),this._layout()},l._init=l.arrange,l._hideReveal=function(t){this.reveal(t.needReveal),this.hide(t.needHide)},l._getIsInstant=function(){var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;return this._isInstant=e,e},l._bindArrangeComplete=function(){function t(){e&&i&&o&&n.dispatchEvent("arrangeComplete",null,[n.filteredItems])}var e,i,o,n=this;this.once("layoutComplete",function(){e=!0,t()}),this.once("hideComplete",function(){i=!0,t()}),this.once("revealComplete",function(){o=!0,t()})},l._filter=function(t){var e=this.options.filter;e=e||"*";for(var i=[],o=[],n=[],s=this._getFilterTest(e),r=0;r<t.length;r++){var a=t[r];if(!a.isIgnored){var u=s(a);u&&i.push(a),u&&a.isHidden?o.push(a):u||a.isHidden||n.push(a)}}return{matches:i,needReveal:o,needHide:n}},l._getFilterTest=function(t){return u&&this.options.isJQueryFiltering?function(e){return u(e.element).is(t)}:"function"==typeof t?function(e){return t(e.element)}:function(e){return o(e.element,t)}},l.updateSortData=function(t){
24var e;t?(t=n.makeArray(t),e=this.getItems(t)):e=this.items,this._getSorters(),this._updateItemsSortData(e)},l._getSorters=function(){var t=this.options.getSortData;for(var e in t){var i=t[e];this._sorters[e]=f(i)}},l._updateItemsSortData=function(t){for(var e=t&&t.length,i=0;e&&i<e;i++){var o=t[i];o.updateSortData()}};var f=function(){function t(t){if("string"!=typeof t)return t;var i=h(t).split(" "),o=i[0],n=o.match(/^\[(.+)\]$/),s=n&&n[1],r=e(s,o),a=d.sortDataParsers[i[1]];return t=a?function(t){return t&&a(r(t))}:function(t){return t&&r(t)}}function e(t,e){return t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&i.textContent}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},l._sort=function(){if(this.options.sortBy){var t=n.makeArray(this.options.sortBy);this._getIsSameSortBy(t)||(this.sortHistory=t.concat(this.sortHistory));var e=a(this.sortHistory,this.options.sortAscending);this.filteredItems.sort(e)}},l._getIsSameSortBy=function(t){for(var e=0;e<t.length;e++)if(t[e]!=this.sortHistory[e])return!1;return!0},l._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error("No layout mode: "+t);return e.options=this.options[t],e},l._resetLayout=function(){e.prototype._resetLayout.call(this),this._mode()._resetLayout()},l._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},l._manageStamp=function(t){this._mode()._manageStamp(t)},l._getContainerSize=function(){return this._mode()._getContainerSize()},l.needsResizeLayout=function(){return this._mode().needsResizeLayout()},l.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},l.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},l._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},l.insert=function(t){var e=this.addItems(t);if(e.length){var i,o,n=e.length;for(i=0;i<n;i++)o=e[i],this.element.appendChild(o.element);var s=this._filter(e).matches;for(i=0;i<n;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;i<n;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var c=l.remove;return l.remove=function(t){t=n.makeArray(t);var e=this.getItems(t);c.call(this,t);for(var i=e&&e.length,o=0;i&&o<i;o++){var s=e[o];n.removeFrom(this.filteredItems,s)}},l.shuffle=function(){for(var t=0;t<this.items.length;t++){var e=this.items[t];e.sortData.random=Math.random()}this.options.sortBy="random",this._sort(),this._layout()},l._noTransition=function(t,e){var i=this.options.transitionDuration;this.options.transitionDuration=0;
vendor: 4,140 bytes, lines 24-31
24var o=t.apply(this,e);return this.options.transitionDuration=i,o},l.getFilteredItemElements=function(){return this.filteredItems.map(function(t){return t.element})},d});
25/*!
26 * imagesLoaded PACKAGED v4.1.4
27 * JavaScript is all like "You images are done yet or what?"
28 * MIT License
29 */
30
31!function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return n.indexOf(t)==-1&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return n!=-1&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){i=i.slice(0),t=t||[];for(var n=this._onceEvents&&this._onceEvents[e],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(e,r),delete n[r]),r.apply(this,t)}return this}},t.allOff=function(){delete this._events,delete this._onceEvents},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return t(e,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){if(Array.isArray(e))return e;var t="object"==typeof e&&"number"==typeof e.length;return t?d.call(e):[e]}function o(e,t,r){if(!(this instanceof o))return new o(e,t,r);var s=e;return"string"==typeof e&&(s=document.querySelectorAll(e)),s?(this.elements=n(s),this.options=i({},this.options),"function"==typeof t?r=t:i(this.options,t),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(this.check.bind(this))):void a.error("Bad element for imagesLoaded "+(s||e))}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console,d=Array.prototype.slice;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&u[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var u={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once("progress",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();
31return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},r.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o});
32/*
33 Sticky-kit v1.1.2 | WTFPL | Leaf Corcoran 2015 | http://leafo.net
34*/
35(function(){var b,f;b=this.jQuery||window.jQuery;f=b(window);b.fn.stick_in_parent=function(d){var A,w,J,n,B,K,p,q,k,E,t;null==d&&(d={});t=d.sticky_class;B=d.inner_scrolling;E=d.recalc_every;k=d.parent;q=d.offset_top;p=d.spacer;w=d.bottoming;null==q&&(q=0);null==k&&(k=void 0);null==B&&(B=!0);null==t&&(t="is_stuck");A=b(document);null==w&&(w=!0);J=function(a,d,n,C,F,u,r,G){var v,H,m,D,I,c,g,x,y,z,h,l;if(!a.data("sticky_kit")){a.data("sticky_kit",!0);I=A.height();g=a.parent();null!=k&&(g=g.closest(k));
36if(!g.length)throw"failed to find stick parent";v=m=!1;(h=null!=p?p&&a.closest(p):b("<div />"))&&h.css("position",a.css("position"));x=function(){var c,f,e;if(!G&&(I=A.height(),c=parseInt(g.css("border-top-width"),10),f=parseInt(g.css("padding-top"),10),d=parseInt(g.css("padding-bottom"),10),n=g.offset().top+c+f,C=g.height(),m&&(v=m=!1,null==p&&(a.insertAfter(h),h.detach()),a.css({position:"",top:"",width:"",bottom:""}).removeClass(t),e=!0),F=a.offset().top-(parseInt(a.css("margin-top"),10)||0)-q,
37u=a.outerHeight(!0),r=a.css("float"),h&&h.css({width:a.outerWidth(!0),height:u,display:a.css("display"),"vertical-align":a.css("vertical-align"),"float":r}),e))return l()};x();if(u!==C)return D=void 0,c=q,z=E,l=function(){var b,l,e,k;if(!G&&(e=!1,null!=z&&(--z,0>=z&&(z=E,x(),e=!0)),e||A.height()===I||x(),e=f.scrollTop(),null!=D&&(l=e-D),D=e,m?(w&&(k=e+u+c>C+n,v&&!k&&(v=!1,a.css({position:"fixed",bottom:"",top:c}).trigger("sticky_kit:unbottom"))),e<F&&(m=!1,c=q,null==p&&("left"!==r&&"right"!==r||a.insertAfter(h),
38h.detach()),b={position:"",width:"",top:""},a.css(b).removeClass(t).trigger("sticky_kit:unstick")),B&&(b=f.height(),u+q>b&&!v&&(c-=l,c=Math.max(b-u,c),c=Math.min(q,c),m&&a.css({top:c+"px"})))):e>F&&(m=!0,b={position:"fixed",top:c},b.width="border-box"===a.css("box-sizing")?a.outerWidth()+"px":a.width()+"px",a.css(b).addClass(t),null==p&&(a.after(h),"left"!==r&&"right"!==r||h.append(a)),a.trigger("sticky_kit:stick")),m&&w&&(null==k&&(k=e+u+c>C+n),!v&&k)))return v=!0,"static"===g.css("position")&&g.css({position:"relative"}),
39a.css({position:"absolute",bottom:d,top:"auto"}).trigger("sticky_kit:bottom")},y=function(){x();return l()},H=function(){G=!0;f.off("touchmove",l);f.off("scroll",l);f.off("resize",y);b(document.body).off("sticky_kit:recalc",y);a.off("sticky_kit:detach",H);a.removeData("sticky_kit");a.css({position:"",bottom:"",top:"",width:""});g.position("position","");if(m)return null==p&&("left"!==r&&"right"!==r||a.insertAfter(h),h.remove()),a.removeClass(t)},f.on("touchmove",l),f.on("scroll",l),f.on("resize",
40y),b(document.body).on("sticky_kit:recalc",y),a.on("sticky_kit:detach",H),setTimeout(l,0)}};n=0;for(K=this.length;n<K;n++)d=this[n],J(b(d));return this}}).call(this);
41
vendor: 51,351 bytes, lines 42-1447
42/*!
43 * Modernizr v2.8.3
44 * www.modernizr.com
45 *
46 * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton
47 * Available under the BSD and MIT licenses: www.modernizr.com/license/
48 */
49
50/*
51 * Modernizr tests which native CSS3 and HTML5 features are available in
52 * the current UA and makes the results available to you in two ways:
53 * as properties on a global Modernizr object, and as classes on the
54 * <html> element. This information allows you to progressively enhance
55 * your pages with a granular level of control over the experience.
56 *
57 * Modernizr has an optional (not included) conditional resource loader
58 * called Modernizr.load(), based on Yepnope.js (yepnopejs.com).
59 * To get a build that includes Modernizr.load(), as well as choosing
60 * which tests to include, go to www.modernizr.com/download/
61 *
62 * Authors        Faruk Ates, Paul Irish, Alex Sexton
63 * Contributors   Ryan Seddon, Ben Alman
64 */
65
66window.Modernizr = (function( window, document, undefined ) {
67
68    var version = '2.8.3',
69
70    Modernizr = {},
71
72    /*>>cssclasses*/
73    // option for enabling the HTML classes to be added
74    enableClasses = true,
75    /*>>cssclasses*/
76
77    docElement = document.documentElement,
78
79    /**
80     * Create our "modernizr" element that we do most feature tests on.
81     */
82    mod = 'modernizr',
83    modElem = document.createElement(mod),
84    mStyle = modElem.style,
85
86    /**
87     * Create the input element for various Web Forms feature tests.
88     */
89    inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ ,
90
91    /*>>smile*/
92    smile = ':)',
93    /*>>smile*/
94
95    toString = {}.toString,
96
97    // TODO :: make the prefixes more granular
98    /*>>prefixes*/
99    // List of property values to set for css tests. See ticket #21
100    prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),
101    /*>>prefixes*/
102
103    /*>>domprefixes*/
104    // Following spec is to expose vendor-specific style properties as:
105    //   elem.style.WebkitBorderRadius
106    // and the following would be incorrect:
107    //   elem.style.webkitBorderRadius
108
109    // Webkit ghosts their properties in lowercase but Opera & Moz do not.
110    // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+
111    //   erik.eae.net/archives/2008/03/10/21.48.10/
112
113    // More here: github.com/Modernizr/Modernizr/issues/issue/21
114    omPrefixes = 'Webkit Moz O ms',
115
116    cssomPrefixes = omPrefixes.split(' '),
117
118    domPrefixes = omPrefixes.toLowerCase().split(' '),
119    /*>>domprefixes*/
120
121    /*>>ns*/
122    ns = {'svg': 'http://www.w3.org/2000/svg'},
123    /*>>ns*/
124
125    tests = {},
126    inputs = {},
127    attrs = {},
128
129    classes = [],
130
131    slice = classes.slice,
132
133    featureName, // used in testing loop
134
135
136    /*>>teststyles*/
137    // Inject element with style element and some CSS rules
138    injectElementWithStyles = function( rule, callback, nodes, testnames ) {
139
140      var style, ret, node, docOverflow,
141          div = document.createElement('div'),
142          // After page load injecting a fake body doesn't work so check if body exists
143          body = document.body,
144          // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it.
145          fakeBody = body || document.createElement('body');
146
147      if ( parseInt(nodes, 10) ) {
148          // In order not to give false positives we create a node for each test
149          // This also allows the method to scale for unspecified uses
150          while ( nodes-- ) {
151              node = document.createElement('div');
152              node.id = testnames ? testnames[nodes] : mod + (nodes + 1);
153              div.appendChild(node);
154          }
155      }
156
157      // <style> elements in IE6-9 are considered 'NoScope' elements and therefore will be removed
158      // when injected with innerHTML. To get around this you need to prepend the 'NoScope' element
159      // with a 'scoped' element, in our case the soft-hyphen entity as it won't mess with our measurements.
160      // msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx
161      // Documents served as xml will throw if using &shy; so use xml friendly encoded version. See issue #277
162      style = ['&#173;','<style id="s', mod, '">', rule, '</style>'].join('');
163      div.id = mod;
164      // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.
165      // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270
166      (body ? div : fakeBody).innerHTML += style;
167      fakeBody.appendChild(div);
168      if ( !body ) {
169          //avoid crashing IE8, if background image is used
170          fakeBody.style.background = '';
171          //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible
172          fakeBody.style.overflow = 'hidden';
173          docOverflow = docElement.style.overflow;
174          docElement.style.overflow = 'hidden';
175          docElement.appendChild(fakeBody);
176      }
177
178      ret = callback(div, rule);
179      // If this is done after page load we don't want to remove the body so check if body exists
180      if ( !body ) {
181          fakeBody.parentNode.removeChild(fakeBody);
182          docElement.style.overflow = docOverflow;
183      } else {
184          div.parentNode.removeChild(div);
185      }
186
187      return !!ret;
188
189    },
190    /*>>teststyles*/
191
192    /*>>mq*/
193    // adapted from matchMedia polyfill
194    // by Scott Jehl and Paul Irish
195    // gist.github.com/786768
196    testMediaQuery = function( mq ) {
197
198      var matchMedia = window.matchMedia || window.msMatchMedia;
199      if ( matchMedia ) {
200        return matchMedia(mq) && matchMedia(mq).matches || false;
201      }
202
203      var bool;
204
205      injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) {
206        bool = (window.getComputedStyle ?
207                  getComputedStyle(node, null) :
208                  node.currentStyle)['position'] == 'absolute';
209      });
210
211      return bool;
212
213     },
214     /*>>mq*/
215
216
217    /*>>hasevent*/
218    //
219    // isEventSupported determines if a given element supports the given event
220    // kangax.github.com/iseventsupported/
221    //
222    // The following results are known incorrects:
223    //   Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative
224    //   Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333
225    //   ...
226    isEventSupported = (function() {
227
228      var TAGNAMES = {
229        'select': 'input', 'change': 'input',
230        'submit': 'form', 'reset': 'form',
231        'error': 'img', 'load': 'img', 'abort': 'img'
232      };
233
234      function isEventSupported( eventName, element ) {
235
236        element = element || document.createElement(TAGNAMES[eventName] || 'div');
237        eventName = 'on' + eventName;
238
239        // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those
240        var isSupported = eventName in element;
241
242        if ( !isSupported ) {
243          // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element
244          if ( !element.setAttribute ) {
245            element = document.createElement('div');
246          }
247          if ( element.setAttribute && element.removeAttribute ) {
248            element.setAttribute(eventName, '');
249            isSupported = is(element[eventName], 'function');
250
251            // If property was created, "remove it" (by setting value to `undefined`)
252            if ( !is(element[eventName], 'undefined') ) {
253              element[eventName] = undefined;
254            }
255            element.removeAttribute(eventName);
256          }
257        }
258
259        element = null;
260        return isSupported;
261      }
262      return isEventSupported;
263    })(),
264    /*>>hasevent*/
265
266    // TODO :: Add flag for hasownprop ? didn't last time
267
268    // hasOwnProperty shim by kangax needed for Safari 2.0 support
269    _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp;
270
271    if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {
272      hasOwnProp = function (object, property) {
273        return _hasOwnProperty.call(object, property);
274      };
275    }
276    else {
277      hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */
278        return ((property in object) && is(object.constructor.prototype[property], 'undefined'));
279      };
280    }
281
282    // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js
283    // es5.github.com/#x15.3.4.5
284
285    if (!Function.prototype.bind) {
286      Function.prototype.bind = function bind(that) {
287
288        var target = this;
289
290        if (typeof target != "function") {
291            throw new TypeError();
292        }
293
294        var args = slice.call(arguments, 1),
295            bound = function () {
296
297            if (this instanceof bound) {
298
299              var F = function(){};
300              F.prototype = target.prototype;
301              var self = new F();
302
303              var result = target.apply(
304                  self,
305                  args.concat(slice.call(arguments))
306              );
307              if (Object(result) === result) {
308                  return result;
309              }
310              return self;
311
312            } else {
313
314              return target.apply(
315                  that,
316                  args.concat(slice.call(arguments))
317              );
318
319            }
320
321        };
322
323        return bound;
324      };
325    }
326
327    /**
328     * setCss applies given styles to the Modernizr DOM node.
329     */
330    function setCss( str ) {
331        mStyle.cssText = str;
332    }
333
334    /**
335     * setCssAll extrapolates all vendor-specific css strings.
336     */
337    function setCssAll( str1, str2 ) {
338        return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));
339    }
340
341    /**
342     * is returns a boolean for if typeof obj is exactly type.
343     */
344    function is( obj, type ) {
345        return typeof obj === type;
346    }
347
348    /**
349     * contains returns a boolean for if substr is found within str.
350     */
351    function contains( str, substr ) {
352        return !!~('' + str).indexOf(substr);
353    }
354
355    /*>>testprop*/
356
357    // testProps is a generic CSS / DOM property test.
358
359    // In testing support for a given CSS property, it's legit to test:
360    //    `elem.style[styleName] !== undefined`
361    // If the property is supported it will return an empty string,
362    // if unsupported it will return undefined.
363
364    // We'll take advantage of this quick test and skip setting a style
365    // on our modernizr element, but instead just testing undefined vs
366    // empty string.
367
368    // Because the testing of the CSS property names (with "-", as
369    // opposed to the camelCase DOM properties) is non-portable and
370    // non-standard but works in WebKit and IE (but not Gecko or Opera),
371    // we explicitly reject properties with dashes so that authors
372    // developing in WebKit or IE first don't end up with
373    // browser-specific content by accident.
374
375    function testProps( props, prefixed ) {
376        for ( var i in props ) {
377            var prop = props[i];
378            if ( !contains(prop, "-") && mStyle[prop] !== undefined ) {
379                return prefixed == 'pfx' ? prop : true;
380            }
381        }
382        return false;
383    }
384    /*>>testprop*/
385
386    // TODO :: add testDOMProps
387    /**
388     * testDOMProps is a generic DOM property test; if a browser supports
389     *   a certain property, it won't return undefined for it.
390     */
391    function testDOMProps( props, obj, elem ) {
392        for ( var i in props ) {
393            var item = obj[props[i]];
394            if ( item !== undefined) {
395
396                // return the property name as a string
397                if (elem === false) return props[i];
398
399                // let's bind a function
400                if (is(item, 'function')){
401                  // default to autobind unless override
402                  return item.bind(elem || obj);
403                }
404
405                // return the unbound function or obj or value
406                return item;
407            }
408        }
409        return false;
410    }
411
412    /*>>testallprops*/
413    /**
414     * testPropsAll tests a list of DOM properties we want to check against.
415     *   We specify literally ALL possible (known and/or likely) properties on
416     *   the element including the non-vendor prefixed one, for forward-
417     *   compatibility.
418     */
419    function testPropsAll( prop, prefixed, elem ) {
420
421        var ucProp  = prop.charAt(0).toUpperCase() + prop.slice(1),
422            props   = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');
423
424        // did they call .prefixed('boxSizing') or are we just testing a prop?
425        if(is(prefixed, "string") || is(prefixed, "undefined")) {
426          return testProps(props, prefixed);
427
428        // otherwise, they called .prefixed('requestAnimationFrame', window[, elem])
429        } else {
430          props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');
431          return testDOMProps(props, prefixed, elem);
432        }
433    }
434    /*>>testallprops*/
435
436
437    /**
438     * Tests
439     * -----
440     */
441
442    // The *new* flexbox
443    // dev.w3.org/csswg/css3-flexbox
444
445    tests['flexbox'] = function() {
446      return testPropsAll('flexWrap');
447    };
448
449    // The *old* flexbox
450    // www.w3.org/TR/2009/WD-css3-flexbox-20090723/
451
452    tests['flexboxlegacy'] = function() {
453        return testPropsAll('boxDirection');
454    };
455
456    // On the S60 and BB Storm, getContext exists, but always returns undefined
457    // so we actually have to call getContext() to verify
458    // github.com/Modernizr/Modernizr/issues/issue/97/
459
460    tests['canvas'] = function() {
461        var elem = document.createElement('canvas');
462        return !!(elem.getContext && elem.getContext('2d'));
463    };
464
465    tests['canvastext'] = function() {
466        return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function'));
467    };
468
469    // webk.it/70117 is tracking a legit WebGL feature detect proposal
470
471    // We do a soft detect which may false positive in order to avoid
472    // an expensive context creation: bugzil.la/732441
473
474    tests['webgl'] = function() {
475        return !!window.WebGLRenderingContext;
476    };
477
478    /*
479     * The Modernizr.touch test only indicates if the browser supports
480     *    touch events, which does not necessarily reflect a touchscreen
481     *    device, as evidenced by tablets running Windows 7 or, alas,
482     *    the Palm Pre / WebOS (touch) phones.
483     *
484     * Additionally, Chrome (desktop) used to lie about its support on this,
485     *    but that has since been rectified: crbug.com/36415
486     *
487     * We also test for Firefox 4 Multitouch Support.
488     *
489     * For more info, see: modernizr.github.com/Modernizr/touch.html
490     */
491
492    tests['touch'] = function() {
493        var bool;
494
495        if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {
496          bool = true;
497        } else {
498          injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) {
499            bool = node.offsetTop === 9;
500          });
501        }
502
503        return bool;
504    };
505
506
507    // geolocation is often considered a trivial feature detect...
508    // Turns out, it's quite tricky to get right:
509    //
510    // Using !!navigator.geolocation does two things we don't want. It:
511    //   1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513
512    //   2. Disables page caching in WebKit: webk.it/43956
513    //
514    // Meanwhile, in Firefox < 8, an about:config setting could expose
515    // a false positive that would throw an exception: bugzil.la/688158
516
517    tests['geolocation'] = function() {
518        return 'geolocation' in navigator;
519    };
520
521
522    tests['postmessage'] = function() {
523      return !!window.postMessage;
524    };
525
526
527    // Chrome incognito mode used to throw an exception when using openDatabase
528    // It doesn't anymore.
529    tests['websqldatabase'] = function() {
530      return !!window.openDatabase;
531    };
532
533    // Vendors had inconsistent prefixing with the experimental Indexed DB:
534    // - Webkit's implementation is accessible through webkitIndexedDB
535    // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB
536    // For speed, we don't test the legacy (and beta-only) indexedDB
537    tests['indexedDB'] = function() {
538      return !!testPropsAll("indexedDB", window);
539    };
540
541    // documentMode logic from YUI to filter out IE8 Compat Mode
542    //   which false positives.
543    tests['hashchange'] = function() {
544      return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7);
545    };
546
547    // Per 1.6:
548    // This used to be Modernizr.historymanagement but the longer
549    // name has been deprecated in favor of a shorter and property-matching one.
550    // The old API is still available in 1.6, but as of 2.0 will throw a warning,
551    // and in the first release thereafter disappear entirely.
552    tests['history'] = function() {
553      return !!(window.history && history.pushState);
554    };
555
556    tests['draganddrop'] = function() {
557        var div = document.createElement('div');
558        return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);
559    };
560
561    // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10
562    // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17.
563    // FF10 still uses prefixes, so check for it until then.
564    // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/
565    tests['websockets'] = function() {
566        return 'WebSocket' in window || 'MozWebSocket' in window;
567    };
568
569
570    // css-tricks.com/rgba-browser-support/
571    tests['rgba'] = function() {
572        // Set an rgba() color and check the returned value
573
574        setCss('background-color:rgba(150,255,150,.5)');
575
576        return contains(mStyle.backgroundColor, 'rgba');
577    };
578
579    tests['hsla'] = function() {
580        // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally,
581        //   except IE9 who retains it as hsla
582
583        setCss('background-color:hsla(120,40%,100%,.5)');
584
585        return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla');
586    };
587
588    tests['multiplebgs'] = function() {
589        // Setting multiple images AND a color on the background shorthand property
590        //  and then querying the style.background property value for the number of
591        //  occurrences of "url(" is a reliable method for detecting ACTUAL support for this!
592
593        setCss('background:url(https://),url(https://),red url(https://)');
594
595        // If the UA supports multiple backgrounds, there should be three occurrences
596        //   of the string "url(" in the return value for elemStyle.background
597
598        return (/(url\s*\(.*?){3}/).test(mStyle.background);
599    };
600
601
602
603    // this will false positive in Opera Mini
604    //   github.com/Modernizr/Modernizr/issues/396
605
606    tests['backgroundsize'] = function() {
607        return testPropsAll('backgroundSize');
608    };
609
610    tests['borderimage'] = function() {
611        return testPropsAll('borderImage');
612    };
613
614
615    // Super comprehensive table about all the unique implementations of
616    // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance
617
618    tests['borderradius'] = function() {
619        return testPropsAll('borderRadius');
620    };
621
622    // WebOS unfortunately false positives on this test.
623    tests['boxshadow'] = function() {
624        return testPropsAll('boxShadow');
625    };
626
627    // FF3.0 will false positive on this test
628    tests['textshadow'] = function() {
629        return document.createElement('div').style.textShadow === '';
630    };
631
632
633    tests['opacity'] = function() {
634        // Browsers that actually have CSS Opacity implemented have done so
635        //  according to spec, which means their return values are within the
636        //  range of [0.0,1.0] - including the leading zero.
637
638        setCssAll('opacity:.55');
639
640        // The non-literal . in this regex is intentional:
641        //   German Chrome returns this value as 0,55
642        // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632
643        return (/^0.55$/).test(mStyle.opacity);
644    };
645
646
647    // Note, Android < 4 will pass this test, but can only animate
648    //   a single property at a time
649    //   goo.gl/v3V4Gp
650    tests['cssanimations'] = function() {
651        return testPropsAll('animationName');
652    };
653
654
655    tests['csscolumns'] = function() {
656        return testPropsAll('columnCount');
657    };
658
659
660    tests['cssgradients'] = function() {
661        /**
662         * For CSS Gradients syntax, please see:
663         * webkit.org/blog/175/introducing-css-gradients/
664         * developer.mozilla.org/en/CSS/-moz-linear-gradient
665         * developer.mozilla.org/en/CSS/-moz-radial-gradient
666         * dev.w3.org/csswg/css3-images/#gradients-
667         */
668
669        var str1 = 'background-image:',
670            str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));',
671            str3 = 'linear-gradient(left top,#9f9, white);';
672
673        setCss(
674             // legacy webkit syntax (FIXME: remove when syntax not in use anymore)
675              (str1 + '-webkit- '.split(' ').join(str2 + str1) +
676             // standard syntax             // trailing 'background-image:'
677              prefixes.join(str3 + str1)).slice(0, -str1.length)
678        );
679
680        return contains(mStyle.backgroundImage, 'gradient');
681    };
682
683
684    tests['cssreflections'] = function() {
685        return testPropsAll('boxReflect');
686    };
687
688
689    tests['csstransforms'] = function() {
690        return !!testPropsAll('transform');
691    };
692
693
694    tests['csstransforms3d'] = function() {
695
696        var ret = !!testPropsAll('perspective');
697
698        // Webkit's 3D transforms are passed off to the browser's own graphics renderer.
699        //   It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in
700        //   some conditions. As a result, Webkit typically recognizes the syntax but
701        //   will sometimes throw a false positive, thus we must do a more thorough check:
702        if ( ret && 'webkitPerspective' in docElement.style ) {
703
704          // Webkit allows this media query to succeed only if the feature is enabled.
705          // `@media (transform-3d),(-webkit-transform-3d){ ... }`
706          injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) {
707            ret = node.offsetLeft === 9 && node.offsetHeight === 3;
708          });
709        }
710        return ret;
711    };
712
713
714    tests['csstransitions'] = function() {
715        return testPropsAll('transition');
716    };
717
718
719    /*>>fontface*/
720    // @font-face detection routine by Diego Perini
721    // javascript.nwbox.com/CSSSupport/
722
723    // false positives:
724    //   WebOS github.com/Modernizr/Modernizr/issues/342
725    //   WP7   github.com/Modernizr/Modernizr/issues/538
726    tests['fontface'] = function() {
727        var bool;
728
729        injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function( node, rule ) {
730          var style = document.getElementById('smodernizr'),
731              sheet = style.sheet || style.styleSheet,
732              cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : '';
733
734          bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0;
735        });
736
737        return bool;
738    };
739    /*>>fontface*/
740
741    // CSS generated content detection
742    tests['generatedcontent'] = function() {
743        var bool;
744
745        injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function( node ) {
746          bool = node.offsetHeight >= 3;
747        });
748
749        return bool;
750    };
751
752
753
754    // These tests evaluate support of the video/audio elements, as well as
755    // testing what types of content they support.
756    //
757    // We're using the Boolean constructor here, so that we can extend the value
758    // e.g.  Modernizr.video     // true
759    //       Modernizr.video.ogg // 'probably'
760    //
761    // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845
762    //                     thx to NielsLeenheer and zcorpan
763
764    // Note: in some older browsers, "no" was a return value instead of empty string.
765    //   It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2
766    //   It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5
767
768    tests['video'] = function() {
769        var elem = document.createElement('video'),
770            bool = false;
771
772        // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224
773        try {
774            if ( bool = !!elem.canPlayType ) {
775                bool      = new Boolean(bool);
776                bool.ogg  = elem.canPlayType('video/ogg; codecs="theora"')      .replace(/^no$/,'');
777
778                // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546
779                bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,'');
780
781                bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,'');
782            }
783
784        } catch(e) { }
785
786        return bool;
787    };
788
789    tests['audio'] = function() {
790        var elem = document.createElement('audio'),
791            bool = false;
792
793        try {
794            if ( bool = !!elem.canPlayType ) {
795                bool      = new Boolean(bool);
796                bool.ogg  = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,'');
797                bool.mp3  = elem.canPlayType('audio/mpeg;')               .replace(/^no$/,'');
798
799                // Mimetypes accepted:
800                //   developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements
801                //   bit.ly/iphoneoscodecs
802                bool.wav  = elem.canPlayType('audio/wav; codecs="1"')     .replace(/^no$/,'');
803                bool.m4a  = ( elem.canPlayType('audio/x-m4a;')            ||
804                              elem.canPlayType('audio/aac;'))             .replace(/^no$/,'');
805            }
806        } catch(e) { }
807
808        return bool;
809    };
810
811
812    // In FF4, if disabled, window.localStorage should === null.
813
814    // Normally, we could not test that directly and need to do a
815    //   `('localStorage' in window) && ` test first because otherwise Firefox will
816    //   throw bugzil.la/365772 if cookies are disabled
817
818    // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem
819    // will throw the exception:
820    //   QUOTA_EXCEEDED_ERRROR DOM Exception 22.
821    // Peculiarly, getItem and removeItem calls do not throw.
822
823    // Because we are forced to try/catch this, we'll go aggressive.
824
825    // Just FWIW: IE8 Compat mode supports these features completely:
826    //   www.quirksmode.org/dom/html5.html
827    // But IE8 doesn't support either with local files
828
829    tests['localstorage'] = function() {
830        try {
831            localStorage.setItem(mod, mod);
832            localStorage.removeItem(mod);
833            return true;
834        } catch(e) {
835            return false;
836        }
837    };
838
839    tests['sessionstorage'] = function() {
840        try {
841            sessionStorage.setItem(mod, mod);
842            sessionStorage.removeItem(mod);
843            return true;
844        } catch(e) {
845            return false;
846        }
847    };
848
849
850    tests['webworkers'] = function() {
851        return !!window.Worker;
852    };
853
854
855    tests['applicationcache'] = function() {
856        return !!window.applicationCache;
857    };
858
859
860    // Thanks to Erik Dahlstrom
861    tests['svg'] = function() {
862        return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;
863    };
864
865    // specifically for SVG inline in HTML, not within XHTML
866    // test page: paulirish.com/demo/inline-svg
867    tests['inlinesvg'] = function() {
868      var div = document.createElement('div');
869      div.innerHTML = '<svg/>';
870      return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;
871    };
872
873    // SVG SMIL animation
874    tests['smil'] = function() {
875        return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate')));
876    };
877
878    // This test is only for clip paths in SVG proper, not clip paths on HTML content
879    // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg
880
881    // However read the comments to dig into applying SVG clippaths to HTML content here:
882    //   github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491
883    tests['svgclippaths'] = function() {
884        return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));
885    };
886
887    /*>>webforms*/
888    // input features and input types go directly onto the ret object, bypassing the tests loop.
889    // Hold this guy to execute in a moment.
890    function webforms() {
891        /*>>input*/
892        // Run through HTML5's new input attributes to see if the UA understands any.
893        // We're using f which is the <input> element created early on
894        // Mike Taylr has created a comprehensive resource for testing these attributes
895        //   when applied to all input types:
896        //   miketaylr.com/code/input-type-attr.html
897        // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
898
899        // Only input placeholder is tested while textarea's placeholder is not.
900        // Currently Safari 4 and Opera 11 have support only for the input placeholder
901        // Both tests are available in feature-detects/forms-placeholder.js
902        Modernizr['input'] = (function( props ) {
903            for ( var i = 0, len = props.length; i < len; i++ ) {
904                attrs[ props[i] ] = !!(props[i] in inputElem);
905            }
906            if (attrs.list){
907              // safari false positive's on datalist: webk.it/74252
908              // see also github.com/Modernizr/Modernizr/issues/146
909              attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement);
910            }
911            return attrs;
912        })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));
913        /*>>input*/
914
915        /*>>inputtypes*/
916        // Run through HTML5's new input types to see if the UA understands any.
917        //   This is put behind the tests runloop because it doesn't return a
918        //   true/false like all the other tests; instead, it returns an object
919        //   containing each input type with its corresponding true/false value
920
921        // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/
922        Modernizr['inputtypes'] = (function(props) {
923
924            for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) {
925
926                inputElem.setAttribute('type', inputElemType = props[i]);
927                bool = inputElem.type !== 'text';
928
929                // We first check to see if the type we give it sticks..
930                // If the type does, we feed it a textual value, which shouldn't be valid.
931                // If the value doesn't stick, we know there's input sanitization which infers a custom UI
932                if ( bool ) {
933
934                    inputElem.value         = smile;
935                    inputElem.style.cssText = 'position:absolute;visibility:hidden;';
936
937                    if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) {
938
939                      docElement.appendChild(inputElem);
940                      defaultView = document.defaultView;
941
942                      // Safari 2-4 allows the smiley as a value, despite making a slider
943                      bool =  defaultView.getComputedStyle &&
944                              defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&
945                              // Mobile android web browser has false positive, so must
946                              // check the height to see if the widget is actually there.
947                              (inputElem.offsetHeight !== 0);
948
949                      docElement.removeChild(inputElem);
950
951                    } else if ( /^(search|tel)$/.test(inputElemType) ){
952                      // Spec doesn't define any special parsing or detectable UI
953                      //   behaviors so we pass these through as true
954
955                      // Interestingly, opera fails the earlier test, so it doesn't
956                      //  even make it here.
957
958                    } else if ( /^(url|email)$/.test(inputElemType) ) {
959                      // Real url and email support comes with prebaked validation.
960                      bool = inputElem.checkValidity && inputElem.checkValidity() === false;
961
962                    } else {
963                      // If the upgraded input compontent rejects the :) text, we got a winner
964                      bool = inputElem.value != smile;
965                    }
966                }
967
968                inputs[ props[i] ] = !!bool;
969            }
970            return inputs;
971        })('search tel url email datetime date month week time datetime-local number range color'.split(' '));
972        /*>>inputtypes*/
973    }
974    /*>>webforms*/
975
976
977    // End of test definitions
978    // -----------------------
979
980
981
982    // Run through all tests and detect their support in the current UA.
983    // todo: hypothetically we could be doing an array of tests and use a basic loop here.
984    for ( var feature in tests ) {
985        if ( hasOwnProp(tests, feature) ) {
986            // run the test, throw the return value into the Modernizr,
987            //   then based on that boolean, define an appropriate className
988            //   and push it into an array of classes we'll join later.
989            featureName  = feature.toLowerCase();
990            Modernizr[featureName] = tests[feature]();
991
992            classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);
993        }
994    }
995
996    /*>>webforms*/
997    // input tests need to run.
998    Modernizr.input || webforms();
999    /*>>webforms*/
1000
1001
1002    /**
1003     * addTest allows the user to define their own feature tests
1004     * the result will be added onto the Modernizr object,
1005     * as well as an appropriate className set on the html element
1006     *
1007     * @param feature - String naming the feature
1008     * @param test - Function returning true if feature is supported, false if not
1009     */
1010     Modernizr.addTest = function ( feature, test ) {
1011       if ( typeof feature == 'object' ) {
1012         for ( var key in feature ) {
1013           if ( hasOwnProp( feature, key ) ) {
1014             Modernizr.addTest( key, feature[ key ] );
1015           }
1016         }
1017       } else {
1018
1019         feature = feature.toLowerCase();
1020
1021         if ( Modernizr[feature] !== undefined ) {
1022           // we're going to quit if you're trying to overwrite an existing test
1023           // if we were to allow it, we'd do this:
1024           //   var re = new RegExp("\\b(no-)?" + feature + "\\b");
1025           //   docElement.className = docElement.className.replace( re, '' );
1026           // but, no rly, stuff 'em.
1027           return Modernizr;
1028         }
1029
1030         test = typeof test == 'function' ? test() : test;
1031
1032         if (typeof enableClasses !== "undefined" && enableClasses) {
1033           docElement.className += ' ' + (test ? '' : 'no-') + feature;
1034         }
1035         Modernizr[feature] = test;
1036
1037       }
1038
1039       return Modernizr; // allow chaining.
1040     };
1041
1042
1043    // Reset modElem.cssText to nothing to reduce memory footprint.
1044    setCss('');
1045    modElem = inputElem = null;
1046
1047    /*>>shiv*/
1048    /**
1049     * @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
1050     */
1051    ;(function(window, document) {
1052        /*jshint evil:true */
1053        /** version */
1054        var version = '3.7.0';
1055
1056        /** Preset options */
1057        var options = window.html5 || {};
1058
1059        /** Used to skip problem elements */
1060        var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
1061
1062        /** Not all elements can be cloned in IE **/
1063        var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
1064
1065        /** Detect whether the browser supports default html5 styles */
1066        var supportsHtml5Styles;
1067
1068        /** Name of the expando, to work with multiple documents or to re-shiv one document */
1069        var expando = '_html5shiv';
1070
1071        /** The id for the the documents expando */
1072        var expanID = 0;
1073
1074        /** Cached data for each document */
1075        var expandoData = {};
1076
1077        /** Detect whether the browser supports unknown elements */
1078        var supportsUnknownElements;
1079
1080        (function() {
1081          try {
1082            var a = document.createElement('a');
1083            a.innerHTML = '<xyz></xyz>';
1084            //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
1085            supportsHtml5Styles = ('hidden' in a);
1086
1087            supportsUnknownElements = a.childNodes.length == 1 || (function() {
1088              // assign a false positive if unable to shiv
1089              (document.createElement)('a');
1090              var frag = document.createDocumentFragment();
1091              return (
1092                typeof frag.cloneNode == 'undefined' ||
1093                typeof frag.createDocumentFragment == 'undefined' ||
1094                typeof frag.createElement == 'undefined'
1095              );
1096            }());
1097          } catch(e) {
1098            // assign a false positive if detection fails => unable to shiv
1099            supportsHtml5Styles = true;
1100            supportsUnknownElements = true;
1101          }
1102
1103        }());
1104
1105        /*--------------------------------------------------------------------------*/
1106
1107        /**
1108         * Creates a style sheet with the given CSS text and adds it to the document.
1109         * @private
1110         * @param {Document} ownerDocument The document.
1111         * @param {String} cssText The CSS text.
1112         * @returns {StyleSheet} The style element.
1113         */
1114        function addStyleSheet(ownerDocument, cssText) {
1115          var p = ownerDocument.createElement('p'),
1116          parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
1117
1118          p.innerHTML = 'x<style>' + cssText + '</style>';
1119          return parent.insertBefore(p.lastChild, parent.firstChild);
1120        }
1121
1122        /**
1123         * Returns the value of `html5.elements` as an array.
1124         * @private
1125         * @returns {Array} An array of shived element node names.
1126         */
1127        function getElements() {
1128          var elements = html5.elements;
1129          return typeof elements == 'string' ? elements.split(' ') : elements;
1130        }
1131
1132        /**
1133         * Returns the data associated to the given document
1134         * @private
1135         * @param {Document} ownerDocument The document.
1136         * @returns {Object} An object of data.
1137         */
1138        function getExpandoData(ownerDocument) {
1139          var data = expandoData[ownerDocument[expando]];
1140          if (!data) {
1141            data = {};
1142            expanID++;
1143            ownerDocument[expando] = expanID;
1144            expandoData[expanID] = data;
1145          }
1146          return data;
1147        }
1148
1149        /**
1150         * returns a shived element for the given nodeName and document
1151         * @memberOf html5
1152         * @param {String} nodeName name of the element
1153         * @param {Document} ownerDocument The context document.
1154         * @returns {Object} The shived element.
1155         */
1156        function createElement(nodeName, ownerDocument, data){
1157          if (!ownerDocument) {
1158            ownerDocument = document;
1159          }
1160          if(supportsUnknownElements){
1161            return ownerDocument.createElement(nodeName);
1162          }
1163          if (!data) {
1164            data = getExpandoData(ownerDocument);
1165          }
1166          var node;
1167
1168          if (data.cache[nodeName]) {
1169            node = data.cache[nodeName].cloneNode();
1170          } else if (saveClones.test(nodeName)) {
1171            node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
1172          } else {
1173            node = data.createElem(nodeName);
1174          }
1175
1176          // Avoid adding some elements to fragments in IE < 9 because
1177          // * Attributes like `name` or `type` cannot be set/changed once an element
1178          //   is inserted into a document/fragment
1179          // * Link elements with `src` attributes that are inaccessible, as with
1180          //   a 403 response, will cause the tab/window to crash
1181          // * Script elements appended to fragments will execute when their `src`
1182          //   or `text` property is set
1183          return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
1184        }
1185
1186        /**
1187         * returns a shived DocumentFragment for the given document
1188         * @memberOf html5
1189         * @param {Document} ownerDocument The context document.
1190         * @returns {Object} The shived DocumentFragment.
1191         */
1192        function createDocumentFragment(ownerDocument, data){
1193          if (!ownerDocument) {
1194            ownerDocument = document;
1195          }
1196          if(supportsUnknownElements){
1197            return ownerDocument.createDocumentFragment();
1198          }
1199          data = data || getExpandoData(ownerDocument);
1200          var clone = data.frag.cloneNode(),
1201          i = 0,
1202          elems = getElements(),
1203          l = elems.length;
1204          for(;i<l;i++){
1205            clone.createElement(elems[i]);
1206          }
1207          return clone;
1208        }
1209
1210        /**
1211         * Shivs the `createElement` and `createDocumentFragment` methods of the document.
1212         * @private
1213         * @param {Document|DocumentFragment} ownerDocument The document.
1214         * @param {Object} data of the document.
1215         */
1216        function shivMethods(ownerDocument, data) {
1217          if (!data.cache) {
1218            data.cache = {};
1219            data.createElem = ownerDocument.createElement;
1220            data.createFrag = ownerDocument.createDocumentFragment;
1221            data.frag = data.createFrag();
1222          }
1223
1224
1225          ownerDocument.createElement = function(nodeName) {
1226            //abort shiv
1227            if (!html5.shivMethods) {
1228              return data.createElem(nodeName);
1229            }
1230            return createElement(nodeName, ownerDocument, data);
1231          };
1232
1233          ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
1234                                                          'var n=f.cloneNode(),c=n.createElement;' +
1235                                                          'h.shivMethods&&(' +
1236                                                          // unroll the `createElement` calls
1237                                                          getElements().join().replace(/[\w\-]+/g, function(nodeName) {
1238            data.createElem(nodeName);
1239            data.frag.createElement(nodeName);
1240            return 'c("' + nodeName + '")';
1241          }) +
1242            ');return n}'
1243                                                         )(html5, data.frag);
1244        }
1245
1246        /*--------------------------------------------------------------------------*/
1247
1248        /**
1249         * Shivs the given document.
1250         * @memberOf html5
1251         * @param {Document} ownerDocument The document to shiv.
1252         * @returns {Document} The shived document.
1253         */
1254        function shivDocument(ownerDocument) {
1255          if (!ownerDocument) {
1256            ownerDocument = document;
1257          }
1258          var data = getExpandoData(ownerDocument);
1259
1260          if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
1261            data.hasCSS = !!addStyleSheet(ownerDocument,
1262                                          // corrects block display not defined in IE6/7/8/9
1263                                          'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
1264                                            // adds styling not present in IE6/7/8/9
1265                                            'mark{background:#FF0;color:#000}' +
1266                                            // hides non-rendered elements
1267                                            'template{display:none}'
1268                                         );
1269          }
1270          if (!supportsUnknownElements) {
1271            shivMethods(ownerDocument, data);
1272          }
1273          return ownerDocument;
1274        }
1275
1276        /*--------------------------------------------------------------------------*/
1277
1278        /**
1279         * The `html5` object is exposed so that more elements can be shived and
1280         * existing shiving can be detected on iframes.
1281         * @type Object
1282         * @example
1283         *
1284         * // options can be changed before the script is included
1285         * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
1286         */
1287        var html5 = {
1288
1289          /**
1290           * An array or space separated string of node names of the elements to shiv.
1291           * @memberOf html5
1292           * @type Array|String
1293           */
1294          'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video',
1295
1296          /**
1297           * current version of html5shiv
1298           */
1299          'version': version,
1300
1301          /**
1302           * A flag to indicate that the HTML5 style sheet should be inserted.
1303           * @memberOf html5
1304           * @type Boolean
1305           */
1306          'shivCSS': (options.shivCSS !== false),
1307
1308          /**
1309           * Is equal to true if a browser supports creating unknown/HTML5 elements
1310           * @memberOf html5
1311           * @type boolean
1312           */
1313          'supportsUnknownElements': supportsUnknownElements,
1314
1315          /**
1316           * A flag to indicate that the document's `createElement` and `createDocumentFragment`
1317           * methods should be overwritten.
1318           * @memberOf html5
1319           * @type Boolean
1320           */
1321          'shivMethods': (options.shivMethods !== false),
1322
1323          /**
1324           * A string to describe the type of `html5` object ("default" or "default print").
1325           * @memberOf html5
1326           * @type String
1327           */
1328          'type': 'default',
1329
1330          // shivs the document according to the specified `html5` object options
1331          'shivDocument': shivDocument,
1332
1333          //creates a shived element
1334          createElement: createElement,
1335
1336          //creates a shived documentFragment
1337          createDocumentFragment: createDocumentFragment
1338        };
1339
1340        /*--------------------------------------------------------------------------*/
1341
1342        // expose html5
1343        window.html5 = html5;
1344
1345        // shiv the document
1346        shivDocument(document);
1347
1348    }(this, document));
1349    /*>>shiv*/
1350
1351    // Assign private properties to the return object with prefix
1352    Modernizr._version      = version;
1353
1354    // expose these for the plugin API. Look in the source for how to join() them against your input
1355    /*>>prefixes*/
1356    Modernizr._prefixes     = prefixes;
1357    /*>>prefixes*/
1358    /*>>domprefixes*/
1359    Modernizr._domPrefixes  = domPrefixes;
1360    Modernizr._cssomPrefixes  = cssomPrefixes;
1361    /*>>domprefixes*/
1362
1363    /*>>mq*/
1364    // Modernizr.mq tests a given media query, live against the current state of the window
1365    // A few important notes:
1366    //   * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false
1367    //   * A max-width or orientation query will be evaluated against the current state, which may change later.
1368    //   * You must specify values. Eg. If you are testing support for the min-width media query use:
1369    //       Modernizr.mq('(min-width:0)')
1370    // usage:
1371    // Modernizr.mq('only screen and (max-width:768)')
1372    Modernizr.mq            = testMediaQuery;
1373    /*>>mq*/
1374
1375    /*>>hasevent*/
1376    // Modernizr.hasEvent() detects support for a given event, with an optional element to test on
1377    // Modernizr.hasEvent('gesturestart', elem)
1378    Modernizr.hasEvent      = isEventSupported;
1379    /*>>hasevent*/
1380
1381    /*>>testprop*/
1382    // Modernizr.testProp() investigates whether a given style property is recognized
1383    // Note that the property names must be provided in the camelCase variant.
1384    // Modernizr.testProp('pointerEvents')
1385    Modernizr.testProp      = function(prop){
1386        return testProps([prop]);
1387    };
1388    /*>>testprop*/
1389
1390    /*>>testallprops*/
1391    // Modernizr.testAllProps() investigates whether a given style property,
1392    //   or any of its vendor-prefixed variants, is recognized
1393    // Note that the property names must be provided in the camelCase variant.
1394    // Modernizr.testAllProps('boxSizing')
1395    Modernizr.testAllProps  = testPropsAll;
1396    /*>>testallprops*/
1397
1398
1399    /*>>teststyles*/
1400    // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards
1401    // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... })
1402    Modernizr.testStyles    = injectElementWithStyles;
1403    /*>>teststyles*/
1404
1405
1406    /*>>prefixed*/
1407    // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input
1408    // Modernizr.prefixed('boxSizing') // 'MozBoxSizing'
1409
1410    // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style.
1411    // Return values will also be the camelCase variant, if you need to translate that to hypenated style use:
1412    //
1413    //     str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-');
1414
1415    // If you're trying to ascertain which transition end event to bind to, you might do something like...
1416    //
1417    //     var transEndEventNames = {
1418    //       'WebkitTransition' : 'webkitTransitionEnd',
1419    //       'MozTransition'    : 'transitionend',
1420    //       'OTransition'      : 'oTransitionEnd',
1421    //       'msTransition'     : 'MSTransitionEnd',
1422    //       'transition'       : 'transitionend'
1423    //     },
1424    //     transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ];
1425
1426    Modernizr.prefixed      = function(prop, obj, elem){
1427      if(!obj) {
1428        return testPropsAll(prop, 'pfx');
1429      } else {
1430        // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame'
1431        return testPropsAll(prop, obj, elem);
1432      }
1433    };
1434    /*>>prefixed*/
1435
1436
1437    /*>>cssclasses*/
1438    // Remove "no-js" class from <html> element, if it exists:
1439    docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') +
1440
1441                            // Add the new classes to the <html> element.
1442                            (enableClasses ? ' js ' + classes.join(' ') : '');
1443    /*>>cssclasses*/
1444
1445    return Modernizr;
1446
1447})(this, this.document);
1448
1449/**
1450 * Swiper 3.1.7
1451 * Most modern mobile touch slider and framework with hardware accelerated transitions
1452 * 
1453 * http://www.idangero.us/swiper/
1454 * 
1455 * Copyright 2015, Vladimir Kharlampidi
1456 * The iDangero.us
1457 * http://www.idangero.us/
1458 * 
1459 * Licensed under MIT
1460 * 
1461 * Released on: October 10, 2015
1462 */
1463!function(){"use strict";function e(e){e.fn.swiper=function(a){var s;return e(this).each(function(){var e=new t(this,a);
vendor: 55,802 bytes, lines 1463-1464
1463s||(s=e)}),s}}var a,t=function(e,s){function r(){return"horizontal"===v.params.direction}function i(e){return Math.floor(e)}function n(){v.autoplayTimeoutId=setTimeout(function(){v.params.loop?(v.fixLoop(),v._slideNext()):v.isEnd?s.autoplayStopOnLast?v.stopAutoplay():v._slideTo(0):v._slideNext()},v.params.autoplay)}function o(e,t){var s=a(e.target);if(!s.is(t))if("string"==typeof t)s=s.parents(t);else if(t.nodeType){var r;return s.parents().each(function(e,a){a===t&&(r=t)}),r?t:void 0}return 0===s.length?void 0:s[0]}function l(e,a){a=a||{};var t=window.MutationObserver||window.WebkitMutationObserver,s=new t(function(e){e.forEach(function(e){v.onResize(!0),v.emit("onObserverUpdate",v,e)})});s.observe(e,{attributes:"undefined"==typeof a.attributes?!0:a.attributes,childList:"undefined"==typeof a.childList?!0:a.childList,characterData:"undefined"==typeof a.characterData?!0:a.characterData}),v.observers.push(s)}function p(e){e.originalEvent&&(e=e.originalEvent);var a=e.keyCode||e.charCode;if(!v.params.allowSwipeToNext&&(r()&&39===a||!r()&&40===a))return!1;if(!v.params.allowSwipeToPrev&&(r()&&37===a||!r()&&38===a))return!1;if(!(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey||document.activeElement&&document.activeElement.nodeName&&("input"===document.activeElement.nodeName.toLowerCase()||"textarea"===document.activeElement.nodeName.toLowerCase()))){if(37===a||39===a||38===a||40===a){var t=!1;if(v.container.parents(".swiper-slide").length>0&&0===v.container.parents(".swiper-slide-active").length)return;var s={left:window.pageXOffset,top:window.pageYOffset},i=window.innerWidth,n=window.innerHeight,o=v.container.offset();v.rtl&&(o.left=o.left-v.container[0].scrollLeft);for(var l=[[o.left,o.top],[o.left+v.width,o.top],[o.left,o.top+v.height],[o.left+v.width,o.top+v.height]],p=0;p<l.length;p++){var d=l[p];d[0]>=s.left&&d[0]<=s.left+i&&d[1]>=s.top&&d[1]<=s.top+n&&(t=!0)}if(!t)return}r()?((37===a||39===a)&&(e.preventDefault?e.preventDefault():e.returnValue=!1),(39===a&&!v.rtl||37===a&&v.rtl)&&v.slideNext(),(37===a&&!v.rtl||39===a&&v.rtl)&&v.slidePrev()):((38===a||40===a)&&(e.preventDefault?e.preventDefault():e.returnValue=!1),40===a&&v.slideNext(),38===a&&v.slidePrev())}}function d(e){e.originalEvent&&(e=e.originalEvent);var a=v.mousewheel.event,t=0;if(e.detail)t=-e.detail;else if("mousewheel"===a)if(v.params.mousewheelForceToAxis)if(r()){if(!(Math.abs(e.wheelDeltaX)>Math.abs(e.wheelDeltaY)))return;t=e.wheelDeltaX}else{if(!(Math.abs(e.wheelDeltaY)>Math.abs(e.wheelDeltaX)))return;t=e.wheelDeltaY}else t=e.wheelDelta;else if("DOMMouseScroll"===a)t=-e.detail;else if("wheel"===a)if(v.params.mousewheelForceToAxis)if(r()){if(!(Math.abs(e.deltaX)>Math.abs(e.deltaY)))return;t=-e.deltaX}else{if(!(Math.abs(e.deltaY)>Math.abs(e.deltaX)))return;t=-e.deltaY}else t=Math.abs(e.deltaX)>Math.abs(e.deltaY)?-e.deltaX:-e.deltaY;if(v.params.mousewheelInvert&&(t=-t),v.params.freeMode){var s=v.getWrapperTranslate()+t*v.params.mousewheelSensitivity;if(s>v.minTranslate()&&(s=v.minTranslate()),s<v.maxTranslate()&&(s=v.maxTranslate()),v.setWrapperTransition(0),v.setWrapperTranslate(s),v.updateProgress(),v.updateActiveIndex(),v.params.freeModeSticky&&(clearTimeout(v.mousewheel.timeout),v.mousewheel.timeout=setTimeout(function(){v.slideReset()},300)),0===s||s===v.maxTranslate())return}else{if((new window.Date).getTime()-v.mousewheel.lastScrollTime>60)if(0>t)if(v.isEnd&&!v.params.loop||v.animating){if(v.params.mousewheelReleaseOnEdges)return!0}else v.slideNext();else if(v.isBeginning&&!v.params.loop||v.animating){if(v.params.mousewheelReleaseOnEdges)return!0}else v.slidePrev();v.mousewheel.lastScrollTime=(new window.Date).getTime()}return v.params.autoplay&&v.stopAutoplay(),e.preventDefault?e.preventDefault():e.returnValue=!1,!1}function c(e,t){e=a(e);var s,i,n;s=e.attr("data-swiper-parallax")||"0",i=e.attr("data-swiper-parallax-x"),n=e.attr("data-swiper-parallax-y"),i||n?(i=i||"0",n=n||"0"):r()?(i=s,n="0"):(n=s,i="0"),i=i.indexOf("%")>=0?parseInt(i,10)*t+"%":i*t+"px",n=n.indexOf("%")>=0?parseInt(n,10)*t+"%":n*t+"px",e.transform("translate3d("+i+", "+n+",0px)")}function u(e){return 0!==e.indexOf("on")&&(e=e[0]!==e[0].toUpperCase()?"on"+e[0].toUpperCase()+e.substring(1):"on"+e),e}if(!(this instanceof t))return new t(e,s);var m={direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,autoplay:!1,autoplayDisableOnInteraction:!0,iOSEdgeSwipeDetection:!1,iOSEdgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",coverflow:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0},cube:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94},fade:{crossFade:!1},parallax:!1,scrollbar:null,scrollbarHide:!0,scrollbarDraggable:!1,scrollbarSnapOnRelease:!1,keyboardControl:!1,mousewheelControl:!1,mousewheelReleaseOnEdges:!1,mousewheelInvert:!1,mousewheelForceToAxis:!1,mousewheelSensitivity:1,hashnav:!1,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,onlyExternal:!1,threshold:0,touchMoveStopPropagation:!0,pagination:null,paginationElement:"span",paginationClickable:!1,paginationHide:!1,paginationBulletRender:null,resistance:!0,resistanceRatio:.85,nextButton:null,prevButton:null,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,lazyLoading:!1,lazyLoadingInPrevNext:!1,lazyLoadingOnTransitionStart:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,control:void 0,controlInverse:!1,controlBy:"slide",allowSwipeToPrev:!0,allowSwipeToNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",buttonDisabledClass:"swiper-button-disabled",paginationHiddenClass:"swiper-pagination-hidden",observer:!1,observeParents:!1,a11y:!1,prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",runCallbacksOnInit:!0},f=s&&s.virtualTranslate;s=s||{};for(var h in m)if("undefined"==typeof s[h])s[h]=m[h];else if("object"==typeof s[h])for(var g in m[h])"undefined"==typeof s[h][g]&&(s[h][g]=m[h][g]);var v=this;if(v.params=s,v.classNames=[],"undefined"!=typeof a&&"undefined"!=typeof Dom7&&(a=Dom7),("undefined"!=typeof a||(a="undefined"==typeof Dom7?window.Dom7||window.Zepto||window.jQuery:Dom7))&&(v.$=a,v.container=a(e),0!==v.container.length)){if(v.container.length>1)return void v.container.each(function(){new t(this,s)});v.container[0].swiper=v,v.container.data("swiper",v),v.classNames.push("swiper-container-"+v.params.direction),v.params.freeMode&&v.classNames.push("swiper-container-free-mode"),v.support.flexbox||(v.classNames.push("swiper-container-no-flexbox"),v.params.slidesPerColumn=1),(v.params.parallax||v.params.watchSlidesVisibility)&&(v.params.watchSlidesProgress=!0),["cube","coverflow"].indexOf(v.params.effect)>=0&&(v.support.transforms3d?(v.params.watchSlidesProgress=!0,v.classNames.push("swiper-container-3d")):v.params.effect="slide"),"slide"!==v.params.effect&&v.classNames.push("swiper-container-"+v.params.effect),"cube"===v.params.effect&&(v.params.resistanceRatio=0,v.params.slidesPerView=1,v.params.slidesPerColumn=1,v.params.slidesPerGroup=1,v.params.centeredSlides=!1,v.params.spaceBetween=0,v.params.virtualTranslate=!0,v.params.setWrapperSize=!1),"fade"===v.params.effect&&(v.params.slidesPerView=1,v.params.slidesPerColumn=1,v.params.slidesPerGroup=1,v.params.watchSlidesProgress=!0,v.params.spaceBetween=0,"undefined"==typeof f&&(v.params.virtualTranslate=!0)),v.params.grabCursor&&v.support.touch&&(v.params.grabCursor=!1),v.wrapper=v.container.children("."+v.params.wrapperClass),v.params.pagination&&(v.paginationContainer=a(v.params.pagination),v.params.paginationClickable&&v.paginationContainer.addClass("swiper-pagination-clickable")),v.rtl=r()&&("rtl"===v.container[0].dir.toLowerCase()||"rtl"===v.container.css("direction")),v.rtl&&v.classNames.push("swiper-container-rtl"),v.rtl&&(v.wrongRTL="-webkit-box"===v.wrapper.css("display")),v.params.slidesPerColumn>1&&v.classNames.push("swiper-container-multirow"),v.device.android&&v.classNames.push("swiper-container-android"),v.container.addClass(v.classNames.join(" ")),v.translate=0,v.progress=0,v.velocity=0,v.lockSwipeToNext=function(){v.params.allowSwipeToNext=!1},v.lockSwipeToPrev=function(){v.params.allowSwipeToPrev=!1},v.lockSwipes=function(){v.params.allowSwipeToNext=v.params.allowSwipeToPrev=!1},v.unlockSwipeToNext=function(){v.params.allowSwipeToNext=!0},v.unlockSwipeToPrev=function(){v.params.allowSwipeToPrev=!0},v.unlockSwipes=function(){v.params.allowSwipeToNext=v.params.allowSwipeToPrev=!0},v.params.grabCursor&&(v.container[0].style.cursor="move",v.container[0].style.cursor="-webkit-grab",v.container[0].style.cursor="-moz-grab",v.container[0].style.cursor="grab"),v.imagesToLoad=[],v.imagesLoaded=0,v.loadImage=function(e,a,t,s,r){function i(){r&&r()}var n;e.complete&&s?i():a?(n=new window.Image,n.onload=i,n.onerror=i,t&&(n.srcset=t),a&&(n.src=a)):i()},v.preloadImages=function(){function e(){"undefined"!=typeof v&&null!==v&&(void 0!==v.imagesLoaded&&v.imagesLoaded++,v.imagesLoaded===v.imagesToLoad.length&&(v.params.updateOnImagesReady&&v.update(),v.emit("onImagesReady",v)))}v.imagesToLoad=v.container.find("img");for(var a=0;a<v.imagesToLoad.length;a++)v.loadImage(v.imagesToLoad[a],v.imagesToLoad[a].currentSrc||v.imagesToLoad[a].getAttribute("src"),v.imagesToLoad[a].srcset||v.imagesToLoad[a].getAttribute("srcset"),!0,e)},v.autoplayTimeoutId=void 0,v.autoplaying=!1,v.autoplayPaused=!1,v.startAutoplay=function(){return"undefined"!=typeof v.autoplayTimeoutId?!1:v.params.autoplay?v.autoplaying?!1:(v.autoplaying=!0,v.emit("onAutoplayStart",v),void n()):!1},v.stopAutoplay=function(e){v.autoplayTimeoutId&&(v.autoplayTimeoutId&&clearTimeout(v.autoplayTimeoutId),v.autoplaying=!1,v.autoplayTimeoutId=void 0,v.emit("onAutoplayStop",v))},v.pauseAutoplay=function(e){v.autoplayPaused||(v.autoplayTimeoutId&&clearTimeout(v.autoplayTimeoutId),v.autoplayPaused=!0,0===e?(v.autoplayPaused=!1,n()):v.wrapper.transitionEnd(function(){v&&(v.autoplayPaused=!1,v.autoplaying?n():v.stopAutoplay())}))},v.minTranslate=function(){return-v.snapGrid[0]},v.maxTranslate=function(){return-v.snapGrid[v.snapGrid.length-1]},v.updateContainerSize=function(){var e,a;e="undefined"!=typeof v.params.width?v.params.width:v.container[0].clientWidth,a="undefined"!=typeof v.params.height?v.params.height:v.container[0].clientHeight,0===e&&r()||0===a&&!r()||(e=e-parseInt(v.container.css("padding-left"),10)-parseInt(v.container.css("padding-right"),10),a=a-parseInt(v.container.css("padding-top"),10)-parseInt(v.container.css("padding-bottom"),10),v.width=e,v.height=a,v.size=r()?v.width:v.height)},v.updateSlidesSize=function(){v.slides=v.wrapper.children("."+v.params.slideClass),v.snapGrid=[],v.slidesGrid=[],v.slidesSizesGrid=[];var e,a=v.params.spaceBetween,t=-v.params.slidesOffsetBefore,s=0,n=0;"string"==typeof a&&a.indexOf("%")>=0&&(a=parseFloat(a.replace("%",""))/100*v.size),v.virtualSize=-a,v.rtl?v.slides.css({marginLeft:"",marginTop:""}):v.slides.css({marginRight:"",marginBottom:""});var o;v.params.slidesPerColumn>1&&(o=Math.floor(v.slides.length/v.params.slidesPerColumn)===v.slides.length/v.params.slidesPerColumn?v.slides.length:Math.ceil(v.slides.length/v.params.slidesPerColumn)*v.params.slidesPerColumn,"auto"!==v.params.slidesPerView&&"row"===v.params.slidesPerColumnFill&&(o=Math.max(o,v.params.slidesPerView*v.params.slidesPerColumn)));var l,p=v.params.slidesPerColumn,d=o/p,c=d-(v.params.slidesPerColumn*d-v.slides.length);for(e=0;e<v.slides.length;e++){l=0;var u=v.slides.eq(e);if(v.params.slidesPerColumn>1){var m,f,h;"column"===v.params.slidesPerColumnFill?(f=Math.floor(e/p),h=e-f*p,(f>c||f===c&&h===p-1)&&++h>=p&&(h=0,f++),m=f+h*o/p,u.css({"-webkit-box-ordinal-group":m,"-moz-box-ordinal-group":m,"-ms-flex-order":m,"-webkit-order":m,order:m})):(h=Math.floor(e/d),f=e-h*d),u.css({"margin-top":0!==h&&v.params.spaceBetween&&v.params.spaceBetween+"px"}).attr("data-swiper-column",f).attr("data-swiper-row",h)}"none"!==u.css("display")&&("auto"===v.params.slidesPerView?(l=r()?u.outerWidth(!0):u.outerHeight(!0),v.params.roundLengths&&(l=i(l))):(l=(v.size-(v.params.slidesPerView-1)*a)/v.params.slidesPerView,v.params.roundLengths&&(l=i(l)),r()?v.slides[e].style.width=l+"px":v.slides[e].style.height=l+"px"),v.slides[e].swiperSlideSize=l,v.slidesSizesGrid.push(l),v.params.centeredSlides?(t=t+l/2+s/2+a,0===e&&(t=t-v.size/2-a),Math.abs(t)<.001&&(t=0),n%v.params.slidesPerGroup===0&&v.snapGrid.push(t),v.slidesGrid.push(t)):(n%v.params.slidesPerGroup===0&&v.snapGrid.push(t),v.slidesGrid.push(t),t=t+l+a),v.virtualSize+=l+a,s=l,n++)}v.virtualSize=Math.max(v.virtualSize,v.size)+v.params.slidesOffsetAfter;var g;if(v.rtl&&v.wrongRTL&&("slide"===v.params.effect||"coverflow"===v.params.effect)&&v.wrapper.css({width:v.virtualSize+v.params.spaceBetween+"px"}),(!v.support.flexbox||v.params.setWrapperSize)&&(r()?v.wrapper.css({width:v.virtualSize+v.params.spaceBetween+"px"}):v.wrapper.css({height:v.virtualSize+v.params.spaceBetween+"px"})),v.params.slidesPerColumn>1&&(v.virtualSize=(l+v.params.spaceBetween)*o,v.virtualSize=Math.ceil(v.virtualSize/v.params.slidesPerColumn)-v.params.spaceBetween,v.wrapper.css({width:v.virtualSize+v.params.spaceBetween+"px"}),v.params.centeredSlides)){for(g=[],e=0;e<v.snapGrid.length;e++)v.snapGrid[e]<v.virtualSize+v.snapGrid[0]&&g.push(v.snapGrid[e]);v.snapGrid=g}if(!v.params.centeredSlides){for(g=[],e=0;e<v.snapGrid.length;e++)v.snapGrid[e]<=v.virtualSize-v.size&&g.push(v.snapGrid[e]);v.snapGrid=g,Math.floor(v.virtualSize-v.size)>Math.floor(v.snapGrid[v.snapGrid.length-1])&&v.snapGrid.push(v.virtualSize-v.size)}0===v.snapGrid.length&&(v.snapGrid=[0]),0!==v.params.spaceBetween&&(r()?v.rtl?v.slides.css({marginLeft:a+"px"}):v.slides.css({marginRight:a+"px"}):v.slides.css({marginBottom:a+"px"})),v.params.watchSlidesProgress&&v.updateSlidesOffset()},v.updateSlidesOffset=function(){for(var e=0;e<v.slides.length;e++)v.slides[e].swiperSlideOffset=r()?v.slides[e].offsetLeft:v.slides[e].offsetTop},v.updateSlidesProgress=function(e){if("undefined"==typeof e&&(e=v.translate||0),0!==v.slides.length){"undefined"==typeof v.slides[0].swiperSlideOffset&&v.updateSlidesOffset();var a=-e;v.rtl&&(a=e);v.container[0].getBoundingClientRect(),r()?"left":"top",r()?"right":"bottom";v.slides.removeClass(v.params.slideVisibleClass);for(var t=0;t<v.slides.length;t++){var s=v.slides[t],i=(a-s.swiperSlideOffset)/(s.swiperSlideSize+v.params.spaceBetween);if(v.params.watchSlidesVisibility){var n=-(a-s.swiperSlideOffset),o=n+v.slidesSizesGrid[t],l=n>=0&&n<v.size||o>0&&o<=v.size||0>=n&&o>=v.size;l&&v.slides.eq(t).addClass(v.params.slideVisibleClass)}s.progress=v.rtl?-i:i}}},v.updateProgress=function(e){"undefined"==typeof e&&(e=v.translate||0);var a=v.maxTranslate()-v.minTranslate();0===a?(v.progress=0,v.isBeginning=v.isEnd=!0):(v.progress=(e-v.minTranslate())/a,v.isBeginning=v.progress<=0,v.isEnd=v.progress>=1),v.isBeginning&&v.emit("onReachBeginning",v),v.isEnd&&v.emit("onReachEnd",v),v.params.watchSlidesProgress&&v.updateSlidesProgress(e),v.emit("onProgress",v,v.progress)},v.updateActiveIndex=function(){var e,a,t,s=v.rtl?v.translate:-v.translate;for(a=0;a<v.slidesGrid.length;a++)"undefined"!=typeof v.slidesGrid[a+1]?s>=v.slidesGrid[a]&&s<v.slidesGrid[a+1]-(v.slidesGrid[a+1]-v.slidesGrid[a])/2?e=a:s>=v.slidesGrid[a]&&s<v.slidesGrid[a+1]&&(e=a+1):s>=v.slidesGrid[a]&&(e=a);(0>e||"undefined"==typeof e)&&(e=0),t=Math.floor(e/v.params.slidesPerGroup),t>=v.snapGrid.length&&(t=v.snapGrid.length-1),e!==v.activeIndex&&(v.snapIndex=t,v.previousIndex=v.activeIndex,v.activeIndex=e,v.updateClasses())},v.updateClasses=function(){v.slides.removeClass(v.params.slideActiveClass+" "+v.params.slideNextClass+" "+v.params.slidePrevClass);var e=v.slides.eq(v.activeIndex);if(e.addClass(v.params.slideActiveClass),e.next("."+v.params.slideClass).addClass(v.params.slideNextClass),e.prev("."+v.params.slideClass).addClass(v.params.slidePrevClass),v.bullets&&v.bullets.length>0){v.bullets.removeClass(v.params.bulletActiveClass);var t;v.params.loop?(t=Math.ceil(v.activeIndex-v.loopedSlides)/v.params.slidesPerGroup,t>v.slides.length-1-2*v.loopedSlides&&(t-=v.slides.length-2*v.loopedSlides),t>v.bullets.length-1&&(t-=v.bullets.length)):t="undefined"!=typeof v.snapIndex?v.snapIndex:v.activeIndex||0,v.paginationContainer.length>1?v.bullets.each(function(){a(this).index()===t&&a(this).addClass(v.params.bulletActiveClass)}):v.bullets.eq(t).addClass(v.params.bulletActiveClass)}v.params.loop||(v.params.prevButton&&(v.isBeginning?(a(v.params.prevButton).addClass(v.params.buttonDisabledClass),v.params.a11y&&v.a11y&&v.a11y.disable(a(v.params.prevButton))):(a(v.params.prevButton).removeClass(v.params.buttonDisabledClass),v.params.a11y&&v.a11y&&v.a11y.enable(a(v.params.prevButton)))),v.params.nextButton&&(v.isEnd?(a(v.params.nextButton).addClass(v.params.buttonDisabledClass),v.params.a11y&&v.a11y&&v.a11y.disable(a(v.params.nextButton))):(a(v.params.nextButton).removeClass(v.params.buttonDisabledClass),v.params.a11y&&v.a11y&&v.a11y.enable(a(v.params.nextButton)))))},v.updatePagination=function(){if(v.params.pagination&&v.paginationContainer&&v.paginationContainer.length>0){for(var e="",a=v.params.loop?Math.ceil((v.slides.length-2*v.loopedSlides)/v.params.slidesPerGroup):v.snapGrid.length,t=0;a>t;t++)e+=v.params.paginationBulletRender?v.params.paginationBulletRender(t,v.params.bulletClass):"<"+v.params.paginationElement+' class="'+v.params.bulletClass+'"></'+v.params.paginationElement+">";v.paginationContainer.html(e),v.bullets=v.paginationContainer.find("."+v.params.bulletClass),v.params.paginationClickable&&v.params.a11y&&v.a11y&&v.a11y.initPagination()}},v.update=function(e){function a(){s=Math.min(Math.max(v.translate,v.maxTranslate()),v.minTranslate()),v.setWrapperTranslate(s),v.updateActiveIndex(),v.updateClasses()}if(v.updateContainerSize(),v.updateSlidesSize(),v.updateProgress(),v.updatePagination(),v.updateClasses(),v.params.scrollbar&&v.scrollbar&&v.scrollbar.set(),e){var t,s;v.controller&&v.controller.spline&&(v.controller.spline=void 0),v.params.freeMode?a():(t=("auto"===v.params.slidesPerView||v.params.slidesPerView>1)&&v.isEnd&&!v.params.centeredSlides?v.slideTo(v.slides.length-1,0,!1,!0):v.slideTo(v.activeIndex,0,!1,!0),t||a())}},v.onResize=function(e){var a=v.params.allowSwipeToPrev,t=v.params.allowSwipeToNext;if(v.params.allowSwipeToPrev=v.params.allowSwipeToNext=!0,v.updateContainerSize(),v.updateSlidesSize(),("auto"===v.params.slidesPerView||v.params.freeMode||e)&&v.updatePagination(),v.params.scrollbar&&v.scrollbar&&v.scrollbar.set(),v.controller&&v.controller.spline&&(v.controller.spline=void 0),v.params.freeMode){var s=Math.min(Math.max(v.translate,v.maxTranslate()),v.minTranslate());v.setWrapperTranslate(s),v.updateActiveIndex(),v.updateClasses()}else v.updateClasses(),("auto"===v.params.slidesPerView||v.params.slidesPerView>1)&&v.isEnd&&!v.params.centeredSlides?v.slideTo(v.slides.length-1,0,!1,!0):v.slideTo(v.activeIndex,0,!1,!0);v.params.allowSwipeToPrev=a,v.params.allowSwipeToNext=t};var w=["mousedown","mousemove","mouseup"];window.navigator.pointerEnabled?w=["pointerdown","pointermove","pointerup"]:window.navigator.msPointerEnabled&&(w=["MSPointerDown","MSPointerMove","MSPointerUp"]),v.touchEvents={start:v.support.touch||!v.params.simulateTouch?"touchstart":w[0],move:v.support.touch||!v.params.simulateTouch?"touchmove":w[1],end:v.support.touch||!v.params.simulateTouch?"touchend":w[2]},(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)&&("container"===v.params.touchEventsTarget?v.container:v.wrapper).addClass("swiper-wp8-"+v.params.direction),v.initEvents=function(e){var t=e?"off":"on",r=e?"removeEventListener":"addEventListener",i="container"===v.params.touchEventsTarget?v.container[0]:v.wrapper[0],n=v.support.touch?i:document,o=v.params.nested?!0:!1;v.browser.ie?(i[r](v.touchEvents.start,v.onTouchStart,!1),n[r](v.touchEvents.move,v.onTouchMove,o),n[r](v.touchEvents.end,v.onTouchEnd,!1)):(v.support.touch&&(i[r](v.touchEvents.start,v.onTouchStart,!1),i[r](v.touchEvents.move,v.onTouchMove,o),i[r](v.touchEvents.end,v.onTouchEnd,!1)),!s.simulateTouch||v.device.ios||v.device.android||(i[r]("mousedown",v.onTouchStart,!1),document[r]("mousemove",v.onTouchMove,o),document[r]("mouseup",v.onTouchEnd,!1))),window[r]("resize",v.onResize),v.params.nextButton&&(a(v.params.nextButton)[t]("click",v.onClickNext),v.params.a11y&&v.a11y&&a(v.params.nextButton)[t]("keydown",v.a11y.onEnterKey)),v.params.prevButton&&(a(v.params.prevButton)[t]("click",v.onClickPrev),v.params.a11y&&v.a11y&&a(v.params.prevButton)[t]("keydown",v.a11y.onEnterKey)),v.params.pagination&&v.params.paginationClickable&&(a(v.paginationContainer)[t]("click","."+v.params.bulletClass,v.onClickIndex),v.params.a11y&&v.a11y&&a(v.paginationContainer)[t]("keydown","."+v.params.bulletClass,v.a11y.onEnterKey)),(v.params.preventClicks||v.params.preventClicksPropagation)&&i[r]("click",v.preventClicks,!0)},v.attachEvents=function(e){v.initEvents()},v.detachEvents=function(){v.initEvents(!0)},v.allowClick=!0,v.preventClicks=function(e){v.allowClick||(v.params.preventClicks&&e.preventDefault(),v.params.preventClicksPropagation&&v.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))},v.onClickNext=function(e){e.preventDefault(),(!v.isEnd||v.params.loop)&&v.slideNext()},v.onClickPrev=function(e){e.preventDefault(),(!v.isBeginning||v.params.loop)&&v.slidePrev()},v.onClickIndex=function(e){e.preventDefault();var t=a(this).index()*v.params.slidesPerGroup;v.params.loop&&(t+=v.loopedSlides),v.slideTo(t)},v.updateClickedSlide=function(e){var t=o(e,"."+v.params.slideClass),s=!1;if(t)for(var r=0;r<v.slides.length;r++)v.slides[r]===t&&(s=!0);if(!t||!s)return v.clickedSlide=void 0,void(v.clickedIndex=void 0);if(v.clickedSlide=t,v.clickedIndex=a(t).index(),v.params.slideToClickedSlide&&void 0!==v.clickedIndex&&v.clickedIndex!==v.activeIndex){var i,n=v.clickedIndex;if(v.params.loop){if(v.animating)return;i=a(v.clickedSlide).attr("data-swiper-slide-index"),v.params.centeredSlides?n<v.loopedSlides-v.params.slidesPerView/2||n>v.slides.length-v.loopedSlides+v.params.slidesPerView/2?(v.fixLoop(),n=v.wrapper.children("."+v.params.slideClass+'[data-swiper-slide-index="'+i+'"]:not(.swiper-slide-duplicate)').eq(0).index(),setTimeout(function(){v.slideTo(n)},0)):v.slideTo(n):n>v.slides.length-v.params.slidesPerView?(v.fixLoop(),n=v.wrapper.children("."+v.params.slideClass+'[data-swiper-slide-index="'+i+'"]:not(.swiper-slide-duplicate)').eq(0).index(),setTimeout(function(){v.slideTo(n)},0)):v.slideTo(n)}else v.slideTo(n)}};var y,b,T,x,S,C,M,P,z,I="input, select, textarea, button",E=Date.now(),k=[];v.animating=!1,v.touches={startX:0,startY:0,currentX:0,currentY:0,diff:0};var D,L;if(v.onTouchStart=function(e){if(e.originalEvent&&(e=e.originalEvent),D="touchstart"===e.type,D||!("which"in e)||3!==e.which){if(v.params.noSwiping&&o(e,"."+v.params.noSwipingClass))return void(v.allowClick=!0);if(!v.params.swipeHandler||o(e,v.params.swipeHandler)){var t=v.touches.currentX="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,s=v.touches.currentY="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY;if(!(v.device.ios&&v.params.iOSEdgeSwipeDetection&&t<=v.params.iOSEdgeSwipeThreshold)){if(y=!0,b=!1,x=void 0,L=void 0,v.touches.startX=t,v.touches.startY=s,T=Date.now(),v.allowClick=!0,v.updateContainerSize(),v.swipeDirection=void 0,v.params.threshold>0&&(M=!1),"touchstart"!==e.type){var r=!0;a(e.target).is(I)&&(r=!1),document.activeElement&&a(document.activeElement).is(I)&&document.activeElement.blur(),r&&e.preventDefault()}v.emit("onTouchStart",v,e)}}}},v.onTouchMove=function(e){if(e.originalEvent&&(e=e.originalEvent),!(D&&"mousemove"===e.type||e.preventedByNestedSwiper)){if(v.params.onlyExternal)return v.allowClick=!1,void(y&&(v.touches.startX=v.touches.currentX="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,v.touches.startY=v.touches.currentY="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,T=Date.now()));if(D&&document.activeElement&&e.target===document.activeElement&&a(e.target).is(I))return b=!0,void(v.allowClick=!1);if(v.emit("onTouchMove",v,e),!(e.targetTouches&&e.targetTouches.length>1)){if(v.touches.currentX="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,v.touches.currentY="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,"undefined"==typeof x){var t=180*Math.atan2(Math.abs(v.touches.currentY-v.touches.startY),Math.abs(v.touches.currentX-v.touches.startX))/Math.PI;x=r()?t>v.params.touchAngle:90-t>v.params.touchAngle}if(x&&v.emit("onTouchMoveOpposite",v,e),"undefined"==typeof L&&v.browser.ieTouch&&(v.touches.currentX!==v.touches.startX||v.touches.currentY!==v.touches.startY)&&(L=!0),y){if(x)return void(y=!1);if(L||!v.browser.ieTouch){v.allowClick=!1,v.emit("onSliderMove",v,e),e.preventDefault(),v.params.touchMoveStopPropagation&&!v.params.nested&&e.stopPropagation(),b||(s.loop&&v.fixLoop(),C=v.getWrapperTranslate(),v.setWrapperTransition(0),v.animating&&v.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"),v.params.autoplay&&v.autoplaying&&(v.params.autoplayDisableOnInteraction?v.stopAutoplay():v.pauseAutoplay()),z=!1,v.params.grabCursor&&(v.container[0].style.cursor="move",v.container[0].style.cursor="-webkit-grabbing",v.container[0].style.cursor="-moz-grabbin",v.container[0].style.cursor="grabbing")),b=!0;var i=v.touches.diff=r()?v.touches.currentX-v.touches.startX:v.touches.currentY-v.touches.startY;i*=v.params.touchRatio,v.rtl&&(i=-i),v.swipeDirection=i>0?"prev":"next",S=i+C;var n=!0;if(i>0&&S>v.minTranslate()?(n=!1,v.params.resistance&&(S=v.minTranslate()-1+Math.pow(-v.minTranslate()+C+i,v.params.resistanceRatio))):0>i&&S<v.maxTranslate()&&(n=!1,v.params.resistance&&(S=v.maxTranslate()+1-Math.pow(v.maxTranslate()-C-i,v.params.resistanceRatio))),n&&(e.preventedByNestedSwiper=!0),!v.params.allowSwipeToNext&&"next"===v.swipeDirection&&C>S&&(S=C),!v.params.allowSwipeToPrev&&"prev"===v.swipeDirection&&S>C&&(S=C),v.params.followFinger){if(v.params.threshold>0){if(!(Math.abs(i)>v.params.threshold||M))return void(S=C);if(!M)return M=!0,v.touches.startX=v.touches.currentX,v.touches.startY=v.touches.currentY,S=C,void(v.touches.diff=r()?v.touches.currentX-v.touches.startX:v.touches.currentY-v.touches.startY)}(v.params.freeMode||v.params.watchSlidesProgress)&&v.updateActiveIndex(),v.params.freeMode&&(0===k.length&&k.push({position:v.touches[r()?"startX":"startY"],time:T}),k.push({position:v.touches[r()?"currentX":"currentY"],time:(new window.Date).getTime()})),v.updateProgress(S),v.setWrapperTranslate(S)}}}}}},v.onTouchEnd=function(e){if(e.originalEvent&&(e=e.originalEvent),v.emit("onTouchEnd",v,e),y){v.params.grabCursor&&b&&y&&(v.container[0].style.cursor="move",v.container[0].style.cursor="-webkit-grab",v.container[0].style.cursor="-moz-grab",v.container[0].style.cursor="grab");var t=Date.now(),s=t-T;if(v.allowClick&&(v.updateClickedSlide(e),v.emit("onTap",v,e),300>s&&t-E>300&&(P&&clearTimeout(P),P=setTimeout(function(){v&&(v.params.paginationHide&&v.paginationContainer.length>0&&!a(e.target).hasClass(v.params.bulletClass)&&v.paginationContainer.toggleClass(v.params.paginationHiddenClass),v.emit("onClick",v,e))},300)),300>s&&300>t-E&&(P&&clearTimeout(P),v.emit("onDoubleTap",v,e))),E=Date.now(),setTimeout(function(){v&&(v.allowClick=!0)},0),!y||!b||!v.swipeDirection||0===v.touches.diff||S===C)return void(y=b=!1);y=b=!1;var r;if(r=v.params.followFinger?v.rtl?v.translate:-v.translate:-S,v.params.freeMode){if(r<-v.minTranslate())return void v.slideTo(v.activeIndex);if(r>-v.maxTranslate())return void(v.slides.length<v.snapGrid.length?v.slideTo(v.snapGrid.length-1):v.slideTo(v.slides.length-1));if(v.params.freeModeMomentum){if(k.length>1){var i=k.pop(),n=k.pop(),o=i.position-n.position,l=i.time-n.time;v.velocity=o/l,v.velocity=v.velocity/2,Math.abs(v.velocity)<v.params.freeModeMinimumVelocity&&(v.velocity=0),(l>150||(new window.Date).getTime()-i.time>300)&&(v.velocity=0)}else v.velocity=0;k.length=0;var p=1e3*v.params.freeModeMomentumRatio,d=v.velocity*p,c=v.translate+d;v.rtl&&(c=-c);var u,m=!1,f=20*Math.abs(v.velocity)*v.params.freeModeMomentumBounceRatio;if(c<v.maxTranslate())v.params.freeModeMomentumBounce?(c+v.maxTranslate()<-f&&(c=v.maxTranslate()-f),u=v.maxTranslate(),m=!0,z=!0):c=v.maxTranslate();else if(c>v.minTranslate())v.params.freeModeMomentumBounce?(c-v.minTranslate()>f&&(c=v.minTranslate()+f),u=v.minTranslate(),m=!0,z=!0):c=v.minTranslate();else if(v.params.freeModeSticky){var h,g=0;for(g=0;g<v.snapGrid.length;g+=1)if(v.snapGrid[g]>-c){h=g;break}c=Math.abs(v.snapGrid[h]-c)<Math.abs(v.snapGrid[h-1]-c)||"next"===v.swipeDirection?v.snapGrid[h]:v.snapGrid[h-1],v.rtl||(c=-c)}if(0!==v.velocity)p=v.rtl?Math.abs((-c-v.translate)/v.velocity):Math.abs((c-v.translate)/v.velocity);else if(v.params.freeModeSticky)return void v.slideReset();v.params.freeModeMomentumBounce&&m?(v.updateProgress(u),v.setWrapperTransition(p),v.setWrapperTranslate(c),v.onTransitionStart(),v.animating=!0,v.wrapper.transitionEnd(function(){v&&z&&(v.emit("onMomentumBounce",v),v.setWrapperTransition(v.params.speed),v.setWrapperTranslate(u),v.wrapper.transitionEnd(function(){v&&v.onTransitionEnd()}))})):v.velocity?(v.updateProgress(c),v.setWrapperTransition(p),v.setWrapperTranslate(c),v.onTransitionStart(),v.animating||(v.animating=!0,v.wrapper.transitionEnd(function(){v&&v.onTransitionEnd()}))):v.updateProgress(c),v.updateActiveIndex()}return void((!v.params.freeModeMomentum||s>=v.params.longSwipesMs)&&(v.updateProgress(),v.updateActiveIndex()))}var w,x=0,M=v.slidesSizesGrid[0];for(w=0;w<v.slidesGrid.length;w+=v.params.slidesPerGroup)"undefined"!=typeof v.slidesGrid[w+v.params.slidesPerGroup]?r>=v.slidesGrid[w]&&r<v.slidesGrid[w+v.params.slidesPerGroup]&&(x=w,M=v.slidesGrid[w+v.params.slidesPerGroup]-v.slidesGrid[w]):r>=v.slidesGrid[w]&&(x=w,M=v.slidesGrid[v.slidesGrid.length-1]-v.slidesGrid[v.slidesGrid.length-2]);var I=(r-v.slidesGrid[x])/M;if(s>v.params.longSwipesMs){if(!v.params.longSwipes)return void v.slideTo(v.activeIndex);"next"===v.swipeDirection&&(I>=v.params.longSwipesRatio?v.slideTo(x+v.params.slidesPerGroup):v.slideTo(x)),"prev"===v.swipeDirection&&(I>1-v.params.longSwipesRatio?v.slideTo(x+v.params.slidesPerGroup):v.slideTo(x))}else{if(!v.params.shortSwipes)return void v.slideTo(v.activeIndex);"next"===v.swipeDirection&&v.slideTo(x+v.params.slidesPerGroup),"prev"===v.swipeDirection&&v.slideTo(x)}}},v._slideTo=function(e,a){return v.slideTo(e,a,!0,!0)},v.slideTo=function(e,a,t,s){"undefined"==typeof t&&(t=!0),"undefined"==typeof e&&(e=0),0>e&&(e=0),v.snapIndex=Math.floor(e/v.params.slidesPerGroup),v.snapIndex>=v.snapGrid.length&&(v.snapIndex=v.snapGrid.length-1);var i=-v.snapGrid[v.snapIndex];v.params.autoplay&&v.autoplaying&&(s||!v.params.autoplayDisableOnInteraction?v.pauseAutoplay(a):v.stopAutoplay()),v.updateProgress(i);for(var n=0;n<v.slidesGrid.length;n++)-Math.floor(100*i)>=Math.floor(100*v.slidesGrid[n])&&(e=n);if(!v.params.allowSwipeToNext&&i<v.translate&&i<v.minTranslate())return!1;
1464if(!v.params.allowSwipeToPrev&&i>v.translate&&i>v.maxTranslate()&&(v.activeIndex||0)!==e)return!1;if("undefined"==typeof a&&(a=v.params.speed),v.previousIndex=v.activeIndex||0,v.activeIndex=e,i===v.translate)return v.updateClasses(),!1;v.updateClasses(),v.onTransitionStart(t);r()?i:0,r()?0:i;return 0===a?(v.setWrapperTransition(0),v.setWrapperTranslate(i),v.onTransitionEnd(t)):(v.setWrapperTransition(a),v.setWrapperTranslate(i),v.animating||(v.animating=!0,v.wrapper.transitionEnd(function(){v&&v.onTransitionEnd(t)}))),!0},v.onTransitionStart=function(e){"undefined"==typeof e&&(e=!0),v.lazy&&v.lazy.onTransitionStart(),e&&(v.emit("onTransitionStart",v),v.activeIndex!==v.previousIndex&&v.emit("onSlideChangeStart",v))},v.onTransitionEnd=function(e){v.animating=!1,v.setWrapperTransition(0),"undefined"==typeof e&&(e=!0),v.lazy&&v.lazy.onTransitionEnd(),e&&(v.emit("onTransitionEnd",v),v.activeIndex!==v.previousIndex&&v.emit("onSlideChangeEnd",v)),v.params.hashnav&&v.hashnav&&v.hashnav.setHash()},v.slideNext=function(e,a,t){if(v.params.loop){if(v.animating)return!1;v.fixLoop();v.container[0].clientLeft;return v.slideTo(v.activeIndex+v.params.slidesPerGroup,a,e,t)}return v.slideTo(v.activeIndex+v.params.slidesPerGroup,a,e,t)},v._slideNext=function(e){return v.slideNext(!0,e,!0)},v.slidePrev=function(e,a,t){if(v.params.loop){if(v.animating)return!1;v.fixLoop();v.container[0].clientLeft;return v.slideTo(v.activeIndex-1,a,e,t)}return v.slideTo(v.activeIndex-1,a,e,t)},v._slidePrev=function(e){return v.slidePrev(!0,e,!0)},v.slideReset=function(e,a,t){return v.slideTo(v.activeIndex,a,e)},v.setWrapperTransition=function(e,a){v.wrapper.transition(e),"slide"!==v.params.effect&&v.effects[v.params.effect]&&v.effects[v.params.effect].setTransition(e),v.params.parallax&&v.parallax&&v.parallax.setTransition(e),v.params.scrollbar&&v.scrollbar&&v.scrollbar.setTransition(e),v.params.control&&v.controller&&v.controller.setTransition(e,a),v.emit("onSetTransition",v,e)},v.setWrapperTranslate=function(e,a,t){var s=0,n=0,o=0;r()?s=v.rtl?-e:e:n=e,v.params.roundLengths&&(s=i(s),n=i(n)),v.params.virtualTranslate||(v.support.transforms3d?v.wrapper.transform("translate3d("+s+"px, "+n+"px, "+o+"px)"):v.wrapper.transform("translate("+s+"px, "+n+"px)")),v.translate=r()?s:n,a&&v.updateActiveIndex(),"slide"!==v.params.effect&&v.effects[v.params.effect]&&v.effects[v.params.effect].setTranslate(v.translate),v.params.parallax&&v.parallax&&v.parallax.setTranslate(v.translate),v.params.scrollbar&&v.scrollbar&&v.scrollbar.setTranslate(v.translate),v.params.control&&v.controller&&v.controller.setTranslate(v.translate,t),v.emit("onSetTranslate",v,v.translate)},v.getTranslate=function(e,a){var t,s,r,i;return"undefined"==typeof a&&(a="x"),v.params.virtualTranslate?v.rtl?-v.translate:v.translate:(r=window.getComputedStyle(e,null),window.WebKitCSSMatrix?(s=r.transform||r.webkitTransform,s.split(",").length>6&&(s=s.split(", ").map(function(e){return e.replace(",",".")}).join(", ")),i=new window.WebKitCSSMatrix("none"===s?"":s)):(i=r.MozTransform||r.OTransform||r.MsTransform||r.msTransform||r.transform||r.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),t=i.toString().split(",")),"x"===a&&(s=window.WebKitCSSMatrix?i.m41:16===t.length?parseFloat(t[12]):parseFloat(t[4])),"y"===a&&(s=window.WebKitCSSMatrix?i.m42:16===t.length?parseFloat(t[13]):parseFloat(t[5])),v.rtl&&s&&(s=-s),s||0)},v.getWrapperTranslate=function(e){return"undefined"==typeof e&&(e=r()?"x":"y"),v.getTranslate(v.wrapper[0],e)},v.observers=[],v.initObservers=function(){if(v.params.observeParents)for(var e=v.container.parents(),a=0;a<e.length;a++)l(e[a]);l(v.container[0],{childList:!1}),l(v.wrapper[0],{attributes:!1})},v.disconnectObservers=function(){for(var e=0;e<v.observers.length;e++)v.observers[e].disconnect();v.observers=[]},v.createLoop=function(){v.wrapper.children("."+v.params.slideClass+"."+v.params.slideDuplicateClass).remove();var e=v.wrapper.children("."+v.params.slideClass);"auto"!==v.params.slidesPerView||v.params.loopedSlides||(v.params.loopedSlides=e.length),v.loopedSlides=parseInt(v.params.loopedSlides||v.params.slidesPerView,10),v.loopedSlides=v.loopedSlides+v.params.loopAdditionalSlides,v.loopedSlides>e.length&&(v.loopedSlides=e.length);var t,s=[],r=[];for(e.each(function(t,i){var n=a(this);t<v.loopedSlides&&r.push(i),t<e.length&&t>=e.length-v.loopedSlides&&s.push(i),n.attr("data-swiper-slide-index",t)}),t=0;t<r.length;t++)v.wrapper.append(a(r[t].cloneNode(!0)).addClass(v.params.slideDuplicateClass));for(t=s.length-1;t>=0;t--)v.wrapper.prepend(a(s[t].cloneNode(!0)).addClass(v.params.slideDuplicateClass))},v.destroyLoop=function(){v.wrapper.children("."+v.params.slideClass+"."+v.params.slideDuplicateClass).remove(),v.slides.removeAttr("data-swiper-slide-index")},v.fixLoop=function(){var e;v.activeIndex<v.loopedSlides?(e=v.slides.length-3*v.loopedSlides+v.activeIndex,e+=v.loopedSlides,v.slideTo(e,0,!1,!0)):("auto"===v.params.slidesPerView&&v.activeIndex>=2*v.loopedSlides||v.activeIndex>v.slides.length-2*v.params.slidesPerView)&&(e=-v.slides.length+v.activeIndex+v.loopedSlides,e+=v.loopedSlides,v.slideTo(e,0,!1,!0))},v.appendSlide=function(e){if(v.params.loop&&v.destroyLoop(),"object"==typeof e&&e.length)for(var a=0;a<e.length;a++)e[a]&&v.wrapper.append(e[a]);else v.wrapper.append(e);v.params.loop&&v.createLoop(),v.params.observer&&v.support.observer||v.update(!0)},v.prependSlide=function(e){v.params.loop&&v.destroyLoop();var a=v.activeIndex+1;if("object"==typeof e&&e.length){for(var t=0;t<e.length;t++)e[t]&&v.wrapper.prepend(e[t]);a=v.activeIndex+e.length}else v.wrapper.prepend(e);v.params.loop&&v.createLoop(),v.params.observer&&v.support.observer||v.update(!0),v.slideTo(a,0,!1)},v.removeSlide=function(e){v.params.loop&&(v.destroyLoop(),v.slides=v.wrapper.children("."+v.params.slideClass));var a,t=v.activeIndex;if("object"==typeof e&&e.length){for(var s=0;s<e.length;s++)a=e[s],v.slides[a]&&v.slides.eq(a).remove(),t>a&&t--;t=Math.max(t,0)}else a=e,v.slides[a]&&v.slides.eq(a).remove(),t>a&&t--,t=Math.max(t,0);v.params.loop&&v.createLoop(),v.params.observer&&v.support.observer||v.update(!0),v.params.loop?v.slideTo(t+v.loopedSlides,0,!1):v.slideTo(t,0,!1)},v.removeAllSlides=function(){for(var e=[],a=0;a<v.slides.length;a++)e.push(a);v.removeSlide(e)},v.effects={fade:{setTranslate:function(){for(var e=0;e<v.slides.length;e++){var a=v.slides.eq(e),t=a[0].swiperSlideOffset,s=-t;v.params.virtualTranslate||(s-=v.translate);var i=0;r()||(i=s,s=0);var n=v.params.fade.crossFade?Math.max(1-Math.abs(a[0].progress),0):1+Math.min(Math.max(a[0].progress,-1),0);a.css({opacity:n}).transform("translate3d("+s+"px, "+i+"px, 0px)")}},setTransition:function(e){if(v.slides.transition(e),v.params.virtualTranslate&&0!==e){var a=!1;v.slides.transitionEnd(function(){if(!a&&v){a=!0,v.animating=!1;for(var e=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],t=0;t<e.length;t++)v.wrapper.trigger(e[t])}})}}},cube:{setTranslate:function(){var e,t=0;v.params.cube.shadow&&(r()?(e=v.wrapper.find(".swiper-cube-shadow"),0===e.length&&(e=a('<div class="swiper-cube-shadow"></div>'),v.wrapper.append(e)),e.css({height:v.width+"px"})):(e=v.container.find(".swiper-cube-shadow"),0===e.length&&(e=a('<div class="swiper-cube-shadow"></div>'),v.container.append(e))));for(var s=0;s<v.slides.length;s++){var i=v.slides.eq(s),n=90*s,o=Math.floor(n/360);v.rtl&&(n=-n,o=Math.floor(-n/360));var l=Math.max(Math.min(i[0].progress,1),-1),p=0,d=0,c=0;s%4===0?(p=4*-o*v.size,c=0):(s-1)%4===0?(p=0,c=4*-o*v.size):(s-2)%4===0?(p=v.size+4*o*v.size,c=v.size):(s-3)%4===0&&(p=-v.size,c=3*v.size+4*v.size*o),v.rtl&&(p=-p),r()||(d=p,p=0);var u="rotateX("+(r()?0:-n)+"deg) rotateY("+(r()?n:0)+"deg) translate3d("+p+"px, "+d+"px, "+c+"px)";if(1>=l&&l>-1&&(t=90*s+90*l,v.rtl&&(t=90*-s-90*l)),i.transform(u),v.params.cube.slideShadows){var m=r()?i.find(".swiper-slide-shadow-left"):i.find(".swiper-slide-shadow-top"),f=r()?i.find(".swiper-slide-shadow-right"):i.find(".swiper-slide-shadow-bottom");0===m.length&&(m=a('<div class="swiper-slide-shadow-'+(r()?"left":"top")+'"></div>'),i.append(m)),0===f.length&&(f=a('<div class="swiper-slide-shadow-'+(r()?"right":"bottom")+'"></div>'),i.append(f));i[0].progress;m.length&&(m[0].style.opacity=-i[0].progress),f.length&&(f[0].style.opacity=i[0].progress)}}if(v.wrapper.css({"-webkit-transform-origin":"50% 50% -"+v.size/2+"px","-moz-transform-origin":"50% 50% -"+v.size/2+"px","-ms-transform-origin":"50% 50% -"+v.size/2+"px","transform-origin":"50% 50% -"+v.size/2+"px"}),v.params.cube.shadow)if(r())e.transform("translate3d(0px, "+(v.width/2+v.params.cube.shadowOffset)+"px, "+-v.width/2+"px) rotateX(90deg) rotateZ(0deg) scale("+v.params.cube.shadowScale+")");else{var h=Math.abs(t)-90*Math.floor(Math.abs(t)/90),g=1.5-(Math.sin(2*h*Math.PI/360)/2+Math.cos(2*h*Math.PI/360)/2),w=v.params.cube.shadowScale,y=v.params.cube.shadowScale/g,b=v.params.cube.shadowOffset;e.transform("scale3d("+w+", 1, "+y+") translate3d(0px, "+(v.height/2+b)+"px, "+-v.height/2/y+"px) rotateX(-90deg)")}var T=v.isSafari||v.isUiWebView?-v.size/2:0;v.wrapper.transform("translate3d(0px,0,"+T+"px) rotateX("+(r()?0:t)+"deg) rotateY("+(r()?-t:0)+"deg)")},setTransition:function(e){v.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),v.params.cube.shadow&&!r()&&v.container.find(".swiper-cube-shadow").transition(e)}},coverflow:{setTranslate:function(){for(var e=v.translate,t=r()?-e+v.width/2:-e+v.height/2,s=r()?v.params.coverflow.rotate:-v.params.coverflow.rotate,i=v.params.coverflow.depth,n=0,o=v.slides.length;o>n;n++){var l=v.slides.eq(n),p=v.slidesSizesGrid[n],d=l[0].swiperSlideOffset,c=(t-d-p/2)/p*v.params.coverflow.modifier,u=r()?s*c:0,m=r()?0:s*c,f=-i*Math.abs(c),h=r()?0:v.params.coverflow.stretch*c,g=r()?v.params.coverflow.stretch*c:0;Math.abs(g)<.001&&(g=0),Math.abs(h)<.001&&(h=0),Math.abs(f)<.001&&(f=0),Math.abs(u)<.001&&(u=0),Math.abs(m)<.001&&(m=0);var w="translate3d("+g+"px,"+h+"px,"+f+"px)  rotateX("+m+"deg) rotateY("+u+"deg)";if(l.transform(w),l[0].style.zIndex=-Math.abs(Math.round(c))+1,v.params.coverflow.slideShadows){var y=r()?l.find(".swiper-slide-shadow-left"):l.find(".swiper-slide-shadow-top"),b=r()?l.find(".swiper-slide-shadow-right"):l.find(".swiper-slide-shadow-bottom");0===y.length&&(y=a('<div class="swiper-slide-shadow-'+(r()?"left":"top")+'"></div>'),l.append(y)),0===b.length&&(b=a('<div class="swiper-slide-shadow-'+(r()?"right":"bottom")+'"></div>'),l.append(b)),y.length&&(y[0].style.opacity=c>0?c:0),b.length&&(b[0].style.opacity=-c>0?-c:0)}}if(v.browser.ie){var T=v.wrapper[0].style;T.perspectiveOrigin=t+"px 50%"}},setTransition:function(e){v.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}}},v.lazy={initialImageLoaded:!1,loadImageInSlide:function(e,t){if("undefined"!=typeof e&&("undefined"==typeof t&&(t=!0),0!==v.slides.length)){var s=v.slides.eq(e),r=s.find(".swiper-lazy:not(.swiper-lazy-loaded):not(.swiper-lazy-loading)");!s.hasClass("swiper-lazy")||s.hasClass("swiper-lazy-loaded")||s.hasClass("swiper-lazy-loading")||(r=r.add(s[0])),0!==r.length&&r.each(function(){var e=a(this);e.addClass("swiper-lazy-loading");var r=e.attr("data-background"),i=e.attr("data-src"),n=e.attr("data-srcset");v.loadImage(e[0],i||r,n,!1,function(){if(r?(e.css("background-image","url("+r+")"),e.removeAttr("data-background")):(n&&(e.attr("srcset",n),e.removeAttr("data-srcset")),i&&(e.attr("src",i),e.removeAttr("data-src"))),e.addClass("swiper-lazy-loaded").removeClass("swiper-lazy-loading"),s.find(".swiper-lazy-preloader, .preloader").remove(),v.params.loop&&t){var a=s.attr("data-swiper-slide-index");if(s.hasClass(v.params.slideDuplicateClass)){var o=v.wrapper.children('[data-swiper-slide-index="'+a+'"]:not(.'+v.params.slideDuplicateClass+")");v.lazy.loadImageInSlide(o.index(),!1)}else{var l=v.wrapper.children("."+v.params.slideDuplicateClass+'[data-swiper-slide-index="'+a+'"]');v.lazy.loadImageInSlide(l.index(),!1)}}v.emit("onLazyImageReady",v,s[0],e[0])}),v.emit("onLazyImageLoad",v,s[0],e[0])})}},load:function(){var e;if(v.params.watchSlidesVisibility)v.wrapper.children("."+v.params.slideVisibleClass).each(function(){v.lazy.loadImageInSlide(a(this).index())});else if(v.params.slidesPerView>1)for(e=v.activeIndex;e<v.activeIndex+v.params.slidesPerView;e++)v.slides[e]&&v.lazy.loadImageInSlide(e);else v.lazy.loadImageInSlide(v.activeIndex);if(v.params.lazyLoadingInPrevNext)if(v.params.slidesPerView>1){for(e=v.activeIndex+v.params.slidesPerView;e<v.activeIndex+v.params.slidesPerView+v.params.slidesPerView;e++)v.slides[e]&&v.lazy.loadImageInSlide(e);for(e=v.activeIndex-v.params.slidesPerView;e<v.activeIndex;e++)v.slides[e]&&v.lazy.loadImageInSlide(e)}else{var t=v.wrapper.children("."+v.params.slideNextClass);t.length>0&&v.lazy.loadImageInSlide(t.index());var s=v.wrapper.children("."+v.params.slidePrevClass);s.length>0&&v.lazy.loadImageInSlide(s.index())}},onTransitionStart:function(){v.params.lazyLoading&&(v.params.lazyLoadingOnTransitionStart||!v.params.lazyLoadingOnTransitionStart&&!v.lazy.initialImageLoaded)&&v.lazy.load()},onTransitionEnd:function(){v.params.lazyLoading&&!v.params.lazyLoadingOnTransitionStart&&v.lazy.load()}},v.scrollbar={isTouched:!1,setDragPosition:function(e){var a=v.scrollbar,t=r()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageX:e.pageX||e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageY:e.pageY||e.clientY,s=t-a.track.offset()[r()?"left":"top"]-a.dragSize/2,i=-v.minTranslate()*a.moveDivider,n=-v.maxTranslate()*a.moveDivider;i>s?s=i:s>n&&(s=n),s=-s/a.moveDivider,v.updateProgress(s),v.setWrapperTranslate(s,!0)},dragStart:function(e){var a=v.scrollbar;a.isTouched=!0,e.preventDefault(),e.stopPropagation(),a.setDragPosition(e),clearTimeout(a.dragTimeout),a.track.transition(0),v.params.scrollbarHide&&a.track.css("opacity",1),v.wrapper.transition(100),a.drag.transition(100),v.emit("onScrollbarDragStart",v)},dragMove:function(e){var a=v.scrollbar;a.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,a.setDragPosition(e),v.wrapper.transition(0),a.track.transition(0),a.drag.transition(0),v.emit("onScrollbarDragMove",v))},dragEnd:function(e){var a=v.scrollbar;a.isTouched&&(a.isTouched=!1,v.params.scrollbarHide&&(clearTimeout(a.dragTimeout),a.dragTimeout=setTimeout(function(){a.track.css("opacity",0),a.track.transition(400)},1e3)),v.emit("onScrollbarDragEnd",v),v.params.scrollbarSnapOnRelease&&v.slideReset())},enableDraggable:function(){var e=v.scrollbar,t=v.support.touch?e.track:document;a(e.track).on(v.touchEvents.start,e.dragStart),a(t).on(v.touchEvents.move,e.dragMove),a(t).on(v.touchEvents.end,e.dragEnd)},disableDraggable:function(){var e=v.scrollbar,t=v.support.touch?e.track:document;a(e.track).off(v.touchEvents.start,e.dragStart),a(t).off(v.touchEvents.move,e.dragMove),a(t).off(v.touchEvents.end,e.dragEnd)},set:function(){if(v.params.scrollbar){var e=v.scrollbar;e.track=a(v.params.scrollbar),e.drag=e.track.find(".swiper-scrollbar-drag"),0===e.drag.length&&(e.drag=a('<div class="swiper-scrollbar-drag"></div>'),e.track.append(e.drag)),e.drag[0].style.width="",e.drag[0].style.height="",e.trackSize=r()?e.track[0].offsetWidth:e.track[0].offsetHeight,e.divider=v.size/v.virtualSize,e.moveDivider=e.divider*(e.trackSize/v.size),e.dragSize=e.trackSize*e.divider,r()?e.drag[0].style.width=e.dragSize+"px":e.drag[0].style.height=e.dragSize+"px",e.divider>=1?e.track[0].style.display="none":e.track[0].style.display="",v.params.scrollbarHide&&(e.track[0].style.opacity=0)}},setTranslate:function(){if(v.params.scrollbar){var e,a=v.scrollbar,t=(v.translate||0,a.dragSize);e=(a.trackSize-a.dragSize)*v.progress,v.rtl&&r()?(e=-e,e>0?(t=a.dragSize-e,e=0):-e+a.dragSize>a.trackSize&&(t=a.trackSize+e)):0>e?(t=a.dragSize+e,e=0):e+a.dragSize>a.trackSize&&(t=a.trackSize-e),r()?(v.support.transforms3d?a.drag.transform("translate3d("+e+"px, 0, 0)"):a.drag.transform("translateX("+e+"px)"),a.drag[0].style.width=t+"px"):(v.support.transforms3d?a.drag.transform("translate3d(0px, "+e+"px, 0)"):a.drag.transform("translateY("+e+"px)"),a.drag[0].style.height=t+"px"),v.params.scrollbarHide&&(clearTimeout(a.timeout),a.track[0].style.opacity=1,a.timeout=setTimeout(function(){a.track[0].style.opacity=0,a.track.transition(400)},1e3))}},setTransition:function(e){v.params.scrollbar&&v.scrollbar.drag.transition(e)}},v.controller={LinearSpline:function(e,a){this.x=e,this.y=a,this.lastIndex=e.length-1;var t,s;this.x.length;this.interpolate=function(e){return e?(s=r(this.x,e),t=s-1,(e-this.x[t])*(this.y[s]-this.y[t])/(this.x[s]-this.x[t])+this.y[t]):0};var r=function(){var e,a,t;return function(s,r){for(a=-1,e=s.length;e-a>1;)s[t=e+a>>1]<=r?a=t:e=t;return e}}()},getInterpolateFunction:function(e){v.controller.spline||(v.controller.spline=v.params.loop?new v.controller.LinearSpline(v.slidesGrid,e.slidesGrid):new v.controller.LinearSpline(v.snapGrid,e.snapGrid))},setTranslate:function(e,a){function s(a){e=a.rtl&&"horizontal"===a.params.direction?-v.translate:v.translate,"slide"===v.params.controlBy&&(v.controller.getInterpolateFunction(a),i=-v.controller.spline.interpolate(-e)),i&&"container"!==v.params.controlBy||(r=(a.maxTranslate()-a.minTranslate())/(v.maxTranslate()-v.minTranslate()),i=(e-v.minTranslate())*r+a.minTranslate()),v.params.controlInverse&&(i=a.maxTranslate()-i),a.updateProgress(i),a.setWrapperTranslate(i,!1,v),a.updateActiveIndex()}var r,i,n=v.params.control;if(v.isArray(n))for(var o=0;o<n.length;o++)n[o]!==a&&n[o]instanceof t&&s(n[o]);else n instanceof t&&a!==n&&s(n)},setTransition:function(e,a){function s(a){a.setWrapperTransition(e,v),0!==e&&(a.onTransitionStart(),a.wrapper.transitionEnd(function(){i&&(a.params.loop&&"slide"===v.params.controlBy&&a.fixLoop(),a.onTransitionEnd())}))}var r,i=v.params.control;if(v.isArray(i))for(r=0;r<i.length;r++)i[r]!==a&&i[r]instanceof t&&s(i[r]);else i instanceof t&&a!==i&&s(i)}},v.hashnav={init:function(){if(v.params.hashnav){v.hashnav.initialized=!0;var e=document.location.hash.replace("#","");if(e)for(var a=0,t=0,s=v.slides.length;s>t;t++){var r=v.slides.eq(t),i=r.attr("data-hash");if(i===e&&!r.hasClass(v.params.slideDuplicateClass)){var n=r.index();v.slideTo(n,a,v.params.runCallbacksOnInit,!0)}}}},setHash:function(){v.hashnav.initialized&&v.params.hashnav&&(document.location.hash=v.slides.eq(v.activeIndex).attr("data-hash")||"")}},v.disableKeyboardControl=function(){a(document).off("keydown",p)},v.enableKeyboardControl=function(){a(document).on("keydown",p)},v.mousewheel={event:!1,lastScrollTime:(new window.Date).getTime()},v.params.mousewheelControl){try{new window.WheelEvent("wheel"),v.mousewheel.event="wheel"}catch(G){}v.mousewheel.event||void 0===document.onmousewheel||(v.mousewheel.event="mousewheel"),v.mousewheel.event||(v.mousewheel.event="DOMMouseScroll")}v.disableMousewheelControl=function(){return v.mousewheel.event?(v.container.off(v.mousewheel.event,d),!0):!1},v.enableMousewheelControl=function(){return v.mousewheel.event?(v.container.on(v.mousewheel.event,d),!0):!1},v.parallax={setTranslate:function(){v.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){c(this,v.progress)}),v.slides.each(function(){var e=a(this);e.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){var a=Math.min(Math.max(e[0].progress,-1),1);c(this,a)})})},setTransition:function(e){"undefined"==typeof e&&(e=v.params.speed),v.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){var t=a(this),s=parseInt(t.attr("data-swiper-parallax-duration"),10)||e;0===e&&(s=0),t.transition(s)})}},v._plugins=[];for(var B in v.plugins){var O=v.plugins[B](v,v.params[B]);O&&v._plugins.push(O)}return v.callPlugins=function(e){for(var a=0;a<v._plugins.length;a++)e in v._plugins[a]&&v._plugins[a][e](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])},v.emitterEventListeners={},v.emit=function(e){v.params[e]&&v.params[e](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);var a;if(v.emitterEventListeners[e])for(a=0;a<v.emitterEventListeners[e].length;a++)v.emitterEventListeners[e][a](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);v.callPlugins&&v.callPlugins(e,arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])},v.on=function(e,a){return e=u(e),v.emitterEventListeners[e]||(v.emitterEventListeners[e]=[]),v.emitterEventListeners[e].push(a),v},v.off=function(e,a){var t;if(e=u(e),"undefined"==typeof a)return v.emitterEventListeners[e]=[],v;if(v.emitterEventListeners[e]&&0!==v.emitterEventListeners[e].length){for(t=0;t<v.emitterEventListeners[e].length;t++)v.emitterEventListeners[e][t]===a&&v.emitterEventListeners[e].splice(t,1);return v}},v.once=function(e,a){e=u(e);var t=function(){a(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]),v.off(e,t)};return v.on(e,t),v},v.a11y={makeFocusable:function(e){return e.attr("tabIndex","0"),e},addRole:function(e,a){return e.attr("role",a),e},addLabel:function(e,a){return e.attr("aria-label",a),e},disable:function(e){return e.attr("aria-disabled",!0),e},enable:function(e){return e.attr("aria-disabled",!1),e},onEnterKey:function(e){13===e.keyCode&&(a(e.target).is(v.params.nextButton)?(v.onClickNext(e),v.isEnd?v.a11y.notify(v.params.lastSlideMessage):v.a11y.notify(v.params.nextSlideMessage)):a(e.target).is(v.params.prevButton)&&(v.onClickPrev(e),v.isBeginning?v.a11y.notify(v.params.firstSlideMessage):v.a11y.notify(v.params.prevSlideMessage)),a(e.target).is("."+v.params.bulletClass)&&a(e.target)[0].click())},liveRegion:a('<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>'),notify:function(e){var a=v.a11y.liveRegion;0!==a.length&&(a.html(""),a.html(e))},init:function(){if(v.params.nextButton){var e=a(v.params.nextButton);v.a11y.makeFocusable(e),v.a11y.addRole(e,"button"),v.a11y.addLabel(e,v.params.nextSlideMessage)}if(v.params.prevButton){var t=a(v.params.prevButton);v.a11y.makeFocusable(t),v.a11y.addRole(t,"button"),v.a11y.addLabel(t,v.params.prevSlideMessage)}a(v.container).append(v.a11y.liveRegion)},initPagination:function(){v.params.pagination&&v.params.paginationClickable&&v.bullets&&v.bullets.length&&v.bullets.each(function(){var e=a(this);v.a11y.makeFocusable(e),v.a11y.addRole(e,"button"),v.a11y.addLabel(e,v.params.paginationBulletMessage.replace(/{{index}}/,e.index()+1))})},destroy:function(){v.a11y.liveRegion&&v.a11y.liveRegion.length>0&&v.a11y.liveRegion.remove()}},v.init=function(){v.params.loop&&v.createLoop(),v.updateContainerSize(),v.updateSlidesSize(),v.updatePagination(),v.params.scrollbar&&v.scrollbar&&(v.scrollbar.set(),v.params.scrollbarDraggable&&v.scrollbar.enableDraggable()),"slide"!==v.params.effect&&v.effects[v.params.effect]&&(v.params.loop||v.updateProgress(),v.effects[v.params.effect].setTranslate()),v.params.loop?v.slideTo(v.params.initialSlide+v.loopedSlides,0,v.params.runCallbacksOnInit):(v.slideTo(v.params.initialSlide,0,v.params.runCallbacksOnInit),0===v.params.initialSlide&&(v.parallax&&v.params.parallax&&v.parallax.setTranslate(),v.lazy&&v.params.lazyLoading&&(v.lazy.load(),v.lazy.initialImageLoaded=!0))),v.attachEvents(),v.params.observer&&v.support.observer&&v.initObservers(),v.params.preloadImages&&!v.params.lazyLoading&&v.preloadImages(),v.params.autoplay&&v.startAutoplay(),v.params.keyboardControl&&v.enableKeyboardControl&&v.enableKeyboardControl(),v.params.mousewheelControl&&v.enableMousewheelControl&&v.enableMousewheelControl(),v.params.hashnav&&v.hashnav&&v.hashnav.init(),v.params.a11y&&v.a11y&&v.a11y.init(),v.emit("onInit",v)}
1464,v.cleanupStyles=function(){v.container.removeClass(v.classNames.join(" ")).removeAttr("style"),v.wrapper.removeAttr("style"),v.slides&&v.slides.length&&v.slides.removeClass([v.params.slideVisibleClass,v.params.slideActiveClass,v.params.slideNextClass,v.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"),v.paginationContainer&&v.paginationContainer.length&&v.paginationContainer.removeClass(v.params.paginationHiddenClass),v.bullets&&v.bullets.length&&v.bullets.removeClass(v.params.bulletActiveClass),v.params.prevButton&&a(v.params.prevButton).removeClass(v.params.buttonDisabledClass),v.params.nextButton&&a(v.params.nextButton).removeClass(v.params.buttonDisabledClass),v.params.scrollbar&&v.scrollbar&&(v.scrollbar.track&&v.scrollbar.track.length&&v.scrollbar.track.removeAttr("style"),v.scrollbar.drag&&v.scrollbar.drag.length&&v.scrollbar.drag.removeAttr("style"))},v.destroy=function(e,a){v.detachEvents(),v.stopAutoplay(),v.params.scrollbar&&v.scrollbar&&v.params.scrollbarDraggable&&v.scrollbar.disableDraggable(),v.params.loop&&v.destroyLoop(),a&&v.cleanupStyles(),v.disconnectObservers(),v.params.keyboardControl&&v.disableKeyboardControl&&v.disableKeyboardControl(),v.params.mousewheelControl&&v.disableMousewheelControl&&v.disableMousewheelControl(),v.params.a11y&&v.a11y&&v.a11y.destroy(),v.emit("onDestroy"),e!==!1&&(v=null)},v.init(),v}};t.prototype={isSafari:function(){var e=navigator.userAgent.toLowerCase();return e.indexOf("safari")>=0&&e.indexOf("chrome")<0&&e.indexOf("android")<0}(),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent),isArray:function(e){return"[object Array]"===Object.prototype.toString.apply(e)},browser:{ie:window.navigator.pointerEnabled||window.navigator.msPointerEnabled,ieTouch:window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>1||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>1},device:function(){var e=navigator.userAgent,a=e.match(/(Android);?[\s\/]+([\d.]+)?/),t=e.match(/(iPad).*OS\s([\d_]+)/),s=e.match(/(iPod)(.*OS\s([\d_]+))?/),r=!t&&e.match(/(iPhone\sOS)\s([\d_]+)/);return{ios:t||r||s,android:a}}(),support:{touch:window.Modernizr&&Modernizr.touch===!0||function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)}(),transforms3d:window.Modernizr&&Modernizr.csstransforms3d===!0||function(){var e=document.createElement("div").style;return"webkitPerspective"in e||"MozPerspective"in e||"OPerspective"in e||"MsPerspective"in e||"perspective"in e}(),flexbox:function(){for(var e=document.createElement("div").style,a="alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "),t=0;t<a.length;t++)if(a[t]in e)return!0}(),observer:function(){return"MutationObserver"in window||"WebkitMutationObserver"in window}()},plugins:{}};for(var s=["jQuery","Zepto","Dom7"],r=0;r<s.length;r++)window[s[r]]&&e(window[s[r]]);var i;i="undefined"==typeof Dom7?window.Dom7||window.Zepto||window.jQuery:Dom7,i&&("transitionEnd"in i.fn||(i.fn.transitionEnd=function(e){function a(i){if(i.target===this)for(e.call(this,i),t=0;t<s.length;t++)r.off(s[t],a)}var t,s=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],r=this;if(e)for(t=0;t<s.length;t++)r.on(s[t],a);return this}),"transform"in i.fn||(i.fn.transform=function(e){for(var a=0;a<this.length;a++){var t=this[a].style;t.webkitTransform=t.MsTransform=t.msTransform=t.MozTransform=t.OTransform=t.transform=e}return this}),"transition"in i.fn||(i.fn.transition=function(e){"string"!=typeof e&&(e+="ms");for(var a=0;a<this.length;a++){var t=this[a].style;t.webkitTransitionDuration=t.MsTransitionDuration=t.msTransitionDuration=t.MozTransitionDuration=t.OTransitionDuration=t.transitionDuration=e}return this})),window.Swiper=t}(),"undefined"!=typeof module?module.exports=window.Swiper:"function"==typeof define&&define.amd&&define([],function(){"use strict";return window.Swiper});
1465//# sourceMappingURL=maps/swiper.jquery.min.js.map
1466
1467/**
1468 * Copyright (c) 2007-2015 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
1469 * Licensed under MIT
1470 * @author Ariel Flesler
1471 * @version 2.1.2
1472 */
1473;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}
1473var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});
1474/*! WOW - v1.1.2 - 2015-04-07
1475* Copyright (c) 2015 Matthieu Aussaguel; Licensed MIT */(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.createEvent=function(a,b,c,d){var e;return null==b&&(b=!1),null==c&&(c=!1),null==d&&(d=null),null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e},a.prototype.emitEvent=function(a,b){return null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)?a["on"+b]():void 0},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]},a.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a){return this.getPropertyValue=function(b){var c;return"float"===b&&(b="styleFloat"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.resetAnimation=f(this.resetAnimation,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),this.animationNameCache=new c,this.wowEvent=this.util().createEvent(this.config.boxClass)}return e.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll("."+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],c=0,d=b.length;d>c;c++)f=b[c],g.push(function(){var a,b,c,d;for(c=f.addedNodes||[],d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(this.doSync(e));return d}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll("."+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyle(a),a.className=a.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),this.util().emitEvent(a,this.wowEvent),this.util().addEvent(a,"animationend",this.resetAnimation),this.util().addEvent(a,"oanimationend",this.resetAnimation),this.util().addEvent(a,"webkitAnimationEnd",this.resetAnimation),this.util().addEvent(a,"MSAnimationEnd",this.resetAnimation),a},e.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute("data-wow-duration"),c=a.getAttribute("data-wow-delay"),e=a.getAttribute("data-wow-iteration"),this.animate(function(f){return function(){return f.customStyle(a,b,d,c,e)}}(this))},e.prototype.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),e.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.style.visibility="visible");return e},e.prototype.resetAnimation=function(a){var b;return a.type.toLowerCase().indexOf("animationend")>=0?(b=a.target||a.srcElement,b.className=b.className.replace(this.config.animateClass,"").trim()):void 0},e.prototype.customStyle=function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a}
vendor: 2,112 bytes, lines 1475-1486
1475,e.prototype.vendors=["moz","webkit"],e.prototype.vendorSet=function(a,b){var c,d,e,f;d=[];for(c in b)e=b[c],a[""+c]=e,d.push(function(){var b,d,g,h;for(g=this.vendors,h=[],b=0,d=g.length;d>b;b++)f=g[b],h.push(a[""+f+c.charAt(0).toUpperCase()+c.substr(1)]=e);return h}.call(this));return d},e.prototype.vendorCSS=function(a,b){var c,e,f,g,h,i;for(h=d(a),g=h.getPropertyCSSValue(b),f=this.vendors,c=0,e=f.length;e>c;c++)i=f[c],g=g||h.getPropertyCSSValue("-"+i+"-"+b);return g},e.prototype.animationName=function(a){var b;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=d(a).getPropertyValue("animation-name")}return"none"===b?"":b},e.prototype.cacheAnimationName=function(a){return this.animationNameCache.set(a,this.animationName(a))},e.prototype.cachedAnimationName=function(a){return this.animationNameCache.get(a)},e.prototype.scrollHandler=function(){return this.scrolled=!0},e.prototype.scrollCallback=function(){var a;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},e.prototype.offsetTop=function(a){for(var b;void 0===a.offsetTop;)a=a.parentNode;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},e.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute("data-wow-offset")||this.config.offset,f=window.pageYOffset,e=f+Math.min(this.element.clientHeight,this.util().innerHeight())-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},e.prototype.util=function(){return null!=this._util?this._util:this._util=new b},e.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},e}()}).call(this);
1476/**
1477 * A Twitter library in JavaScript
1478 *
1479 * @package   codebird
1480 * @version   2.5.0
1481 * @author    Jublo Solutions <[email protected]>
1482 * @copyright 2010-2014 Jublo Solutions <[email protected]>
1483 * @license   http://opensource.org/licenses/GPL-3.0 GNU Public License 3.0
1484 * @link      https://github.com/jublonet/codebird-php
1485 */
1486
1487/* jshint curly: true,
1488          eqeqeq: true,
1489          latedef: true,
1490          quotmark: double,
1491          undef: true,
1492          unused: true,
1493          trailing: true,
1494          laxbreak: true */
1495/* global window,
1496          document,
1497          navigator,
1498          console,
1499          Ti,
1500          ActiveXObject,
1501          module,
1502          define,
1503          require */
1504(function (undefined) {
1505"use strict";
1506
1507/**
1508 * Array.indexOf polyfill
1509 */
1510if (! Array.prototype.indexOf) {
1511    Array.prototype.indexOf = function (obj, start) {
1512        for (var i = (start || 0); i < this.length; i++) {
1513            if (this[i] === obj) {
1514                return i;
1515            }
1516        }
1517        return -1;
1518    };
1519}
1520
1521/**
1522 * A Twitter library in JavaScript
1523 *
1524 * @package codebird
1525 * @subpackage codebird-js
1526 */
1527/* jshint -W098 */
1528var Codebird = function () {
1529/* jshint +W098 */
1530
1531    /**
1532     * The OAuth consumer key of your registered app
1533     */
1534    var _oauth_consumer_key = null;
1535
1536    /**
1537     * The corresponding consumer secret
1538     */
1539    var _oauth_consumer_secret = null;
1540
1541    /**
1542     * The app-only bearer token. Used to authorize app-only requests
1543     */
1544    var _oauth_bearer_token = null;
1545
1546    /**
1547     * The API endpoint base to use
1548     */
1549    var _endpoint_base = "https://api.twitter.com/";
1550
1551    /**
1552     * The media API endpoint base to use
1553     */
1554    var _endpoint_base_media = "https://upload.twitter.com/";
1555
1556    /**
1557     * The API endpoint to use
1558     */
1559    var _endpoint = _endpoint_base + "1.1/";
1560
1561    /**
1562     * The media API endpoint to use
1563     */
1564    var _endpoint_media = _endpoint_base_media + "1.1/";
1565
1566    /**
1567     * The API endpoint base to use
1568     */
1569    var _endpoint_oauth = _endpoint_base;
1570
1571    /**
1572     * API proxy endpoint
1573     */
1574    var _endpoint_proxy = "https://api.jublo.net/codebird/";
1575
1576    /**
1577     * The API endpoint to use for old requests
1578     */
1579    var _endpoint_old = _endpoint_base + "1/";
1580
1581    /**
1582     * Use JSONP for GET requests in IE7-9
1583     */
1584    var _use_jsonp = (typeof navigator !== "undefined"
1585        && typeof navigator.userAgent !== "undefined"
1586        && (navigator.userAgent.indexOf("Trident/4") > -1
1587            || navigator.userAgent.indexOf("Trident/5") > -1
1588            || navigator.userAgent.indexOf("MSIE 7.0") > -1
1589        )
1590    );
1591
1592    /**
1593     * Whether to access the API via a proxy that is allowed by CORS
1594     * Assume that CORS is only necessary in browsers
1595     */
1596    var _use_proxy = (typeof navigator !== "undefined"
1597        && typeof navigator.userAgent !== "undefined"
1598    );
1599
1600    /**
1601     * The Request or access token. Used to sign requests
1602     */
1603    var _oauth_token = null;
1604
1605    /**
1606     * The corresponding request or access token secret
1607     */
1608    var _oauth_token_secret = null;
1609
1610    /**
1611     * The current Codebird version
1612     */
1613    var _version = "2.5.0";
1614
1615    /**
1616     * Sets the OAuth consumer key and secret (App key)
1617     *
1618     * @param string key    OAuth consumer key
1619     * @param string secret OAuth consumer secret
1620     *
1621     * @return void
1622     */
1623    var setConsumerKey = function (key, secret) {
1624        _oauth_consumer_key = key;
1625        _oauth_consumer_secret = secret;
1626    };
1627
1628    /**
1629     * Sets the OAuth2 app-only auth bearer token
1630     *
1631     * @param string token OAuth2 bearer token
1632     *
1633     * @return void
1634     */
1635    var setBearerToken = function (token) {
1636        _oauth_bearer_token = token;
1637    };
1638
1639    /**
1640     * Gets the current Codebird version
1641     *
1642     * @return string The version number
1643     */
1644    var getVersion = function () {
1645        return _version;
1646    };
1647
1648    /**
1649     * Sets the OAuth request or access token and secret (User key)
1650     *
1651     * @param string token  OAuth request or access token
1652     * @param string secret OAuth request or access token secret
1653     *
1654     * @return void
1655     */
1656    var setToken = function (token, secret) {
1657        _oauth_token = token;
1658        _oauth_token_secret = secret;
1659    };
1660
1661    /**
1662     * Enables or disables CORS proxy
1663     *
1664     * @param bool use_proxy Whether to use CORS proxy or not
1665     *
1666     * @return void
1667     */
1668    var setUseProxy = function (use_proxy) {
1669        _use_proxy = !! use_proxy;
1670    };
1671
1672    /**
1673     * Sets custom CORS proxy server
1674     *
1675     * @param string proxy Address of proxy server to use
1676     *
1677     * @return void
1678     */
1679    var setProxy = function (proxy) {
1680        // add trailing slash if missing
1681        if (! proxy.match(/\/$/)) {
1682            proxy += "/";
1683        }
1684        _endpoint_proxy = proxy;
1685    };
1686
1687    /**
1688     * Parse URL-style parameters into object
1689     *
1690     * version: 1109.2015
1691     * discuss at: http://phpjs.org/functions/parse_str
1692     * +   original by: Cagri Ekin
1693     * +   improved by: Michael White (http://getsprink.com)
1694     * +    tweaked by: Jack
1695     * +   bugfixed by: Onno Marsman
1696     * +   reimplemented by: stag019
1697     * +   bugfixed by: Brett Zamir (http://brett-zamir.me)
1698     * +   bugfixed by: stag019
1699     * -    depends on: urldecode
1700     * +   input by: Dreamer
1701     * +   bugfixed by: Brett Zamir (http://brett-zamir.me)
1702     * %        note 1: When no argument is specified, will put variables in global scope.
1703     *
1704     * @param string str String to parse
1705     * @param array array to load data into
1706     *
1707     * @return object
1708     */
1709    var _parse_str = function (str, array) {
1710        var glue1 = "=",
1711            glue2 = "&",
1712            array2 = String(str).replace(/^&?([\s\S]*?)&?$/, "$1").split(glue2),
1713            i, j, chr, tmp, key, value, bracket, keys, evalStr,
1714            fixStr = function (str) {
1715                return decodeURIComponent(str).replace(/([\\"'])/g, "\\$1").replace(/\n/g, "\\n").replace(/\r/g, "\\r");
1716            };
1717        if (! array) {
1718            array = this.window;
1719        }
1720
1721        for (i = 0; i < array2.length; i++) {
1722            tmp = array2[i].split(glue1);
1723            if (tmp.length < 2) {
1724                tmp = [tmp, ""];
1725            }
1726            key = fixStr(tmp[0]);
1727            value = fixStr(tmp[1]);
1728            while (key.charAt(0) === " ") {
1729                key = key.substr(1);
1730            }
1731            if (key.indexOf("\0") !== -1) {
1732                key = key.substr(0, key.indexOf("\0"));
1733            }
1734            if (key && key.charAt(0) !== "[") {
1735                keys = [];
1736                bracket = 0;
1737                for (j = 0; j < key.length; j++) {
1738                    if (key.charAt(j) === "[" && !bracket) {
1739                        bracket = j + 1;
1740                    } else if (key.charAt(j) === "]") {
1741                        if (bracket) {
1742                            if (!keys.length) {
1743                                keys.push(key.substr(0, bracket - 1));
1744                            }
1745                            keys.push(key.substr(bracket, j - bracket));
1746                            bracket = 0;
1747                            if (key.charAt(j + 1) !== "[") {
1748                                break;
1749                            }
1750                        }
1751                    }
1752                }
1753                if (!keys.length) {
1754                    keys = [key];
1755                }
1756                for (j = 0; j < keys[0].length; j++) {
1757                    chr = keys[0].charAt(j);
1758                    if (chr === " " || chr === "." || chr === "[") {
1759                        keys[0] = keys[0].substr(0, j) + "_" + keys[0].substr(j + 1);
1760                    }
1761                    if (chr === "[") {
1762                        break;
1763                    }
1764                }
1765                /* jshint -W061 */
1766                evalStr = "array";
1767                for (j = 0; j < keys.length; j++) {
1768                    key = keys[j];
1769                    if ((key !== "" && key !== " ") || j === 0) {
1770                        key = "'" + key + "'";
1771                    } else {
1772                        key = eval(evalStr + ".push([]);") - 1;
1773                    }
1774                    evalStr += "[" + key + "]";
1775                    if (j !== keys.length - 1 && eval("typeof " + evalStr) === "undefined") {
1776                        eval(evalStr + " = [];");
1777                    }
1778                }
1779                evalStr += " = '" + value + "';\n";
1780                eval(evalStr);
1781                /* jshint +W061 */
1782            }
1783        }
1784    };
1785
1786    /**
1787     * Main API handler working on any requests you issue
1788     *
1789     * @param string   fn            The member function you called
1790     * @param array    params        The parameters you sent along
1791     * @param function callback      The callback to call with the reply
1792     * @param bool     app_only_auth Whether to use app-only auth
1793     *
1794     * @return mixed The API reply encoded in the set return_format
1795     */
1796
1797    var __call = function (fn, params, callback, app_only_auth) {
1798        if (typeof params === "undefined") {
1799            params = {};
1800        }
1801        if (typeof app_only_auth === "undefined") {
1802            app_only_auth = false;
1803        }
1804        if (typeof callback !== "function" && typeof params === "function") {
1805            callback = params;
1806            params = {};
1807            if (typeof callback === "boolean") {
1808                app_only_auth = callback;
1809            }
1810        } else if (typeof callback === "undefined") {
1811            callback = function () {};
1812        }
1813        switch (fn) {
1814        case "oauth_authenticate":
1815        case "oauth_authorize":
1816            return this[fn](params, callback);
1817
1818        case "oauth2_token":
1819            return this[fn](callback);
1820        }
1821        // reset token when requesting a new token (causes 401 for signature error on 2nd+ requests)
1822        if (fn === "oauth_requestToken") {
1823            setToken(null, null);
1824        }
1825        // parse parameters
1826        var apiparams = {};
1827        if (typeof params === "object") {
1828            apiparams = params;
1829        } else {
1830            _parse_str(params, apiparams); //TODO
1831        }
1832
1833        // map function name to API method
1834        var method = "";
1835        var param, i, j;
1836
1837        // replace _ by /
1838        var path = fn.split("_");
1839        for (i = 0; i < path.length; i++) {
1840            if (i > 0) {
1841                method += "/";
1842            }
1843            method += path[i];
1844        }
1845
1846        // undo replacement for URL parameters
1847        var url_parameters_with_underscore = ["screen_name", "place_id"];
1848        for (i = 0; i < url_parameters_with_underscore.length; i++) {
1849            param = url_parameters_with_underscore[i].toUpperCase();
1850            var replacement_was = param.split("_").join("/");
1851            method = method.split(replacement_was).join(param);
1852        }
1853
1854        // replace AA by URL parameters
1855        var method_template = method;
1856        var match = method.match(/[A-Z_]{2,}/);
1857        if (match) {
1858            for (i = 0; i < match.length; i++) {
1859                param = match[i];
1860                var param_l = param.toLowerCase();
1861                method_template = method_template.split(param).join(":" + param_l);
1862                if (typeof apiparams[param_l] === "undefined") {
1863                    for (j = 0; j < 26; j++) {
1864                        method_template = method_template.split(String.fromCharCode(65 + j)).join("_" + String.fromCharCode(97 + j));
1865                    }
1866                    console.warn("To call the templated method \"" + method_template + "\", specify the parameter value for \"" + param_l + "\".");
1867                }
1868                method = method.split(param).join(apiparams[param_l]);
1869                delete apiparams[param_l];
1870            }
1871        }
1872
1873        // replace A-Z by _a-z
1874        for (i = 0; i < 26; i++) {
1875            method = method.split(String.fromCharCode(65 + i)).join("_" + String.fromCharCode(97 + i));
1876            method_template = method_template.split(String.fromCharCode(65 + i)).join("_" + String.fromCharCode(97 + i));
1877        }
1878
1879        var httpmethod = _detectMethod(method_template, apiparams);
1880        var multipart = _detectMultipart(method_template);
1881        var internal = _detectInternal(method_template);
1882
1883        return _callApi(
1884            httpmethod,
1885            method,
1886            apiparams,
1887            multipart,
1888            app_only_auth,
1889            internal,
1890            callback
1891        );
1892    };
1893
1894    /**
1895     * Gets the OAuth authenticate URL for the current request token
1896     *
1897     * @return string The OAuth authenticate URL
1898     */
1899    var oauth_authenticate = function (params, callback) {
1900        if (typeof params.force_login === "undefined") {
1901            params.force_login = null;
1902        }
1903        if (typeof params.screen_name === "undefined") {
1904            params.screen_name = null;
1905        }
1906        if (_oauth_token === null) {
1907            console.warn("To get the authenticate URL, the OAuth token must be set.");
1908        }
1909        var url = _endpoint_oauth + "oauth/authenticate?oauth_token=" + _url(_oauth_token);
1910        if (params.force_login === true) {
1911            url += "?force_login=1";
1912            if (params.screen_name !== null) {
1913                url += "&screen_name=" + params.screen_name;
1914            }
1915        }
1916        callback(url);
1917        return true;
1918    };
1919
1920    /**
1921     * Gets the OAuth authorize URL for the current request token
1922     *
1923     * @return string The OAuth authorize URL
1924     */
1925    var oauth_authorize = function (params, callback) {
1926        if (typeof params.force_login === "undefined") {
1927            params.force_login = null;
1928        }
1929        if (typeof params.screen_name === "undefined") {
1930            params.screen_name = null;
1931        }
1932        if (_oauth_token === null) {
1933            console.warn("To get the authorize URL, the OAuth token must be set.");
1934        }
1935        var url = _endpoint_oauth + "oauth/authorize?oauth_token=" + _url(_oauth_token);
1936        if (params.force_login === true) {
1937            url += "?force_login=1";
1938            if (params.screen_name !== null) {
1939                url += "&screen_name=" + params.screen_name;
1940            }
1941        }
1942        callback(url);
1943        return true;
1944    };
1945
1946    /**
1947     * Gets the OAuth bearer token
1948     *
1949     * @return string The OAuth bearer token
1950     */
1951
1952    var oauth2_token = function (callback) {
1953        if (_oauth_consumer_key === null) {
1954            console.warn("To obtain a bearer token, the consumer key must be set.");
1955        }
1956
1957        if (typeof callback === "undefined") {
1958            callback = function () {};
1959        }
1960
1961        var post_fields = "grant_type=client_credentials";
1962        var url = _endpoint_oauth + "oauth2/token";
1963
1964        if (_use_proxy) {
1965            url = url.replace(
1966                _endpoint_base,
1967                _endpoint_proxy
1968            );
1969        }
1970
1971        var xml = _getXmlRequestObject();
1972        if (xml === null) {
1973            return;
1974        }
1975        xml.open("POST", url, true);
1976        xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
1977        xml.setRequestHeader(
1978            (_use_proxy ? "X-" : "") + "Authorization",
1979            "Basic " + _base64_encode(_oauth_consumer_key + ":" + _oauth_consumer_secret)
1980        );
1981
1982        xml.onreadystatechange = function () {
1983            if (xml.readyState >= 4) {
1984                var httpstatus = 12027;
1985                try {
1986                    httpstatus = xml.status;
1987                } catch (e) {}
1988                var response = "";
1989                try {
1990                    response = xml.responseText;
1991                } catch (e) {}
1992                var reply = _parseApiReply(response);
1993                reply.httpstatus = httpstatus;
1994                if (httpstatus === 200) {
1995                    setBearerToken(reply.access_token);
1996                }
1997                callback(reply);
1998            }
1999        };
2000        xml.send(post_fields);
2001
2002    };
2003
2004    /**
2005     * Signing helpers
2006     */
2007
2008    /**
2009     * URL-encodes the given data
2010     *
2011     * @param mixed data
2012     *
2013     * @return mixed The encoded data
2014     */
2015    var _url = function (data) {
2016        if ((/boolean|number|string/).test(typeof data)) {
2017            return encodeURIComponent(data).replace(/!/g, "%21").replace(/'/g, "%27").replace(/\(/g, "%28").replace(/\)/g, "%29").replace(/\*/g, "%2A");
2018        } else {
2019            return "";
2020        }
2021    };
2022
2023    /**
2024     * Gets the base64-encoded SHA1 hash for the given data
2025     *
2026     * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
2027     * in FIPS PUB 180-1
2028     * Based on version 2.1 Copyright Paul Johnston 2000 - 2002.
2029     * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
2030     * Distributed under the BSD License
2031     * See http://pajhome.org.uk/crypt/md5 for details.
2032     *
2033     * @param string data The data to calculate the hash from
2034     *
2035     * @return string The hash
2036     */
2037    var _sha1 = function () {
2038        function n(e, b) {
2039            e[b >> 5] |= 128 << 24 - b % 32;
2040            e[(b + 64 >> 9 << 4) + 15] = b;
2041            for (var c = new Array(80), a = 1732584193, d = -271733879, h = -1732584194,
2042                    k = 271733878, g = -1009589776, p = 0; p < e.length; p += 16) {
2043                for (var o = a, q = d, r = h, s = k, t = g, f = 0; 80 > f; f++) {
2044                    var m;
2045
2046                    if (f < 16) {
2047                        m = e[p + f];
2048                    } else {
2049                        m = c[f - 3] ^ c[f - 8] ^ c[f - 14] ^ c[f - 16];
2050                        m = m << 1 | m >>> 31;
2051                    }
2052
2053                    c[f] = m;
2054                    m = l(l(a << 5 | a >>> 27, 20 > f ? d & h | ~d & k : 40 > f ? d ^
2055                        h ^ k : 60 > f ? d & h | d & k | h & k : d ^ h ^ k), l(
2056                        l(g, c[f]), 20 > f ? 1518500249 : 40 > f ? 1859775393 :
2057                        60 > f ? -1894007588 : -899497514));
2058                    g = k;
2059                    k = h;
2060                    h = d << 30 | d >>> 2;
2061                    d = a;
2062                    a = m;
2063                }
2064                a = l(a, o);
2065                d = l(d, q);
2066                h = l(h, r);
2067                k = l(k, s);
2068                g = l(g, t);
2069            }
2070            return [a, d, h, k, g];
2071        }
2072
2073        function l(e, b) {
2074            var c = (e & 65535) + (b & 65535);
2075            return (e >> 16) + (b >> 16) + (c >> 16) << 16 | c & 65535;
2076        }
2077
2078        function q(e) {
2079            for (var b = [], c = (1 << g) - 1, a = 0; a < e.length * g; a += g) {
2080                b[a >> 5] |= (e.charCodeAt(a / g) & c) << 24 - a % 32;
2081            }
2082            return b;
2083        }
2084        var g = 8;
2085        return function (e) {
2086            var b = _oauth_consumer_secret + "&" + (null !== _oauth_token_secret ?
2087                _oauth_token_secret : "");
2088            if (_oauth_consumer_secret === null) {
2089                console.warn("To generate a hash, the consumer secret must be set.");
2090            }
2091            var c = q(b);
2092            if (c.length > 16) {
2093                c = n(c, b.length * g);
2094            }
2095            b = new Array(16);
2096            for (var a = new Array(16), d = 0; d < 16; d++) {
2097                a[d] = c[d] ^ 909522486;
2098                b[d] = c[d] ^ 1549556828;
2099            }
2100            c = n(a.concat(q(e)), 512 + e.length * g);
2101            b = n(b.concat(c), 672);
2102            c = "";
2103            for (a = 0; a < 4 * b.length; a += 3) {
2104                for (d = (b[a >> 2] >> 8 * (3 - a % 4) & 255) << 16 | (b[a + 1 >> 2] >>
2105                    8 * (3 - (a + 1) % 4) & 255) << 8 | b[a + 2 >> 2] >> 8 * (3 -
2106                    (a + 2) % 4) & 255, e = 0; 4 > e; e++) {
2107                    c = 8 * a + 6 * e > 32 * b.length ? c + "=" : c +
2108                        "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
2108+/"
2109                        .charAt(d >> 6 * (3 - e) & 63);
2110                }
2111            }
2112            return c;
2113        };
2114    }();
2115
2116    /*
2117     * Gets the base64 representation for the given data
2118     *
2119     * http://phpjs.org
2120     * +   original by: Tyler Akins (http://rumkin.com)
2121     * +   improved by: Bayron Guevara
2122     * +   improved by: Thunder.m
2123     * +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
2124     * +   bugfixed by: Pellentesque Malesuada
2125     * +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
2126     * +   improved by: Rafał Kukawski (http://kukawski.pl)
2127     *
2128     * @param string data The data to calculate the base64 representation from
2129     *
2130     * @return string The base64 representation
2131     */
2132    var _base64_encode = function (a) {
2133        var d, e, f, b, g = 0,
2134            h = 0,
2135            i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
2136            c = [];
2137        if (!a) {
2138            return a;
2139        }
2140        do {
2141            d = a.charCodeAt(g++);
2142            e = a.charCodeAt(g++);
2143            f = a.charCodeAt(g++);
2144            b = d << 16 | e << 8 | f;
2145            d = b >> 18 & 63;
2146            e = b >> 12 & 63;
2147            f = b >> 6 & 63;
2148            b &= 63;
2149            c[h++] = i.charAt(d) + i.charAt(e) + i.charAt(f) + i.charAt(b);
2150        } while (g < a.length);
2151        c = c.join("");
2152        a = a.length % 3;
2153        return (a ? c.slice(0, a - 3) : c) + "===".slice(a || 3);
2154    };
2155
2156    /*
2157     * Builds a HTTP query string from the given data
2158     *
2159     * http://phpjs.org
2160     * +     original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
2161     * +     improved by: Legaev Andrey
2162     * +     improved by: Michael White (http://getsprink.com)
2163     * +     improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
2164     * +     improved by: Brett Zamir (http://brett-zamir.me)
2165     * +        revised by: stag019
2166     * +     input by: Dreamer
2167     * +     bugfixed by: Brett Zamir (http://brett-zamir.me)
2168     * +     bugfixed by: MIO_KODUKI (http://mio-koduki.blogspot.com/)
2169     *
2170     * @param string data The data to concatenate
2171     *
2172     * @return string The HTTP query
2173     */
2174    var _http_build_query = function (e, f, b) {
2175        function g(c, a, d) {
2176            var b, e = [];
2177            if (a === true) {
2178                a = "1";
2179            } else if (a === false) {
2180                a = "0";
2181            }
2182            if (null !== a) {
2183                if (typeof a === "object") {
2184                    for (b in a) {
2185                        if (a[b] !== null) {
2186                            e.push(g(c + "[" + b + "]", a[b], d));
2187                        }
2188                    }
2189                    return e.join(d);
2190                }
2191                if (typeof a !== "function") {
2192                    return _url(c) + "=" + _url(a);
2193                }
2194                console.warn("There was an error processing for http_build_query().");
2195            } else {
2196                return "";
2197            }
2198        }
2199        var d, c, h = [];
2200        if (! b) {
2201            b = "&";
2202        }
2203        for (c in e) {
2204            d = e[c];
2205            if (f && ! isNaN(c)) {
2206                c = String(f) + c;
2207            }
2208            d = g(c, d, b);
2209            if (d !== "") {
2210                h.push(d);
2211            }
2212        }
2213        return h.join(b);
2214    };
2215
2216    /**
2217     * Generates a (hopefully) unique random string
2218     *
2219     * @param int optional length The length of the string to generate
2220     *
2221     * @return string The random string
2222     */
2223    var _nonce = function (length) {
2224        if (typeof length === "undefined") {
2225            length = 8;
2226        }
2227        if (length < 1) {
2228            console.warn("Invalid nonce length.");
2229        }
2230        var nonce = "";
2231        for (var i = 0; i < length; i++) {
2232            var character = Math.floor(Math.random() * 61);
2233            nonce += "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".substring(character, character + 1);
2234        }
2235        return nonce;
2236    };
2237
2238    /**
2239     * Sort array elements by key
2240     *
2241     * @param array input_arr The array to sort
2242     *
2243     * @return array The sorted keys
2244     */
2245    var _ksort = function (input_arr) {
2246        var keys = [], sorter, k;
2247
2248        sorter = function (a, b) {
2249            var a_float = parseFloat(a),
2250            b_float = parseFloat(b),
2251            a_numeric = a_float + "" === a,
2252            b_numeric = b_float + "" === b;
2253            if (a_numeric && b_numeric) {
2254                return a_float > b_float ? 1 : a_float < b_float ? -1 : 0;
2255            } else if (a_numeric && !b_numeric) {
2256                return 1;
2257            } else if (!a_numeric && b_numeric) {
2258                return -1;
2259            }
2260            return a > b ? 1 : a < b ? -1 : 0;
2261        };
2262
2263        // Make a list of key names
2264        for (k in input_arr) {
2265            if (input_arr.hasOwnProperty(k)) {
2266                keys.push(k);
2267            }
2268        }
2269        keys.sort(sorter);
2270        return keys;
2271    };
2272
2273    /**
2274     * Clone objects
2275     *
2276     * @param object obj    The object to clone
2277     *
2278     * @return object clone The cloned object
2279     */
2280    var _clone = function (obj) {
2281        var clone = {};
2282        for (var i in obj) {
2283            if (typeof(obj[i]) === "object") {
2284                clone[i] = _clone(obj[i]);
2285            } else {
2286                clone[i] = obj[i];
2287            }
2288        }
2289        return clone;
2290    };
2291
2292    /**
2293     * Generates an OAuth signature
2294     *
2295     * @param string          httpmethod    Usually either 'GET' or 'POST' or 'DELETE'
2296     * @param string          method        The API method to call
2297     * @param array  optional params        The API call parameters, associative
2298     * @param bool   optional append_to_get Whether to append the OAuth params to GET
2299     *
2300     * @return string Authorization HTTP header
2301     */
2302    var _sign = function (httpmethod, method, params, append_to_get) {
2303        if (typeof params === "undefined") {
2304            params = {};
2305        }
2306        if (typeof append_to_get === "undefined") {
2307            append_to_get = false;
2308        }
2309        if (_oauth_consumer_key === null) {
2310            console.warn("To generate a signature, the consumer key must be set.");
2311        }
2312        var sign_params = {
2313            consumer_key:     _oauth_consumer_key,
2314            version:          "1.0",
2315            timestamp:        Math.round(new Date().getTime() / 1000),
2316            nonce:            _nonce(),
2317            signature_method: "HMAC-SHA1"
2318        };
2319        var sign_base_params = {};
2320        var value;
2321        for (var key in sign_params) {
2322            value = sign_params[key];
2323            sign_base_params["oauth_" + key] = _url(value);
2324        }
2325        if (_oauth_token !== null) {
2326            sign_base_params.oauth_token = _url(_oauth_token);
2327        }
2328        var oauth_params = _clone(sign_base_params);
2329        for (key in params) {
2330            value = params[key];
2331            sign_base_params[key] = value;
2332        }
2333        var keys = _ksort(sign_base_params);
2334        var sign_base_string = "";
2335        for (var i = 0; i < keys.length; i++) {
2336            key = keys[i];
2337            value = sign_base_params[key];
2338            sign_base_string += key + "=" + _url(value) + "&";
2339        }
2340        sign_base_string = sign_base_string.substring(0, sign_base_string.length - 1);
2341        var signature    = _sha1(httpmethod + "&" + _url(method) + "&" + _url(sign_base_string));
2342
2343        params = append_to_get ? sign_base_params : oauth_params;
2344        params.oauth_signature = signature;
2345        keys = _ksort(params);
2346        var authorization = "";
2347        if (append_to_get) {
2348            for(i = 0; i < keys.length; i++) {
2349                key = keys[i];
2350                value = params[key];
2351                authorization += key + "=" + _url(value) + "&";
2352            }
2353            return authorization.substring(0, authorization.length - 1);
2354        }
2355        authorization = "OAuth ";
2356        for (i = 0; i < keys.length; i++) {
2357            key = keys[i];
2358            value = params[key];
2359            authorization += key + "=\"" + _url(value) + "\", ";
2360        }
2361        return authorization.substring(0, authorization.length - 2);
2362    };
2363
2364    /**
2365     * Detects HTTP method to use for API call
2366     *
2367     * @param string method The API method to call
2368     * @param array  params The parameters to send along
2369     *
2370     * @return string The HTTP method that should be used
2371     */
2372    var _detectMethod = function (method, params) {
2373        // multi-HTTP method endpoints
2374        switch (method) {
2375        case "account/settings":
2376        case "account/login_verification_enrollment":
2377        case "account/login_verification_request":
2378            method = params.length ? method + "__post" : method;
2379            break;
2380        }
2381
2382        var httpmethods = {};
2383        httpmethods.GET = [
2384            // Timelines
2385            "statuses/mentions_timeline",
2386            "statuses/user_timeline",
2387            "statuses/home_timeline",
2388            "statuses/retweets_of_me",
2389
2390            // Tweets
2391            "statuses/retweets/:id",
2392            "statuses/show/:id",
2393            "statuses/oembed",
2394            "statuses/retweeters/ids",
2395
2396            // Search
2397            "search/tweets",
2398
2399            // Direct Messages
2400            "direct_messages",
2401            "direct_messages/sent",
2402            "direct_messages/show",
2403
2404            // Friends & Followers
2405            "friendships/no_retweets/ids",
2406            "friends/ids",
2407            "followers/ids",
2408            "friendships/lookup",
2409            "friendships/incoming",
2410            "friendships/outgoing",
2411            "friendships/show",
2412            "friends/list",
2413            "followers/list",
2414            "friendships/lookup",
2415
2416            // Users
2417            "account/settings",
2418            "account/verify_credentials",
2419            "blocks/list",
2420            "blocks/ids",
2421            "users/lookup",
2422            "users/show",
2423            "users/search",
2424            "users/contributees",
2425            "users/contributors",
2426            "users/profile_banner",
2427            "mutes/users/ids",
2428            "mutes/users/list",
2429
2430            // Suggested Users
2431            "users/suggestions/:slug",
2432            "users/suggestions",
2433            "users/suggestions/:slug/members",
2434
2435            // Favorites
2436            "favorites/list",
2437
2438            // Lists
2439            "lists/list",
2440            "lists/statuses",
2441            "lists/memberships",
2442            "lists/subscribers",
2443            "lists/subscribers/show",
2444            "lists/members/show",
2445            "lists/members",
2446            "lists/show",
2447            "lists/subscriptions",
2448            "lists/ownerships",
2449
2450            // Saved searches
2451            "saved_searches/list",
2452            "saved_searches/show/:id",
2453
2454            // Places & Geo
2455            "geo/id/:place_id",
2456            "geo/reverse_geocode",
2457            "geo/search",
2458            "geo/similar_places",
2459
2460            // Trends
2461            "trends/place",
2462            "trends/available",
2463            "trends/closest",
2464
2465            // OAuth
2466            "oauth/authenticate",
2467            "oauth/authorize",
2468
2469            // Help
2470            "help/configuration",
2471            "help/languages",
2472            "help/privacy",
2473            "help/tos",
2474            "application/rate_limit_status",
2475
2476            // Tweets
2477            "statuses/lookup",
2478
2479            // Internal
2480            "users/recommendations",
2481            "account/push_destinations/device",
2482            "activity/about_me",
2483            "activity/by_friends",
2484            "statuses/media_timeline",
2485            "timeline/home",
2486            "help/experiments",
2487            "search/typeahead",
2488            "search/universal",
2489            "discover/universal",
2490            "conversation/show",
2491            "statuses/:id/activity/summary",
2492            "account/login_verification_enrollment",
2493            "account/login_verification_request",
2494            "prompts/suggest",
2495
2496            "beta/timelines/custom/list",
2497            "beta/timelines/timeline",
2498            "beta/timelines/custom/show"
2499        ];
2500        httpmethods.POST = [
2501            // Tweets
2502            "statuses/destroy/:id",
2503            "statuses/update",
2504            "statuses/retweet/:id",
2505            "statuses/update_with_media",
2506            "media/upload",
2507
2508            // Direct Messages
2509            "direct_messages/destroy",
2510            "direct_messages/new",
2511
2512            // Friends & Followers
2513            "friendships/create",
2514            "friendships/destroy",
2515            "friendships/update",
2516
2517            // Users
2518            "account/settings__post",
2519            "account/update_delivery_device",
2520            "account/update_profile",
2521            "account/update_profile_background_image",
2522            "account/update_profile_colors",
2523            "account/update_profile_image",
2524            "blocks/create",
2525            "blocks/destroy",
2526            "account/update_profile_banner",
2527            "account/remove_profile_banner",
2528            "mutes/users/create",
2529            "mutes/users/destroy",
2530
2531            // Favorites
2532            "favorites/destroy",
2533            "favorites/create",
2534
2535            // Lists
2536            "lists/members/destroy",
2537            "lists/subscribers/create",
2538            "lists/subscribers/destroy",
2539            "lists/members/create_all",
2540            "lists/members/create",
2541            "lists/destroy",
2542            "lists/update",
2543            "lists/create",
2544            "lists/members/destroy_all",
2545
2546            // Saved Searches
2547            "saved_searches/create",
2548            "saved_searches/destroy/:id",
2549
2550            // Spam Reporting
2551            "users/report_spam",
2552
2553            // OAuth
2554            "oauth/access_token",
2555            "oauth/request_token",
2556            "oauth2/token",
2557            "oauth2/invalidate_token",
2558
2559            // Internal
2560            "direct_messages/read",
2561            "account/login_verification_enrollment__post",
2562            "push_destinations/enable_login_verification",
2563            "account/login_verification_request__post",
2564
2565            "beta/timelines/custom/create",
2566            "beta/timelines/custom/update",
2567            "beta/timelines/custom/destroy",
2568            "beta/timelines/custom/add",
2569            "beta/timelines/custom/remove"
2570        ];
2571        for (var httpmethod in httpmethods) {
2572            if (httpmethods[httpmethod].indexOf(method) > -1) {
2573                return httpmethod;
2574            }
2575        }
2576        console.warn("Can't find HTTP method to use for \"" + method + "\".");
2577    };
2578
2579    /**
2580     * Detects if API call should use multipart/form-data
2581     *
2582     * @param string method The API method to call
2583     *
2584     * @return bool Whether the method should be sent as multipart
2585     */
2586    var _detectMultipart = function (method) {
2587        var multiparts = [
2588            // Tweets
2589            "statuses/update_with_media",
2590
2591            // Users
2592            "account/update_profile_background_image",
2593            "account/update_profile_image",
2594            "account/update_profile_banner"
2595        ];
2596        return multiparts.indexOf(method) > -1;
2597    };
2598
2599    /**
2600     * Build multipart request from upload params
2601     *
2602     * @param string method  The API method to call
2603     * @param array  params  The parameters to send along
2604     *
2605     * @return null|string The built multipart request body
2606     */
2607    var _buildMultipart = function (method, params) {
2608        // well, files will only work in multipart methods
2609        if (! _detectMultipart(method)) {
2610            return;
2611        }
2612
2613        // only check specific parameters
2614        var possible_methods = [
2615            // Tweets
2616            "statuses/update_with_media",
2617            // Accounts
2618            "account/update_profile_background_image",
2619            "account/update_profile_image",
2620            "account/update_profile_banner"
2621        ];
2622        var possible_files = {
2623            // Tweets
2624            "statuses/update_with_media": "media[]",
2625            // Accounts
2626            "account/update_profile_background_image": "image",
2627            "account/update_profile_image": "image",
2628            "account/update_profile_banner": "banner"
2629        };
2630        // method might have files?
2631        if (possible_methods.indexOf(method) === -1) {
2632            return;
2633        }
2634
2635        // check for filenames
2636        possible_files = possible_files[method].split(" ");
2637
2638        var multipart_border = "--------------------" + _nonce();
2639        var multipart_request = "";
2640        for (var key in params) {
2641            multipart_request +=
2642                "--" + multipart_border + "\r\n"
2643                + "Content-Disposition: form-data; name=\"" + key + "\"";
2644            if (possible_files.indexOf(key) > -1) {
2645                multipart_request +=
2646                    "\r\nContent-Transfer-Encoding: base64";
2647            }
2648            multipart_request +=
2649                "\r\n\r\n" + params[key] + "\r\n";
2650        }
2651        multipart_request += "--" + multipart_border + "--";
2652        return multipart_request;
2653    };
2654
2655    /**
2656     * Detects if API call is internal
2657     *
2658     * @param string method The API method to call
2659     *
2660     * @return bool Whether the method is defined in internal API
2661     */
2662    var _detectInternal = function (method) {
2663        var internals = [
2664            "users/recommendations"
2665        ];
2666        return internals.join(" ").indexOf(method) > -1;
2667    };
2668
2669    /**
2670     * Detects if API call should use media endpoint
2671     *
2672     * @param string method The API method to call
2673     *
2674     * @return bool Whether the method is defined in media API
2675     */
2676    var _detectMedia = function (method) {
2677        var medias = [
2678            "media/upload"
2679        ];
2680        return medias.join(" ").indexOf(method) > -1;
2681    };
2682
2683    /**
2684     * Detects if API call should use old endpoint
2685     *
2686     * @param string method The API method to call
2687     *
2688     * @return bool Whether the method is defined in old API
2689     */
2690    var _detectOld = function (method) {
2691        var olds = [
2692            "account/push_destinations/device"
2693        ];
2694        return olds.join(" ").indexOf(method) > -1;
2695    };
2696
2697    /**
2698     * Builds the complete API endpoint url
2699     *
2700     * @param string method The API method to call
2701     *
2702     * @return string The URL to send the request to
2703     */
2704    var _getEndpoint = function (method) {
2705        var url;
2706        if (method.substring(0, 5) === "oauth") {
2707            url = _endpoint_oauth + method;
2708        } else if (_detectMedia(method)) {
2709            url = _endpoint_media + method + ".json";
2710        } else if (_detectOld(method)) {
2711            url = _endpoint_old + method + ".json";
2712        } else {
2713            url = _endpoint + method + ".json";
2714        }
2715        return url;
2716    };
2717
2718    /**
2719     * Gets the XML HTTP Request object, trying to load it in various ways
2720     *
2721     * @return object The XMLHttpRequest object instance
2722     */
2723    var _getXmlRequestObject = function () {
2724        var xml = null;
2725        // first, try the W3-standard object
2726        if (typeof window === "object"
2727            && window
2728            && typeof window.XMLHttpRequest !== "undefined"
2729        ) {
2730            xml = new window.XMLHttpRequest();
2731        // then, try Titanium framework object
2732        } else if (typeof Ti === "object"
2733            && Ti
2734            && typeof Ti.Network.createHTTPClient !== "undefined"
2735        ) {
2736            xml = Ti.Network.createHTTPClient();
2737        // are we in an old Internet Explorer?
2738        } else if (typeof ActiveXObject !== "undefined"
2739        ) {
2740            try {
2741                xml = new ActiveXObject("Microsoft.XMLHTTP");
2742            } catch (e) {
2743                console.error("ActiveXObject object not defined.");
2744            }
2745        // now, consider RequireJS and/or Node.js objects
2746        } else if (typeof require === "function"
2747            && require
2748        ) {
2749            // look for xmlhttprequest module
2750            try {
2751                var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
2752                xml = new XMLHttpRequest();
2753            } catch (e1) {
2754                // or maybe the user is using xhr2
2755                try {
2756                    var XMLHttpRequest = require("xhr2");
2757                    xml = new XMLHttpRequest();
2758                } catch (e2) {
2759                    console.error("xhr2 object not defined, cancelling.");
2760                }
2761            }
2762        }
2763        return xml;
2764    };
2765
2766    /**
2767     * Calls the API using cURL
2768     *
2769     * @param string          httpmethod    The HTTP method to use for making the request
2770     * @param string          method        The API method to call
2771     * @param array  optional params        The parameters to send along
2772     * @param bool   optional multipart     Whether to use multipart/form-data
2773     * @param bool   optional app_only_auth Whether to use app-only bearer authentication
2774     * @param bool   optional internal      Whether to use internal call
2775     * @param function        callback      The function to call with the API call result
2776     *
2777     * @return mixed The API reply, encoded in the set return_format
2778     */
2779
2780    var _callApi = function (httpmethod, method, params, multipart, app_only_auth, internal, callback) {
2781        if (typeof params === "undefined") {
2782            params = {};
2783        }
2784        if (typeof multipart === "undefined") {
2785            multipart = false;
2786        }
2787        if (typeof app_only_auth === "undefined") {
2788            app_only_auth = false;
2789        }
2790        if (typeof callback !== "function") {
2791            callback = function () {};
2792        }
2793        if (internal) {
2794            params.adc            = "phone";
2795            params.application_id = 333903271;
2796        }
2797
2798        var url           = _getEndpoint(method);
2799        var authorization = null;
2800
2801        var xml = _getXmlRequestObject();
2802        if (xml === null) {
2803            return;
2804        }
2805        var post_fields;
2806
2807        if (httpmethod === "GET") {
2808            var url_with_params = url;
2809            if (JSON.stringify(params) !== "{}") {
2810                url_with_params += "?" + _http_build_query(params);
2811            }
2812            if (! app_only_auth) {
2813                authorization = _sign(httpmethod, url, params);
2814            }
2815
2816            // append auth params to GET url for IE7-9, to send via JSONP
2817            if (_use_jsonp) {
2818                if (JSON.stringify(params) !== "{}") {
2819                    url_with_params += "&";
2820                } else {
2821                    url_with_params += "?";
2822                }
2823                var callback_name = _nonce();
2824                window[callback_name] = function (reply) {
2825                    reply.httpstatus = 200;
2826
2827                    var rate = null;
2828                    if (typeof xml.getResponseHeader !== "undefined"
2829                        && xml.getResponseHeader("x-rate-limit-limit") !== ""
2830                    ) {
2831                        rate = {
2832                            limit: xml.getResponseHeader("x-rate-limit-limit"),
2833                            remaining: xml.getResponseHeader("x-rate-limit-remaining"),
2834                            reset: xml.getResponseHeader("x-rate-limit-reset")
2835                        };
2836                    }
2837                    callback(reply, rate);
2838                };
2839                params.callback = callback_name;
2840                url_with_params = url + "?" + _sign(httpmethod, url, params, true);
2841                var tag = document.createElement("script");
2842                tag.type = "text/javascript";
2843                tag.src = url_with_params;
2844                var body = document.getElementsByTagName("body")[0];
2845                body.appendChild(tag);
2846                return;
2847
2848            } else if (_use_proxy) {
2849                url_with_params = url_with_params.replace(
2850                    _endpoint_base,
2851                    _endpoint_proxy
2852                ).replace(
2853                    _endpoint_base_media,
2854                    _endpoint_proxy
2855                );
2856            }
2857            xml.open(httpmethod, url_with_params, true);
2858        } else {
2859            if (_use_jsonp) {
2860                console.warn("Sending POST requests is not supported for IE7-9.");
2861                return;
2862            }
2863            if (multipart) {
2864                if (! app_only_auth) {
2865                    authorization = _sign(httpmethod, url, {});
2866                }
2867                params = _buildMultipart(method, params);
2868            } else {
2869                if (! app_only_auth) {
2870                    authorization = _sign(httpmethod, url, params);
2871                }
2872                params = _http_build_query(params);
2873            }
2874            post_fields = params;
2875            if (_use_proxy || multipart) { // force proxy for multipart base64
2876                url = url.replace(
2877                    _endpoint_base,
2878                    _endpoint_proxy
2879                ).replace(
2880                    _endpoint_base_media,
2881                    _endpoint_proxy
2882                );
2883            }
2884            xml.open(httpmethod, url, true);
2885            if (multipart) {
2886                xml.setRequestHeader("Content-Type", "multipart/form-data; boundary="
2887                    + post_fields.split("\r\n")[0].substring(2));
2888            } else {
2889                xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
2890            }
2891        }
2892        if (app_only_auth) {
2893            if (_oauth_consumer_key === null
2894                && _oauth_bearer_token === null
2895            ) {
2896                console.warn("To make an app-only auth API request, consumer key or bearer token must be set.");
2897            }
2898            // automatically fetch bearer token, if necessary
2899            if (_oauth_bearer_token === null) {
2900                return oauth2_token(function () {
2901                    _callApi(httpmethod, method, params, multipart, app_only_auth, false, callback);
2902                });
2903            }
2904            authorization = "Bearer " + _oauth_bearer_token;
2905        }
2906        if (authorization !== null) {
2907            xml.setRequestHeader((_use_proxy ? "X-" : "") + "Authorization", authorization);
2908        }
2909        xml.onreadystatechange = function () {
2910            if (xml.readyState >= 4) {
2911                var httpstatus = 12027;
2912                try {
2913                    httpstatus = xml.status;
2914                } catch (e) {}
2915                var response = "";
2916                try {
2917                    response = xml.responseText;
2918                } catch (e) {}
2919                var reply = _parseApiReply(response);
2920                reply.httpstatus = httpstatus;
2921                var rate = null;
2922                if (typeof xml.getResponseHeader !== "undefined"
2923                    && xml.getResponseHeader("x-rate-limit-limit") !== ""
2924                ) {
2925                    rate = {
2926                        limit: xml.getResponseHeader("x-rate-limit-limit"),
2927                        remaining: xml.getResponseHeader("x-rate-limit-remaining"),
2928                        reset: xml.getResponseHeader("x-rate-limit-reset")
2929                    };
2930                }
2931                callback(reply, rate);
2932            }
2933        };
2934        xml.send(httpmethod === "GET" ? null : post_fields);
2935        return true;
2936    };
2937
2938    /**
2939     * Parses the API reply to encode it in the set return_format
2940     *
2941     * @param string reply  The actual reply, JSON-encoded or URL-encoded
2942     *
2943     * @return array|object The parsed reply
2944     */
2945    var _parseApiReply = function (reply) {
2946        if (typeof reply !== "string" || reply === "") {
2947            return {};
2948        }
2949        if (reply === "[]") {
2950            return [];
2951        }
2952        var parsed;
2953        try {
2954            parsed = JSON.parse(reply);
2955        } catch (e) {
2956            parsed = {};
2957            if (reply.indexOf("<" + "?xml version=\"1.0\" encoding=\"UTF-8\"?" + ">") === 0) {
2958                // we received XML...
2959                // since this only happens for errors,
2960                // don't perform a full decoding
2961                parsed.request = reply.match(/<request>(.*)<\/request>/)[1];
2962                parsed.error   = reply.match(/<error>(.*)<\/error>/)[1];
2963            } else {
2964                // assume query format
2965                var elements = reply.split("&");
2966                for (var i = 0; i < elements.length; i++) {
2967                    var element = elements[i].split("=", 2);
2968                    if (element.length > 1) {
2969                        parsed[element[0]] = decodeURIComponent(element[1]);
2970                    } else {
2971                        parsed[element[0]] = null;
2972                    }
2973                }
2974            }
2975        }
2976        return parsed;
2977    };
2978
2979    return {
2980        setConsumerKey: setConsumerKey,
2981        getVersion: getVersion,
2982        setToken: setToken,
2983        setBearerToken: setBearerToken,
2984        setUseProxy: setUseProxy,
2985        setProxy: setProxy,
2986        __call: __call,
2987        oauth_authenticate: oauth_authenticate,
2988        oauth_authorize: oauth_authorize,
2989        oauth2_token: oauth2_token
2990    };
2991};
2992
2993if (typeof module === "object"
2994    && module
2995    && typeof module.exports === "object"
2996) {
2997    // Expose codebird as module.exports in loaders that implement the Node
2998    // module pattern (including browserify). Do not create the global, since
2999    // the user will be storing it themselves locally, and globals are frowned
3000    // upon in the Node module world.
3001    module.exports = Codebird;
3002} else {
3003    // Otherwise expose codebird to the global object as usual
3004    if (typeof window === "object"
3005        && window) {
3006        window.Codebird = Codebird;
3007    }
3008
3009    // Register as a named AMD module, since codebird can be concatenated with other
3010    // files that may use define, but not via a proper concatenation script that
3011    // understands anonymous AMD modules. A named AMD is safest and most robust
3012    // way to register. Lowercase codebird is used because AMD module names are
3013    // derived from file names, and codebird is normally delivered in a lowercase
3014    // file name. Do this after creating the global so that if an AMD module wants
3015    // to call noConflict to hide this version of codebird, it will work.
3016    if (typeof define === "function" && define.amd) {
3017        define("codebird", [], function () { return Codebird; });
3018    }
3019}
3020
3021})();
3022
3023/* Laura Doktorova https://github.com/olado/doT */
3024(function(){function p(b,a,d){return("string"===typeof a?a:a.toString()).replace(b.define||h,function(a,c,e,g){0===c.indexOf("def.")&&(c=c.substring(4));c in d||(":"===e?(b.defineParams&&g.replace(b.defineParams,function(a,b,l){d[c]={arg:b,text:l}}),c in d||(d[c]=g)):(new Function("def","def['"+c+"']="+g))(d));return""}).replace(b.use||h,function(a,c){b.useParams&&(c=c.replace(b.useParams,function(a,b,c,l){if(d[c]&&d[c].arg&&l)return a=(c+":"+l).replace(/'|\\/g,"_"),d.__exp=d.__exp||{},d.__exp[a]=
3025d[c].text.replace(new RegExp("(^|[^\\w$])"+d[c].arg+"([^\\w$])","g"),"$1"+l+"$2"),b+"def.__exp['"+a+"']"}));var e=(new Function("def","return "+c))(d);return e?p(b,e,d):e})}function k(b){return b.replace(/\\('|\\)/g,"$1").replace(/[\r\t\n]/g," ")}var f={version:"1.0.3",templateSettings:{evaluate:/\{\{([\s\S]+?(\}?)+)\}\}/g,interpolate:/\{\{=([\s\S]+?)\}\}/g,encode:/\{\{!([\s\S]+?)\}\}/g,use:/\{\{#([\s\S]+?)\}\}/g,useParams:/(^|[^\w$])def(?:\.|\[[\'\"])([\w$\.]+)(?:[\'\"]\])?\s*\:\s*([\w$\.]+|\"[^\"]+\"|\'[^\']+\'|\{[^\}]+\})/g,
3026define:/\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g,defineParams:/^\s*([\w$]+):([\s\S]+)/,conditional:/\{\{\?(\?)?\s*([\s\S]*?)\s*\}\}/g,iterate:/\{\{~\s*(?:\}\}|([\s\S]+?)\s*\:\s*([\w$]+)\s*(?:\:\s*([\w$]+))?\s*\}\})/g,varname:"it",strip:!0,append:!0,selfcontained:!1,doNotSkipEncoded:!1},template:void 0,compile:void 0},m;f.encodeHTMLSource=function(b){var a={"&":"&#38;","<":"&#60;",">":"&#62;",'"':"&#34;","'":"&#39;","/":"&#47;"},d=b?/[&<>"'\/]/g:/&(?!#?\w+;)|<|>|"|'|\//g;return function(b){return b?
3027b.toString().replace(d,function(b){return a[b]||b}):""}};m=function(){return this||(0,eval)("this")}();"undefined"!==typeof module&&module.exports?module.exports=f:"function"===typeof define&&define.amd?define(function(){return f}):m.doT=f;var r={start:"'+(",end:")+'",startencode:"'+encodeHTML("},s={start:"';out+=(",end:");out+='",startencode:"';out+=encodeHTML("},h=/$^/;f.template=function(b,a,d){a=a||f.templateSettings;var n=a.append?r:s,c,e=0,g;b=a.use||a.define?p(a,b,d||{}):b;b=("var out='"+(a.strip?
3028b.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,""):b).replace(/'|\\/g,"\\$&").replace(a.interpolate||h,function(b,a){return n.start+k(a)+n.end}).replace(a.encode||h,function(b,a){c=!0;return n.startencode+k(a)+n.end}).replace(a.conditional||h,function(b,a,c){return a?c?"';}else if("+k(c)+"){out+='":"';}else{out+='":c?"';if("+k(c)+"){out+='":"';}out+='"}).replace(a.iterate||h,function(b,a,c,d){if(!a)return"';} } out+='";e+=1;g=d||"i"+e;a=k(a);return"';var arr"+
3029e+"="+a+";if(arr"+e+"){var "+c+","+g+"=-1,l"+e+"=arr"+e+".length-1;while("+g+"<l"+e+"){"+c+"=arr"+e+"["+g+"+=1];out+='"}).replace(a.evaluate||h,function(a,b){return"';"+k(b)+"out+='"})+"';return out;").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/(\s|;|\}|^|\{)out\+='';/g,"$1").replace(/\+''/g,"");c&&(a.selfcontained||!m||m._encodeHTML||(m._encodeHTML=f.encodeHTMLSource(a.doNotSkipEncoded)),b="var encodeHTML = typeof _encodeHTML !== 'undefined' ? _encodeHTML : ("+f.encodeHTMLSource.toString()+
3030"("+(a.doNotSkipEncoded||"")+"));"+b);try{return new Function(a.varname,b)}catch(q){throw"undefined"!==typeof console&&console.log("Could not create a template function: "+b),q;}};f.compile=function(b,a){return f.template(b,null,a)}})();
3031
3032//! moment.js
3033//! version : 2.8.4
3034//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
3035//! license : MIT
3036//! momentjs.com
3037(function(a){function b(a,b,c){switch(arguments.length){case 2:return null!=a?a:b;case 3:return null!=a?a:null!=b?b:c;default:throw new Error("Implement me")}}function c(a,b){return zb.call(a,b)}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invali
3037dFormat:!1,userInvalidated:!1,iso:!1}}function e(a){tb.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+a)}function f(a,b){var c=!0;return m(function(){return c&&(e(a),c=!1),b.apply(this,arguments)},b)}function g(a,b){qc[a]||(e(b),qc[a]=!0)}function h(a,b){return function(c){return p(a.call(this,c),b)}}function i(a,b){return function(c){return this.localeData().ordinal(a.call(this,c),b)}}function j(){}function k(a,b){b!==!1&&F(a),n(this,a),this._d=new Date(+a._d)}function l(a){var b=y(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=tb.localeData(),this._bubble()}function m(a,b){for(var d in b)c(b,d)&&(a[d]=b[d]);return c(b,"toString")&&(a.toString=b.toString),c(b,"valueOf")&&(a.valueOf=b.valueOf),a}function n(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=b._pf),"undefined"!=typeof b._locale&&(a._locale=b._locale),Ib.length>0)for(c in Ib)d=Ib[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function o(a){return 0>a?Math.ceil(a):Math.floor(a)}function p(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.length<b;)d="0"+d;return(e?c?"+":"":"-")+d}function q(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function r(a,b){var c;return b=K(b,a),a.isBefore(b)?c=q(a,b):(c=q(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c}function s(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(g(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=tb.duration(c,d),t(this,e,a),this}}function t(a,b,c,d){var e=b._milliseconds,f=b._days,g=b._months;d=null==d?!0:d,e&&a._d.setTime(+a._d+e*c),f&&nb(a,"Date",mb(a,"Date")+f*c),g&&lb(a,mb(a,"Month")+g*c),d&&tb.updateOffset(a,f||g)}function u(a){return"[object Array]"===Object.prototype.toString.call(a)}function v(a){return"[object Date]"===Object.prototype.toString.call(a)||a instanceof Date}function w(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&A(a[d])!==A(b[d]))&&g++;return g+f}function x(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=jc[a]||kc[b]||b}return a}function y(a){var b,d,e={};for(d in a)c(a,d)&&(b=x(d),b&&(e[b]=a[d]));return e}function z(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}tb[b]=function(e,f){var g,h,i=tb._locale[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=tb().utc().set(d,a);return i.call(tb._locale,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function A(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function B(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function C(a,b,c){return hb(tb([a,11,31+b-c]),b,c).week}function D(a){return E(a)?366:365}function E(a){return a%4===0&&a%100!==0||a%400===0}function F(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[Bb]<0||a._a[Bb]>11?Bb:a._a[Cb]<1||a._a[Cb]>B(a._a[Ab],a._a[Bb])?Cb:a._a[Db]<0||a._a[Db]>24||24===a._a[Db]&&(0!==a._a[Eb]||0!==a._a[Fb]||0!==a._a[Gb])?Db:a._a[Eb]<0||a._a[Eb]>59?Eb:a._a[Fb]<0||a._a[Fb]>59?Fb:a._a[Gb]<0||a._a[Gb]>999?Gb:-1,a._pf._overflowDayOfYear&&(Ab>b||b>Cb)&&(b=Cb),a._pf.overflow=b)}function G(b){return null==b._isValid&&(b._isValid=!isNaN(b._d.getTime())&&b._pf.overflow<0&&!b._pf.empty&&!b._pf.invalidMonth&&!b._pf.nullInput&&!b._pf.invali
3037dFormat&&!b._pf.userInvalidated,b._strict&&(b._isValid=b._isValid&&0===b._pf.charsLeftOver&&0===b._pf.unusedTokens.length&&b._pf.bigHour===a)),b._isValid}function H(a){return a?a.toLowerCase().replace("_","-"):a}function I(a){for(var b,c,d,e,f=0;f<a.length;){for(e=H(a[f]).split("-"),b=e.length,c=H(a[f+1]),c=c?c.split("-"):null;b>0;){if(d=J(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&w(e,c,!0)>=b-1)break;b--}f++}return null}function J(a){var b=null;if(!Hb[a]&&Jb)try{b=tb.locale(),require("./locale/"+a),tb.locale(b)}catch(c){}return Hb[a]}function K(a,b){var c,d;return b._isUTC?(c=b.clone(),d=(tb.isMoment(a)||v(a)?+a:+tb(a))-+c,c._d.setTime(+c._d+d),tb.updateOffset(c,!1),c):tb(a).local()}function L(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function M(a){var b,c,d=a.match(Nb);for(b=0,c=d.length;c>b;b++)d[b]=pc[d[b]]?pc[d[b]]:L(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function N(a,b){return a.isValid()?(b=O(b,a.localeData()),lc[b]||(lc[b]=M(b)),lc[b](a)):a.localeData().invalidDate()}function O(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Ob.lastIndex=0;d>=0&&Ob.test(a);)a=a.replace(Ob,c),Ob.lastIndex=0,d-=1;return a}function P(a,b){var c,d=b._strict;switch(a){case"Q":return Zb;case"DDDD":return _b;case"YYYY":case"GGGG":case"gggg":return d?ac:Rb;case"Y":case"G":case"g":return cc;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?bc:Sb;case"S":if(d)return Zb;case"SS":if(d)return $b;case"SSS":if(d)return _b;case"DDD":return Qb;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Ub;case"a":case"A":return b._locale._meridiemParse;case"x":return Xb;case"X":return Yb;case"Z":case"ZZ":return Vb;case"T":return Wb;case"SSSS":return Tb;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?$b:Pb;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Pb;case"Do":return d?b._locale._ordinalParse:b._locale._ordinalParseLenient;default:return c=new RegExp(Y(X(a.replace("\\","")),"i"))}}function Q(a){a=a||"";var b=a.match(Vb)||[],c=b[b.length-1]||[],d=(c+"").match(hc)||["-",0,0],e=+(60*d[1])+A(d[2]);return"+"===d[0]?-e:e}function R(a,b,c){var d,e=c._a;switch(a){case"Q":null!=b&&(e[Bb]=3*(A(b)-1));break;case"M":case"MM":null!=b&&(e[Bb]=A(b)-1);break;case"MMM":case"MMMM":d=c._locale.monthsParse(b,a,c._strict),null!=d?e[Bb]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[Cb]=A(b));break;case"Do":null!=b&&(e[Cb]=A(parseInt(b.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=A(b));break;case"YY":e[Ab]=tb.parseTwoDigitYear(b);break;case"YYYY":case"YYYYY":case"YYYYYY":e[Ab]=A(b);break;case"a":case"A":c._isPm=c._locale.isPM(b);break;case"h":case"hh":c._pf.bigHour=!0;case"H":case"HH":e[Db]=A(b);break;case"m":case"mm":e[Eb]=A(b);break;case"s":case"ss":e[Fb]=A(b);break;case"S":case"SS":case"SSS":case"SSSS":e[Gb]=A(1e3*("0."+b));break;case"x":c._d=new Date(A(b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=Q(b);break;case"dd":case"ddd":case"dddd":d=c._locale.weekdaysParse(b),null!=d?(c._w=c._w||{},c._w.d=d):c._pf.invalidWeekday=b;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":a=a.substr(0,1);case"gggg":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=A(b));break;case"gg":case"GG":c._w=c._w||{},c._w[a]=tb.parseTwoDigitYear(b)}}function S(a){var c,d,e,f,g,h,i;c=a._w,null!=c.GG||null!=c.W||null!=c.E?(g=1,h=4,d=b(c.GG,a._a[Ab],hb(tb(),1,4).year),e=b(c.W,1),f=b(c.E,1)):(g=a._locale._week.dow,h=a._locale._week.doy,d=b(c.gg,a._a[Ab],hb(tb(),g,h).year),e=b(c.w,1),null!=c.d?(f=c.d,g>f&&++e):f=null!=c.e?c.e+g:g),i=ib(d,e,f,h,g),a._a[Ab]=i.year,a._dayOfYear=i.dayOfYear}function T(a){var c,d,e,f,g=[];if(!a._d){for(e=V(a),a._w&&null==a._a[Cb]&&null==a._a[Bb]&&S(a),a._dayOfYear&&(f=b(a._a[Ab],e[Ab]),a._dayOfYear>D(f)&&(a._pf._overflowDayOfYear=!0),d=db(f,0,a._dayOfYear),a._a[Bb]=d.getUTCMonth(),a._a[Cb]=d.getUTCDate()),c=0;3>c&&null==a._a[c];++c)a._a[c]=g[c]=e[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];24===a._a[Db]&&0===a._a[Eb]&&0===a._a[Fb]&&0===a._a[Gb]&&(a._nextDay=!0,a._a[Db]=0),a._d=(a._useUTC?db:cb).apply(null,g),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()+a._tzm),a._nextDay&&(a._a[Db]=24)}}function U(a){var b;a._d||(b=y(a._i),a._a=[b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],T(a))}function V(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function W(b){if(b._f===tb.ISO_8601)return void $(b);b._a=[],b._pf.empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,j=0;for(e=O(b._f,b._locale).match(Nb)||[],c=0;c<e.length;c++)f=e[c],d=(h.match(P(f,b))||[])[0],d&&(g=h.substr(0,h.indexOf(d)),g.length>0&&b._pf.unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),pc[f]?(d?b._pf.empty=!1:b._pf.unusedTokens.push(f),R(f,d,b)):b._strict&&!d&&b._pf.unusedTokens.push(f);b._pf.charsLeftOver=i-j,h.length>0&&b._pf.unusedInput.push(h),b._pf.bigHour===!0&&b._a[Db]<=12&&(b._pf.bigHour=a),b._isPm&&b._a[Db]<12&&(b._a[Db]+=12),b._isPm===!1&&12===b._a[Db]&&(b._a[Db]=0),T(b),F(b)}function X(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function Y(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Z(a){var b,c,e,f,g;
3037if(0===a._f.length)return a._pf.invalidFormat=!0,void(a._d=new Date(0/0));for(f=0;f<a._f.length;f++)g=0,b=n({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._pf=d(),b._f=a._f[f],W(b),G(b)&&(g+=b._pf.charsLeftOver,g+=10*b._pf.unusedTokens.length,b._pf.score=g,(null==e||e>g)&&(e=g,c=b));m(a,c||b)}function $(a){var b,c,d=a._i,e=dc.exec(d);if(e){for(a._pf.iso=!0,b=0,c=fc.length;c>b;b++)if(fc[b][1].exec(d)){a._f=fc[b][0]+(e[6]||" ");break}for(b=0,c=gc.length;c>b;b++)if(gc[b][1].exec(d)){a._f+=gc[b][0];break}d.match(Vb)&&(a._f+="Z"),W(a)}else a._isValid=!1}function _(a){$(a),a._isValid===!1&&(delete a._isValid,tb.createFromInputFallback(a))}function ab(a,b){var c,d=[];for(c=0;c<a.length;++c)d.push(b(a[c],c));return d}function bb(b){var c,d=b._i;d===a?b._d=new Date:v(d)?b._d=new Date(+d):null!==(c=Kb.exec(d))?b._d=new Date(+c[1]):"string"==typeof d?_(b):u(d)?(b._a=ab(d.slice(0),function(a){return parseInt(a,10)}),T(b)):"object"==typeof d?U(b):"number"==typeof d?b._d=new Date(d):tb.createFromInputFallback(b)}function cb(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function db(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function eb(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function fb(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function gb(a,b,c){var d=tb.duration(a).abs(),e=yb(d.as("s")),f=yb(d.as("m")),g=yb(d.as("h")),h=yb(d.as("d")),i=yb(d.as("M")),j=yb(d.as("y")),k=e<mc.s&&["s",e]||1===f&&["m"]||f<mc.m&&["mm",f]||1===g&&["h"]||g<mc.h&&["hh",g]||1===h&&["d"]||h<mc.d&&["dd",h]||1===i&&["M"]||i<mc.M&&["MM",i]||1===j&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,fb.apply({},k)}function hb(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=tb(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function ib(a,b,c,d,e){var f,g,h=db(a,0,1).getUTCDay();return h=0===h?7:h,c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:D(a-1)+g}}function jb(b){var c,d=b._i,e=b._f;return b._locale=b._locale||tb.localeData(b._l),null===d||e===a&&""===d?tb.invalid({nullInput:!0}):("string"==typeof d&&(b._i=d=b._locale.preparse(d)),tb.isMoment(d)?new k(d,!0):(e?u(e)?Z(b):W(b):bb(b),c=new k(b),c._nextDay&&(c.add(1,"d"),c._nextDay=a),c))}function kb(a,b){var c,d;if(1===b.length&&u(b[0])&&(b=b[0]),!b.length)return tb();for(c=b[0],d=1;d<b.length;++d)b[d][a](c)&&(c=b[d]);return c}function lb(a,b){var c;return"string"==typeof b&&(b=a.localeData().monthsParse(b),"number"!=typeof b)?a:(c=Math.min(a.date(),B(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a)}function mb(a,b){return a._d["get"+(a._isUTC?"UTC":"")+b]()}function nb(a,b,c){return"Month"===b?lb(a,c):a._d["set"+(a._isUTC?"UTC":"")+b](c)}function ob(a,b){return function(c){return null!=c?(nb(this,a,c),tb.updateOffset(this,b),this):mb(this,a)}}function pb(a){return 400*a/146097}function qb(a){return 146097*a/400}function rb(a){tb.duration.fn[a]=function(){return this._data[a]}}function sb(a){"undefined"==typeof ender&&(ub=xb.moment,xb.moment=a?f("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.",tb):tb)}for(var tb,ub,vb,wb="2.8.4",xb="undefined"!=typeof global?global:this,yb=Math.round,zb=Object.prototype.hasOwnProperty,Ab=0,Bb=1,Cb=2,Db=3,Eb=4,Fb=5,Gb=6,Hb={},Ib=[],Jb="undefined"!=typeof module&&module&&module.exports,Kb=/^\/?Date\((\-?\d+)/i,Lb=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Mb=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,Nb=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g,Ob=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Pb=/\d\d?/,Qb=/\d{1,3}/,Rb=/\d{1,4}/,Sb=/[+\-]?\d{1,6}/,Tb=/\d+/,Ub=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Vb=/Z|[\+\-]\d\d:?\d\d/gi,Wb=/T/i,Xb=/[\+\-]?\d+/,Yb=/[\+\-]?\d+(\.\d{1,3})?/,Zb=/\d/,$b=/\d\d/,_b=/\d{3}/,ac=/\d{4}/,bc=/[+-]?\d{6}/,cc=/[+-]?\d+/,dc=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ec="YYYY-MM-DDTHH:mm:ssZ",fc=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],gc=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],hc=/([\+\-]|\d\d)/gi,ic=("Date|Hours|Minutes|Seconds|Milliseconds".split("|"),{Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6}),jc={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",Q:"quarter",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},kc={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},lc={},mc={s:45,m:45,h:22,d:26,M:11},nc="DDD w W M D d".split(" "),oc="M D H h m s w W".split(" "),pc={M:function(){return this.month()+1},MMM:function(a){return this.localeData().monthsShort(this,a)},MMMM:function(a){return this.localeData().months(this,a)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(a){return this.localeData().weekdaysMin(this,a)},ddd:function(a){return this.localeData().weekdaysShort(this,a)},dddd:function(a){return this.localeData().weekdays(this,a)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return p(this.year()%100,2)},YYYY:function(){return p(this.year(),4)},YYYYY:function(){return p(this.year(),5)},YYYYYY:function(){var a=this.year(),b=a>=0?"+":"-";return b+p(Math.abs(a),6)},gg:function(){return p(this.weekYear()%100,2)},gggg:function(){return p(this.weekYear(),4)},ggggg:function(){return p(this.weekYear(),5)},GG:function(){return p(this.isoWeekYear()%100,2)},GGGG:function(){return p(this.isoWeekYear(),4)},GGGGG:function(){return p(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return A(this.milliseconds()/100)},SS:function(){return p(A(this.milliseconds()/10),2)},SSS:function(){return p(this.milliseconds(),3)},SSSS:function(){return p(this.milliseconds(),3)},Z:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+p(A(a/60),2)+":"+p(A(a)%60,2)},ZZ:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+p(A(a/60),2)+p(A(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},qc={},rc=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];nc.length;)vb=nc.pop(),pc[vb+"o"]=i(pc[vb],vb);for(;oc.length;)vb=oc.pop(),pc[vb+vb]=h(pc[vb],2);pc.DDDD=h(pc.DDD,3),m(j.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a,b,c){var d,e,f;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;12>d;d++){if(e=tb.utc([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=tb([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b,c){var d=this._calendar[a];return"function"==typeof d?d.apply(b,[c]):d},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",_ordinalParse:/\d{1,2}/,preparse:function(a){return a},postformat:function(a){return a},week:function(a){return hb(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),tb=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=b,g._f=c,g._l=e,g._strict=f,g._isUTC=!1,g._pf=d(),jb(g)},tb.suppressDeprecationWarnings=!1,tb.createFromInputFallback=f("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),tb.min=function(){var a=[].slice.call(arguments,0);return kb("isBefore",a)},tb.max=function(){var a=[].slice.call(arguments,0);return kb("isAfter",a)},tb.utc=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=b,g._f=c,g._strict=f,g._pf=d(),jb(g).utc()},tb.unix=function(a){return tb(1e3*a)},tb.duration=function(a,b){var d,e,f,g,h=a,i=null;return tb.isDuration(a)?h={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(h={},b?h[b]=a:h.milliseconds=a):(i=Lb.exec(a))?(d="-"===i[1]?-1:1,h={y:0,d:A(i[Cb])*
3037d,h:A(i[Db])*d,m:A(i[Eb])*d,s:A(i[Fb])*d,ms:A(i[Gb])*d}):(i=Mb.exec(a))?(d="-"===i[1]?-1:1,f=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*d},h={y:f(i[2]),M:f(i[3]),d:f(i[4]),h:f(i[5]),m:f(i[6]),s:f(i[7]),w:f(i[8])}):"object"==typeof h&&("from"in h||"to"in h)&&(g=r(tb(h.from),tb(h.to)),h={},h.ms=g.milliseconds,h.M=g.months),e=new l(h),tb.isDuration(a)&&c(a,"_locale")&&(e._locale=a._locale),e},tb.version=wb,tb.defaultFormat=ec,tb.ISO_8601=function(){},tb.momentProperties=Ib,tb.updateOffset=function(){},tb.relativeTimeThreshold=function(b,c){return mc[b]===a?!1:c===a?mc[b]:(mc[b]=c,!0)},tb.lang=f("moment.lang is deprecated. Use moment.locale instead.",function(a,b){return tb.locale(a,b)}),tb.locale=function(a,b){var c;return a&&(c="undefined"!=typeof b?tb.defineLocale(a,b):tb.localeData(a),c&&(tb.duration._locale=tb._locale=c)),tb._locale._abbr},tb.defineLocale=function(a,b){return null!==b?(b.abbr=a,Hb[a]||(Hb[a]=new j),Hb[a].set(b),tb.locale(a),Hb[a]):(delete Hb[a],null)},tb.langData=f("moment.langData is deprecated. Use moment.localeData instead.",function(a){return tb.localeData(a)}),tb.localeData=function(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return tb._locale;if(!u(a)){if(b=J(a))return b;a=[a]}return I(a)},tb.isMoment=function(a){return a instanceof k||null!=a&&c(a,"_isAMomentObject")},tb.isDuration=function(a){return a instanceof l};for(vb=rc.length-1;vb>=0;--vb)z(rc[vb]);tb.normalizeUnits=function(a){return x(a)},tb.invalid=function(a){var b=tb.utc(0/0);return null!=a?m(b._pf,a):b._pf.userInvalidated=!0,b},tb.parseZone=function(){return tb.apply(null,arguments).parseZone()},tb.parseTwoDigitYear=function(a){return A(a)+(A(a)>68?1900:2e3)},m(tb.fn=k.prototype,{clone:function(){return tb(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=tb(this).utc();return 0<a.year()&&a.year()<=9999?"function"==typeof Date.prototype.toISOString?this.toDate().toISOString():N(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):N(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var a=this;return[a.year(),a.month(),a.date(),a.hours(),a.minutes(),a.seconds(),a.milliseconds()]},isValid:function(){return G(this)},isDSTShifted:function(){return this._a?this.isValid()&&w(this._a,(this._isUTC?tb.utc(this._a):tb(this._a)).toArray())>0:!1},parsingFlags:function(){return m({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(a){return this.zone(0,a)},local:function(a){return this._isUTC&&(this.zone(0,a),this._isUTC=!1,a&&this.add(this._dateTzOffset(),"m")),this},format:function(a){var b=N(this,a||tb.defaultFormat);return this.localeData().postformat(b)},add:s(1,"add"),subtract:s(-1,"subtract"),diff:function(a,b,c){var d,e,f,g=K(a,this),h=6e4*(this.zone()-g.zone());return b=x(b),"year"===b||"month"===b?(d=432e5*(this.daysInMonth()+g.daysInMonth()),e=12*(this.year()-g.year())+(this.month()-g.month()),f=this-tb(this).startOf("month")-(g-tb(g).startOf("month")),f-=6e4*(this.zone()-tb(this).startOf("month").zone()-(g.zone()-tb(g).startOf("month").zone())),e+=f/d,"year"===b&&(e/=12)):(d=this-g,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-h)/864e5:"week"===b?(d-h)/6048e5:d),c?e:o(e)},from:function(a,b){return tb.duration({to:this,from:a}).locale(this.locale()).humanize(!b)},fromNow:function(a){return this.from(tb(),a)},calendar:function(a){var b=a||tb(),c=K(b,this).startOf("day"),d=this.diff(c,"days",!0),e=-6>d?"sameElse":-1>d?"lastWeek":0>d?"lastDay":1>d?"sameDay":2>d?"nextDay":7>d?"nextWeek":"sameElse";return this.format(this.localeData().calendar(e,this,tb(b)))},isLeapYear:function(){return E(this.year())},isDST:function(){return this.zone()<this.clone().month(0).zone()||this.zone()<this.clone().month(5).zone()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=eb(a,this.localeData()),this.add(a-b,"d")):b},month:ob("Month",!0),startOf:function(a){switch(a=x(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a?this.weekday(0):"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(b){return b=x(b),b===a||"millisecond"===b?this:this.startOf(b).add(1,"isoWeek"===b?"week":b).subtract(1,"ms")},isAfter:function(a,b){var c;return b=x("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=tb.isMoment(a)?a:tb(a),+this>+a):(c=tb.isMoment(a)?+a:+tb(a),c<+this.clone().startOf(b))},isBefore:function(a,b){var c;return b=x("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=tb.isMoment(a)?a:tb(a),+a>+this):(c=tb.isMoment(a)?+a:+tb(a),+this.clone().endOf(b)<c)},isSame:function(a,b){var c;return b=x(b||"millisecond"),"millisecond"===b?(a=tb.isMoment(a)?a:tb(a),+this===+a):(c=+tb(a),+this.clone().startOf(b)<=c&&c<=+this.clone().endOf(b))},min:f("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(a){return a=tb.apply(null,arguments),this>a?this:a}),max:f("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(a){return a=tb.apply(null,arguments),a>this?this:a}),zone:function(a,b){var c,d=this._offset||0;return null==a?this._isUTC?d:this._dateTzOffset():("string"==typeof a&&(a=Q(a)),Math.abs(a)<16&&(a=60*a),!this._isUTC&&b&&(c=this._dateTzOffset()),this._offset=a,this._isUTC=!0,null!=c&&this.subtract(c,"m"),d!==a&&(!b||this._changeInProgress?t(this,tb.duration(d-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,tb.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(a){return a=a?tb(a).zone():0,(this.zone()-a)%60===0},daysInMonth:function(){return B(this.year(),this.month())},dayOfYear:function(a){var b=yb((tb(this).startOf("day")-tb(this).startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}
3037,quarter:function(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)},weekYear:function(a){var b=hb(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")},isoWeekYear:function(a){var b=hb(this,1,4).year;return null==a?b:this.add(a-b,"y")},week:function(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")},isoWeek:function(a){var b=hb(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")},weekday:function(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},isoWeeksInYear:function(){return C(this.year(),1,4)},weeksInYear:function(){var a=this.localeData()._week;return C(this.year(),a.dow,a.doy)},get:function(a){return a=x(a),this[a]()},set:function(a,b){return a=x(a),"function"==typeof this[a]&&this[a](b),this},locale:function(b){var c;return b===a?this._locale._abbr:(c=tb.localeData(b),null!=c&&(this._locale=c),this)},lang:f("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(b){return b===a?this.localeData():this.locale(b)}),localeData:function(){return this._locale},_dateTzOffset:function(){return 15*Math.round(this._d.getTimezoneOffset()/15)}}),tb.fn.millisecond=tb.fn.milliseconds=ob("Milliseconds",!1),tb.fn.second=tb.fn.seconds=ob("Seconds",!1),tb.fn.minute=tb.fn.minutes=ob("Minutes",!1),tb.fn.hour=tb.fn.hours=ob("Hours",!0),tb.fn.date=ob("Date",!0),tb.fn.dates=f("dates accessor is deprecated. Use date instead.",ob("Date",!0)),tb.fn.year=ob("FullYear",!0),tb.fn.years=f("years accessor is deprecated. Use year instead.",ob("FullYear",!0)),tb.fn.days=tb.fn.day,tb.fn.months=tb.fn.month,tb.fn.weeks=tb.fn.week,tb.fn.isoWeeks=tb.fn.isoWeek,tb.fn.quarters=tb.fn.quarter,tb.fn.toJSON=tb.fn.toISOString,m(tb.duration.fn=l.prototype,{_bubble:function(){var a,b,c,d=this._milliseconds,e=this._days,f=this._months,g=this._data,h=0;g.milliseconds=d%1e3,a=o(d/1e3),g.seconds=a%60,b=o(a/60),g.minutes=b%60,c=o(b/60),g.hours=c%24,e+=o(c/24),h=o(pb(e)),e-=o(qb(h)),f+=o(e/30),e%=30,h+=o(f/12),f%=12,g.days=e,g.months=f,g.years=h},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return o(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*A(this._months/12)},humanize:function(a){var b=gb(this,!a,this.localeData());return a&&(b=this.localeData().pastFuture(+this,b)),this.localeData().postformat(b)},add:function(a,b){var c=tb.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=tb.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=x(a),this[a.toLowerCase()+"s"]()},as:function(a){var b,c;if(a=x(a),"month"===a||"year"===a)return b=this._days+this._milliseconds/864e5,c=this._months+12*pb(b),"month"===a?c:c/12;switch(b=this._days+Math.round(qb(this._months/12)),a){case"week":return b/7+this._milliseconds/6048e5;case"day":return b+this._milliseconds/864e5;case"hour":return 24*b+this._milliseconds/36e5;case"minute":return 24*b*60+this._milliseconds/6e4;case"second":return 24*b*60*60+this._milliseconds/1e3;
3038case"millisecond":return Math.floor(24*b*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+a)}},lang:tb.fn.lang,locale:tb.fn.locale,toIsoString:f("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"},localeData:function(){return this._locale}}),tb.duration.fn.toString=tb.duration.fn.toISOString;for(vb in ic)c(ic,vb)&&rb(vb.toLowerCase());tb.duration.fn.asMilliseconds=function(){return this.as("ms")},tb.duration.fn.asSeconds=function(){return this.as("s")},tb.duration.fn.asMinutes=function(){return this.as("m")},tb.duration.fn.asHours=function(){return this.as("h")},tb.duration.fn.asDays=function(){return this.as("d")},tb.duration.fn.asWeeks=function(){return this.as("weeks")},tb.duration.fn.asMonths=function(){return this.as("M")},tb.duration.fn.asYears=function(){return this.as("y")},tb.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===A(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),Jb?module.exports=tb:"function"==typeof define&&define.amd?(define("moment",function(a,b,c){return c.config&&c.config()&&c.config().noGlobal===!0&&(xb.moment=ub),tb}),sb(!0)):sb()}).call(this);
3039// moment.js locale configuration
3040// locale : german (de)
3041// author : lluchs : https://github.com/lluchs
3042// author: Menelion Elensúle: https://github.com/Oire
3043
3044(function (factory) {
3045    if (typeof define === 'function' && define.amd) {
3046        define(['moment'], factory); // AMD
3047    } else if (typeof exports === 'object') {
3048        module.exports = factory(require('../moment')); // Node
3049    } else {
3050        factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
3051    }
3052}(function (moment) {
3053    function processRelativeTime(number, withoutSuffix, key, isFuture) {
3054        var format = {
3055            'm': ['eine Minute', 'einer Minute'],
3056            'h': ['eine Stunde', 'einer Stunde'],
3057            'd': ['ein Tag', 'einem Tag'],
3058            'dd': [number + ' Tage', number + ' Tagen'],
3059            'M': ['ein Monat', 'einem Monat'],
3060            'MM': [number + ' Monate', number + ' Monaten'],
3061            'y': ['ein Jahr', 'einem Jahr'],
3062            'yy': [number + ' Jahre', number + ' Jahren']
3063        };
3064        return withoutSuffix ? format[key][0] : format[key][1];
3065    }
3066
3067    return moment.defineLocale('de', {
3068        months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
3069        monthsShort : 'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
3070        weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
3071        weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
3072        weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
3073        longDateFormat : {
3074            LT: 'HH:mm',
3075            LTS: 'HH:mm:ss',
3076            L : 'DD.MM.YYYY',
3077            LL : 'D. MMMM YYYY',
3078            LLL : 'D. MMMM YYYY LT',
3079            LLLL : 'dddd, D. MMMM YYYY LT'
3080        },
3081        calendar : {
3082            sameDay: '[Heute um] LT [Uhr]',
3083            sameElse: 'L',
3084            nextDay: '[Morgen um] LT [Uhr]',
3085            nextWeek: 'dddd [um] LT [Uhr]',
3086            lastDay: '[Gestern um] LT [Uhr]',
3087            lastWeek: '[letzten] dddd [um] LT [Uhr]'
3088        },
3089        relativeTime : {
3090            future : 'in %s',
3091            past : 'vor %s',
3092            s : 'ein paar Sekunden',
3093            m : processRelativeTime,
3094            mm : '%d Minuten',
3095            h : processRelativeTime,
3096            hh : '%d Stunden',
3097            d : processRelativeTime,
3098            dd : processRelativeTime,
3099            M : processRelativeTime,
3100            MM : processRelativeTime,
3101            y : processRelativeTime,
3102            yy : processRelativeTime
3103        },
3104        ordinalParse: /\d{1,2}\./,
3105        ordinal : '%d.',
3106        week : {
3107            dow : 1, // Monday is the first day of the week.
3108            doy : 4  // The week that contains Jan 4th is the first week of the year.
3109        }
3110    });
3111}));
3112
3113if (typeof Object.create !== 'function') {
3114    Object.create = function(obj) {
3115        function F() {}
3116        F.prototype = obj;
3117        return new F();
3118    };
3119}
3120
3121(function($, window, document, undefined) {
3122    $.fn.socialfeed = function(_options) {
3123
3124
3125        var defaults = {
3126            plugin_folder: '', // a folder in which the plugin is located (with a slash in the end)
3127            template: 'template.html', // a path to the template file
3128            show_media: false, // show images of attachments if available
3129            media_min_width: 300,
3130            length: 500, // maximum length of post message shown
3131            date_format: 'll'
3132        };
3133        //---------------------------------------------------------------------------------
3134        var options = $.extend(defaults, _options),
3135            container = $(this),
3136            template,
3137            social_networks = ['facebook', 'instagram', 'vk', 'google', 'blogspot', 'twitter', 'pinterest', 'rss'],
3138            posts_to_load_count = 0,
3139            loaded_post_count = 0;
3140        // container.empty().css('display', 'block');
3141        //---------------------------------------------------------------------------------
3142
3143        //---------------------------------------------------------------------------------
3144        // This function performs consequent data loading from all of the sources by calling corresponding functions
3145        function calculatePostsToLoadCount() {
3146            social_networks.forEach(function(network) {
3147                if (options[network]) {
3148                    if (options[network].accounts) {
3149                        posts_to_load_count += options[network].limit * options[network].accounts.length;
3150                    } else {
3151                        posts_to_load_count += options[network].limit;
3152                    }
3153                }
3154            });
3155        }
3156
3157        calculatePostsToLoadCount();
3158
3159        function fireCallback() {
3160            var fire = true;
3161            /*$.each(Object.keys(loaded), function() {
3162                if (loaded[this] > 0)
3163                    fire = false;
3164            });*/
3165            if (fire && options.callback) {
3166                options.callback();
3167            }
3168        }
3169
3170        var Utility = {
3171            request: function(url, callback) {
3172                $.ajax({
3173                    url: url,
3174                    dataType: 'jsonp',
3175                    success: callback
3176                });
3177            },
3178            get_request: function(url, callback) {
3179                $.get(url, callback, 'json');
3180            },
3181            wrapLinks: function(string, social_network) {
3182                var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
3183                if (social_network === 'google-plus') {
3184                    string = string.replace(/(@|#)([a-z0-9_]+['])/ig, Utility.wrapGoogleplusTagTemplate);
3185                } else {
3186                    string = string.replace(exp, Utility.wrapLinkTemplate);
3187                }
3188                return string;
3189            },
3190            wrapLinkTemplate: function(string) {
3191                return '<a target="_blank" href="' + string + '">' + string + '<\/a>';
3192            },
3193            wrapGoogleplusTagTemplate: function(string) {
3194                return '<a target="_blank" href="https://plus.google.com/s/' + string + '" >' + string + '<\/a>';
3195            },
3196            shorten: function(string) {
3197                string = $.trim(string);
3198                if (string.length > options.length) {
3199                    return jQuery.trim(string).substring(0, options.length).split(" ").slice(0, -1).join(" ") + "...";
3200                } else {
3201                    return string;
3202                }
3203            },
3204            stripHTML: function(string) {
3205                if (typeof string === "undefined" || string === null) {
3206                    return '';
3207                }
3208                return string.replace(/(<([^>]+)>)|nbsp;|\s{2,}|/ig, "");
3209            }
3210        };
3211
3212        function SocialFeedPost(social_network, data) {
3213            this.content = data;
3214            this.content.social_network = social_network;
3215            this.content.attachment = (this.content.attachment === undefined) ? '' : this.content.attachment;
3216            this.content.time_ago = data.dt_create.fromNow();
3217            this.content.date = data.dt_create.format(options.date_format);
3218            this.content.dt_create = this.content.dt_create.valueOf();
3219            this.content.text = Utility.wrapLinks(Utility.shorten(data.message + ' ' + data.description), data.social_network);
3220            this.content.moderation_passed = (options.moderation) ? options.moderation(this.content) : true;
3221
3222            Feed[social_network].posts.push(this);
3223        }
3224        SocialFeedPost.prototype = {
3225            render: function() {
3226                var rendered_html = Feed.template(this.content);
3227                var data = this.content;
3228
3229                if ($(container).children('[social-feed-id=' + data.id + ']').length !== 0) {
3230                    return false;
3231                }
3232                if ($(container).children().length === 0) {
3233                    $(container).append(rendered_html);
3234                } else {
3235                    var i = 0,
3236                        insert_index = -1;
3237                    $.each($(container).children(), function() {
3238                        if ($(this).attr('dt-create') < data.dt_create) {
3239                            insert_index = i;
3240                            return false;
3241                        }
3242                        i++;
3243                    });
3244                    $(container).append(rendered_html);
3245                    if (insert_index >= 0) {
3246                        insert_index++;
3247                        var before = $(container).children('div:nth-child(' + insert_index + ')'),
3248                            current = $(container).children('div:last-child');
3249                        $(current).insertBefore(before);
3250                    }
3251
3252                }
3253                if (options.media_min_width) {
3254
3255                    var query = '[social-feed-id=' + data.id + '] img.attachment';
3256                    var image = $(query);
3257
3258                    // preload the image
3259                    var height, width = '';
3260                    var img = new Image();
3261                    var imgSrc = image.attr("src");
3262
3263                    $(img).on('load',function() {
3264
3265                        if (img.width < options.media_min_width) {
3266                            image.hide();
3267                        }
3268                        // garbage collect img
3269                        delete img;
3270
3271                    }).on('error', function() {
3272                        // image couldnt be loaded
3273                        image.hide();
3274
3275                    }).attr({
3276                        src: imgSrc
3277                    });
3278
3279                }
3280
3281                loaded_post_count++;
3282                if (loaded_post_count == posts_to_load_count) {
3283                    fireCallback();
3284                }
3285
3286            }
3287
3288        };
3289
3290        var Feed = {
3291            template: false,
3292            init: function() {
3293                Feed.getTemplate(function() {
3294                    social_networks.forEach(function(network) {
3295                        if (options[network]) {
3296                            if ( options[network].accounts ) {
3297                                //loaded[network] = 0;
3298                                options[network].accounts.forEac
3298h(function(account) {
3299                                    //loaded[network]++;
3300                                    Feed[network].getData(account);
3301                                });
3302                            } else if ( options[network].urls ) {
3303                                options[network].urls.forEach(function(url) {
3304                                    Feed[network].getData(url);
3305                                });
3306                            } else {
3307                                Feed[network].getData();
3308                            }
3309                        }
3310                    });
3311                });
3312            },
3313            getTemplate: function(callback) {
3314                if (Feed.template)
3315                    return callback();
3316                else {
3317                    if (options.template_html) {
3318                        Feed.template = doT.template(options.template_html);
3319                        return callback();
3320                    } else {
3321                        $.get(options.template, function(template_html) {
3322                            Feed.template = doT.template(template_html);
3323                            return callback();
3324                        });
3325                    }
3326                }
3327            },
3328            twitter: {
3329                posts: [],
3330                loaded: false,
3331                api: 'http://api.tweecool.com/',
3332
3333                getData: function(account) {
3334
3335                    var cb = new Codebird();
3336                    cb.setConsumerKey(options.twitter.consumer_key, options.twitter.consumer_secret);
3337
3338                    // Allow setting your own proxy with Codebird
3339                    if (options.twitter.proxy !== undefined) {
3340                        cb.setProxy(options.twitter.proxy);
3341                    }
3342
3343                    switch (account[0]) {
3344                        case '@':
3345                            var userid = account.substr(1);
3346                            cb.__call(
3347                                "statuses_userTimeline",
3348                                "id=" + userid + "&count=" + options.twitter.limit,
3349                                Feed.twitter.utility.getPosts,
3350                                true // this parameter required
3351                            );
3352                            break;
3353                        case '#':
3354                            var hashtag = account.substr(1);
3355                            cb.__call(
3356                                "search_tweets",
3357                                "q=" + hashtag + "&count=" + options.twitter.limit,
3358                                function(reply) {
3359                                    Feed.twitter.utility.getPosts(reply.statuses);
3360                                },
3361                                true // this parameter required
3362                            );
3363                            break;
3364                        default:
3365                    }
3366                },
3367                utility: {
3368                    getPosts: function(json) {
3369                        if (json) {
3370                            $.each(json, function() {
3371                                var element = this;
3372                                var post = new SocialFeedPost('twitter', Feed.twitter.utility.unifyPostData(element));
3373                                post.render();
3374                            });
3375                        }
3376                    },
3377                    unifyPostData: function(element) {
3378                        var post = {};
3379                        if (element.id) {
3380                            post.id = element.id;
3381                            //prevent a moment.js console warning due to Twitter's poor date format.
3382                            post.dt_create = moment(new Date(element.created_at));
3383                            post.author_link = 'http://twitter.com/' + element.user.screen_name;
3384                            post.author_picture = element.user.profile_image_url;
3385                            post.post_url = post.author_link + '/status/' + element.id_str;
3386                            post.author_name = element.user.name;
3387                            post.message = element.text;
3388                            post.description = '';
3389                            post.link = 'http://twitter.com/' + element.user.screen_name + '/status/' + element.i
3389d_str;
3390
3391                            if (options.show_media === true) {
3392                                if (element.entities.media && element.entities.media.length > 0) {
3393                                    var image_url = element.entities.media[0].media_url;
3394                                    if (image_url) {
3395                                        post.attachment = '<img class="attachment" src="' + image_url + '" />';
3396                                    }
3397                                }
3398                            }
3399                        }
3400                        return post;
3401                    }
3402                }
3403            },
3404            facebook: {
3405                posts: [],
3406                graph: 'https://graph.facebook.com/',
3407                loaded: false,
3408                getData: function(account) {
3409                    var proceed = function(request_url){
3410                        Utility.request(request_url, Feed.facebook.utility.getPosts);
3411                    };
3412                    var fields = '?fields=id,from,name,message,created_time,story,description,link';
3413                       fields += (options.show_media === true)?',picture,object_id':'';
3414                    var request_url, limit = '&limit=' + options.facebook.limit,
3415                        query_extention = '&access_token=' + options.facebook.access_token + '&callback=?';
3416                    switch (account[0]) {
3417                        case '@':
3418                            var username = account.substr(1);
3419                            Feed.facebook.utility.getUserId(username, function(userdata) {
3420                                if (userdata.id !== '') {
3421                                    request_url = Feed.facebook.graph + 'v2.4/' + userdata.id + '/posts'+ fields + limit + query_extention;
3422                                    proceed(request_url);
3423                                }
3424                            });
3425                            break;
3426                        case '!':
3427                            var page = account.substr(1);
3428                            request_url = Feed.facebook.graph + 'v2.4/' + page + '/feed'+ fields + limit + query_extention;
3429                            proceed(request_url);
3430                            break;
3431                        default:
3432                            proceed(request_url);
3433                    }
3434                    //console.log(request_url);
3435                },
3436                utility: {
3437                    getUserId: function(username, callback) {
3438                        var query_extention = '&access_token=' + options.facebook.access_token + '&callback=?';
3439                        var url = 'https://graph.facebook.com/' + username + '?' + query_extention;
3440                        var result = '';
3441                        $.get(url, callback, 'json');
3442                    },
3443                    prepareAttachment: function(element) {
3444                        var image_url = element.picture;
3445                        if (image_url.indexOf('_b.') !== -1) {
3446                            //do nothing it is already big
3447                        } else if (image_url.indexOf('safe_image.php') !== -1) {
3448                            image_url = Feed.facebook.utility.getExternalImageURL(image_url, 'url');
3449
3450                        } else if (image_url.indexOf('app_full_proxy.php') !== -1) {
3451                            image_url = Feed.facebook.utility.getExternalImageURL(image_url, 'src');
3452
3453                        } else if (element.object_id) {
3454                            image_url = Feed.facebook.graph + element.object_id + '/picture/?type=normal';
3455                        }
3456                        return image_url;
3457                    },
3458                    getExternalImageURL: function(image_url, parameter) {
3459                        image_url = decodeURIComponent(image_url).split(parameter + '=')[1];
3460                        if (image_url.indexOf('fbcdn-sphotos') === -1) {
3461                            return image_url.split('&')[0];
3462                        } else {
3463                            return image_url;
3464                        }
3465
3466                    },
3467                    getPosts: function(json) {
3468                        if (json['data']) {
3469                            json['data'].forEach(function(element) {
3470                                var post = new SocialFeedPost('facebook', Feed.facebook.utility.unifyPostData(element));
3471                                if(post.content.attachment !== ""){
3472                                    post.render();
3473                                }
3474                            });
3475                        }
3476                    },
3477                    unifyPostData: function(element) {
3478                        var post = {},
3479                            text = (element.message) ? element.message : element.story;
3480
3481                        post.id = element.id;
3482                        post.dt_create = moment(element.created_time);
3483                        post.author_link = 'http://facebook.com/' + element.from.id;
3484                        post.author_picture = Feed.facebook.graph + element.from.id + '/picture';
3485                        post.author_name = element.from.name;
3486                        post.name = element.name || "";
3487                        post.message = (text) ? text : '';
3488                        post.description = (element.description) ? element.description : '';
3489                        post.link =  'http://facebook.com/' + element.id;
3490
3491                        if (options.show_media === true) {
3492                            if (element.picture) {
3493                                var attachment = Feed.facebook.utility.prepareAttachment(element);
3494                                if (attachment) {
3495                                    post.attachment = attachment;
3496                                }
3497                            }
3498                        }
3499                        return post;
3500                    }
3501                }
3502            },
3503            google: {
3504                posts: [],
3505                loaded: false,
3506                api: 'https://www.googleapis.com/plus/v1/',
3507                getData: function(account) {
3508                    var request_url;
3509                    switch (account[0]) {
3510                        case '#':
3511                            var hashtag = account.substr(1);
3512                            request_url = Feed.google.api + 'activities?query=' + hashtag + '&key=' + options.google.access_token + '&maxResults=' + options.google.limit;
3513                            Utility.get_request(request_url, Feed.google.utility.getPosts);
3514                            break;
3515                        case '@':
3516                            var username = account.substr(1);
3517                            request_url = Feed.google.api + 'people/' + username + '/activities/public?key=' + options.google.access_token + '&maxResults=' + options.google.limit;
3518                            Utility.get_request(request_url, Feed.google.utility.getPosts);
3519                            break;
3520                        default:
3521                    }
3522                },
3523                utility: {
3524                    getPosts: function(json) {
3525                        if (json.items) {
3526                            $.each(json.items, function(i) {
3527                                var post = new SocialFeedPost('google', Feed.google.utility.unifyPostData(json.items[i]));
3528                                post.render();
3529                            });
3530                        }
3531                    },
3532                    unifyPostData: function(element) {
3533                        var post = {};
3534
3535                        post.id = element.id;
3536                        post.attachment = '';
3537                        post.description = '';
3538                        post.dt_create = moment(element.published);
3539                        post.author_link = element.actor.url;
3540                        post.author_picture = element.actor.image.url;
3541                        post.author_name = element.actor.displayName;
3542
3543                        if (options.show_media === true) {
3544                            if (element.object.attachments) {
3545                                $.each(element.object.attachments, function() {
3546                                    var image = '';
3547                                    if (this.fullImage) {
3548                                        image = this.fullImage.url;
3549                                    } else {
3550                                        if (this.objectType === 'album') {
3551                                            if (this.thumbnails && this.thumbnails.length > 0) {
3552                                                if (this.thumbnails[0].image) {
3553                                                    image = this.thumbnails[0].image.url;
3554                                                }
3555                                            }
3556                                        }
3557                                    }
3558                                    post.attachment = '<img class="attachment" src="' + image 
3558+ '"/>';
3559                                });
3560                            }
3561                        }
3562                        post.message = element.title;
3563                        post.link = element.url;
3564
3565                        return post;
3566                    }
3567                }
3568            },
3569            instagram: {
3570                posts: [],
3571                api: 'https://api.instagram.com/v1/',
3572                loaded: false,
3573                accessType: function() { 
3574                    // If we have both the client_id and access_token set in options,
3575                    // use access_token for authentication. If client_id is not set
3576                    // then use access_token. If neither are set, log an error to console.
3577                    if (typeof options.instagram.access_token === 'undefined' && typeof options.instagram.client_id === 'undefined') {
3578                        console.log('You need to define a client_id or access_token to authenticate with Instagram\'s API.');
3579                        return undefined;
3580                    }
3581                    if (options.instagram.access_token) { options.instagram.client_id = undefined; }
3582                    options.instagram.access_type = (typeof options.instagram.client_id === 'undefined' ? 'access_token' : 'client_id');
3583                    return options.instagram.access_type;
3584                },
3585                getData: function(account) {
3586                    var url;
3587
3588                    // API endpoint URL depends on which authentication type we're using.
3589                    if (this.accessType() !== 'undefined') {
3590                        var authTokenParams = options.instagram.access_type + '=' + options.instagram[options.instagram.access_type];
3591                    }
3592
3593                    switch (account[0]) {
3594                        case '@':
3595                            var username = account.substr(1);
3596                            url = Feed.instagram.api + 'users/search/?q=' + username + '&' + authTokenParams + '&count=1' + '&callback=?';
3597                            Utility.request(url, Feed.instagram.utility.getUsers);
3598                            break;
3599                        case '#':
3600                            var hashtag = account.substr(1);
3601                            url = Feed.instagram.api + 'tags/' + hashtag + '/media/recent/?' + authTokenParams + '&' + 'count=' + options.instagram.limit + '&callback=?';
3602                            Utility.request(url, Feed.instagram.utility.getImages);
3603                            break;
3604                        case '&':
3605                            var id = account.substr(1);
3606                            url = Feed.instagram.api + 'users/' + id + '/?' + authTokenParams + '&' + 'count=' + options.instagram.limit + '&callback=?';
3607                            Utility.request(url, Feed.instagram.utility.getUsers);
3608                        default:
3609                    }
3610                },
3611                utility: {
3612                    getImages: function(json) {
3613                        if (json.data) {
3614                            json.data.forEach(function(element) {
3615                                var post = new SocialFeedPost('instagram', Feed.instagram.utility.unifyPostData(element));
3616                                post.render();
3617                            });
3618                        }
3619                    },
3620                    getUsers: function(json) {
3621                        // API endpoint URL depends on which authentication type we're using.
3622                        if (options.instagram.access_type !== 'undefined') {
3623                            var authTokenParams = options.instagram.access_type + '=' + options.instagram[options.instagram.access_type];
3624                        }
3625
3626                        if (!jQuery.isArray(json.data)) json.data = [json.data]
3627                        json.data.forEach(function(user) {
3628                            var url = Feed.instagram.api + 'users/' + user.id + '/media/recent/?' + authTokenParams + '&' + 'count=' + options.instagram.limit + '&callback=?';
3629                            Utility.request(url, Feed.instagram.utility.getImages);
3630                        });
3631                    },
3632                    unifyPostData: function(element) {
3633                        var post = {};
3634
3635                        post.id = element.id;
3636                        post.dt_create = moment(element.created_time * 1000);
3637                        post.author_link = 'http://instagram.com/' + element.user.username;
3638                        post.author_picture = element.user.profile_picture;
3639                        post.author_name = element.user.full_name || element.user.username;
3640                        post.message = (element.caption && element.caption) ? element.caption.text : '';
3641                        post.description = '';
3642                        post.link = element.link;
3643                        if (options.show_media) {
3644                            post.attachment = element.images.standard_resolution.url;
3645                        }
3646                        return post;
3647                    }
3648                }
3649            },
3650            vk: {
3651                posts: [],
3652                loaded: false,
3653                base: 'http://vk.com/',
3654                api: 'https://api.vk.com/method/',
3655                user_json_template: 'https://api.vk.com/method/' + 'users.get?fields=first_name,%20last_name,%20screen_name,%20photo&uid=',
3656                group_json_template: 'https://api.vk.com/method/' + 'groups.getById?fields=first_name,%20last_name,%20screen_name,%20photo&gid=',
3657                getData: function(account) {
3658                    var request_url;
3659
3660                    switch (account[0]) {
3661                        case '@':
3662                            var username = account.substr(1);
3663                            request_url = Feed.vk.api + 'wall.get?owner_id=' + username + '&filter=' + options.vk.source + '&count=' + options.vk.limit + '&callback=?';
3664                            Utility.get_request(request_url, Feed.vk.utility.getPosts);
3665                            break;
3666                        case '#':
3667                            var hashtag = account.substr(1);
3668                            request_url = Feed.vk.api + 'newsfeed.search?q=' + hashtag + '&count=' + options.vk.limit + '&callback=?';
3669                            Utility.get_request(request_url, Feed.vk.utility.getPosts);
3670                            break;
3671                        default:
3672                    }
3673                },
3674                utility: {
3675                    getPosts: function(json) {
3676                        if (json.response) {
3677                            $.each(json.response, function() {
3678                                if (this != parseInt(this) && this.post_type === 'post') {
3679                                    var owner_id = (this.owner_id) ? this.owner_id : this.from_id,
3680                                        vk_wall_owner_url = (owner_id > 0) ? (Feed.vk.user_json_template + owner_id + '&callback=?') : (Feed.vk.group_json_template + (-1) * owner_id + '&callback=?'),
3681                                        element = this;
3682                                    Utility.get_request(vk_wall_owner_url, function(wall_owner) {
3683                                        Feed.vk.utility.unifyPostData(wall_owner, element, json);
3684                                    });
3685                                }
3686                            });
3687                        }
3688                    },
3689                    unifyPostData: function(wall_owner, element, json) {
3690                        var post = {};
3691
3692                        post.id = element.id;
3693                        post.dt_create = moment.unix(element.date);
3694                        post.description = ' ';
3695                        post.message = Utility.stripHTML(element.text);
3696                        if (options.show_media) {
3697                            if (element.attachment) {
3698                                if (element.attachment.type === 'link')
3699                                    post.attachment = '<img class="attachment" src="' + element.attachment.link.image_src + '" />';
3700                                if (element.attachment.type === 'video')
3701                                    post.attachment = '<img class="attachment" src="' + element.attachment.video.image_big + '" />';
3702                                if (element.attachment.type === 'photo')
3703                                    post.attachment = '<img class="attachment" src="' + element.attachment.photo.src_big + '" />';
3704                            }
3705                        }
3706
3707                        if (element.from_id > 0) {
3708                            var vk_user_json = Feed.vk.user_json_template + element.from_id + '&callback=?';
3709                            Utility.get_request(vk_user_json, function(user_json) {
3710                                var vk_post = new SocialFeedPost('vk', Feed.vk.utility.getUser(user_json, post, element, json));
3711                                vk_post.render();
3712                            });
3713
3714                        } else {
3715                            var vk_group_json = Feed.vk.group_json_template + (-1) * element.from_id + '&callback=?';
3716                            Utility.get_request(vk_group_json, function(user_json) {
3717                                var vk_post = new SocialFeedPost('vk', Feed.vk.utility.getGroup(user_json, post, element, json));
3718                                vk_post.render();
3719                            });
3720                        }
3721                    },
3722                    getUser: function(user_json, post, element, json) {
3723                        post.author_name = user_json.response[0].first_name + ' ' + user_json.response[0].last_name;
3724                        post.author_picture = user_json.response[0].photo;
3725                        post.author_link = Feed.vk.base + user_json.response[0].screen_name;
3726                        post.link = Feed.vk.base + user_json.response[0].screen_name + '?w=wall' + element.from_id + '_' + element.i
3726d;
3727
3728                        return post;
3729                    },
3730                    getGroup: function(user_json, post, element, json) {
3731                        post.author_name = user_json.response[0].name;
3732                        post.author_picture = user_json.response[0].photo;
3733                        post.author_link = Feed.vk.base + user_json.response[0].screen_name;
3734                        post.link = Feed.vk.base + user_json.response[0].screen_name + '?w=wall-' + user_json.response[0].gid + '_' + element.id;
3735
3736                        return post;
3737                    }
3738                }
3739            },
3740            blogspot: {
3741                loaded: false,
3742                getData: function(account) {
3743                    var url;
3744
3745                    switch (account[0]) {
3746                        case '@':
3747                            var username = account.substr(1);
3748                            url = 'http://' + username + '.blogspot.com/feeds/posts/default?alt=json-in-script&callback=?';
3749                            request(url, getPosts);
3750                            break;
3751                        default:
3752                    }
3753                },
3754                utility: {
3755                    getPosts: function(json) {
3756                        $.each(json.feed.entry, function() {
3757                            var post = {},
3758                                element = this;
3759                            post.id = element.id['$t'].replace(/[^a-z0-9]/gi, '');
3760                            post.dt_create = moment((element.published['$t']));
3761                            post.author_link = element.author[0]['uri']['$t'];
3762                            post.author_picture = 'http:' + element.author[0]['gd$image']['src'];
3763                            post.author_name = element.author[0]['name']['$t'];
3764                            post.message = element.title['$t'] + '</br></br>' + stripHTML(element.content['$t']);
3765                            post.description = '';
3766                            post.link = element.link.pop().href;
3767
3768                            if (options.show_media) {
3769                                if (element['media$thumbnail']) {
3770                                    post.attachment = '<img class="attachment" src="' + element['media$thumbnail']['url'] + '" />';
3771                                }
3772                            }
3773
3774                            post.render();
3775
3776                        });
3777                    }
3778                }
3779            },
3780            pinterest: {
3781                posts: [],
3782                loaded: false,
3783                apiv1: 'https://api.pinterest.com/v1/',
3784
3785                getData: function(account) {
3786                    var request_url,
3787                      limit = 'limit=' + options.pinterest.limit,
3788                      fields = 'fields=id,created_at,link,note,creator(url,first_name,last_name,image),image',
3789                      query_extention = fields + '&access_token=' 
3789+ options.pinterest.access_token + '&' + limit + '&callback=?';
3790                    switch (account[0]) {
3791                        case '@':
3792                            var username = account.substr(1);
3793                            if (username === 'me') {
3794                                request_url = Feed.pinterest.apiv1 + 'me/pins/?' + query_extention;
3795                            } else {
3796                                request_url = Feed.pinterest.apiv1 + 'boards/' + username + '/pins?' + query_extention;
3797                            }
3798                            break;
3799                        default:
3800                    }
3801                    Utility.request(request_url, Feed.pinterest.utility.getPosts);
3802                },
3803                utility: {
3804
3805                    getPosts: function(json) {
3806                        json.data.forEach(function(element) {
3807                            var post = new SocialFeedPost('pinterest', Feed.pinterest.utility.unifyPostData(element));
3808                            post.render();
3809                        });
3810                    },
3811
3812                    unifyPostData: function(element){
3813                        var post = {};
3814
3815                        post.id = element.id;
3816                        post.dt_create= moment(element.created_at);
3817                        post.author_link = element.creator.url;
3818                        post.author_picture = element.creator.image['60x60' ].url;
3819                        post.author_name =  element.creator.first_name + element.creator.last_name;
3820                        post.message = element.note;
3821                        post.description = '';
3822                        post.social_network = 'pinterest';
3823                        post.link = element.link ? element.link : 'https://www.pinterest.com/pin/' + element.id;
3824                        if (options.show_media) {
3825                            post.attachment = '<img class="attachment" src="' + element.image['original'].url + '" />';
3826                        }
3827                        return post;
3828                    }
3829                }
3830            },
3831            rss : {
3832                posts: [],
3833                loaded: false,
3834                api : 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0',
3835
3836                getData: function(url) {
3837                    var limit = '&num='+ options.rss.limit,
3838                      request_url = Feed.rss.api + limit + '&q=' + encodeURIComponent(url);
3839
3840                    Utility.request(request_url, Feed.rss.utility.getPosts);
3841                },
3842                utility: {
3843
3844                    getPosts: function(json) {
3845                        $.each(json.responseData.feed.entries, function(index, element) {
3846                            var post = new SocialFeedPost('rss', Feed.rss.utility.unifyPostData(index, element));
3847                            post.render();
3848                        });
3849                    },
3850
3851                    unifyPostData: function(index, element){
3852                        var post = {};
3853
3854                        post.id = index;
3855                        post.dt_create= moment(element.publishedDate, 'ddd, DD MMM YYYY HH:mm:ss ZZ', 'en');
3856                        post.author_link = '';
3857                        post.author_picture = '';
3858                        post.author_name = element.author;
3859                        post.message = Utility.stripHTML(element.title);
3860                        post.description = Utility.stripHTML(element.content);
3861                        post.social_network = 'rss';
3862                        post.link = element.link;
3863                        if (options.show_media && element.mediaGroups ) {
3864                            post.attachment = '<img class="attachment" src="' + element.mediaGroups[0].contents[0].url + '" />';
3865                        }
3866                        return post;
3867                    }
3868                }
3869            }
3870        };
3871
3872        //make the plugin chainable
3873        return this.each(function() {
3874            // Initialization
3875            Feed.init();
3876            if (options.update_period) {
3877                setInterval(function() {
3878                    return Feed.init();
3879                }, options.update_period);
3880            }
3881        })
3882    };
3883
3884})(jQuery);
3885
3886var cvpHandlers = {
3887	canvasClickHandler: null,
3888	videoTimeUpdateHandler: null,
3889	videoCanPlayHandler: null,
3890	windowResizeHandler: null
3891};
3892
3893var CanvasVideoPlayer = function(options) {
3894	var i;
3895
3896	this.options = {
3897		framesPerSecond: 25,
3898		hideVideo: true,
3899		autoplay: false,
3900		makeLoop: false,
3901		pauseOnClick: true,
3902		audio: false,
3903		timelineSelector: false,
3904		resetOnLastFrame: true
3905	};
3906
3907	for (i in options) {
3908		this.options[i] = options[i];
3909	}
3910
3911	this.video = document.querySelector(this.options.videoSelector);
3912	this.canvas = document.querySelector(this.options.canvasSelector);
3913	this.timeline = document.querySelector(this.options.timelineSelector);
3914	this.timelinePassed = document.querySelector(this.options.timelineSelector + '> div');
3915
3916	if (!this.options.videoSelector || !this.video) {
3917		console.error('No "videoSelector" property, or the element is not found');
3918		return;
3919	}
3920
3921	if (!this.options.canvasSelector || !this.canvas) {
3922		console.error('No "canvasSelector" property, or the element is not found');
3923		return;
3924	}
3925
3926	if (this.options.timelineSelector && !this.timeline) {
3927		console.error('Element for the "timelineSelector" selector not found');
3928		return;
3929	}
3930
3931	if (this.options.timelineSelector && !this.timelinePassed) {
3932		console.error('Element for the "timelinePassed" not found');
3933		return;
3934	}
3935
3936	if (this.options.audio) {
3937		if (typeof(this.options.audio) === 'string'){
3938			// Use audio selector from options if specified
3939			this.audio = document.querySelectorAll(this.options.audio)[0];
3940
3941			if (!this.audio) {
3942				console.error('Element for the "audio" not found');
3943				return;
3944			}
3945		} else {
3946			// Creates audio element which uses same video sources
3947			this.audio = document.createElement('audio');
3948			this.audio.innerHTML = this.video.innerHTML;
3949			this.video.parentNode.insertBefore(this.audio, this.video);
3950			this.audio.load();
3951		}
3952
3953		var iOS = /iPad|iPhone|iPod/.test(navigator.platform);
3954		if (iOS) {
3955			// Autoplay doesn't work with audio on iOS
3956			// User have to manually start the audio
3957			this.options.autoplay = false;
3958		}
3959	}
3960
3961	// Canvas context
3962	this.ctx = this.canvas.getContext('2d');
3963
3964	this.playing = false;
3965
3966	this.resizeTimeoutReference = false;
3967	this.RESIZE_TIMEOUT = 1000;
3968
3969	this.init();
3970	this.bind();
3971};
3972
3973CanvasVideoPlayer.prototype.init = function() {
3974	this.video.load();
3975
3976	this.setCanvasSize();
3977
3978	if (this.options.hideVideo) {
3979		this.video.style.display = 'none';
3980	}
3981};
3982
3983// Used most of the jQuery code for the .offset() method
3984CanvasVideoPlayer.prototype.getOffset = function(elem) {
3985	var docElem, rect, doc;
3986
3987	if (!elem) {
3988		return;
3989	}
3990
3991	rect = elem.getBoundingClientRect();
3992
3993	// Make sure element is not hidden (display: none) or disconnected
3994	if (rect.width || rect.height || elem.getClientRects().length) {
3995		doc = elem.ownerDocument;
3996		docElem = doc.documentElement;
3997
3998		return {
3999			top: rect.top + window.pageYOffset - docElem.clientTop,
4000			left: rect.left + window.pageXOffset - docElem.clientLeft
4001		};
4002	}
4003};
4004
4005CanvasVideoPlayer.prototype.jumpTo = function(percentage) {
4006	this.video.currentTime = this.video.duration * percentage;
4007
4008	if (this.options.audio) {
4009		this.audio.currentTime = this.audio.duration * percentage;
4010	}
4011};
4012
4013CanvasVideoPlayer.prototype.bind = function() {
4014	var self = this;
4015
4016	// Playes or pauses video on canvas click
4017	if(this.options.pauseOnClick === true){
4018		this.canvas.addEventListener('click', cvpHandlers.canvasClickHandler = function() {
4019			self.playPause();
4020		});
4021	}
4022
4023	// On every time update draws frame
4024	this.video.addEventListener('timeupdate', cvpHandlers.videoTimeUpdateHandler = function() {
4025		self.drawFrame();
4026		if (self.options.timelineSelector) {
4027			self.updateTimeline();
4028		}
4029	});
4030
4031	// Draws first frame
4032	this.video.addEventListener('canplay', cvpHandlers.videoCanPlayHandler = function() {
4033		self.drawFrame();
4034	});
4035
4036	// To be sure 'canplay' event that isn't already fired
4037	if (this.video.readyState >= 2) {
4038		self.drawFrame();
4039	}
4040
4041
4042	if (self.options.autoplay) {
4043	  self.play();
4044	}
4045
4046	// Click on the video seek video
4047	if (self.options.timelineSelector) {
4048		this.timeline.addEventListener('click', function(e) {
4049			var offset = e.clientX - self.getOffset(self.canvas).left;
4050			var percentage = offset / self.timeline.offsetWidth;
4051			self.jumpTo(percentage);
4052		});
4053	}
4054
4055	// Cache canvas size on resize (doing it only once in a second)
4056	window.addEventListener('resize', cvpHandlers.windowResizeHandler = function() {
4057		clearTimeout(self.resizeTimeoutReference);
4058
4059		self.resizeTimeoutReference = setTimeout(function() {
4060			self.setCanvasSize();
4061			self.drawFrame();
4062		}, self.RESIZE_TIMEOUT);
4063	});
4064
4065	this.unbind = function() {
4066		this.canvas.removeEventListener('click', cvpHandlers.canvasClickHandler);
4067		this.video.removeEventListener('timeupdate', cvpHandlers.videoTimeUpdateHandler);
4068		this.video.removeEventListener('canplay', cvpHandlers.videoCanPlayHandler);
4069		window.removeEventListener('resize', cvpHandlers.windowResizeHandler);
4070
4071		if (this.options.audio) {
4072			this.audio.parentNode.removeChild(this.audio);
4073		}
4074	};
4075};
4076
4077CanvasVideoPlayer.prototype.updateTimeline = function() {
4078	var percentage = (this.video.currentTime * 100 / this.video.duration).toFixed(2);
4079	this.timelinePassed.style.width = percentage + '%';
4080};
4081
4082CanvasVideoPlayer.prototype.setCanvasSize = function() {
4083	this.width = this.canvas.clientWidth;
4084	this.height = this.canvas.clientHeight;
4085
4086	this.canvas.setAttribute('width', this.width);
4087	this.canvas.setAttribute('height', this.height);
4088};
4089
4090CanvasVideoPlayer.prototype.play = function() {
4091	this.lastTime = Date.now();
4092	this.playing = true;
4093	this.loop();
4094
4095	if (this.options.audio) {
4096		// Resync audio and video
4097		this.audio.currentTime = this.video.currentTime;
4098		this.audio.play();
4099	}
4100};
4101
4102CanvasVideoPlayer.prototype.pause = function() {
4103	this.playing = false;
4104
4105	if (this.options.audio) {
4106		this.audio.pause();
4107	}
4108};
4109
4110CanvasVideoPlayer.prototype.playPause = function() {
4111	if (this.playing) {
4112		this.pause();
4113	}
4114	else {
4115		this.play();
4116	}
4117};
4118
4119CanvasVideoPlayer.prototype.loop = function() {
4120	var self = this;
4121
4122	var time = Date.now();
4123	var elapsed = (time - this.lastTime) / 1000;
4124
4125	// Render
4126	if(elapsed >= (1 / this.options.framesPerSecond)) {
4127		this.video.currentTime = this.video.currentTime + elapsed;
4128		this.lastTime = time;
4129		// Resync audio and video if they drift more than 300ms apart
4130		if(this.audio && Math.abs(this.audio.currentTime - this.video.currentTime) > .3){
4131			this.audio.currentTime = this.video.currentTime;
4132		}
4133	}
4134
4135	// If we are at the end of the video stop
4136	if (this.video.currentTime >= this.video.duration) {
4137		if(this.options.makeLoop === false){
4138			this.playing = false;
4139		}
4140
4141		if (this.options.resetOnLastFrame === true) {
4142			this.video.currentTime = 0;
4143		}
4144	}
4145
4146	if (this.playing) {
4147		this.animationFrame = requestAnimationFrame(function(){
4148			self.loop();
4149		});
4150	}
4151	else {
4152		cancelAnimationFrame(this.animationFrame);
4153	}
4154};
4155
4156CanvasVideoPlayer.prototype.drawFrame = function() {
4157	this.ctx.drawImage(this.video, 0, 0, this.width, this.height);
4158};
4159
4160$(function () {
4161
4162
4163    // Full-Swiper Setup
4164    var fullSwiper = new Swiper('.full-swiper .swiper-container', {
4165        speed: 400,
4166        nextButton: '.full-swiper .swiper-button-next',
4167        prevButton: '.full-swiper .swiper-button-prev',
4168        pagination: '.full-swiper .swiper-pagination'
4169    });
4170
4171
4172    // Menu-Trigger
4173    $('#header .lines-button').click(function (event) {
4174        $(this).toggleClass('lines-button-close');
4175        $('#header .nav-wrapper').toggleClass('nav-wrapper-open');
4176    });
4177
4178    $('a').click(function () {
4179        if(!$(this).hasClass('nav-link') && !$(this).hasClass('carousel-control-next')  && !$(this).hasClass('carousel-control-prev')){
4180            var springTo = $(this).attr('href').split('#'),
4181                springElement = $('#' + springTo[1]);
4182            if (springElement) {
4183                $('html, body').animate({
4184                    scrollTop: springElement.offset().top - 115
4185                }, 500);
4186            }
4187
4188        }
4189    });
4190
4191
4192    // News-Stream
4193    $('.news-stream').isotope({
4194        itemSelector: '.news-stream-item',
4195        layoutMode: 'masonry',
4196        percentPosition: true
4197    });
4198
4199    // newsletter-trigger
4200    $('.newsletter-form #email').on('click', function () {
4201       $('.newsletter-form-control').fadeIn();
4202    });
4203
4204    // Match-Height
4205    $('.mh-item').matchHeight();
4206
4207
4208    // Modal offset
4209    var headerHeight = $('#header').outerHeight();
4210    $('.modal-detail-full .modal-dialog').css('margin-top', headerHeight);
4211    $('.modal-detail-full .modal-dialog').css({'height': 'calc(100% - ' + headerHeight + 'px)'});
4212    $('.modal-detail-full .modal-content').css({'height': '100%'});
4213
4214
4215    var resizeTimer;
4216    $(window).on('resize', function (e) {
4217        clearTimeout(resizeTimer);
4218        resizeTimer = setTimeout(function () {
4219            var headerHeight = $('#header').outerHeight();
4220            $('.modal-detail-full .modal-dialog').css('margin-top', headerHeight);
4221        }, 250);
4222    });
4223
4224
4225    // Modal Carousel
4226    /*
4227     var fullSwiper = new Swiper('.modal-detail-full-carousel .swiper-container', {
4228     speed: 400,
4229     nextButton: '.modal-detail-full-carousel .swiper-button-next',
4230     prevButton: '.modal-detail-full-carousel .swiper-button-prev',
4231     pagination: '.modal-detail-full-carousel .swiper-pagination'
4232     });
4233
4234
4235
4236     $('#modal_detail').on('shown.bs.modal', function (e) {
4237     fullSwiper.update();
4238     })
4239
4240
4241
4242     $( "[data-modal-slide]" ).click(function() {
4243     var sliderIndex = $(this).attr('data-modal-slide');
4244
4245     fullSwiper.slideTo(sliderIndex);
4246     });
4247     */
4248    new WOW().init();
4249    
4250    var elementExists = document.getElementById("video-1");
4251    if (elementExists != null) {
4252        setTimeout(function () {
4253            $('.art-stream').isotope({
4254                itemSelector: '.art-stream-item',
4255                layoutMode: 'masonry',
4256                percentPosition: true,
4257                masonry: {
4258                    columnWidth: '.art-stream-item.col-sm-3'
4259                }
4260            });
4261        }, 2000);
4262    }
4263
4264
4265});
4266
4267var SOCIAL = {};
4268SOCIAL.counter = -1;
4269
4270function getCounter() {
4271
4272    SOCIAL.counter++;
4273    return SOCIAL.counter;
4274
4275}
4276
4277// Button: Select Size
4278
4279
4280// product-detail-right-nav
4281function toggleIcon(e) {
4282    $(e.target)
4283        .prev('.panel-heading')
4284        .find(".more-less")
4285        .toggleClass('glyphicon-plus glyphicon-minus');
4286}
4287$('.panel-group').on('hidden.bs.collapse', toggleIcon);
4288$('.panel-group').on('shown.bs.collapse', toggleIcon);
4289
4290// toTop
4291
4292$(window).scroll(function(){
4293    if ($(this).scrollTop() > 100) {
4294        $('#toTop').fadeIn();
4295    } else {
4296        $('#toTop').fadeOut();
4297    }
4298});
4299
4300$('#toTop').click(function(){
4301    $('html, body').animate({scrollTop : 0},800);
4302    return false;
4303});
4304
4305$('.button-more-information').on('click', function () {
4306    var that = $(this);
4307    that.next().toggle();
4308    that.prev().toggle();
4309    if(that.text() === 'mehr'){
4310        that.text('weniger');
4311    } else {
4312        that.text('mehr');
4313    }
4314});
4315
4316$('.lines-button').click(function(){
4317    $(this).toggleClass('active');
4318    return false;
4319});
4320
4321// Video Controlls
4322var video = document.getElementById("video-1");
4323var play = $("#videoPlay");
4324var pause = $("#videoPause");
4325var mute = $("#videoMute");
4326var unmute = $("#videoUnmute");
4327
4328play.on("click", function(){
4329    playVideo(true);
4330})
4331pause.on("click", function(){
4332    playVideo(false);
4333})
4334mute.on("click", function(){
4335    muteVideo(true);
4336})
4337unmute.on("click", function(){
4338    muteVideo(false);
4339})
4340
4341function playVideo(handler){
4342    if(handler){
4343        video.play();
4344        play.hide();
4345        pause.show();
4346    } else {
4347        video.pause();
4348        play.show();
4349        pause.hide();
4350    }
4351}
4352function muteVideo(handler){
4353    video.muted = handler;
4354    if(handler){
4355        unmute.show();
4356        mute.hide();
4357    } else {
4358        unmute.hide();
4359        mute.show();
4360    }
4361}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.