PageSourceSearch

https://www.guinand-uhren.de/assets/js/jquery.min.js,haste_plus.mi…ronment.min.js,files.min.js,...-abdfee1a.js

js guinand-uhren.de collected 2026-10-06 05:22:51 UTC 253,955 bytes, 2,239 lines download raw bytes

vendor: 22,881 bytes, lines 1-2
1/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
2!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(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e){return null==e?ae.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=ce.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return ce.each(this,e)},map:function(n){return this.pushStack(ce.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(ce.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||v(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(ce.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||ce.isPlainObject(n)?n:{},i=!1,a[t]=ce.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},ce.extend({expando:"jQuery"+(t+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]"!==i.call(e))&&(!(t=r(e))||"function"==typeof(n=ue.call(t,"constructor")&&t.constructor)&&o.call(n)===a)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){m(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(c(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n="",r=0,i=e.nodeType;if(!i)while(t=e[r++])n+=ce.text(t);return 1===i||11===i?e.textContent:9===i?e.documentElement.textContent:3===i||4===i?e.nodeValue:n},makeArray:function(e,t){var n=t||[];return null!=e&&(c(Object(e))?ce.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:se.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!l.test(t||n&&n.nodeName||"HTML")},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(c(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:le}),"function"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var pe=oe.pop,de=oe.sort,he=oe.splice,ge="[\\x20\\t\\r\\n\\f]",ve=new RegExp("^"+ge+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ge+"+$","g");ce.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var f=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function p(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}ce.escapeSelector=function(e){return(e+"").replace(f,p)};var ye=C,me=s;!function(){var e,b,w,o,a,T,r,C,d,i,k=me,S=ce.expando,E=0,n=0,s=W(),c=W(),u=W(),h=W(),l=function(e,t){return e===t&&(a=!0),0},f="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",t="(?:\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",p="\\["+ge+"*("+t+")(?:"+ge+"*([*^$|!~]?=)"+ge+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+t+"))|)"+ge+"*\\]",g=":("+t+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+p+")*)|.*)\\)|)",v=new RegExp(ge+"+","g"),y=new RegExp("^"+ge+"*,"+ge+"*"),m=new RegExp("^"+ge+"*([>+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(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&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="<a id='"+S+"' href='' disabled='disabled'></a><select id='"+S+"-\r\\' disabled='disabled'><option selected=''></option></select>",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0<I(t,T,null,[e]).length},I.contains=function(e,t){return(e.ownerDocument||e)!=T&&V(e),ce.contains(e,t)},I.attr=function(e,t){(e.ownerDocument||e)!=T&&V(e);var n=b.attrHandle[t.toLowerCase()],r=n&&ue.call(b.attrHandle,t.toLowerCase())?n(e,t,!C):void 0;return void 0!==r?r:e.getAttribute(t)},I.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},ce.uniqueSort=function(e){var t,n=[],r=0,i=0;if(a=!le.sortStable,o=!le.sortStable&&ae.call(e,0),de.call(e,l),a){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)he.call(e,n[r],1)}return o=null,e},ce.fn.uniqueSort=function(){return this.pushStack(ce.uniqueSort(ae.apply(this)))},(b=ce.expr={cacheLength:50,createPseudo:F,match:D,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(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===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]||I.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]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(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(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(v," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(d,e,t,h,g){var v="nth"!==d.slice(0,3),y="last"!==d.slice(-4),m="of-type"===e;return 1===h&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u=v!==y?"nextSibling":"previousSibling",l=e.parentNode,c=m&&e.nodeName.toLowerCase(),f=!n&&!m,p=!1;if(l){if(v){while(u){o=e;while(o=o[u])if(m?fe(o,c):1===o.nodeType)return!1;s=u="only"===d&&!s&&"nextSibling"}return!0}if(s=[y?l.firstChild:l.lastChild],y&&f){p=(a=(r=(i=l[S]||(l[S]={}))[d]||[])[0]===E&&r[1])&&r[2],o=a&&l.childNodes[a];while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if(1===o.nodeType&&++p&&o===e){i[d]=[E,a,p];break}}else if(f&&(p=a=(r=(i=e[S]||(e[S]={}))[d]||[])[0]===E&&r[1]),!1===p)while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if((m?fe(o,c):1===o.nodeType)&&++p&&(f&&((i=o[S]||(o[S]={}))[d]=[E,p]),o===e))break;return(p-=g)===h||p%h==0&&0<=p/h}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||I.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?F(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=se.call(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:F(function(e){var r=[],i=[],s=ne(e.replace(ve,"$1"));return s[S]?F(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:F(function(t){return function(e){return 0<I(t,e).length}}),contains:F(function(t){return t=t.replace(O,P),function(e){return-1<(e.textContent||ce.text(e)).indexOf(t)}}),lang:F(function(n){return A.test(n||"")||I.error("unsupported lang: "+n),n=n.replace(O,P).toLowerCase(),function(e){var t;do{if(t=C?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=ie.location&&ie.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===r},focus:function(e){return e===function(){try{return T.activeElement}catch(e){}}()&&T.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:z(!1),disabled:z(!0),checked:function(e){return fe(e,"input")&&!!e.checked||fe(e,"option")&&!!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 q.test(e.nodeName)},input:function(e){return N.test(e.nodeName)},button:function(e){return fe(e,"input")&&"button"===e.type||fe(e,"button")},text:function(e){var t;return fe(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:X(function(){return[0]}),last:X(function(e,t){return[t-1]}),eq:X(function(e,t,n){return[n<0?n+t:n]}),even:X(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:X(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:X(function(e,t,n){var r;for(r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:X(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=B(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=_(e);function G(){}function Y(e,t){var n,r,i,o,a,s,u,l=c[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=y.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=m.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(ve," ")}),a=a.slice(n.length)),b.filter)!(r=D[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?I.error(e):c(e,s).slice(0)}function Q(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function J(a,e,t){var s=e.dir,u=e.next,l=u||s,c=t&&"parentNode"===l,f=n++;return e.first?function(e,t,n){while(e=e[s])if(1===e.nodeType||c)return a(e,t,n);return!1}:function(e,t,n){var r,i,o=[E,f];if(n){while(e=e[s])if((1===e.nodeType||c)&&a(e,t,n))return!0}else while(e=e[s])if(1===e.nodeType||c)if(i=e[S]||(e[S]={}),u&&fe(e,u))e=e[s]||e;else{if((r=i[l])&&r[0]===E&&r[1]===f)return o[2]=r[2];if((i[l]=o)[2]=a(e,t,n))return!0}return!1}}function K(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Z(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function ee(d,h,g,v,y,e){return v&&!v[S]&&(v=ee(v)),y&&!y[S]&&(y=ee(y,e)),F(function(e,t,n,r){var i,o,a,s,u=[],l=[],c=t.length,f=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)I(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),p=!d||!e&&h?f:Z(f,u,d,n,r);if(g?g(p,s=y||(e?d:c||v)?[]:t,n,r):s=p,v){i=Z(s,l),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(s[l[o]]=!(p[l[o]]=a))}if(e){if(y||d){if(y){i=[],o=s.length;while(o--)(a=s[o])&&i.push(p[o]=a);y(null,s=[],i,r)}o=s.length;while(o--)(a=s[o])&&-1<(i=y?se.call(e,a):u[o])&&(e[i]=!(t[i]=a))}}else s=Z(s===t?s.splice(c,s.length):s),y?y(null,t,s,r):k.apply(t,s)})}function te(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=J(function(e){return e===i},a,!0),l=J(function(e){return-1<se.call(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!=w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[J(K(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return ee(1<s&&K(c),1<s&&Q(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ve,"$1"),t,s<n&&te(e.slice(s,n)),n<r&&te(e=e.slice(n)),n<r&&Q(e))}c.push(t)}return K(c)}function ne(e,t){var n,v,y,m,x,r,i=[],o=[],a=u[e+" "];if(!a){t||(t=Y(e)),n=t.length;while(n--)(a=te(t[n]))[S]?i.push(a):o.push(a);(a=u(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=E+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==T||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==T||(V(o),n=!C);while(s=v[a++])if(s(o,t||T,n)){k.call(r,o);break}i&&(E=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=pe.call(r));f=Z(f)}k.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&ce.uniqueSort(r)}return i&&(E=h,w=p),c},m?F(r):r))).selector=e}return a}function re(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&Y(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&C&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(O,P),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=D.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(O,P),H.test(o[0].type)&&U(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&Q(o)))return k.apply(n,r),n;break}}}return(l||ne(e,c))(r,t,!C,n,!t||H.test(e)&&U(t.parentNode)||t),n}G.prototype=b.filters=b.pseudos,b.setFilters=new G,le.sortStable=S.split("").sort(l).join("")===S,V(),le.sortDetached=$(function(e){return 1&e.compareDocumentPosition(T.createElement("fieldset"))}),ce.find=I,ce.expr[":"]=ce.expr.pseudos,ce.unique=ce.uniqueSort,I.compile=ne,I.select=re,I.setDocument=V,I.tokenize=Y,I.escape=ce.escapeSelector,I.getText=ce.text,I.isXML=ce.isXMLDoc,I.selectors=ce.expr,I.support=ce.support,I.uniqueSort=ce.uniqueSort}();var d=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&ce(e).is(n))break;r.push(e)}return r},h=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},b=ce.expr.match.needsContext,w=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1<se.call(n,e)!==r}):ce.filter(n,e,r)}ce.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ce.find.matchesSelector(r,e)?[r]:[]:ce.find.matches(e,ce.grep(t,function(e){return 1===e.nodeType}))},ce.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(ce(e).filter(function(){for(t=0;t<r;t++)if(ce.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)ce.find(e,i[t],n);return 1<r?ce.uniqueSort(n):n},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,"string"==typeof e&&b.test(e)?ce(e):e||[],!1).length}});var k,S=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}
vendor: 1,967 bytes, line 2
2return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(ce.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&ce(e);if(!b.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&ce.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?ce.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?se.call(ce(e),this[0]):se.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ce.uniqueSort(ce.merge(this.get(),ce(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ce.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return d(e,"parentNode")},parentsUntil:function(e,t,n){return d(e,"parentNode",n)},next:function(e){return A(e,"nextSibling")},prev:function(e){return A(e,"previousSibling")},nextAll:function(e){return d(e,"nextSibling")},prevAll:function(e){return d(e,"previousSibling")},nextUntil:function(e,t,n){return d(e,"nextSibling",n)},prevUntil:function(e,t,n){return d(e,"previousSibling",n)},siblings:function(e){return h((e.parentNode||{}).firstChild,e)},children:function(e){return h(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(fe(e,"template")&&(e=e.content||e),ce.merge([],e.childNodes))}},function(r,i){ce.fn[r]=function(e,t){var n=ce.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=ce.filter(t,n)),1<this.length&&(j[r]||
vendor: 9,546 bytes, line 2
2ce.uniqueSort(n),E.test(r)&&n.reverse()),this.pushStack(n)}});var D=/[^\x20\t\r\n\f]+/g;function N(e){return e}function q(e){throw e}function L(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}ce.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},ce.each(e.match(D)||[],function(e,t){n[t]=!0}),n):ce.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){ce.each(e,function(e,t){v(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==x(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return ce.each(arguments,function(e,t){var n;while(-1<(n=ce.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<ce.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},ce.extend({Deferred:function(e){var o=[["notify","progress",ce.Callbacks("memory"),ce.Callbacks("memory"),2],["resolve","done",ce.Callbacks("once memory"),ce.Callbacks("once memory"),0,"resolved"],["reject","fail",ce.Callbacks("once memory"),ce.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return ce.Deferred(function(r){ce.each(o,function(e,t){var n=v(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&v(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,v(t)?s?t.call(e,l(u,o,N,s),l(u,o,q,s)):(u++,t.call(e,l(u,o,N,s),l(u,o,q,s),l(u,o,N,o.notifyWith))):(a!==N&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){ce.Deferred.exceptionHook&&ce.Deferred.exceptionHook(e,t.error),u<=i+1&&(a!==q&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(ce.Deferred.getErrorHook?t.error=ce.Deferred.getErrorHook():ce.Deferred.getStackHook&&(t.error=ce.Deferred.getStackHook()),ie.setTimeout(t))}}return ce.Deferred(function(e){o[0][3].add(l(0,e,v(r)?r:N,e.notifyWith)),o[1][3].add(l(0,e,v(t)?t:N)),o[2][3].add(l(0,e,v(n)?n:q))}).promise()},promise:function(e){return null!=e?ce.extend(e,a):a}},s={};return ce.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=ae.call(arguments),o=ce.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?ae.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(L(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||v(i[t]&&i[t].then)))return o.then();while(t--)L(i[t],a(t),o.reject);return o.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ce.Deferred.exceptionHook=function(e,t){ie.console&&ie.console.warn&&e&&H.test(e.name)&&ie.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},ce.readyException=function(e){ie.setTimeout(function(){throw e})};var O=ce.Deferred();function P(){C.removeEventListener("DOMContentLoaded",P),ie.removeEventListener("load",P),ce.ready()}ce.fn.ready=function(e){return O.then(e)["catch"](function(e){ce.readyException(e)}),this},ce.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--ce.readyWait:ce.isReady)||(ce.isReady=!0)!==e&&0<--ce.readyWait||O.resolveWith(C,[ce])}}),ce.ready.then=O.then,"complete"===C.readyState||"loading"!==C.readyState&&!C.documentElement.doScroll?ie.setTimeout(ce.ready):(C.addEventListener("DOMContentLoaded",P),ie.addEventListener("load",P));var M=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n))for(s in i=!0,n)M(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(ce(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},R=/^-ms-/,I=/-([a-z])/g;function W(e,t){return t.toUpperCase()}function F(e){return e.replace(R,"ms-").replace(I,W)}var $=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function B(){this.expando=ce.expando+B.uid++}B.uid=1,B.prototype={cache:function(e){var t=e[this.expando];return t||(t={},$(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[F(t)]=n;else for(r in t)i[F(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][F(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(F):(t=F(t))in r?[t]:t.match(D)||[]).length;while(n--)delete r[t[n]]}(void 0===t||ce.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!ce.isEmptyObject(t)}};var _=new B,z=new B,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,U=/[A-Z]/g;function V(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(U,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:X.test(i)?JSON.parse(i):i)}catch(e){}z.set(e,t,n)}else n=void 0;return n}ce.extend({hasData:function(e){return z.hasData(e)||_.hasData(e)},data:function(e,t,n){return z.access(e,t,n)},removeData:function(e,t){z.remove(e,t)},_data:function(e,t,n){return _.access(e,t,n)},_removeData:function(e,t){_.remove(e,t)}}),ce.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=z.get(o),1===o.nodeType&&!_.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=F(r.slice(5)),V(o,r,i[r]));_.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){z.set(this,n)}):M(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=z.get(o,n))?t:void 0!==(t=V(o,n))?t:void 0;this.each(function(){z.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){z.remove(this,e)})}}),ce.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=_.get(e,t),n&&(!r||Array.isArray(n)?r=_.access(e,t,ce.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=ce.queue(e,t),r=n.length,i=n.shift(),o=ce._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){ce.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return _.get(e,n)||_.access(e,n,{empty:ce.Callbacks("once memory").add(function(){_.remove(e,[t+"queue",n])})})}}),ce.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?ce.queue(this[0],t):void 0===n?this:this.each(function(){var e=ce.queue(this,t,n);ce._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&ce.dequeue(this,t)})},dequeue:function(e){return this.each(function(){ce.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=ce.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=_.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var G=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Y=new RegExp("^(?:([+-])=|)("+G+")([a-z%]*)$","i"),Q=["Top","Right","Bottom","Left"],J=C.documentElement,K=function(e){return ce.contains(e.ownerDocument,e)},Z={composed:!0};J.getRootNode&&(K=function(e){return ce.contains(e.ownerDocument,e)||e.getRootNode(Z)===e.ownerDocument});var ee=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&K(e)&&"none"===ce.css(e,"display")};function te(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return ce.css(e,t,"")},u=s(),l=n&&n[3]||(ce.cssNumber[t]?"":"px"),c=e.nodeType&&(ce.cssNumber[t]||"px"!==l&&+u)&&Y.exec(ce.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)ce.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,ce.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ne={};function re(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=_.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ee(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ne[s])||
vendor: 8,814 bytes, line 2
2(o=a.body.appendChild(a.createElement(s)),u=ce.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ne[s]=u)))):"none"!==n&&(l[c]="none",_.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}ce.fn.extend({show:function(){return re(this,!0)},hide:function(){return re(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ee(this)?ce(this).show():ce(this).hide()})}});var xe,be,we=/^(?:checkbox|radio)$/i,Te=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="<textarea>x</textarea>",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="<option></option>",le.option=!!xe.lastChild;var ke={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 Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n<r;n++)_.set(e[n],"globalEval",!t||_.get(t[n],"globalEval"))}ke.tbody=ke.tfoot=ke.colgroup=ke.caption=ke.thead,ke.th=ke.td,le.option||(ke.optgroup=ke.option=[1,"<select multiple='multiple'>","</select>"]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))ce.merge(p,o.nodeType?[o]:o);else if(je.test(o)){a=a||f.appendChild(t.createElement("div")),s=(Te.exec(o)||["",""])[1].toLowerCase(),u=ke[s]||ke._default,a.innerHTML=u[1]+ce.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;ce.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<ce.inArray(o,r))i&&i.push(o);else if(l=K(o),a=Se(f.appendChild(o),"script"),l&&Ee(a),n){c=0;while(o=a[c++])Ce.test(o.type||"")&&n.push(o)}return f}var De=/^([^.]*)(?:\.(.+)|)/;function Ne(){return!0}function qe(){return!1}function Le(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Le(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=qe;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return ce().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=ce.guid++)),e.each(function(){ce.event.add(this,t,i,r,n)})}function He(e,r,t){t?(_.set(e,r,!1),ce.event.add(e,r,{namespace:!1,handler:function(e){var t,n=_.get(this,r);if(1&e.isTrigger&&this[r]){if(n)(ce.event.special[r]||{}).delegateType&&e.stopPropagation();else if(n=ae.call(arguments),_.set(this,r,n),this[r](),t=_.get(this,r),_.set(this,r,!1),n!==t)return e.stopImmediatePropagation(),e.preventDefault(),t}else n&&(_.set(this,r,ce.event.trigger(n[0],n.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===_.get(e,r)&&ce.event.add(e,r,Ne)}ce.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.get(t);if($(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&ce.find.matchesSelector(J,i),n.guid||(n.guid=ce.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof ce&&ce.event.triggered!==e.type?ce.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(D)||[""]).length;while(l--)d=g=(s=De.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=ce.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=ce.event.special[d]||{},c=ce.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ce.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),ce.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.hasData(e)&&_.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(D)||[""]).length;while(l--)if(d=g=(s=De.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=ce.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||ce.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)ce.event.remove(e,d+t[l],n,r,!0);ce.isEmptyObject(u)&&_.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=ce.event.fix(e),l=(_.get(this,"events")||Object.create(null))[u.type]||[],c=ce.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=ce.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((ce.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<ce(i,this).index(l):ce.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(ce.Event.prototype,t,{enumerable:!0,configurable:!0,get:v(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[ce.expando]?e:new ce.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click",!0),!1},trigger:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click"),!0},_default:function(e){var t=e.target;return we.test(t.type)&&t.click&&fe(t,"input")&&_.get(t,"click")||fe(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},ce.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},ce.Event=function(e,t){if(!(this instanceof ce.Event))return new ce.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ne:qe,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&&ce.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[ce.expando]=!0},ce.Event.prototype={constructor:ce.Event,isDefaultPrevented:qe,isPropagationStopped:qe,isImmediatePropagationStopped:qe,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ne,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ne,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ne,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},ce.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},ce.event.addProp),ce.each({focus:"focusin",blur:"focusout"},function(r,i){function o(e){if(C.documentMode){var t=_.get(this,"handle"),n=ce.event.fix(e);
vendor: 14,182 bytes, line 2
2n.type="focusin"===e.type?"focus":"blur",n.isSimulated=!0,t(e),n.target===n.currentTarget&&t(n)}else ce.event.simulate(i,e.target,ce.event.fix(e))}ce.event.special[r]={setup:function(){var e;if(He(this,r,!0),!C.documentMode)return!1;(e=_.get(this,i))||this.addEventListener(i,o),_.set(this,i,(e||0)+1)},trigger:function(){return He(this,r),!0},teardown:function(){var e;if(!C.documentMode)return!1;(e=_.get(this,i)-1)?_.set(this,i,e):(this.removeEventListener(i,o),_.remove(this,i))},_default:function(e){return _.get(e.target,r)},delegateType:i},ce.event.special[i]={setup:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i);n||(C.documentMode?this.addEventListener(i,o):e.addEventListener(r,o,!0)),_.set(t,i,(n||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i)-1;n?_.set(t,i,n):(C.documentMode?this.removeEventListener(i,o):e.removeEventListener(r,o,!0),_.remove(t,i))}}}),ce.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){ce.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||ce.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),ce.fn.extend({on:function(e,t,n,r){return Le(this,e,t,n,r)},one:function(e,t,n,r){return Le(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ce(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=qe),this.each(function(){ce.event.remove(this,e,n,t)})}});var Oe=/<script|<style|<link/i,Pe=/checked\s*(?:[^=]|=\s*.checked.)/i,Me=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)ce.event.add(t,i,s[i][n]);z.hasData(e)&&(o=z.access(e),a=ce.extend({},o),z.set(t,a))}}function $e(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=v(d);if(h||1<f&&"string"==typeof d&&!le.checkClone&&Pe.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),$e(t,r,i,o)});if(f&&(t=(e=Ae(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=ce.map(Se(e,"script"),Ie)).length;c<f;c++)u=e,c!==p&&(u=ce.clone(u,!0,!0),s&&ce.merge(a,Se(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,ce.map(a,We),c=0;c<s;c++)u=a[c],Ce.test(u.type||"")&&!_.access(u,"globalEval")&&ce.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?ce._evalUrl&&!u.noModule&&ce._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):m(u.textContent.replace(Me,""),u,l))}return n}function Be(e,t,n){for(var r,i=t?ce.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||ce.cleanData(Se(r)),r.parentNode&&(n&&K(r)&&Ee(Se(r,"script")),r.parentNode.removeChild(r));return e}ce.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=K(e);if(!(le.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ce.isXMLDoc(e)))for(a=Se(c),r=0,i=(o=Se(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&we.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||Se(e),a=a||Se(c),r=0,i=o.length;r<i;r++)Fe(o[r],a[r]);else Fe(e,c);return 0<(a=Se(c,"script")).length&&Ee(a,!f&&Se(e,"script")),c},cleanData:function(e){for(var t,n,r,i=ce.event.special,o=0;void 0!==(n=e[o]);o++)if($(n)){if(t=n[_.expando]){if(t.events)for(r in t.events)i[r]?ce.event.remove(n,r):ce.removeEvent(n,r,t.handle);n[_.expando]=void 0}n[z.expando]&&(n[z.expando]=void 0)}}}),ce.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return M(this,function(e){return void 0===e?ce.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 $e(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Re(this,e).appendChild(e)})},prepend:function(){return $e(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Re(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return $e(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&&(ce.cleanData(Se(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ce.clone(this,e,t)})},html:function(e){return M(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Oe.test(e)&&!ke[(Te.exec(e)||["",""])[1].toLowerCase()]){e=ce.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(ce.cleanData(Se(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return $e(this,arguments,function(e){var t=this.parentNode;ce.inArray(this,n)<0&&(ce.cleanData(Se(this)),t&&t.replaceChild(e,this))},n)}}),ce.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){ce.fn[e]=function(e){for(var t,n=[],r=ce(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),ce(r[o])[a](t),s.apply(n,t.get());return this.pushStack(n)}});var _e=new RegExp("^("+G+")(?!px)[a-z%]+$","i"),ze=/^--/,Xe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=ie),t.getComputedStyle(e)},Ue=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ve=new RegExp(Q.join("|"),"i");function Ge(e,t,n){var r,i,o,a,s=ze.test(t),u=e.style;return(n=n||Xe(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace(ve,"$1")||void 0),""!==a||K(e)||(a=ce.style(e,t)),!le.pixelBoxStyles()&&_e.test(a)&&Ve.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function Ye(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",J.appendChild(u).appendChild(l);var e=ie.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),J.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=C.createElement("div"),l=C.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",le.clearCloneStyle="content-box"===l.style.backgroundClip,ce.extend(le,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=C.createElement("table"),t=C.createElement("tr"),n=C.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="box-sizing:content-box;border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",J.appendChild(e).appendChild(t).appendChild(n),r=ie.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,J.removeChild(e)),a}}))}();var Qe=["Webkit","Moz","ms"],Je=C.createElement("div").style,Ke={};function Ze(e){var t=ce.cssProps[e]||Ke[e];return t||(e in Je?e:Ke[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Qe.length;while(n--)if((e=Qe[n]+t)in Je)return e}(e)||e)}var et=/^(none|table(?!-c[ea]).+)/,tt={position:"absolute",visibility:"hidden",display:"block"},nt={letterSpacing:"0",fontWeight:"400"};function rt(e,t,n){var r=Y.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function it(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0,l=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(l+=ce.css(e,n+Q[a],!0,i)),r?("content"===n&&(u-=ce.css(e,"padding"+Q[a],!0,i)),"margin"!==n&&(u-=ce.css(e,"border"+Q[a]+"Width",!0,i))):(u+=ce.css(e,"padding"+Q[a],!0,i),"padding"!==n?u+=ce.css(e,"border"+Q[a]+"Width",!0,i):s+=ce.css(e,"border"+Q[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u+l}function ot(e,t,n){var r=Xe(e),i=(!le.boxSizingReliable()||n)&&"border-box"===ce.css(e,"boxSizing",!1,r),o=i,a=Ge(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(_e.test(a)){if(!n)return a;a="auto"}return(!le.boxSizingReliable()&&i||!le.reliableTrDimensions()&&fe(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===ce.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===ce.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+it(e,t,n||(i?"border":"content"),o,r,a)+"px"}function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}ce.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ge(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=F(t),u=ze.test(t),l=e.style;if(u||(t=Ze(s)),a=ce.cssHooks[t]||ce.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=Y.exec(n))&&i[1]&&(n=te(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(ce.cssNumber[s]?"":"px")),le.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=F(t);return ze.test(t)||(t=Ze(s)),(a=ce.cssHooks[t]||ce.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ge(e,t,r)),"normal"===i&&t in nt&&(i=nt[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),ce.each(["height","width"],function(e,u){ce.cssHooks[u]={get:function(e,t,n){if(t)return!et.test(ce.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ot(e,u,n):Ue(e,tt,function(){return ot(e,u,n)})},set:function(e,t,n){var r,i=Xe(e),o=!le.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===ce.css(e,"boxSizing",!1,i),s=n?it(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-it(e,u,"border",!1,i)-.5)),s&&(r=Y.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=ce.css(e,u)),rt(0,t,s)}}}),ce.cssHooks.marginLeft=Ye(le.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Ge(e,"marginLeft"))||e.getBoundingClientRect().left-Ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),ce.each({margin:"",padding:"",border:"Width"},function(i,o){ce.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+Q[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(ce.cssHooks[i+o].set=rt)}),ce.fn.extend({css:function(e,t){return M(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Xe(e),i=t.length;a<i;a++)o[t[a]]=ce.css(e,t[a],!1,r);return o}return void 0!==n?ce.style(e,t,n):ce.css(e,t)},e,t,1<arguments.length)}}),((ce.Tween=at).prototype={constructor:at,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||ce.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ce.cssNumber[n]?"":"px")},cur:function(){var e=at.propHooks[this.prop];return e&&e.get?e.get(this):at.propHooks._default.get(this)},run:function(e){var t,n=at.propHooks[this.prop];return this.options.duration?this.pos=t=ce.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):at.propHooks._default.set(this),this}}).init.prototype=at.prototype,(at.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=ce.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){ce.fx.step[e.prop]?ce.fx.step[e.prop](e):1!==e.elem.nodeType||!ce.cssHooks[e.prop]&&null==e.elem.style[Ze(e.prop)]?e.elem[e.prop]=e.now:ce.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=at.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ce.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},ce.fx=at.prototype.init,ce.fx.step={};var st,ut,lt,ct,ft=/^(?:toggle|show|hide)$/,pt=/queueHooks$/;function dt(){ut&&(!1===C.hidden&&ie.requestAnimationFrame?ie.requestAnimationFrame(dt):ie.setTimeout(dt,ce.fx.interval),ce.fx.tick())}function ht(){return ie.setTimeout(function(){st=void 0}),st=Date.now()}function gt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=Q[r])]=i["padding"+n]=e;
vendor: 4,590 bytes, line 2
2return t&&(i.opacity=i.width=e),i}function vt(e,t,n){for(var r,i=(yt.tweeners[t]||[]).concat(yt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function yt(o,e,t){var n,a,r=0,i=yt.prefilters.length,s=ce.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=st||ht(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:ce.extend({},e),opts:ce.extend(!0,{specialEasing:{},easing:ce.easing._default},t),originalProperties:e,originalOptions:t,startTime:st||ht(),duration:t.duration,tweens:[],createTween:function(e,t){var n=ce.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=F(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=ce.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=yt.prefilters[r].call(l,o,c,l.opts))return v(n.stop)&&(ce._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return ce.map(c,vt,l),v(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),ce.fx.timer(ce.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}ce.Animation=ce.extend(yt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return te(n.elem,e,Y.exec(t),n),n}]},tweener:function(e,t){v(e)?(t=e,e=["*"]):e=e.match(D);for(var n,r=0,i=e.length;r<i;r++)n=e[r],yt.tweeners[n]=yt.tweeners[n]||[],yt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ee(e),v=_.get(e,"fxshow");for(r in n.queue||(null==(a=ce._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,ce.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ft.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||ce.style(e,r)}if((u=!ce.isEmptyObject(t))||!ce.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=_.get(e,"display")),"none"===(c=ce.css(e,"display"))&&(l?c=l:(re([e],!0),l=e.style.display||l,c=ce.css(e,"display"),re([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===ce.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=_.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&re([e],!0),p.done(function(){for(r in g||re([e]),_.remove(e,"fxshow"),d)ce.style(e,r,d[r])})),u=vt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?yt.prefilters.unshift(e):yt.prefilters.push(e)}}),ce.speed=function(e,t,n){var r=e&&"object"==typeof e?ce.extend({},e):{complete:n||!n&&t||v(e)&&e,duration:e,easing:n&&t||t&&!v(t)&&t};return ce.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in ce.fx.speeds?r.duration=ce.fx.speeds[r.duration]:r.duration=ce.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){v(r.old)&&r.old.call(this),r.queue&&ce.dequeue(this,r.queue)},r},ce.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ee).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=ce.isEmptyObject(t),o=ce.speed(e,n,r),a=function(){var e=yt(this,ce.extend({},t),o);(i||_.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=ce.timers,r=_.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&pt.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1)
vendor: 13,972 bytes, line 2
2);!e&&o||ce.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=_.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=ce.timers,o=n?n.length:0;for(t.finish=!0,ce.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),ce.each(["toggle","show","hide"],function(e,r){var i=ce.fn[r];ce.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(gt(r,!0),e,t,n)}}),ce.each({slideDown:gt("show"),slideUp:gt("hide"),slideToggle:gt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){ce.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),ce.timers=[],ce.fx.tick=function(){var e,t=0,n=ce.timers;for(st=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||ce.fx.stop(),st=void 0},ce.fx.timer=function(e){ce.timers.push(e),ce.fx.start()},ce.fx.interval=13,ce.fx.start=function(){ut||(ut=!0,dt())},ce.fx.stop=function(){ut=null},ce.fx.speeds={slow:600,fast:200,_default:400},ce.fn.delay=function(r,e){return r=ce.fx&&ce.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=ie.setTimeout(e,r);t.stop=function(){ie.clearTimeout(n)}})},lt=C.createElement("input"),ct=C.createElement("select").appendChild(C.createElement("option")),lt.type="checkbox",le.checkOn=""!==lt.value,le.optSelected=ct.selected,(lt=C.createElement("input")).value="t",lt.type="radio",le.radioValue="t"===lt.value;var mt,xt=ce.expr.attrHandle;ce.fn.extend({attr:function(e,t){return M(this,ce.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){ce.removeAttr(this,e)})}}),ce.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?ce.prop(e,t,n):(1===o&&ce.isXMLDoc(e)||(i=ce.attrHooks[t.toLowerCase()]||(ce.expr.match.bool.test(t)?mt:void 0)),void 0!==n?null===n?void ce.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=ce.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!le.radioValue&&"radio"===t&&fe(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(D);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),mt={set:function(e,t,n){return!1===t?ce.removeAttr(e,n):e.setAttribute(n,n),n}},ce.each(ce.expr.match.bool.source.match(/\w+/g),function(e,t){var a=xt[t]||ce.find.attr;xt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=xt[o],xt[o]=r,r=null!=a(e,t,n)?o:null,xt[o]=i),r}});var bt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;function Tt(e){return(e.match(D)||[]).join(" ")}function Ct(e){return e.getAttribute&&e.getAttribute("class")||""}function kt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(D)||[]}ce.fn.extend({prop:function(e,t){return M(this,ce.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[ce.propFix[e]||e]})}}),ce.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ce.isXMLDoc(e)||(t=ce.propFix[t]||t,i=ce.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ce.find.attr(e,"tabindex");return t?parseInt(t,10):bt.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),le.optSelected||(ce.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)}}),ce.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ce.propFix[this.toLowerCase()]=this}),ce.fn.extend({addClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).addClass(t.call(this,e,Ct(this)))}):(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).removeClass(t.call(this,e,Ct(this)))}):arguments.length?(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return v(t)?this.each(function(e){ce(this).toggleClass(t.call(this,e,Ct(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=kt(t),this.each(function(){if(s)for(o=ce(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=Ct(this))&&_.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":_.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+Tt(Ct(n))+" ").indexOf(t))return!0;return!1}});var St=/\r/g;ce.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=v(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,ce(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=ce.map(t,function(e){return null==e?"":e+""})),(r=ce.valHooks[this.type]||ce.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=ce.valHooks[t.type]||ce.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(St,""):null==e?"":e:void 0}}),ce.extend({valHooks:{option:{get:function(e){var t=ce.find.attr(e,"value");return null!=t?t:Tt(ce.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!fe(n.parentNode,"optgroup"))){if(t=ce(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=ce.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<ce.inArray(ce.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),ce.each(["radio","checkbox"],function(){ce.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<ce.inArray(ce(e).val(),t)}},le.checkOn||(ce.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Et=ie.location,jt={guid:Date.now()},At=/\?/;ce.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new ie.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||ce.error("Invalid XML: "+(n?ce.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Dt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e){e.stopPropagation()};ce.extend(ce.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||C],d=ue.call(e,"type")?e.type:e,h=ue.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||C,3!==n.nodeType&&8!==n.nodeType&&!Dt.test(d+ce.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[ce.expando]?e:new ce.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:ce.makeArray(t,[e]),c=ce.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!y(n)){for(s=c.delegateType||d,Dt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||C)&&p.push(a.defaultView||a.parentWindow||ie)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(_.get(o,"events")||Object.create(null))[e.type]&&_.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&$(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!$(n)||u&&v(n[d])&&!y(n)&&((a=n[u])&&(n[u]=null),ce.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Nt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Nt),ce.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=ce.extend(new ce.Event,n,{type:e,isSimulated:!0});ce.event.trigger(r,null,t)}}),ce.fn.extend({trigger:function(e,t){return this.each(function(){ce.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return ce.event.trigger(e,t,n,!0)}});var qt=/\[\]$/,Lt=/\r?\n/g,Ht=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function Pt(n,e,r,i){var t;if(Array.isArray(e))ce.each(e,function(e,t){r||qt.test(n)?i(n,t):Pt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==x(e))i(n,e);else for(t in e)Pt(n+"["+t+"]",e[t],r,i)}ce.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!ce.isPlainObject(e))ce.each(e,function(){i(this.name,this.value)});else for(n in e)Pt(n,e[n],t,i);return r.join("&")},ce.fn.extend({serialize:function(){return ce.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ce.prop(this,"elements");return e?ce.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ce(this).is(":disabled")&&Ot.test(this.nodeName)&&!Ht.test(e)&&(this.checked||!we.test(e))}).map(function(e,t){var n=ce(this).val();return null==n?null:Array.isArray(n)?ce.map(n,function(e){return{name:t.name,value:e.replace(Lt,"\r\n")}}):{name:t.name,value:n.replace(Lt,"\r\n")}}).get()}});var Mt=/%20/g,Rt=/#.*$/,It=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ft=/^(?:GET|HEAD)$/,$t=/^\/\//,Bt={},_t={},zt="*/".concat("*"),Xt=C.createElement("a");function Ut(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(D)||[];if(v(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Vt(t,i,o,a){var s={},u=t===_t;function l(e){var r;return s[e]=!0,ce.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Gt(e,t){var n,r,i=ce.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&ce.extend(!0,e,r),e}Xt.href=Et.href,ce.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":zt,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":ce.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Gt(Gt(e,ce.ajaxSettings),t):Gt(ce.ajaxSettings,e)},ajaxPrefilter:Ut(Bt),ajaxTransport:Ut(_t),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=ce.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?ce(y):ce.event,x=ce.Deferred(),b=ce.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Wt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace($t,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(D)||[""],null==v.crossDomain){r=C.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Xt.protocol+"//"+Xt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=ce.param(v.data,v.traditional)),Vt(Bt,v,t,T),h)return T;for(i in(g=ce.event&&v.global)&&0==ce.active++&&ce.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ft.test(v.type),f=v.url.replace(Rt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Mt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(At.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(It,"$1"),o=(At.test(f)?"&":"?")+"_="+jt.guid+++o),v.url=f+o),v.ifModified&&(ce.lastModified[f]&&T.setRequestHeader("If-Modified-Since",ce.lastModified[f]),ce.etag[f]&&T.setRequestHeader("If-None-Match",ce.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+zt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);
vendor: 9,033 bytes, line 2
2if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Vt(_t,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=ie.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&ie.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<ce.inArray("script",v.dataTypes)&&ce.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(ce.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(ce.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--ce.active||ce.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return ce.get(e,t,n,"json")},getScript:function(e,t){return ce.get(e,void 0,t,"script")}}),ce.each(["get","post"],function(e,i){ce[i]=function(e,t,n,r){return v(t)&&(r=r||n,n=t,t=void 0),ce.ajax(ce.extend({url:e,type:i,dataType:r,data:t,success:n},ce.isPlainObject(e)&&e))}}),ce.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),ce._evalUrl=function(e,t,n){return ce.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){ce.globalEval(e,t,n)}})},ce.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=ce(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return v(n)?this.each(function(e){ce(this).wrapInner(n.call(this,e))}):this.each(function(){var e=ce(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=v(t);return this.each(function(e){ce(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){ce(this).replaceWith(this.childNodes)}),this}}),ce.expr.pseudos.hidden=function(e){return!ce.expr.pseudos.visible(e)},ce.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},ce.ajaxSettings.xhr=function(){try{return new ie.XMLHttpRequest}catch(e){}};var Yt={0:200,1223:204},Qt=ce.ajaxSettings.xhr();le.cors=!!Qt&&"withCredentials"in Qt,le.ajax=Qt=!!Qt,ce.ajaxTransport(function(i){var o,a;if(le.cors||Qt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Yt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&ie.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),ce.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),ce.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 ce.globalEval(e),e}}}),ce.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ce.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=ce("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=Tt(e.slice(s)),e=e.slice(0,s)),v(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&ce.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?ce("<div>").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return 
2M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.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){ce.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var en=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;ce.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),v(e))return r=ae.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(ae.call(arguments)))}).guid=e.guid=e.guid||ce.guid++,i},ce.holdReady=function(e){e?ce.readyWait++:ce.ready(!0)},ce.isArray=Array.isArray,ce.parseJSON=JSON.parse,ce.nodeName=fe,ce.isFunction=v,ce.isWindow=y,ce.camelCase=F,ce.type=x,ce.now=Date.now,ce.isNumeric=function(e){var t=ce.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},ce.trim=function(e){return null==e?"":(e+"").replace(en,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return ce});var tn=ie.jQuery,nn=ie.$;return ce.noConflict=function(e){return ie.$===ce&&(ie.$=nn),e&&ie.jQuery===ce&&(ie.jQuery=tn),ce},"undefined"==typeof e&&(ie.jQuery=ie.$=ce),ce});
3
4(function(a){HASTE_PLUS={}}(jQuery));
5(function(a){a.extend(HASTE_PLUS,{getParameterByName:function(c,b){if(!b){b=window.location.href}c=c.replace(/[\[\]]/g,"\\$&");var e=new RegExp("[?&]"+c+"(=([^&#]*)|&|#|$)"),d=e.exec(b);if(!d){return null}if(!d[2]){return""}return decodeURIComponent(d[2].replace(/\+/g," "))},addParameterToUri:function(d,b,e){if(!d){d=window.location.href}var c=new RegExp("([?&])"+b+"=.*?(&|#|$)(.*)","gi"),g;if(c.test(d)){if(typeof e!=="undefined"&&e!==null){return d.replace(c,"$1"+b+"="+e+"$2$3")}else{g=d.split("#");d=g[0].replace(c,"$1$3").replace(/(&|\?)$/,"");if(typeof g[1]!=="undefined"&&g[1]!==null){d+="#"+g[1]}return d}}else{if(typeof e!=="undefined"&&e!==null){var f=d.indexOf("?")!==-1?"&":"?";g=d.split("#");d=g[0]+f+b+"="+e;if(typeof g[1]!=="undefined"&&g[1]!==null){d+="#"+g[1]}return d}else{return d}}},addParametersToUri:function(d,c){for(var b in c){if(c.hasOwnProperty(b)){d=this.addParameterToUri(d,b,c[b])}}return d},removeParameterFromUri:function(d,g){var f=d.split("?");if(f.length>=2){var e=encodeURIComponent(g)+"=";var c=f[1].split(/[&;]/g);for(var b=c.length;b-->0;){if(c[b].lastIndexOf(e,0)!==-1){c.splice(b,1)}}d=f[0]+"?"+c.join("&");return d}else{return d}},removeParametersFromUri:function(d,c){for(var b in c){d=this.removeParameterFromUri(d,b)}return d},replaceParameterInUri:function(c,b,d){this.addParameterToUri(this.removeParameterFromUri(c,b),b,d)},parseQueryString:function(b){return JSON.parse('{"'+decodeURI(b).replace(/"/g,'\\"').replace(/&/g,'","').replace(/=/g,'":"')+'"}')}})}(jQuery));
6(function(a){a.extend(HASTE_PLUS,{sanitizeFileName:function(b){b=b.toLowerCase();b=b.replace(/[^a-z0-9_-]/g,"_");b=b.replace(/_+/g,"_");return b}})}(jQuery));
7(function(a){a.extend(HASTE_PLUS,{removeFromArray:function(b,c){return a.grep(c,function(d){return d!=b})}})}(jQuery));
8(function(a){a.extend(HASTE_PLUS,{getTextWithoutChildren:function(c,d){var b=c.clone().children().remove().end().text();if(typeof d!=="undefined"&&d==true){return b}else{return b.trim()}},scrollTo:function(d,c,b,e){setTimeout(function(){if(!HASTE_PLUS.elementInViewport(d)||typeof e!=="undefined"){a("html, body").animate({scrollTop:(d.offset().top-c)},"slow")}},b)},elementInViewport:function(d){d=d.get(0);var f=d.offsetTop;var e=d.offsetLeft;var c=d.offsetWidth;var b=d.offsetHeight;while(d.offsetParent){d=d.offsetParent;f+=d.offsetTop;e+=d.offsetLeft}return(f<(window.pageYOffset+window.innerHeight)&&e<(window.pageXOffset+window.innerWidth)&&(f+b)>window.pageYOffset&&(e+c)>window.pageXOffset)}})}(jQuery));
9(function(a){a.extend(HASTE_PLUS,{getCurrentLocation:function(c,b){if(navigator.geolocation){navigator.geolocation.getCurrentPosition(function(d){HASTE_PLUS.call(c,d.coords.latitude,d.coords.longitude)})}else{HASTE_PLUS.call(b)}}})}(jQuery));
10(function(a){a.extend(HASTE_PLUS,{isTruthy:function(b){return typeof b!=="undefined"&&b!==null},call:function(b){if(typeof b==="function"){b.apply(this,Array.prototype.slice.call(arguments,1
10))}}})}(jQuery));
11(function(){var aa="\n//# sourceURL=",ba='<script type="text/javascript" src="',b="American Samoa",ca="Antigua and Barbuda",k="Bolivia",p="Bosna i Hercegovina",q="Botswana",da="British Virgin Islands",ea="Cayman Islands",fa="Christmas Island",ga="Falkland Islands",r="Ghana",ha="Guin\u00e9e \u00e9quatoriale",ia="Guyane fran\u00e7aise",t="Honduras",u="Indonesia",v="Itoophiyaa",ja="Kalaallit Nunaat",w="Kiribati",ka="LocaleNameConstants",la="Luxembourg",ma="Madagascar",na="Marshall Islands",x="Micronesia",oa="Moldova, Republica",
12pa="Nederlandse Antillen",qa="New Zealand",y="Nigeria",ra="Norfolk Island",sa="Northern Mariana Islands",ta="Nouvelle-Cal\u00e9donie",z="Papua New Guinea",ua="Paraguay",va="Philippines",wa="Polyn\u00e9sie fran\u00e7aise",xa="Puerto Rico",za="Rep\u00fablica Dominicana",A="Rwanda",Aa="Rywvaneth Unys",Ba="R\u00e9publique centrafricaine",Ca="R\u00e9publique d\u00e9mocratique du Congo",Da="Saint Kitts and Nevis",Ea="Saint Vincent and the Grenadines",Fa="Saint-Pierre-et-Miquelon",Ga="Serb
12ia and Montenegro",
13Ha="Seychelles",Ia="Slovensk\u00e1 republika",Ja="Solomon Islands",B="South Africa",Ka="Svalbard og Jan Mayen",La="Swaziland",Ma="S\u00e3o Tom\u00e9 e Pr\u00edncipe",C="S\u00e9n\u00e9gal",Na="Tanzania",Oa="Timor Leste",E="Tokelau",Pa="Turks and Caicos Islands",F="Tuvalu",G="T\u00fcrkiye",Qa="U.S. Virgin Islands",Ra="United Kingdom",Sa="United States",Ta="United States Minor Outlying Islands",Ua="Unknown or Invalid Region",H="Vanuatu",Va="Wallis-et-Futuna",Wa="annotatedtimeline",I="array",J="browserchart",
14K="complete",L="corechart",M="dygraph",N="function",Xa="google.charts.load",O="imagechart",P="object",Ya="text/javascript",Q="ui",R="ui_base",S="webfontloader",Za="{css_prefix}/{cssFile}",$a="{prefix}",ab="{prefix}/{version}/third_party/{package}",bb="{version}",cb="\u010cesk\u00e1 republika",db="\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u044c",eb="\u041a\u044b\u0440\u0433\u044b\u0437\u0441\u0442\u0430\u043d",fb="\u043c\u043e\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0438\u0439",gb="\u0540\u0561\u0575\u0561\u057d\u057f\u0561\u0576\u056b \u0540\u0561\u0576\u0580\u0561\u057a\u0565\u057f\u0578\u0582\u0569\u056b\u0582\u0576",
15U="\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646",hb="\u0627\u0644\u0627\u0645\u0627\u0631\u0627\u062a \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629",ib="\u0627\u0644\u0635\u062d\u0631\u0627\u0621 \u0627\u0644\u063a\u0631\u0628\u064a\u0629",jb="\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629",kb="\u0627\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629",
16lb="\u062c\u0632\u0631 \u0627\u0644\u0642\u0645\u0631",V="\u067e\u0627\u06a9\u0633\u062a\u0627\u0646",W="\u092d\u093e\u0930\u0924",X="\u12a2\u1275\u12ee\u1335\u12eb",mb="\uc870\uc120 \ubbfc\uc8fc\uc8fc\uc758 \uc778\ubbfc \uacf5\ud654\uad6d";function Y(){return function(){}}var Z=Z||{};Z.global=this;Z.O=function(a){return void 0!==a};
17Z.ya=function(a,c,d){a=a.split(".");d=d||Z.global;a[0]in d||!d.execScript||d.execScript("var "+a[0]);for(var e;a.length&&(e=a.shift());)!a.length&&Z.O(c)?d[e]=c:d=d[e]?d[e]:d[e]={}};Z.Ge=function(a,c){Z.ya(a,c)};Z.G=!0;Z.Md="en";Z.qa=!0;Z.gc=!1;Z.Qb=!Z.G;Z.Za=!1;Z.Of=function(a){if(Z.La())throw Error("goog.provide can not be used within a goog.module.");Z.hb(a)};Z.hb=function(a,c){Z.ya(a,c)};Z.qc=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
18Z.Pa=function(a){if(!Z.h(a)||!a||-1==a.search(Z.qc))throw Error("Invalid module identifier");if(!Z.La())throw Error("Module "+a+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");
19if(Z.l.Qa)throw Error("goog.module may only be called once per module.");Z.l.Qa=a};Z.Pa.get=function(){return null};Z.Pa.Qe=function(){return null};Z.l=null;Z.La=function(){return null!=Z.l};Z.Pa.va=function(){Z.l.va=!0};Z.jg=function(a){if(Z.Qb)throw a=a||"",Error("Importing test-only code into non-debug environment"+(a?": "+a:"."));};Z.Me=Y();Z.N=function(a){a=a.split(".");for(var c=Z.global,d;d=a.shift();)if(Z.Pc(c[d]))c=c[d];else return null;return c};
20Z.bf=function(a,c){c=c||Z.global;for(var d in a)c[d]=a[d]};Z.Sd=function(a,c,d,e){if(Z.Xa){var f;a=a.replace(/\\/g,"/");var g=Z.j;e&&"boolean"!==typeof e||(e=e?{module:"goog"}:{});for(var h=0;f=c[h];h++)g.T[f]=a,g.Ma[a]=e;for(e=0;c=d[e];e++)a in g.F||(g.F[a]={}),g.F[a][c]=!0}};Z.Ig=!1;Z.Jd=!0;Z.bd=function(a){Z.global.console&&Z.global.console.error(a)};Z.dg=Y();Z.B="";Z.Jf=Y();Z.Rd=function(){throw Error("unimplemented abstract method");};
21Z.Td=function(a){a.Ia=void 0;a.Pe=function(){if(a.Ia)return a.Ia;Z.G&&(Z.vb[Z.vb.length]=a);return a.Ia=new a}};Z.vb=[];Z.Xb=!0;Z.ec=Z.G;Z.ad={};Z.Xa=!1;Z.bb="detect";Z.mc="transpile.js";
22Z.Xa&&(Z.j={Ma:{},T:{},F:{},Ib:{},Wa:{},X:{}},Z.tb=function(){var a=Z.global.document;return null!=a&&"write"in a},Z.Gc=function(){if(Z.O(Z.global.Mb))Z.B=Z.global.Mb;else if(Z.tb())for(var a=Z.global.document.getElementsByTagName("SCRIPT"),c=a.length-1;0<=c;--c){var d=a[c].src,e=d.lastIndexOf("?"),e=-1==e?d.length:e;if("base.js"==d.substr(e-7,7)){Z.B=d.substr(0,e-7);break}}},Z.Ga=function(a,c){(Z.global.Dd||Z.Ad)(a,c)&&(Z.j.Wa[a]=!0)},Z.Wb=!(Z.global.atob||!Z.global.document||!Z.global.document.all),
23Z.Nc=function(a,c,d){Z.Ga("",'goog.retrieveAndExec_("'+a+'", '+c+", "+d+");")},Z.Sa=[],Z.Kg=function(a,c){return Z.Xb&&Z.O(Z.global.JSON)?"goog.loadModule("+Z.global.JSON.stringify(c+aa+a+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+c+"\n;return exports});\n//# sourceURL="+a+"\n"},Z.$c=function(){var a=Z.Sa.length;if(0<a){var c=Z.Sa;Z.Sa=[];for(var d=0;d<a;d++)Z.Ab(c[d])}},Z.Df=function(a){Z.wb(a)&&Z.rc(a)&&Z.Ab(Z.B+Z.Fa(a))},Z.wb=function(a){var c=(a=Z.Fa(a))&&Z.j.Ma[a]||{},d=c.lang||
24"es3";return a&&("goog"==c.module||Z.Bb(d))?Z.B+a in Z.j.X:!1}
24,Z.rc=function(a){if((a=Z.Fa(a))&&a in Z.j.F)for(var c in Z.j.F[a])if(!Z.Tc(c)&&!Z.wb(c))return!1;return!0},Z.Ab=function(a){if(a in Z.j.X){var c=Z.j.X[a];delete Z.j.X[a];Z.Mc(c)}},Z.Cf=Y(),Z.zd=function(a){Z.global.document.write(ba+a+'">\x3c/script>')},Z.tc=function(a){var c=Z.global.document,d=c.createElement("script");d.type=Ya;d.src=a;d.defer=!1;d.async=!1;c.head.appendChild(d)},Z.Ad=function(a,c){if(Z.tb()){var d=Z.global.document;
25if(!Z.Za&&d.readyState==K){if(/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}void 0===c?Z.Wb?(c=" onreadystatechange='goog.onScriptLoad_(this, "+ ++Z.yb+")' ",d.write(ba+a+'"'+c+">\x3c/script>")):Z.Za?Z.tc(a):Z.zd(a):d.write('<script type="text/javascript">'+Z.kd(c)+"\x3c/script>");return!0}return!1},Z.kd=function(a){return a.replace(/<\/(SCRIPT)/ig,"\\x3c\\$1")},Z.Bb=function(a){if("always"==Z.bb)return!0;if("never"==Z.bb)return!1;Z.ma||(Z.ma=Z.zc());if(a in
26Z.ma)return Z.ma[a];throw Error("Unknown language mode: "+a);},Z.ma=null,Z.yb=0,Z.Lf=function(a,c){a.readyState==K&&Z.yb==c&&Z.$c();return!0},Z.Lg=function(a){function c(a){if(!(a in f.Wa||a in f.Ib)){f.Ib[a]=!0;if(a in f.F)for(var g in f.F[a])if(!Z.Tc(g))if(g in f.T)c(f.T[g]);else throw Error("Undefined nameToPath for "+g);a in e||(e[a]=!0,d.push(a))}}var d=[],e={},f=Z.j;c(a);for(a=0;a<d.length;a++){var g=d[a];Z.j.Wa[g]=!0}var h=Z.l;Z.l=null;for(a=0;a<d.length;a++)if(g=d[a]){var l=f.Ma[g]||{},m=
27Z.Bb(l.lang||"es3");"goog"==l.module||m?Z.Nc(Z.B+g,"goog"==l.module,m):Z.Ga(Z.B+g)}else throw Z.l=h,Error("Undefined script input");Z.l=h},Z.Fa=function(a){return a in Z.j.T?Z.j.T[a]:null},Z.Gc(),Z.global.Ed||Z.Ga(Z.B+"deps.js"));
28Z.Bf=function(a){var c=Z.l;try{Z.l={Qa:void 0,va:!1};var d;if(Z.xb(a))d=a.call(void 0,{});else if(Z.h(a))d=Z.Yc.call(void 0,a);else throw Error("Invalid module definition");var e=Z.l.Qa;if(!Z.h(e)||!e)throw Error('Invalid module name "'+e+'"');Z.l.va?Z.hb(e,d):Z.ec&&Object.seal&&Z.P(d)&&Object.seal(d);Z.ad[e]=d}finally{Z.l=c}};Z.Yc=function(a){eval(a);return{}};Z.Gf=function(a){a=a.split("/");for(var c=0;c<a.length;)"."==a[c]?a.splice(c,1):c&&".."==a[c]&&a[c-1]&&".."!=a[c-1]?a.splice(--c,2):c++;return a.join("/")};
29Z.Xc=function(a){if(Z.global.Ob)return Z.global.Ob(a);try{var c=new Z.global.XMLHttpRequest;c.open("get",a,!1);c.send();return 0==c.status||200==c.status?c.responseText:null}catch(d){return null}};Z.eg=Y();
30Z.Dg=function(a,c){var d=Z.global.$jscomp;d||(Z.global.$jscomp=d={});var e=d.Va;if(!e){var f=Z.B+Z.mc,g=Z.Xc(f);if(g){eval(g+aa+f);if(Z.global.$gwtExport&&Z.global.$gwtExport.$jscomp&&!Z.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(Z.global.$gwtExport));Z.global.$jscomp.Va=Z.global.$gwtExport.$jscomp.transpile;d=Z.global.$jscomp;e=d.Va}}if(!e)var h=" requires transpilation but no transpiler was found.",
31h=h+' Please add "//javascript/closure:transpiler" as a data dependency to ensure it is included.',e=d.Va=function(a,c){Z.bd(c+h);return a};return e(a,c)};
32Z.u=function(a){var c=typeof a;if(c==P)if(a){if(a instanceof Array)return I;if(a instanceof Object)return c;var d=Object.prototype.toString.call(a);if("[object Window]"==d)return P;if("[object Array]"==d||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return I;if("[object Function]"==d||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return N}else return"null";
33else if(c==N&&"undefined"==typeof a.call)return P;return c};Z.sf=function(a){return null===a};Z.Pc=function(a){return null!=a};Z.isArray=function(a){return Z.u(a)==I};Z.Ja=function(a){var c=Z.u(a);return c==I||c==P&&"number"==typeof a.length};Z.nf=function(a){return Z.P(a)&&typeof a.getFullYear==N};Z.h=function(a){return"string"==typeof a};Z.Oc=function(a){return"boolean"==typeof a};Z.Sc=function(a){return"number"==typeof a};Z.xb=function(a){return Z.u(a)==N};
34Z.P=function(a){var c=typeof a;return c==P&&null!=a||c==N};Z.rb=function(a){return a[Z.D]||(a[Z.D]=++Z.vd)};Z.cf=function(a){return!!a[Z.D]};Z.ld=function(a){null!==a&&"removeAttribute"in a&&a.removeAttribute(Z.D);try{delete a[Z.D]}catch(c){}};Z.D="closure_uid_"+(1E9*Math.random()>>>0);Z.vd=0;Z.Oe=Z.rb;Z.Zf=Z.ld;Z.yc=function(a){var c=Z.u(a);
34if(c==P||c==I){if(a.clone)return a.clone();var c=c==I?[]:{},d;for(d in a)c[d]=Z.yc(a[d]);return c}return a};Z.wc=function(a,c,d){return a.call.apply(a.bind,arguments)};
35Z.vc=function(a,c,d){if(!a)throw Error();if(2<arguments.length){var e=Array.prototype.slice.call(arguments,2);return function(){var d=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(d,e);return a.apply(c,d)}}return function(){return a.apply(c,arguments)}};Z.bind=function(a,c,d){Z.bind=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?Z.wc:Z.vc;return Z.bind.apply(null,arguments)};
36Z.fd=function(a,c){var d=Array.prototype.slice.call(arguments,1);return function(){var c=d.slice();c.push.apply(c,arguments);return a.apply(this,c)}};Z.Ef=function(a,c){for(var d in c)a[d]=c[d]};Z.now=Z.qa&&Date.now||function(){return+new Date};
37Z.Mc=function(a){if(Z.global.execScript)Z.global.execScript(a,"JavaScript");else if(Z.global.eval){if(null==Z.Y)if(Z.global.eval("var _evalTest_ = 1;"),"undefined"!=typeof Z.global._evalTest_){try{delete Z.global._evalTest_}catch(e){}Z.Y=!0}else Z.Y=!1;if(Z.Y)Z.global.eval(a);else{var c=Z.global.document,d=c.createElement("SCRIPT");d.type=Ya;d.defer=!1;d.appendChild(c.createTextNode(a));c.body.appendChild(d);c.body.removeChild(d)}}else throw Error("goog.globalEval not available");};Z.Y=null;
38Z.Ne=function(a,c){function d(a){a=a.split("-");for(var c=[],d=0;d<a.length;d++)c.push(e(a[d]));return c.join("-")}function e(a){return Z.ib[a]||a}if("."==String(a).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+a);var f;f=Z.ib?"BY_WHOLE"==Z.Cc?e:d:function(a){return a};a=c?a+"-"+f(c):f(a);return Z.global.Nb?Z.global.Nb(a):a};Z.fg=function(a,c){Z.ib=a;Z.Cc=c};
39Z.Te=function(a,c){c&&(a=a.replace(/\{\$([^}]+)}/g,function(a,e){return null!=c&&e in c?c[e]:a}));return a};Z.Ue=function(a){return a};Z.Aa=function(a,c){Z.ya(a,c,void 0)};Z.Ke=function(a,c,d){a[c]=d};Z.Ha=function(a,c){function d(){}d.prototype=c.prototype;a.oa=c.prototype;a.prototype=new d;a.prototype.constructor=a;a.uc=function(a,d,g){for(var e=Array(arguments.length-2),f=2;f<arguments.length;f++)e[f-2]=arguments[f];return c.prototype[d].apply(a,e)}};
40Z.uc=function(a,c,d){var e=arguments.callee.caller;if(Z.gc||Z.G&&!e)throw Error("arguments.caller not defined.  goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(e.oa){for(var f=Array(arguments.length-1),g=1;g<arguments.length;g++)f[g-1]=arguments[g];return e.oa.constructor.apply(a,f)}f=Array(arguments.length-2);for(g=2;g<arguments.length;g++)f[g-2]=arguments[g];for(var g=!1,h=a.constructor;h;h=h.oa&&h.oa.constructor)if(h.prototype[c]===
41e)g=!0;else if(g)return h.prototype[c].apply(a,f);if(a[c]===e)return a.constructor.prototype[c].apply(a,f);throw Error("goog.base called from a method of one name to a method of a different name");};Z.scope=function(a){if(Z.La())throw Error("goog.scope is not supported within a goog.module.");a.call(Z.global)};
42Z.o=function(a,c){var d=c.constructor,e=c.qd;d&&d!=Object.prototype.constructor||(d=function(){throw Error("cannot instantiate an interface (no constructor defined).");});d=Z.o.Ac(d,a);a&&Z.Ha(d,a);delete c.constructor;delete c.qd;Z.o.cb(d.prototype,c);null!=e&&(e instanceof Function?e(d):Z.o.cb(d,e));return d};Z.o.dc=Z.G;
43Z.o.Ac=function(a,c){function d(){var c=a.apply(this,arguments)||this;c[Z.D]=c[Z.D];this.constructor===d&&e&&Object.seal instanceof Function&&Object.seal(c);return c}if(!Z.o.dc)return a;var e=!Z.o.Uc(c);return d};Z.o.Uc=function(a){return a&&a.prototype&&a.prototype[Z.nc]};Z.o.$a="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
44Z.o.cb=function(a,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(a[d]=c[d]);for(var e=0;e<Z.o.$a.length;e++)d=Z.o.$a[e],Object.prototype.hasOwnProperty.call(c,d)&&(a[d]=c[d])};Z.xg=Y();Z.nc="goog_defineClass_legacy_unsealable";
45Z.zc=function(){function a(a,c){e?d[a]=!0:c()?d[a]=!1:e=d[a]=!0}function c(a){try{return!!eval(a)}catch(g){return!1}}var d={es3:!1},e=!1;a("es5",function(){return c("[1,].length==1")});a("es6",function(){return c('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')});a("es6-impl",
46function(){return!0});a("es7",function(){return c("2 ** 2 == 4")});a("es8",function(){return c("async () => 1, true")});return d};Z.debug={};
vendor: 5,175 bytes, lines 46-57
46Z.debug.Error=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,Z.debug.Error);else{var c=Error().stack;c&&(this.stack=c)}a&&(this.message=String(a))};Z.Ha(Z.debug.Error,Error);Z.debug.Error.prototype.name="CustomError";Z.jb={};Z.jb.bc={Rb:1,Bd:2,Qd:3,Cd:4,Ld:5,Kd:6,Pd:7,Fd:8,DOCUMENT:9,Id:10,Hd:11,Nd:12};Z.b={};Z.b.Ya=!1;Z.b.Tb=!1;Z.b.pc={$b:"\u00a0"};Z.b.startsWith=function(a,c){return 0==a.lastIndexOf(c,0)};Z.b.endsWith=function(a,c){var d=a.length-c.length;return 0<=d&&a.indexOf(c,d)==d};Z.b.xe=function(a,c){return 0==Z.b.gb(c,a.substr(0,c.length))};Z.b.ue=function(a,c){return 0==Z.b.gb(c,a.substr(a.length-c.length,c.length))};Z.b.we=function(a,c){return a.toLowerCase()==c.toLowerCase()};
47Z.b.rd=function(a,c){for(var d=a.split("%s"),e="",f=Array.prototype.slice.call(arguments,1);f.length&&1<d.length;)e+=d.shift()+f.shift();return e+d.join("%s")};Z.b.ze=function(a){return a.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};Z.b.Ka=function(a){return/^[\s\xa0]*$/.test(a)};Z.b.qf=function(a){return 0==a.length};Z.b.Qc=Z.b.Ka;Z.b.Rc=function(a){return Z.b.Ka(Z.b.cd(a))};Z.b.pf=Z.b.Rc;Z.b.mf=function(a){return!/[^\t\n\r ]/.test(a)};Z.b.kf=function(a){return!/[^a-zA-Z]/.test(a)};
48Z.b.tf=function(a){return!/[^0-9]/.test(a)};Z.b.lf=function(a){return!/[^a-zA-Z0-9]/.test(a)};Z.b.wf=function(a){return" "==a};Z.b.xf=function(a){return 1==a.length&&" "<=a&&"~">=a||"\u0080"<=a&&"\ufffd">=a};Z.b.vg=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};Z.b.pe=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};Z.b.If=function(a){return a.replace(/\xa0|\s/g," ")};Z.b.Hf=function(a){return a.replace(/\xa0|[ \t]+/g," ")};
49Z.b.ye=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};Z.b.trim=Z.qa&&String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};Z.b.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};Z.b.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};Z.b.gb=function(a,c){a=String(a).toLowerCase();c=String(c).toLowerCase();return a<c?-1:a==c?0:1};
50Z.b.Db=function(a,c,d){if(a==c)return 0;if(!a)return-1;if(!c)return 1;for(var e=a.toLowerCase().match(d),f=c.toLowerCase().match(d),g=Math.min(e.length,f.length),h=0;h<g;h++){d=e[h];var l=f[h];if(d!=l)return a=parseInt(d,10),!isNaN(a)&&(c=parseInt(l,10),!isNaN(c)&&a-c)?a-c:d<l?-1:1}return e.length!=f.length?e.length-f.length:a<c?-1:1};Z.b.hf=function(a,c){return Z.b.Db(a,c,/\d+|\D+/g)};Z.b.Jc=function(a,c){return Z.b.Db(a,c,/\d+|\.\d+|\D+/g)};Z.b.Kf=Z.b.Jc;Z.b.Hg=function(a){return encodeURIComponent(String(a))};
51Z.b.Gg=function(a){return decodeURIComponent(a.replace(/\+/g," "))};Z.b.dd=function(a,c){return a.replace(/(\r\n|\r|\n)/g,c?"<br />":"<br>")};
52Z.b.sb=function(a){if(!Z.b.Kb.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(Z.b.Lb,"&amp;"));-1!=a.indexOf("<")&&(a=a.replace(Z.b.Zb,"&lt;"));-1!=a.indexOf(">")&&(a=a.replace(Z.b.Ub,"&gt;"));-1!=a.indexOf('"')&&(a=a.replace(Z.b.cc,"&quot;"));-1!=a.indexOf("'")&&(a=a.replace(Z.b.fc,"&#39;"));-1!=a.indexOf("\x00")&&(a=a.replace(Z.b.ac,"&#0;"));Z.b.Ya&&-1!=a.indexOf("e")&&(a=a.replace(Z.b.Sb,"&#101;"));return a};Z.b.Lb=/&/g;Z.b.Zb=/</g;Z.b.Ub=/>/g;Z.b.cc=/"/g;Z.b.fc=/'/g;Z.b.ac=/\x00/g;Z.b.Sb=/e/g;
53Z.b.Kb=Z.b.Ya?/[\x00&<>"'e]/:/[\x00&<>"']/;Z.b.Gb=function(a){return Z.b.contains(a,"&")?!Z.b.Tb&&"document"in Z.global?Z.b.Hb(a):Z.b.wd(a):a};Z.b.Fg=function(a,c){return Z.b.contains(a,"&")?Z.b.Hb(a,c):a};
54Z.b.Hb=function(a,c){var d={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'},e;e=c?c.createElement("div"):Z.global.document.createElement("div");return a.replace(Z.b.Vb,function(a,c){var f=d[a];if(f)return f;"#"==c.charAt(0)&&(c=Number("0"+c.substr(1)),isNaN(c)||(f=String.fromCharCode(c)));f||(e.innerHTML=a+" ",f=e.firstChild.nodeValue.slice(0,-1));return d[a]=f})};
55Z.b.wd=function(a){return a.replace(/&([^;]+);/g,function(a,d){switch(d){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=d.charAt(0)||(d=Number("0"+d.substr(1)),isNaN(d))?a:String.fromCharCode(d)}})};Z.b.Vb=/&([^;\s<&]+);?/g;Z.b.Jg=function(a,c){return Z.b.dd(a.replace(/  /g," &#160;"),c)};Z.b.Nf=function(a){return a.replace(/(^|[\n ]) /g,"$1"+Z.b.pc.$b)};
56Z.b.wg=function(a,c){for(var d=c.length,e=0;e<d;e++){var f=1==d?c:c.charAt(e);if(a.charAt(0)==f&&a.charAt(a.length-1)==f)return a.substring(1,a.length-1)}return a};Z.b.truncate=function(a,c,d){d&&(a=Z.b.Gb(a));a.length>c&&(a=a.substring(0,c-3)+"...");d&&(a=Z.b.sb(a));return a};Z.b.Eg=function(a,c,d,e){d&&(a=Z.b.Gb(a));e&&a.length>c?(e>c&&(e=c),a=a.substring(0,c-e)+"..."+a.substring(a.length-e)):a.length>c&&(e=Math.floor(c/2),a=a.substring(0,e+c%2)+"..."+a.substring(a.length-e));d&&(a=Z.b.sb(a));return a};
57Z.b.Ua={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","<":"<"};Z.b.$={"'":"\\'"};Z.b.quote=function(a){a=String(a);for(var c=['"'],d=0;d<a.length;d++){var e=a.charAt(d),f=e.charCodeAt(0);c[d+1]=Z.b.Ua[e]||(31<f&&127>f?e:Z.b.kb(e))}c.push('"');return c.join("")};Z.b.Je=function(a){for(var c=[],d=0;d<a.length;d++)c[d]=Z.b.kb(a.charAt(d));return c.join("")};
vendor: 6,971 bytes, lines 58-72
58Z.b.kb=function(a){if(a in Z.b.$)return Z.b.$[a];if(a in Z.b.Ua)return Z.b.$[a]=Z.b.Ua[a];var c,d=a.charCodeAt(0);if(31<d&&127>d)c=a;else{if(256>d){if(c="\\x",16>d||256<d)c+="0"}else c="\\u",4096>d&&(c+="0");c+=d.toString(16).toUpperCase()}return Z.b.$[a]=c};Z.b.contains=function(a,c){return-1!=a.indexOf(c)};Z.b.re=function(a,c){return Z.b.contains(a.toLowerCase(),c.toLowerCase())};Z.b.Ee=function(a,c){return a&&c?a.split(c).length-1:0};
59Z.b.L=function(a,c,d){var e=a;0<=c&&c<a.length&&0<d&&(e=a.substr(0,c)+a.substr(c+d,a.length-c-d));return e};Z.b.remove=function(a,c){return a.replace(c,"")};Z.b.Wf=function(a,c){c=new RegExp(Z.b.Ta(c),"g");return a.replace(c,"")};Z.b.cg=function(a,c,d){c=new RegExp(Z.b.Ta(c),"g");return a.replace(c,d.replace(/\$/g,"$$$$"))};Z.b.Ta=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};
60Z.b.repeat=String.prototype.repeat?function(a,c){return a.repeat(c)}:function(a,c){return Array(c+1).join(a)};Z.b.Mf=function(a,c,d){a=Z.O(d)?a.toFixed(d):String(a);d=a.indexOf(".");-1==d&&(d=a.length);return Z.b.repeat("0",Math.max(0,c-d))+a};Z.b.cd=function(a){return null==a?"":String(a)};Z.b.oe=function(a){return Array.prototype.join.call(arguments,"")};Z.b.Xe=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Z.now()).toString(36)};
61Z.b.Be=function(a,c){var d=0;a=Z.b.trim(String(a)).split(".");c=Z.b.trim(String(c)).split(".");for(var e=Math.max(a.length,c.length),f=0;0==d&&f<e;f++){var g=a[f]||"",h=c[f]||"";do{g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];h=/(\d*)(\D*)(.*)/.exec(h)||["","","",""];if(0==g[0].length&&0==h[0].length)break;d=Z.b.ra(0==g[1].length?0:parseInt(g[1],10),0==h[1].length?0:parseInt(h[1],10))||Z.b.ra(0==g[2].length,0==h[2].length)||Z.b.ra(g[2],h[2]);g=g[3];h=h[3]}while(0==d)}return d};
62Z.b.ra=function(a,c){return a<c?-1:a>c?1:0};Z.b.df=function(a){for(var c=0,d=0;d<a.length;++d)c=31*c+a.charCodeAt(d)>>>0;return c};Z.b.xd=2147483648*Math.random()|0;Z.b.Fe=function(){return"goog_"+Z.b.xd++};Z.b.zg=function(a){var c=Number(a);return 0==c&&Z.b.Ka(a)?NaN:c};Z.b.rf=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};Z.b.yf=function(a){return/^([A-Z][a-z]*)+$/.test(a)};Z.b.yg=function(a){return String(a).replace(/\-([a-z])/g,function(a,d){return d.toUpperCase()})};
63Z.b.Bg=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};Z.b.Cg=function(a,c){c=Z.h(c)?Z.b.Ta(c):"\\s";return a.replace(new RegExp("(^"+(c?"|["+c+"]+":"")+")([a-z])","g"),function(a,c,f){return c+f.toUpperCase()})};Z.b.qe=function(a){return String(a.charAt(0)).toUpperCase()+String(a.substr(1)).toLowerCase()};Z.b.parseInt=function(a){isFinite(a)&&(a=String(a));return Z.h(a)?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};
64Z.b.qg=function(a,c,d){a=a.split(c);for(var e=[];0<d&&a.length;)e.push(a.shift()),d--;a.length&&e.push(a.join(c));return e};Z.b.Af=function(a,c){if(c)"string"==typeof c&&(c=[c]);else return a;for(var d=-1,e=0;e<c.length;e++)if(""!=c[e]){var f=a.lastIndexOf(c[e]);f>d&&(d=f)}return-1==d?a:a.slice(d+1)};
65Z.b.He=function(a,c){var d=[],e=[];if(a==c)return 0;if(!a.length||!c.length)return Math.max(a.length,c.length);for(var f=0;f<c.length+1;f++)d[f]=f;for(f=0;f<a.length;f++){e[0]=f+1;for(var g=0;g<c.length;g++)e[g+1]=Math.min(e[g]+1,d[g+1]+1,d[g]+Number(a[f]!=c[g]));for(g=0;g<d.length;g++)d[g]=e[g]}return e[c.length]};Z.g={};Z.g.s=Z.G;Z.g.V=function(a,c){c.unshift(a);Z.debug.Error.call(this,Z.b.rd.apply(null,c));c.shift()};Z.Ha(Z.g.V,Z.debug.Error);Z.g.V.prototype.name="AssertionError";Z.g.Pb=function(a){throw a;};Z.g.xa=Z.g.Pb;Z.g.A=function(a,c,d,e){var f="Assertion failed";if(d)var f=f+(": "+d),g=e;else a&&(f+=": "+a,g=c);a=new Z.g.V(""+f,g||[]);Z.g.xa(a)};Z.g.gg=function(a){Z.g.s&&(Z.g.xa=a)};Z.g.assert=function(a,c,d){Z.g.s&&!a&&Z.g.A("",null,c,Array.prototype.slice.call(arguments,2));return a};
66Z.g.Ba=function(a,c){Z.g.s&&Z.g.xa(new Z.g.V("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1)))};Z.g.Zd=function(a,c,d){Z.g.s&&!Z.Sc(a)&&Z.g.A("Expected number but got %s: %s.",[Z.u(a),a],c,Array.prototype.slice.call(arguments,2));return a};Z.g.ge=function(a,c,d){Z.g.s&&!Z.h(a)&&Z.g.A("Expected string but got %s: %s.",[Z.u(a),a],c,Array.prototype.slice.call(arguments,2));return a};
67Z.g.Xd=function(a,c,d){Z.g.s&&!Z.xb(a)&&Z.g.A("Expected function but got %s: %s.",[Z.u(a),a],c,Array.prototype.slice.call(arguments,2));return a};Z.g.$d=function(a,c,d){Z.g.s&&!Z.P(a)&&Z.g.A("Expected object but got %s: %s.",[Z.u(a),a],c,Array.prototype.slice.call(arguments,2));return a};Z.g.Ud=function(a,c,d){Z.g.s&&!Z.isArray(a)&&Z.g.A("Expected array but got %s: %s.",[Z.u(a),a],c,Array.prototype.slice.call(arguments,2));return a};
68Z.g.Vd=function(a,c,d){Z.g.s&&!Z.Oc(a)&&Z.g.A("Expected boolean but got %s: %s.",[Z.u(a),a],c,Array.prototype.slice.call(arguments,2));return a};Z.g.Wd=function(a,c,d){!Z.g.s||Z.P(a)&&a.nodeType==Z.jb.bc.Rb||Z.g.A("Expected Element but got %s: %s.",[Z.u(a),a],c,Array.prototype.slice.call(arguments,2));return a};Z.g.Yd=function(a,c,d,e){!Z.g.s||a instanceof c||Z.g.A("Expected instanceof %s but got %s.",[Z.g.qb(c),Z.g.qb(a)],d,Array.prototype.slice.call(arguments,3));return a};
69Z.g.fe=function(){for(var a in Object.prototype)Z.g.Ba(a+" should not be enumerable in Object.prototype.")};Z.g.qb=function(a){return a instanceof Function?a.displayName||a.name||"unknown type name":a instanceof Object?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):null===a?"null":typeof a};Z.f={};Z.w=Z.qa;Z.f.v=!1;Z.f.hd=function(a){return a[a.length-1]};Z.f.zf=Z.f.hd;Z.f.indexOf=Z.w&&(Z.f.v||Array.prototype.indexOf)?function(a,c,d){return Array.prototype.indexOf.call(a,c,d)}:function(a,c,d){d=null==d?0:0>d?Math.max(0,a.length+d):d;if(Z.h(a))return Z.h(c)&&1==c.length?a.indexOf(c,d):-1;for(;d<a.length;d++)if(d in a&&a[d]===c)return d;return-1};
70Z.f.lastIndexOf=Z.w&&(Z.f.v||Array.prototype.lastIndexOf)?function(a,c,d){return Array.prototype.lastIndexOf.call(a,c,null==d?a.length-1:d)}:function(a,c,d){d=null==d?a.length-1:d;0>d&&(d=Math.max(0,a.length+d));if(Z.h(a))return Z.h(c)&&1==c.length?a.lastIndexOf(c,d):-1;for(;0<=d;d--)if(d in a&&a[d]===c)return d;return-1};
71Z.f.forEach=Z.w&&(Z.f.v||Array.prototype.forEach)?function(a,c,d){Array.prototype.forEach.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=Z.h(a)?a.split(""):a,g=0;g<e;g++)g in f&&c.call(d,f[g],g,a)};Z.f.mb=function(a,c){for(var d=Z.h(a)?a.split(""):a,e=a.length-1;0<=e;--e)e in d&&c.call(void 0,d[e],e,a)};
72Z.f.filter=Z.w&&(Z.f.v||Array.prototype.filter)?function(a,c,d){return Array.prototype.filter.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=[],g=0,h=Z.h(a)?a.split(""):a,l=0;l<e;l++)if(l in h){var m=h[l];c.call(d,m,l,a)&&(f[g++]=m)}return f};Z.f.map=Z.w&&(Z.f.v||Array.prototype.map)?function(a,c,d){return Array.prototype.map.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=Array(e),g=Z.h(a)?a.split(""):a,h=0;h<e;
vendor: 4,253 bytes, lines 72-82
72h++)h in g&&(f[h]=c.call(d,g[h],h,a));return f};
73Z.f.reduce=Z.w&&(Z.f.v||Array.prototype.reduce)?function(a,c,d,e){e&&(c=Z.bind(c,e));return Array.prototype.reduce.call(a,c,d)}:function(a,c,d,e){var f=d;Z.f.forEach(a,function(d,h){f=c.call(e,f,d,h,a)});return f};Z.f.reduceRight=Z.w&&(Z.f.v||Array.prototype.reduceRight)?function(a,c,d,e){e&&(c=Z.bind(c,e));return Array.prototype.reduceRight.call(a,c,d)}:function(a,c,d,e){var f=d;Z.f.mb(a,function(d,h){f=c.call(e,f,d,h,a)});return f};
74Z.f.some=Z.w&&(Z.f.v||Array.prototype.some)?function(a,c,d){return Array.prototype.some.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=Z.h(a)?a.split(""):a,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,a))return!0;return!1};Z.f.every=Z.w&&(Z.f.v||Array.prototype.every)?function(a,c,d){return Array.prototype.every.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=Z.h(a)?a.split(""):a,g=0;g<e;g++)if(g in f&&!c.call(d,f[g],g,a))return!1;return!0};
75Z.f.count=function(a,c,d){var e=0;Z.f.forEach(a,function(a,g,h){c.call(d,a,g,h)&&++e},d);return e};Z.f.find=function(a,c,d){c=Z.f.findIndex(a,c,d);return 0>c?null:Z.h(a)?a.charAt(c):a[c]};Z.f.findIndex=function(a,c,d){for(var e=a.length,f=Z.h(a)?a.split(""):a,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,a))return g;return-1};Z.f.Le=function(a,c,d){c=Z.f.Hc(a,c,d);return 0>c?null:Z.h(a)?a.charAt(c):a[c]};
76Z.f.Hc=function(a,c,d){for(var e=Z.h(a)?a.split(""):a,f=a.length-1;0<=f;f--)if(f in e&&c.call(d,e[f],f,a))return f;return-1};Z.f.contains=function(a,c){return 0<=Z.f.indexOf(a,c)};Z.f.Qc=function(a){return 0==a.length};Z.f.clear=function(a){if(!Z.isArray(a))for(var c=a.length-1;0<=c;c--)delete a[c];a.length=0};Z.f.ef=function(a,c){Z.f.contains(a,c)||a.push(c)};Z.f.ub=function(a,c,d){Z.f.splice(a,d,0,c)};Z.f.gf=function(a,c,d){Z.fd(Z.f.splice,a,d,0).apply(null,c)};
77Z.f.insertBefore=function(a,c,d){var e;2==arguments.length||0>(e=Z.f.indexOf(a,d))?a.push(c):Z.f.ub(a,c,e)};Z.f.remove=function(a,c){c=Z.f.indexOf(a,c);var d;(d=0<=c)&&Z.f.L(a,c);return d};Z.f.ag=function(a,c){c=Z.f.lastIndexOf(a,c);return 0<=c?(Z.f.L(a,c),!0):!1};Z.f.L=function(a,c){return 1==Array.prototype.splice.call(a,c,1).length};Z.f.$f=function(a,c,d){c=Z.f.findIndex(a,c,d);return 0<=c?(Z.f.L(a,c),!0):!1};
78Z.f.Xf=function(a,c,d){var e=0;Z.f.mb(a,function(f,g){c.call(d,f,g,a)&&Z.f.L(a,g)&&e++});return e};Z.f.concat=function(a){return Array.prototype.concat.apply(Array.prototype,arguments)};Z.f.join=function(a){return Array.prototype.concat.apply(Array.prototype,arguments)};Z.f.ud=function(a){var c=a.length;if(0<c){for(var d=Array(c),e=0;e<c;e++)d[e]=a[e];return d}return[]};Z.f.clone=Z.f.ud;
79Z.f.extend=function(a,c){for(var d=1;d<arguments.length;d++){var e=arguments[d];if(Z.Ja(e)){var f=a.length||0,g=e.length||0;a.length=f+g;for(var h=0;h<g;h++)a[f+h]=e[h]}else a.push(e)}};Z.f.splice=function(a,c,d,e){return Array.prototype.splice.apply(a,Z.f.slice(arguments,1))};Z.f.slice=function(a,c,d){return 2>=arguments.length?Array.prototype.slice.call(a,c):Array.prototype.slice.call(a,c,d)};
80Z.f.Yf=function(a,c,d){function e(a){return Z.P(a)?"o"+Z.rb(a):(typeof a).charAt(0)+a}c=c||a;d=d||e;for(var f={},g=0,h=0;h<a.length;){var l=a[h++],m=d(l);Object.prototype.hasOwnProperty.call(f,m)||(f[m]=!0,c[g++]=l)}c.length=g};Z.f.eb=function(a,c,d){return Z.f.fb(a,d||Z.f.C,!1,c)};Z.f.le=function(a,c,d){return Z.f.fb(a,c,!0,void 0,d)};Z.f.fb=function(a,c,d,e,f){for(var g=0,h=a.length,l;g<h;){var m=g+h>>1,n;n=d?c.call(f,a[m],m,a):c(e,a[m]);0<n?g=m+1:(h=m,l=!n)}return l?g:~g};
81Z.f.sort=function(a,c){a.sort(c||Z.f.C)};Z.f.rg=function(a,c){for(var d=Array(a.length),e=0;e<a.length;e++)d[e]={index:e,value:a[e]};var f=c||Z.f.C;Z.f.sort(d,function(a,c){return f(a.value,c.value)||a.index-c.index});for(e=0;e<a.length;e++)a[e]=d[e].value};Z.f.pd=function(a,c,d){var e=d||Z.f.C;Z.f.sort(a,function(a,d){return e(c(a),c(d))})};Z.f.pg=function(a,c,d){Z.f.pd(a,function(a){return a[c]},d)};
82Z.f.vf=function(a,c,d){c=c||Z.f.C;for(var e=1;e<a.length;e++){var f=c(a[e-1],a[e]);if(0<f||0==f&&d)return!1}return!0};Z.f.Ie=function(a,c,d){if(!Z.Ja(a)||!Z.Ja(c)||a.length!=c.length)return!1;var e=a.length;d=d||Z.f.Dc;for(var f=0;f<e;f++)if(!d(a[f],c[f]))return!1;return!0};Z.f.Ae=function(a,c,d){d=d||Z.f.C;for(var e=Math.min(a.length,c.length),f=0;f<e;
82f++){var g=d(a[f],c[f]);if(0!=g)return g}return Z.f.C(a.length,c.length)};Z.f.C=function(a,c){return a>c?1:a<c?-1:0};
83Z.f.jf=function(a,c){return-Z.f.C(a,c)};Z.f.Dc=function(a,c){return a===c};Z.f.je=function(a,c,d){d=Z.f.eb(a,c,d);return 0>d?(Z.f.ub(a,c,-(d+1)),!0):!1};Z.f.ke=function(a,c,d){c=Z.f.eb(a,c,d);return 0<=c?Z.f.L(a,c):!1};Z.f.me=function(a,c,d){for(var e={},f=0;f<a.length;f++){var g=a[f],h=c.call(d,g,f,a);Z.O(h)&&(e[h]||(e[h]=[])).push(g)}return e};Z.f.Ag=function(a,c,d){var e={};Z.f.forEach(a,function(f,g){e[c.call(d,f,g,a)]=f});return e};
84Z.f.Pf=function(a,c,d){var e=[],f=0,g=a;d=d||1;void 0!==c&&(f=a,g=c);if(0>d*(g-f))return[];if(0<d)for(a=f;a<g;a+=d)e.push(a);else for(a=f;a>g;a+=d)e.push(a);return e};Z.f.repeat=function(a,c){for(var d=[],e=0;e<c;e++)d[e]=a;return d};Z.f.Ic=function(a){for(var c=[],d=0;d<arguments.length;d++){var e=arguments[d];if(Z.isArray(e))for(var f=0;f<e.length;f+=8192)for(var g=Z.f.Ic.apply(null,Z.f.slice(e,f,f+8192)),h=0;h<g.length;h++)c.push(g[h]);else c.push(e)}return c};
85Z.f.rotate=function(a,c){a.length&&(c%=a.length,0<c?Array.prototype.unshift.apply(a,a.splice(-c,c)):0>c&&Array.prototype.push.apply(a,a.splice(0,-c)));return a};Z.f.Ff=function(a,c,d){c=Array.prototype.splice.call(a,c,1);Array.prototype.splice.call(a,d,0,c[0])};
86Z.f.Mg=function(a){if(!arguments.length)return[];for(var c=[],d=arguments[0].length,e=1;e<arguments.length;e++)arguments[e].length<d&&(d=arguments[e].length);for(e=0;e<d;e++){for(var f=[],g=0;g<arguments.length;g++)f.push(arguments[g][e]);c.push(f)}return c};Z.f.og=function(a,c){c=c||Math.random;for(var d=a.length-1;0<d;d--){var e=Math.floor(c()*(d+1)),f=a[d];a[d]=a[e];a[e]=f}};Z.f.De=function(a,c){var d=[];Z.f.forEach(c,function(c){d.push(a[c])});return d};
87Z.f.Ce=function(a,c,d){return Z.f.concat.apply([],Z.f.map(a,c,d))};Z.locale={};
88Z.locale.J={COUNTRY:{AD:"Andorra",AE:hb,AF:U,AG:ca,AI:"Anguilla",AL:"Shqip\u00ebria",AM:gb,AN:pa,AO:"Angola",AQ:"Antarctica",AR:"Argentina",AS:b,AT:"\u00d6sterreich",AU:"Australia",AW:"Aruba",AX:"\u00c5land",AZ:"Az\u0259rbaycan",BA:p,BB:"Barbados",BD:"\u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6",BE:"Belgi\u00eb",BF:"Burkina Faso",BG:"\u0411\u044a\u043b\u0433\u0430\u0440\u0438\u044f",BH:"\u0627\u0644\u0628\u062d\u0631\u064a\u0646",BI:"Burundi",BJ:"B\u00e9nin",BM:"Bermuda",BN:"Brunei",BO:k,BR:"Brasil",
89BS:"Bahamas",BT:"\u092d\u0942\u091f\u093e\u0928",BV:"Bouvet Island",BW:q,BY:db,BZ:"Belize",CA:"Canada",CC:"Cocos (Keeling) Islands",CD:Ca,CF:Ba,CG:"Congo",CH:"Schweiz",CI:"C\u00f4te d\u2019Ivoire",CK:"Cook Islands",CL:"Chile",CM:"Cameroun",CN:"\u4e2d\u56fd",CO:"Colombia",CR:"Costa Rica",CS:Ga,CU:"Cuba",CV:"Cabo Verde",CX:fa,CY:"\u039a\u03cd\u03c0\u03c1\u03bf\u03c2",CZ:cb,DD:"East Germany",DE:"Deutschland",DJ:"Jabuuti",DK:"Danmark",DM:"Dominica",DO:za,DZ:"\u0627\u0644\u062c\u0632\u0627\u0626\u0631",
90EC:"Ecuador",EE:"Eesti",EG:"\u0645\u0635\u0631",EH:ib,ER:"\u0627\u0631\u064a\u062a\u0631\u064a\u0627",ES:"Espa\u00f1a",ET:X,FI:"Suomi",FJ:"\u092b\u093f\u091c\u0940",FK:ga,FM:x,FO:"F\u00f8royar",FR:"France",FX:"Metropolitan France",GA:"Gabon",GB:Ra,GD:"Grenada",GE:"\u10e1\u10d0\u10e5\u10d0\u10e0\u10d7\u10d5\u10d4\u10da\u10dd",GF:ia,GG:"Guernsey",GH:r,GI:"Gibraltar",GL:ja,GM:"Gambia",GN:"Guin\u00e9e",GP:"Guadeloupe",GQ:ha,GR:"\u0395\u03bb\u03bb\u03ac\u03b4\u03b1",GS:"South Georgia and the South Sandwich Islands",
91GT:"Guatemala",GU:"Guam",GW:"Guin\u00e9 Bissau",GY:"Guyana",HK:"\u9999\u6e2f",HM:"Heard Island and McDonald Islands",HN:t,HR:"Hrvatska",HT:"Ha\u00efti",HU:"Magyarorsz\u00e1g",ID:u,IE:"Ireland",IL:"\u05d9\u05e9\u05e8\u05d0\u05dc",IM:"Isle of Man",IN:W,IO:"British Indian Ocean Territory",IQ:"\u0627\u0644\u0639\u0631\u0627\u0642",IR:"\u0627\u06cc\u0631\u0627\u0646",IS:"\u00cdsland",IT:"Italia",JE:"Jersey",JM:"Jamaica",JO:"\u0627\u0644\u0623\u0631\u062f\u0646",JP:"\u65e5\u672c",KE:"Kenya",KG:eb,KH:"\u1780\u1798\u17d2\u1796\u17bb\u1787\u17b6",
92KI:w,KM:lb,KN:Da,KP:mb,KR:"\ub300\ud55c\ubbfc\uad6d",KW:"\u0627\u0644\u0643\u0648\u064a\u062a",KY:ea,KZ:"\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d",LA:"\u
920e25\u0e32\u0e27",LB:"\u0644\u0628\u0646\u0627\u0646",LC:"Saint Lucia",LI:"Liechtenstein",LK:"\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8",LR:"Liberia",LS:"Lesotho",LT:"Lietuva",LU:la,LV:"Latvija",LY:"\u0644\u064a\u0628\u064a\u0627",MA:"\u0627\u0644\u0645\u063a\u0631\u0628",MC:"Monaco",MD:oa,ME:"\u0426\u0440\u043d\u0430 \u0413\u043e\u0440\u0430",
93MG:ma,MH:na,MK:"\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u0458\u0430",ML:"\u0645\u0627\u0644\u064a",MM:"Myanmar",MN:"\u8499\u53e4",MO:"\u6fb3\u95e8",MP:sa,MQ:"Martinique",MR:"\u0645\u0648\u0631\u064a\u062a\u0627\u0646\u064a\u0627",MS:"Montserrat",MT:"Malta",MU:"Mauritius",MV:"Maldives",MW:"Malawi",MX:"M\u00e9xico",MY:"Malaysia",MZ:"Mo\u00e7ambique",NA:"Namibia",NC:ta,NE:"Niger",NF:ra,NG:y,NI:"Nicaragua",NL:"Nederland",NO:"Norge",NP:"\u0928\u0947\u092a\u093e\u0932",NR:"Nauru",NT:"Neutral Zone",
94NU:"Niue",NZ:qa,OM:"\u0639\u0645\u0627\u0646",PA:"Panam\u00e1",PE:"Per\u00fa",PF:wa,PG:z,PH:va,PK:V,PL:"Polska",PM:Fa,PN:"Pitcairn",PR:xa,PS:"\u0641\u0644\u0633\u0637\u064a\u0646",PT:"Portugal",PW:"Palau",PY:ua,QA:"\u0642\u0637\u0631",QO:"Outlying Oceania",QU:"European Union",RE:"R\u00e9union",RO:"Rom\u00e2nia",RS:"\u0421\u0440\u0431\u0438\u0458\u0430",RU:"\u0420\u043e\u0441\u0441\u0438\u044f",RW:A,SA:jb,SB:Ja,SC:Ha,SD:"\u0627\u0644\u0633\u0648\u062f\u0627\u0646",SE:"Sverige",SG:"\u65b0\u52a0\u5761",
95SH:"Saint Helena",SI:"Slovenija",SJ:Ka,SK:Ia,SL:"Sierra Leone",SM:"San Marino",SN:C,SO:"Somali",SR:"Suriname",ST:Ma,SU:"Union of Soviet Socialist Republics",SV:"El Salvador",SY:"\u0633\u0648\u0631\u064a\u0627",SZ:La,TC:Pa,TD:"\u062a\u0634\u0627\u062f",TF:"French Southern Territories",TG:"Togo",TH:"\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28\u0e44\u0e17\u0e22",TJ:"\u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646",TK:E,TL:Oa,TM:"\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d",
96TN:"\u062a\u0648\u0646\u0633",TO:"Tonga",TR:G,TT:"Trinidad y Tobago",TV:F,TW:"\u53f0\u6e7e",TZ:Na,UA:"\u0423\u043a\u0440\u0430\u0457\u043d\u0430",UG:"Uganda",UM:Ta,US:Sa,UY:"Uruguay",UZ:"\u040e\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u043e\u043d",VA:"Vaticano",VC:Ea,VE:"Venezuela",VG:da,VI:Qa,VN:"Vi\u1ec7t Nam",VU:H,WF:Va,WS:"Samoa",YD:"People's Democratic Republic of Yemen",YE:"\u0627\u0644\u064a\u0645\u0646",YT:"Mayotte",ZA:B,ZM:"Zambia",ZW:"Zimbabwe",ZZ:Ua,aa_DJ:"Jabuuti",aa_ER:"\u00c9rythr\u00e9e",
97aa_ER_SAAHO:"\u00c9rythr\u00e9e",aa_ET:v,af_NA:"Namibi\u00eb",af_ZA:"Suid-Afrika",ak_GH:r,am_ET:X,ar_AE:hb,ar_BH:"\u0627\u0644\u0628\u062d\u0631\u064a\u0646",ar_DJ:"\u062c\u064a\u0628\u0648\u062a\u064a",ar_DZ:"\u0627\u0644\u062c\u0632\u0627\u0626\u0631",ar_EG:"\u0645\u0635\u0631",ar_EH:ib,ar_ER:"\u0627\u0631\u064a\u062a\u0631\u064a\u0627",ar_IL:"\u0627\u0633\u0631\u0627\u0626\u064a\u0644",ar_IQ:"\u0627\u0644\u0639\u0631\u0627\u0642",ar_JO:"\u0627\u0644\u0623\u0631\u062f\u0646",ar_KM:lb,ar_KW:"\u0627\u0644\u0643\u0648\u064a\u062a",
98ar_LB:"\u0644\u0628\u0646\u0627\u0646",ar_LY:"\u0644\u064a\u0628\u064a\u0627",ar_MA:"\u0627\u0644\u0645\u063a\u0631\u0628",ar_MR:"\u0645\u0648\u0631\u064a\u062a\u0627\u0646\u064a\u0627",ar_OM:"\u0639\u0645\u0627\u0646",ar_PS:"\u0641\u0644\u0633\u0637\u064a\u0646",ar_QA:"\u0642\u0637\u0631",ar_SA:jb,ar_SD:"\u0627\u0644\u0633\u0648\u062f\u0627\u0646",ar_SY:"\u0633\u0648\u0631\u064a\u0627",ar_TD:"\u062a\u0634\u0627\u062f",ar_TN:"\u062a\u0648\u0646\u0633",ar_YE:"\u0627\u0644\u064a\u0645\u0646",as_IN:"\u09ad\u09be\u09f0\u09a4",
99ay_BO:k,az_AZ:"Az\u0259rbaycan",az_Cyrl_AZ:"\u0410\u0437\u04d9\u0440\u0431\u0430\u0458\u04b9\u0430\u043d",az_Latn_AZ:"Azerbaycan",be_BY:db,bg_BG:"\u0411\u044a\u043b\u0433\u0430\u0440\u0438\u044f",bi_VU:H,bn_BD:"\u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6",bn_IN:"\u09ad\u09be\u09b0\u09a4",bo_CN:"\u0f62\u0f92\u0fb1\u0f0b\u0f53\u0f42",bo_IN:"\u0f62\u0f92\u0fb1\u0f0b\u0f42\u0f62\u0f0b",bs_BA:p,byn_ER:"\u12a4\u122d\u1275\u122b",ca_AD:"Andorra",ca_ES:"Espanya",cch_NG:y,ch_GU:"Guam",chk_FM:x,cop_Arab_EG:"\u0645\u0635\u0631",
100cop_Arab_US:kb,cop_EG:"\u0645\u0635\u0631",cop_US:kb,cs_CZ:cb,cy_GB:"Prydain Fawr",da_DK:"Danmark",da_GL:"Gr\u00f8nland",de_AT:"\u00d6sterreich",de_BE:"Belgien",de_CH:"Schweiz",de_DE:"Deutschland",de_LI:"Liechtenstein",de_LU:"Luxemburg",dv_MV:"Maldives",dz_BT:"Bhutan",ee_GH:r,ee_TG:"Togo",efi_NG:y,el_CY:"\u039a\u03cd\u03c0\u03c1\u03bf\u03c2",el_GR:"\u0395\u03bb\u03bb\u03ac\u03b4\u03b1",en_AG:ca,en_AI:"Anguilla",en_AS:b,en_AU:"Australia",en_BB:"Barbados",en_BE:"Belgium",en_BM:"Bermuda",en_BS:"Bahamas",
101en_BW:q,en_BZ:"Belize",en_CA:"Canada",en_CC:"Cocos Islands",en_CK:"Cook Islands",en_CM:"Cameroon",en_CX:fa,en_DM:"Dominica",en_FJ:"Fiji",en_FK:ga,en_FM:x,en_GB:Ra,en_GD:"Grenada",en_GG:"Guernsey",en_GH:r,en_GI:"Gibraltar",en_GM:"Gambia",en_GU:"Guam",en_GY:"Guyana",en_HK:"Hong Kong",en_HN:t,en_IE:"Ireland",en_IM:"Isle of Man",en_IN:"India",en_JE:"Jersey",en_JM:"Jamaica",en_KE:"Kenya",en_KI:w,en_KN:Da,en_KY:ea,en_LC:"Saint Lucia",en_LR:"Liberia",en_LS:"Lesotho",en_MH:na,en_MP:sa,en_MS:"Montserrat",
102en_MT:"Malta",en_MU:"Mauritius",en_MW:"Malawi",en_NA:"Namibia",en_NF:ra,en_NG:y,en_NR:"Nauru",en_NU:"Niue",en_NZ:qa,en_PG:z,en_PH:va,en_PK:"Pakistan",en_PN:"Pitcairn",en_PR:xa,en_RW:A,en_SB:Ja,en_SC:Ha,en_SG:"Singapore",en_SH:"Saint Helena",en_SL:"Sierra Leone",en_SZ:La,en_TC:Pa,en_TK:E,en_TO:"Tonga",en_TT:"Trinidad and Tobago",en_TV:F,en_TZ:Na,en_UG:"Uganda",en_UM:Ta,en_US:Sa,en_US_POSIX:Sa,en_VC:Ea,en_VG:da,en_VI:Qa,en_VU:H,en_WS:"Samoa",en_ZA:B,en_ZM:"Zambia",en_ZW:"Zimbabwe",es_AR:"Argentina",
103es_BO:k,es_CL:"Chile",es_CO:"Colombia",es_CR:"Costa Rica",es_CU:"Cuba",es_DO:za,es_EC:"Ecuador",es_ES:"Espa\u00f1a",es_GQ:"Guinea Ecuatorial",es_GT:"Guatemala",es_HN:t,es_MX:"M\u00e9xico",es_NI:"Nicaragua",es_PA:"Panam\u00e1",es_PE:"Per\u00fa",es_PH:"Filipinas",es_PR:xa,es_PY:ua,es_SV:"El Salvador",es_US:"Estados Unidos",es_UY:"Uruguay",es_VE:"Venezuela",et_EE:"Eesti",eu_ES:"Espainia",fa_AF:U,fa_IR:"\u0627\u06cc\u0631\u0627\u0646",fi_FI:"Suomi",fil_PH:va,fj_FJ:"Fiji",fo_FO:"F\u00f8royar",fr_BE:"Belgique",
104fr_BF:"Burkina Faso",fr_BI:"Burundi",fr_BJ:"B\u00e9nin",fr_CA:"Canada",fr_CD:Ca,fr_CF:Ba,fr_CG:"Congo",fr_CH:"Suisse",fr_CI:"C\u00f4te d\u2019Ivoire",fr_CM:"Cameroun",fr_DJ:"Djibouti",fr_DZ:"Alg\u00e9rie",fr_FR:"France",fr_GA:"Gabon",fr_GF:ia,fr_GN:"Guin\u00e9e",fr_GP:"Guadeloupe",fr_GQ:ha,fr_HT:"Ha\u00efti",fr_KM:"Comores",fr_LU:la,fr_MA:"Maroc",fr_MC:"Monaco",fr_MG:ma,fr_ML:"Mali",fr_MQ:"Martinique",fr_MU:"Maurice",fr_NC:ta,fr_NE:"Niger",fr_PF:wa,fr_PM:Fa,fr_RE:"R\u00e9union",fr_RW:A,fr_SC:Ha,fr_SN:C,
105fr_SY:"Syrie",fr_TD:"Tchad",fr_TG:"Togo",fr_TN:"Tunisie",fr_VU:H,fr_WF:Va,fr_YT:"Mayotte",fur_IT
105:"Italia",ga_IE:"\u00c9ire",gaa_GH:r,gez_ER:"\u12a4\u122d\u1275\u122b",gez_ET:X,gil_KI:w,gl_ES:"Espa\u00f1a",gn_PY:ua,gu_IN:"\u0aad\u0abe\u0ab0\u0aa4",gv_GB:Aa,ha_Arab_NG:"\u0646\u064a\u062c\u064a\u0631\u064a\u0627",ha_GH:"\u063a\u0627\u0646\u0627",ha_Latn_GH:r,ha_Latn_NE:"Niger",ha_Latn_NG:"Nig\u00e9ria",ha_NE:"\u0627\u0644\u0646\u064a\u062c\u0631",ha_NG:"\u0646\u064a\u062c\u064a\u0631\u064a\u0627",haw_US:"\u02bbAmelika Hui P\u016b \u02bbIa",
106he_IL:"\u05d9\u05e9\u05e8\u05d0\u05dc",hi_IN:W,ho_PG:z,hr_BA:p,hr_HR:"Hrvatska",ht_HT:"Ha\u00efti",hu_HU:"Magyarorsz\u00e1g",hy_AM:gb,hy_AM_REVISED:gb,id_ID:u,ig_NG:y,ii_CN:"\ua34f\ua1e9",is_IS:"\u00cdsland",it_CH:"Svizzera",it_IT:"Italia",it_SM:"San Marino",ja_JP:"\u65e5\u672c",ka_GE:"\u10e1\u10d0\u10e5\u10d0\u10e0\u10d7\u10d5\u10d4\u10da\u10dd",kaj_NG:y,kam_KE:"Kenya",kcg_NG:y,kfo_NG:"Nig\u00e9ria",kk_KZ:"\u049a\u0430\u0437\u0430\u049b\u0441\u0442\u0430\u043d",kl_GL:ja,km_KH:"\u1780\u1798\u17d2\u1796\u17bb\u1787\u17b6",
107kn_IN:"\u0cad\u0cbe\u0cb0\u0ca4",ko_KP:mb,ko_KR:"\ub300\ud55c\ubbfc\uad6d",kok_IN:W,kos_FM:x,kpe_GN:"Guin\u00e9e",kpe_LR:"Lib\u00e9ria",ks_IN:W,ku_IQ:"Irak",ku_IR:"\u0130ran",ku_Latn_IQ:"Irak",ku_Latn_IR:"\u0130ran",ku_Latn_SY:"Suriye",ku_Latn_TR:G,ku_SY:"Suriye",ku_TR:G,kw_GB:Aa,ky_Cyrl_KG:eb,ky_KG:"K\u0131rg\u0131zistan",la_VA:"Vaticano",lb_LU:la,ln_CD:Ca,ln_CG:"Kongo",lo_LA:"Laos",lt_LT:"Lietuva",lv_LV:"Latvija",mg_MG:ma,mh_MH:na,mi_NZ:qa,mk_MK:"\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u0458\u0430",
108ml_IN:"\u0d07\u0d28\u0d4d\u0d24\u0d4d\u0d2f",mn_Cyrl_MN:"\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u044f",mn_MN:"\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u044f",mr_IN:W,ms_BN:"Brunei",ms_MY:"Malaysia",ms_SG:"Singapura",mt_MT:"Malta",my_MM:"Myanmar",na_NR:"Nauru",nb_NO:"Norge",nb_SJ:Ka,ne_NP:"\u0928\u0947\u092a\u093e\u0932",niu_NU:"Niue",nl_AN:pa,nl_AW:"Aruba",nl_BE:"Belgi\u00eb",nl_NL:"Nederland",nl_SR:"Suriname",nn_NO:"Noreg",nr_ZA:B,nso_ZA:B,ny_MW:"Malawi",om_ET:v,om_KE:"Keeniyaa",or_IN:"\u0b2d\u0b3e\u0b30\u0b24",
109pa_Arab_PK:V,pa_Guru_IN:"\u0a2d\u0a3e\u0a30\u0a24",pa_IN:"\u0a2d\u0a3e\u0a30\u0a24",pa_PK:V,pap_AN:pa,pau_PW:"Palau",pl_PL:"Polska",pon_FM:x,ps_AF:U,pt_AO:"Angola",pt_BR:"Brasil",pt_CV:"Cabo Verde",pt_GW:"Guin\u00e9 Bissau",pt_MZ:"Mo\u00e7ambique",pt_PT:"Portugal",pt_ST:Ma,pt_TL:Oa,qu_BO:k,qu_PE:"Per\u00fa",rm_CH:"Schweiz",rn_BI:"Burundi",ro_MD:oa,ro_RO:"Rom\u00e2nia",ru_BY:db,ru_KG:eb,ru_KZ:"\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d",ru_RU:"\u0420\u043e\u0441\u0441\u0438\u044f",ru_UA:"\u0423\u043a\u0440\u0430\u0438\u043d\u0430",
110rw_RW:A,sa_IN:W,sd_Deva_IN:W,sd_IN:W,se_FI:"Finland",se_NO:"Norge",sg_CF:Ba,sh_BA:"Bosnia and Herzegovina",sh_CS:Ga,si_LK:"Sri Lanka",sid_ET:v,sk_SK:Ia,sl_SI:"Slovenija",sm_AS:b,sm_WS:"Samoa",so_DJ:"Jabuuti",so_ET:"Itoobiya",so_KE:"Kiiniya",so_SO:"Soomaaliya",sq_AL:"Shqip\u00ebria",sr_BA:"\u0411\u043e\u0441\u043d\u0430 \u0438 \u0425\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u0430",sr_CS:"\u0421\u0440\u0431\u0438\u0458\u0430 \u0438 \u0426\u0440\u043d\u0430 \u0413\u043e\u0440\u0430",sr_Cyrl_BA:"\u0411\u043e\u0441\u043d\u0438\u044f",
111sr_Cyrl_CS:"\u0421\u0435\u0440\u0431\u0438\u044f \u0438 \u0427\u0435\u0440\u043d\u043e\u0433\u043e\u0440\u0438\u044f",sr_Cyrl_ME:"\u0427\u0435\u0440\u043d\u043e\u0433\u043e\u0440\u0438\u044f",sr_Cyrl_RS:"\u0421\u0435\u0440\u0431\u0438\u044f",sr_Latn_BA:p,sr_Latn_CS:"Srbija i Crna Gora",sr_Latn_ME:"Crna Gora",sr_Latn_RS:"Srbija",sr_ME:"\u0426\u0440\u043d\u0430 \u0413\u043e\u0440\u0430",sr_RS:"\u0421\u0440\u0431\u0438\u0458\u0430",ss_SZ:La,ss_ZA:B,st_LS:"Lesotho",st_ZA:B,su_ID:u,sv_AX:"\u00c5land",
112sv_FI:"Finland",sv_SE:"Sverige",sw_KE:"Kenya",sw_TZ:Na,sw_UG:"Uganda",swb_KM:lb,syr_SY:"Syria",ta_IN:"\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe",ta_LK:"\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8",ta_SG:"\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd",te_IN:"\u0c2d\u0c3e\u0c30\u0c24 \u0c26\u0c47\u0c33\u0c02",tet_TL:Oa,tg_Cyrl_TJ:"\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d",tg_TJ:"\u062a\u0627\u062c\u06a9\u0633\u062a\u0627\u0646",th_TH:"\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28\u0e44\u0e17\u0e22",
113ti_ER:"\u12a4\u122d\u1275\u122b",ti_ET:X,tig_ER:"\u12a4\u122d\u1275\u122b",tk_TM:"\u062a\u0631\u06a9\u0645\u0646\u0633\u062a\u0627\u0646",tkl_TK:E,tn_BW:q,tn_ZA:B,to_TO:"Tonga",tpi_PG:z,tr_CY:"G\u00fcney K\u0131br\u0131s Rum Kesimi",tr_TR:G,ts_ZA:B,tt_RU:"\u0420\u043e\u0441\u0441\u0438\u044f",tvl_TV:F,ty_PF:wa,uk_UA:"\u
1130423\u043a\u0440\u0430\u0457\u043d\u0430",uli_FM:x,und_ZZ:Ua,ur_IN:"\u0628\u06be\u0627\u0631\u062a",ur_PK:V,uz_AF:"Afganistan",uz_Arab_AF:U,uz_Cyrl_UZ:"\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d",
114uz_Latn_UZ:"O\u02bfzbekiston",uz_UZ:"\u040e\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u043e\u043d",ve_ZA:B,vi_VN:"Vi\u1ec7t Nam",wal_ET:X,wo_Arab_SN:"\u0627\u0644\u0633\u0646\u063a\u0627\u0644",wo_Latn_SN:C,wo_SN:C,xh_ZA:B,yap_FM:x,yo_NG:y,zh_CN:"\u4e2d\u56fd",zh_HK:"\u9999\u6e2f",zh_Hans_CN:"\u4e2d\u56fd",zh_Hans_SG:"\u65b0\u52a0\u5761",zh_Hant_HK:"\u4e2d\u83ef\u4eba\u6c11\u5171\u548c\u570b\u9999\u6e2f\u7279\u5225\u884c\u653f\u5340",zh_Hant_MO:"\u6fb3\u9580",zh_Hant_TW:"\u81fa\u7063",zh_MO:"\u6fb3\u95e8",
115zh_SG:"\u65b0\u52a0\u5761",zh_TW:"\u53f0\u6e7e",zu_ZA:B},LANGUAGE:{aa:"afar",ab:"\u0430\u0431\u0445\u0430\u0437\u0441\u043a\u0438\u0439",ace:"Aceh",ach:"Acoli",ada:"Adangme",ady:"\u0430\u0434\u044b\u0433\u0435\u0439\u0441\u043a\u0438\u0439",ae:"Avestan",af:"Afrikaans",afa:"Afro-Asiatic Language",afh:"Afrihili",ain:"Ainu",ak:"Akan",akk:"Akkadian",ale:"Aleut",alg:"Algonquian Language",alt:"Southern Altai",am:"\u12a0\u121b\u122d\u129b",an:"Aragonese",ang:"Old English",anp:"Angika",apa:"Apache Language",
116ar:"\u0627\u0644\u0639\u0631\u0628\u064a\u0629",arc:"Aramaic",arn:"Araucanian",arp:"Arapaho",art:"Artificial Language",arw:"Arawak",as:"\u0985\u09b8\u09ae\u09c0\u09af\u09bc\u09be",ast:"asturiano",ath:"Athapascan Language",aus:"Australian Language",av:"\u0430\u0432\u0430\u0440\u0441\u043a\u0438\u0439",awa:"Awadhi",ay:"aimara",az:"az\u0259rbaycanca",az_Arab:"\u062a\u0631\u06a9\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646\u06cc",az_Cyrl:"\u0410\u0437\u04d9\u0440\u0431\u0430\u0458\u04b9\u0430\u043d",
117az_Latn:"Azerice",ba:"\u0431\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u0438\u0439",bad:"Banda",bai:"Bamileke Language",bal:"\u0628\u0644\u0648\u0686\u06cc",ban:"Balin",bas:"Basa",bat:"Baltic Language",be:"\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f",bej:"Beja",bem:"Bemba",ber:"Berber",bg:"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438",bh:"\u092c\u093f\u0939\u093e\u0930\u0940",bho:"Bhojpuri",bi:"bichelamar ; bislama",bik:"Bikol",bin:"Bini",bla:"Siksika",bm:"bambara",bn:"\u09ac\u09be\u0982\u09b2\u09be",
118bnt:"Bantu",bo:"\u0f54\u0f7c\u0f51\u0f0b\u0f66\u0f90\u0f51\u0f0b",br:"breton",bra:"Braj",bs:"Bosanski",btk:"Batak",bua:"Buriat",bug:"Bugis",byn:"\u1265\u120a\u1295",ca:"catal\u00e0",cad:"Caddo",cai:"Central American Indian Language",car:"Carib",cau:"Caucasian Language",cch:"Atsam",ce:"\u0447\u0435\u0447\u0435\u043d\u0441\u043a\u0438\u0439",ceb:"Cebuano",cel:"Celtic Language",ch:"Chamorro",chb:"Chibcha",chg:"Chagatai",chk:"Chuukese",chm:"\u043c\u0430\u0440\u0438\u0439\u0441\u043a\u0438\u0439 (\u0447\u0435\u0440\u0435\u043c\u0438\u0441\u0441\u043a\u0438\u0439)",
119chn:"Chinook Jargon",cho:"Choctaw",chp:"Chipewyan",chr:"Cherokee",chy:"Cheyenne",cmc:"Chamic Language",co:"corse",cop:"\u0642\u0628\u0637\u064a\u0629",cop_Arab:"\u0642\u0628\u0637\u064a\u0629",cpe:"English-based Creole or Pidgin",cpf:"French-based Creole or Pidgin",cpp:"Portuguese-based Creole or Pidgin",cr:"Cree",crh:"Crimean Turkish",crp:"Creole or Pidgin",cs:"\u010de\u0161tina",csb:"Kashubian",cu:"Church Slavic",cus:"Cushitic Language",cv:"\u0447\u0443\u0432\u0430\u0448\u0441\u043a\u0438\u0439",
120cy:"Cymraeg",da:"dansk",dak:"Dakota",dar:"\u0434\u0430\u0440\u0433\u0432\u0430",day:"Dayak",de:"Deutsch",del:"Delaware",den:"Slave",dgr:"Dogrib",din:"Dinka",doi:"\u0627\u0644\u062f\u0648\u062c\u0631\u0649",dra:"Dravidian Language",dsb:"Lower Sorbian",dua:"Duala",dum:"Middle Dutch",dv:"Divehi",dyu:"dioula",dz:"\u0f62\u0fab\u0f7c\u0f44\u0f0b\u0f41",ee:"Ewe",efi:"Efik",egy:"Ancient Egyptian",eka:"Ekajuk",el:"\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",elx:"Elamite",en:"English",enm:"Middle English",
121eo:"esperanto",es:"espa\u00f1ol",et:"eesti",eu:"euskara",ewo:"Ewondo",fa:"\u0641\u0627\u0631\u0633\u06cc",fan:"fang",fat:"Fanti",ff:"Fulah",fi:"suomi",fil:"Filipino",fiu:"Finno-Ugrian Language",fj:"Fijian",fo:"f\u00f8royskt",fon:"Fon",fr:"fran\u00e7ais",frm:"Middle French",fro:"Old French",frr:"Northern Frisian",frs:"Eastern Frisian",fur:"friulano",fy:"Fries",ga:"Gaeilge",gaa:"Ga",gay:"Gayo",gba:"Gbaya",gd:"Scottish Gaelic",gem:"Germanic Language",gez:"\u130d\u12d5\u12dd\u129b",gil:"Gilbertese",gl:"galego",
122gmh:"Middle High German",gn:"guaran\u00ed",goh:"Old High German",gon:"Gondi",gor:"Gorontalo",got:"Gothic",grb:"Grebo",grc:"\u0391\u03c1\u03c7\u03b1\u03af\u03b1 \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",gsw:"Schweizerdeutsch",gu:"\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0",gv:"Gaelg",gwi:"Gwich\u02bcin",ha:"\u0627\u0644\u0647\u0648\u0633\u0627",ha_Arab:"\u0627\u0644\u0647\u0648\u0633\u0627",ha_Latn:"haoussa",hai:"Haida",haw:"\u02bb\u014dlelo Hawai\u02bbi",he:"\u05e2\u05d1\u05e8\u05d9\u05ea",
123hi:"\u0939\u093f\u0902\u0926\u0940",hil:"Hiligaynon",him:"Himachali",hit:"Hittite",hmn:"Hmong",ho:"Hiri Motu",hr:"hrvatski",hsb:"Upper Sorbian",ht:"ha\u00eftien",hu:"magyar",hup:"Hupa",hy:"\u0540\u0561\u0575\u0565\u0580\u0567\u0576",hz:"Herero",ia:"interlingvao",iba:"Iban",id:"Bahasa Indonesia",ie:"Interlingue",ig:"Igbo",ii:"\ua188\ua320\ua259",ijo:"Ijo",ik:"Inupiaq",ilo:"Iloko",inc:"Indic Language",ine:"Indo-European Language",inh:"\u0438\u043d\u0433\u0443\u0448\u0441\u043a\u0438\u0439",io:"Ido",
124ira:"Iranian Language",iro:"Iroquoian Language",is:"\u00edslenska",it:"italiano",iu:"Inuktitut",ja:"\u65e5\u672c\u8a9e",jbo:"Lojban",jpr:"Judeo-Persian",jrb:"Judeo-Arabic",jv:"Jawa",ka:"\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8",kaa:"\u043a\u0430\u0440\u0430\u043a\u0430\u043b\u043f\u0430\u043a\u0441\u043a\u0438\u0439",kab:"kabyle",kac:"Kachin",kaj:"Jju",kam:"Kamba",kar:"Karen",kaw:"Kawi",kbd:"\u043a\u0430\u0431\u0430\u0440\u0434\u0438\u043d\u0441\u043a\u0438\u0439",kcg:"Tyap",kfo:"koro",kg:"Kongo",
125kha:"Khasi",khi:"Khoisan Language",kho:"Khotanese",ki:"Kikuyu",kj:"Kuanyama",kk:"\u049a\u0430\u0437\u0430\u049b",kl:"kalaallisut",km:"\u1797\u17b6\u179f\u17b6\u1781\u17d2\u1798\u17c2\u179a",kmb:"quimbundo",kn:"\u0c95\u0ca8\u0ccd\u0ca8\u0ca1",ko:"\ud55c\uad6d\uc5b4",kok:"\u0915\u094b\u0902\u0915\u0923\u0940",kos:"Kosraean",kpe:"kpell\u00e9",kr:"Kanuri",krc:"\u043a\u0430\u0440\u0430\u0447\u0430\u0435\u0432\u043e-\u0431\u0430\u043b\u043a\u0430\u0440\u0441\u043a\u0438\u0439",krl:"\u043a\u0430\u0440\u0435\u043b\u044c\u0441\u043a\u0438\u0439",
126kro:"Kru",kru:"Kurukh",ks:"\u0915\u093e\u0936\u094d\u092e\u093f\u0930\u0940",ku:"K\u00fcrt\u00e7e",ku_Arab:"\u0627\u0644\u0643\u0631\u062f\u064a\u0629",ku_Latn:"K\u00fcrt\u00e7e",kum:"\u043a\u0443\u043c\u044b\u043a\u0441\u043a\u0438\u0439",kut:"Kutenai",kv:"Komi",kw:"kernewek",ky:"K\u0131rg\u0131zca",ky_Arab:"\u0627\u0644\u0642\u064a\u0631\u063a\u0633\u062a\u0627\u0646\u064a\u0629",ky_Cyrl:"\u043a\u0438\u0440\u0433\u0438\u0437\u0441\u043a\u0438\u0439",la:"latino",lad:"\u05dc\u05d3\u05d9\u05e0\u05d5",
127lah:"\u0644\u0627\u0647\u0646\u062f\u0627",lam:"Lamba",lb:"luxembourgeois",lez:"\u
127043b\u0435\u0437\u0433\u0438\u043d\u0441\u043a\u0438\u0439",lg:"Ganda",li:"Limburgs",ln:"lingala",lo:"Lao",lol:"mongo",loz:"Lozi",lt:"lietuvi\u0173",lu:"luba-katanga",lua:"luba-lulua",lui:"Luiseno",lun:"Lunda",luo:"Luo",lus:"Lushai",lv:"latvie\u0161u",mad:"Madura",mag:"Magahi",mai:"Maithili",mak:"Makassar",man:"Mandingo",map:"Austronesian",mas:"Masai",mdf:"\u043c\u043e\u043a\u0448\u0430",mdr:"Mandar",men:"Mende",mg:"malgache",
128mga:"Middle Irish",mh:"Marshallese",mi:"Maori",mic:"Micmac",min:"Minangkabau",mis:"Miscellaneous Language",mk:"\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438",mkh:"Mon-Khmer Language",ml:"\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02",mn:fb,mn_Cyrl:fb,mn_Mong:fb,mnc:"Manchu",mni:"Manipuri",mno:"Manobo Language",mo:"Moldavian",moh:"Mohawk",mos:"mor\u00e9 ; mossi",mr:"\u092e\u0930\u093e\u0920\u0940",ms:"Bahasa Melayu",mt:"Malti",mul:"Multiple Languages",mun:"Munda Language",mus:"Creek",mwl:"Mirandese",
129mwr:"Marwari",my:"Burmese",myn:"Mayan Language",myv:"\u044d\u0440\u0437\u044f",na:"Nauru",nah:"Nahuatl",nai:"North American Indian Language",nap:"napoletano",nb:"norsk bokm\u00e5l",nd:"North Ndebele",nds:"Low German",ne:"\u0928\u0947\u092a\u093e\u0932\u0940","new":"Newari",ng:"Ndonga",nia:"Nias",nic:"Niger-Kordofanian Language",niu:"Niuean",nl:"Nederlands",nn:"nynorsk",no:"Norwegian",nog:"\u043d\u043e\u0433\u0430\u0439\u0441\u043a\u0438\u0439",non:"Old Norse",nqo:"N\u2019Ko",nr:"South Ndebele",nso:"Northern Sotho",
130nub:"Nubian Language",nv:"Navajo",nwc:"Classical Newari",ny:"nianja; chicheua; cheua",nym:"Nyamwezi",nyn:"Nyankole",nyo:"Nyoro",nzi:"Nzima",oc:"occitan",oj:"Ojibwa",om:"Oromoo",or:"\u0b13\u0b21\u0b3c\u0b3f\u0b06",os:"\u043e\u0441\u0435\u0442\u0438\u043d\u0441\u043a\u0438\u0439",osa:"Osage",ota:"Ottoman Turkish",oto:"Otomian Language",pa:"\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40",pa_Arab:"\u067e\u0646\u062c\u0627\u0628",pa_Guru:"\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40",paa:"Papuan Language",pag:"Pangasinan",
131pal:"Pahlavi",pam:"Pampanga",pap:"Papiamento",pau:"Palauan",peo:"Old Persian",phi:"Philippine Language",phn:"Phoenician",pi:"\u0e1a\u0e32\u0e25\u0e35",pl:"polski",pon:"Pohnpeian",pra:"Prakrit Language",pro:"Old Proven\u00e7al",ps:"\u067e\u069a\u062a\u0648",pt:"portugu\u00eas",qu:"quechua",raj:"Rajasthani",rap:"Rapanui",rar:"Rarotongan",rm:"R\u00e4toromanisch",rn:"roundi",ro:"rom\u00e2n\u0103",roa:"Romance Language",rom:"Romany",ru:"\u0440\u0443\u0441\u0441\u043a\u0438\u0439",rup:"Aromanian",rw:"rwanda",
132sa:"\u0938\u0902\u0938\u094d\u0915\u0943\u0924 \u092d\u093e\u0937\u093e",sad:"Sandawe",sah:"\u044f\u043a\u0443\u0442\u0441\u043a\u0438\u0439",sai:"South American Indian Language",sal:"Salish
132an Language",sam:"\u05d0\u05e8\u05de\u05d9\u05ea \u05e9\u05d5\u05de\u05e8\u05d5\u05e0\u05d9\u05ea",sas:"Sasak",sat:"Santali",sc:"Sardinian",scn:"siciliano",sco:"Scots",sd:"\u0938\u093f\u0928\u094d\u0927\u0940",sd_Arab:"\u0633\u0646\u062f\u06cc",sd_Deva:"\u0938\u093f\u0928\u094d\u0927\u0940",se:"nordsamiska",sel:"\u0441\u0435\u043b\u044c\u043a\u0443\u043f\u0441\u043a\u0438\u0439",
133sem:"Semitic Language",sg:"sangho",sga:"Old Irish",sgn:"Sign Language",sh:"Serbo-Croatian",shn:"Shan",si:"Sinhalese",sid:"Sidamo",sio:"Siouan Language",sit:"Sino-Tibetan Language",sk:"slovensk\u00fd",sl:"sloven\u0161\u010dina",sla:"Slavic Language",sm:"Samoan",sma:"sydsamiska",smi:"Sami Language",smj:"lulesamiska",smn:"Inari Sami",sms:"Skolt Sami",sn:"Shona",snk:"sonink\u00e9",so:"Soomaali",sog:"Sogdien",son:"Songhai",sq:"shqipe",sr:"\u0421\u0440\u043f\u0441\u043a\u0438",sr_Cyrl:"\u0441\u0435\u0440\u0431\u0441\u043a\u0438\u0439",
134sr_Latn:"Srpski",srn:"Sranantongo",srr:"s\u00e9r\u00e8re",ss:"Swati",ssa:"Nilo-Saharan Language",st:"Sesotho",su:"Sundan",suk:"Sukuma",sus:"soussou",sux:"Sumerian",sv:"svenska",sw:"Kiswahili",syc:"Classical Syriac",syr:"Syriac",ta:"\u0ba4\u0bae\u0bbf\u0bb4\u0bcd",tai:"Tai Language",te:"\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41",tem:"Timne",ter:"Tereno",tet:"t\u00e9tum",tg:"\u062a\u0627\u062c\u06a9",tg_Arab:"\u062a\u0627\u062c\u06a9",tg_Cyrl:"\u0442\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438\u0439",
135th:"\u0e44\u0e17\u0e22",ti:"\u1275\u130d\u122d\u129b",tig:"\u1275\u130d\u1228",tiv:"Tiv",tk:"\u062a\u0631\u06a9\u0645\u0646\u06cc",tkl:E,tl:"Tagalog",tlh:"Klingon",tli:"Tlingit",tmh:"tamacheq",tn:"Tswana",to:"Tonga",tog:"Nyasa Tonga",tpi:"Tok Pisin",tr:"T\u00fcrk\u00e7e",ts:"Tsonga",tsi:"Tsimshian",tt:"\u0442\u0430\u0442\u0430\u0440\u0441\u043a\u0438\u0439",tum:"Tumbuka",tup:"Tupi Language",tut:"\u0430\u043b\u0442\u0430\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)",tvl:F,tw:"Twi",
136ty:"tahitien",tyv:"\u0442\u0443\u0432\u0438\u043d\u0441\u043a\u0438\u0439",udm:"\u0443\u0434\u043c\u0443\u0440\u0442\u0441\u043a\u0438\u0439",ug:"\u0443\u0439\u0433\u0443\u0440\u0441\u043a\u0438\u0439",uga:"Ugaritic",uk:"\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",umb:"umbundu",und:"English",ur:"\u0627\u0631\u062f\u0648",uz:"\u040e\u0437\u0431\u0435\u043a",uz_Arab:"\u0627\u06c9\u0632\u0628\u06d0\u06a9",uz_Cyrl:"\u0443\u0437\u0431\u0435\u043a\u0441\u043a\u0438\u0439",uz_Latn:"o'zbekcha",
137vai:"Vai",ve:"Venda",vi:"Ti\u1ebfng Vi\u1ec7t",vo:"volapuko",vot:"Votic",wa:"Wallonisch",wak:"Wakashan Language",wal:"Walamo",war:"Waray",was:"Washo",wen:"Sorbian Language",wo:"wolof",wo_Arab:"\u0627\u0644\u0648\u0644\u0648\u0641",wo_Latn:"wolof",xal:"\u043a\u0430\u043b\u043c\u044b\u0446\u043a\u0438\u0439",xh:"Xhosa",yao:"iao",yap:"Yapese",yi:"\u05d9\u05d9\u05d3\u05d9\u05e9",yo:"Yoruba",ypk:"Yupik Language",za:"Zhuang",zap:"Zapotec",zen:"Zenaga",zh:"\u4e2d\u6587",zh_Hans:"\u4e2d\u6587",zh_Hant:"\u4e2d\u6587",
138znd:"Zande",zu:"Zulu",zun:"Zuni",zxx:"No linguistic content",zza:"Zaza"}};Z.locale.hg=function(a){a=a.replace(/-/g,"_");Z.locale.M=a};Z.locale.Ea=function(){Z.locale.M||(Z.locale.M="en");return Z.locale.M};Z.locale.H={Gd:"DateTimeConstants",Od:"NumberFormatConstants",ic:"TimeZoneConstants",Yb:ka,jc:"TimeZoneSelectedIds",lc:"TimeZoneSelectedShortNames",kc:"TimeZoneSelectedLongNames",hc:"TimeZoneAllLongNames"};Z.locale.Da=function(a){return(a=a.match(/^\w{2,3}([-_]|$)/))?a[0].replace(/[_-]/g,""):""};
139Z.locale.ob=function(a){return(a=a.match(/[-_]([a-zA-Z]{2}|\d{3})([-_]|$)/))?a[0].replace(/[_-]/g,""):""};Z.locale.Ze=function(a){a=a.split(/[-_]/g);return 1<a.length&&a[1].match(/^[a-zA-Z]{4}$/)?a[1]:""};Z.locale.$e=function(a){return(a=a.match(/[-_]([a-z]{2,})/))?a[1]:""};Z.locale.Ve=function(a){var c=Z.locale.Da(a)+"_"+Z.locale.ob(a);return c in Z.locale.J.COUNTRY?Z.locale.J.COUNTRY[c]:a};Z.locale.Re=function(a,c){var d=Z.locale.ob(a);c=Z.locale.Lc(d,c);return c==d?a:c};
140Z.locale.Lc=function(a,c){c||(c=Z.locale.pb());
140return a in c.COUNTRY?c.COUNTRY[a]:a};Z.locale.We=function(a){if(a in Z.locale.J.LANGUAGE)return Z.locale.J.LANGUAGE[a];var c=Z.locale.Da(a);return c in Z.locale.J.LANGUAGE?Z.locale.J.LANGUAGE[c]:a};Z.locale.Se=function(a,c){c||(c=Z.locale.pb());if(a in c.LANGUAGE)return c.LANGUAGE[a];var d=Z.locale.Da(a);return d in c.LANGUAGE?c.LANGUAGE[d]:a};Z.locale.K=function(a,c,d){Z.locale.m[c]||(Z.locale.m[c]={});Z.locale.m[c][d]=a;Z.locale.M||(Z.locale.M=d)};
141Z.locale.uf=function(a,c){return a in Z.locale.m&&c in Z.locale.m[a]};Z.locale.m={};Z.locale.Sf=function(a,c){Z.locale.K(a,Z.locale.H.ic,c)};Z.locale.Qf=function(a,c){Z.locale.K(a,Z.locale.H.Yb,c)};Z.locale.Tf=function(a,c){Z.locale.K(a,Z.locale.H.jc,c)};Z.locale.Vf=function(a,c){Z.locale.K(a,Z.locale.H.lc,c)};Z.locale.Uf=function(a,c){Z.locale.K(a,Z.locale.H.kc,c)};Z.locale.Rf=function(a,c){Z.locale.K(a,Z.locale.H.hc,c)};Z.locale.pb=function(){var a=Z.locale.Ea(),a=a?a:Z.locale.Ea();if(ka in Z.locale.m)return Z.locale.m.LocaleNameConstants[a]};
142Z.locale.Ye=function(a,c){c=c?c:Z.locale.Ea();if(a in Z.locale.m){if(c in Z.locale.m[a])return Z.locale.m[a][c];c=c.split("_");return 1<c.length&&c[0]in Z.locale.m[a]?Z.locale.m[a][c[0]]:Z.locale.m[a].en}};var google={a:{}};google.a.c={};
143google.a.c.languages={af:!0,am:!0,az:!0,ar:!0,arb:"ar",bg:!0,bn:!0,ca:!0,cs:!0,cmn:"zh",da:!0,de:!0,el:!0,en:!0,en_gb:!0,es:!0,es_419:!0,et:!0,eu:!0,fa:!0,fi:!0,fil:!0,fr:!0,fr_ca:!0,gl:!0,ka:!0,gu:!0,he:"iw",hi:!0,hr:!0,hu:!0,hy:!0,id:!0,"in":"id",is:!0,it:!0,iw:!0,ja:!0,ji:"yi",jv:!1,jw:"jv",km:!0,kn:!0,ko:!0,lo:!0,lt:!0,lv:!0,ml:!0,mn:!0,mo:"ro",mr:!0,ms:!0,nb:"no",ne:!0,nl:!0,no:!0,pl:!0,pt:"pt_br",pt_br:!0,pt_pt:!0,ro:!0,ru:!0,si:!0,sk:!0,sl:!0,sr:!0,sv:!0,sw:!0,swh:"sw",ta:!0,te:!0,th:!0,tl:"fil",
144tr:!0,uk:!0,ur:!0,vi:!0,yi:!1,zh:"zh_cn",zh_cn:!0,zh_hk:!0,zh_tw:!0,zsm:"ms",zu:!0};google.a.c.yd={1:"1.0","1.0":"current","1.1":"upcoming",current:"45.1",upcoming:"45.1",41:"top",42:"top",43:"top",44:"top"};google.a.c.R={};google.a.c.I="unknown";google.a.c.log=Y();google.a.c.error=Y();google.a.c.Z=!1;google.a.c.window=window;
145google.a.c.Eb={gstatic:{prefix:"https://www.gstatic.com/charts",debug:"{prefix}/debug/{version}/jsapi_debug_{package}_module.js",compiled:"{prefix}/{version}/js/jsapi_compiled_{package}_module.js",i18n:"{prefix}/{version}/i18n/jsapi_compiled_i18n_{package}_module__{language}.js",css_prefix:"{prefix}/{version}/css",css:Za,css_debug:Za,third_party:ab,third_party_gen:ab}};google.a.c.i=google.a.c.Eb.gstatic;
146google.a.c.Ec={format:[],"default":["format"],ui:["default"],ui_base:["default"],annotatedtimeline:[Q],annotationchart:[Q,"controls",L,"table"],areachart:[Q,J],bar:[Q,M,S],barchart:[Q,J],browserchart:[Q],calendar:[Q],charteditor:[Q,L,O,Wa,"gauge","motionchart","orgchart","table"],charteditor_base:[R,L,O,Wa,"gauge","motionchart","orgchart","table_base"],columnchart:[Q,J],controls:[Q],controls_base:[R],corechart:[Q],gantt:[Q,M],gauge:[Q],geochart:[Q],geomap:[Q],geomap_base:[R],helloworld:[Q],imageareachart:[Q,
147O],imagebarchart:[Q,O],imagelinechart:[Q,O],imagechart:[Q],imagepiechart:[Q,O],imagesparkline:[Q,O],intensitymap:[Q],line:[Q,M,S],linechart:[Q,J],map:[Q],motionchart:[Q],orgchart:[Q],overtimecharts:[Q,L],piechart:[Q,J],sankey:["d3","d3.sankey",Q],scatter:[Q,M,S],scatterchart:[Q,J],table:[Q],table_base:[R],timeline:[Q,M],treemap:[Q],wordtree:[Q]};google.a.c.td={d3:"d3/d3.js","d3.sankey":"d3/d3.sankey.js",webfontloader:"webfontloader/webfont.js"};google.a.c.Fb={dygraph:"dygraphs/dygraph-tickers-combined.js"};
148google.a.c.Bc={annotatedtimeline:"/annotatedtimeline/annotatedtimeline.css",annotationchart:"annotationchart/annotationchart.css",charteditor:"charteditor/charteditor.css",charteditor_base:"charteditor/charteditor_base.css",controls:"controls/controls.css",imagesparkline:"imagesparkline/imagesparkline.css",intensitymap:"intensitymap/intensitymap.css",orgchart:"orgchart/orgchart.css",table:"table/table.css",table_base:"table/table_base.css",ui:["util/util.css","core/tooltip.css"],ui_base:"util/util_base.css"};
149google.a.c.ua=function(a,c){c=c||{};for(var d=[],e=0;e<a.length;e++){var f=a[e];if(!c[f]){c[f]=!0;var g=google.a.c.Ec[f]||[];0<g.length&&(d=d.concat(google.a.c.ua(g,c)));d.push(f)}}return d};google.a.c.Kc=function(a){for(var c={},d=[],e=0;e<a.length;e++){var f=google.a.c.Bc[a[e]];Z.isArray(f)||(f=[f]);for(var g=0;g<f.length;g++){var h=f[g];h&&!c[h]&&(c[h]=!0,d.push(h))}}return d};
150google.a.c.md=function(a,c){if(c)if("undefined"===typeof a.onload){var d=!1;a.onreadystatechange=function(){d||(a.readyState&&a.readyState!==K?google.a.c.window.setTimeout(a.onreadystatechange,100):(d=!0,a.onreadystatechange=Y(),google.a.c.window.setTimeout(c,0)))}}else a.onload=c};
151google.a.c.zb=function(a,c,d){google.a.c.log("loadScript: "+a);var e=c.createElement("script");e.type=Ya;e.language="javascript";e.async=!1;e.defer=!1;c=c.body||c.head||c.getElementsByTagName("HEAD").item(0)||c.documentElement;c.insertBefore(e,c.lastChild);d&&google.a.c.md(e,d);e.src=a;google.a.c.log("end loadScript: "+a)};
152google.a.c.Zc=function(a,c){a=google.a.c.ua(a);for(var d=[],e=0;e<a.length;e++){var f=a[e];google.a.c.R[f]||d.push(f)}a=d;if(0===a.length)c();else{google.a.c.log("Load packages + dependencies - previous: "+a);var g=google.a.c.i.prefix,h=google.a.c.i.debug,l=google.a.c.i.compiled,m=google.a.c.i.i18n,n=google.a.c.I,T=google.a.c.Na;"en"===T&&(T=null);var D={},ya=a.length,ob=function(){for(var d=[],e=0;e<a.length;e++)d.push(D[a[e]]);eval("0,(function(){"+d.join("")+"})")();google.a.c.window.setTimeout(c,
1530)};google.a.c.ed=function(a,c){google.a.c.log("callback after loading "+a);D[a]=c;google.a.c.R[a]=!0;ya--;0===ya&&ob()};var nb=function(c){var d=google.a.c.Fc,e=a[c++];if(e){var f=e,D=google.a.c.td[e];D?(f=D,e===S&&(d=window.document),e=google.a.c.i.third_party):google.a.c.Fb[e]?(f=google.a.c.Fb[e],e=google.a.c.i.third_party_gen):e=google.a.c.Z?h:T?m:l;f=e.replace($a,g).replace(bb,n).replace("{language}",T).replace("{package}",f);google.a.c.zb(f,d);nb(c)}};nb(0)}};
154google.a.c.W=function(a){function c(){g=!0;for(var a=e.length,c=0;c<a;c++)e[c]()}function d(){h=!0;for(var a=f.length,c=0;c<a;c++)f[c]()}var e=[],f=[],g=!1,h=!1;google.a.c.W.count||(google.a.c.W.count=0);var l="load-css-"+google.a.c.W.count++,m={done:function(a){e.push(a);g&&a();return m},Ba:function(a){f.push(a);h&&a();return m}},n=document.createElement("link");n.setAttribute("id",l);n.setAttribute("rel","stylesheet");n.setAttribute("type","text/css");"undefined"!==typeof n.addEventListener?(n.addEventListener("load",
155c,!1),n.addEventListener("error",d,!1)):"undefined"!==typeof n.attachEvent&&n.attachEvent("onload",function(){var a,e=document.styleSheets.length;try{for(;e--;)if(a=document.styleSheets[e],a.id===l){c();return}}catch(ya){}g||d()});document.getElementsByTagName("head")[0].appendChild(n);n.setAttribute("href",a);return m};google.a.c.Vc=function(a,c){google.a.c.log("loadCSSFile: "+a);google.a.c.W(a).done(c).Ba(function(){google.a.c.error("loading css failed: "+a)})};
156google.a.c.Wc=function(a,c){a=google.a.c.ua(a);var d=google.a.c.Kc(a);if(null===d||0===d.length)c();else{google.a.c.log("Loading css files: "+d.join(", "));var e=google.a.c.i.prefix,f=google.a.c.i.css;google.a.c.Z&&(f=google.a.c.i.css_debug||f);var g=google.a.c.I,h=function(a){var m=d[a],l;l=a<d.length-1?function(){h(a+1)}:c;google.a.c.R[m]?(google.a.c.log("Already loaded "+m),google.a.c.window.setTimeout(l,0)):(google.a.c.R[m]=!0,m=f.replace("{css_prefix}",google.a.c.i.css_prefix).replace($a,e).replace(bb,
157g).replace("{cssFile}",m),google.a.c.Vc(m,l))};h(0)}};google.a.c.Cb=function(a){for(var c=a.replace(/-/g,"_").toLowerCase();Z.h(c);)a=c,c=google.a.c.languages[c],c===a&&(c=!1);c||(a.match(/_[^_]+$/)?(a=a.replace(/_[^_]+$/,""),a=google.a.c.Cb
157(a)):a="en");return a};
158google.a.c.jd=function(a,c){c.log&&(google.a.c.log=c.log);c.error&&(google.a.c.error=c.error);var d=c.debug,e=c.language||"",e=google.a.c.Cb(e);a||(a=c.version||"unknown");if(google.a.c.I&&google.a.c.I!==a||google.a.c.Na&&google.a.c.Na!==e||google.a.c.Z!==d)google.a.c.R={};google.a.c.I=a;google.a.c.Na=e;google.a.c.Z=d};google.a.c.ea=!0;google.a.c.S=!1;
159google.a.c.load=function(a,c){if(google.a.c.S)google.a.c.U(function(){google.a.c.load(a,c)});else{var d;d=a.match(/^(testing\/)?(.*)/);var e=d[1]||"";for(a=d[2];;){d=google.a.c.yd[a];if(null==d||"top"===d)break;a=d}google.a.c.i=google.a.c.Eb.gstatic;a=e+a;google.a.c.S=!0;var f=function(){google.a.c.S=!1;google.a.c.Oa()};if(null==d)e=function(){var d=Z.N("google.charts.loader.publicLoad")||Z.N("google.charts.versionSpecific.load"),e=Z.N("google.charts.loader.publicSetOnLoadCallback")||Z.N("google.charts.versionSpecific.setOnLoadCallback");
160d(a,c);e(f)},google.a.c.ea?(google.a.c.ea=!1,google.a.c.zb(google.a.c.i.prefix+"/"+a+"/loader.js",window.document,e)):e();else{if(!google.a.c.ea)throw Error("google.charts.load() cannot be called more than once with version 44 or earlier.");google.a.c.ea=!1;google.a.c.jd(a,c);google.a.c.log("google.charts.load version "+a);window.google=window.google||{};google.visualization=google.visualization||{};google.visualization.ModulePath=google.a.c.i.prefix;google.visualization.CssPath=google.a.c.i.css_prefix.replace($a,
161google.a.c.i.prefix).replace(bb,google.a.c.I);google.a.c.window=window;google.a.c.Fc=document;var g=c.packages;g&&0!==g.length||(g=["default"]);google.a.c.U(c.callback);google.a.c.Wc(g,function(){google.a.c.Zc(g,f)})}}};google.a.c.od=function(a){if(window.addEventListener)window.addEventListener("load",a,!1);else if(window.attachEvent)window.attachEvent("onload",a);else{var c=window.onload;window.onload=function(d){c&&c(d);a()}}};google.a.c.Jb=document&&document.readyState===K;
162google.a.c.od(function(){google.a.c.Jb=!0;google.a.c.Oa()});google.a.c.Oa=function(){!google.a.c.S&&google.a.c.Jb&&google.a.c.xc()};google.a.c.Ca=[];google.a.c.U=function(a){a&&google.a.c.Ca.push(a);google.a.c.S||google.a.c.Oa()};google.a.c.xc=function(){var a=google.a.c.Ca;for(google.a.c.Ca=[];0<a.length;)a.shift()()};google.a.c.Ra=function(a,c){google.a.c.ed(a,c)};if(Z.N(Xa))throw Error("Google Charts loader.js can only be loaded once.");google.a.load=function(){var a=0;"visualization"===arguments[a]&&a++;var c="current";Z.h(arguments[a])&&(c=arguments[a],a++);var d={};arguments.length>a&&(d=arguments[a]);google.a.c.load(c,d)};google.a.U=function(a){google.a.c.U(a)};google.a.Ra=function(a,c){google.a.c.Ra(a,c)};Z.Aa(Xa,google.a.load);Z.Aa("google.charts.setOnLoadCallback",google.a.U);Z.Aa("google.charts.packageLoadedCallback",google.a.Ra);}).call(this);
163
164google.charts.load('current', {packages: ['corechart']});
165/**
166 * @fileOverview Renders KML on the Google Maps JavaScript API Version 3
167 * @name GeoXML3
168 * @author Sterling Udell, Larry Ross, Brendan Byrd
169 * @see http://code.google.com/p/geoxml3/
170 *
171 * geoxml3.js
172 *
173 * Renders KML on the Google Maps JavaScript API Version 3
174 * http://code.google.com/p/geoxml3/
175 *
176 * Copyright 2010 Sterling Udell, Larry Ross
177 *
178 * Licensed under the Apache License, Version 2.0 (the "License");
179 * you may not use this file except in compliance with the License.
180 * You may obtain a copy of the License at
181 *
182 *    http://www.apache.org/licenses/LICENSE-2.0
183 *
184 * Unless required by applicable law or agreed to in writing, software
185 * distributed under the License is distributed on an "AS IS" BASIS,
186 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
187 * See the License for the specific language governing permissions and
188 * limitations under the License.
189 *
190 */
191/**
192 * A MultiGeometry object that will allow multiple polylines in a MultiGeometry
193 * containing LineStrings to be treated as a single object
194 *
195 * @param {MutiGeometryOptions} anonymous object.  Available properties:
196 * map: The map on which to attach the MultiGeometry
197 * paths: the individual polylines
198 * polylineOptions: options to use when constructing all the polylines
199 *
200 * @constructor
201 */
202// only if Google Maps API included
203if (!!window.google && !! google.maps) {
204	function MultiGeometry(multiGeometryOptions) {
205		function createPolyline(polylineOptions, mg) {
206			var polyline = new google.maps.Polyline(polylineOptions);
207			google.maps.event.addListener(polyline,'click', function(evt) { google.maps.event.trigger(mg,'click',evt);});
208			google.maps.event.addListener(polyline,'dblclick', function(evt) { google.maps.event.trigger(mg, 'dblclick', evt);});
209			google.maps.event.addListener(polyline,'mousedown', function(evt) { google.maps.event.trigger(mg, 'mousedown', evt);});
210			google.maps.event.addListener(polyline,'mousemove', function(evt) { google.maps.event.trigger(mg, 'mousemove', evt);});
211			google.maps.event.addListener(polyline,'mouseout', function(evt) { google.maps.event.trigger(mg, 'mouseout', evt);});
212			google.maps.event.addListener(polyline,'mouseover', function(evt) { google.maps.event.trigger(mg, 'mouseover', evt);});
213			google.maps.event.addListener(polyline,'mouseup', function(evt) { google.maps.event.trigger(mg, 'mouseup', evt);});
214			google.maps.event.addListener(polyline,'rightclick', function(evt) { google.maps.event.trigger(mg, 'rightclick', evt);});
215			return polyline;
216		}
217		this.setValues(multiGeometryOptions);
218		this.polylines = [];
219
220		for (i=0; i<this.paths.length;i++) {
221			var polylineOptions = multiGeometryOptions;
222			polylineOptions.path = this.paths[i];
223			var polyline = createPolyline(polylineOptions,this);
224			// Bind the polyline properties to the MultiGeometry properties
225			this.polylines.push(polyline);
226		}
227	}
228	MultiGeometry.prototype = new google.maps.MVCObject();
229	MultiGeometry.prototype.changed = function(key) {
230		// alert(key+" changed");
231		if (this.polylines) {
232			for (var i=0; i<this.polylines.length; i++) {
233				this.polylines[i].set(key,this.get(key));
234			}
235		}
236	};
237	MultiGeometry.prototype.setMap = function(map) { this.set('map',map); };
238	MultiGeometry.prototype.getMap = function() { return this.get('map'); };
239}
240
241// Extend the global String object with a method to remove leading and trailing whitespace
242if (!String.prototype.trim) {
243	/**
244	 * Remove leading and trailing whitespace.
245	 *
246	 * @augments String
247	 * @return {String}
248	 */
249	String.prototype.trim = function () {
250		return this.replace(/^\s+|\s+$/g, '');
251	};
252}
253
254/**
255 * @namespace The GeoXML3 namespace.
256 */
257geoXML3 = window.geoXML3 || {instances: []};
258
259/**
260 * Constructor for the root KML parser object.
261 *
262 * <p>All top-level objects and functions are declared under a namespace of geoXML3.
263 * The core object is geoXML3.parser; typically, you'll instantiate a one parser
264 * per map.</p>
265 *
266 * @class Main XML parser.
267 * @param {geoXML3.parserOptions} options
268 */
269geoXML3.parser = function (options) {
270	// Inherit from Google MVC Object to include event handling
271	google.maps.MVCObject.call(this);
272
273	// Private variables
274	var parserOptions = new geoXML3.parserOptions(options);
275	var docs        = [];  // Individual KML documents
276	var docsByUrl   = {};  // Same docs as an hash by cleanURL
277	var kmzMetaData = {};  // Extra files from KMZ data
278	var styles      = {};  // Global list of styles
279	var lastPlacemark;
280	var parserName;
281	if (!parserOptions.infoWindow && parserOptions.singleInfoWindow)
282		parserOptions.infoWindow = new google.maps.InfoWindow();
283
284	var parseKmlString = function (kmlString, docSet) {
285		// Internal values for the set of documents as a whole
286		var internals = {
287			parser: this,
288			docSet: docSet || [],
289			remaining: 1,
290			parseOnly: !(parserOptions.afterParse || parserOptions.processStyles)
291		};
292		thisDoc = new Object();
293		thisDoc.internals = internals;
294		internals.docSet.push(thisDoc);
295		render(geoXML3.xmlParse(kmlString),thisDoc);
296	}
297
298	var parse = function (urls, docSet) {
299		// Process one or more KML documents
300		if (!parserName) {
301			parserName = 'geoXML3.instances[' + (geoXML3.instances.push(this) - 1) + ']';
302		}
303
304		if (typeof urls === 'string') {
305			// Single KML document
306			urls = [urls];
307		}
308
309		// Internal values for the set of documents as a whole
310		var internals = {
311			parser: this,
312			docSet: docSet || [],
313			remaining: urls.length,
314			parseOnly: !(parserOptions.afterParse || parserOptions.processStyles)
315		};
316		var thisDoc, j;
317		for (var i = 0; i < urls.length; i++) {
318			var baseUrl = cleanURL(defileURL(location.pathname), urls[i]);
319			if (docsByUrl[baseUrl]) {
320				// Reloading an existing document
321				thisDoc = docsByUrl[baseUrl];
322				thisDoc.reload = true;
323			}
324			else {
325				thisDoc = new Object();
326				thisDoc.baseUrl = baseUrl;
327				internals.docSet.push(thisDoc);
328			}
329			thisDoc.url       = urls[i];
330			thisDoc.internals = internals;
331			fetchDoc(thisDoc.url, thisDoc);
332		}
333	};
334
335	function fetchDoc(url, doc, resFunc) {
336		resFunc = resFunc || function (responseXML) { render(responseXML, doc); };
337
338		if (typeof ZipFile === 'function' && typeof JSIO === 'object' && typeof JSIO.guessFileType === 'function') {  // KMZ support requires these modules loaded
339			// if url is a data URI scheme, do not guess type based on extension.
340			if (/^data:[^,]*(kmz)/.test(doc.baseUrl)) {
341				contentType = JSIO.FileType.Binary;
342			} else if (/^data:[^,]*(kml|xml)/.test(doc.baseUrl)) {
343				contentType = JSIO.FileType.XML;
344			} else if (/^data:/.test(doc.baseUrl)) {
345				contentType = JSIO.FileType.Unknown;
346			} else {
347				contentType = JSIO.guessFileType(doc.baseUrl);
348			}
349			if (contentType == JSIO.FileType.Binary || contentType == JSIO.FileType.Unknown) {
350				doc.isCompressed = true;
351				doc.baseDir = doc.baseUrl + '/';
352				geoXML3.fetchZIP(url, resFunc, doc.internals.parser);
353				return;
354			}
355		}
356		doc.isCompressed = false;
357		doc.baseDir = defileURL(doc.baseUrl);
358		geoXML3.fetchXML(url, resFunc);
359	}
360
361	var hideDocument = function (doc) {
362		if (!doc) doc = docs[0];
363		// Hide the map objects associated with a document
364		var i;
365		if (!!doc.markers) {
366			for (i = 0; i < doc.markers.length; i++) {
367				if(!!doc.markers[i].infoWindow) doc.markers[i].infoWindow.close();
368				doc.markers[i].setVisible(false);
369			}
370		}
371		if (!!doc.ggroundoverlays) {
372			for (i = 0; i < doc.ggroundoverlays.length; i++) {
373				doc.ggroundoverlays[i].setOpacity(0);
374			}
375		}
376		if (!!doc.gpolylines) {
377			for (i=0;i<doc.gpolylines.length;i++) {
378				if(!!doc.gpolylines[i].infoWindow) doc.gpolylines[i].infoWindow.close();
379				doc.gpolylines[i].setMap(null);
380			}
381		}
382		if (!!doc.gpolygons) {
383			for (i=0;i<doc.gpolygons.length;i++) {
384				if(!!doc.gpolygons[i].infoWindow) doc.gpolygons[i].infoWindow.close();
385				doc.gpolygons[i].setMap(null);
386			}
387		}
388	};
389
390	var showDocument = function (doc) {
391		if (!doc) doc = docs[0];
392		// Show the map objects associated with a document
393		var i;
394		if (!!doc.markers) {
395			for (i = 0; i < doc.markers.length; i++) {
396				doc.markers[i].setVisible(true);
397			}
398		}
399		if (!!doc.ggroundoverlays) {
400			for (i = 0; i < doc.ggroundoverlays.length; i++) {
401				doc.ggroundoverlays[i].setOpacity(doc.ggroundoverlays[i].percentOpacity_);
402			}
403		}
404		if (!!doc.gpolylines) {
405			for (i=0;i<doc.gpolylines.length;i++) {
406				doc.gpolylines[i].setMap(parserOptions.map);
407			}
408		}
409		if (!!doc.gpolygons) {
410			for (i=0;i<doc.gpolygons.length;i++) {
411				doc.gpolygons[i].setMap(parserOptions.map);
412			}
413		}
414	};
415
416	var defaultStyle = {
417		balloon: {
418			bgColor:   'ffffffff',
419			textColor: 'ff000000',
420			text: "<h3>$[name]</h3>\n<div>$[description]</div>\n<div>$[geDirections]</div>",
421			displayMode: 'default'
422		},
423		icon: {
424			scale: 1.0,
425			dim: {
426				x: 0,
427				y: 0,
428				w: -1,
429				h: -1
430			},
431			hotSpot: {
432				x: 0.5,
433				y: 0.5,
434				xunits: 'fraction',
435				yunits: 'fraction'
436			}
437		},
438		line: {
439			color: 'ffffffff', // white (KML default)
440			colorMode: 'normal',
441			width: 1.0
442		},
443		poly: {
444			color: 'ffffffff', // white (KML default)
445			colorMode: 'normal',
446			fill: true,
447			outline: true
448		}
449	};
450
451	var kmlNS = 'http://www.opengis.net/kml/2.2';
452	var gxNS  = 'http://www.google.com/kml/ext/2.2';
453	var nodeValue              = geoXML3.nodeValue;
454	var getBooleanValue        = geoXML3.getBooleanValue;
455	var getElementsByTagNameNS = geoXML3.getElementsByTagNameNS;
456	var getElementsByTagName   = geoXML3.getElementsByTagName;
457
458	function processStyleUrl(node) {
459		var styleUrlStr = nodeValue(getElementsByTagName(node, 'styleUrl')[0]);
460		if (!!styleUrlStr && styleUrlStr.indexOf('#') != -1)
461			var styleUrl = styleUrlStr.split('#');
462		else var styleUrl = ["",""];
463		return styleUrl;
464	}
465
466	function processStyle(thisNode, baseUrl, styleID, baseDir) {
467		var style = (baseUrl === '{inline}') ? clone(defaultStyle) : (styles[baseUrl][styleID] = styles[baseUrl][styleID] || clone(defaultStyle));
468
469		var styleNodes = getElementsByTagName(thisNode, 'BalloonStyle');
470		if (!!styleNodes && styleNodes.length > 0) {
471			style.balloon.bgColor     = nodeValue(getElementsByTagName(styleNodes[0], 'bgColor')[0],     style.balloon.bgColor);
472			style.balloon.textColor   = nodeValue(getElementsByTagName(styleNodes[0], 'textColor')[0],   style.balloon.textColor);
473			style.balloon.text        = nodeValue(getElementsByTagName(styleNodes[0], 'text')[0],        style.balloon.text);
474			style.balloon.displayMode = nodeValue(getElementsByTagName(styleNodes[0], 'displayMode')[0], style.balloon.displayMode);
475		}
476
477		// style.list = (unsupported; doesn't make sense in Google Maps)
478
479		var styleNodes = getElementsByTagName(thisNode, 'IconStyle');
480		if (!!styleNodes && styleNodes.length > 0) {
481			var icon = style.icon;
482
483			icon.scale = parseFloat(nodeValue(getElementsByTagName(styleNodes[0], 'scale')[0], icon.scale));
484			// style.icon.heading   = (unsupported; not supported in API)
485			// style.icon.color     = (unsupported; not supported in API)
486			// style.icon.colorMode = (unsupported; not supported in API)
487
488			styleNodes = getElementsByTagName(styleNodes[0], 'hotSpot');
489			if (!!styleNodes && styleNodes.length > 0) {
490				icon.hotSpot = {
491					x:      styleNodes[0].getAttribute('x'),
492					y:      styleNodes[0].getAttribute('y'),
493					xunits: styleNodes[0].getAttribute('xunits'),
494					yunits: styleNodes[0].getAttribute('yunits')
495				};
496			}
497
498			styleNodes = getElementsByTagName(thisNode, 'Icon');
499			if (!!styleNodes && styleNodes.length > 0) {
500				icon.href = nodeValue(getElementsByTagName(styleNodes[0], 'href')[0]);
501				icon.url  = cleanURL(baseDir, icon.href);
502				// Detect images buried in KMZ files (and use a base64 encoded URL)
503				if (kmzMetaData[icon.url]) icon.url = kmzMetaData[icon.url].dataUrl;
504
505				// Support for icon palettes and exact size dimensions
506				icon.dim = {
507					x: parseInt(nodeValue(getElementsByTagNameNS(styleNodes[0], gxNS, 'x')[0], icon.dim.x)),
508					y: parseInt(nodeValue(getElementsByTagNameNS(styleNodes[0], gxNS, 'y')[0], icon.dim.y)),
509					w: parseInt(nodeValue(getElementsByTagNameNS(styleNodes[0], gxNS, 'w')[0], icon.dim.w)),
510					h: parseInt(nodeValue(getElementsByTagNameNS(styleNodes[0], gxNS, 'h')[0], icon.dim.h))
511				};
512
513				// certain occasions where we need the pixel size of the image (like the default settings...)
514				// (NOTE: Scale is applied to entire image, not just the section of the icon palette.  So,
515				//  if we need scaling, we'll need the img dimensions no matter what.)
516				if (true /* (icon.dim.w < 0 || icon.dim.h < 0) && (icon.xunits != 'pixels' || icon.yunits == 'fraction') || icon.scale != 1.0 */) {
517					// (hopefully, this will load by the time we need it...)
518					icon.img = new Image();
519					icon.img.onload = function() {
520						if (icon.dim.w < 0 || icon.dim.h < 0) {
521							icon.dim.w = this.width;
522							icon.dim.h = this.height;
523						} else {
524							icon.dim.th = this.height;
525						}
526					};
527					icon.img.src = icon.url;
528
529					// sometimes the file is already cached and it never calls onLoad
530					if (icon.img.width > 0) {
531						if (icon.dim.w < 0 || icon.dim.h < 0) {
532							icon.dim.w = icon.img.width;
533							icon.dim.h = icon.img.height;
534						} else {
535							icon.dim.th = icon.img.height;
536						}
537					}
538				}
539			}
540		}
541
542		// style.label = (unsupported; may be possible but not with API)
543
544		styleNodes = getElementsByTagName(thisNode, 'LineStyle');
545		if (!!styleNodes && styleNodes.length > 0) {
546			style.line.color     = nodeValue(getElementsByTagName(styleNodes[0], 'color')[0],     style.line.color);
547			style.line.colorMode = nodeValue(getElementsByTagName(styleNodes[0], 'colorMode')[0], style.line.colorMode);
548			style.line.width     = nodeValue(getElementsByTagName(styleNodes[0], 'width')[0],     style.line.width);
549			// style.line.outerColor      = (unsupported; not supported in API)
550			// style.line.outerWidth      = (unsupported; not supported in API)
551			// style.line.physicalWidth   = (unsupported; unneccesary in Google Maps)
552			// style.line.labelVisibility = (unsupported; possible to implement)
553		}
554
555		styleNodes = getElementsByTagName(thisNode, 'PolyStyle');
556		if (!!styleNodes && styleNodes.length > 0) {
557			style.poly.color     = nodeValue(      getElementsByTagName(styleNodes[0], 'color')[0],     style.poly.color);
558			style.poly.colorMode = nodeValue(      getElementsByTagName(styleNodes[0], 'colorMode')[0], style.poly.colorMode);
559			style.poly.outline   = getBooleanValue(getElementsByTagName(styleNodes[0], 'outline')[0],   style.poly.outline);
560			style.poly.fill      = getBooleanValue(getElementsByTagName(styleNodes[0], 'fill')[0],      style.poly.fill);
561		}
562		return style;
563	}
564
565	// from http://stackoverflow.com/questions/122102/what-is-the-most-efficient-way-to-clone-a-javascript-object
566	// http://keithdevens.com/weblog/archive/2007/Jun/07/javascript.clone
567	function clone(obj){
568		if(obj == null || typeof(obj) != 'object') return obj;
569		if (obj.cloneNode) return obj.cloneNode(true);
570		var temp = new obj.constructor();
571		for(var key in obj) temp[key] = clone(obj[key]);
572		return temp;
573	}
574
575	function processStyleMap(thisNode, baseUrl, styleID, baseDir) {
576		var pairs = getElementsByTagName(thisNode, 'Pair');
577		var map = new Object();
578
579		// add each key to the map
580		for (var pr=0;pr<pairs.length;pr++) {
581			var pairKey      = nodeValue(getElementsByTagName(pairs[pr], 'key')[0]);
582			var pairStyle    = nodeValue(getElementsByTagName(pairs[pr], 'Style')[0]);
583			var pairStyleUrl = processStyleUrl(pairs[pr]);
584			var pairStyleBaseUrl = pairStyleUrl[0] ? cleanURL(baseDir, pairStyleUrl[0]) : baseUrl;
585			var pairStyleID      = pairStyleUrl[1];
586
587			if (!!pairStyle) {
588				map[pairKey] = processStyle(pairStyle, pairStyleBaseUrl, pairStyleID);
589			} else if (!!pairStyleID && !!styles[pairStyleBaseUrl][pairStyleID]) {
590				map[pairKey] = clone(styles[pairStyleBaseUrl][pairStyleID]);
591			}
592		}
593		if (!!map["normal"]) {
594			styles[baseUrl][styleID] = clone(map["normal"]);
595		} else {
596			styles[baseUrl][styleID] = clone(defaultStyle);
597		}
598		if (!!map["highlight"] && !!parserOptions.processStyles) {
599			processStyleID(map["highlight"]);
600		}
601		styles[baseUrl][styleID].map = clone(map);
602	}
603
604	function processPlacemarkCoords(node, tag) {
605		var parent = getElementsByTagName(node, tag);
606		var coordListA = [];
607		for (var i=0; i<parent.length; i++) {
608			var coordNodes = getElementsByTagName(parent[i], 'coordinates');
609			if (!coordNodes) {
610				if (coordListA.length > 0) {
611					break;
612				} else {
613					return [{coordinates: []}];
614				}
615			}
616
617			for (var j=0; j<coordNodes.length;j++) {
618				var coords = nodeValue(coordNodes[j]).trim();
619				coords = coords.replace(/,\s+/g, ',');
620				var path = coords.split(/\s+/g);
621				var pathLength = path.length;
622				var coordList = [];
623				for (var k = 0; k < pathLength; k++) {
624					coords = path[k].split(',');
625					if (!isNaN(coords[0]) && !isNaN(coords[1])) {
626						coordList.push({
627							lat: parseFloat(coords[1]),
628							lng: parseFloat(coords[0]),
629							alt: parseFloat(coords[2])
630						});
631					}
632				}
633				coordListA.push({coordinates: coordList});
634			}
635		}
636		return coordListA;
637	}
638
639	var render = function (responseXML, doc) {
640		// Callback for retrieving a KML document: parse the KML and display it on the map
641		if (!responseXML || responseXML == "failed parse") {
642			// Error retrieving the data
643			geoXML3.log('Unable to retrieve ' + doc.url);
644			if (parserOptions.failedParse) parserOptions.failedParse(doc);
645			doc.failed = true;
646			return;
647		} else if (responseXML.parseError && responseXML.parseError.errorCode != 0) {
648			// IE parse error
649			var err = responseXML.parseError;
650			var msg = 'Parse error in line ' + err.line + ', col ' + err.linePos + ' (error code: ' + err.errorCode + ")\n" +
651				"\nError Reason: " + err.reason +
652				'Error Line: ' + err.srcText;
653
654			geoXML3.log('Unable to retrieve ' + doc.url + ': ' + msg);
655			if (parserOptions.failedParse) parserOptions.failedParse(doc);
656			doc.failed = true;
657			return;
658		} else if (responseXML.documentElement && responseXML.documentElement.nodeName == 'parsererror') {
659			// Firefox parse error
660			geoXML3.log('Unable to retrieve ' + doc.url + ': ' + responseXML.documentElement.childNodes[0].nodeValue);
661			if (parserOptions.failedParse) parserOptions.failedParse(doc);
662			doc.failed = true;
663			return;
664		} else if (!doc) {
665			throw 'geoXML3 internal error: render called with null document';
666		} else { //no errors
667			var i;
668			doc.placemarks      = [];
669			doc.groundoverlays  = [];
670			doc.ggroundoverlays = [];
671			doc.networkLinks    = [];
672			doc.gpolygons       = [];
673			doc.gpolylines      = [];
674
675			// Check for dependent KML files
676			var nodes = getElementsByTagName(responseXML, 'styleUrl');
677			var docSet = doc.internals.docSet;
678
679			for (var i = 0; i < nodes.length; i++) {
680				var url = nodeValue(nodes[i]).split('#')[0];
681				if (!url)                 continue;  // #id (inside doc)
682				var rUrl = cleanURL( doc.baseDir, url );
683				if (rUrl === doc.baseUrl) continue;  // self
684				if (docsByUrl[rUrl])      continue;  // already loaded
685
686				var thisDoc;
687				var j = docSet.indexOfObjWithItem('baseUrl', rUrl);
688				if (j != -1) {
689					// Already listed to be loaded, but probably in the wrong order.
690					// Load it right away to immediately resolve dependency.
691					thisDoc = docSet[j];
692					if (thisDoc.failed) continue;  // failed to load last time; don't retry it again
693				}
694				else {
695					// Not listed at all; add it in
696					thisDoc           = new Object();
697					thisDoc.url       = rUrl;  // url can't be trusted inside KMZ files, since it may .. outside of the archive
698					thisDoc.baseUrl   = rUrl;
699					thisDoc.internals = doc.internals;
700
701					doc.internals.docSet.push(thisDoc);
702					doc.internals.remaining++;
703				}
704
705				// render dependent KML first then re-run renderer
706				fetchDoc(rUrl, thisDoc, function (thisResXML) {
707					render(thisResXML, thisDoc);
708					render(responseXML, doc);
709				});
710
711				// to prevent cross-dependency issues, just load the one
712				// file first and re-check the rest later
713				return;
714			}
715
716			// Parse styles
717			doc.styles = styles[doc.baseUrl] = styles[doc.baseUrl] || {};
718			var styleID, styleNodes;
719			nodes = getElementsByTagName(responseXML, 'Style');
720			nodeCount = nodes.length;
721			for (i = 0; i < nodeCount; i++) {
722				thisNode = nodes[i];
723				var styleID = thisNode.getAttribute('id');
724				if (!!styleID) processStyle(thisNode, doc.baseUrl, styleID, doc.baseDir);
725			}
726			// Parse StyleMap nodes
727			nodes = getElementsByTagName(responseXML, 'StyleMap');
728			for (i = 0; i < nodes.length; i++) {
729				thisNode = nodes[i];
730				var styleID = thisNode.getAttribute('id');
731				if (!!styleID) processStyleMap(thisNode, doc.baseUrl, styleID, doc.baseDir);
732			}
733
734			if (!!parserOptions.processStyles || !parserOptions.createMarker) {
735				// Convert parsed styles into GMaps equivalents
736				processStyles(doc);
737			}
738
739			// Parse placemarks
740			if (!!doc.reload && !!doc.markers) {
741				for (i = 0; i < doc.markers.length; i++) {
742					doc.markers[i].active = false;
743				}
744			}
745			var placemark, node, coords, path, marker, poly;
746			var pathLength, marker, polygonNodes, coordList;
747			var placemarkNodes = getElementsByTagName(responseXML, 'Placemark');
748			for (pm = 0; pm < placemarkNodes.length; pm++) {
749				// Init the placemark object
750				node = placemarkNodes[pm];
751				var styleUrl = processStyleUrl(node);
752				placemark = {
753					name:         nodeValue(getElementsByTagName(node, 'name')[0]),
754					description:  nodeValue(getElementsByTagName(node, 'description')[0]),
755					styleUrl:     styleUrl.join('#'),
756					styleBaseUrl: styleUrl[0] ? cleanURL(doc.baseDir, styleUrl[0]) : doc.baseUrl,
757					styleID:      styleUrl[1],
758					visibility:        getBooleanValue(getElementsByTagName(node, 'visibility')[0], true),
759					balloonVisibility: getBooleanValue(getElementsByTagNameNS(node, gxNS, 'balloonVisibility')[0], !parserOptions.suppressInfoWindows),
760					id:           node.getAttribute('id')
761				};
762				placemark.style = (styles[placemark.styleBaseUrl] && styles[placemark.styleBaseUrl][placemark.styleID]) || clone(defaultStyle);
763				// inline style overrides shared style
764				var inlineStyles = getElementsByTagName(node, 'Style');
765				if (inlineStyles && (inlineStyles.length > 0)) {
766					var style = processStyle(node, '{inline}', '{inline}');
767					processStyleID(style);
768					if (style) placemark.style = style;
769				}
770
771				if (/^https?:\/\//.test(placemark.description)) {
772					placemark.description = ['<a href="', placemark.description, '">', placemark.description, '</a>'].join('');
773				}
774
775				// record list of variables for substitution
776				placemark.vars = {
777					display: {
778						name:         'Name',
779						description:  'Description',
780						address:      'Street Address',
781						id:           'ID',
782						Snippet:      'Snippet',
783						geDirections: 'Directions'
784					},
785					val: {
786						name:        placemark.name || '',
787						description: placemark.description || '',
788						address:     nodeValue(getElementsByTagName(node, 'address')[0], ''),
789						id:          node.getAttribute('id') || '',
790						Snippet:     nodeValue(getElementsByTagName(node, 'Snippet')[0], '')
791					},
792					directions: [
793						'f=d',
794						'source=GeoXML3'
795					]
796				};
797
798				// add extended data to variables
799				var extDataNodes = getElementsByTagName(node, 'ExtendedData');
800				if (!!extDataNodes && extDataNodes.length > 0) {
801					var dataNodes = getElementsByTagName(extDataNodes[0], 'Data');
802					for (var d = 0; d < dataNodes.length; d++) {
803						var dn    = dataNodes[d];
804						var name  = dn.getAttribute('name');
805						if (!name) continue;
806						var dName = nodeValue(getElementsByTagName(dn, 'displayName')[0], name);
807						var val   = nodeValue(getElementsByTagName(dn, 'value')[0]);
808
809						placemark.vars.val[name]     = val;
810						placemark.vars.display[name] = dName;
811					}
812				}
813
814				// process MultiGeometry
815				var GeometryNodes = getElementsByTagName(node, 'coordinates');
816				var Geometry = null;
817				if (!!GeometryNodes && (GeometryNodes.length > 0)) {
818					for (var gn=0;gn<GeometryNodes.length;gn++) {
819						if (GeometryNodes[gn].parentNode &&
820							GeometryNodes[gn].parentNode.nodeName) {
821							var GeometryPN = GeometryNodes[gn].parentNode;
822							Geometry = GeometryPN.nodeName;
823
824							// Extract the coordinates
825							// What sort of placemark?
826							switch(Geometry) {
827								case "Point":
828									placemark.Point = processPlacemarkCoords(node, "Point")[0];
829									placemark.latlng = new google.maps.LatLng(placemark.Point.coordinates[0].lat, placemark.Point.coordinates[0].lng);
830									pathLength = 1;
831									break;
832								case "LinearRing":
833									// Polygon/line
834									polygonNodes = getElementsByTagName(node, 'Polygon');
835									// Polygon
836									if (!placemark.Polygon)
837										placemark.Polygon = [{
838											outerBoundaryIs: {coordinates: []},
839											innerBoundaryIs: [{coordinates: []}]
840										}];
841									for (var pg=0;pg<polygonNodes.length;pg++) {
842										placemark.Polygon[pg] = {
843											outerBoundaryIs: {coordinates: []},
844											innerBoundaryIs: [{coordinates: []}]
845										}
846										placemark.Polygon[pg].outerBoundaryIs = processPlacemarkCoords(polygonNodes[pg], "outerBoundaryIs");
847										placemark.Polygon[pg].innerBoundaryIs = processPlacemarkCoords(polygonNodes[pg], "innerBoundaryIs");
848									}
849									coordList = placemark.Polygon[0].outerBoundaryIs;
850									break;
851
852								case "LineString":
853									pathLength = 0;
854									placemark.LineString = processPlacemarkCoords(node,"LineString");
855									break;
856
857								default:
858									break;
859							}
860						}
861					}
862				}
863
864				// parse MultiTrack/Track
865				var TrackNodes = getElementsByTagNameNS(node,gxNS,"Track");
866				var coordListA = [];
867				if (TrackNodes.length > 0) {
868					for (var i=0; i<TrackNodes.length; i++) {
869						var coordNodes = getElementsByTagNameNS(TrackNodes[i],gxNS,"coord");
870						var coordList = [];
871						for (var j=0; j<coordNodes.length;j++) {
872							var coords = geoXML3.nodeValue(coordNodes[j]).trim();
873							coords = coords.split(/\s+/g);
874							if (!isNaN(coords[0]) && !isNaN(coords[1])) {
875								coordList.push({
876									lat: parseFloat(coords[1]),
877									lng: parseFloat(coords[0]),
878									alt: parseFloat(coords[2])
879								});
880							}
881						}
882						coordListA.push({coordinates:coordList});
883					}
884					placemark.Track = coordListA;
885				}
886
887				// call the custom placemark parse function if it is defined
888				if (!!parserOptions.pmParseFn) parserOptions.pmParseFn(node, placemark);
889				doc.placemarks.push(placemark);
890
891				// single marker
892				if (placemark.Point) {
893					if (!!google.maps) {
894						doc.bounds = doc.bounds || new google.maps.LatLngBounds();
895						doc.bounds.extend(placemark.latlng);
896					}
897
898					// Potential user-defined marker handler
899					var pointCreateFunc = parserOptions.createMarker || createMarker;
900					var found = false;
901					if (!parserOptions.createMarker) {
902						// Check to see if this marker was created on a previous load of this document
903						if (!!doc) {
904							doc.markers = doc.markers || [];
905							if (doc.reload) {
906								for (var j = 0; j < doc.markers.length; j++) {
907									if ((doc.markers[j].id == placemark.id) ||
908											// if no id, check position
909										(!doc.markers[j].id &&
910										(doc.markers[j].getPosition().equals(placemark.latlng)))) {
911										found = doc.markers[j].active = true;
912										break;
913									}
914								}
915							}
916						}
917					}
918					if (!found) {
919						// Call the marker creator
920						var marker = pointCreateFunc(placemark, doc);
921						if (marker) {
922							marker.active = placemark.visibility;
923							marker.id = placemark.id;
924						}
925					}
926				}
927				// polygon/line
928				var poly, line;
929				if (!!doc) {
930					if (placemark.Polygon)    doc.gpolygons  = doc.gpolygons  || [];
931					if (placemark.LineString) doc.gpolylines = doc.gpolylines || [];
932					if (placemark.Track)      doc.gpolylines = doc.gpolylines || [];
933				}
934
935				var polyCreateFunc = parserOptions.createPolygon    || createPolygon;
936				var lineCreateFunc = parserOptions.createLineString || createPolyline;
937				if (placemark.Polygon) {
938					poly = polyCreateFunc(placemark,doc);
939					if (poly) poly.active = placemark.visibility;
940				}
941				if (placemark.LineString) {
942					line = lineCreateFunc(placemark,doc);
943					if (line) line.active = placemark.visibility;
944				}
945				if (placemark.Track) { // gx:Track polyline
946					line = lineCreateFunc(placemark,doc);
947					if (line) line.active = placemark.visibility;
948				}
949				if (!!google.maps) {
950					doc.bounds = doc.bounds || new google.maps.LatLngBounds();
951					if (poly) doc.bounds.union(poly.bounds);
952					if (line) doc.bounds.union(line.bounds);
953				}
954
955			} // placemark loop
956
957			if (!!doc.reload && !!doc.markers) {
958				for (i = doc.markers.length - 1; i >= 0 ; i--) {
959					if (!doc.markers[i].active) {
960						if (!!doc.markers[i].infoWindow) {
961							doc.markers[i].infoWindow.close();
962						}
963						doc.markers[i].setMap(null);
964						doc.markers.splice(i, 1);
965					}
966				}
967			}
968
969			var overlayCreateFunc = parserOptions.createOverlay || createOverlay;
970			// Parse ground overlays
971			if (!!doc.reload && !!doc.groundoverlays) {
972				for (i = 0; i < doc.groundoverlays.length; i++) {
973					doc.groundoverlays[i].active = false;
974				}
975			}
976
977			if (!!doc) {
978				doc.groundoverlays = doc.groundoverlays || [];
979			}
980			// doc.groundoverlays =[];
981			var groundOverlay, color, transparency, overlay;
982			var groundNodes = getElementsByTagName(responseXML, 'GroundOverlay');
983			for (i = 0; i < groundNodes.length; i++) {
984				node = groundNodes[i];
985
986				// Detect images buried in KMZ files (and use a base64 encoded URL)
987				var gnUrl = cleanURL( doc.baseDir, nodeValue(getElementsByTagName(node, 'href')[0]) );
988				if (kmzMetaData[gnUrl]) gnUrl = kmzMetaData[gnUrl].dataUrl;
989
990				// Init the ground overlay object
991				groundOverlay = {
992					name:        nodeValue(getElementsByTagName(node, 'name')[0]),
993					description: nodeValue(getElementsByTagName(node, 'description')[0]),
994					icon: { href: gnUrl },
995					latLonBox: {
996						north: parseFloat(nodeValue(getElementsByTagName(node, 'north')[0])),
997						east:  parseFloat(nodeValue(getElementsByTagName(node, 'east')[0])),
998						south: parseFloat(nodeValue(getElementsByTagName(node, 'south')[0])),
999						west:  parseFloat(nodeValue(getElementsByTagName(node, 'west')[0]))
1000					},
1001					rotation: -1 * parseFloat(nodeValue(getElementsByTagName(node, 'rotation')[0]))
1002				};
1003				if (!!google.maps) {
1004					doc.bounds = doc.bounds || new google.maps.LatLngBounds();
1005					doc.bounds.union(new google.maps.LatLngBounds(
1006						new google.maps.LatLng(groundOverlay.latLonBox.south, groundOverlay.latLonBox.west),
1007						new google.maps.LatLng(groundOverlay.latLonBox.north, groundOverlay.latLonBox.east)
1008					));
1009				}
1010
1011				// Opacity is encoded in the color node
1012				var colorNode = getElementsByTagName(node, 'color');
1013				if (colorNode && colorNode.length > 0) {
1014					groundOverlay.opacity = geoXML3.getOpacity(nodeValue(colorNode[0]));
1015				} else {
1016					groundOverlay.opacity = 1.0;  // KML default
1017				}
1018
1019				doc.groundoverlays.push(groundOverlay);
1020				// Check to see if this overlay was created on a previous load of this document
1021				var found = false;
1022				if (!!doc) {
1023					doc.groundoverlays = doc.groundoverlays || [];
1024					if (doc.reload) {
1025						overlayBounds = new google.maps.LatLngBounds(
1026							new google.maps.LatLng(groundOverlay.latLonBox.south, groundOverlay.latLonBox.west),
1027							new google.maps.LatLng(groundOverlay.latLonBox.north, groundOverlay.latLonBox.east)
1028						);
1029						var overlays = doc.groundoverlays;
1030						for (i = overlays.length; i--;) {
1031							if ((overlays[i].bounds().equals(overlayBounds)) &&
1032								(overlays.url_ === groundOverlay.icon.href)) {
1033								found = overlays[i].active = true;
1034								break;
1035							}
1036						}
1037					}
1038
1039					if (!found) {
1040						overlay = overlayCreateFunc(groundOverlay, doc);
1041						overlay.active = true;
1042					}
1043				}
1044				if (!!doc.reload && !!doc.groundoverlays && !!doc.groundoverlays.length) {
1045					var overlays = doc.groundoverlays;
1046					for (i = overlays.length; i--;) {
1047						if (!overlays[i].active) {
1048							overlays[i].remove();
1049							overlays.splice(i, 1);
1050						}
1051					}
1052					doc.groundoverlays = overlays;
1053				}
1054			}
1055
1056			// Parse network links
1057			var networkLink;
1058			var docPath = document.location.pathname.split('/');
1059			docPath = docPath.splice(0, docPath.length - 1).join('/');
1060			var linkNodes = getElementsByTagName(responseXML, 'NetworkLink');
1061			for (i = 0; i < linkNodes.length; i++) {
1062				node = linkNodes[i];
1063
1064				// Init the network link object
1065				networkLink = {
1066					name: nodeValue(getElementsByTagName(node, 'name')[0]),
1067					link: {
1068						href:        nodeValue(getElementsByTagName(node, 'href')[0]),
1069						refreshMode: nodeValue(getElementsByTagName(node, 'refreshMode')[0])
1070					}
1071				};
1072
1073				// Establish the specific refresh mode
1074				if (!networkLink.link.refreshMode) {
1075					networkLink.link.refreshMode = 'onChange';
1076				}
1077				if (networkLink.link.refreshMode === 'onInterval') {
1078					networkLink.link.refreshInterval = parseFloat(nodeValue(getElementsByTagName(node, 'refreshInterval')[0]));
1079					if (isNaN(networkLink.link.refreshInterval)) {
1080						networkLink.link.refreshInterval = 0;
1081					}
1082				} else if (networkLink.link.refreshMode === 'onChange') {
1083					networkLink.link.viewRefreshMode = nodeValue(getElementsByTagName(node, 'viewRefreshMode')[0]);
1084					if (!networkLink.link.viewRefreshMode) {
1085						networkLink.link.viewRefreshMode = 'never';
1086					}
1087					if (networkLink.link.viewRefreshMode === 'onStop') {
1088						networkLink.link.viewRefreshTime = nodeValue(getElementsByTagName(node, 'refreshMode')[0]);
1089						networkLink.link.viewFormat =      nodeValue(getElementsByTagName(node, 'refreshMode')[0]);
1090						if (!networkLink.link.viewFormat) {
1091							networkLink.link.viewFormat = 'BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]';
1092						}
1093					}
1094				}
1095
1096				if (!/^[\/|http]/.test(networkLink.link.href)) {
1097					// Fully-qualify the HREF
1098					networkLink.link.href = docPath + '/' + networkLink.link.href;
1099				}
1100
1101				// Apply the link
1102				if ((networkLink.link.refreshMode === 'onInterval') &&
1103					(networkLink.link.refreshInterval > 0)) {
1104					// Reload at regular intervals
1105					setInterval(parserName + '.parse("' + networkLink.link.href + '")',
1106						1000 * networkLink.link.refreshInterval);
1107				} else if (networkLink.link.refreshMode === 'onChange') {
1108					if (networkLink.link.viewRefreshMode === 'never') {
1109						// Load the link just once
1110						doc.internals.parser.parse(networkLink.link.href, doc.internals.docSet);
1111					} else if (networkLink.link.viewRefreshMode === 'onStop') {
1112						// Reload when the map view changes
1113
1114					}
1115				}
1116			}
1117		}
1118
1119		if (!!doc.bounds) {
1120			doc.internals.bounds = doc.internals.bounds || new google.maps.LatLngBounds();
1121			doc.internals.bounds.union(doc.bounds);
1122		}
1123		if (!!doc.markers || !!doc.groundoverlays || !!doc.gpolylines || !!doc.gpolygons) {
1124			doc.internals.parseOnly = false;
1125		}
1126
1127		if (!doc.internals.parseOnly) {
1128			// geoXML3 is not being used only as a real-time parser, so keep the processed documents around
1129			if (doc.baseUrl){ // handle case from parseKmlString (no doc.baseUrl)
1130				if (!docsByUrl[doc.baseUrl]) {
1131					docs.push(doc);
1132					docsByUrl[doc.baseUrl] = doc;
1133				} else {
1134					// internal replacement, which keeps the same memory ref loc in docs and docsByUrl
1135					for (var i in docsByUrl[doc.baseUrl]) {
1136						docsByUrl[doc.baseUrl][i] = doc[i];
1137					}
1138				}
1139			}
1140		}
1141
1142		doc.internals.remaining--;
1143		if (doc.internals.remaining === 0) {
1144			// We're done processing this set of KML documents
1145			// Options that get invoked after parsing completes
1146			if (parserOptions.zoom && !!doc.internals.bounds &&
1147				!doc.internals.bounds.isEmpty() && !!parserOptions.map) {
1148				parserOptions.map.fitBounds(doc.internals.bounds);
1149			}
1150			if (parserOptions.afterParse) {
1151				parserOptions.afterParse(doc.internals.docSet);
1152			}
1153			google.maps.event.trigger(doc.internals.parser, 'parsed');
1154		}
1155	};
1156
1157	var kmlColor = function (kmlIn, colorMode) {
1158		var kmlColor = {};
1159		kmlIn = kmlIn || 'ffffffff';  // white (KML 2.2 default)
1160
1161		var aa = kmlIn.substr(0,2);
1162		var bb = kmlIn.substr(2,2);
1163		var gg = kmlIn.substr(4,2);
1164		var rr = kmlIn.substr(6,2);
1165
1166		kmlColor.opacity = parseInt(aa, 16) / 256;
1167		kmlColor.color   = (colorMode === 'random') ? randomColor(rr, gg, bb) : '#' + rr + gg + bb;
1168		return kmlColor;
1169	};
1170
1171	// Implemented per KML 2.2 <ColorStyle> specs
1172	var randomColor = function(rr, gg, bb) {
1173		var col = { rr: rr, gg: gg, bb: bb };
1174		for (var k in col) {
1175			var v = col[k];
1176			if (v == null) v = 'ff';
1177
1178			// RGB values are limiters for random numbers (ie: 7f would be a random value between 0 and 7f)
1179			v = Math.round(Math.random() * parseInt(rr, 16)).toString(16);
1180			if (v.length === 1) v = '0' + v;
1181			col[k] = v;
1182		}
1183
1184		return '#' + col.rr + col.gg + col.bb;
1185	};
1186
1187	var processStyleID = function (style) {
1188		var icon = style.icon;
1189		if (!icon || !icon.href) return;
1190
1191		if (icon.img && !icon.img.complete && (icon.dim.w < 0) && (icon.dim.h < 0) ) {
1192			// we're still waiting on the image loading (probably because we've been blocking since the declaration)
1193			// so, let's queue this function on the onload stack
1194			icon.markerBacklog = [];
1195			icon.img.onload = function() {
1196				if (icon.dim.w < 0 || icon.dim.h < 0) {
1197					icon.dim.w = this.width;
1198					icon.dim.h = this.height;
1199				} else {
1200					icon.dim.th = this.height;
1201				}
1202				processStyleID(style);
1203
1204				// we will undoubtedly get some createMarker queuing, so set this up in advance
1205				for (var i = 0; i < icon.markerBacklog.length; i++) {
1206					var p = icon.markerBacklog[i][0];
1207					var d = icon.markerBacklog[i][1];
1208					createMarker(p, d);
1209					if (p.marker) p.marker.active = true;
1210				}
1211				delete icon.markerBacklog;
1212			};
1213			return;
1214		}
1215		else { //if (icon.dim.w < 0 || icon.dim.h < 0) {
1216			if (icon.img && icon.img.complete) {
1217				// sometimes the file is already cached and it never calls onLoad
1218				if (icon.dim.w < 0 || icon.dim.h < 0) {
1219					icon.dim.w = icon.img.width;
1220					icon.dim.h = icon.img.height;
1221				} else {
1222					icon.dim.th = icon.img.height;
1223				}
1224			}
1225			else {
1226				// settle for a default of 32x32
1227				icon.dim.whGuess = true;
1228				icon.dim.w = 32;
1229				icon.dim.h = 32;
1230				icon.dim.th = 32;
1231			}
1232		}
1233
1234		// pre-scaled variables
1235		var rnd = Math.round;
1236		var y = icon.dim.y;
1237		if (typeof icon.dim.th !== 'undefined' && icon.dim.th != icon.dim.h) { // palette - reverse kml y for maps
1238			y = Math.abs(y - (icon.dim.th - icon.dim.h));
1239		}
1240
1241		var scaled = {
1242			x: icon.dim.x     * icon.scale,
1243			y: y * icon.scale,
1244			w: icon.dim.w     * icon.scale,
1245			h: icon.dim.h     * icon.scale,
1246			aX:icon.hotSpot.x * icon.scale,
1247			aY:icon.hotSpot.y * icon.scale,
1248			iW:(icon.img ? icon.img.width  : icon.dim.w) * icon.scale,
1249			iH:(icon.img ? icon.img.height : icon.dim.h) * icon.scale
1250		};
1251
1252		// Figure out the anchor spot
1253		// Origins, anchor positions and coordinates of the marker increase in the X direction to the right and in
1254		// the Y direction down.
1255		var aX, aY;
1256		switch (icon.hotSpot.xunits) {
1257			case 'fraction':    aX = rnd(scaled.aX * icon.dim.w); break;
1258			case 'insetPixels': aX = rnd(icon.dim.w * icon.scale - scaled.aX); break;
1259			default:            aX = rnd(scaled.aX); break; // already pixels
1260		}
1261		switch(icon.hotSpot.yunits) {
1262			case 'fraction':    aY = scaled.h - rnd(icon.dim.h * scaled.aY);   break;
1263			case 'insetPixels': aY = rnd(scaled.aY); break;
1264			default:            aY = rnd(icon.dim.h * icon.scale - scaled.aY); break;
1265		}
1266		var iconAnchor = new google.maps.Point(aX, aY);
1267
1268		// Sizes
1269		// (NOTE: Scale is applied to entire image, not just the section of the icon palette.)
1270		var iconSize   = icon.dim.whGuess  ? null : new google.maps.Size(rnd(scaled.w),  rnd(scaled.h));
1271		var iconScale  = icon.scale == 1.0 ? null :
1272			icon.dim.whGuess  ?        new google.maps.Size(rnd(scaled.w),  rnd(scaled.h))
1273				: new google.maps.Size(rnd(scaled.iW), rnd(scaled.iH));
1274		var iconOrigin = new google.maps.Point(rnd(scaled.x), rnd(scaled.y));
1275
1276		// Detect images buried in KMZ files (and use a base64 encoded URL)
1277		if (kmzMetaData[icon.url]) icon.url = kmzMetaData[icon.url].dataUrl;
1278
1279		// Init the style object with the KML icon
1280		icon.marker = {
1281			url: icon.url,        // url
1282			size: iconSize,       // size
1283			origin: iconOrigin,   // origin
1284			anchor: iconAnchor,   // anchor
1285			scaledSize: iconScale // scaledSize
1286		};
1287
1288		// Look for a predictable shadow
1289		var stdRegEx = /\/(red|blue|green|yellow|lightblue|purple|pink|orange)(-dot)?\.png/;
1290		var shadowSize = new google.maps.Size(59, 32);
1291		var shadowPoint = new google.maps.Point(16, 32);
1292		if (stdRegEx.test(icon.href)) {
1293			// A standard GMap-style marker icon
1294			icon.shadow = {
1295				url: 'http://maps.google.com/mapfiles/ms/micons/msmarker.shadow.png', // url
1296				size: shadowSize,    // size
1297				origin: null,        // origin
1298				anchor: shadowPoint, // anchor
1299				scaledSize: shadowSize // scaledSize
1300			};
1301		} else if (icon.href.indexOf('-pushpin.png') > -1) {
1302			// Pushpin marker icon
1303			icon.shadow = {
1304				url: 'http://maps.google.com/mapfiles/ms/micons/pushpin_shadow.png',  // url
1305				size: shadowSize,    // size
1306				origin: null,        // origin
1307				anchor: shadowPoint, // anchor
1308				scaledSize: shadowSize // scaledSize
1309			};
1310		} /* else {
1311		 // Other MyMaps KML standard icon
1312		 icon.shadow = new google.maps.MarkerImage(
1313		 icon.href.replace('.png', '.shadow.png'),                        // url
1314		 shadowSize,                                                      // size
1315		 null,                                                            // origin
1316		 anchorPoint,                                                     // anchor
1317		 shadowSize                                                       // scaledSize
1318		 );
1319		 } */
1320	}
1321
1322	var processStyles = function (doc) {
1323		for (var styleID in doc.styles) {
1324			processStyleID(doc.styles[styleID]);
1325		}
1326	};
1327
1328	var createMarker = function (placemark, doc) {
1329		// create a Marker to the map from a placemark KML object
1330		var icon = placemark.style.icon;
1331
1332		if ( !icon.marker && icon.img ) {
1333			// yay, single point of failure is holding up multiple markers...
1334			icon.markerBacklog = icon.markerBacklog || [];
1335			icon.markerBacklog.push([placemark, doc]);
1336			return;
1337		}
1338
1339		// Load basic marker properties
1340		var markerOptions = geoXML3.combineOptions(parserOptions.markerOptions, {
1341			map:      parserOptions.map,
1342			position: new google.maps.LatLng(placemark.Point.coordinates[0].lat, placemark.Point.coordinates[0].lng),
1343			title:    placemark.name,
1344			zIndex:   Math.round(placemark.Point.coordinates[0].lat * -100000)<<5,
1345			icon:     icon.marker,
1346			shadow:   icon.shadow,
1347			flat:     !icon.shadow,
1348			visible:  placemark.visibility
1349		});
1350
1351		// Create the marker on the map
1352		var marker = new google.maps.Marker(markerOptions);
1353		if (!!doc) doc.markers.push(marker);
1354
1355		// Set up and create the infowindow if it is not suppressed
1356		createInfoWindow(placemark, doc, marker);
1357		placemark.marker = marker;
1358		return marker;
1359	};
1360
1361	var createOverlay = function (groundOverlay, doc) {
1362		// Add a ProjectedOverlay to the map from a groundOverlay KML object
1363
1364		if (!window.ProjectedOverlay) {
1365			throw 'geoXML3 error: ProjectedOverlay not found while rendering GroundOverlay from KML';
1366		}
1367
1368		var bounds = new google.maps.LatLngBounds(
1369			new google.maps.LatLng(groundOverlay.latLonBox.south, groundOverlay.latLonBox.west),
1370			new google.maps.LatLng(groundOverlay.latLonBox.north, groundOverlay.latLonBox.east)
1371		);
1372		var overlayOptions = geoXML3.combineOptions(parserOptions.overlayOptions, {
1373			percentOpacity: groundOverlay.opacity*100,
1374			rotation: groundOverlay.rotation
1375		});
1376		var overlay = new ProjectedOverlay(parserOptions.map, groundOverlay.icon.href, bounds, overlayOptions);
1377
1378		if (!!doc) {
1379			doc.ggroundoverlays = doc.ggroundoverlays || [];
1380			doc.ggroundoverlays.push(overlay);
1381		}
1382
1383		return overlay;
1384	};
1385
1386	// Create Polyline
1387	var createPolyline = function(placemark, doc) {
1388		var paths = [];
1389		var bounds = new google.maps.LatLngBounds();
1390		if (placemark.LineString) {
1391			for (var j=0; j<placemark.LineString.length; j++) {
1392				var path = [];
1393				var coords = placemark.LineString[j].coordinates;
1394				for (var i=0;i<coords.length;i++) {
1395					var pt = new google.maps.LatLng(coords[i].lat, coords[i].lng);
1396					path.push(pt);
1397					bounds.extend(pt);
1398				}
1399				paths.push(path);
1400			}
1401		} else if (placemark.Track) {
1402			for (var j=0; j<placemark.Track.length; j++) {
1403				var path = [];
1404				var coords = placemark.Track[j].coordinates;
1405				for (var i=0;i<coords.length;i++) {
1406					var pt = new google.maps.LatLng(coords[i].lat, coords[i].lng);
1407					path.push(pt);
1408					bounds.extend(pt);
1409				}
1410				paths.push(path);
1411			}
1412		}
1413		// point to open the infowindow if triggered
1414		var point = paths[0][Math.floor(path.length/2)];
1415		// Load basic polyline properties
1416		var kmlStrokeColor = kmlColor(placemark.style.line.color, placemark.style.line.colorMode);
1417		var polyOptions = geoXML3.combineOptions(parserOptions.polylineOptions, {
1418			map:           parserOptions.map,
1419			path:          path,
1420			strokeColor:   kmlStrokeColor.color,
1421			strokeWeight:  placemark.style.line.width,
1422			strokeOpacity: kmlStrokeColor.opacity,
1423			title:         placemark.name,
1424			visible:       placemark.visibility
1425		});
1426		if (paths.length > 1) {
1427			polyOptions.paths = paths;
1428			var p = new MultiGeometry(polyOptions);
1429		} else {
1430			polyOptions.path = paths[0];
1431			var p = new google.maps.Polyline(polyOptions);
1432		}
1433		p.bounds = bounds;
1434
1435		// setup and create the infoWindow if it is not suppressed
1436		createInfoWindow(placemark, doc, p);
1437		if (!!doc) doc.gpolylines.push(p);
1438		placemark.polyline = p;
1439		return p;
1440	}
1441
1442	// Create Polygon
1443	var createPolygon = function(placemark, doc) {
1444		var bounds = new google.maps.LatLngBounds();
1445		var pathsLength = 0;
1446		var paths = [];
1447		for (var polygonPart=0;polygonPart<placemark.Polygon.length;polygonPart++) {
1448			for (var j=0; j<placemark.Polygon[polygonPart].outerBoundaryIs.length; j++) {
1449				var coords = placemark.Polygon[polygonPart].outerBoundaryIs[j].coordinates;
1450				var path = [];
1451				for (var i=0;i<coords.length;i++) {
1452					var pt = new google.maps.LatLng(coords[i].lat, coords[i].lng);
1453					path.push(pt);
1454					bounds.extend(pt);
1455				}
1456				paths.push(path);
1457				pathsLength += path.length;
1458			}
1459			for (var j=0; j<placemark.Polygon[polygonPart].innerBoundaryIs.length; j++) {
1460				var coords = placemark.Polygon[polygonPart].innerBoundaryIs[j].coordinates;
1461				var path = [];
1462				for (var i=0;i<coords.length;i++) {
1463					var pt = new google.maps.LatLng(coords[i].lat, coords[i].lng);
1464					path.push(pt);
1465					bounds.extend(pt);
1466				}
1467				paths.push(path);
1468				pathsLength += path.length;
1469			}
1470		}
1471
1472		// Load basic polygon properties
1473		var kmlStrokeColor = kmlColor(placemark.style.line.color, placemark.style.line.colorMode);
1474		var kmlFillColor = kmlColor(placemark.style.poly.color, placemark.style.poly.colorMode);
1475		if (!placemark.style.poly.fill) kmlFillColor.opacity = 0.0;
1476		var strokeWeight = placemark.style.line.width;
1477		if (!placemark.style.poly.outline) {
1478			strokeWeight = 0;
1479			kmlStrokeColor.opacity = 0.0;
1480		}
1481		var polyOptions = geoXML3.combineOptions(parserOptions.polygonOptions, {
1482			map:           parserOptions.map,
1483			paths:         paths,
1484			title:         placemark.name,
1485			strokeColor:   kmlStrokeColor.color,
1486			strokeWeight:  strokeWeight,
1487			strokeOpacity: kmlStrokeColor.opacity,
1488			fillColor:     kmlFillColor.color,
1489			fillOpacity:   kmlFillColor.opacity,
1490			visible:       placemark.visibility
1491		});
1492		var p = new google.maps.Polygon(polyOptions);
1493		p.bounds = bounds;
1494
1495		createInfoWindow(placemark, doc, p);
1496		if (!!doc) doc.gpolygons.push(p);
1497		placemark.polygon = p;
1498		return p;
1499	}
1500
1501	var createInfoWindow = function(placemark, doc, gObj) {
1502		var bStyle = placemark.style.balloon;
1503		var vars = placemark.vars;
1504
1505		if (!placemark.balloonVisibility || bStyle.displayMode === 'hide') return;
1506
1507		// define geDirections
1508		if (placemark.latlng &&
1509			(!parserOptions.suppressDirections || !parserOptions.suppressDirections)) {
1510			vars.directions.push('sll=' + placemark.latlng.toUrlValue());
1511
1512			var url = 'http://maps.google.com/maps?' + vars.directions.join('&');
1513			var address = encodeURIComponent( vars.val.address || placemark.latlng.toUrlValue() ).replace(/\%20/g, '+');
1514
1515			vars.val.geDirections = '<a href="' + url + '&daddr=' + address + '" target=_blank>To Here</a> - <a href="' + url + '&saddr=' + address + '" target=_blank>From Here</a>';
1516		}
1517		else vars.val.geDirections = '';
1518
1519		// add in the variables
1520		var iwText = bStyle.text.replace(/\$\[(\w+(\/displayName)?)\]/g, function(txt, n, dn) { return dn ? vars.display[n] : vars.val[n]; });
1521		var classTxt = 'geoxml3_infowindow geoxml3_style_' + placemark.styleID;
1522
1523		// color styles
1524		var styleArr = [];
1525		if (bStyle.bgColor   != 'ffffffff') styleArr.push('background: ' + kmlColor(bStyle.bgColor  ).color + ';');
1526		if (bStyle.textColor != 'ff000000') styleArr.push('color: '      
1526+ kmlColor(bStyle.textColor).color + ';');
1527		var styleProp = styleArr.length ? ' style="' + styleArr.join(' ') + '"' : '';
1528
1529		var infoWindowOptions = geoXML3.combineOptions(parserOptions.infoWindowOptions, {
1530			content: '<div class="' + classTxt + '"' + styleProp + '>' + iwText + '</div>',
1531			pixelOffset: new google.maps.Size(0, 2)
1532		});
1533
1534		gObj.infoWindow = parserOptions.infoWindow || new google.maps.InfoWindow(infoWindowOptions);
1535		gObj.infoWindowOptions = infoWindowOptions;
1536
1537		// Info Window-opening event handler
1538		google.maps.event.addListener(gObj, 'click', function(e) {
1539			var iW = this.infoWindow;
1540			iW.close();
1541			iW.setOptions(this.infoWindowOptions);
1542
1543			if      (e && e.latLng) iW.setPosition(e.latLng);
1544			else if (this.bounds)   iW.setPosition(this.bounds.getCenter());
1545
1546			iW.setContent("<div id='geoxml3_infowindow'>"+iW.getContent()+"</div>");
1547			google.maps.event.addListenerOnce(iW, "domready", function() {
1548				var node = document.getElementById('geoxml3_infowindow');
1549				var imgArray = node.getElementsByTagName('img');
1550				for (var i = 0; i < imgArray.length; i++)
1551				{
1552					var imgUrlIE = imgArray[i].getAttribute("src");
1553					var imgUrl  = cleanURL(doc.baseDir, imgUrlIE);
1554
1555					if (kmzMetaData[imgUrl]) {
1556						imgArray[i].src = kmzMetaData[imgUrl].dataUrl;
1557					} else if (kmzMetaData[imgUrlIE]) {
1558						imgArray[i].src = kmzMetaData[imgUrlIE].dataUrl;
1559					}
1560				}
1561			});
1562			iW.open(this.map, this.bounds ? null : this);
1563		});
1564
1565	}
1566
1567	return {
1568		// Expose some properties and methods
1569
1570		options:     parserOptions,
1571		docs:        docs,
1572		docsByUrl:   docsByUrl,
1573		kmzMetaData: kmzMetaData,
1574
1575		parse:          parse,
1576		render:         render,
1577		parseKmlString: parseKmlString,
1578		hideDocument:   hideDocument,
1579		showDocument:   showDocument,
1580		processStyles:  processStyles,
1581		createMarker:   createMarker,
1582		createOverlay:  createOverlay,
1583		createPolyline: createPolyline,
1584		createPolygon:  createPolygon
1585	};
1586};
1587// End of KML Parser
1588
1589// Helper objects and functions
1590geoXML3.getOpacity = function (kmlColor) {
1591	// Extract opacity encoded in a KML color value. Returns a number between 0 and 1.
1592	if (!!kmlColor &&
1593		(kmlColor !== '') &&
1594		(kmlColor.length == 8)) {
1595		var transparency = parseInt(kmlColor.substr(0, 2), 16);
1596		return transparency / 255;
1597	} else {
1598		return 1;
1599	}
1600};
1601
1602// Log a message to the debugging console, if one exists
1603geoXML3.log = function(msg) {
1604	if (!!window.console) {
1605		console.log(msg);
1606	} else { alert("log:"+msg); }
1607};
1608
1609/**
1610 * Creates a new parserOptions object.
1611 * @class GeoXML3 parser options.
1612 * @param {Object} overrides Any options you want to declare outside of the defaults should be included here.
1613 * @property {google.maps.Map} map The API map on which geo objects should be rendered.
1614 * @property {google.maps.MarkerOptions} markerOptions If the parser is adding Markers to the map itself, any options specified here will be applied to them.
1615 * @property {google.maps.InfoWindowOptions} infoWindowOptions If the parser is adding Markers to the map itself, any options specified here will be applied to their attached InfoWindows.
1616 * @property {ProjectedOverlay.options} overlayOptions If the parser is adding ProjectedOverlays to the map itself, any options specified here will be applied to them.
1617 */
1618geoXML3.parserOptions = function (overrides) {
1619	this.map                 = null,
1620	/** If true, the parser will automatically move the map to a best-fit of the geodata after parsing of a KML document completes.
1621	 * @type Boolean
1622	 * @default true
1623	 */
1624		this.zoom                = true,
1625	/**#@+ @type Boolean
1626	 *     @default false */
1627	/** If true, only a single Marker created by the parser will be able to have its InfoWindow open at once (simulating the behavior of GMaps API v2). */
1628		this.singleInfoWindow    = false,
1629	/** If true, suppresses the rendering of info windows. */
1630		this.suppressInfoWindows = false,
1631	/**
1632	 * Control whether to process styles now or later.
1633	 *
1634	 * <p>By default, the parser only processes KML &lt;Style&gt; elements into their GMaps equivalents
1635	 * if it will be creating its own Markers (the createMarker option is null). Setting this option
1636	 * to true will force such processing to happen anyway, useful if you're going to be calling parser.createMarker
1637	 * yourself later. OTOH, leaving this option false removes runtime dependency on the GMaps API, enabling
1638	 * the use of geoXML3 as a standalone KML parser.</p>
1639	 */
1640		this.processStyles       = false,
1641	/**#@-*/
1642
1643		this.markerOptions       = {},
1644		this.infoWindowOptions   = {},
1645		this.overlayOptions      = {},
1646
1647	/**#@+ @event */
1648	/** This function will be called when parsing of a KML document is complete.
1649	 * @param {geoXML3.parser#docs} doc Parsed KML data. */
1650		this.afterParse          = null,
1651	/** This function will be called when parsing of a KML document is complete.
1652	 * @param {geoXML3.parser#docs} doc Parsed KML data. */
1653		this.failedParse         = null,
1654	/**
1655	 * If supplied, this function will be called once for each marker <Placemark> in the KML document, instead of the parser adding its own Marker to the map.
1656	 * @param {geoXML3.parser.render#placemark} placemark Placemark object.
1657	 * @param {geoXML3.parser#docs} doc Parsed KML data.
1658	 */
1659		this.createMarker        = null,
1660	/**
1661	 * If supplied, this function will be called once for each <GroundOverlay> in the KML document, instead of the parser adding its own ProjectedOverlay to the map.
1662	 * @param {geoXML3.parser.render#groundOverlay} groundOverlay GroundOverlay object.
1663	 * @param {geoXML3.parser#docs} doc Parsed KML data.
1664	 */
1665		this.createOverlay       = null
1666	/**#@-*/
1667
1668	if (overrides) {
1669		for (var prop in overrides) {
1670			if (overrides.hasOwnProperty(prop)) this[prop] = overrides[prop];
1671		}
1672	}
1673	return this;
1674};
1675
1676/**
1677 * Combine two options objects: a set of default values and a set of override values.
1678 *
1679 * @deprecated This has been replaced with {@link geoXML3.parserOptions#combineOptions}.
1680 * @param {geoXML3.parserOptions|Object} overrides Override values.
1681 * @param {geoXML3.parserOptions|Object} defaults Default values.
1682 * @return {geoXML3.parserOptions} Combined result.
1683 */
1684geoXML3.combineOptions = function (overrides, defaults) {
1685	var result = {};
1686	if (!!overrides) {
1687		for (var prop in overrides) {
1688			if (overrides.hasOwnProperty(prop))                              result[prop] = overrides[prop];
1689		}
1690	}
1691	if (!!defaults) {
1692		for (prop in defaults) {
1693			if (defaults.hasOwnProperty(prop) && result[prop] === undefined) result[prop] = defaults[prop];
1694		}
1695	}
1696	return result;
1697};
1698
1699/**
1700 * Combine two options objects: a set of default values and a set of override values.
1701 *
1702 * @function
1703 * @param {geoXML3.parserOptions|Object} overrides Override values.
1704 * @param {geoXML3.parserOptions|Object} defaults Default values.
1705 * @return {geoXML3.parserOptions} Combined result.
1706 */
1707geoXML3.parserOptions.prototype.combineOptions = geoXML3.combineOptions;
1708
1709// Retrieve an XML document from url and pass it to callback as a DOM document
1710geoXML3.fetchers = [];
1711
1712/**
1713 * Parses a XML string.
1714 *
1715 * <p>Parses the given XML string and returns the parsed document in a
1716 * DOM data structure. This function will return an empty DOM node if
1717 * XML parsing is not supported in this browser.</p>
1718 *
1719 * @param {String} str XML string.
1720 * @return {Element|Document} DOM.
1721 */
1722geoXML3.xmlParse = function (str) {
1723	if ((typeof ActiveXObject != 'undefined') || ("ActiveXObject" in window)) {
1724		var doc = new ActiveXObject('Microsoft.XMLDOM');
1725		doc.loadXML(str);
1726		return doc;
1727	}
1728
1729	if (typeof DOMParser != 'undefined') {
1730		return (new DOMParser()).parseFromString(str, 'text/xml');
1731	}
1732
1733	return document.createElement('div', null);
1734}
1735
1736/**
1737 * Checks for XML parse error.
1738 *
1739 * @param {xmlDOM} XML DOM.
1740 * @return boolean.
1741 */
1742// from http://stackoverflow.com/questions/11563554/how-do-i-detect-xml-parsing-errors-when-using-javascripts-domparser-in-a-cross
1743geoXML3.isParseError = function(parsedDocument) {
1744	if ((typeof ActiveXObject != 'undefined') || ("ActiveXObject" in window))
1745		return false;
1746	// parser and parsererrorNS could be cached on startup for efficiency
1747	var p = new DOMParser(),
1748		errorneousParse = p.parseFromString('<', 'text/xml'),
1749		parsererrorNS = errorneousParse.getElementsByTagName("parsererror")[0].namespaceURI;
1750
1751	if (parsererrorNS === 'http://www.w3.org/1999/xhtml') {
1752		// In PhantomJS the parseerror element doesn't seem to have a special namespace, so we are just guessing here :(
1753		return parsedDocument.getElementsByTagName("parsererror").length > 0;
1754	}
1755
1756	return parsedDocument.getElementsByTagNameNS(parsererrorNS, 'parsererror').length > 0;
1757};
1758
1759/**
1760 * Fetches a XML document.
1761 *
1762 * <p>Fetches/parses the given XML URL and passes the parsed document (in a
1763 * DOM data structure) to the given callback.  Documents are downloaded
1764 * and parsed asynchronously.</p>
1765 *
1766 * @param {String} url URL of XML document.  Must be uncompressed XML only.
1767 * @param {Function(Document)} callback Function to call when the document is processed.
1768 */
1769geoXML3.fetchXML = function (url, callback) {
1770	function timeoutHandler() { callback(); };
1771
1772	var xhrFetcher = new Object();
1773	if      (!!geoXML3.fetchers.length) xhrFetcher = geoXML3.fetchers.pop();
1774	else if (!!window.XMLHttpRequest)   xhrFetcher.fetcher = new window.XMLHttpRequest();  // Most browsers
1775	else if (!!window.ActiveXObject) {                                                     // Some IE
1776		// the many versions of IE's XML fetchers
1777		var AXOs = [
1778			'MSXML2.XMLHTTP.6.0',
1779			'MSXML2.XMLHTTP.5.0',
1780			'MSXML2.XMLHTTP.4.0',
1781			'MSXML2.XMLHTTP.3.0',
1782			'MSXML2.XMLHTTP',
1783			'Microsoft.XMLHTTP',
1784			'MSXML.XMLHTTP'
1785		];
1786		for (var i = 0; i < AXOs.length; i++) {
1787			try      { xhrFetcher.fetcher = new ActiveXObject(AXOs[i]); break; }
1788			catch(e) { continue; }
1789		}
1790		if (!xhrFetcher.fetcher) {
1791			geoXML3.log('Unable to create XHR object');
1792			callback(null);
1793			return null;
1794		}
1795	}
1796
1797	xhrFetcher.fetcher.open('GET', url, true);
1798	if (!!xhrFetcher.fetcher.overrideMimeType) xhrFetcher.fetcher.overrideMimeType('text/xml');
1799	xhrFetcher.fetcher.onreadystatechange = function () {
1800		if (xhrFetcher.fetcher.readyState === 4) {
1801			// Retrieval complete
1802			if (!!xhrFetcher.xhrtimeout) clearTimeout(xhrFetcher.xhrtimeout);
1803			if (xhrFetcher.fetcher.status >= 400) {
1804				geoXML3.log('HTTP error ' + xhrFetcher.fetcher.status + ' retrieving ' + url);
1805				callback();
1806			}
1807			// Returned successfully
1808			else {
1809				if (xhrFetcher.fetcher.responseXML) {
1810					// Sometimes IE will get the data, but won't bother loading it as an XML doc
1811					var xml = xhrFetcher.fetcher.responseXML;
1812					if (xml && !xml.documentElement && !xml.ownerElement) {
1813						xml.loadXML(xhrFetcher.fetcher.responseText);
1814					}
1815				} else {// handle valid xml sent with wrong MIME type
1816					xml=geoXML3.xmlParse(xhrFetcher.fetcher.responseText);
1817				}
1818				// handle parse errors
1819				if (xml.parseError && (xml.parseError.errorCode != 0)) {
1820					geoXML3.log("XML parse error "+xml.parseError.errorCode+", "+xml.parseError.reason+"\
1820nLine:"+xml.parseError.line+", Position:"+xml.parseError.linepos+", srcText:"+xml.parseError.srcText);
1821					xml = "failed parse"
1822				} else if (geoXML3.isParseError(xml)) {
1823					geoXML3.log("XML parse error");
1824					xml = "failed parse"
1825				}
1826				callback(xml);
1827			}
1828			// We're done with this fetcher object
1829			geoXML3.fetchers.push(xhrFetcher);
1830		}
1831	};
1832
1833	xhrFetcher.xhrtimeout = setTimeout(timeoutHandler, 60000);
1834	xhrFetcher.fetcher.send(null);
1835	return null;
1836};
1837
1838var IEversion = function() {
1839	// http://msdn.microsoft.com/workshop/author/dhtml/overview/browserdetection.asp
1840	// Returns the version of Internet Explorer or a -1
1841	// (indicating the use of another browser).
1842	var rv = -1; // Return value assumes failure
1843	if (navigator.appName == 'Microsoft Internet Explorer') {
1844		var ua = navigator.userAgent;
1845		var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
1846		if (re.exec(ua) != null) {
1847			rv = parseFloat( RegExp.$1 );
1848		}
1849	}
1850	return rv;
1851};
1852
1853/**
1854 * Fetches a KMZ document.
1855 *
1856 * <p>Fetches/parses the given ZIP URL, parses each image file, and passes
1857 * the parsed KML document to the given callback.  Documents are downloaded
1858 * and parsed asynchronously, though the KML file is always passed after the
1859 * images have been processed, in case the callback requires the image data.</p>
1860 *
1861 * @requires ZipFile.complete.js
1862 * @param {String} url URL of KMZ document.  Must be a valid KMZ/ZIP archive.
1863 * @param {Function(Document)} callback Function to call when the document is processed.
1864 * @param {geoXML3.parser} parser A geoXML3.parser object.  This is used to populate the KMZ image data.
1865 * @author Brendan Byrd
1866 * @see http://code.google.com/apis/kml/documentation/kmzarchives.html
1867 */
1868geoXML3.fetchZIP = function (url, callback, parser) {
1869	// Just need a single 'new' declaration with a really long function...
1870	var zipFile = new ZipFile(url, function (zip) {
1871		// Retrieval complete
1872
1873		// Check for ERRORs in zip.status
1874		for (var i = 0; i < zip.status.length; i++) {
1875			var msg = zip.status[i];
1876			if (msg.indexOf("ERROR") == 0) {
1877				geoXML3.log('HTTP/ZIP error retrieving ' + url + ': ' + msg);
1878				callback();
1879				return;
1880			}
1881			else if (msg.indexOf("EXCEPTION") == 0) {
1882				geoXML3.log('HTTP/ZIP exception retrieving ' + url + ': ' + msg);
1883				callback();
1884				return;
1885			} else if (msg.indexOf("WARNING") == 0) {  // non-fatal, but still might be useful
1886				geoXML3.log('HTTP/ZIP warning retrieving ' + url + ': ' + msg);
1887			} else if (msg.indexOf("INFO") == 0) {  // non-fatal, but still might be useful
1888				geoXML3.log('HTTP/ZIP info retrieving ' + url + ': ' + msg);
1889			}
1890		}
1891
1892		// Make sure KMZ structure is according to spec (with a single KML file in the root dir)
1893		var KMLCount = 0;
1894		var KML;
1895		for (var i = 0; i < zip.entries.length; i++) {
1896			var name = zip.entries[i].name;
1897			if (!/\.kml$/.test(name)) continue;
1898
1899			KMLCount++;
1900			if (KMLCount == 1) KML = i;
1901			else {
1902				geoXML3.log('KMZ warning retrieving ' + url + ': found extra KML "' + name + '" in KMZ; discarding...');
1903			}
1904		}
1905
1906		// Returned successfully, but still needs extracting
1907		var baseUrl = cleanURL(defileURL(url), url) + '/';
1908		var kmlProcessing = {  // this is an object just so it gets passed properly
1909			timer: null,
1910			extractLeft: 0,
1911			timerCalls: 0
1912		};
1913		var extractCb = function(entry, entryContent) {
1914			var mdUrl = cleanURL(baseUrl, entry.name);
1915			var ext = entry.name.substring(entry.name.lastIndexOf(".") + 1).toLowerCase();
1916			kmlProcessing.extractLeft--;
1917
1918			if ((typeof entryContent.description == "string") && (entryContent.name == "Error")) {
1919				geoXML3.log('KMZ error extracting ' + mdUrl + ': ' + entryContent.description);
1920				callback();
1921				return;
1922			}
1923
1924			// MIME types that can be used in KML
1925			var mime;
1926			if (ext === 'jpg') ext = 'jpeg';
1927			if (/^(gif|jpeg|png)$/.test(ext)) mime = 'image/' + ext;
1928			else if (ext === 'mp3')           mime = 'audio/mpeg';
1929			else if (ext === 'm4a')           mime = 'audio/mp4';
1930			else if (ext === 'm4a')           mime = 'audio/MP4-LATM';
1931			else                              mime = 'application/octet-stream';
1932
1933			parser.kmzMetaData[mdUrl] = {};
1934			parser.kmzMetaData[mdUrl].entry = entry;
1935			// data:image/gif;base64,R0lGODlhEAAOALMA...
1936			parser.kmzMetaData[mdUrl].dataUrl = 'data:' + mime + ';base64,' + base64Encode(entryContent);
1937			// IE cannot handle GET requests beyond 2071 characters, even if it's an inline image
1938			if (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent))
1939			{
1940				if (((IEversion() < 8.0) &&
1941					(parser.kmzMetaData[mdUrl].dataUrl.length > 2071)) ||
1942					((IEversion < 9.0) &&
1943					(parser.kmzMetaData[mdUrl].dataUrl.length > 32767))) {
1944					parser.kmzMetaData[mdUrl].dataUrl =
1945						// this is a simple IE icon; to hint at the problem...
1946						'data:image/gif;base64,R0lGODlhDwAQAOMPADBPvSpQ1Dpoyz1p6FhwvU2A6ECP63CM04CWxYCk+V6x+UK++Jao3rvC3fj7+v///yH5BAEKAA8ALAAAAAAPABAAAASC8Mk5mwCAUMlWwcLRHEelLA' +
1947						'oGDMgzSsiyGCAhCETDPMh5XQCBwYBrNBIKWmg0MCQHj8MJU5IoroYCY6AAAgrDIbbQDGIK6DR5UPhlNo0JAlSUNAiDgH7eNAxEDWAKCQM2AAFheVxYAA0AIk
1947FOJ1gBcQQaUQKKA5w7LpcEBwkJaKMUEQA7';
1948				}
1949			}
1950			parser.kmzMetaData[internalSrc(entry.name)]=parser.kmzMetaData[mdUrl];
1951
1952		};
1953		var kmlExtractCb = function(entry, entryContent) {
1954			if ((typeof entryContent.description == "string") && (entryContent.name == "Error")) {
1955				geoXML3.log('KMZ error extracting ' + entry.name + ': ' + entryContent.description);
1956				callback();
1957				return;
1958			}
1959
1960			// check to see if the KML is the last file extracted
1961			clearTimeout(kmlProcessing.timer);
1962			if (kmlProcessing.extractLeft <= 1) {
1963				kmlProcessing.extractLeft--;
1964				callback(geoXML3.xmlParse(entryContent));
1965				return;
1966			}
1967			else {
1968				// KML file isn't last yet; it may need to use those files, so wait a bit (100ms)
1969				kmlProcessing.timerCalls++;
1970				if (kmlProcessing.timerCalls < 100) {
1971					kmlProcessing.timer = setTimeout(function() { kmlExtractCb(entry, entryContent); }, 100);
1972				}
1973				else {
1974					geoXML3.log('KMZ warning extracting ' + url + ': entire ZIP has not been extracted after 10 seconds; running through KML, anyway...');
1975					kmlProcessing.extractLeft--;
1976					callback(geoXML3.xmlParse(entryContent));
1977				}
1978			}
1979			return;
1980		};
1981		for (var i = 0; i < zip.entries.length; i++) {
1982			var entry = zip.entries[i];
1983			var ext = entry.name.substring(entry.name.lastIndexOf(".") + 1).toLowerCase();
1984			if (!/^(gif|jpe?g|png|kml)$/.test(ext)) continue;  // not going to bother to extract files we don't support
1985			if (ext === "kml" && i != KML)          continue;  // extra KMLs get discarded
1986			if (!parser && ext != "kml")            continue;  // cannot store images without a parser object
1987
1988			// extract asynchronously
1989			kmlProcessing.extractLeft++;
1990			if (ext === "kml") entry.extract(kmlExtractCb);
1991			else               entry.extract(extractCb);
1992		}
1993	}); //,3 for most verbose logging
1994
1995};
1996
1997/**
1998 * Extract the text value of a DOM node, with leading and trailing whitespace trimmed.
1999 *
2000 * @param {Element} node XML node/element.
2001 * @param {Any} delVal Default value if the node doesn't exist.
2002 * @return {String|Null}
2003 */
2004geoXML3.nodeValue = function(node, defVal) {
2005	var retStr="";
2006	if (!node) {
2007		return (typeof defVal === 'undefined' || defVal === null) ? null : defVal;
2008	}
2009	if(node.nodeType==3||node.nodeType==4||node.nodeType==2){
2010		retStr+=node.nodeValue;
2011	}else if(node.nodeType==1||node.nodeType==9||node.nodeType==11){
2012		for(var i=0;i<node.childNodes.length;++i){
2013			retStr+=arguments.callee(node.childNodes[i]);
2014		}
2015	}
2016	return retStr;
2017};
2018
2019/**
2020 * Loosely translate various values of a DOM node to a boolean.
2021 *
2022 * @param {Element} node XML node/element.
2023 * @param {Boolean} delVal Default value if the node doesn't exist.
2024 * @return {Boolean|Null}
2025 */
2026geoXML3.getBooleanValue = function(node, defVal) {
2027	var nodeContents = geoXML3.nodeValue(node);
2028	if (nodeContents === null) return defVal || false;
2029	nodeContents = parseInt(nodeContents);
2030	if (isNaN(nodeContents)) return true;
2031	if (nodeContents == 0) return false;
2032	else return true;
2033}
2034
2035/**
2036 * Browser-normalized version of getElementsByTagNameNS.
2037 *
2038 * <p>Required because IE8 doesn't define it.</p>
2039 *
2040 * @param {Element|Document} node DOM object.
2041 * @param {String} namespace Full namespace URL to search against.
2042 * @param {String} tagname XML local tag name.
2043 * @return {Array of Elements}
2044 * @author Brendan Byrd
2045 */
2046geoXML3.getElementsByTagNameNS = function(node, namespace, tagname) {
2047	if (node && typeof node.getElementsByTagNameNS != 'undefined') return node.getElementsByTagNameNS(namespace, tagname);
2048	if (!node) return [];
2049
2050	var root = node.documentElement || node.ownerDocument && node.ownerDocument.documentElement;
2051	if (!root || !root.attributes) return [];
2052
2053	// search for namespace prefix
2054	for (var i = 0; i < root.attributes.length; i++) {
2055		var attr = root.attributes[i];
2056		if      (attr.prefix   === 'xmlns' && attr.nodeValue === namespace) return node.getElementsByTagName(attr.baseName + ':' + tagname);
2057		else if (attr.nodeName === 'xmlns' && attr.nodeValue === namespace) {
2058			// default namespace
2059			if (typeof node.selectNodes != 'undefined') {
2060				// Newer IEs have the SelectionNamespace property that can be used with selectNodes
2061				if (!root.ownerDocument.getProperty('SelectionNamespaces'))
2062					root.ownerDocument.setProperty('SelectionNamespaces', "xmlns:defaultNS='" + namespace + "'");
2063				return node.selectNodes('.//defaultNS:' + tagname);
2064			}
2065			else {
2066				// Otherwise, you can still try to tack on the 'xmlns' attribute to root
2067				root.setAttribute('xmlns:defaultNS', namespace);
2068				return node.getElementsByTagName('defaultNS:' + tagname);
2069			}
2070		}
2071	}
2072	return geoXML3.getElementsByTagName(node, tagname);  // try the unqualified version
2073};
2074
2075/**
2076 * Browser-normalized version of getElementsByTagName.
2077 *
2078 * <p>Required because MSXML 6.0 will treat this function as a NS-qualified function,
2079 * despite the missing NS parameter.</p>
2080 *
2081 * @param {Element|Document} node DOM object.
2082 * @param {String} tagname XML local tag name.
2083 * @return {Array of Elements}
2084 * @author Brendan Byrd
2085 */
2086geoXML3.getElementsByTagName = function(node, tagname) {
2087	if (node && typeof node.getElementsByTagNameNS != 'undefined') return node.getElementsByTagName(tagname);  // if it has both functions, it should be accurate
2088//  if (node && typeof node.selectNodes != 'undefined')            return node.selectNodes(".//*[local-name()='" + tagname + "']");
2089	return node.getElementsByTagName(tagname);  // hope for the best...
2090}
2091
2092/**
2093 * Turn a directory + relative URL into an absolute one.
2094 *
2095 * @private
2096 * @param {String} d Base directory.
2097 * @param {String} s Relative URL.
2098 * @return {String} Absolute URL.
2099 * @author Brendan Byrd
2100 */
2101var toAbsURL = function (d, s) {
2102	var p, f, i;
2103	var h = location.protocol + "://" + location.host;
2104
2105	if (!s.length)           return '';
2106	if (/^\w+:/.test(s))     return s;
2107	if (s.indexOf('/') == 0) return h + s;
2108
2109	p = d.replace(/\/[^\/]*$/, '');
2110	f = s.match(/\.\.\//g);
2111	if (f) {
2112		s = s.substring(f.length * 3);
2113		for (i = f.length; i--;) { p = p.substring(0, p.lastIndexOf('/')); }
2114	}
2115
2116	return h + p + '/' + s;
2117}
2118
2119var internalSrc = function(src) {
2120	//this gets the full url
2121	var url = document.location.href;
2122	//this removes everything after the last slash in the path
2123	url = url.substring(0,url.lastIndexOf("/") + 1);
2124	var internalPath= url+src;
2125	return internalPath;
2126}
2127
2128/**
2129 * Remove current host from URL
2130 *
2131 * @private
2132 * @param {String} s Absolute or relative URL.
2133 * @return {String} Root-based relative URL.
2134 * @author Brendan Byrd
2135 */
2136var dehostURL = function (s) {
2137	var h = location.protocol + "://" + location.host;
2138	h = h.replace(/([\.\\\+\*\?\[\^\]\$\(\)])/g, '\\$1');  // quotemeta
2139	return s.replace(new RegExp('^' + h, 'i'), '');
2140}
2141
2142/**
2143 * Removes all query strings, #IDs, '../' references, and
2144 * hosts from a URL.
2145 *
2146 * @private
2147 * @param {String} d Base directory.
2148 * @param {String} s Absolute or relative URL.
2149 * @return {String} Root-based relative URL.
2150 * @author Brendan Byrd
2151 */
2152var cleanURL  = function (d, s) { return dehostURL(toAbsURL(d ? d.split('#')[0].split('?')[0] : defileURL(location.pathname), s ? s.split('#')[0].split('?')[0] : '')); }
2153/**
2154 * Remove filename from URL
2155 *
2156 * @private
2157 * @param {String} s Relative URL.
2158 * @return {String} Base directory.
2159 * @author Brendan Byrd
2160 */
2161var defileURL = function (s)    { return s ? s.substr(0, s.lastIndexOf('/') + 1) : '/'; }
2162
2163
2164// Some extra Array subs for ease of use
2165// http://stackoverflow.com/questions/143847/best-way-to-find-an-item-in-a-javascript-array
2166Array.prototype.hasObject = (
2167	!Array.indexOf ? function (obj) {
2168		var l = this.length + 1;
2169		while (l--) {
2170			if (this[l - 1] === obj) return true;
2171		}
2172		return false;
2173	} : function (obj) {
2174		return (this.indexOf(obj) !== -1);
2175	}
2176);
2177Array.prototype.hasItemInObj = function (name, item) {
2178	var l = this.length + 1;
2179	while (l--) {
2180		if (this[l - 1][name] === item) return true;
2181	}
2182	return false;
2183};
2184if (!Array.prototype.indexOf) {
2185	Array.prototype.indexOf = function (obj, fromIndex) {
2186		if (fromIndex == null) {
2187			fromIndex = 0;
2188		} else if (fromIndex < 0) {
2189			fromIndex = Math.max(0, this.length + fromIndex);
2190		}
2191		for (var i = fromIndex, j = this.length; i < j; i++) {
2192			if (this[i] === obj) return i;
2193		}
2194		return -1;
2195	};
2196}
2197Array.prototype.indexOfObjWithItem = function (name, item, fromIndex) {
2198	if (fromIndex == null) {
2199		fromIndex = 0;
2200	} else if (fromIndex < 0) {
2201		fromIndex = Math.max(0, this.length + fromIndex);
2202	}
2203	for (var i = fromIndex, j = this.length; i < j; i++) {
2204		if (this[i][name] === item) return i;
2205	}
2206	return -1;
2207};
2208
2209/**
2210 * Borrowed from jquery.base64.js, with some "Array as input" corrections
2211 *
2212 * @private
2213 * @param {Array of charCodes} input An array of byte ASCII codes (0-255).
2214 * @return {String} A base64-encoded string.
2215 * @author Brendan Byrd
2216 */
2217var base64Encode = function(input) {
2218	var keyString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
2219	var output = "";
2220	var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
2221	var i = 0;
2222	while (i < input.length) {
2223		chr1 = input[i++];
2224		chr2 = input[i++];
2225		chr3 = input[i++];
2226		enc1 = chr1 >> 2;
2227		enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
2228		enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
2229		enc4 = chr3 & 63;
2230
2231		if      (chr2 == undefined) enc3 = enc4 = 64;
2232		else if (chr3 == undefined) enc4 = 64;
2233
2234		output = output + keyString.charAt(enc1) + keyString.charAt(enc2) + keyString.charAt(enc3) + keyString.charAt(enc4);
2235	}
2236	return output;
2237};
2238!function(e,d,n,a){"use strict";var t,o,c,u;function p(e,t,o){n?n(e).on(t,o):a?e.addEvent(t,o):e.addEventListener(t,o,!1)}function m(e,t){n?n(window).trigger(n.Event(e,t)):a?window.fireEvent(e,t):window.dispatchEvent(new CustomEvent(e,t))}function f(e){return n?n(e).serialize():a?e.toQueryString():formToQueryString(e)}function s(e){var t=d.getElementById(e.formId);t&&t.parentNode&&!function s(i,r){var e,t,o=new XMLHttpRequest,n=i.getElementsByTagName("form")[0];if(!n)return;o.open(n.getAttribute("method").toUpperCase(),n.getAttribute("action")||location.href);o.setRequestHeader("Content-Type","application/x-www-form-urlencoded");o.setRequestHeader("X-Requested-With","XMLHttpRequest");o.onload=function(){200===o.status?a(o.responseText):200!==o.status&&Isotope.hideBox()};function a(e){for(var t=d.createElement("div"),n="",o=(e=e.replace(/<script([^>]*)>([\s\S]*?)<\/script>/gi,function(e,t,o){t=t.match(/type=['"]?([^"']+)/);return null!==t&&"text/javascript"!==t[1]?e:(n+=o+"\n","")}),t.innerHTML=e,0),a=t.getElementsByTagName("p");o<a.length;)-1!==a[o].className.search(/(^| )error( |$)/)?a[o].parentNode.removeChild(a[o]):o++;for(i.innerHTML="";0<t.childNodes.length;)i.appendChild(t.childNodes[0]);s(i,r),Isotope.hideBox(),n&&((e=d.createElement("script")).text=n,d.head.appendChild(e),d.head.removeChild(e)),m("isotopeProductReload",{detail:r})}function l(){1<o.readyState&&o.abort(),Isotope.displayBox(c),o.send(f(n))}if(r.attributes)for(e=0;e<r.attributes.length;e++)(t=d.getElementById("ctrl_"+r.attributes[e]+"_"+r.formId))&&p(t,"change",l);u[r.formId]=l}(t.parentNode,e)}n||a||((t=d.createElement("script")).src="system/modules/isotope/assets/js/polyfills.min.js",(o=d.getElementsByTagName("script")[0]).parentNode.insertBefore(t,o)),e.Isotope=e.Isotope||{toggleAddressFields:function(e,t){"0"==e.value&&e.checked?d.getElementById(t).style.display="":d.getElementById(t).style.display="none"},displayBox:function(e,t){var o=d.getElementById("iso_ajaxBox"),n=d.getElementById("iso_ajaxOverlay");n||((n=d.createElement("div")).setAttribute("id","iso_ajaxOverlay"),d.body.appendChild(n)),o||((o=d.createElement("div")).setAttribute("id","iso_ajaxBox"),d.body.appendChild(o)),t&&(p(n,"click",Isotope.hideBox),p(o,"click",Isotope.hideBox),-1!=!o.className.search(/btnClose/)&&(o.className=o.className+" btnClose")),n.style.display="block",o.innerHTML=e,o.style.display="block"},hideBox:function(){var e=d.getElementById("iso_ajaxBox"),t=d.getElementById("iso_ajaxOverlay");t&&(t.style.display="none",t.removeEventListener("click",Isotope.hideBox,!1)),e&&(e.style.display="none",e.removeEventListener("click",Isotope.hideBox,!1),e.className=e.className.replace(/ ?btnClose/,""))},inlineGallery:function(e,t){for(var o=e.parentNode,n=o.parentNode.children,a=0;a<n.length;a++)"gallery"==n[a].getAttribute("data-type")&&n[a].getAttribute("data-uid")==t&&-1!=n[a].getAttribute("class").search(/(^| )active($| )/)&&n[a].setAttribute("class",n[a].getAttribute("class").replace(/ ?active/,""));return o.setAttribute("class",o.getAttribute("class")+" active"),d.getElementById(t).src=e.href,e.dataset.lightboxUrl&&(d.getElementById(t).parentNode.href=e.dataset.lightboxUrl),!1},elevateZoom:function(e,t){return Isotope.inlineGallery(e,t),n("#"+t).data("elevateZoom").swaptheimage(e.getAttribute("href"),e.getAttribute("data-zoom-image")),!1},checkoutButton:function(e){function t(e){try{document.getElementsByName(e)[0].className=document.getElementsByName(e)[0].className+" disabled",document.getElementsByName(e)[0].onclick=function(){return!1}}catch(e){}}p(e,"submit",function(){t("nextStep"),t("previousStep"),setTimeout(function(){window.location.reload()},3e4)})},initAwesomplete:function(o,n){var a=!1;p(n,"focus",function(){if(a)return!1;a=!0;var e=window.location.href+(document.location.search?"&":"?")+"&iso_autocomplete="+o,t=new XMLHttpRequest;t.open("GET",encodeURI(e)),t.setRequestHeader("X-Requested-With","XMLHttpRequest"),t.onload=function(){200===t.status&&(new Awesomplete(n,{list:JSON.parse(t.responseText)}),n.focus())},t.send()})}},e.IsotopeProducts=(c="Loading product data …",u={},{attach:function(e){var t;if("[object Array]"===Object.prototype.toString.call(e)&&0<e.length)for(t=0;t<e.length;t++)s(e[t])}
2238,setLoadMessage:function(e){c=e||"Loading product data …"},submit:function(e){if(!u.hasOwnProperty(e))throw'Form "'+e+'" does not exist.';u[e]()}})}(window,document,window.jQuery,window.MooTools);
2239let ContaoCookiebar=function(){"use strict";return function(e){let c={},r={},t={selector:".contao-cookiebar",token:"ccb_contao_token",configId:null,pageId:null,hideOnInit:!1,blocking:!1,focusTrap:!0,version:null,lifetime:63072e3,consentLog:!1,cookies:null,configs:null,doNotTrack:!1,currentPageId:0,excludedPageIds:null,texts:{acceptAndDisplay:"Accept"},classes:{onSave:"cc-saved",onShow:"cc-active",onGroupToggle:"cc-active",onGroupSplitSelection:"cc-group-half"}};function i(e){var t=N();t.cookies.includes(e)||(t.cookies.push(parseInt(e)),O(t),r.settings.cookies["_"+e].confirmed=!0,p())}function n(e,t){let o=[];for(var n in r.settings.cookies){var s,c=parseInt(n.replace("_",""));r.settings.cookies.hasOwnProperty(n)&&(s=!!r.settings.cookies[n].confirmed!==(c=e.includes(c))&&!c,r.settings.cookies[n].confirmed=c,!0===t)&&s&&null!==(c=r.settings.cookies[n].token)&&c.forEach(function(e){o.push(e)})}var i;!0===t&&o.length&&((i=new XMLHttpRequest).open("POST","/cookiebar/delete",!0),i.send(I({tokens:o})))}function s(){let e;for(e in r.settings.configs)if(r.settings.configs.hasOwnProperty(e)){let o=r.settings.configs[e],n=k(o.cookies);null!==o.resources&&o.resources.forEach(function(e,t){!(1===e.mode&&n||2===e.mode&&!n||3===e.mode)||v(b(o,t),"config_resource")||m(e)}),null!==o.scripts&&o.scripts.forEach(function(e,t){1===e.mode!==n&&2===e.mode!=!n&&3!==e.mode||v(b(o,t),"config_script")||h(e)})}}function a(){let e;for(e in r.settings.cookies)if(r.settings.cookies.hasOwnProperty(e)){let o=r.settings.cookies[e];null!==o.resources&&o.resources.forEach(function(e,t){!(1===e.mode&&o.confirmed||2===e.mode&&!o.confirmed||3===e.mode)||v(b(o,t),"resource")||m(e)}),null!==o.scripts&&o.scripts.forEach(function(e,t){1===e.mode!==o.confirmed&&2===e.mode!=!o.confirmed&&3!==e.mode||v(b(o,t),"script")||h(e)})}}function l(e){var t=document.querySelectorAll('.cc-module[data-ccb-id="'+e+'"]');t&&t.forEach(function(e){e.parentNode.removeChild(e)}),r.modules["_"+e].forEach(function(e){e()}),delete r.modules["_"+e],u()}function d(e){(e=document.querySelectorAll('iframe[data-ccb-id="'+e+'"]')).length&&e.forEach(function(e){e.src=e.src,e.removeAttribute("data-ccb-id")}),u()}function u(e){var t=N();let o=[];if(r.show||!0===e){if(t.cookies&&t.cookies.length)o=t.cookies;else if(-1===t.version)for(var n in r.settings.cookies){var s=parseInt(n.replace("_",""));r.settings.cookies[n].checked&&o.push(s)}o.length&&o.forEach(function(e,t){e=r.dom.querySelector('[id="c'+e+'"]');e&&(e.checked=!0)});e=r.dom.querySelectorAll('input[name="group[]"]');e&&e.forEach(function(e){if(!e.disabled){e.checked=!1,e.classList.remove(r.settings.classes.onGroupSplitSelection);var o=e.parentElement.querySelectorAll('input[name="cookie[]"]');let t=[];o&&(o.forEach(function(e){e.disabled||t.push(!!e.checked)}),-1===t.indexOf(!1)?e.checked=!0:-1!==t.indexOf(!0)&&-1!==t.indexOf(!1)&&e.classList.add(r.settings.classes.onGroupSplitSelection))}})}}function f(t){r.settings.blocking&&r.dom?.parentElement.querySelectorAll(":scope >:not(script):not(.contao-cookiebar)")?.forEach(e=>{t?e.setAttribute("inert",""):e.removeAttribute("inert")}),r.settings.focusTrap&&(t?(document.addEventListener("keydown",E),r.dom.querySelector(".cc-inner").onanimationend=()=>{r.focused=!1,r.firstFocus?.classList.add("cc-hide-focus"),r.firstFocus?.focus({preventScroll:!0})}):document.removeEventListener("keydown",E))}function o(){r.show?(r.dom.classList.remove(r.settings.classes.onSave),r.dom.classList.add(r.settings.classes.onShow),f(!0)):(r.dom.classList.remove(r.settings.classes.onShow),f(!1))}function p(){var e,t;r.settings.consentLog&&(e=new XMLHttpRequest,t={referrer:window.location.pathname,configId:r.settings.configId,pageId:r.settings.pageId,cookies:N().cookies},e.open("GET","/cookiebar/log?"+I(t),!0),e.send())}const g=function(e){let t=[];e=e.currentTarget;let o=0;e.hasAttribute("data-accept-all")?o=1:e.hasAttribute("data-deny-all")&&(o=2),f(!1),r.inputs.forEac
2239h(function(e){2===o?e.checked=!1:1!==o&&!e.checked||(t.push(parseInt(e.value)),e.checked=!0)}),O({configId:r.settings.configId,pageId:r.settings.pageId,version:r.settings.version,saved:T(),cookies:t}),n(t,!0),s(),a(),p(),t.length&&t.forEach(function(e){r.settings.cookies.hasOwnProperty("_"+e)&&"iframe"===r.settings.cookies["_"+e].type&&d(e),r.modules.hasOwnProperty("_"+e)&&l(e)}),r.dom.classList.add(r.settings.classes.onSave);e=new CustomEvent("cookiebar_save",{detail:{cookiebar:r}});window.dispatchEvent(e),u(!0)},h=function(e){e.script=function(e){let t=document.createElement("script");return t.type="text/javascript",t.innerHTML=e,t}(e.script);var t=e.script;switch(e.position){case 1:document.body.append(t);break;case 2:document.body.prepend(t);break;case 3:document.head.append(t)}},m=function(e){try{var t=document.querySelectorAll("script[src]"),o=function(e){let t=e.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);return t&&t[1]}(e.src);for(let e=t.length;e--;)if(-1!==t[e].src.indexOf(o)&&o!==window.location.host)return!1}catch(e){}let n=document.createElement("script");n.type="text/javascript",n.src=e.src,n.onload=()=>{r.loadedResources.push(e.src),r.resourcesEvents.length&&r.resourcesEvents.forEach(function(e,t){if(-1===r.loadedResources.indexOf(e.src))return!1;e.callback(),delete r.resourcesEvents[t]})},null!==e.flags&&e.flags.length&&e.flags.forEach(function(e){"object"==typeof e?n.setAttribute(e[0],e[1]):n[e]=!0}),document.head.append(n)},k=function(e){let t=!1,o;for(o in e)if(r.settings.cookies.hasOwnProperty(o))if(r.settings.cookies[o].confirmed){t=!0;break}return t},v=function(e,t){return r.cache[t]||(r.cache[t]=[]),-1!==r.cache[t].indexOf(e)||(r.cache[t].push(e),!1)},b=function(e,t){return e.id+""+t},y=function(t){t.addEventListener("click",function(e){e.preventDefault(),c.show(t.classList.contains("ccb-prefill"))})},E=function(e){"Tab"!==e.key&&9!==e.keyCode||(r.focused||(r.focused=!0,r.firstFocus?.classList.remove("cc-hide-focus")),document.activeElement!==r.lastFocus||e.shiftKey||(e.preventDefault(),r.firstFocus?.focus()),document.activeElement===r.firstFocus&&e.shiftKey&&(e.preventDefault(),r.lastFocus?.focus()),document.activeElement!==r.toggleOpener)||function(e){for(;e;){if("none"===window.getComputedStyle(e).display)return!1;e=e.parentElement}return!0}(r.lastFocus)||"false"!==r.toggleOpener.ariaExpanded||e.shiftKey||(e.preventDefault(),r.firstFocus?.focus())},w=function(){let o=this.checked;var e=this.parentElement.querySelectorAll('input[name="cookie[]"]');e&&e.forEach(function(e,t){e.disabled||(e.checked=o)}),this.classList.remove(r.settings.classes.onGroupSplitSelection)},S=function(){let o=!this.classList.contains(r.settings.classes.onGroupToggle);this.setAttribute("aria-expanded",o?"true":"false");try{var e=this.parentElement.querySelectorAll(":scope > .toggle-group");e&&e.forEach(function(e,t){e.style.display=o?"block":"none"})}catch(e){this.parentElement.querySelector("[data-toggle-group] ~ .toggle-group").style.display=o?"block":"none"}this.classList.toggle(r.settings.classes.onGroupToggle)};function O(e){localStorage.setItem(A(),JSON.stringify(e))}const I=function(e,t){let o=[],n;for(n in e){var s,c;e.hasOwnProperty(n)&&(s=t?t+"["+n+"]":n,c=e[n],o.push(null!==c&&"object"==typeof c?I(c,s):encodeURIComponent(s)+"="+encodeURIComponent(c)))}return o.join("&")},L=function(){let e={},t=!1,o=0;var n=arguments.length;for("[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(t=arguments[0],o++);o<n;o++){var s,c=arguments[o],i=(s=void 0,c);for(s in i)Object.prototype.hasOwnProperty.call(i,s)&&(t&&"[object Object]"===Object.prototype.toString.call(i[s])?e[s]=L(!0,e[s],i[s]):e[s]=i[s])}return e},A=function(){return r.settings.token+"_"+r.settings.configId},N=function(){let e=localStorage.getItem(A());return null===e?(e={configId:r.settings.configId,pageId:r.settings.pageId,version:-1,saved:-1,cookies:[]},localStorage.setItem(A(),JSON.stringify(e))):e=JSON.parse(e),e},T=function(){return Math.floor(+new Date/1e3)};function x(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var o=document.createEvent("CustomEvent");return o.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),o}c.get=function(){return r},c.getStorage=function(){return N()},c.issetCookie=function(e){let t;var o=N();if(!o.cookies)return!1;if("number"==typeof e)return-1!==o.cookies.indexOf(e);for(t in r.settings.cookies)if(null!==r.settings.cookies[t].token&&-1!==r.settings.cookies[t].token.indexOf(e))return-1!==o.cookies.indexOf(r.settings.cookies[t].id);return-1!==o.cookies.indexOf(e.toString())},c.unblock=function(e,t,o){"iframe"===e.tagName.toLowerCase()?e.src=o:e.tagName.toLowerCase()&&(window.location.href=o),i(t),d(t)},c.addModule=function(t,o,n){var s;if(s=t,o=o,r.modules.hasOwnProperty("_"+s)?r.modules["_"+s].push(o):r.modules["_"+s]=[o],c.issetCookie(t))return l(t),!1;if(n&&"object"==typeof n&&n.selector){let e=null;(e="string"==typeof n.selector?document.querySelector(n.selector):n.selector)&&((s=document.createElement("div")).setAttribute("data-ccb-id",t),s.classList.add("cc-module"),n.message&&(s.innerHTML="<p>"+n.message+"</p>"),"object"==typeof n.button&&!0===n.button.show&&((o=document.createElement("button")).innerHTML=n.button.text||r.settings.texts.acceptAndDisplay,o.type=n.button.type||"button",n.button.classes&&(o.className=n.button.classes),o.addEventListener("click",function(){i(t),l(t)}),s.append(o)),e.appendChild(s))}},c.onResourceLoaded=function(e,t){var o;return r.settings.cookies.hasOwnProperty(e)?r.settings.cookies[e].resources.length?(o=r.settings.cookies[e].resources[0].src,void(-1!==r.loadedResources.indexOf(o)?t():r.resourcesEvents.push({src:o,callback:t}))):(console.warn(`The cookie ID ${e} does not contain any resources.`),!1):(console.warn(`Cookie ID ${e} does not exists.`),!1)},c.show=function(e){r.show=!0,o(),e&&u()},c.hide=function(){r.show=!1,o()},window.document.documentMode&&(window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),[Element.prototype,Document.prototype,DocumentFragment.prototype].forEach(function(e){e.hasOwnProperty("append")||Object.defineProperty(e,"append",{configurable:!0,enumerable:!0,writable:!0,value:function(){var e=Array.prototype.slice.call(arguments),o=document.createDocumentFragment();e.forEach(function(e){var t=e instanceof Node;o.appendChild(t?e:document.createTextNode(String(e)))}),this.appendChild(o)}})}),[Element.prototype,Document.prototype,DocumentFragment.prototype].forEach(function(e){e.hasOwnProperty("prepend")||Object.defineProperty(e,"prepend",{configurable:!0,enumerable:!0,writable:!0,value:function(){var e=Array.prototype.slice.call(arguments),o=document.createDocumentFragment();e.forEach(function(e){var t=e instanceof Node;o.appendChild(t?e:document.createTextNode(String(e)))}),this.insertBefore(o,this.firstChild)}})}),"function"!=typeof window.CustomEvent)&&(x.prototype=window.Event.prototype,window.CustomEvent=x),r.settings=L(!0,t,e),r.dom=document.querySelector(r.settings.selector),r.cache={},r.modules={},r.loadedResources=[],r.resourcesEvents=[],r.show=!1;var e=N(),C=(r.settings.hideOnInit||parseInt(e.version)===parseInt(r.settings.version)&&parseInt(e.configId)===parseInt(r.settings.configId)&&!function(e){let t=parseInt(e),o=parseInt(r.settings.lifetime);if(isNaN(t)||t===-1||o===0)return false;return t+o<T()}(e.saved)||r.settings.doNotTrack&&(window.doNotTrack||navigator.doNotTrack||navigator.msDoNotTrack)&&("1"==window.doNotTrack||"yes"==navigator.doNotTrack||"1"==navigator.doNotTrack||"1"==navigator.msDoNotTrack)||r.settings.currentPageId&&r.settings.excludedPageIds&&-1!==r.settings.excludedPageIds.indexOf(r.settings.currentPageId)||(r.show=!0),r.inputs=[],r.dom.querySelectorAll('input[name="cookie[]"]').forEach(function(e,t){e.disabled||r.inputs.push(e)}),r.dom.querySelectorAll("[data-toggle-cookies]")),q=r.dom.querySelectorAll("[data-toggle-group]"),P=r.dom.querySelectorAll("[data-save],[data-accept-all],[data-deny-all]"),P=(P.length&&P.forEach(function(e){e.addEventListener("click",g)}
2239),C.length&&C.forEach(function(e){e.addEventListener("click",w)}),q.length&&q.forEach(function(e){e.addEventListener("click",S)}),document.querySelectorAll("a.ccb-trigger, strong.ccb-trigger").forEach(function(e){y(e)}),new MutationObserver(function(e){for(const t of e)"childList"===t.type&&t.addedNodes.forEach(function(e){e.matches&&e.matches("a.ccb-trigger, strong.ccb-trigger")&&y(e)})}).observe(document,{attributes:!1,childList:!0,subtree:!0}),r.settings.focusTrap&&(_=r.dom.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), input[type="checkbox"]:not([disabled])'),r.toggleOpener=r.dom.querySelector("[data-ft-opener]"),r.firstFocus=_[0],r.lastFocus=_[_.length-1]),r.settings.blocking&&new MutationObserver(e=>{for(const t of e)"childList"===t.type&&0<t.addedNodes.length&&t.addedNodes.forEach(e=>{!r.show||e.nodeType!==Node.ELEMENT_NODE||e.classList.contains(".contao-cookiebar")||e.hasAttribute("inert")||e.setAttribute("inert","")})}).observe(r.dom,{childList:!0,subtree:!1}),Object.entries(r.settings.cookies??{}).sort(([,e],[,t])=>t.priority-e.priority)),_=(r.settings.cookies=Array.from(P).reduce((e,[t,o])=>Object.assign(e,{["_"+t]:o}),{}),n(e.cookies),o(),s(),a(),u(),new CustomEvent("cookiebar_init",{detail:{visibility:r.show,cookiebar:r}}));return window.dispatchEvent(_),c}}();

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.