docs/hilo-legacy.min.html
<!DOCTYPE html>
<html>
<head>
<title>hilo-legacy.min.js</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
<link rel="stylesheet" media="all" href="docco.css" />
</head>
<body>
<div id="container">
<div id="background"></div>
<ul id="jump_to">
<li>
<a class="large" href="javascript:void(0);">Jump To …</a>
<a class="small" href="javascript:void(0);">+</a>
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="hilo-legacy.html">
hilo-legacy.js
</a>
<a class="source" href="hilo-legacy.min.html">
hilo-legacy.min.js
</a>
<a class="source" href="hilo.html">
hilo.js
</a>
<a class="source" href="hilo.min.html">
hilo.min.js
</a>
</div>
</li>
</ul>
<ul class="sections">
<li id="title">
<div class="annotation">
<h1>hilo-legacy.min.js</h1>
</div>
</li>
<li id="section-1">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-1">¶</a>
</div>
</div>
<div class="content"><div class='highlight'><pre>!<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-string">"undefined"</span>!=<span class="hljs-keyword">typeof</span> <span class="hljs-built_in">module</span>&&<span class="hljs-built_in">module</span>.exports?<span class="hljs-built_in">module</span>.exports=c:<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> define&&define.amd?define(c):<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> YUI?YUI.add(a,c):b[a]=c()}(<span class="hljs-string">"Hilo"</span>,<span class="hljs-keyword">this</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-string">"use strict"</span>;<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">Test</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">this</span>.con=a,b&&(<span class="hljs-keyword">this</span>.neg=!<span class="hljs-number">0</span>)}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">ajaxRequest</span><span class="hljs-params">(a,b,c,d)</span></span>{d=<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> d?d:<span class="hljs-keyword">void</span> <span class="hljs-number">0</span>,hiloAjax(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> b&&<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> c?extend({method:a,url:b,success:c},d):extend({method:a},b))}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">Dom</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c,d;<span class="hljs-keyword">for</span>(c=<span class="hljs-number">0</span>,d=a.length;d>c;c+=<span class="hljs-number">1</span>)<span class="hljs-keyword">this</span>[c]=a[c];<span class="hljs-keyword">this</span>.length=a.length,<span class="hljs-keyword">this</span>.sel=b}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">unhyph</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.toLowerCase().replace(<span class="hljs-regexp">/-(.)/g</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> b.toUpperCase()})}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">unitize</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c={width:!<span class="hljs-number">0</span>,maxWidth:!<span class="hljs-number">0</span>,minWidth:!<span class="hljs-number">0</span>,height:!<span class="hljs-number">0</span>,maxHeight:!<span class="hljs-number">0</span>,minHeight:!<span class="hljs-number">0</span>,borderWidth:!<span class="hljs-number">0</span>,borderTopWidth:!<span class="hljs-number">0</span>,borderLeftWidth:!<span class="hljs-number">0</span>,borderBottomWidth:!<span class="hljs-number">0</span>,borderRightWidth:!<span class="hljs-number">0</span>,borderRadius:!<span class="hljs-number">0</span>,outlineWidth:!<span class="hljs-number">0</span>,outlineOffset:!<span class="hljs-number">0</span>,strokeWidth:!<span class="hljs-number">0</span>,fontSize:!<span class="hljs-number">0</span>,lineHeight:!<span class="hljs-number">0</span>,letterSpacing:!<span class="hljs-number">0</span>,textIndent:!<span class="hljs-number">0</span>,textUnderlineWidth:!<span class="hljs-number">0</span>,margin:!<span class="hljs-number">0</span>,marginTop:!<span class="hljs-number">0</span>,marginLeft:!<span class="hljs-number">0</span>,marginBottom:!<span class="hljs-number">0</span>,marginRight:!<span class="hljs-number">0</span>,padding:!<span class="hljs-number">0</span>,paddingTop:!<span class="hljs-number">0</span>,paddingLeft:!<span class="hljs-number">0</span>,paddingBottom:!<span class="hljs-number">0</span>,paddingRight:!<span class="hljs-number">0</span>,top:!<span class="hljs-number">0</span>,left:!<span class="hljs-number">0</span>,bottom:!<span class="hljs-number">0</span>,right:!<span class="hljs-number">0</span>};<span class="hljs-keyword">return</span><span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a?a:c[b]===!<span class="hljs-number">0</span>?a+<span class="hljs-string">"px"</span>:a}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">NumberObject</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">this</span>.num=a}<span class="hljs-keyword">var</span> hilo,start,win=<span class="hljs-built_in">window</span>,doc=win.document,detected,key,callbacks=[],select,feature,hiloAjax,own=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> a.hasOwnProperty(b)},_i;start=(<span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>).getTime(),feature=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> a=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> doc.createElement(a)},b=a(<span class="hljs-string">"input"</span>),c=a(<span class="hljs-string">"div"</span>),d=a(<span class="hljs-string">"canvas"</span>),e=a(<span class="hljs-string">"iframe"</span>),f=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">return</span>!!a.setAttribute(b,c)},g=a(<span class="hljs-string">"audio"</span>),h=a(<span class="hljs-string">"span"</span>),i=a(<span class="hljs-string">"video"</span>),j=<span class="hljs-keyword">new</span> XMLHttpRequest;<span class="hljs-keyword">return</span>{addEventListener:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> win.addEventListener}(),applicationCache:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.applicationCache}(),audio:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!g.canPlayType}(),audioPreload:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"preload"</span><span class="hljs-keyword">in</span> g}(),audioType:{mp3:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!(!g.canPlayType||!g.canPlayType(<span class="hljs-string">"audio/mpeg;"</span>).replace(<span class="hljs-regexp">/no/</span>,<span class="hljs-string">""</span>))}(),vorbis:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!(!g.canPlayType||!g.canPlayType(<span class="hljs-string">"audio/ogg; codecs='vorbis'"</span>).replace(<span class="hljs-regexp">/no/</span>,<span class="hljs-string">""</span>))}(),wav:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!(!g.canPlayType||!g.canPlayType(<span class="hljs-string">"audio/wav; codecs='1'"</span>).replace(<span class="hljs-regexp">/no/</span>,<span class="hljs-string">""</span>))}(),aac:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!(!g.canPlayType||!g.canPlayType(<span class="hljs-string">"audio/mp4; codecs='mp4a.40.2'"</span>).replace(<span class="hljs-regexp">/no/</span>,<span class="hljs-string">""</span>))}()},canvas:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!d.getContext}(),canvasText:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!d.getContext&&<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> d.getContext(<span class="hljs-string">"2d"</span>).fillText}(),classList:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"classList"</span><span class="hljs-keyword">in</span> h}(),command:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"type"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"command"</span>)}(),consval:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"noValidate"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"form"</span>)}(),contentEditable:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"isContentEditable"</span><span class="hljs-keyword">in</span> h}(),datalist:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"options"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"datalist"</span>)}(),details:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"open"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"details"</span>)}(),dragdrop:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"draggable"</span><span class="hljs-keyword">in</span> h}(),es6:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-built_in">String</span>.prototype.contains}(),fileapi:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"undefined"</span>!=<span class="hljs-keyword">typeof</span> FileReader}(),gen5:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-number">5</span>===<span class="hljs-built_in">parseInt</span>(win.navigator.appVersion,<span class="hljs-number">10</span>)}(),geolocation:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"geolocation"</span><span class="hljs-keyword">in</span> win.navigator}(),getSelection:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> win.getSelection}(),history:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!(!win.history||!history.pushState)}(),iframe:{sandbox:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"sandbox"</span><span class="hljs-keyword">in</span> e}(),srdoc:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"srcdoc"</span><span class="hljs-keyword">in</span> e}()},indexeddb:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!(win.indexedDB&&win.IDBKeyRange&&win.IDBTransaction)}(),input:{autofocus:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"autofocus"</span><span class="hljs-keyword">in</span> b}(),placeholder:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"placeholder"</span><span class="hljs-keyword">in</span> b}(),type:{color:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"color"</span>),<span class="hljs-string">"text"</span>!==b.type}(),date:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"date"</span>),<span class="hljs-string">"text"</span>!==b.type}(),datetime:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"datetime"</span>),<span class="hljs-string">"text"</span>!==b.type}(),datetimeLocal:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"datetime-local"</span>),<span class="hljs-string">"text"</span>!==b.type}(),email:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"email"</span>),<span class="hljs-string">"text"</span>!==b.type}(),month:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"month"</span>),<span class="hljs-string">"text"</span>!==b.type}(),number:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"number"</span>),<span class="hljs-string">"text"</span>!==b.type}(),range:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"range"</span>),<span class="hljs-string">"text"</span>!==b.type}(),search:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"search"</span>),<span class="hljs-string">"text"</span>!==b.type}(),tel:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"tel"</span>),<span class="hljs-string">"text"</span>!==b.type}(),time:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"time"</span>),<span class="hljs-string">"text"</span>!==b.type}(),week:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"week"</span>),<span class="hljs-string">"text"</span>!==b.type}()}},localStorage:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span><span class="hljs-string">"localStorage"</span><span class="hljs-keyword">in</span> win&&<span class="hljs-literal">null</span>!==win.localStorage&&!!win.localStorage.setItem}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}(),meter:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"value"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"meter"</span>)}(),microdata:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"getItems"</span><span class="hljs-keyword">in</span> doc}(),offline:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.applicationCache}(),output:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"value"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"output"</span>)}(),progress:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"value"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"progress"</span>)}(),qsa:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"querySelector"</span><span class="hljs-keyword">in</span> doc&&<span class="hljs-string">"querySelectorAll"</span><span class="hljs-keyword">in</span> doc}(),qsa3:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span> doc.querySelectorAll(<span class="hljs-string">":root"</span>).length><span class="hljs-number">0</span>}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}(),requestAnimationFrame:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> requestAnimationFrame?!<span class="hljs-number">0</span>:<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> msRequestAnimationFrame?<span class="hljs-string">"ms"</span>:<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> webkitRequestAnimationFrame?<span class="hljs-string">"webkit"</span>:<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> mozRequestAnimationFrame?<span class="hljs-string">"moz"</span>:!<span class="hljs-number">1</span>}(),serverEvt:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"undefined"</span>!=<span class="hljs-keyword">typeof</span> EventSource}(),sessionStorage:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span><span class="hljs-string">"sessionStorage"</span><span class="hljs-keyword">in</span> win&&<span class="hljs-literal">null</span>!==win.sessionStorage}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}(),showModalDialog:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> win.showModalDialog}(),svg:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!(!doc.createElementNS||!doc.createElementNS(<span class="hljs-string">"http://www.w3.org/2000/svg"</span>,<span class="hljs-string">"svg"</span>).createSVGRect)}(),svginhtml:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> c.innerHTML=<span class="hljs-string">"<svg></svg>"</span>,!!(win.SVGSVGElement&&c.firstChild <span class="hljs-keyword">instanceof</span> win.SVGSVGElement)}(),template:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"content"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"template"</span>)}(),time:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"datetime"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"time"</span>)}(),undo:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"undefined"</span>!=<span class="hljs-keyword">typeof</span> UndoManager}(),video:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span>!!i.canPlayType}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}(),videoCaptions:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"src"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"track"</span>)}(),videoFormats:{h264:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span> i.canPlayType(<span class="hljs-string">"video/mp4; codecs='avc1.42E01E, mp4a.40.2'"</span>)}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}(),webm:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span> i.canPlayType(<span class="hljs-string">"video/webm; codecs='vp8, vorbis'"</span>)}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}(),ogg:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span> i.canPlayType(<span class="hljs-string">"video/ogg; codecs='theora, vorbis'"</span>)}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}()},videoPoster:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"poster"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"video"</span>)}(),webAudio:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> win.AudioContext?!<span class="hljs-number">0</span>:win.webkitAudioContext?<span class="hljs-string">"webkit"</span>:!<span class="hljs-number">1</span>}(),webSockets:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.webSocket}(),websql:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.openDatabase}(),webWorkers:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.Worker}(),widgets:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"undefined"</span>!=<span class="hljs-keyword">typeof</span> widget}(),xdocmsg:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.postMessage}(),xhr:{xdr:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"withCredentials"</span><span class="hljs-keyword">in</span> j}(),formdata:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.FormData}(),upe:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"upload"</span><span class="hljs-keyword">in</span> j}()}}}(),detected=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> a,b,c,d,e,f=win.navigator.userAgent;<span class="hljs-keyword">if</span>(b={ie:<span class="hljs-number">0</span>,firefox:<span class="hljs-number">0</span>,safari:<span class="hljs-number">0</span>,konq:<span class="hljs-number">0</span>,opera:<span class="hljs-number">0</span>,chrome:<span class="hljs-number">0</span>,ver:<span class="hljs-literal">null</span>},c={win:!<span class="hljs-number">1</span>,mac:!<span class="hljs-number">1</span>,x11:!<span class="hljs-number">1</span>,iphone:!<span class="hljs-number">1</span>,ipod:!<span class="hljs-number">1</span>,ipad:!<span class="hljs-number">1</span>,ios:!<span class="hljs-number">1</span>,android:!<span class="hljs-number">1</span>,nokiaN:!<span class="hljs-number">1</span>,winMobile:!<span class="hljs-number">1</span>,wii:!<span class="hljs-number">1</span>,ps:!<span class="hljs-number">1</span>},a={ie:<span class="hljs-number">0</span>,gecko:<span class="hljs-number">0</span>,webkit:<span class="hljs-number">0</span>,khtml:<span class="hljs-number">0</span>,opera:<span class="hljs-number">0</span>,ver:<span class="hljs-literal">null</span>},<span class="hljs-built_in">window</span>.opera?(a.ver=b.ver=<span class="hljs-built_in">window</span>.opera.version(),a.opera=b.opera=<span class="hljs-built_in">parseFloat</span>(a.ver)):<span class="hljs-regexp">/AppleWebKit\/(\S+)/</span>.test(f)?(a.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,a.webkit=<span class="hljs-built_in">parseFloat</span>(a.ver),<span class="hljs-regexp">/Chrome\/(\S+)/</span>.test(f)?(b.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,b.chrome=<span class="hljs-built_in">parseFloat</span>(b.ver)):<span class="hljs-regexp">/Version\/(\S+)/</span>.test(f)?(b.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,b.safari=<span class="hljs-built_in">parseFloat</span>(b.ver)):(d=<span class="hljs-number">1</span>,d=a.webkit<<span class="hljs-number">100</span>?<span class="hljs-number">1</span>:a.webkit<<span class="hljs-number">312</span>?<span class="hljs-number">1.2</span>:a.webkit<<span class="hljs-number">412</span>?<span class="hljs-number">1.3</span>:<span class="hljs-number">2</span>,b.safari=b.ver=d)):<span class="hljs-regexp">/KHTML\/(\S+)/</span>.test(f)||<span class="hljs-regexp">/Konqueror\/([^;]+)/</span>.test(f)?(a.ver=b.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,a.khtml=b.konq=<span class="hljs-built_in">parseFloat</span>(a.ver)):<span class="hljs-regexp">/rv:([^\)]+)\) Gecko\/\d{8}/</span>.test(f)?(a.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,a.gecko=<span class="hljs-built_in">parseFloat</span>(a.ver),<span class="hljs-regexp">/Firefox\/(\S+)/</span>.test(f)&&(b.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,b.firefox=<span class="hljs-built_in">parseFloat</span>(b.ver))):<span class="hljs-regexp">/MSIE ([^;]+)/</span>.test(f)&&(a.ver=b.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,a.ie=b.ie=<span class="hljs-built_in">parseFloat</span>(a.ver)),b.ie=a.ie,b.opera=a.opera,e=navigator.platform,c.win=<span class="hljs-number">0</span>===e.indexOf(<span class="hljs-string">"Win"</span>),c.mac=<span class="hljs-number">0</span>===e.indexOf(<span class="hljs-string">"Mac"</span>),c.x11=<span class="hljs-string">"X11"</span>===e||<span class="hljs-number">0</span>===e.indexOf(<span class="hljs-string">"Linux"</span>),c.win&&<span class="hljs-regexp">/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/</span>.test(f))<span class="hljs-keyword">if</span>(<span class="hljs-string">"NT"</span>===<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>)<span class="hljs-keyword">switch</span>(<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">2</span>){<span class="hljs-keyword">case</span><span class="hljs-string">"5.0"</span>:c.win=<span class="hljs-string">"2000"</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"5.1"</span>:c.win=<span class="hljs-string">"XP"</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"6.0"</span>:c.win=<span class="hljs-string">"Vista"</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"6.1"</span>:c.win=<span class="hljs-string">"7"</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">default</span>:c.win=<span class="hljs-string">"NT"</span>}<span class="hljs-keyword">else</span> c.win=<span class="hljs-string">"9x"</span>===<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>?<span class="hljs-string">"ME"</span>:<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>;<span class="hljs-keyword">return</span> c.iphone=f.indexOf(<span class="hljs-string">"iPhone"</span>)>-<span class="hljs-number">1</span>,c.ipod=f.indexOf(<span class="hljs-string">"iPod"</span>)>-<span class="hljs-number">1</span>,c.ipad=f.indexOf(<span class="hljs-string">"iPad"</span>)>-<span class="hljs-number">1</span>,c.nokiaN=f.indexOf(<span class="hljs-string">"NokiaN"</span>)>-<span class="hljs-number">1</span>,<span class="hljs-string">"CE"</span>===c.win?c.winMobile=c.win:<span class="hljs-string">"Ph"</span>===c.win&&<span class="hljs-regexp">/Windows Phone OS(\d+.\d+)/</span>.test(f)&&(c.win=<span class="hljs-string">"Phone"</span>,c.winMobile=<span class="hljs-built_in">parseFloat</span>(<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>)),c.mac&&f.indexOf(<span class="hljs-string">"Mobile"</span>)>-<span class="hljs-number">1</span>&&(c.ios=<span class="hljs-regexp">/CPU (?:iPhone )?OS (\d+_\d+)/</span>.test(f)?<span class="hljs-built_in">parseFloat</span>(<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1.</span>replace(<span class="hljs-string">"_"</span>,<span class="hljs-string">"."</span>)):<span class="hljs-number">2</span>),<span class="hljs-regexp">/Android (\d+\.\d+)/</span>.test(f)&&(c.android=<span class="hljs-built_in">parseFloat</span>(<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>)),c.wii=f.indexOf(<span class="hljs-string">"Wii"</span>)>-<span class="hljs-number">1</span>,c.ps=<span class="hljs-regexp">/playstation/i</span>.test(f),c.win?(c.name=<span class="hljs-string">"Windows"</span>,c.version=c.win):c.name=c.mac?<span class="hljs-string">"Mac"</span>:c.x11?<span class="hljs-string">"Linux"</span>:<span class="hljs-string">"Some other"</span>,b.ie?(b.name=<span class="hljs-string">"IE"</span>,b.version=b.ie):b.chrome?(b.name=<span class="hljs-string">"Chrome"</span>,b.version=b.chrome):b.safari?(b.name=<span class="hljs-string">"Safari"</span>,b.version=b.safari):b.konq?(b.name=<span class="hljs-string">"Konqueror"</span>,b.version=b.konq):b.opera?(b.name=<span class="hljs-string">"Opera"</span>,b.version=b.opera):b.firefox&&(b.name=<span class="hljs-string">"Firefox"</span>,b.version=b.firefox),{engine:a,browser:b,system:c}}();<span class="hljs-keyword">var</span> json={};!<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">f</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-number">10</span>>a?<span class="hljs-string">"0"</span>+a:a}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">quote</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> escapable.lastIndex=<span class="hljs-number">0</span>,escapable.test(a)?<span class="hljs-string">'"'</span>+a.replace(escapable,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=meta[a];<span class="hljs-keyword">return</span><span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> b?b:<span class="hljs-string">"\\u"</span>+(<span class="hljs-string">"0000"</span>+a.charCodeAt(<span class="hljs-number">0</span>).toString(<span class="hljs-number">16</span>)).slice(-<span class="hljs-number">4</span>)})+<span class="hljs-string">'"'</span>:<span class="hljs-string">'"'</span>+a+<span class="hljs-string">'"'</span>}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">str</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c,d,e,f,g,h=gap,i=b[a];<span class="hljs-keyword">switch</span>(i&&<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> i&&<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> i.tojson&&(i=i.tojson(a)),<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> rep&&(i=rep.call(b,a,i)),<span class="hljs-keyword">typeof</span> i){<span class="hljs-keyword">case</span><span class="hljs-string">"string"</span>:<span class="hljs-keyword">return</span> quote(i);<span class="hljs-keyword">case</span><span class="hljs-string">"number"</span>:<span class="hljs-keyword">return</span> <span class="hljs-built_in">isFinite</span>(i)?<span class="hljs-built_in">String</span>(i):<span class="hljs-string">"null"</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"boolean"</span>:<span class="hljs-keyword">case</span><span class="hljs-string">"null"</span>:<span class="hljs-keyword">return</span> <span class="hljs-built_in">String</span>(i);<span class="hljs-keyword">case</span><span class="hljs-string">"object"</span>:<span class="hljs-keyword">if</span>(!i)<span class="hljs-keyword">return</span><span class="hljs-string">"null"</span>;<span class="hljs-keyword">if</span>(gap+=indent,g=[],<span class="hljs-string">"[object Array]"</span>===<span class="hljs-built_in">Object</span>.prototype.toString.apply(i)){<span class="hljs-keyword">for</span>(f=i.length,c=<span class="hljs-number">0</span>;f>c;c+=<span class="hljs-number">1</span>)g[c]=str(c,i)||<span class="hljs-string">"null"</span>;<span class="hljs-keyword">return</span> e=<span class="hljs-number">0</span>===g.length?<span class="hljs-string">"[]"</span>:gap?<span class="hljs-string">"[\n"</span>+gap+g.join(<span class="hljs-string">",\n"</span>+gap)+<span class="hljs-string">"\n"</span>+h+<span class="hljs-string">"]"</span>:<span class="hljs-string">"["</span>+g.join(<span class="hljs-string">","</span>)+<span class="hljs-string">"]"</span>,gap=h,e}<span class="hljs-keyword">if</span>(rep&&<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> rep)<span class="hljs-keyword">for</span>(f=rep.length,c=<span class="hljs-number">0</span>;f>c;c+=<span class="hljs-number">1</span>)<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?<span class="hljs-string">": "</span>:<span class="hljs-string">":"</span>)+e));<span class="hljs-keyword">else</span> <span class="hljs-keyword">for</span>(d <span class="hljs-keyword">in</span> i)<span class="hljs-built_in">Object</span>.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?<span class="hljs-string">": "</span>:<span class="hljs-string">":"</span>)+e));<span class="hljs-keyword">return</span> e=<span class="hljs-number">0</span>===g.length?<span class="hljs-string">"{}"</span>:gap?<span class="hljs-string">"{\n"</span>+gap+g.join(<span class="hljs-string">",\n"</span>+gap)+<span class="hljs-string">"\n"</span>+h+<span class="hljs-string">"}"</span>:<span class="hljs-string">"{"</span>+g.join(<span class="hljs-string">","</span>)+<span class="hljs-string">"}"</span>,gap=h,e}}<span class="hljs-keyword">if</span>(<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-built_in">window</span>.JSON&&<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-built_in">window</span>.JSON.parse)<span class="hljs-keyword">return</span> <span class="hljs-keyword">void</span>(json=<span class="hljs-built_in">window</span>.JSON);<span class="hljs-string">"function"</span>!=<span class="hljs-keyword">typeof</span> <span class="hljs-built_in">Date</span>.prototype.tojson&&(<span class="hljs-built_in">Date</span>.prototype.tojson=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">isFinite</span>(<span class="hljs-keyword">this</span>.valueOf())?<span class="hljs-keyword">this</span>.getUTCFullYear()+<span class="hljs-string">"-"</span>+f(<span class="hljs-keyword">this</span>.getUTCMonth()+<span class="hljs-number">1</span>)+<span class="hljs-string">"-"</span>+f(<span class="hljs-keyword">this</span>.getUTCDate())+<span class="hljs-string">"T"</span>+f(<span class="hljs-keyword">this</span>.getUTCHours())+<span class="hljs-string">":"</span>+f(<span class="hljs-keyword">this</span>.getUTCMinutes())+<span class="hljs-string">":"</span>+f(<span class="hljs-keyword">this</span>.getUTCSeconds())+<span class="hljs-string">"Z"</span>:<span class="hljs-literal">null</span>},<span class="hljs-built_in">String</span>.prototype.tojson=<span class="hljs-built_in">Number</span>.prototype.tojson=<span class="hljs-built_in">Boolean</span>.prototype.tojson=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.valueOf()});<span class="hljs-keyword">var</span> cx=<span class="hljs-regexp">/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g</span>,escapable=<span class="hljs-regexp">/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g</span>,gap,indent,meta={<span class="hljs-string">"\b"</span>:<span class="hljs-string">"\\b"</span>,<span class="hljs-string">" "</span>:<span class="hljs-string">"\\t"</span>,<span class="hljs-string">"\n"</span>:<span class="hljs-string">"\\n"</span>,<span class="hljs-string">"\f"</span>:<span class="hljs-string">"\\f"</span>,<span class="hljs-string">"\r"</span>:<span class="hljs-string">"\\r"</span>,<span class="hljs-string">'"'</span>:<span class="hljs-string">'\\"'</span>,<span class="hljs-string">"\\"</span>:<span class="hljs-string">"\\\\"</span>},rep;<span class="hljs-string">"function"</span>!=<span class="hljs-keyword">typeof</span> json.stringify&&(json.stringify=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">var</span> d;<span class="hljs-keyword">if</span>(gap=<span class="hljs-string">""</span>,indent=<span class="hljs-string">""</span>,<span class="hljs-string">"number"</span>==<span class="hljs-keyword">typeof</span> c)<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;c>d;d+=<span class="hljs-number">1</span>)indent+=<span class="hljs-string">" "</span>;<span class="hljs-keyword">else</span><span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> c&&(indent=c);<span class="hljs-keyword">if</span>(rep=b,b&&<span class="hljs-string">"function"</span>!=<span class="hljs-keyword">typeof</span> b&&(<span class="hljs-string">"object"</span>!=<span class="hljs-keyword">typeof</span> b||<span class="hljs-string">"number"</span>!=<span class="hljs-keyword">typeof</span> b.length))<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">"json.stringify"</span>);<span class="hljs-keyword">return</span> str(<span class="hljs-string">""</span>,{<span class="hljs-string">""</span>:a})}),<span class="hljs-string">"function"</span>!=<span class="hljs-keyword">typeof</span> json.parse&&(json.parse=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(text,reviver)</span></span>{<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">walk</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c,d,e=a[b];<span class="hljs-keyword">if</span>(e&&<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> e)<span class="hljs-keyword">for</span>(c <span class="hljs-keyword">in</span> e)<span class="hljs-built_in">Object</span>.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),<span class="hljs-keyword">void</span> <span class="hljs-number">0</span>!==d?e[c]=d:<span class="hljs-keyword">delete</span> e[c]);<span class="hljs-keyword">return</span> reviver.call(a,b,e)}<span class="hljs-keyword">var</span> j;<span class="hljs-keyword">if</span>(text=<span class="hljs-built_in">String</span>(text),cx.lastIndex=<span class="hljs-number">0</span>,cx.test(text)&&(text=text.replace(cx,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"\\u"</span>+(<span class="hljs-string">"0000"</span>+a.charCodeAt(<span class="hljs-number">0</span>).toString(<span class="hljs-number">16</span>)).slice(-<span class="hljs-number">4</span>)})),<span class="hljs-regexp">/^[\],:{}\s]*$/</span>.test(text.replace(<span class="hljs-regexp">/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g</span>,<span class="hljs-string">"@"</span>).replace(<span class="hljs-regexp">/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g</span>,<span class="hljs-string">"]"</span>).replace(<span class="hljs-regexp">/(?:^|:|,)(?:\s*\[)+/g</span>,<span class="hljs-string">""</span>)))<span class="hljs-keyword">return</span> j=<span class="hljs-built_in">eval</span>(<span class="hljs-string">"("</span>+text+<span class="hljs-string">")"</span>),<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> reviver?walk({<span class="hljs-string">""</span>:j},<span class="hljs-string">""</span>):j;<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">SyntaxError</span>(<span class="hljs-string">"json.parse"</span>)})}();<span class="hljs-keyword">var</span> sizzle=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">a</span><span class="hljs-params">(a,b,c,d)</span></span>{<span class="hljs-keyword">var</span> e,f,g,h,i,j=l(a);<span class="hljs-keyword">if</span>(!d&&<span class="hljs-number">1</span>===j.length){<span class="hljs-keyword">if</span>(f=j[<span class="hljs-number">0</span>]=j[<span class="hljs-number">0</span>].slice(<span class="hljs-number">0</span>),f.length><span class="hljs-number">2</span>&&<span class="hljs-string">"ID"</span>===(g=f[<span class="hljs-number">0</span>]).type&&v.getById&&<span class="hljs-number">9</span>===b.nodeType&&F&&w.relative[f[<span class="hljs-number">1</span>].type]){<span class="hljs-keyword">if</span>(b=(w.find.ID(g.matches[<span class="hljs-number">0</span>].replace(ub,vb),b)||[])[<span class="hljs-number">0</span>],!b)<span class="hljs-keyword">return</span> c;a=a.slice(f.shift().value.length)}<span class="hljs-keyword">for</span>(e=ob.needsContext.test(a)?<span class="hljs-number">0</span>:f.length;e--&&(g=f[e],!w.relative[h=g.type]);)<span class="hljs-keyword">if</span>((i=w.find[h])&&(d=i(g.matches[<span class="hljs-number">0</span>].replace(ub,vb),kb.test(f[<span class="hljs-number">0</span>].type)&&b.parentNode||b))){<span class="hljs-keyword">if</span>(f.splice(e,<span class="hljs-number">1</span>),a=d.length&&m(f),!a)<span class="hljs-keyword">return</span> $.apply(c,d),c;<span class="hljs-keyword">break</span>}}<span class="hljs-keyword">return</span> z(a,j)(d,b,!F,c,kb.test(a)),c}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">b</span><span class="hljs-params">(b,c,d,e)</span></span>{<span class="hljs-keyword">var</span> f,g,h,i,j,k,n,o,p,q;<span class="hljs-keyword">if</span>((c?c.ownerDocument||c:P)!==D&&C(c),c=c||D,d=d||[],!b||<span class="hljs-string">"string"</span>!=<span class="hljs-keyword">typeof</span> b)<span class="hljs-keyword">return</span> d;<span class="hljs-keyword">if</span>(<span class="hljs-number">1</span>!==(i=c.nodeType)&&<span class="hljs-number">9</span>!==i)<span class="hljs-keyword">return</span>[];<span class="hljs-keyword">if</span>(F&&!e){<span class="hljs-keyword">if</span>(f=qb.exec(b))<span class="hljs-keyword">if</span>(h=f[<span class="hljs-number">1</span>]){<span class="hljs-keyword">if</span>(<span class="hljs-number">9</span>===i){<span class="hljs-keyword">if</span>(g=c.getElementById(h),!g||!g.parentNode)<span class="hljs-keyword">return</span> d;<span class="hljs-keyword">if</span>(g.id===h)<span class="hljs-keyword">return</span> d.push(g),d}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(c.ownerDocument&&(g=c.ownerDocument.getElementById(h))&&J(c,g)&&g.id===h)<span class="hljs-keyword">return</span> d.push(g),d}<span class="hljs-keyword">else</span>{<span class="hljs-keyword">if</span>(f[<span class="hljs-number">2</span>])<span class="hljs-keyword">return</span> $.apply(d,c.getElementsByTagName(b)),d;<span class="hljs-keyword">if</span>((h=f[<span class="hljs-number">3</span>])&&v.getElementsByClassName&&c.getElementsByClassName)<span class="hljs-keyword">return</span> $.apply(d,c.getElementsByClassName(h)),d}<span class="hljs-keyword">if</span>(v.qsa&&(!G||!G.test(b))){<span class="hljs-keyword">if</span>(o=n=O,p=c,q=<span class="hljs-number">9</span>===i&&b,<span class="hljs-number">1</span>===i&&<span class="hljs-string">"object"</span>!==c.nodeName.toLowerCase()){<span class="hljs-keyword">for</span>(k=l(b),(n=c.getAttribute(<span class="hljs-string">"id"</span>))?o=n.replace(tb,<span class="hljs-string">"\\$&"</span>):c.setAttribute(<span class="hljs-string">"id"</span>,o),o=<span class="hljs-string">"[id='"</span>+o+<span class="hljs-string">"'] "</span>,j=k.length;j--;)k[j]=o+m(k[j]);p=kb.test(b)&&c.parentNode||c,q=k.join(<span class="hljs-string">","</span>)}<span class="hljs-keyword">if</span>(q)<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span> $.apply(d,p.querySelectorAll(q)),d}<span class="hljs-keyword">catch</span>(r){}<span class="hljs-keyword">finally</span>{n||c.removeAttribute(<span class="hljs-string">"id"</span>)}}}<span class="hljs-keyword">return</span> a(b.replace(hb,<span class="hljs-string">"$1"</span>),c,d,e)}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">c</span><span class="hljs-params">()</span></span>{<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">a</span><span class="hljs-params">(c,d)</span></span>{<span class="hljs-keyword">return</span> b.push(c+=<span class="hljs-string">" "</span>)>w.cacheLength&&<span class="hljs-keyword">delete</span> a[b.shift()],a[c]=d}<span class="hljs-keyword">var</span> b=[];<span class="hljs-keyword">return</span> a}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">d</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a[O]=!<span class="hljs-number">0</span>,a}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">e</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=D.createElement(<span class="hljs-string">"div"</span>);<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span>!!a(b)}<span class="hljs-keyword">catch</span>(c){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}<span class="hljs-keyword">finally</span>{b.parentNode&&b.parentNode.removeChild(b),b=<span class="hljs-literal">null</span>}}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">f</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> c=a.split(<span class="hljs-string">"|"</span>),d=a.length;d--;)w.attrHandle[c[d]]=b}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">g</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c=b&&a,d=c&&<span class="hljs-number">1</span>===a.nodeType&&<span class="hljs-number">1</span>===b.nodeType&&(~b.sourceIndex||V)-(~a.sourceIndex||V);<span class="hljs-keyword">if</span>(d)<span class="hljs-keyword">return</span> d;<span class="hljs-keyword">if</span>(c)<span class="hljs-keyword">for</span>(;c=c.nextSibling;)<span class="hljs-keyword">if</span>(c===b)<span class="hljs-keyword">return</span>-<span class="hljs-number">1</span>;<span class="hljs-keyword">return</span> a?<span class="hljs-number">1</span>:-<span class="hljs-number">1</span>}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">h</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{<span class="hljs-keyword">var</span> c=b.nodeName.toLowerCase();<span class="hljs-keyword">return</span><span class="hljs-string">"input"</span>===c&&b.type===a}}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">i</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{<span class="hljs-keyword">var</span> c=b.nodeName.toLowerCase();<span class="hljs-keyword">return</span>(<span class="hljs-string">"input"</span>===c||<span class="hljs-string">"button"</span>===c)&&b.type===a}}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">j</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> d(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{<span class="hljs-keyword">return</span> b=+b,d(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c,d)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">k</span><span class="hljs-params">()</span></span>{}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">l</span><span class="hljs-params">(a,c)</span></span>{<span class="hljs-keyword">var</span> d,e,f,g,h,i,j,k=L[a+<span class="hljs-string">" "</span>];<span class="hljs-keyword">if</span>(k)<span class="hljs-keyword">return</span> c?<span class="hljs-number">0</span>:k.slice(<span class="hljs-number">0</span>);<span class="hljs-keyword">for</span>(h=a,i=[],j=w.preFilter;h;){(!d||(e=ib.exec(h)))&&(e&&(h=h.slice(e[<span class="hljs-number">0</span>].length)||h),i.push(f=[])),d=!<span class="hljs-number">1</span>,(e=jb.exec(h))&&(d=e.shift(),f.push({value:d,type:e[<span class="hljs-number">0</span>].replace(hb,<span class="hljs-string">" "</span>)}),h=h.slice(d.length));<span class="hljs-keyword">for</span>(g <span class="hljs-keyword">in</span> w.filter)!(e=ob[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));<span class="hljs-keyword">if</span>(!d)<span class="hljs-keyword">break</span>}<span class="hljs-keyword">return</span> c?h.length:h?b.error(a):L(a,i).slice(<span class="hljs-number">0</span>)}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">m</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> b=<span class="hljs-number">0</span>,c=a.length,d=<span class="hljs-string">""</span>;c>b;b++)d+=a[b].value;<span class="hljs-keyword">return</span> d}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">n</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">var</span> d=b.dir,e=c&&<span class="hljs-string">"parentNode"</span>===d,f=R++;<span class="hljs-keyword">return</span> b.first?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b,c,f)</span></span>{<span class="hljs-keyword">for</span>(;b=b[d];)<span class="hljs-keyword">if</span>(<span class="hljs-number">1</span>===b.nodeType||e)<span class="hljs-keyword">return</span> a(b,c,f)}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b,c,g)</span></span>{<span class="hljs-keyword">var</span> h,i,j,k=Q+<span class="hljs-string">" "</span>+f;<span class="hljs-keyword">if</span>(g){<span class="hljs-keyword">for</span>(;b=b[d];)<span class="hljs-keyword">if</span>((<span class="hljs-number">1</span>===b.nodeType||e)&&a(b,c,g))<span class="hljs-keyword">return</span>!<span class="hljs-number">0</span>}<span class="hljs-keyword">else</span> <span class="hljs-keyword">for</span>(;b=b[d];)<span class="hljs-keyword">if</span>(<span class="hljs-number">1</span>===b.nodeType||e)<span class="hljs-keyword">if</span>(j=b[O]||(b[O]={}),(i=j[d])&&i[<span class="hljs-number">0</span>]===k){<span class="hljs-keyword">if</span>((h=i[<span class="hljs-number">1</span>])===!<span class="hljs-number">0</span>||h===N)<span class="hljs-keyword">return</span> h===!<span class="hljs-number">0</span>}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(i=j[d]=[k],i[<span class="hljs-number">1</span>]=a(b,c,g)||N,i[<span class="hljs-number">1</span>]===!<span class="hljs-number">0</span>)<span class="hljs-keyword">return</span>!<span class="hljs-number">0</span>}}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">o</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.length><span class="hljs-number">1</span>?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b,c,d)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> e=a.length;e--;)<span class="hljs-keyword">if</span>(!a[e](b,c,d))<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>;<span class="hljs-keyword">return</span>!<span class="hljs-number">0</span>}:a[<span class="hljs-number">0</span>]}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">p</span><span class="hljs-params">(a,b,c,d,e)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> f,g=[],h=<span class="hljs-number">0</span>,i=a.length,j=<span class="hljs-literal">null</span>!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));<span class="hljs-keyword">return</span> g}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">q</span><span class="hljs-params">(a,b,c,e,f,g)</span></span>{<span class="hljs-keyword">return</span> e&&!e[O]&&(e=q(e)),f&&!f[O]&&(f=q(f,g)),d(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(d,g,h,i)</span></span>{<span class="hljs-keyword">var</span> j,k,l,m=[],n=[],o=g.length,q=d||t(b||<span class="hljs-string">"*"</span>,h.nodeType?[h]:h,[]),r=!a||!d&&b?q:p(q,m,a,h,i),s=c?f||(d?a:o||e)?[]:g:r;<span class="hljs-keyword">if</span>(c&&c(r,s,h,i),e)<span class="hljs-keyword">for</span>(j=p(s,n),e(j,[],h,i),k=j.length;k--;)(l=j[k])&&(s[n[k]]=!(r[n[k]]=l));<span class="hljs-keyword">if</span>(d){<span class="hljs-keyword">if</span>(f||a){<span class="hljs-keyword">if</span>(f){<span class="hljs-keyword">for</span>(j=[],k=s.length;k--;)(l=s[k])&&j.push(r[k]=l);f(<span class="hljs-literal">null</span>,s=[],j,i)}<span class="hljs-keyword">for</span>(k=s.length;k--;)(l=s[k])&&(j=f?ab.call(d,l):m[k])>-<span class="hljs-number">1</span>&&(d[j]=!(g[j]=l))}}<span class="hljs-keyword">else</span> s=p(s===g?s.splice(o,s.length):s),f?f(<span class="hljs-literal">null</span>,g,s,i):$.apply(g,s)})}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">r</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> b,c,d,e=a.length,f=w.relative[a[<span class="hljs-number">0</span>].type],g=f||w.relative[<span class="hljs-string">" "</span>],h=f?<span class="hljs-number">1</span>:<span class="hljs-number">0</span>,i=n(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a===b},g,!<span class="hljs-number">0</span>),j=n(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> ab.call(b,a)>-<span class="hljs-number">1</span>},g,!<span class="hljs-number">0</span>),k=[<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,c,d)</span></span>{<span class="hljs-keyword">return</span>!f&&(d||c!==A)||((b=c).nodeType?i(a,c,d):j(a,c,d))}];e>h;h++)<span class="hljs-keyword">if</span>(c=w.relative[a[h].type])k=[n(o(k),c)];<span class="hljs-keyword">else</span>{<span class="hljs-keyword">if</span>(c=w.filter[a[h].type].apply(<span class="hljs-literal">null</span>,a[h].matches),c[O]){<span class="hljs-keyword">for</span>(d=++h;e>d&&!w.relative[a[d].type];d++);<span class="hljs-keyword">return</span> q(h><span class="hljs-number">1</span>&&o(k),h><span class="hljs-number">1</span>&&m(a.slice(<span class="hljs-number">0</span>,h-<span class="hljs-number">1</span>).concat({value:<span class="hljs-string">" "</span>===a[h-<span class="hljs-number">2</span>].type?<span class="hljs-string">"*"</span>:<span class="hljs-string">""</span>})).replace(hb,<span class="hljs-string">"$1"</span>),c,d>h&&r(a.slice(h,d)),e>d&&r(a=a.slice(d)),e>d&&m(a))}k.push(c)}<span class="hljs-keyword">return</span> o(k)}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">s</span><span class="hljs-params">(a,c)</span></span>{<span class="hljs-keyword">var</span> e=<span class="hljs-number">0</span>,f=c.length><span class="hljs-number">0</span>,g=a.length><span class="hljs-number">0</span>,h=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(d,h,i,j,k)</span></span>{<span class="hljs-keyword">var</span> l,m,n,o=[],q=<span class="hljs-number">0</span>,r=<span class="hljs-string">"0"</span>,s=d&&[],t=<span class="hljs-literal">null</span>!=k,u=A,v=d||g&&w.find.TAG(<span class="hljs-string">"*"</span>,k&&h.parentNode||h),x=Q+=<span class="hljs-literal">null</span>==u?<span class="hljs-number">1</span>:<span class="hljs-built_in">Math</span>.random()||<span class="hljs-number">.1</span>,y=v.length;<span class="hljs-keyword">for</span>(t&&(A=h!==D&&h,N=e);r!==y&&<span class="hljs-literal">null</span>!=(l=v[r]);r++){<span class="hljs-keyword">if</span>(g&&l){<span class="hljs-keyword">for</span>(m=<span class="hljs-number">0</span>;n=a[m++];)<span class="hljs-keyword">if</span>(n(l,h,i)){j.push(l);<span class="hljs-keyword">break</span>}t&&(Q=x,N=++e)}f&&((l=!n&&l)&&q--,d&&s.push(l))}<span class="hljs-keyword">if</span>(q+=r,f&&r!==q){<span class="hljs-keyword">for</span>(m=<span class="hljs-number">0</span>;n=c[m++];)n(s,o,h,i);<span class="hljs-keyword">if</span>(d){<span class="hljs-keyword">if</span>(q><span class="hljs-number">0</span>)<span class="hljs-keyword">for</span>(;r--;)s[r]||o[r]||(o[r]=Y.call(j));o=p(o)}$.apply(j,o),t&&!d&&o.length><span class="hljs-number">0</span>&&q+c.length><span class="hljs-number">1</span>&&b.uniqueSort(j)}<span class="hljs-keyword">return</span> t&&(Q=x,A=u),s};<span class="hljs-keyword">return</span> f?d(h):h}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">t</span><span class="hljs-params">(a,c,d)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> e=<span class="hljs-number">0</span>,f=c.length;f>e;e++)b(a,c[e],d);<span class="hljs-keyword">return</span> d}<span class="hljs-keyword">if</span>(feature.qsa3!==!<span class="hljs-number">0</span>){<span class="hljs-keyword">var</span> u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">a</span><span class="hljs-params">(c,d)</span></span>{<span class="hljs-keyword">return</span> b.push(c+=<span class="hljs-string">" "</span>)>w.cacheLength&&<span class="hljs-keyword">delete</span> a[b.shift()],a[c]=d}<span class="hljs-keyword">var</span> b=[];<span class="hljs-keyword">return</span> a},O=<span class="hljs-string">"sizzle"</span>+-<span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>,P=win.document,Q=<span class="hljs-number">0</span>,R=<span class="hljs-number">0</span>,S=!<span class="hljs-number">1</span>,T=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> a===b?(S=!<span class="hljs-number">0</span>,<span class="hljs-number">0</span>):<span class="hljs-number">0</span>},U=<span class="hljs-string">"undefined"</span>,V=<span class="hljs-number">1</span><<<span class="hljs-number">31</span>,W={}.hasOwnProperty,X=[],Y=X.pop,Z=X.push,$=X.push,_=X.slice,ab=X.indexOf||<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> b=<span class="hljs-number">0</span>,c=<span class="hljs-keyword">this</span>.length;c>b;b++)<span class="hljs-keyword">if</span>(<span class="hljs-keyword">this</span>[b]===a)<span class="hljs-keyword">return</span> b;<span class="hljs-keyword">return</span>-<span class="hljs-number">1</span>},bb=<span class="hljs-string">"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped"</span>,cb=<span class="hljs-string">"[\\x20\\t\\r\\n\\f]"</span>,db=<span class="hljs-string">"(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+"</span>,eb=db.replace(<span class="hljs-string">"w"</span>,<span class="hljs-string">"w#"</span>),fb=<span class="hljs-string">"\\["</span>+cb+<span class="hljs-string">"*("</span>+db+<span class="hljs-string">")"</span>+cb+<span class="hljs-string">"*(?:([*^$|!~]?=)"</span>+cb+<span class="hljs-string">"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("</span>+eb+<span class="hljs-string">")|)|)"</span>+cb+<span class="hljs-string">"*\\]"</span>,gb=<span class="hljs-string">":("</span>+db+<span class="hljs-string">")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"</span>+fb.replace(<span class="hljs-number">3</span>,<span class="hljs-number">8</span>)+<span class="hljs-string">")*)|.*)\\)|)"</span>,hb=<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^"</span>+cb+<span class="hljs-string">"+|((?:^|[^\\\\])(?:\\\\.)*)"</span>+cb+<span class="hljs-string">"+$"</span>,<span class="hljs-string">"g"</span>),ib=<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^"</span>+cb+<span class="hljs-string">"*,"</span>+cb+<span class="hljs-string">"*"</span>),jb=<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^"</span>+cb+<span class="hljs-string">"*([>+~]|"</span>+cb+<span class="hljs-string">")"</span>+cb+<span class="hljs-string">"*"</span>),kb=<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(cb+<span class="hljs-string">"*[+~]"</span>),lb=<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"="</span>+cb+<span class="hljs-string">"*([^\\]'\"]*)"</span>+cb+<span class="hljs-string">"*\\]"</span>,<span class="hljs-string">"g"</span>),mb=<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(gb),nb=<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^"</span>+eb+<span class="hljs-string">"$"</span>),ob={ID:<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^#("</span>+db+<span class="hljs-string">")"</span>),CLASS:<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^\\.("</span>+db+<span class="hljs-string">")"</span>),TAG:<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^("</span>+db.replace(<span class="hljs-string">"w"</span>,<span class="hljs-string">"w*"</span>)+<span class="hljs-string">")"</span>),ATTR:<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^"</span>+fb),PSEUDO:<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^"</span>+gb),CHILD:<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("</span>+cb+<span class="hljs-string">"*(even|odd|(([+-]|)(\\d*)n|)"</span>+cb+<span class="hljs-string">"*(?:([+-]|)"</span>+cb+<span class="hljs-string">"*(\\d+)|))"</span>+cb+<span class="hljs-string">"*\\)|)"</span>,<span class="hljs-string">"i"</span>),bool:<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^(?:"</span>+bb+<span class="hljs-string">")$"</span>,<span class="hljs-string">"i"</span>),needsContext:<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^"</span>+cb+<span class="hljs-string">"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("</span>+cb+<span class="hljs-string">"*((?:-\\d)?\\d*)"</span>+cb+<span class="hljs-string">"*\\)|)(?=[^-]|$)"</span>,<span class="hljs-string">"i"</span>)},pb=<span class="hljs-regexp">/^[^{]+\{\s*\[native \w/</span>,qb=<span class="hljs-regexp">/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/</span>,rb=<span class="hljs-regexp">/^(?:input|select|textarea|button)$/i</span>,sb=<span class="hljs-regexp">/^h\d$/i</span>,tb=<span class="hljs-regexp">/'|\\/g</span>,ub=<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"\\\\([\\da-f]{1,6}"</span>+cb+<span class="hljs-string">"?|("</span>+cb+<span class="hljs-string">")|.)"</span>,<span class="hljs-string">"ig"</span>),vb=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">var</span> d=<span class="hljs-string">"0x"</span>+b-<span class="hljs-number">65536</span>;<span class="hljs-keyword">return</span> d!==d||c?b:<span class="hljs-number">0</span>>d?<span class="hljs-built_in">String</span>.fromCharCode(d+<span class="hljs-number">65536</span>):<span class="hljs-built_in">String</span>.fromCharCode(d>><span class="hljs-number">10</span>|<span class="hljs-number">55296</span>,<span class="hljs-number">1023</span>&d|<span class="hljs-number">56320</span>)};<span class="hljs-keyword">try</span>{$.apply(X=_.call(P.childNodes),P.childNodes),X[P.childNodes.length].nodeType}<span class="hljs-keyword">catch</span>(wb){$={apply:X.length?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{Z.apply(a,_.call(b))}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> c=a.length,d=<span class="hljs-number">0</span>;a[c++]=b[d++];);a.length=c-<span class="hljs-number">1</span>}}}K=c(),L=c(),M=c(),y=b.isXML=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=a&&(a.ownerDocument||a).documentElement;<span class="hljs-keyword">return</span> b?<span class="hljs-string">"HTML"</span>!==b.nodeName:!<span class="hljs-number">1</span>},v=b.support={},C=b.setDocument=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=a?a.ownerDocument||a:P,c=b.defaultView;<span class="hljs-keyword">return</span> b!==D&&<span class="hljs-number">9</span>===b.nodeType&&b.documentElement?(D=b,E=b.documentElement,F=!y(b),c&&c.attachEvent&&c!==c.top&&c.attachEvent(<span class="hljs-string">"onbeforeunload"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{C()}),v.attributes=e(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.className=<span class="hljs-string">"i"</span>,!a.getAttribute(<span class="hljs-string">"className"</span>)}),v.getElementsByTagName=e(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.appendChild(b.createComment(<span class="hljs-string">""</span>)),!a.getElementsByTagName(<span class="hljs-string">"*"</span>).length}),v.getElementsByClassName=e(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.innerHTML=<span class="hljs-string">"<div class='a'></div><div class='a i'></div>"</span>,a.firstChild.className=<span class="hljs-string">"i"</span>,<span class="hljs-number">2</span>===a.getElementsByClassName(<span class="hljs-string">"i"</span>).length}),v.getById=e(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> E.appendChild(a).id=O,!b.getElementsByName||!b.getElementsByName(O).length}),v.getById?(w.find.ID=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">if</span>(<span class="hljs-keyword">typeof</span> b.getElementById!==U&&F){<span class="hljs-keyword">var</span> c=b.getElementById(a);<span class="hljs-keyword">return</span> c&&c.parentNode?[c]:[]}},w.filter.ID=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=a.replace(ub,vb);<span class="hljs-keyword">return</span> <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.getAttribute(<span class="hljs-string">"id"</span>)===b}}):(<span class="hljs-keyword">delete</span> w.find.ID,w.filter.ID=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=a.replace(ub,vb);<span class="hljs-keyword">return</span> <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> c=<span class="hljs-keyword">typeof</span> a.getAttributeNode!==U&&a.getAttributeNode(<span class="hljs-string">"id"</span>);<span class="hljs-keyword">return</span> c&&c.value===b}}),w.find.TAG=v.getElementsByTagName?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">typeof</span> b.getElementsByTagName!==U?b.getElementsByTagName(a):<span class="hljs-keyword">void</span> <span class="hljs-number">0</span>}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c,d=[],e=<span class="hljs-number">0</span>,f=b.getElementsByTagName(a);<span class="hljs-keyword">if</span>(<span class="hljs-string">"*"</span>===a){<span class="hljs-keyword">for</span>(;c=f[e++];)<span class="hljs-number">1</span>===c.nodeType&&d.push(c);<span class="hljs-keyword">return</span> d}<span class="hljs-keyword">return</span> f},w.find.CLASS=v.getElementsByClassName&&<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">typeof</span> b.getElementsByClassName!==U&&F?b.getElementsByClassName(a):<span class="hljs-keyword">void</span> <span class="hljs-number">0</span>},H=[],G=[],(v.qsa=pb.test(b.querySelectorAll))&&(e(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{a.innerHTML=<span class="hljs-string">"<select><option selected=''></option></select>"</span>,a.querySelectorAll(<span class="hljs-string">"[selected]"</span>).length||G.push(<span class="hljs-string">"\\["</span>+cb+<span class="hljs-string">"*(?:value|"</span>+bb+<span class="hljs-string">")"</span>),a.querySelectorAll(<span class="hljs-string">":checked"</span>).length||G.push(<span class="hljs-string">":checked"</span>)}),e(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> c=b.createElement(<span class="hljs-string">"input"</span>);c.setAttribute(<span class="hljs-string">"type"</span>,<span class="hljs-string">"hidden"</span>),a.appendChild(c).setAttribute(<span class="hljs-string">"t"</span>,<span class="hljs-string">""</span>),a.querySelectorAll(<span class="hljs-string">"[t^='']"</span>).length&&G.push(<span class="hljs-string">"[*^$]="</span>+cb+<span class="hljs-string">"*(?:''|\"\")"</span>),a.querySelectorAll(<span class="hljs-string">":enabled"</span>).length||G.push(<span class="hljs-string">":enabled"</span>,<span class="hljs-string">":disabled"</span>),a.querySelectorAll(<span class="hljs-string">"*,:x"</span>),G.push(<span class="hljs-string">",.*:"</span>)})),(v.matchesSelector=pb.test(I=E.webkitMatchesSelector||E.mozMatchesSelector||E.oMatchesSelector||E.msMatchesSelector))&&e(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{v.disconnectedMatch=I.call(a,<span class="hljs-string">"div"</span>),I.call(a,<span class="hljs-string">"[s!='']:x"</span>),H.push(<span class="hljs-string">"!="</span>,gb)}),G=G.length&&<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(G.join(<span class="hljs-string">"|"</span>)),H=H.length&&<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(H.join(<span class="hljs-string">"|"</span>)),J=pb.test(E.contains)||E.compareDocumentPosition?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c=<span class="hljs-number">9</span>===a.nodeType?a.documentElement:a,d=b&&b.parentNode;<span class="hljs-keyword">return</span> a===d||!(!d||<span class="hljs-number">1</span>!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&<span class="hljs-number">16</span>&a.compareDocumentPosition(d)))}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">if</span>(b)<span class="hljs-keyword">for</span>(;b=b.parentNode;)<span class="hljs-keyword">if</span>(b===a)<span class="hljs-keyword">return</span>!<span class="hljs-number">0</span>;<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>},T=E.compareDocumentPosition?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,c)</span></span>{<span class="hljs-keyword">if</span>(a===c)<span class="hljs-keyword">return</span> S=!<span class="hljs-number">0</span>,<span class="hljs-number">0</span>;<span class="hljs-keyword">var</span> d=c.compareDocumentPosition&&a.compareDocumentPosition&&a.compareDocumentPosition(c);<span class="hljs-keyword">return</span> d?<span class="hljs-number">1</span>&d||!v.sortDetached&&c.compareDocumentPosition(a)===d?a===b||J(P,a)?-<span class="hljs-number">1</span>:c===b||J(P,c)?<span class="hljs-number">1</span>:B?ab.call(B,a)-ab.call(B,c):<span class="hljs-number">0</span>:<span class="hljs-number">4</span>&d?-<span class="hljs-number">1</span>:<span class="hljs-number">1</span>:a.compareDocumentPosition?-<span class="hljs-number">1</span>:<span class="hljs-number">1</span>}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,c)</span></span>{<span class="hljs-keyword">var</span> d,e=<span class="hljs-number">0</span>,f=a.parentNode,h=c.parentNode,i=[a],j=[c];<span class="hljs-keyword">if</span>(a===c)<span class="hljs-keyword">return</span> S=!<span class="hljs-number">0</span>,<span class="hljs-number">0</span>;<span class="hljs-keyword">if</span>(!f||!h)<span class="hljs-keyword">return</span> a===b?-<span class="hljs-number">1</span>:c===b?<span class="hljs-number">1</span>:f?-<span class="hljs-number">1</span>:h?<span class="hljs-number">1</span>:B?ab.call(B,a)-ab.call(B,c):<span class="hljs-number">0</span>;<span class="hljs-keyword">if</span>(f===h)<span class="hljs-keyword">return</span> g(a,c);<span class="hljs-keyword">for</span>(d=a;d=d.parentNode;)i.unshift(d);<span class="hljs-keyword">for</span>(d=c;d=d.parentNode;)j.unshift(d);<span class="hljs-keyword">for</span>(;i[e]===j[e];)e++;<span class="hljs-keyword">return</span> e?g(i[e],j[e]):i[e]===P?-<span class="hljs-number">1</span>:j[e]===P?<span class="hljs-number">1</span>:<span class="hljs-number">0</span>},b):D},b.matchesSelector=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,c)</span></span>{<span class="hljs-keyword">if</span>((a.ownerDocument||a)!==D&&C(a),c=c.replace(lb,<span class="hljs-string">"='$1']"</span>),!(!v.matchesSelector||!F||H&&H.test(c)||G&&G.test(c)))<span class="hljs-keyword">try</span>{<span class="hljs-keyword">var</span> d=I.call(a,c);<span class="hljs-keyword">if</span>(d||v.disconnectedMatch||a.document&&<span class="hljs-number">11</span>!==a.document.nodeType)<span class="hljs-keyword">return</span> d}<span class="hljs-keyword">catch</span>(e){}<span class="hljs-keyword">return</span> b(c,D,<span class="hljs-literal">null</span>,[a]).length><span class="hljs-number">0</span>},b.contains=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span>(a.ownerDocument||a)!==D&&C(a),J(a,b)},b.attr=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{(a.ownerDocument||a)!==D&&C(a);<span class="hljs-keyword">var</span> c=w.attrHandle[b.toLowerCase()],d=c&&W.call(w.attrHandle,b.toLowerCase())?c(a,b,!F):<span class="hljs-keyword">void</span> <span class="hljs-number">0</span>;<span class="hljs-keyword">return</span> <span class="hljs-keyword">void</span> <span class="hljs-number">0</span>===d?v.attributes||!F?a.getAttribute(b):(d=a.getAttributeNode(b))&&d.specified?d.value:<span class="hljs-literal">null</span>:d},b.error=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">"Syntax error, unrecognized expression: "</span>+a)},b.uniqueSort=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b,c=[],d=<span class="hljs-number">0</span>,e=<span class="hljs-number">0</span>;<span class="hljs-keyword">if</span>(S=!v.detectDuplicates,B=!v.sortStable&&a.slice(<span class="hljs-number">0</span>),a.sort(T),S){<span class="hljs-keyword">for</span>(;b=a[e++];)b===a[e]&&(d=c.push(e));<span class="hljs-keyword">for</span>(;d--;)a.splice(c[d],<span class="hljs-number">1</span>)}<span class="hljs-keyword">return</span> a},x=b.getText=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b,c=<span class="hljs-string">""</span>,d=<span class="hljs-number">0</span>,e=a.nodeType;<span class="hljs-keyword">if</span>(e){<span class="hljs-keyword">if</span>(<span class="hljs-number">1</span>===e||<span class="hljs-number">9</span>===e||<span class="hljs-number">11</span>===e){<span class="hljs-keyword">if</span>(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a.textContent)<span class="hljs-keyword">return</span> a.textContent;<span class="hljs-keyword">for</span>(a=a.firstChild;a;a=a.nextSibling)c+=x(a)}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(<span class="hljs-number">3</span>===e||<span class="hljs-number">4</span>===e)<span class="hljs-keyword">return</span> a.nodeValue}<span class="hljs-keyword">else</span> <span class="hljs-keyword">for</span>(;b=a[d];d++)c+=x(b);<span class="hljs-keyword">return</span> c},w=b.selectors={cacheLength:<span class="hljs-number">50</span>,createPseudo:d,match:ob,attrHandle:{},find:{},relative:{<span class="hljs-string">">"</span>:{dir:<span class="hljs-string">"parentNode"</span>,first:!<span class="hljs-number">0</span>},<span class="hljs-string">" "</span>:{dir:<span class="hljs-string">"parentNode"</span>},<span class="hljs-string">"+"</span>:{dir:<span class="hljs-string">"previousSibling"</span>,first:!<span class="hljs-number">0</span>},<span class="hljs-string">"~"</span>:{dir:<span class="hljs-string">"previousSibling"</span>}},preFilter:{ATTR:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a[<span class="hljs-number">1</span>]=a[<span class="hljs-number">1</span>].replace(ub,vb),a[<span class="hljs-number">3</span>]=(a[<span class="hljs-number">4</span>]||a[<span class="hljs-number">5</span>]||<span class="hljs-string">""</span>).replace(ub,vb),<span class="hljs-string">"~="</span>===a[<span class="hljs-number">2</span>]&&(a[<span class="hljs-number">3</span>]=<span class="hljs-string">" "</span>+a[<span class="hljs-number">3</span>]+<span class="hljs-string">" "</span>),a.slice(<span class="hljs-number">0</span>,<span class="hljs-number">4</span>)},CHILD:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a[<span class="hljs-number">1</span>]=a[<span class="hljs-number">1</span>].toLowerCase(),<span class="hljs-string">"nth"</span>===a[<span class="hljs-number">1</span>].slice(<span class="hljs-number">0</span>,<span class="hljs-number">3</span>)?(a[<span class="hljs-number">3</span>]||b.error(a[<span class="hljs-number">0</span>]),a[<span class="hljs-number">4</span>]=+(a[<span class="hljs-number">4</span>]?a[<span class="hljs-number">5</span>]+(a[<span class="hljs-number">6</span>]||<span class="hljs-number">1</span>):<span class="hljs-number">2</span>*(<span class="hljs-string">"even"</span>===a[<span class="hljs-number">3</span>]||<span class="hljs-string">"odd"</span>===a[<span class="hljs-number">3</span>])),a[<span class="hljs-number">5</span>]=+(a[<span class="hljs-number">7</span>]+a[<span class="hljs-number">8</span>]||<span class="hljs-string">"odd"</span>===a[<span class="hljs-number">3</span>])):a[<span class="hljs-number">3</span>]&&b.error(a[<span class="hljs-number">0</span>]),a},PSEUDO:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b,c=!a[<span class="hljs-number">5</span>]&&a[<span class="hljs-number">2</span>];<span class="hljs-keyword">return</span> ob.CHILD.test(a[<span class="hljs-number">0</span>])?<span class="hljs-literal">null</span>:(a[<span class="hljs-number">3</span>]&&<span class="hljs-keyword">void</span> <span class="hljs-number">0</span>!==a[<span class="hljs-number">4</span>]?a[<span class="hljs-number">2</span>]=a[<span class="hljs-number">4</span>]:c&&mb.test(c)&&(b=l(c,!<span class="hljs-number">0</span>))&&(b=c.indexOf(<span class="hljs-string">")"</span>,c.length-b)-c.length)&&(a[<span class="hljs-number">0</span>]=a[<span class="hljs-number">0</span>].slice(<span class="hljs-number">0</span>,b),a[<span class="hljs-number">2</span>]=c.slice(<span class="hljs-number">0</span>,b)),a.slice(<span class="hljs-number">0</span>,<span class="hljs-number">3</span>))}},filter:{TAG:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=a.replace(ub,vb).toLowerCase();<span class="hljs-keyword">return</span><span class="hljs-string">"*"</span>===a?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!<span class="hljs-number">0</span>}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=K[a+<span class="hljs-string">" "</span>];<span class="hljs-keyword">return</span> b||(b=<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"(^|"</span>+cb+<span class="hljs-string">")"</span>+a+<span class="hljs-string">"("</span>+cb+<span class="hljs-string">"|$)"</span>))&&K(a,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> b.test(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a.className&&a.className||<span class="hljs-keyword">typeof</span> a.getAttribute!==U&&a.getAttribute(<span class="hljs-string">"class"</span>)||<span class="hljs-string">""</span>)})},ATTR:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,c,d)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(e)</span></span>{<span class="hljs-keyword">var</span> f=b.attr(e,a);<span class="hljs-keyword">return</span> <span class="hljs-literal">null</span>==f?<span class="hljs-string">"!="</span>===c:c?(f+=<span class="hljs-string">""</span>,<span class="hljs-string">"="</span>===c?f===d:<span class="hljs-string">"!="</span>===c?f!==d:<span class="hljs-string">"^="</span>===c?d&&<span class="hljs-number">0</span>===f.indexOf(d):<span class="hljs-string">"*="</span>===c?d&&f.indexOf(d)>-<span class="hljs-number">1</span>:<span class="hljs-string">"$="</span>===c?d&&f.slice(-d.length)===d:<span class="hljs-string">"~="</span>===c?(<span class="hljs-string">" "</span>+f+<span class="hljs-string">" "</span>).indexOf(d)>-<span class="hljs-number">1</span>:<span class="hljs-string">"|="</span>===c?f===d||f.slice(<span class="hljs-number">0</span>,d.length+<span class="hljs-number">1</span>)===d+<span class="hljs-string">"-"</span>:!<span class="hljs-number">1</span>):!<span class="hljs-number">0</span>}},CHILD:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c,d,e)</span></span>{<span class="hljs-keyword">var</span> f=<span class="hljs-string">"nth"</span>!==a.slice(<span class="hljs-number">0</span>,<span class="hljs-number">3</span>),g=<span class="hljs-string">"last"</span>!==a.slice(-<span class="hljs-number">4</span>),h=<span class="hljs-string">"of-type"</span>===b;<span class="hljs-keyword">return</span> <span class="hljs-number">1</span>===d&&<span class="hljs-number">0</span>===e?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span>!!a.parentNode}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b,c,i)</span></span>{<span class="hljs-keyword">var</span> j,k,l,m,n,o,p=f!==g?<span class="hljs-string">"nextSibling"</span>:<span class="hljs-string">"previousSibling"</span>,q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;<span class="hljs-keyword">if</span>(q){<span class="hljs-keyword">if</span>(f){<span class="hljs-keyword">for</span>(;p;){<span class="hljs-keyword">for</span>(l=b;l=l[p];)<span class="hljs-keyword">if</span>(h?l.nodeName.toLowerCase()===r:<span class="hljs-number">1</span>===l.nodeType)<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>;o=p=<span class="hljs-string">"only"</span>===a&&!o&&<span class="hljs-string">"nextSibling"</span>}<span class="hljs-keyword">return</span>!<span class="hljs-number">0</span>}<span class="hljs-keyword">if</span>(o=[g?q.firstChild:q.lastChild],g&&s){<span class="hljs-keyword">for</span>(k=q[O]||(q[O]={}),j=k[a]||[],n=j[<span class="hljs-number">0</span>]===Q&&j[<span class="hljs-number">1</span>],m=j[<span class="hljs-number">0</span>]===Q&&j[<span class="hljs-number">2</span>],l=n&&q.childNodes[n];l=++n&&l&&l[p]||(m=n=<span class="hljs-number">0</span>)||o.pop();)<span class="hljs-keyword">if</span>(<span class="hljs-number">1</span>===l.nodeType&&++m&&l===b){k[a]=[Q,n,m];<span class="hljs-keyword">break</span>}}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(s&&(j=(b[O]||(b[O]={}))[a])&&j[<span class="hljs-number">0</span>]===Q)m=j[<span class="hljs-number">1</span>];<span class="hljs-keyword">else</span> <span class="hljs-keyword">for</span>(;(l=++n&&l&&l[p]||(m=n=<span class="hljs-number">0</span>)||o.pop())&&((h?l.nodeName.toLowerCase()!==r:<span class="hljs-number">1</span>!==l.nodeType)||!++m||(s&&((l[O]||(l[O]={}))[a]=[Q,m]),l!==b)););<span class="hljs-keyword">return</span> m-=e,m===d||m%d===<span class="hljs-number">0</span>&&m/d>=<span class="hljs-number">0</span>}}},PSEUDO:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,c)</span></span>{<span class="hljs-keyword">var</span> e,f=w.pseudos[a]||w.SetFilters[a.toLowerCase()]||b.error(<span class="hljs-string">"unsupported pseudo: "</span>+a);<span class="hljs-keyword">return</span> f[O]?f(c):f.length><span class="hljs-number">1</span>?(e=[a,a,<span class="hljs-string">""</span>,c],w.SetFilters.hasOwnProperty(a.toLowerCase())?d(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> d,e=f(a,c),g=e.length;g--;)d=ab.call(a,e[g]),a[d]=!(b[d]=e[g])}):<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> f(a,<span class="hljs-number">0</span>,e)}):f}},pseudos:{not:d(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=[],c=[],e=z(a.replace(hb,<span class="hljs-string">"$1"</span>));<span class="hljs-keyword">return</span> e[O]?d(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c,d)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> f,g=e(a,<span class="hljs-literal">null</span>,d,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,d,f)</span></span>{<span class="hljs-keyword">return</span> b[<span class="hljs-number">0</span>]=a,e(b,<span class="hljs-literal">null</span>,f,c),!c.pop()}}),has:d(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{<span class="hljs-keyword">return</span> b(a,c).length><span class="hljs-number">0</span>}}),contains:d(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{<span class="hljs-keyword">return</span>(b.textContent||b.innerText||x(b)).indexOf(a)>-<span class="hljs-number">1</span>}}),lang:d(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> nb.test(a||<span class="hljs-string">""</span>)||b.error(<span class="hljs-string">"unsupported lang: "</span>+a),a=a.replace(ub,vb).toLowerCase(),<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{<span class="hljs-keyword">var</span> c;<span class="hljs-keyword">do</span> <span class="hljs-keyword">if</span>(c=F?b.lang:b.getAttribute(<span class="hljs-string">"xml:lang"</span>)||b.getAttribute(<span class="hljs-string">"lang"</span>))<span class="hljs-keyword">return</span> c=c.toLowerCase(),c===a||<span class="hljs-number">0</span>===c.indexOf(a+<span class="hljs-string">"-"</span>);<span class="hljs-keyword">while</span>((b=b.parentNode)&&<span class="hljs-number">1</span>===b.nodeType);<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}),target:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=win.location&&win.location.hash;<span class="hljs-keyword">return</span> b&&b.slice(<span class="hljs-number">1</span>)===a.id},root:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a===E},focus:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.disabled===!<span class="hljs-number">1</span>},disabled:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.disabled===!<span class="hljs-number">0</span>},checked:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=a.nodeName.toLowerCase();<span class="hljs-keyword">return</span><span class="hljs-string">"input"</span>===b&&!!a.checked||<span class="hljs-string">"option"</span>===b&&!!a.selected},selected:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.parentNode&&a.parentNode.selectedIndex,a.selected===!<span class="hljs-number">0</span>},empty:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">for</span>(a=a.firstChild;a;a=a.nextSibling)<span class="hljs-keyword">if</span>(a.nodeName><span class="hljs-string">"@"</span>||<span class="hljs-number">3</span>===a.nodeType||<span class="hljs-number">4</span>===a.nodeType)<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>;<span class="hljs-keyword">return</span>!<span class="hljs-number">0</span>},parent:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span>!w.pseudos.empty(a)},header:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> sb.test(a.nodeName)},input:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> rb.test(a.nodeName)},button:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=a.nodeName.toLowerCase();<span class="hljs-keyword">return</span><span class="hljs-string">"input"</span>===b&&<span class="hljs-string">"button"</span>===a.type||<span class="hljs-string">"button"</span>===b},text:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b;<span class="hljs-keyword">return</span><span class="hljs-string">"input"</span>===a.nodeName.toLowerCase()&&<span class="hljs-string">"text"</span>===a.type&&(<span class="hljs-literal">null</span>==(b=a.getAttribute(<span class="hljs-string">"type"</span>))||b.toLowerCase()===a.type)},first:j(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>[<span class="hljs-number">0</span>]}),last:j(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span>[b-<span class="hljs-number">1</span>]}),eq:j(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">return</span>[<span class="hljs-number">0</span>>c?c+b:c]}),even:j(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> c=<span class="hljs-number">0</span>;b>c;c+=<span class="hljs-number">2</span>)a.push(c);<span class="hljs-keyword">return</span> a}),odd:j(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> c=<span class="hljs-number">1</span>;b>c;c+=<span class="hljs-number">2</span>)a.push(c);<span class="hljs-keyword">return</span> a}),lt:j(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> d=<span class="hljs-number">0</span>>c?c+b:c;--d>=<span class="hljs-number">0</span>;)a.push(d);<span class="hljs-keyword">return</span> a}),gt:j(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> d=<span class="hljs-number">0</span>>c?c+b:c;++d<b;)a.push(d);<span class="hljs-keyword">return</span> a})}},w.pseudos.nth=w.pseudos.eq;<span class="hljs-keyword">for</span>(u <span class="hljs-keyword">in</span>{radio:!<span class="hljs-number">0</span>,checkbox:!<span class="hljs-number">0</span>,file:!<span class="hljs-number">0</span>,password:!<span class="hljs-number">0</span>,image:!<span class="hljs-number">0</span>})w.pseudos[u]=h(u);<span class="hljs-keyword">for</span>(u <span class="hljs-keyword">in</span>{submit:!<span class="hljs-number">0</span>,reset:!<span class="hljs-number">0</span>})w.pseudos[u]=i(u);<span class="hljs-keyword">return</span> k.prototype=w.filters=w.pseudos,w.SetFilters=<span class="hljs-keyword">new</span> k,z=b.compile=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c,d=[],e=[],f=M[a+<span class="hljs-string">" "</span>];<span class="hljs-keyword">if</span>(!f){<span class="hljs-keyword">for</span>(b||(b=l(a)),c=b.length;c--;)f=r(b[c]),f[O]?d.push(f):e.push(f);f=M(a,s(e,d))}<span class="hljs-keyword">return</span> f},v.sortStable=O.split(<span class="hljs-string">""</span>).sort(T).join(<span class="hljs-string">""</span>)===O,v.detectDuplicates=S,C(),v.sortDetached=e(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-number">1</span>&a.compareDocumentPosition(D.createElement(<span class="hljs-string">"div"</span>))}),e(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.innerHTML=<span class="hljs-string">"<a href='#'></a>"</span>,<span class="hljs-string">"#"</span>===a.firstChild.getAttribute(<span class="hljs-string">"href"</span>)})||f(<span class="hljs-string">"type|href|height|width"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">return</span> c?<span class="hljs-keyword">void</span> <span class="hljs-number">0</span>:a.getAttribute(b,<span class="hljs-string">"type"</span>===b.toLowerCase()?<span class="hljs-number">1</span>:<span class="hljs-number">2</span>)}),v.attributes&&e(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.innerHTML=<span class="hljs-string">"<input/>"</span>,a.firstChild.setAttribute(<span class="hljs-string">"value"</span>,<span class="hljs-string">""</span>),<span class="hljs-string">""</span>===a.firstChild.getAttribute(<span class="hljs-string">"value"</span>)})||f(<span class="hljs-string">"value"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">return</span> c||<span class="hljs-string">"input"</span>!==a.nodeName.toLowerCase()?<span class="hljs-keyword">void</span> <span class="hljs-number">0</span>:a.defaultValue}),e(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-literal">null</span>==a.getAttribute(<span class="hljs-string">"disabled"</span>)})||f(bb,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">var</span> d;<span class="hljs-keyword">return</span> c?<span class="hljs-keyword">void</span> <span class="hljs-number">0</span>:(d=a.getAttributeNode(b))&&d.specified?d.value:a[b]===!<span class="hljs-number">0</span>?b.toLowerCase():<span class="hljs-literal">null</span>}),b}}(),boxedString=<span class="hljs-built_in">Object</span>(<span class="hljs-string">"a"</span>),splitString=<span class="hljs-string">"a"</span>!==boxedString[<span class="hljs-number">0</span>]||!(<span class="hljs-number">0</span> <span class="hljs-keyword">in</span> boxedString),toObject=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">if</span>(<span class="hljs-string">"undefined"</span>==<span class="hljs-keyword">typeof</span> a)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">TypeError</span>(<span class="hljs-string">"can't convert "</span>+a+<span class="hljs-string">" to object"</span>);<span class="hljs-keyword">return</span> <span class="hljs-built_in">Object</span>(a)},toInteger=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=+a;<span class="hljs-keyword">return</span> <span class="hljs-built_in">Number</span>.isNaN(b)?<span class="hljs-number">0</span>:<span class="hljs-number">0</span>!==b&&<span class="hljs-built_in">isFinite</span>(b)?sign(b)*<span class="hljs-built_in">Math</span>.floor(<span class="hljs-built_in">Math</span>.abs(b)):b},isPrimitive=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-keyword">typeof</span> a;<span class="hljs-keyword">return</span> <span class="hljs-literal">null</span>===a||<span class="hljs-string">"undefined"</span>===b||<span class="hljs-string">"boolean"</span>===b||<span class="hljs-string">"number"</span>===b||<span class="hljs-string">"string"</span>===b},toPrimitive=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b,c,d;<span class="hljs-keyword">if</span>(isPrimitive(a))<span class="hljs-keyword">return</span> a;<span class="hljs-keyword">if</span>(c=a.valueOf,<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> c&&(b=c.call(a),isPrimitive(b)))<span class="hljs-keyword">return</span> b;<span class="hljs-keyword">if</span>(d=a.toString,<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> d&&(b=d.call(a),isPrimitive(b)))<span class="hljs-keyword">return</span> b;<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">TypeError</span>},sign=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=+a;<span class="hljs-keyword">return</span> <span class="hljs-number">0</span>===b?b:<span class="hljs-built_in">Number</span>.isNaN(b)?b:<span class="hljs-number">0</span>>b?-<span class="hljs-number">1</span>:<span class="hljs-number">1</span>},each=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">var</span> d,e;<span class="hljs-keyword">if</span>(<span class="hljs-built_in">Array</span>.prototype.forEach)<span class="hljs-keyword">return</span> <span class="hljs-built_in">Array</span>.prototype.forEach.call(a,b);<span class="hljs-keyword">if</span>(!a||!b)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">"Not enough arguments provided for each()"</span>);<span class="hljs-keyword">for</span>(c=c||a,d=<span class="hljs-number">0</span>,e=a.length;e>d;d+=<span class="hljs-number">1</span>)b.call(c,a[d])},forIn=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">var</span> d;<span class="hljs-keyword">if</span>(!a||!b)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">"Not enough arguments provided for forIn()"</span>);c=c||a;<span class="hljs-keyword">for</span>(d <span class="hljs-keyword">in</span> a)own(a,d)&&b.call(c,d)},extend=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c;<span class="hljs-keyword">if</span>(!a||!b)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">"Not enough arguments provided for extend()"</span>);<span class="hljs-keyword">for</span>(c <span class="hljs-keyword">in</span> b)own(b,c)&&(a[c]=b[c]);<span class="hljs-keyword">return</span> a},every=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c,d,e,f;<span class="hljs-keyword">if</span>(<span class="hljs-literal">null</span>===a)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">TypeError</span>;<span class="hljs-keyword">if</span>(c=<span class="hljs-built_in">Object</span>(a),d=c.length>>><span class="hljs-number">0</span>,<span class="hljs-string">"function"</span>!=<span class="hljs-keyword">typeof</span> b)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">TypeError</span>;<span class="hljs-keyword">for</span>(e=<span class="hljs-built_in">arguments</span>[<span class="hljs-number">1</span>],f=<span class="hljs-number">0</span>;d>f;f++)<span class="hljs-keyword">if</span>(f <span class="hljs-keyword">in</span> c&&!b.call(e,c[f],f,c))<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>;<span class="hljs-keyword">return</span>!<span class="hljs-number">0</span>},trim=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-string">" \n\f\r \u2028\u2029"</span>;b=<span class="hljs-string">"["</span>+b+<span class="hljs-string">"]"</span>;<span class="hljs-keyword">var</span> c=<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^"</span>+b+b+<span class="hljs-string">"*"</span>),d=<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(b+b+<span class="hljs-string">"*$"</span>);<span class="hljs-keyword">if</span>(<span class="hljs-keyword">void</span> <span class="hljs-number">0</span>===a||<span class="hljs-literal">null</span>===a)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">TypeError</span>(<span class="hljs-string">"can't convert "</span>+a+<span class="hljs-string">" to object"</span>);<span class="hljs-keyword">return</span> <span class="hljs-built_in">String</span>(a).replace(c,<span class="hljs-string">""</span>).replace(d,<span class="hljs-string">""</span>)},contains=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c=<span class="hljs-built_in">arguments</span>[<span class="hljs-number">1</span>];<span class="hljs-keyword">return</span>-<span class="hljs-number">1</span>!==a.indexOf(b,c)},indexOf=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c=splitString&&<span class="hljs-string">"[object String]"</span>===a.toString()?<span class="hljs-keyword">this</span>.split(<span class="hljs-string">""</span>):toObject(<span class="hljs-keyword">this</span>),d=c.length>>><span class="hljs-number">0</span>;<span class="hljs-keyword">if</span>(!d)<span class="hljs-keyword">return</span>-<span class="hljs-number">1</span>;<span class="hljs-keyword">var</span> e=<span class="hljs-number">0</span>;<span class="hljs-keyword">for</span>(<span class="hljs-built_in">arguments</span>.length><span class="hljs-number">1</span>&&(e=toInteger(<span class="hljs-built_in">arguments</span>[<span class="hljs-number">1</span>])),e=e>=<span class="hljs-number">0</span>?e:<span class="hljs-built_in">Math</span>.max(<span class="hljs-number">0</span>,d+e);d>e;e++)<span class="hljs-keyword">if</span>(e <span class="hljs-keyword">in</span> c&&c[e]===b)<span class="hljs-keyword">return</span> e;<span class="hljs-keyword">return</span>-<span class="hljs-number">1</span>};<span class="hljs-keyword">return</span> select=feature.qsa3?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> b=b||doc,b.querySelectorAll(a)}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> sizzle(a,b)
},select=select||<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> b=b||doc,b.querySelectorAll(a)},hilo=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"undefined"</span>==<span class="hljs-keyword">typeof</span> a?win.Hilo:<span class="hljs-string">"number"</span>==<span class="hljs-keyword">typeof</span> a?<span class="hljs-keyword">new</span> NumberObject(a):<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a?<span class="hljs-string">""</span>===trim(a)?<span class="hljs-keyword">new</span> Dom({length:<span class="hljs-number">0</span>}):<span class="hljs-keyword">new</span> Dom(select(a,b,c),a):<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> a?(<span class="hljs-string">"complete"</span>===<span class="hljs-built_in">document</span>.readyState?a():callbacks.push(a),win.Hilo):a.length?<span class="hljs-keyword">new</span> Dom(a):(a=[a],<span class="hljs-keyword">new</span> Dom(a))},hilo.temp={},hilo.version=<span class="hljs-string">"0.1.0-pre-dev-beta-9"</span>,hilo.feature=feature,hilo.browser=detected.browser,hilo.engine=detected.engine,hilo.platform=detected.system,extend(hilo,{each:each,extend:extend,every:every,trim:trim,contains:contains,indexOf:indexOf,isPrimitive:isPrimitive,toObject:toObject,toInteger:toInteger,toPrimitive:toPrimitive}),hilo.json={parse:json.parse,stringify:json.stringify},hilo.legacy=<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> sizzle,extend(hilo,{test:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Test(a)}}),extend(Test.prototype,{ifEquals:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-keyword">this</span>.con===a;<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.neg?!b:b},ifContains:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-number">1</span>===<span class="hljs-keyword">this</span>.con.split(a).length?!<span class="hljs-number">1</span>:!<span class="hljs-number">0</span>;<span class="hljs-keyword">if</span>(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a&&<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-keyword">this</span>.con&&<span class="hljs-keyword">this</span>.con.length);<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a&&<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-keyword">this</span>.con)<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.neg?!b:b},not:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Test(<span class="hljs-keyword">this</span>,!<span class="hljs-number">0</span>)}}),hiloAjax=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b;<span class="hljs-keyword">if</span>(win.XMLHttpRequest?b=<span class="hljs-keyword">new</span> win.XMLHttpRequest:win.ActiveXObject&&(b=<span class="hljs-keyword">new</span> win.ActiveXObject(<span class="hljs-string">"Microsoft.XMLHTTP"</span>)),!a.url)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">TypeError</span>(<span class="hljs-string">"url parameter not provided to hilo.ajax"</span>);a.async=a.async||!<span class="hljs-number">0</span>,a.username=a.username||<span class="hljs-literal">null</span>,a.password=a.password||<span class="hljs-literal">null</span>,a.contentType=a.contentType||<span class="hljs-string">"application/x-www-form-urlencoded; charset=UTF-8"</span>,b.onreadystatechange=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">if</span>(a.callback&&a.callback(b),<span class="hljs-number">4</span>===b.readyState)<span class="hljs-keyword">switch</span>(a.complete.call(<span class="hljs-keyword">this</span>,b),b.status){<span class="hljs-keyword">case</span> <span class="hljs-number">200</span>:a.success.call(<span class="hljs-keyword">this</span>,b),a.error.call(<span class="hljs-keyword">this</span>,b);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span> <span class="hljs-number">404</span>:a.notfound.call(<span class="hljs-keyword">this</span>,b),a.error.call(<span class="hljs-keyword">this</span>,b);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span> <span class="hljs-number">403</span>:a.forbidden.call(<span class="hljs-keyword">this</span>,b),a.error.call(<span class="hljs-keyword">this</span>,b);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">default</span>:a.error.call(<span class="hljs-keyword">this</span>,b)}<span class="hljs-keyword">else</span> <span class="hljs-number">3</span>===b.readyState&&a.sent.call(<span class="hljs-keyword">this</span>,b)},b.timeout=a.timeout,b.open(a.method.trim().toUpperCase()||<span class="hljs-string">"POST"</span>,a.url,a.async,a.username,a.password),<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> a.data&&(a.data=<span class="hljs-built_in">JSON</span>.encode(a.data)),b.send(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a.data?a.data:<span class="hljs-literal">null</span>)},hilo.ajax=hiloAjax,hilo.get=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{ajaxRequest(<span class="hljs-string">"GET"</span>,a,b,c)},hilo.post=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{ajaxRequest(<span class="hljs-string">"POST"</span>,a,b,c)},Dom.prototype=<span class="hljs-built_in">Array</span>.prototype,extend(Dom.prototype,{constructor:Dom}),hilo.create=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c,d=<span class="hljs-keyword">new</span> Dom([<span class="hljs-built_in">document</span>.createElement(a)]);<span class="hljs-keyword">if</span>(b){b.className&&(d.addClass(b.className),<span class="hljs-keyword">delete</span> b.className),b.text&&(d.html(b.text),<span class="hljs-keyword">delete</span> b.text);<span class="hljs-keyword">for</span>(c <span class="hljs-keyword">in</span> b)b.hasOwnProperty(c)&&d.attr(c,b[c])}<span class="hljs-keyword">return</span> d},extend(Dom.prototype,{each:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.map(a),<span class="hljs-keyword">this</span>},map:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b,c,d=[];<span class="hljs-keyword">for</span>(b=<span class="hljs-number">0</span>,c=<span class="hljs-keyword">this</span>.length;c>b;b+=<span class="hljs-number">1</span>)d.push(a.call(<span class="hljs-keyword">this</span>,<span class="hljs-keyword">this</span>[b],b));<span class="hljs-keyword">return</span> d},one:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-keyword">this</span>.map(a);<span class="hljs-keyword">return</span> b.length><span class="hljs-number">1</span>?b:b[<span class="hljs-number">0</span>]},first:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a(<span class="hljs-keyword">this</span>[<span class="hljs-number">0</span>])},filter:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b,c,d=<span class="hljs-keyword">this</span>.length>>><span class="hljs-number">0</span>,e=<span class="hljs-built_in">Object</span>(<span class="hljs-keyword">this</span>),f=[];<span class="hljs-keyword">for</span>(b=<span class="hljs-number">0</span>;d>b;b++)b <span class="hljs-keyword">in</span> e&&(c=e[b],a.call(<span class="hljs-keyword">this</span>,c,b,e)&&f.push(c));<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Dom(f)},get:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> a=[];<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{a.push(b)}),a},firstEl:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Dom([<span class="hljs-keyword">this</span>[<span class="hljs-number">0</span>]])},lastEl:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Dom([<span class="hljs-keyword">this</span>[<span class="hljs-keyword">this</span>.length-<span class="hljs-number">1</span>]])},el:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Dom([<span class="hljs-keyword">this</span>[a-<span class="hljs-number">1</span>]])},children:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b,c,d=[];<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(e)</span></span>{<span class="hljs-keyword">var</span> f=select(a?a:<span class="hljs-string">"*"</span>,e);<span class="hljs-keyword">for</span>(b=<span class="hljs-number">0</span>,c=f.length;c>b;b+=<span class="hljs-number">1</span>)d=d.concat(f[b])}),d},parents:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> a=[];<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{a=a.concat(b.parentElement)}),<span class="hljs-keyword">new</span> Dom(a)},parent:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.first(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Dom([a.parentElement])})},rel:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=[];<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{b.push(c[a])}),b},next:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.rel(<span class="hljs-string">"nextElementSibling"</span>)},prev:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.rel(<span class="hljs-string">"previousElementSibling"</span>)},html:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"undefined"</span>!=<span class="hljs-keyword">typeof</span> a?<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.innerHTML=a}):<span class="hljs-keyword">this</span>.first(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.innerHTML})},empty:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.html(<span class="hljs-string">""</span>)},append:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.innerHTML+=a})},prepend:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.innerHTML=a+b.innerHTML})},value:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a?<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.value=a}):<span class="hljs-keyword">void</span> <span class="hljs-keyword">this</span>.first(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.value})},id:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.first(a?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.id=a}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.id})},<span class="hljs-string">"class"</span>:feature.classList===!<span class="hljs-number">0</span>?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{<span class="hljs-keyword">var</span> d,e,f,g=[];<span class="hljs-keyword">if</span>(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> b)<span class="hljs-keyword">if</span>(e=b.split(<span class="hljs-string">" "</span>),<span class="hljs-number">1</span>===e.length)<span class="hljs-keyword">switch</span>(f=c.classList.contains(b),a){<span class="hljs-keyword">case</span><span class="hljs-string">"add"</span>:f||c.classList.add(b);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"remove"</span>:f&&c.classList.remove(b);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"has"</span>:g=!<span class="hljs-number">0</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"toggle"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f?c.classList.remove(e[d]):c.classList.add(e[d])}<span class="hljs-keyword">else</span> <span class="hljs-keyword">switch</span>(f=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> c.classList.contains(a)},a){<span class="hljs-keyword">case</span><span class="hljs-string">"add"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f(e[d])||c.classList.add(e[d]);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"remove"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f(e[d])&&c.classList.remove(e[d]);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"has"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)g.push(f(e[d]));<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"toggle"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f(e[d])?c.classList.remove(e[d]):c.classList.add(e[d])}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(b.length)<span class="hljs-keyword">switch</span>(e=b,f=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> c.classList.contains(a)},a){<span class="hljs-keyword">case</span><span class="hljs-string">"add"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f(e[d])||c.classList.add(e[d]);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"remove"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f(e[d])&&c.classList.remove(e[d]);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"has"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)g.push(f(e[d]));<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"toggle"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f(e[d])?c.classList.remove(e[d]):c.classList.add(e[d])}<span class="hljs-keyword">return</span><span class="hljs-string">"boolean"</span>==<span class="hljs-keyword">typeof</span> g?g:g.every(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a===!<span class="hljs-number">0</span>})})}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{<span class="hljs-keyword">var</span> d,e,f,g=[];<span class="hljs-keyword">if</span>(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> b)<span class="hljs-keyword">if</span>(e=b.split(<span class="hljs-string">" "</span>),<span class="hljs-number">1</span>===e.length)<span class="hljs-keyword">switch</span>(f=c.className.split(b).length><span class="hljs-number">1</span>,a){<span class="hljs-keyword">case</span><span class="hljs-string">"add"</span>:f||(c.className+=<span class="hljs-string">" "</span>+b);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"remove"</span>:f&&c.className.replace(b,<span class="hljs-string">""</span>);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"has"</span>:g=f;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"toggle"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f?c.className.replace(b,<span class="hljs-string">""</span>):c.className+=<span class="hljs-string">" "</span>+b}<span class="hljs-keyword">else</span> <span class="hljs-keyword">switch</span>(f=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> c.className.split(a).length><span class="hljs-number">1</span>},a){<span class="hljs-keyword">case</span><span class="hljs-string">"add"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f(e[d])||(c.className+=<span class="hljs-string">" "</span>+e[d]);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"remove"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f(e[d])&&c.className.replace(e[d],<span class="hljs-string">""</span>);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"has"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)g.push(f(e[d]));<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"toggle"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f(e[d])?c.className.replace(e[d],<span class="hljs-string">""</span>):c.className+=<span class="hljs-string">" "</span>+e[d]}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(b.length)<span class="hljs-keyword">switch</span>(e=b,f=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> c.className.split(a).length><span class="hljs-number">1</span>},a){<span class="hljs-keyword">case</span><span class="hljs-string">"add"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f(e[d])||(c.className+=<span class="hljs-string">" "</span>+e[d]);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"remove"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f(e[d])&&c.className.replace(e[d],<span class="hljs-string">""</span>);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"has"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)g.push(f(e[d]));<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"toggle"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d<e.length;d+=<span class="hljs-number">1</span>)f(e[d])?c.className.replace(e[d],<span class="hljs-string">""</span>):c.className+=<span class="hljs-string">" "</span>+e[d]}<span class="hljs-keyword">return</span><span class="hljs-string">"boolean"</span>==<span class="hljs-keyword">typeof</span> g?g:g.every(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a===!<span class="hljs-number">0</span>})})},addClass:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>[<span class="hljs-string">"class"</span>](<span class="hljs-string">"add"</span>,a)},removeClass:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>[<span class="hljs-string">"class"</span>](<span class="hljs-string">"remove"</span>,a)},hasClass:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>[<span class="hljs-string">"class"</span>](<span class="hljs-string">"has"</span>,a)},toggleClass:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>[<span class="hljs-string">"class"</span>](<span class="hljs-string">"toggle"</span>,a)},attr:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> b?<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c.setAttribute(a,b)}):<span class="hljs-keyword">this</span>.first(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{<span class="hljs-keyword">return</span> b.getAttribute(a)})},css:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c;<span class="hljs-keyword">return</span><span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a?(c=unhyph(a),b?<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{a.style[c]=unitize(b,c)}):<span class="hljs-keyword">this</span>.first(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.style[c]})):<span class="hljs-keyword">void</span>(<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> a&&forIn(a,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{c=unhyph(b),<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(d)</span></span>{d.style[c]=unitize(a[b],c)})},<span class="hljs-keyword">this</span>))},computed:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.first(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{<span class="hljs-keyword">return</span> win.getComputedStyle(b)[a]})},outerWidth:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"width"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingLeft"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingRight"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"borderLeft"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"borderRight"</span>))+<span class="hljs-string">"px"</span>},innerWidth:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"width"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingLeft"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingRight"</span>))+<span class="hljs-string">"px"</span>},outerHeight:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"height"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingTop"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingBottom"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"borderTop"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"borderBottom"</span>))+<span class="hljs-string">"px"</span>},innerHeight:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"height"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingTop"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingBottom"</span>))+<span class="hljs-string">"px"</span>}}),extend(Dom.prototype,{on:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">document</span>.addEventListener?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c.addEventListener(a,b,!<span class="hljs-number">1</span>)})}:<span class="hljs-built_in">document</span>.attachEvent?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c.attachEvent(<span class="hljs-string">"on"</span>+a,b)})}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c[<span class="hljs-string">"on"</span>+a]=b})}}(),off:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">document</span>.removeEventListener?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c.removeEventListener(a,b,!<span class="hljs-number">1</span>)})}:<span class="hljs-built_in">document</span>.detachEvent?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c.detachEvent(<span class="hljs-string">"on"</span>+a,b)})}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b[<span class="hljs-string">"on"</span>+a]=<span class="hljs-literal">null</span>})}}(),fire:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">document</span>.dispatchEvent?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b;<span class="hljs-keyword">try</span>{b=<span class="hljs-built_in">document</span>.createEvent(<span class="hljs-string">"Events"</span>)}<span class="hljs-keyword">catch</span>(c){b=<span class="hljs-built_in">document</span>.createEvent(<span class="hljs-string">"UIEvents"</span>)}<span class="hljs-keyword">return</span> b.initUIEvent(a,!<span class="hljs-number">0</span>,!<span class="hljs-number">0</span>,<span class="hljs-built_in">window</span>,<span class="hljs-number">1</span>),<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{a.dispatchEvent(b)})}:<span class="hljs-built_in">document</span>.fireEvent?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-built_in">document</span>.createEventObject();<span class="hljs-keyword">return</span> b.button=<span class="hljs-number">1</span>,<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c.fireEvent(<span class="hljs-string">"on"</span>+a,b)})}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b[<span class="hljs-string">"on"</span>+a].call()})}}()}),extend(Dom.prototype,{ready:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.onreadystatechange=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{(b.readyState=<span class="hljs-string">"complete"</span>)&&a()}})}}),<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> a,b={};<span class="hljs-keyword">for</span>(a=[<span class="hljs-string">"blur"</span>,<span class="hljs-string">"click"</span>,<span class="hljs-string">"change"</span>,<span class="hljs-string">"dblclick"</span>,<span class="hljs-string">"drag"</span>,<span class="hljs-string">"dragstart"</span>,<span class="hljs-string">"dragend"</span>,<span class="hljs-string">"dragenter"</span>,<span class="hljs-string">"dragleave"</span>,<span class="hljs-string">"dragover"</span>,<span class="hljs-string">"drop"</span>,<span class="hljs-string">"error"</span>,<span class="hljs-string">"focus"</span>,<span class="hljs-string">"keyup"</span>,<span class="hljs-string">"keydown"</span>,<span class="hljs-string">"keypress"</span>,<span class="hljs-string">"load"</span>,<span class="hljs-string">"mousedown"</span>,<span class="hljs-string">"mouseleave"</span>,<span class="hljs-string">"mouseenter"</span>,<span class="hljs-string">"mouseover"</span>,<span class="hljs-string">"mousemove"</span>,<span class="hljs-string">"mouseout"</span>,<span class="hljs-string">"submit"</span>],_i=<span class="hljs-number">0</span>;_i<a.length;_i+=<span class="hljs-number">1</span>)b[a[_i]]=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> b?<span class="hljs-keyword">this</span>.on(a[_i],b):<span class="hljs-keyword">this</span>.fire(a[_i])};extend(Dom.prototype,b)}(),key={<span class="hljs-number">0</span>:<span class="hljs-number">48</span>,<span class="hljs-number">1</span>:<span class="hljs-number">49</span>,<span class="hljs-number">2</span>:<span class="hljs-number">50</span>,<span class="hljs-number">3</span>:<span class="hljs-number">51</span>,<span class="hljs-number">4</span>:<span class="hljs-number">52</span>,<span class="hljs-number">5</span>:<span class="hljs-number">53</span>,<span class="hljs-number">6</span>:<span class="hljs-number">54</span>,<span class="hljs-number">7</span>:<span class="hljs-number">55</span>,<span class="hljs-number">8</span>:<span class="hljs-number">56</span>,<span class="hljs-number">9</span>:<span class="hljs-number">57</span>,A:<span class="hljs-number">65</span>,B:<span class="hljs-number">66</span>,C:<span class="hljs-number">67</span>,D:<span class="hljs-number">68</span>,E:<span class="hljs-number">69</span>,F:<span class="hljs-number">70</span>,G:<span class="hljs-number">71</span>,H:<span class="hljs-number">72</span>,I:<span class="hljs-number">73</span>,J:<span class="hljs-number">74</span>,K:<span class="hljs-number">75</span>,L:<span class="hljs-number">76</span>,M:<span class="hljs-number">77</span>,N:<span class="hljs-number">78</span>,O:<span class="hljs-number">79</span>,P:<span class="hljs-number">80</span>,Q:<span class="hljs-number">81</span>,R:<span class="hljs-number">82</span>,S:<span class="hljs-number">83</span>,T:<span class="hljs-number">84</span>,U:<span class="hljs-number">85</span>,V:<span class="hljs-number">86</span>,W:<span class="hljs-number">87</span>,X:<span class="hljs-number">88</span>,Y:<span class="hljs-number">89</span>,Z:<span class="hljs-number">90</span>,a:<span class="hljs-number">97</span>,b:<span class="hljs-number">98</span>,c:<span class="hljs-number">99</span>,d:<span class="hljs-number">100</span>,e:<span class="hljs-number">101</span>,f:<span class="hljs-number">102</span>,g:<span class="hljs-number">103</span>,h:<span class="hljs-number">104</span>,i:<span class="hljs-number">105</span>,j:<span class="hljs-number">106</span>,k:<span class="hljs-number">107</span>,l:<span class="hljs-number">108</span>,m:<span class="hljs-number">109</span>,n:<span class="hljs-number">110</span>,o:<span class="hljs-number">111</span>,p:<span class="hljs-number">112</span>,q:<span class="hljs-number">113</span>,r:<span class="hljs-number">114</span>,s:<span class="hljs-number">115</span>,t:<span class="hljs-number">116</span>,u:<span class="hljs-number">117</span>,v:<span class="hljs-number">118</span>,w:<span class="hljs-number">119</span>,x:<span class="hljs-number">120</span>,y:<span class="hljs-number">121</span>,z:<span class="hljs-number">122</span>,alt:<span class="hljs-number">18</span>,caps:<span class="hljs-number">20</span>,ctrl:<span class="hljs-number">17</span>,cmd:<span class="hljs-number">17</span>,enter:<span class="hljs-number">13</span>,esc:<span class="hljs-number">27</span>,del:<span class="hljs-number">46</span>,end:<span class="hljs-number">35</span>,back:<span class="hljs-number">8</span>,left:<span class="hljs-number">37</span>,up:<span class="hljs-number">38</span>,right:<span class="hljs-number">39</span>,down:<span class="hljs-number">40</span>,f1:<span class="hljs-number">112</span>,f2:<span class="hljs-number">113</span>,f3:<span class="hljs-number">114</span>,f4:<span class="hljs-number">115</span>,f5:<span class="hljs-number">116</span>,f6:<span class="hljs-number">117</span>,f7:<span class="hljs-number">118</span>,f8:<span class="hljs-number">119</span>,f9:<span class="hljs-number">120</span>,f10:<span class="hljs-number">121</span>,f11:<span class="hljs-number">122</span>,f12:<span class="hljs-number">123</span>,home:<span class="hljs-number">36</span>,insert:<span class="hljs-number">45</span>,numlock:<span class="hljs-number">144</span>,<span class="hljs-string">"`"</span>:<span class="hljs-number">222</span>,<span class="hljs-string">"-"</span>:<span class="hljs-number">189</span>,<span class="hljs-string">","</span>:<span class="hljs-number">188</span>,<span class="hljs-string">"."</span>:<span class="hljs-number">190</span>,<span class="hljs-string">"/"</span>:<span class="hljs-number">191</span>,<span class="hljs-string">";"</span>:<span class="hljs-number">186</span>,<span class="hljs-string">"["</span>:<span class="hljs-number">219</span>,<span class="hljs-string">"\\"</span>:<span class="hljs-number">220</span>,<span class="hljs-string">"]"</span>:<span class="hljs-number">221</span>,<span class="hljs-string">"="</span>:<span class="hljs-number">187</span>},hilo.keys=key,extend(Dom.prototype,{show:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a=a||<span class="hljs-string">""</span>,<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.style.display=a,b.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">1</span>)})},hide:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{a.style.display=<span class="hljs-string">"none"</span>,a.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">0</span>)})},toggle:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{<span class="hljs-string">"none"</span>===b.style.display?(b.style.display=a?a:<span class="hljs-string">""</span>,b.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">1</span>)):(b.style.display=<span class="hljs-string">"none"</span>,b.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">0</span>))})},appear:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{a.style.visibility=<span class="hljs-string">"visible"</span>,a.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">1</span>)})},disappear:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{a.style.visibility=<span class="hljs-string">"hidden"</span>,a.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">0</span>)})},toggleVisibility:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-string">"0"</span>===a.style.opacity?(a.style.visibility=<span class="hljs-string">"visible"</span>,a.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">0</span>)):(a.style.visibility=<span class="hljs-string">"hidden"</span>,a.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">0</span>))})},fade:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"in"</span>===a&&<span class="hljs-keyword">this</span>.show(),<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">d</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-number">.3</span>,d=<span class="hljs-number">1</span>;<span class="hljs-built_in">parseFloat</span>(c.style.opacity)===(<span class="hljs-string">"in"</span>===a?<span class="hljs-number">1</span>:<span class="hljs-number">0</span>)?clearInterval(win.Hilo.temp.anim):(<span class="hljs-string">"out"</span>===a&&(b=-b,d=<span class="hljs-number">0</span>),c.style.opacity=<span class="hljs-built_in">parseFloat</span>(c.style.opacity||d)+b)}<span class="hljs-keyword">var</span> e;<span class="hljs-keyword">switch</span>(b){<span class="hljs-keyword">case</span><span class="hljs-string">"slow"</span>:e=<span class="hljs-number">200</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"normal"</span>:e=<span class="hljs-number">120</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"fast"</span>:e=<span class="hljs-number">80</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">default</span>:e=e||<span class="hljs-number">120</span>}win.Hilo.temp.anim=setInterval(d,b)})},fadeIn:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">this</span>.fade(<span class="hljs-string">"in"</span>,a)},fadeOut:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">this</span>.fade(<span class="hljs-string">"out"</span>,a)}}),hilo.classify=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">a</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">String</span>(hilo.browser.version).replace(<span class="hljs-string">"."</span>,<span class="hljs-string">"-"</span>)}<span class="hljs-keyword">var</span> b,c=win.Hilo(<span class="hljs-string">"body"</span>),d=[<span class="hljs-string">"js"</span>];<span class="hljs-keyword">if</span>(c.removeClass(<span class="hljs-string">"no-js"</span>),hilo.browser.chrome)d.push(<span class="hljs-string">"chrome"</span>);<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(hilo.browser.firefox)d.push(<span class="hljs-string">"firefox"</span>);<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(hilo.browser.safari)d.push(<span class="hljs-string">"safari"</span>);<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(hilo.browser.ie){<span class="hljs-keyword">for</span>(b=<span class="hljs-number">6</span>;<span class="hljs-number">11</span>>=b;b++)hilo.browser.ie<=b&&(d.push(<span class="hljs-string">"lte-ie"</span>+b),hilo.browser.ie<b&&d.push(<span class="hljs-string">"lt-ie"</span>+b)),hilo.browser.ie>=b&&(d.push(<span class="hljs-string">"gte-ie"</span>+b),hilo.browser.ie>b&&d.push(<span class="hljs-string">"gt-ie"</span>+b)),hilo.browser.ie===b&&d.push(<span class="hljs-string">"ie"</span>+b);d.push(<span class="hljs-string">"ie"</span>)}<span class="hljs-keyword">else</span> hilo.browser.opera?d.push(<span class="hljs-string">"opera"</span>):hilo.browser.konq&&d.push(<span class="hljs-string">"konqueror"</span>);d.push(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">switch</span>(hilo.platform.name){<span class="hljs-keyword">case</span><span class="hljs-string">"Windows"</span>:<span class="hljs-keyword">return</span><span class="hljs-string">"windows"</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"Mac"</span>:<span class="hljs-keyword">return</span><span class="hljs-string">"mac"</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"Linux"</span>:<span class="hljs-keyword">return</span><span class="hljs-string">"linux"</span>}}()),hilo.engine.webkit?d.push(<span class="hljs-string">"webkit"</span>):hilo.engine.ie?d.push(<span class="hljs-string">"trident"</span>):hilo.engine.opera?d.push(<span class="hljs-string">"presto"</span>):hilo.engine.gecko&&d.push(<span class="hljs-string">"gecko"</span>),d.push(hilo.browser.name.toLowerCase()+<span class="hljs-built_in">parseInt</span>(hilo.browser.version,<span class="hljs-number">10</span>)),a()!==<span class="hljs-built_in">parseInt</span>(hilo.browser.version,<span class="hljs-number">10</span>)&&d.push(hilo.browser.name.toLowerCase()+a());<span class="hljs-keyword">for</span>(b <span class="hljs-keyword">in</span> hilo.feature)hilo.feature.hasOwnProperty(b)&&(hilo.feature[b]===!<span class="hljs-number">0</span>?d.push(b.toLowerCase()):hilo.feature[b]===!<span class="hljs-number">1</span>&&d.push(<span class="hljs-string">"no-"</span>+b.toLowerCase()));<span class="hljs-keyword">return</span> c.addClass(d),d},extend(NumberObject.prototype,{MAX_INTEGER:<span class="hljs-number">9007199254740991</span>,EPSILON:<span class="hljs-number">2.220446049250313e-16</span>,<span class="hljs-built_in">parseInt</span>:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-built_in">parseInt</span>.call(<span class="hljs-keyword">this</span>,<span class="hljs-keyword">this</span>.num)},<span class="hljs-built_in">parseFloat</span>:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-built_in">parseFloat</span>.call(<span class="hljs-keyword">this</span>,<span class="hljs-keyword">this</span>.num)},<span class="hljs-built_in">isFinite</span>:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"number"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-keyword">this</span>.num&&<span class="hljs-built_in">isFinite</span>(<span class="hljs-keyword">this</span>.num)},isInteger:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"number"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-keyword">this</span>.num&&!<span class="hljs-built_in">isNaN</span>(<span class="hljs-keyword">this</span>.num)&&<span class="hljs-built_in">isFinite</span>(<span class="hljs-keyword">this</span>.num)&&<span class="hljs-built_in">parseInt</span>(<span class="hljs-keyword">this</span>.num,<span class="hljs-number">10</span>)===<span class="hljs-keyword">this</span>.num},<span class="hljs-built_in">isNaN</span>:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.num!==<span class="hljs-keyword">this</span>.num},toInteger:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> a=+<span class="hljs-keyword">this</span>.num;<span class="hljs-keyword">return</span> <span class="hljs-built_in">isNaN</span>(a)?<span class="hljs-number">0</span>:<span class="hljs-number">0</span>!==a&&<span class="hljs-built_in">isFinite</span>(a)?sign.call(<span class="hljs-keyword">this</span>,a)*<span class="hljs-built_in">Math</span>.floor(<span class="hljs-built_in">Math</span>.abs(a)):a},sign:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{sign.call(<span class="hljs-keyword">this</span>,<span class="hljs-keyword">this</span>.num,a)},times:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> c=<span class="hljs-number">0</span>;c<<span class="hljs-keyword">this</span>.num;)a.apply(<span class="hljs-keyword">this</span>,b),c+=<span class="hljs-number">1</span>}}),extend(hilo,{Dom:Dom.prototype,Test:Test.prototype}),doc.onreadystatechange=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">if</span>(<span class="hljs-string">"complete"</span>===doc.readyState)<span class="hljs-keyword">for</span>(_i=<span class="hljs-number">0</span>;_i<callbacks.length;_i+=<span class="hljs-number">1</span>)callbacks[_i]()},hilo.perf=(<span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>).getTime()-start,hilo});</pre></div></div>
</li>
</ul>
</div>
</body>
</html>