-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcase-studies-style.js.map
1 lines (1 loc) · 882 KB
/
case-studies-style.js.map
1
{"version":3,"sources":["node_modules/bootstrap/dist/js/npm.js","node_modules/bootstrap/js/affix.js","node_modules/bootstrap/js/alert.js","node_modules/bootstrap/js/button.js","node_modules/bootstrap/js/carousel.js","node_modules/bootstrap/js/collapse.js","node_modules/bootstrap/js/dropdown.js","node_modules/bootstrap/js/modal.js","node_modules/bootstrap/js/popover.js","node_modules/bootstrap/js/scrollspy.js","node_modules/bootstrap/js/tab.js","node_modules/bootstrap/js/tooltip.js","node_modules/bootstrap/js/transition.js","node_modules/jquery/dist/jquery.js","app/404.static.pug","app/about-us/index.static.pug","app/case-studies/2020_casting.static.pug","app/case-studies/brilliant_basics.static.pug","app/case-studies/case_study_01.static.pug","app/case-studies/checkmarx_codebashing.static.pug","app/case-studies/click_mechanic.static.pug","app/case-studies/index.static.pug","app/case-studies/rhodar_asbestos.static.pug","app/case-studies/space_studios.static.pug","app/case-studies/stage_castings.static.pug","app/community/hacknight.static.pug","app/community/unconference.static.pug","app/partials/case-studies/case_study_01/detail_content.static.pug","app/partials/case-studies/case_study_01/features_icons_images.static.pug","app/partials/case-studies/case_study_01/features_step_numbers.static.pug","app/partials/case-studies/case_study_01/header_lg_dark_parallax.static.pug","app/partials/case-studies/case_study_01/simple_contact_form.static.pug","app/partials/case-studies/case_study_01/testimonial.static.pug","app/partials/community/project_nav.static.pug","app/partials/elements/404.static.pug","app/partials/google/gtm_no_script.static.pug","app/partials/google/gtm_script.static.pug","app/privacy-policy.static.pug","app/scripts/case-studies-form.js","app/scripts/case-studies-initialize.js","app/scripts/case-studies.js","app/scripts/cookies.js","app/scripts/validator.min.js","app/services/machine_learning.static.pug","app/services/maintenance_support.static.pug","app/services/mobile_development.static.pug","app/services/specific_solutions.static.pug","app/services/step_comparison.static.pug","app/services/step_four.static.pug","app/services/step_one.static.pug","app/services/step_three.static.pug","app/services/step_two.static.pug","app/services/team_extension.static.pug","app/services/web_development.static.pug","app/thanks.static.pug","app/scripts/vendor/circle-progress.min.js","app/scripts/vendor/countup.min.js","app/scripts/vendor/isotope.pkgd.min.js","app/scripts/vendor/jquery.mb.YTPlayer.min.js","app/scripts/vendor/jquery.waypoints.min.js","app/scripts/vendor/slick.min.js","app/scripts/vendor/wow.min.js"],"names":["request","serializeddata","values","$inputs","$form","originalInputSelector","$","fn","validator","Constructor","INPUT_SELECTOR","window","verifyRecaptchaCallback","response","val","trigger","on","e","isDefaultPrevented","console","log","find","serialize","prop","each","name","attr","abort","ajax","url","type","data","done","textStatus","cod","location","href","fail","jqXHR","errorThrown","error","alert","event","preventDefault","document","addEventListener","require","load","addClass","split","slice","change","g","navigator","userAgent","vendor","opera","f","test","MSStream","matchMedia","matches","d","position","top","height","undefined","c","affix","offset","bottom","css","width","outerWidth","style","margin","float","b","scrollTop","h","a","removeClass","ready","submit","scroll","cookieconsent","initialise","is","length","extend","DEFAULTS","options","validators","VALIDATORS","custom","$element","$btn","filter","add","update","proxy","onInput","onSubmit","reset","closest","VERSION","FOCUS_OFFSET","delay","html","disable","focus","errors","match","minlength","feedback","success","checkValidity","validity","valid","validationMessage","prototype","not","clearErrors","toggleSubmit","target","validateInput","Event","relatedTarget","runValidators","defer","showErrors","toString","detail","typeMismatch","patternMismatch","stepMismatch","rangeOverflow","rangeUnderflow","valueMissing","i","Deferred","reject","call","indexOf","push","get","always","resolve","promise","validate","when","map","then","focusError","animate","append","empty","hasClass","hasErrors","isIncomplete","trim","toggleClass","clearTimeout","setTimeout","removeData","destroy","removeAttr","off","noConflict","jQuery","define","amd","module","exports","t","init","value","size","startAngle","Math","PI","thickness","fill","gradient","emptyFill","animation","duration","easing","animationStartValue","reverse","lineCap","insertMode","constructor","el","canvas","ctx","radius","arcFill","lastFrameValue","initWidget","initFill","draw","getContext","devicePixelRatio","scale","drawImage","r","createPattern","drawFrame","n","Error","color","s","l","gradientAngle","o","gradientDirection","cos","sin","createLinearGradient","apply","u","isArray","addColorStop","image","Image","src","complete","onload","drawAnimated","clearRect","drawEmptyArc","drawArc","getThickness","save","beginPath","arc","lineWidth","strokeStyle","stroke","restore","stop","animationProgress","step","isNumeric","getValue","setValue","circleProgress","defaults","circleProgressEasing","arguments","isPlainObject","JSON","parse","CountUp","requestAnimationFrame","cancelAnimationFrame","Date","getTime","max","useEasing","useGrouping","separator","decimal","j","hasOwnProperty","prefix","suffix","getElementById","startVal","Number","isNaN","join","endVal","countDown","frameVal","decimals","dec","pow","k","version","printValue","formatNumber","tagName","textContent","innerHTML","easeOutExpo","count","startTime","timestamp","remaining","round","rAF","callback","start","pauseResume","paused","toFixed","replace","jQueryBridget","charAt","option","_init","bridget","Array","EvEmitter","_events","once","_onceEvents","splice","emitEvent","allOff","getSize","parseFloat","innerWidth","innerHeight","outerHeight","getComputedStyle","createElement","padding","borderStyle","borderWidth","boxSizing","body","documentElement","appendChild","isBoxSizeOuter","removeChild","querySelector","nodeType","display","offsetWidth","offsetHeight","isBorderBox","m","p","paddingLeft","paddingRight","y","paddingTop","paddingBottom","marginLeft","marginRight","v","marginTop","marginBottom","_","borderLeftWidth","borderRightWidth","z","borderTopWidth","borderBottomWidth","I","x","S","matchesSelector","Element","fizzyUIUtils","modulo","makeArray","removeFrom","getParent","parentNode","getQueryElement","handleEvent","filterFindElements","forEach","HTMLElement","querySelectorAll","debounceMethod","docReady","readyState","toDashed","toLowerCase","htmlInit","concat","getAttribute","className","Outlayer","Item","element","layout","_create","transition","transform","WebkitTransition","transitionDuration","transitionProperty","transitionDelay","Object","create","_transn","ingProperties","clean","onEnd","getPosition","_getOption","layoutPosition","getXValue","getYValue","percentPosition","_transitionTo","setPosition","isTransitioning","getTranslate","to","onTransitionEnd","isCleaning","goTo","moveTo","_nonTransition","_removeStyles","from","enableTransition","staggerDelay","onwebkitTransitionEnd","ontransitionend","onotransitionend","propertyName","disableTransition","removeTransitionStyles","removeEventListener","stagger","removeElem","remove","hide","reveal","isHidden","getHideRevealTransitionEndProperty","onRevealTransitionEnd","hiddenStyle","visibleStyle","opacity","onHideTransitionEnd","left","right","namespace","outlayerGUID","containerStyle","initLayout","originLeft","originTop","resize","resizeContainer","compatOptions","horizontal","layoutInstant","reloadItems","stamps","stamp","bindResize","items","_itemize","children","_filterFindItemElements","itemSelector","getItemElements","_resetLayout","_manageStamps","_isLayoutInited","layoutItems","_getMeasurement","_getItemsForLayout","_layoutItems","_postLayout","isIgnored","_emitCompleteOnItems","_getItemLayoutPosition","item","isInstant","isLayoutInstant","_processLayoutQueue","updateStagger","_positionItem","_getContainerSize","_setContainerMeasure","dispatchEvent","ignore","getItem","unignore","_find","unstamp","_getBoundingRect","_manageStamp","getBoundingClientRect","_boundingRect","_getElementOffset","isResizeBound","unbindResize","onresize","needsResizeLayout","addItems","appended","prepended","revealItemElements","getItems","hideItemElements","ms","Isotope","id","itemGUID","sortData","updateSortData","random","getSortData","_sorters","LayoutMode","isotope","filteredItems","needsVerticalResizeLayout","getColumnWidth","getSegmentSize","getRowHeight","getFirstItemSize","modes","Masonry","fitWidth","measureColumns","colYs","cols","maxY","horizontalColIndex","getContainerWidth","columnWidth","containerWidth","gutter","min","horizontalOrder","col","_getTopColPosition","_getTopColGroup","_getColGroupY","_getHorizontalColPosition","floor","_getContainerFitWidth","isFitWidth","horizontalAlignment","String","layoutMode","isJQueryFiltering","sortAscending","_getSorters","sortHistory","_initLayoutMode","_updateItemsSortData","arrange","_layout","_getIsInstant","_filter","_bindArrangeComplete","_isInstant","_noTransition","_hideReveal","_sort","needReveal","needHide","_getFilterTest","sortDataParsers","parseInt","sortBy","_getIsSameSortBy","sort","_mode","_filterRevealAdded","insert","shuffle","getFilteredItemElements","onYouTubeIframeAPIReady","ytp","YTAPIReady","getYTPVideoID","substr","lastIndexOf","videoID","playlistID","mbYTPlayer","author","apiKey","containment","ratio","videoURL","playlistURL","startAt","stopAt","autoPlay","vol","addRaster","quality","mute","loop","showControls","showAnnotations","showYTLogo","stopMovieOnBlur","realfullscreen","gaTrack","optimizeDisplay","onReady","controls","play","pause","unmute","onlyYT","showSite","ytLogo","locationProtocol","buildPlayer","YTPlayer","$YTPlayer","opt","state","filtersEnabled","filters","grayscale","unit","hue_rotate","invert","saturate","sepia","brightness","contrast","blur","property","eval","hasChanged","defaultOpt","isRetina","retina","isIframe","self","canGoFullScreen","browser","msie","playerID","isAlone","hasFocus","playerVars","autoplay","modestbranding","showinfo","rel","enablejsapi","playerapiid","origin","allowfullscreen","wmode","iv_load_policy","canPlayType","html5","playerBox","overlay","isSelf","isBackground","backgroundIsInited","isPlayer","canPlayOnMobile","mobile","wrapper","zIndex","minWidth","minHeight","overflow","prepend","after","controlBar","tag","isInit","getDataFromAPI","maxWidth","maxHeight","YT","Player","videoId","events","player","isReady","playerEl","getIframe","checkForState","time","canTrigger","onStateChange","getPlayerState","eventType","_gaq","hasData","videoData","title","ga","setPlaybackQuality","YTPEvent","onPlaybackQualityChange","getPlaybackQuality","onError","isPlayList","playNext","mbStorage","dataReceived","getJSON","channelTitle","description","substring","aspectratio","thumb_max","thumbnails","maxres","thumb_high","high","thumb_medium","medium","set","snippet","background","backgroundSize","backgroundUrl","loading","fadeIn","removeStoredData","getVideoData","getVideoID","setVideoQuality","chrome","playlist","videos","videoCounter","videoLength","mb_YTPlayer","changeMovie","playPrev","CSSAnimate","YTPGetPlayer","cueVideoByUrl","encodeURI","getPlayer","playerDestroy","clearInterval","checkForStartAt","getState","fullscreen","real","hideMouse","cursor","RunPrefixMethod","launchFullscreen","cancelFullscreen","fullScreenBtn","videoWrapper","fullscreenchange","mozilla","webkit","YTPSetVideoQuality","before","hideCursor","parents","seekTo","getCurrentTime","toggleLoops","playVideo","togglePlay","YTPPause","YTPPlay","stopVideo","pauseVideo","setVolume","getVolume","isMute","YTPUnmute","YTPMute","volumeBar","updateSliderVal","unMute","applyFilter","YTPEnableFilters","applyFilters","YTPApplyFilter","toggleFilter","toggleFilters","YTPDisableFilters","disableFilters","enableFilters","removeFilter","manageProgress","getDuration","getVideoLoadedFraction","totalTime","currentTime","buildControls","printUrl","whiteSpace","buttonBar","playpause","click","MuteUnmute","idx","vURL","movieUrl","open","onlyVideo","YTPFullscreen","progressBar","timeBar","clientX","timeW","loadedBar","simpleSlider","initialval","orientation","interval","contains","checkForStart","setInterval","prog","YTPManageProgress","formatTime","isCompact","isEnded","YTPEnd","YTPPlayerDestroy","muteYTPVolume","fadeOut","slideDown","toggleVolume","isMuted","ceil","YTPlaylist","YTPPlayNext","YTPPlayPrev","YTPChangeMovie","YTPGetVideoID","YTPTogglePlay","YTPToggleLoops","YTPStop","YTPSeekTo","YTPToggleVolume","YTPSetVolume","YTPGetVideoData","YTPApplyFilters","YTPToggleFilter","YTPToggleFilters","YTPRemoveFilter","buildYTPControls","playYTP","stopYTP","pauseYTP","seekToYTP","unmuteYTPVolume","setYTPVolume","manageYTPProgress","YTPGetDataFromFeed","uncamel","setUnit","setFilter","CSS","sfx","RegExp","support","CSStransition","MozTransition","MsTransition","OTransition","transitionEnd","hueRotate","normalizeCss","getProp","called","CSSAIsRunning","timeout","CSSqueue","fx","speeds","_default","out","snap","easeOutCubic","easeInOutCubic","easeInCirc","easeOutCirc","easeInOutCirc","easeInExpo","easeInOutExpo","easeInQuad","easeOutQuad","easeInOutQuad","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInBack","easeOutBack","easeInOutBack","one","css3","nAgt","safari","ua","appName","fullVersion","appVersion","majorVersion","nameOffset","verOffset","ix","end","toUpperCase","android","blackberry","ios","operaMobile","windowsMobile","kindle","isMobile","isAndroidDefault","msPointerEnabled","MSGesture","DocumentTouch","readonly","move","level","changedTouches","canSlide","stopPropagation","scrollLeft","clientY","scaleX","scaleY","outOfRangeX","outOfRangeY","outOfRange","mbCookie","stringify","setTime","toGMTString","cookie","localStorage","setItem","removeItem","clear","handler","key","Adapter","adapter","axis","enabled","triggerPoint","group","Group","findOrCreate","context","Context","findOrCreateByElement","offsetAliases","queueTrigger","enable","refresh","next","previous","invokeAll","destroyAll","disableAll","enableAll","refreshAll","viewportHeight","clientHeight","viewportWidth","clientWidth","adapters","continuous","Waypoint","didScroll","didResize","oldScroll","waypoints","vertical","waypointContextKey","windowContext","createThrottledScrollHandler","createThrottledResizeHandler","checkEmpty","isEmptyObject","handleResize","handleScroll","isTouch","newScroll","forward","backward","flushTriggers","contextOffset","contextScroll","contextDimension","offsetProp","w","findByElement","mozRequestAnimationFrame","webkitRequestAnimationFrame","clearTriggerQueues","triggerQueues","up","down","inArray","first","last","isFunction","waypoint","Zepto","Slick","accessibility","adaptiveHeight","appendArrows","appendDots","arrows","asNavFor","prevArrow","nextArrow","autoplaySpeed","centerMode","centerPadding","cssEase","customPaging","dots","dotsClass","draggable","edgeFriction","fade","focusOnSelect","infinite","initialSlide","lazyLoad","mobileFirst","pauseOnHover","pauseOnDotsHover","respondTo","responsive","rows","rtl","slide","slidesPerRow","slidesToShow","slidesToScroll","speed","swipe","swipeToSlide","touchMove","touchThreshold","useCSS","variableWidth","verticalSwiping","waitForAnimate","initials","animating","dragging","autoPlayTimer","currentDirection","currentLeft","currentSlide","direction","$dots","listWidth","listHeight","loadIndex","$nextArrow","$prevArrow","slideCount","slideWidth","$slideTrack","$slides","sliding","slideOffset","swipeLeft","$list","touchObject","transformsEnabled","unslicked","activeBreakpoint","animType","animProp","breakpoints","breakpointSettings","cssTransitions","hidden","positionProp","rowCount","shouldClick","$slider","$slidesCache","transformType","transitionType","visibilityChange","windowWidth","windowTimer","originalSettings","breakpoint","settings","mozHidden","webkitHidden","autoPlayClear","changeSlide","clickHandler","selectHandler","swipeHandler","dragHandler","keyHandler","autoPlayIterator","instanceUid","htmlExpr","checkResponsive","addSlide","slickAdd","unload","appendTo","insertBefore","eq","insertAfter","prependTo","detach","reinit","animateHeight","animateSlide","animStart","applyTransition","slick","slideHandler","buildArrows","buildDots","getDotCount","buildOut","wrapAll","parent","wrap","setupInfinite","updateDots","setSlideClasses","buildRows","createDocumentFragment","unslick","message","index","checkNavigable","getNavigableIndexes","cleanUpEvents","setPaused","visibility","orientationChange","cleanUpRows","stopImmediatePropagation","fadeSlide","filterSlides","slickFilter","getCurrent","slickCurrentSlide","getLeft","offsetLeft","getOption","slickGetOption","getSlick","getSlideCount","abs","slickGoTo","setProps","startLoad","loadSlider","initializeEvents","updateArrows","initArrowEvents","initDotEvents","action","initUI","show","keyCode","progressiveLazyLoad","slickNext","slickPause","slickPlay","postSlide","prev","slickPrev","windowDelay","removeSlide","slickRemove","setCSS","setDimensions","setFade","setHeight","setOption","slickSetOption","msTransition","OTransform","perspectiveProperty","webkitPerspective","MozTransform","MozPerspective","webkitTransform","msTransform","clone","swipeDirection","startX","curX","startY","curY","atan2","swipeEnd","swipeLength","edgeHit","minSwipe","fingerCount","originalEvent","touches","swipeStart","swipeMove","pageX","pageY","sqrt","unfilterSlides","slickUnfilter","createEvent","initCustomEvent","createEventObject","eventName","addEvent","attachEvent","removeEvent","detachEvent","WeakMap","MozWeakMap","keys","MutationObserver","WebkitMutationObserver","MozMutationObserver","warn","notSupported","observe","getPropertyValue","currentStyle","WOW","scrollCallback","scrollHandler","resetAnimation","scrolled","config","util","animationNameCache","wowEvent","boxClass","animateClass","live","finished","stopped","boxes","all","disabled","resetStyle","applyStyle","addedNodes","doSync","childList","subtree","sync","customStyle","srcElement","cacheAnimationName","vendorSet","animationDuration","animationDelay","animationIterationCount","animationName","cachedAnimationName","vendors","vendorCSS","getPropertyCSSValue","cssText","isVisible","offsetTop","offsetParent","pageYOffset","_util"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7gBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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","file":"public/case-studies-style.js","sourcesContent":["\nrequire.register(\"bootstrap/dist/js/npm.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\nrequire('../../js/transition.js')\nrequire('../../js/alert.js')\nrequire('../../js/button.js')\nrequire('../../js/carousel.js')\nrequire('../../js/collapse.js')\nrequire('../../js/dropdown.js')\nrequire('../../js/modal.js')\nrequire('../../js/tooltip.js')\nrequire('../../js/popover.js')\nrequire('../../js/scrollspy.js')\nrequire('../../js/tab.js')\nrequire('../../js/affix.js')\n })();\n});","\nrequire.register(\"bootstrap/js/affix.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: affix.js v3.3.7\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.3.7'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/alert.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: alert.js v3.3.7\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.3.7'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = $(selector === '#' ? [] : selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/button.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: button.js v3.3.7\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.3.7'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d).prop(d, true)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d).prop(d, false)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target).closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n e.preventDefault()\n // The target component still receive the focus\n if ($btn.is('input,button')) $btn.trigger('focus')\n else $btn.find('input:visible,button:visible').first().trigger('focus')\n }\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/carousel.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: carousel.js v3.3.7\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.3.7'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n $next[0].offsetWidth // force reflow\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/collapse.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: collapse.js v3.3.7\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.3.7'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/dropdown.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: dropdown.js v3.3.7\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.3.7'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/modal.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: modal.js v3.3.7\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.3.7'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (document !== e.target &&\n this.$element[0] !== e.target &&\n !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/popover.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: popover.js v3.3.7\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.3.7'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-title\"></h3><div class=\"popover-content\"></div></div>'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/scrollspy.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: scrollspy.js v3.3.7\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.3.7'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/tab.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: tab.js v3.3.7\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.3.7'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/tooltip.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: tooltip.js v3.3.7\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.3.7'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n that.$element = null\n })\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/transition.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: transition.js v3.3.7\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"jquery/dist/jquery.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"jquery\");\n (function() {\n /*!\n * jQuery JavaScript Library v1.11.2\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-17T15:27Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper window is present,\n\t\t// execute the factory and get jQuery\n\t\t// For environments that do not inherently posses a window with a document\n\t\t// (such as Node.js), expose a jQuery-making factory as module.exports\n\t\t// This accentuates the need for the creation of a real window\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Can't do this because several apps including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n// Support: Firefox 18+\n//\n\nvar deletedIds = [];\n\nvar slice = deletedIds.slice;\n\nvar concat = deletedIds.concat;\n\nvar push = deletedIds.push;\n\nvar indexOf = deletedIds.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\tversion = \"1.11.2\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1, IE<9\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: deletedIds.sort,\n\tsplice: deletedIds.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar src, copyIsArray, copy, name, options, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\t// See test/unit/core.js for details concerning isFunction.\n\t// Since version 1.3, DOM methods and functions like alert\n\t// aren't supported. They return false on IE (#2968).\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray || function( obj ) {\n\t\treturn jQuery.type(obj) === \"array\";\n\t},\n\n\tisWindow: function( obj ) {\n\t\t/* jshint eqeqeq: false */\n\t\treturn obj != null && obj == obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\treturn !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Must be an Object.\n\t\t// Because of IE, we also have to check the presence of the constructor property.\n\t\t// Make sure that DOM nodes and window objects don't pass through, as well\n\t\tif ( !obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// Not own constructor property must be Object\n\t\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call(obj, \"constructor\") &&\n\t\t\t\t!hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\") ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\t// IE8,9 Will throw exceptions on certain host objects #9897\n\t\t\treturn false;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Handle iteration over inherited properties before own properties.\n\t\tif ( support.ownLast ) {\n\t\t\tfor ( key in obj ) {\n\t\t\t\treturn hasOwn.call( obj, key );\n\t\t\t}\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own.\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || hasOwn.call( obj, key );\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\t// Workarounds based on findings by Jim Driscoll\n\t// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n\tglobalEval: function( data ) {\n\t\tif ( data && jQuery.trim( data ) ) {\n\t\t\t// We use execScript on Internet Explorer\n\t\t\t// We use an anonymous function so that context is window\n\t\t\t// rather than jQuery in Firefox\n\t\t\t( window.execScript || function( data ) {\n\t\t\t\twindow[ \"eval\" ].call( window, data );\n\t\t\t} )( data );\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1, IE<9\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\tvar len;\n\n\t\tif ( arr ) {\n\t\t\tif ( indexOf ) {\n\t\t\t\treturn indexOf.call( arr, elem, i );\n\t\t\t}\n\n\t\t\tlen = arr.length;\n\t\t\ti = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t// Skip accessing in sparse arrays\n\t\t\t\tif ( i in arr && arr[ i ] === elem ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\twhile ( j < len ) {\n\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)\n\t\tif ( len !== len ) {\n\t\t\twhile ( second[j] !== undefined ) {\n\t\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t\t}\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar args, proxy, tmp;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: function() {\n\t\treturn +( new Date() );\n\t},\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n});\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\tvar length = obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.0-pre\n * http://sizzlejs.com/\n *\n * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-16\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\tnodeType = context.nodeType;\n\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\tif ( !seed && documentIsHTML ) {\n\n\t\t// Try to shortcut find operations when possible (e.g., not under DocumentFragment)\n\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document (jQuery #6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType !== 1 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\tparent = doc.defaultView;\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent !== parent.top ) {\n\t\t// IE11 does not have attachEvent, so all must suffer\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Support tests\n\t---------------------------------------------------------------------- */\n\tdocumentIsHTML = !isXML( doc );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( doc.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\f]' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (oldCache = outerCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is no seed and only one group\n\tif ( match.length === 1 ) {\n\n\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"<a href='#'></a>\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"<input/>\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;\n\t});\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t}));\n};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tret = [],\n\t\t\tself = this,\n\t\t\tlen = self.length;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n});\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// Use the correct document accordingly with window argument (sandbox)\n\tdocument = window.document,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector.charAt(0) === \"<\" && selector.charAt( selector.length - 1 ) === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE and Opera return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id !== match[2] ) {\n\t\t\t\t\t\t\treturn rootjQuery.find( selector );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Otherwise, we inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn typeof rootjQuery.ready !== \"undefined\" ?\n\t\t\t\trootjQuery.ready( selector ) :\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\t// methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.extend({\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\tcur = elem[ dir ];\n\n\t\twhile ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {\n\t\t\tif ( cur.nodeType === 1 ) {\n\t\t\t\tmatched.push( cur );\n\t\t\t}\n\t\t\tcur = cur[dir];\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar r = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tr.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn r;\n\t}\n});\n\njQuery.fn.extend({\n\thas: function( target ) {\n\t\tvar i,\n\t\t\ttargets = jQuery( target, this ),\n\t\t\tlen = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within\n\t// the matched set of elements\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn jQuery.inArray( this[0], jQuery( elem ) );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn jQuery.inArray(\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[0] : elem, this );\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.unique(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\tdo {\n\t\tcur = cur[ dir ];\n\t} while ( cur && cur.nodeType !== 1 );\n\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn jQuery.nodeName( elem, \"iframe\" ) ?\n\t\t\telem.contentDocument || elem.contentWindow.document :\n\t\t\tjQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar ret = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tret = jQuery.filter( selector, ret );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tret = jQuery.unique( ret );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tret = ret.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\nvar rnotwhite = (/\\S+/g);\n\n\n\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\t\t// Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\n\t\t\t\t\t} else if ( !(--remaining) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend({\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\n\t\tif ( !document.body ) {\n\t\t\treturn setTimeout( jQuery.ready );\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n});\n\n/**\n * Clean-up method for dom ready events\n */\nfunction detach() {\n\tif ( document.addEventListener ) {\n\t\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\t\twindow.removeEventListener( \"load\", completed, false );\n\n\t} else {\n\t\tdocument.detachEvent( \"onreadystatechange\", completed );\n\t\twindow.detachEvent( \"onload\", completed );\n\t}\n}\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\t// readyState === \"complete\" is good enough for us to call the dom ready in oldIE\n\tif ( document.addEventListener || event.type === \"load\" || document.readyState === \"complete\" ) {\n\t\tdetach();\n\t\tjQuery.ready();\n\t}\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// we once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t// Standards-based browsers support DOMContentLoaded\n\t\t} else if ( document.addEventListener ) {\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\n\t\t// If IE event model is used\n\t\t} else {\n\t\t\t// Ensure firing before onload, maybe late but safe also for iframes\n\t\t\tdocument.attachEvent( \"onreadystatechange\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.attachEvent( \"onload\", completed );\n\n\t\t\t// If IE and not a frame\n\t\t\t// continually check to see if the document is ready\n\t\t\tvar top = false;\n\n\t\t\ttry {\n\t\t\t\ttop = window.frameElement == null && document.documentElement;\n\t\t\t} catch(e) {}\n\n\t\t\tif ( top && top.doScroll ) {\n\t\t\t\t(function doScrollCheck() {\n\t\t\t\t\tif ( !jQuery.isReady ) {\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Use the trick by Diego Perini\n\t\t\t\t\t\t\t// http://javascript.nwbox.com/IEContentLoaded/\n\t\t\t\t\t\t\ttop.doScroll(\"left\");\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treturn setTimeout( doScrollCheck, 50 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// detach all dom ready events\n\t\t\t\t\t\tdetach();\n\n\t\t\t\t\t\t// and execute any waiting functions\n\t\t\t\t\t\tjQuery.ready();\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t}\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n\nvar strundefined = typeof undefined;\n\n\n\n// Support: IE<9\n// Iteration over object's inherited properties before its own\nvar i;\nfor ( i in jQuery( support ) ) {\n\tbreak;\n}\nsupport.ownLast = i !== \"0\";\n\n// Note: most support tests are defined in their respective modules.\n// false until the test is run\nsupport.inlineBlockNeedsLayout = false;\n\n// Execute ASAP in case we need to set body.style.zoom\njQuery(function() {\n\t// Minified: var a,b,c,d\n\tvar val, div, body, container;\n\n\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\tif ( !body || !body.style ) {\n\t\t// Return for frameset docs that don't have a body\n\t\treturn;\n\t}\n\n\t// Setup\n\tdiv = document.createElement( \"div\" );\n\tcontainer = document.createElement( \"div\" );\n\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\tbody.appendChild( container ).appendChild( div );\n\n\tif ( typeof div.style.zoom !== strundefined ) {\n\t\t// Support: IE<8\n\t\t// Check if natively block-level elements act like inline-block\n\t\t// elements when setting their display to 'inline' and giving\n\t\t// them layout\n\t\tdiv.style.cssText = \"display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1\";\n\n\t\tsupport.inlineBlockNeedsLayout = val = div.offsetWidth === 3;\n\t\tif ( val ) {\n\t\t\t// Prevent IE 6 from affecting layout for positioned elements #11048\n\t\t\t// Prevent IE from shrinking the body in IE 7 mode #12869\n\t\t\t// Support: IE<8\n\t\t\tbody.style.zoom = 1;\n\t\t}\n\t}\n\n\tbody.removeChild( container );\n});\n\n\n\n\n(function() {\n\tvar div = document.createElement( \"div\" );\n\n\t// Execute the test only if not already executed in another module.\n\tif (support.deleteExpando == null) {\n\t\t// Support: IE<9\n\t\tsupport.deleteExpando = true;\n\t\ttry {\n\t\t\tdelete div.test;\n\t\t} catch( e ) {\n\t\t\tsupport.deleteExpando = false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n})();\n\n\n/**\n * Determines whether an object can have data\n */\njQuery.acceptData = function( elem ) {\n\tvar noData = jQuery.noData[ (elem.nodeName + \" \").toLowerCase() ],\n\t\tnodeType = +elem.nodeType || 1;\n\n\t// Do not set data on non-element DOM nodes because it will not be cleared (#8335).\n\treturn nodeType !== 1 && nodeType !== 9 ?\n\t\tfalse :\n\n\t\t// Nodes accept data unless otherwise specified; rejection can be conditional\n\t\t!noData || noData !== true && elem.getAttribute(\"classid\") === noData;\n};\n\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction dataAttr( elem, key, data ) {\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\n\t\tvar name = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tjQuery.data( elem, key, data );\n\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// checks a cache object for emptiness\nfunction isEmptyDataObject( obj ) {\n\tvar name;\n\tfor ( name in obj ) {\n\n\t\t// if the public data object is empty, the private is still empty\n\t\tif ( name === \"data\" && jQuery.isEmptyObject( obj[name] ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( name !== \"toJSON\" ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nfunction internalData( elem, name, data, pvt /* Internal Use Only */ ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar ret, thisCache,\n\t\tinternalKey = jQuery.expando,\n\n\t\t// We have to handle DOM nodes and JS objects differently because IE6-7\n\t\t// can't GC object references properly across the DOM-JS boundary\n\t\tisNode = elem.nodeType,\n\n\t\t// Only DOM nodes need the global jQuery cache; JS object data is\n\t\t// attached directly to the object so GC can occur automatically\n\t\tcache = isNode ? jQuery.cache : elem,\n\n\t\t// Only defining an ID for JS objects if its cache already exists allows\n\t\t// the code to shortcut on the same path as a DOM node with no cache\n\t\tid = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;\n\n\t// Avoid doing any more work than we need to when trying to get data on an\n\t// object that has no data at all\n\tif ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === \"string\" ) {\n\t\treturn;\n\t}\n\n\tif ( !id ) {\n\t\t// Only DOM nodes need a new unique ID for each element since their data\n\t\t// ends up in the global cache\n\t\tif ( isNode ) {\n\t\t\tid = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;\n\t\t} else {\n\t\t\tid = internalKey;\n\t\t}\n\t}\n\n\tif ( !cache[ id ] ) {\n\t\t// Avoid exposing jQuery metadata on plain JS objects when the object\n\t\t// is serialized using JSON.stringify\n\t\tcache[ id ] = isNode ? {} : { toJSON: jQuery.noop };\n\t}\n\n\t// An object can be passed to jQuery.data instead of a key/value pair; this gets\n\t// shallow copied over onto the existing cache\n\tif ( typeof name === \"object\" || typeof name === \"function\" ) {\n\t\tif ( pvt ) {\n\t\t\tcache[ id ] = jQuery.extend( cache[ id ], name );\n\t\t} else {\n\t\t\tcache[ id ].data = jQuery.extend( cache[ id ].data, name );\n\t\t}\n\t}\n\n\tthisCache = cache[ id ];\n\n\t// jQuery data() is stored in a separate object inside the object's internal data\n\t// cache in order to avoid key collisions between internal data and user-defined\n\t// data.\n\tif ( !pvt ) {\n\t\tif ( !thisCache.data ) {\n\t\t\tthisCache.data = {};\n\t\t}\n\n\t\tthisCache = thisCache.data;\n\t}\n\n\tif ( data !== undefined ) {\n\t\tthisCache[ jQuery.camelCase( name ) ] = data;\n\t}\n\n\t// Check for both converted-to-camel and non-converted data property names\n\t// If a data property was specified\n\tif ( typeof name === \"string\" ) {\n\n\t\t// First Try to find as-is property data\n\t\tret = thisCache[ name ];\n\n\t\t// Test for null|undefined property data\n\t\tif ( ret == null ) {\n\n\t\t\t// Try to find the camelCased property\n\t\t\tret = thisCache[ jQuery.camelCase( name ) ];\n\t\t}\n\t} else {\n\t\tret = thisCache;\n\t}\n\n\treturn ret;\n}\n\nfunction internalRemoveData( elem, name, pvt ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar thisCache, i,\n\t\tisNode = elem.nodeType,\n\n\t\t// See jQuery.data for more information\n\t\tcache = isNode ? jQuery.cache : elem,\n\t\tid = isNode ? elem[ jQuery.expando ] : jQuery.expando;\n\n\t// If there is already no cache entry for this object, there is no\n\t// purpose in continuing\n\tif ( !cache[ id ] ) {\n\t\treturn;\n\t}\n\n\tif ( name ) {\n\n\t\tthisCache = pvt ? cache[ id ] : cache[ id ].data;\n\n\t\tif ( thisCache ) {\n\n\t\t\t// Support array or space separated string names for data keys\n\t\t\tif ( !jQuery.isArray( name ) ) {\n\n\t\t\t\t// try the string as a key before any manipulation\n\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\tname = [ name ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// split the camel cased version by spaces unless a key with the spaces exists\n\t\t\t\t\tname = jQuery.camelCase( name );\n\t\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\t\tname = [ name ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tname = name.split(\" \");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = name.concat( jQuery.map( name, jQuery.camelCase ) );\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete thisCache[ name[i] ];\n\t\t\t}\n\n\t\t\t// If there is no data left in the cache, we want to continue\n\t\t\t// and let the cache object itself get destroyed\n\t\t\tif ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// See jQuery.data for more information\n\tif ( !pvt ) {\n\t\tdelete cache[ id ].data;\n\n\t\t// Don't destroy the parent cache unless the internal data object\n\t\t// had been the only thing left in it\n\t\tif ( !isEmptyDataObject( cache[ id ] ) ) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Destroy the cache\n\tif ( isNode ) {\n\t\tjQuery.cleanData( [ elem ], true );\n\n\t// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\t/* jshint eqeqeq: false */\n\t} else if ( support.deleteExpando || cache != cache.window ) {\n\t\t/* jshint eqeqeq: true */\n\t\tdelete cache[ id ];\n\n\t// When all else fails, null\n\t} else {\n\t\tcache[ id ] = null;\n\t}\n}\n\njQuery.extend({\n\tcache: {},\n\n\t// The following elements (space-suffixed to avoid Object.prototype collisions)\n\t// throw uncatchable exceptions if you attempt to set expando properties\n\tnoData: {\n\t\t\"applet \": true,\n\t\t\"embed \": true,\n\t\t// ...but Flash objects (which have this classid) *can* handle expandos\n\t\t\"object \": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n\t},\n\n\thasData: function( elem ) {\n\t\telem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];\n\t\treturn !!elem && !isEmptyDataObject( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name );\n\t},\n\n\t// For internal use only.\n\t_data: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data, true );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name, true );\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[0],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Special expections of .data basically thwart jQuery.access,\n\t\t// so implement the relevant behavior ourselves\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = jQuery.data( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !jQuery._data( elem, \"parsedAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tjQuery._data( elem, \"parsedAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tjQuery.data( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn arguments.length > 1 ?\n\n\t\t\t// Sets one value\n\t\t\tthis.each(function() {\n\t\t\t\tjQuery.data( this, key, value );\n\t\t\t}) :\n\n\t\t\t// Gets one value\n\t\t\t// Try to fetch any internally stored data first\n\t\t\telem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeData( this, key );\n\t\t});\n\t}\n});\n\n\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = jQuery._data( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray(data) ) {\n\t\t\t\t\tqueue = jQuery._data( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// not intended for public consumption - generates a queueHooks object, or returns the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn jQuery._data( elem, key ) || jQuery._data( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tjQuery._removeData( elem, type + \"queue\" );\n\t\t\t\tjQuery._removeData( elem, key );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = jQuery._data( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n\t};\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlength = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlength ? fn( elems[0], key ) : emptyGet;\n};\nvar rcheckableType = (/^(?:checkbox|radio)$/i);\n\n\n\n(function() {\n\t// Minified: var a,b,c\n\tvar input = document.createElement( \"input\" ),\n\t\tdiv = document.createElement( \"div\" ),\n\t\tfragment = document.createDocumentFragment();\n\n\t// Setup\n\tdiv.innerHTML = \" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>\";\n\n\t// IE strips leading whitespace when .innerHTML is used\n\tsupport.leadingWhitespace = div.firstChild.nodeType === 3;\n\n\t// Make sure that tbody elements aren't automatically inserted\n\t// IE will insert them into empty tables\n\tsupport.tbody = !div.getElementsByTagName( \"tbody\" ).length;\n\n\t// Make sure that link elements get serialized correctly by innerHTML\n\t// This requires a wrapper element in IE\n\tsupport.htmlSerialize = !!div.getElementsByTagName( \"link\" ).length;\n\n\t// Makes sure cloning an html5 element does not cause problems\n\t// Where outerHTML is undefined, this still works\n\tsupport.html5Clone =\n\t\tdocument.createElement( \"nav\" ).cloneNode( true ).outerHTML !== \"<:nav></:nav>\";\n\n\t// Check if a disconnected checkbox will retain its checked\n\t// value of true after appended to the DOM (IE6/7)\n\tinput.type = \"checkbox\";\n\tinput.checked = true;\n\tfragment.appendChild( input );\n\tsupport.appendChecked = input.checked;\n\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\t// Support: IE6-IE11+\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// #11217 - WebKit loses check when the name is after the checked attribute\n\tfragment.appendChild( div );\n\tdiv.innerHTML = \"<input type='radio' checked='checked' name='t'/>\";\n\n\t// Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3\n\t// old WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<9\n\t// Opera does not clone events (and typeof div.attachEvent === undefined).\n\t// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()\n\tsupport.noCloneEvent = true;\n\tif ( div.attachEvent ) {\n\t\tdiv.attachEvent( \"onclick\", function() {\n\t\t\tsupport.noCloneEvent = false;\n\t\t});\n\n\t\tdiv.cloneNode( true ).click();\n\t}\n\n\t// Execute the test only if not already executed in another module.\n\tif (support.deleteExpando == null) {\n\t\t// Support: IE<9\n\t\tsupport.deleteExpando = true;\n\t\ttry {\n\t\t\tdelete div.test;\n\t\t} catch( e ) {\n\t\t\tsupport.deleteExpando = false;\n\t\t}\n\t}\n})();\n\n\n(function() {\n\tvar i, eventName,\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event)\n\tfor ( i in { submit: true, change: true, focusin: true }) {\n\t\teventName = \"on\" + i;\n\n\t\tif ( !(support[ i + \"Bubbles\" ] = eventName in window) ) {\n\t\t\t// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n\t\t\tdiv.setAttribute( eventName, \"t\" );\n\t\t\tsupport[ i + \"Bubbles\" ] = div.attributes[ eventName ].expando === false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n})();\n\n\nvar rformElems = /^(?:input|select|textarea)$/i,\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\t\tvar tmp, events, t, handleObjIn,\n\t\t\tspecial, eventHandle, handleObj,\n\t\t\thandlers, type, namespaces, origType,\n\t\t\telemData = jQuery._data( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ?\n\t\t\t\t\tjQuery.event.dispatch.apply( eventHandle.elem, arguments ) :\n\t\t\t\t\tundefined;\n\t\t\t};\n\t\t\t// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events\n\t\t\teventHandle.elem = elem;\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener/attachEvent if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\t// Bind the global event handler to the element\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\n\t\t\t\t\t} else if ( elem.attachEvent ) {\n\t\t\t\t\t\telem.attachEvent( \"on\" + type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t\t// Nullify elem to prevent memory leaks in IE\n\t\telem = null;\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\t\tvar j, handleObj, tmp,\n\t\t\torigCount, t, events,\n\t\t\tspecial, handlers, type,\n\t\t\tnamespaces, origType,\n\t\t\telemData = jQuery.hasData( elem ) && jQuery._data( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\n\t\t\t// removeData also checks for emptiness and clears the expando if empty\n\t\t\t// so use it instead of delete\n\t\t\tjQuery._removeData( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\t\tvar handle, ontype, cur,\n\t\t\tbubbleType, special, tmp, i,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( jQuery._data( cur, \"events\" ) || {} )[ event.type ] && jQuery._data( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && jQuery.acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Can't use an .isFunction() check here because IE6/7 fails that test.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\ttry {\n\t\t\t\t\t\telem[ type ]();\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n\t\t\t\t\t\t// only reproducible on winXP IE8 native, not IE9 in IE8 mode\n\t\t\t\t\t}\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, ret, handleObj, matched, j,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( jQuery._data( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or\n\t\t\t\t// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar sel, handleObj, matches, i,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG <use> instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\t/* jshint eqeqeq: false */\n\t\t\tfor ( ; cur != this; cur = cur.parentNode || this ) {\n\t\t\t\t/* jshint eqeqeq: true */\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== \"click\") ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Fix target property (#1925)\n\t\tif ( !event.target ) {\n\t\t\tevent.target = originalEvent.srcElement || document;\n\t\t}\n\n\t\t// Support: Chrome 23+, Safari?\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)\n\t\tevent.metaKey = !!event.metaKey;\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar body, eventDoc, doc,\n\t\t\t\tbutton = original.button,\n\t\t\t\tfromElement = original.fromElement;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add relatedTarget, if necessary\n\t\t\tif ( !event.relatedTarget && fromElement ) {\n\t\t\t\tevent.relatedTarget = fromElement === event.target ? original.toElement : fromElement;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// If we error on focus to hidden element (#1486, #12518),\n\t\t\t\t\t\t// let .trigger() run the handlers\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( jQuery.nodeName( this, \"input\" ) && this.type === \"checkbox\" && this.click ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = document.removeEventListener ?\n\tfunction( elem, type, handle ) {\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle, false );\n\t\t}\n\t} :\n\tfunction( elem, type, handle ) {\n\t\tvar name = \"on\" + type;\n\n\t\tif ( elem.detachEvent ) {\n\n\t\t\t// #8545, #7054, preventing memory leaks for custom events in IE6-8\n\t\t\t// detachEvent needed property on element, by name of that event, to properly expose it to GC\n\t\t\tif ( typeof elem[ name ] === strundefined ) {\n\t\t\t\telem[ name ] = null;\n\t\t\t}\n\n\t\t\telem.detachEvent( name, handle );\n\t\t}\n\t};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\t\t\t\t// Support: IE < 9, Android < 4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If preventDefault exists, run it on the original event\n\t\tif ( e.preventDefault ) {\n\t\t\te.preventDefault();\n\n\t\t// Support: IE\n\t\t// Otherwise set the returnValue property of the original event to false\n\t\t} else {\n\t\t\te.returnValue = false;\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\t\t// If stopPropagation exists, run it on the original event\n\t\tif ( e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t// Support: IE\n\t\t// Set the cancelBubble property of the original event to true\n\t\te.cancelBubble = true;\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopImmediatePropagation ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// IE submit delegation\nif ( !support.submitBubbles ) {\n\n\tjQuery.event.special.submit = {\n\t\tsetup: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Lazy-add a submit handler when a descendant form may potentially be submitted\n\t\t\tjQuery.event.add( this, \"click._submit keypress._submit\", function( e ) {\n\t\t\t\t// Node name check avoids a VML-related crash in IE (#9807)\n\t\t\t\tvar elem = e.target,\n\t\t\t\t\tform = jQuery.nodeName( elem, \"input\" ) || jQuery.nodeName( elem, \"button\" ) ? elem.form : undefined;\n\t\t\t\tif ( form && !jQuery._data( form, \"submitBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( form, \"submit._submit\", function( event ) {\n\t\t\t\t\t\tevent._submit_bubble = true;\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( form, \"submitBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t\t// return undefined since we don't need an event listener\n\t\t},\n\n\t\tpostDispatch: function( event ) {\n\t\t\t// If form was submitted by the user, bubble the event up the tree\n\t\t\tif ( event._submit_bubble ) {\n\t\t\t\tdelete event._submit_bubble;\n\t\t\t\tif ( this.parentNode && !event.isTrigger ) {\n\t\t\t\t\tjQuery.event.simulate( \"submit\", this.parentNode, event, true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Remove delegated handlers; cleanData eventually reaps submit handlers attached above\n\t\t\tjQuery.event.remove( this, \"._submit\" );\n\t\t}\n\t};\n}\n\n// IE change delegation and checkbox/radio fix\nif ( !support.changeBubbles ) {\n\n\tjQuery.event.special.change = {\n\n\t\tsetup: function() {\n\n\t\t\tif ( rformElems.test( this.nodeName ) ) {\n\t\t\t\t// IE doesn't fire change on a check/radio until blur; trigger it on click\n\t\t\t\t// after a propertychange. Eat the blur-change in special.change.handle.\n\t\t\t\t// This still fires onchange a second time for check/radio after blur.\n\t\t\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t\t\tjQuery.event.add( this, \"propertychange._change\", function( event ) {\n\t\t\t\t\t\tif ( event.originalEvent.propertyName === \"checked\" ) {\n\t\t\t\t\t\t\tthis._just_changed = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery.event.add( this, \"click._change\", function( event ) {\n\t\t\t\t\t\tif ( this._just_changed && !event.isTrigger ) {\n\t\t\t\t\t\t\tthis._just_changed = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Allow triggered, simulated change events (#11500)\n\t\t\t\t\t\tjQuery.event.simulate( \"change\", this, event, true );\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Delegated event; lazy-add a change handler on descendant inputs\n\t\t\tjQuery.event.add( this, \"beforeactivate._change\", function( e ) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, \"changeBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( elem, \"change._change\", function( event ) {\n\t\t\t\t\t\tif ( this.parentNode && !event.isSimulated && !event.isTrigger ) {\n\t\t\t\t\t\t\tjQuery.event.simulate( \"change\", this.parentNode, event, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( elem, \"changeBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\thandle: function( event ) {\n\t\t\tvar elem = event.target;\n\n\t\t\t// Swallow native change events from checkbox/radio, we already triggered them above\n\t\t\tif ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== \"radio\" && elem.type !== \"checkbox\") ) {\n\t\t\t\treturn event.handleObj.handler.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tjQuery.event.remove( this, \"._change\" );\n\n\t\t\treturn !rformElems.test( this.nodeName );\n\t\t}\n\t};\n}\n\n// Create \"bubbling\" focus and blur events\nif ( !support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tjQuery._data( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tjQuery._removeData( doc, fix );\n\t\t\t\t} else {\n\t\t\t\t\tjQuery._data( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar type, origFn;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n});\n\n\nfunction createSafeFragment( document ) {\n\tvar list = nodeNames.split( \"|\" ),\n\t\tsafeFrag = document.createDocumentFragment();\n\n\tif ( safeFrag.createElement ) {\n\t\twhile ( list.length ) {\n\t\t\tsafeFrag.createElement(\n\t\t\t\tlist.pop()\n\t\t\t);\n\t\t}\n\t}\n\treturn safeFrag;\n}\n\nvar nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|\" +\n\t\t\"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",\n\trinlinejQuery = / jQuery\\d+=\"(?:null|\\d+)\"/g,\n\trnoshimcache = new RegExp(\"<(?:\" + nodeNames + \")[\\\\s/>]\", \"i\"),\n\trleadingWhitespace = /^\\s+/,\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trtbody = /<tbody/i,\n\trhtml = /<|&#?\\w+;/,\n\trnoInnerhtml = /<(?:script|style|link)/i,\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trscriptType = /^$|\\/(?:java|ecma)script/i,\n\trscriptTypeMasked = /^true\\/(.*)/,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\t\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\t\tlegend: [ 1, \"<fieldset>\", \"</fieldset>\" ],\n\t\tarea: [ 1, \"<map>\", \"</map>\" ],\n\t\tparam: [ 1, \"<object>\", \"</object>\" ],\n\t\tthead: [ 1, \"<table>\", \"</table>\" ],\n\t\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\t\tcol: [ 2, \"<table><tbody></tbody><colgroup>\", \"</colgroup></table>\" ],\n\t\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t\t// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n\t\t// unless wrapped in a div with non-breaking characters in front of it.\n\t\t_default: support.htmlSerialize ? [ 0, \"\", \"\" ] : [ 1, \"X<div>\", \"</div>\" ]\n\t},\n\tsafeFragment = createSafeFragment( document ),\n\tfragmentDiv = safeFragment.appendChild( document.createElement(\"div\") );\n\nwrapMap.optgroup = wrapMap.option;\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\nfunction getAll( context, tag ) {\n\tvar elems, elem,\n\t\ti = 0,\n\t\tfound = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\tundefined;\n\n\tif ( !found ) {\n\t\tfor ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !tag || jQuery.nodeName( elem, tag ) ) {\n\t\t\t\tfound.push( elem );\n\t\t\t} else {\n\t\t\t\tjQuery.merge( found, getAll( elem, tag ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], found ) :\n\t\tfound;\n}\n\n// Used in buildFragment, fixes the defaultChecked property\nfunction fixDefaultChecked( elem ) {\n\tif ( rcheckableType.test( elem.type ) ) {\n\t\telem.defaultChecked = elem.checked;\n\t}\n}\n\n// Support: IE<8\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = (jQuery.find.attr( elem, \"type\" ) !== null) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\tif ( match ) {\n\t\telem.type = match[1];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar elem,\n\t\ti = 0;\n\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\tjQuery._data( elem, \"globalEval\", !refElements || jQuery._data( refElements[i], \"globalEval\" ) );\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\n\tif ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {\n\t\treturn;\n\t}\n\n\tvar type, i, l,\n\t\toldData = jQuery._data( src ),\n\t\tcurData = jQuery._data( dest, oldData ),\n\t\tevents = oldData.events;\n\n\tif ( events ) {\n\t\tdelete curData.handle;\n\t\tcurData.events = {};\n\n\t\tfor ( type in events ) {\n\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t}\n\t\t}\n\t}\n\n\t// make the cloned public data object a copy from the original\n\tif ( curData.data ) {\n\t\tcurData.data = jQuery.extend( {}, curData.data );\n\t}\n}\n\nfunction fixCloneNodeIssues( src, dest ) {\n\tvar nodeName, e, data;\n\n\t// We do not need to do anything for non-Elements\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\tnodeName = dest.nodeName.toLowerCase();\n\n\t// IE6-8 copies events bound via attachEvent when using cloneNode.\n\tif ( !support.noCloneEvent && dest[ jQuery.expando ] ) {\n\t\tdata = jQuery._data( dest );\n\n\t\tfor ( e in data.events ) {\n\t\t\tjQuery.removeEvent( dest, e, data.handle );\n\t\t}\n\n\t\t// Event data gets referenced instead of copied if the expando gets copied too\n\t\tdest.removeAttribute( jQuery.expando );\n\t}\n\n\t// IE blanks contents when cloning scripts, and tries to evaluate newly-set text\n\tif ( nodeName === \"script\" && dest.text !== src.text ) {\n\t\tdisableScript( dest ).text = src.text;\n\t\trestoreScript( dest );\n\n\t// IE6-10 improperly clones children of object elements using classid.\n\t// IE10 throws NoModificationAllowedError if parent is null, #12132.\n\t} else if ( nodeName === \"object\" ) {\n\t\tif ( dest.parentNode ) {\n\t\t\tdest.outerHTML = src.outerHTML;\n\t\t}\n\n\t\t// This path appears unavoidable for IE9. When cloning an object\n\t\t// element in IE9, the outerHTML strategy above is not sufficient.\n\t\t// If the src has innerHTML and the destination does not,\n\t\t// copy the src.innerHTML into the dest.innerHTML. #10324\n\t\tif ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {\n\t\t\tdest.innerHTML = src.innerHTML;\n\t\t}\n\n\t} else if ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\t// IE6-8 fails to persist the checked state of a cloned checkbox\n\t\t// or radio button. Worse, IE6-7 fail to give the cloned element\n\t\t// a checked appearance if the defaultChecked value isn't also set\n\n\t\tdest.defaultChecked = dest.checked = src.checked;\n\n\t\t// IE6-7 get confused and end up setting the value of a cloned\n\t\t// checkbox/radio button to an empty string instead of \"on\"\n\t\tif ( dest.value !== src.value ) {\n\t\t\tdest.value = src.value;\n\t\t}\n\n\t// IE6-8 fails to return the selected option to the default selected\n\t// state when cloning options\n\t} else if ( nodeName === \"option\" ) {\n\t\tdest.defaultSelected = dest.selected = src.defaultSelected;\n\n\t// IE6-8 fails to set the defaultValue to the correct value when\n\t// cloning other types of input fields\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar destElements, node, clone, i, srcElements,\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\tif ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( \"<\" + elem.nodeName + \">\" ) ) {\n\t\t\tclone = elem.cloneNode( true );\n\n\t\t// IE<=8 does not properly clone detached, unknown element nodes\n\t\t} else {\n\t\t\tfragmentDiv.innerHTML = elem.outerHTML;\n\t\t\tfragmentDiv.removeChild( clone = fragmentDiv.firstChild );\n\t\t}\n\n\t\tif ( (!support.noCloneEvent || !support.noCloneChecked) &&\n\t\t\t\t(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\t// Fix all IE cloning issues\n\t\t\tfor ( i = 0; (node = srcElements[i]) != null; ++i ) {\n\t\t\t\t// Ensure that the destination node is not null; Fixes #9587\n\t\t\t\tif ( destElements[i] ) {\n\t\t\t\t\tfixCloneNodeIssues( node, destElements[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0; (node = srcElements[i]) != null; i++ ) {\n\t\t\t\t\tcloneCopyEvent( node, destElements[i] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\tdestElements = srcElements = node = null;\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar j, elem, contains,\n\t\t\ttmp, tag, tbody, wrap,\n\t\t\tl = elems.length,\n\n\t\t\t// Ensure a safe fragment\n\t\t\tsafe = createSafeFragment( context ),\n\n\t\t\tnodes = [],\n\t\t\ti = 0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || safe.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = (rtagName.exec( elem ) || [ \"\", \"\" ])[ 1 ].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\n\t\t\t\t\ttmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, \"<$1></$2>\" ) + wrap[2];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[0];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Manually add leading whitespace removed by IE\n\t\t\t\t\tif ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {\n\t\t\t\t\t\tnodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove IE's autoinserted <tbody> from table fragments\n\t\t\t\t\tif ( !support.tbody ) {\n\n\t\t\t\t\t\t// String was a <table>, *may* have spurious <tbody>\n\t\t\t\t\t\telem = tag === \"table\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\ttmp.firstChild :\n\n\t\t\t\t\t\t\t// String was a bare <thead> or <tfoot>\n\t\t\t\t\t\t\twrap[1] === \"<table>\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\t\ttmp :\n\t\t\t\t\t\t\t\t0;\n\n\t\t\t\t\t\tj = elem && elem.childNodes.length;\n\t\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\t\tif ( jQuery.nodeName( (tbody = elem.childNodes[j]), \"tbody\" ) && !tbody.childNodes.length ) {\n\t\t\t\t\t\t\t\telem.removeChild( tbody );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Fix #12392 for WebKit and IE > 9\n\t\t\t\t\ttmp.textContent = \"\";\n\n\t\t\t\t\t// Fix #12392 for oldIE\n\t\t\t\t\twhile ( tmp.firstChild ) {\n\t\t\t\t\t\ttmp.removeChild( tmp.firstChild );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remember the top-level container for proper cleanup\n\t\t\t\t\ttmp = safe.lastChild;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fix #11356: Clear elements from fragment\n\t\tif ( tmp ) {\n\t\t\tsafe.removeChild( tmp );\n\t\t}\n\n\t\t// Reset defaultChecked for any radios and checkboxes\n\t\t// about to be appended to the DOM in IE 6/7 (#8060)\n\t\tif ( !support.appendChecked ) {\n\t\t\tjQuery.grep( getAll( nodes, \"input\" ), fixDefaultChecked );\n\t\t}\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( safe.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttmp = null;\n\n\t\treturn safe;\n\t},\n\n\tcleanData: function( elems, /* internal */ acceptData ) {\n\t\tvar elem, type, id, data,\n\t\t\ti = 0,\n\t\t\tinternalKey = jQuery.expando,\n\t\t\tcache = jQuery.cache,\n\t\t\tdeleteExpando = support.deleteExpando,\n\t\t\tspecial = jQuery.event.special;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( acceptData || jQuery.acceptData( elem ) ) {\n\n\t\t\t\tid = elem[ internalKey ];\n\t\t\t\tdata = id && cache[ id ];\n\n\t\t\t\tif ( data ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove cache only if it was not already removed by jQuery.event.remove\n\t\t\t\t\tif ( cache[ id ] ) {\n\n\t\t\t\t\t\tdelete cache[ id ];\n\n\t\t\t\t\t\t// IE does not allow us to delete expando properties from nodes,\n\t\t\t\t\t\t// nor does it have a removeAttribute function on Document nodes;\n\t\t\t\t\t\t// we must handle all of these cases\n\t\t\t\t\t\tif ( deleteExpando ) {\n\t\t\t\t\t\t\tdelete elem[ internalKey ];\n\n\t\t\t\t\t\t} else if ( typeof elem.removeAttribute !== strundefined ) {\n\t\t\t\t\t\t\telem.removeAttribute( internalKey );\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem[ internalKey ] = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdeletedIds.push( id );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\tremove: function( selector, keepData /* Internal Use Only */ ) {\n\t\tvar elem,\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t}\n\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t}\n\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t}\n\n\t\t\t// Remove any remaining nodes\n\t\t\twhile ( elem.firstChild ) {\n\t\t\t\telem.removeChild( elem.firstChild );\n\t\t\t}\n\n\t\t\t// If this is a select, ensure that it displays empty (#12336)\n\t\t\t// Support: IE<9\n\t\t\tif ( elem.options && jQuery.nodeName( elem, \"select\" ) ) {\n\t\t\t\telem.options.length = 0;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map(function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\treturn elem.nodeType === 1 ?\n\t\t\t\t\telem.innerHTML.replace( rinlinejQuery, \"\" ) :\n\t\t\t\t\tundefined;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t( support.htmlSerialize || !rnoshimcache.test( value ) ) &&\n\t\t\t\t( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&\n\t\t\t\t!wrapMap[ (rtagName.exec( value ) || [ \"\", \"\" ])[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1></$2>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor (; i < l; i++ ) {\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\telem = this[i] || {};\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar arg = arguments[ 0 ];\n\n\t\t// Make the changes, replacing each context element with the new content\n\t\tthis.domManip( arguments, function( elem ) {\n\t\t\targ = this.parentNode;\n\n\t\t\tjQuery.cleanData( getAll( this ) );\n\n\t\t\tif ( arg ) {\n\t\t\t\targ.replaceChild( elem, this );\n\t\t\t}\n\t\t});\n\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\n\t\treturn arg && (arg.length || arg.nodeType) ? this : this.remove();\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, callback ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = concat.apply( [], args );\n\n\t\tvar first, node, hasScripts,\n\t\t\tscripts, doc, fragment,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[0],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction ||\n\t\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[0] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, callback );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( this[i], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!jQuery._data( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( ( node.text || node.textContent || node.innerHTML || \"\" ).replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fix #11809: Avoid leaking memory\n\t\t\t\tfragment = first = null;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\ti = 0,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone(true);\n\t\t\tjQuery( insert[i] )[ original ]( elems );\n\n\t\t\t// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\n\nvar iframe,\n\telemdisplay = {};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar style,\n\t\telem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\t// getDefaultComputedStyle might be reliably used only on attached element\n\t\tdisplay = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?\n\n\t\t\t// Use of this method is a temporary fix (more like optmization) until something better comes along,\n\t\t\t// since it was removed from specification and supported only in FF\n\t\t\tstyle.display : jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = (iframe || jQuery( \"<iframe frameborder='0' width='0' height='0'/>\" )).appendTo( doc.documentElement );\n\n\t\t\t// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse\n\t\t\tdoc = ( iframe[ 0 ].contentWindow || iframe[ 0 ].contentDocument ).document;\n\n\t\t\t// Support: IE\n\t\t\tdoc.write();\n\t\t\tdoc.close();\n\n\t\t\tdisplay = actualDisplay( nodeName, doc );\n\t\t\tiframe.detach();\n\t\t}\n\n\t\t// Store the correct default display\n\t\telemdisplay[ nodeName ] = display;\n\t}\n\n\treturn display;\n}\n\n\n(function() {\n\tvar shrinkWrapBlocksVal;\n\n\tsupport.shrinkWrapBlocks = function() {\n\t\tif ( shrinkWrapBlocksVal != null ) {\n\t\t\treturn shrinkWrapBlocksVal;\n\t\t}\n\n\t\t// Will be changed later if needed.\n\t\tshrinkWrapBlocksVal = false;\n\n\t\t// Minified: var b,c,d\n\t\tvar div, body, container;\n\n\t\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\t\tif ( !body || !body.style ) {\n\t\t\t// Test fired too early or in an unsupported environment, exit.\n\t\t\treturn;\n\t\t}\n\n\t\t// Setup\n\t\tdiv = document.createElement( \"div\" );\n\t\tcontainer = document.createElement( \"div\" );\n\t\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\t\tbody.appendChild( container ).appendChild( div );\n\n\t\t// Support: IE6\n\t\t// Check if elements with layout shrink-wrap their children\n\t\tif ( typeof div.style.zoom !== strundefined ) {\n\t\t\t// Reset CSS: box-sizing; display; margin; border\n\t\t\tdiv.style.cssText =\n\t\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t\t// Vendor-prefix box-sizing\n\t\t\t\t\"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;\" +\n\t\t\t\t\"box-sizing:content-box;display:block;margin:0;border:0;\" +\n\t\t\t\t\"padding:1px;width:1px;zoom:1\";\n\t\t\tdiv.appendChild( document.createElement( \"div\" ) ).style.width = \"5px\";\n\t\t\tshrinkWrapBlocksVal = div.offsetWidth !== 3;\n\t\t}\n\n\t\tbody.removeChild( container );\n\n\t\treturn shrinkWrapBlocksVal;\n\t};\n\n})();\nvar rmargin = (/^margin/);\n\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\n\n\nvar getStyles, curCSS,\n\trposition = /^(top|right|bottom|left)$/;\n\nif ( window.getComputedStyle ) {\n\tgetStyles = function( elem ) {\n\t\t// Support: IE<=11+, Firefox<=30+ (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tif ( elem.ownerDocument.defaultView.opener ) {\n\t\t\treturn elem.ownerDocument.defaultView.getComputedStyle( elem, null );\n\t\t}\n\n\t\treturn window.getComputedStyle( elem, null );\n\t};\n\n\tcurCSS = function( elem, name, computed ) {\n\t\tvar width, minWidth, maxWidth, ret,\n\t\t\tstyle = elem.style;\n\n\t\tcomputed = computed || getStyles( elem );\n\n\t\t// getPropertyValue is only needed for .css('filter') in IE9, see #12537\n\t\tret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;\n\n\t\tif ( computed ) {\n\n\t\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\tret = jQuery.style( elem, name );\n\t\t\t}\n\n\t\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t\t// Chrome < 17 and Safari 5.0 uses \"computed value\" instead of \"used value\" for margin-right\n\t\t\t// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels\n\t\t\t// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values\n\t\t\tif ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {\n\n\t\t\t\t// Remember the original values\n\t\t\t\twidth = style.width;\n\t\t\t\tminWidth = style.minWidth;\n\t\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t\t// Put in the new values to get a computed value out\n\t\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\t\tret = computed.width;\n\n\t\t\t\t// Revert the changed values\n\t\t\t\tstyle.width = width;\n\t\t\t\tstyle.minWidth = minWidth;\n\t\t\t\tstyle.maxWidth = maxWidth;\n\t\t\t}\n\t\t}\n\n\t\t// Support: IE\n\t\t// IE returns zIndex value as an integer.\n\t\treturn ret === undefined ?\n\t\t\tret :\n\t\t\tret + \"\";\n\t};\n} else if ( document.documentElement.currentStyle ) {\n\tgetStyles = function( elem ) {\n\t\treturn elem.currentStyle;\n\t};\n\n\tcurCSS = function( elem, name, computed ) {\n\t\tvar left, rs, rsLeft, ret,\n\t\t\tstyle = elem.style;\n\n\t\tcomputed = computed || getStyles( elem );\n\t\tret = computed ? computed[ name ] : undefined;\n\n\t\t// Avoid setting ret to empty string here\n\t\t// so we don't default to auto\n\t\tif ( ret == null && style && style[ name ] ) {\n\t\t\tret = style[ name ];\n\t\t}\n\n\t\t// From the awesome hack by Dean Edwards\n\t\t// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n\n\t\t// If we're not dealing with a regular pixel number\n\t\t// but a number that has a weird ending, we need to convert it to pixels\n\t\t// but not position css attributes, as those are proportional to the parent element instead\n\t\t// and we can't measure the parent instead because it might trigger a \"stacking dolls\" problem\n\t\tif ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\tleft = style.left;\n\t\t\trs = elem.runtimeStyle;\n\t\t\trsLeft = rs && rs.left;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = elem.currentStyle.left;\n\t\t\t}\n\t\t\tstyle.left = name === \"fontSize\" ? \"1em\" : ret;\n\t\t\tret = style.pixelLeft + \"px\";\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.left = left;\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = rsLeft;\n\t\t\t}\n\t\t}\n\n\t\t// Support: IE\n\t\t// IE returns zIndex value as an integer.\n\t\treturn ret === undefined ?\n\t\t\tret :\n\t\t\tret + \"\" || \"auto\";\n\t};\n}\n\n\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tvar condition = conditionFn();\n\n\t\t\tif ( condition == null ) {\n\t\t\t\t// The test was not ready at this point; screw the hook this time\n\t\t\t\t// but check again when needed next time.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( condition ) {\n\t\t\t\t// Hook not needed (or it's not possible to use it due to missing dependency),\n\t\t\t\t// remove it.\n\t\t\t\t// Since there are no other hooks for marginRight, remove the whole object.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\n\t\t\treturn (this.get = hookFn).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\n(function() {\n\t// Minified: var b,c,d,e,f,g, h,i\n\tvar div, style, a, pixelPositionVal, boxSizingReliableVal,\n\t\treliableHiddenOffsetsVal, reliableMarginRightVal;\n\n\t// Setup\n\tdiv = document.createElement( \"div\" );\n\tdiv.innerHTML = \" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>\";\n\ta = div.getElementsByTagName( \"a\" )[ 0 ];\n\tstyle = a && a.style;\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !style ) {\n\t\treturn;\n\t}\n\n\tstyle.cssText = \"float:left;opacity:.5\";\n\n\t// Support: IE<9\n\t// Make sure that element opacity exists (as opposed to filter)\n\tsupport.opacity = style.opacity === \"0.5\";\n\n\t// Verify style float existence\n\t// (IE uses styleFloat instead of cssFloat)\n\tsupport.cssFloat = !!style.cssFloat;\n\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\t// Support: Firefox<29, Android 2.3\n\t// Vendor-prefix box-sizing\n\tsupport.boxSizing = style.boxSizing === \"\" || style.MozBoxSizing === \"\" ||\n\t\tstyle.WebkitBoxSizing === \"\";\n\n\tjQuery.extend(support, {\n\t\treliableHiddenOffsets: function() {\n\t\t\tif ( reliableHiddenOffsetsVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn reliableHiddenOffsetsVal;\n\t\t},\n\n\t\tboxSizingReliable: function() {\n\t\t\tif ( boxSizingReliableVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\n\t\tpixelPosition: function() {\n\t\t\tif ( pixelPositionVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn pixelPositionVal;\n\t\t},\n\n\t\t// Support: Android 2.3\n\t\treliableMarginRight: function() {\n\t\t\tif ( reliableMarginRightVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn reliableMarginRightVal;\n\t\t}\n\t});\n\n\tfunction computeStyleTests() {\n\t\t// Minified: var b,c,d,j\n\t\tvar div, body, container, contents;\n\n\t\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\t\tif ( !body || !body.style ) {\n\t\t\t// Test fired too early or in an unsupported environment, exit.\n\t\t\treturn;\n\t\t}\n\n\t\t// Setup\n\t\tdiv = document.createElement( \"div\" );\n\t\tcontainer = document.createElement( \"div\" );\n\t\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\t\tbody.appendChild( container ).appendChild( div );\n\n\t\tdiv.style.cssText =\n\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t// Vendor-prefix box-sizing\n\t\t\t\"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;\" +\n\t\t\t\"box-sizing:border-box;display:block;margin-top:1%;top:1%;\" +\n\t\t\t\"border:1px;padding:1px;width:4px;position:absolute\";\n\n\t\t// Support: IE<9\n\t\t// Assume reasonable values in the absence of getComputedStyle\n\t\tpixelPositionVal = boxSizingReliableVal = false;\n\t\treliableMarginRightVal = true;\n\n\t\t// Check for getComputedStyle so that this code is not run in IE<9.\n\t\tif ( window.getComputedStyle ) {\n\t\t\tpixelPositionVal = ( window.getComputedStyle( div, null ) || {} ).top !== \"1%\";\n\t\t\tboxSizingReliableVal =\n\t\t\t\t( window.getComputedStyle( div, null ) || { width: \"4px\" } ).width === \"4px\";\n\n\t\t\t// Support: Android 2.3\n\t\t\t// Div with explicit width and no margin-right incorrectly\n\t\t\t// gets computed margin-right based on width of container (#3333)\n\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\tcontents = div.appendChild( document.createElement( \"div\" ) );\n\n\t\t\t// Reset CSS: box-sizing; display; margin; border; padding\n\t\t\tcontents.style.cssText = div.style.cssText =\n\t\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t\t// Vendor-prefix box-sizing\n\t\t\t\t\"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;\" +\n\t\t\t\t\"box-sizing:content-box;display:block;margin:0;border:0;padding:0\";\n\t\t\tcontents.style.marginRight = contents.style.width = \"0\";\n\t\t\tdiv.style.width = \"1px\";\n\n\t\t\treliableMarginRightVal =\n\t\t\t\t!parseFloat( ( window.getComputedStyle( contents, null ) || {} ).marginRight );\n\n\t\t\tdiv.removeChild( contents );\n\t\t}\n\n\t\t// Support: IE8\n\t\t// Check if table cells still have offsetWidth/Height when they are set\n\t\t// to display:none and there are still other visible table cells in a\n\t\t// table row; if so, offsetWidth/Height are not reliable for use when\n\t\t// determining if an element has been hidden directly using\n\t\t// display:none (it is still safe to use offsets if a parent element is\n\t\t// hidden; don safety goggles and see bug #4512 for more information).\n\t\tdiv.innerHTML = \"<table><tr><td></td><td>t</td></tr></table>\";\n\t\tcontents = div.getElementsByTagName( \"td\" );\n\t\tcontents[ 0 ].style.cssText = \"margin:0;border:0;padding:0;display:none\";\n\t\treliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;\n\t\tif ( reliableHiddenOffsetsVal ) {\n\t\t\tcontents[ 0 ].style.display = \"\";\n\t\t\tcontents[ 1 ].style.display = \"none\";\n\t\t\treliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;\n\t\t}\n\n\t\tbody.removeChild( container );\n\t}\n\n})();\n\n\n// A method for quickly swapping in/out CSS properties to get correct calculations.\njQuery.swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar\n\t\tralpha = /alpha\\([^)]*\\)/i,\n\tropacity = /opacity\\s*=\\s*([^)]*)/,\n\n\t// swappable if display is none or starts with table except \"table\", \"table-cell\", or \"table-caption\"\n\t// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trnumsplit = new RegExp( \"^(\" + pnum + \")(.*)$\", \"i\" ),\n\trrelNum = new RegExp( \"^([+-])=(\" + pnum + \")\", \"i\" ),\n\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t},\n\n\tcssPrefixes = [ \"Webkit\", \"O\", \"Moz\", \"ms\" ];\n\n\n// return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( style, name ) {\n\n\t// shortcut for names that are not vendor prefixed\n\tif ( name in style ) {\n\t\treturn name;\n\t}\n\n\t// check for vendor prefixed names\n\tvar capName = name.charAt(0).toUpperCase() + name.slice(1),\n\t\torigName = name,\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in style ) {\n\t\t\treturn name;\n\t\t}\n\t}\n\n\treturn origName;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem, hidden,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\" );\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\t\t\t// Reset the inline display of this element to learn if it is\n\t\t\t// being hidden by cascaded rules or not\n\t\t\tif ( !values[ index ] && display === \"none\" ) {\n\t\t\t\telem.style.display = \"\";\n\t\t\t}\n\n\t\t\t// Set elements which have been overridden with display: none\n\t\t\t// in a stylesheet to whatever the default browser style is\n\t\t\t// for such an element\n\t\t\tif ( elem.style.display === \"\" && isHidden( elem ) ) {\n\t\t\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\", defaultDisplay(elem.nodeName) );\n\t\t\t}\n\t\t} else {\n\t\t\thidden = isHidden( elem );\n\n\t\t\tif ( display && display !== \"none\" || !hidden ) {\n\t\t\t\tjQuery._data( elem, \"olddisplay\", hidden ? display : jQuery.css( elem, \"display\" ) );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of most of the elements in a second loop\n\t// to avoid the constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( !show || elem.style.display === \"none\" || elem.style.display === \"\" ) {\n\t\t\telem.style.display = show ? values[ index ] || \"\" : \"none\";\n\t\t}\n\t}\n\n\treturn elements;\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\tvar matches = rnumsplit.exec( value );\n\treturn matches ?\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\n\tvar i = extra === ( isBorderBox ? \"border\" : \"content\" ) ?\n\t\t// If we already have the right measurement, avoid augmentation\n\t\t4 :\n\t\t// Otherwise initialize for horizontal or vertical properties\n\t\tname === \"width\" ? 1 : 0,\n\n\t\tval = 0;\n\n\tfor ( ; i < 4; i += 2 ) {\n\t\t// both box models exclude margin, so add it if we want it\n\t\tif ( extra === \"margin\" ) {\n\t\t\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\tif ( isBorderBox ) {\n\t\t\t// border-box includes padding, so remove it if we want content\n\t\t\tif ( extra === \"content\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// at this point, extra isn't border nor margin, so remove border\n\t\t\tif ( extra !== \"margin\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t} else {\n\t\t\t// at this point, extra isn't content, so add padding\n\t\t\tval += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// at this point, extra isn't content nor padding, so add border\n\t\t\tif ( extra !== \"padding\" ) {\n\t\t\t\tval += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn val;\n}\n\nfunction getWidthOrHeight( elem, name, extra ) {\n\n\t// Start with offset property, which is equivalent to the border-box value\n\tvar valueIsBorderBox = true,\n\t\tval = name === \"width\" ? elem.offsetWidth : elem.offsetHeight,\n\t\tstyles = getStyles( elem ),\n\t\tisBorderBox = support.boxSizing && jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t// some non-html elements return undefined for offsetWidth, so check for null/undefined\n\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\tif ( val <= 0 || val == null ) {\n\t\t// Fall back to computed then uncomputed css if necessary\n\t\tval = curCSS( elem, name, styles );\n\t\tif ( val < 0 || val == null ) {\n\t\t\tval = elem.style[ name ];\n\t\t}\n\n\t\t// Computed unit is not pixels. Stop here and return.\n\t\tif ( rnumnonpx.test(val) ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// we need the check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = isBorderBox && ( support.boxSizingReliable() || val === elem.style[ name ] );\n\n\t\t// Normalize \"\", auto, and prepare for extra\n\t\tval = parseFloat( val ) || 0;\n\t}\n\n\t// use the active box-sizing model to add/subtract irrelevant styles\n\treturn ( val +\n\t\taugmentWidthOrHeight(\n\t\t\telem,\n\t\t\tname,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend({\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {\n\t\t// normalize float css property\n\t\t\"float\": support.cssFloat ? \"cssFloat\" : \"styleFloat\"\n\t},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = jQuery.camelCase( name ),\n\t\t\tstyle = elem.style;\n\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// convert relative number strings (+= or -=) to relative numbers. #7345\n\t\t\tif ( type === \"string\" && (ret = rrelNum.exec( value )) ) {\n\t\t\t\tvalue = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set. See: #7116\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add 'px' to the (except for certain CSS properties)\n\t\t\tif ( type === \"number\" && !jQuery.cssNumber[ origName ] ) {\n\t\t\t\tvalue += \"px\";\n\t\t\t}\n\n\t\t\t// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,\n\t\t\t// but it would mean to define eight (for every problematic property) identical functions\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !(\"set\" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {\n\n\t\t\t\t// Support: IE\n\t\t\t\t// Swallow errors from 'invalid' CSS values (#5509)\n\t\t\t\ttry {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t} else {\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar num, val, hooks,\n\t\t\torigName = jQuery.camelCase( name );\n\n\t\t// Make sure that we're working with the right name\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t//convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Return, converting to number if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || jQuery.isNumeric( num ) ? num || 0 : val;\n\t\t}\n\t\treturn val;\n\t}\n});\n\njQuery.each([ \"height\", \"width\" ], function( i, name ) {\n\tjQuery.cssHooks[ name ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\t\t\t\t// certain elements can have dimension info if we invisibly show them\n\t\t\t\t// however, it must have a current display style that would benefit from this\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) && elem.offsetWidth === 0 ?\n\t\t\t\t\tjQuery.swap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, name, extra );\n\t\t\t\t\t}) :\n\t\t\t\t\tgetWidthOrHeight( elem, name, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar styles = extra && getStyles( elem );\n\t\t\treturn setPositiveNumber( elem, value, extra ?\n\t\t\t\taugmentWidthOrHeight(\n\t\t\t\t\telem,\n\t\t\t\t\tname,\n\t\t\t\t\textra,\n\t\t\t\t\tsupport.boxSizing && jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\t\tstyles\n\t\t\t\t) : 0\n\t\t\t);\n\t\t}\n\t};\n});\n\nif ( !support.opacity ) {\n\tjQuery.cssHooks.opacity = {\n\t\tget: function( elem, computed ) {\n\t\t\t// IE uses filters for opacity\n\t\t\treturn ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || \"\" ) ?\n\t\t\t\t( 0.01 * parseFloat( RegExp.$1 ) ) + \"\" :\n\t\t\t\tcomputed ? \"1\" : \"\";\n\t\t},\n\n\t\tset: function( elem, value ) {\n\t\t\tvar style = elem.style,\n\t\t\t\tcurrentStyle = elem.currentStyle,\n\t\t\t\topacity = jQuery.isNumeric( value ) ? \"alpha(opacity=\" + value * 100 + \")\" : \"\",\n\t\t\t\tfilter = currentStyle && currentStyle.filter || style.filter || \"\";\n\n\t\t\t// IE has trouble with opacity if it does not have layout\n\t\t\t// Force it by setting the zoom level\n\t\t\tstyle.zoom = 1;\n\n\t\t\t// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652\n\t\t\t// if value === \"\", then remove inline opacity #12685\n\t\t\tif ( ( value >= 1 || value === \"\" ) &&\n\t\t\t\t\tjQuery.trim( filter.replace( ralpha, \"\" ) ) === \"\" &&\n\t\t\t\t\tstyle.removeAttribute ) {\n\n\t\t\t\t// Setting style.filter to null, \"\" & \" \" still leave \"filter:\" in the cssText\n\t\t\t\t// if \"filter:\" is present at all, clearType is disabled, we want to avoid this\n\t\t\t\t// style.removeAttribute is IE Only, but so apparently is this code path...\n\t\t\t\tstyle.removeAttribute( \"filter\" );\n\n\t\t\t\t// if there is no filter style applied in a css rule or unset inline opacity, we are done\n\t\t\t\tif ( value === \"\" || currentStyle && !currentStyle.filter ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// otherwise, set new filter values\n\t\t\tstyle.filter = ralpha.test( filter ) ?\n\t\t\t\tfilter.replace( ralpha, opacity ) :\n\t\t\t\tfilter + \" \" + opacity;\n\t\t}\n\t};\n}\n\njQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\t// Work around by temporarily setting element display to inline-block\n\t\t\treturn jQuery.swap( elem, { \"display\": \"inline-block\" },\n\t\t\t\tcurCSS, [ elem, \"marginRight\" ] );\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each({\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split(\" \") : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( !rmargin.test( prefix ) ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n});\n\njQuery.fn.extend({\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( jQuery.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t},\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( isHidden( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t});\n\t}\n});\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || \"swing\";\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\tif ( tween.elem[ tween.prop ] != null &&\n\t\t\t\t(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails\n\t\t\t// so, simple values such as \"10px\" are parsed to Float.\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\t\t\t// use step hook for back compat - use cssHook if its there - use .style if its\n\t\t\t// available and use plain properties where available\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9\n// Panic based approach to setting things on disconnected nodes\n\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t}\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back Compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, timerId,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trfxnum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" ),\n\trrun = /queueHooks$/,\n\tanimationPrefilters = [ defaultPrefilter ],\n\ttweeners = {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value ),\n\t\t\t\ttarget = tween.cur(),\n\t\t\t\tparts = rfxnum.exec( value ),\n\t\t\t\tunit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t\t\t// Starting value computation is required for potential unit mismatches\n\t\t\t\tstart = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +target ) &&\n\t\t\t\t\trfxnum.exec( jQuery.css( tween.elem, prop ) ),\n\t\t\t\tscale = 1,\n\t\t\t\tmaxIterations = 20;\n\n\t\t\tif ( start && start[ 3 ] !== unit ) {\n\t\t\t\t// Trust units reported by jQuery.css\n\t\t\t\tunit = unit || start[ 3 ];\n\n\t\t\t\t// Make sure we update the tween properties later on\n\t\t\t\tparts = parts || [];\n\n\t\t\t\t// Iteratively approximate from a nonzero starting point\n\t\t\t\tstart = +target || 1;\n\n\t\t\t\tdo {\n\t\t\t\t\t// If previous iteration zeroed out, double until we get *something*\n\t\t\t\t\t// Use a string for doubling factor so we don't accidentally see scale as unchanged below\n\t\t\t\t\tscale = scale || \".5\";\n\n\t\t\t\t\t// Adjust and apply\n\t\t\t\t\tstart = start / scale;\n\t\t\t\t\tjQuery.style( tween.elem, prop, start + unit );\n\n\t\t\t\t// Update scale, tolerating zero or NaN from tween.cur()\n\t\t\t\t// And breaking the loop if scale is unchanged or perfect, or if we've just had enough\n\t\t\t\t} while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );\n\t\t\t}\n\n\t\t\t// Update tween properties\n\t\t\tif ( parts ) {\n\t\t\t\tstart = tween.start = +start || +target || 0;\n\t\t\t\ttween.unit = unit;\n\t\t\t\t// If a +=/-= token was provided, we're doing a relative animation\n\t\t\t\ttween.end = parts[ 1 ] ?\n\t\t\t\t\tstart + ( parts[ 1 ] + 1 ) * parts[ 2 ] :\n\t\t\t\t\t+parts[ 2 ];\n\t\t\t}\n\n\t\t\treturn tween;\n\t\t} ]\n\t};\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\tsetTimeout(function() {\n\t\tfxNow = undefined;\n\t});\n\treturn ( fxNow = jQuery.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\tattrs = { height: type },\n\t\ti = 0;\n\n\t// if we include width, step value is 1 to do all cssExpand values,\n\t// if we don't include width, step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4 ; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( tweeners[ prop ] || [] ).concat( tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( (tween = collection[ index ].call( animation, prop, value )) ) {\n\n\t\t\t// we're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\t/* jshint validthis: true */\n\tvar prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHidden( elem ),\n\t\tdataShow = jQuery._data( elem, \"fxshow\" );\n\n\t// handle queue: false promises\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always(function() {\n\t\t\t// doing this makes sure that the complete handler will be called\n\t\t\t// before this completes\n\t\t\tanim.always(function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t// height/width overflow pass\n\tif ( elem.nodeType === 1 && ( \"height\" in props || \"width\" in props ) ) {\n\t\t// Make sure that nothing sneaks out\n\t\t// Record all 3 overflow attributes because IE does not\n\t\t// change the overflow attribute when overflowX and\n\t\t// overflowY are set to the same value\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Set display property to inline-block for height/width\n\t\t// animations on inline elements that are having width/height animated\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\n\t\t// Test default display if display is currently \"none\"\n\t\tcheckDisplay = display === \"none\" ?\n\t\t\tjQuery._data( elem, \"olddisplay\" ) || defaultDisplay( elem.nodeName ) : display;\n\n\t\tif ( checkDisplay === \"inline\" && jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t// inline-level elements accept inline-block;\n\t\t\t// block-level elements need to be inline with layout\n\t\t\tif ( !support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === \"inline\" ) {\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t} else {\n\t\t\t\tstyle.zoom = 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tif ( !support.shrinkWrapBlocks() ) {\n\t\t\tanim.always(function() {\n\t\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t\t});\n\t\t}\n\t}\n\n\t// show/hide pass\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.exec( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\n\t\t// Any non-fx value stops us from restoring the original display value\n\t\t} else {\n\t\t\tdisplay = undefined;\n\t\t}\n\t}\n\n\tif ( !jQuery.isEmptyObject( orig ) ) {\n\t\tif ( dataShow ) {\n\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\thidden = dataShow.hidden;\n\t\t\t}\n\t\t} else {\n\t\t\tdataShow = jQuery._data( elem, \"fxshow\", {} );\n\t\t}\n\n\t\t// store state if its toggle - enables .stop().toggle() to \"reverse\"\n\t\tif ( toggle ) {\n\t\t\tdataShow.hidden = !hidden;\n\t\t}\n\t\tif ( hidden ) {\n\t\t\tjQuery( elem ).show();\n\t\t} else {\n\t\t\tanim.done(function() {\n\t\t\t\tjQuery( elem ).hide();\n\t\t\t});\n\t\t}\n\t\tanim.done(function() {\n\t\t\tvar prop;\n\t\t\tjQuery._removeData( elem, \"fxshow\" );\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t}\n\t\t});\n\t\tfor ( prop in orig ) {\n\t\t\ttween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\n\t\t\tif ( !( prop in dataShow ) ) {\n\t\t\t\tdataShow[ prop ] = tween.start;\n\t\t\t\tif ( hidden ) {\n\t\t\t\t\ttween.end = tween.start;\n\t\t\t\t\ttween.start = prop === \"width\" || prop === \"height\" ? 1 : 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t// If this is a noop like .hide().hide(), restore an overwritten display value\n\t} else if ( (display === \"none\" ? defaultDisplay( elem.nodeName ) : display) === \"inline\" ) {\n\t\tstyle.display = display;\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = jQuery.camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( jQuery.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// not quite $.extend, this wont overwrite keys already present.\n\t\t\t// also - reusing 'index' from above because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = animationPrefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\t\t\t// don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t}),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\t\t\t\t// archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ]);\n\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t} else {\n\t\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tanimation = deferred.promise({\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, { specialEasing: {} }, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\t\t\t\t\t// if we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// resolve when we played the last frame\n\t\t\t\t// otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length ; index++ ) {\n\t\tresult = animationPrefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( jQuery.isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t})\n\t);\n\n\t// attach callbacks from options\n\treturn animation.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\ttweener: function( props, callback ) {\n\t\tif ( jQuery.isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.split(\" \");\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length ; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\ttweeners[ prop ] = tweeners[ prop ] || [];\n\t\t\ttweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tanimationPrefilters.unshift( callback );\n\t\t} else {\n\t\t\tanimationPrefilters.push( callback );\n\t\t}\n\t}\n});\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tjQuery.isFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !jQuery.isFunction( easing ) && easing\n\t};\n\n\topt.duration = jQuery.fx.off ? 0 : typeof opt.duration === \"number\" ? opt.duration :\n\t\topt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;\n\n\t// normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( jQuery.isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend({\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHidden ).css( \"opacity\", 0 ).show()\n\n\t\t\t// animate to the value specified\n\t\t\t.end().animate({ opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || jQuery._data( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = jQuery._data( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// start the next in the queue if the last step wasn't forced\n\t\t\t// timers currently will call their complete callbacks, which will dequeue\n\t\t\t// but only if they were gotoEnd\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t});\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tvar index,\n\t\t\t\tdata = jQuery._data( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t});\n\t}\n});\n\njQuery.each([ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n});\n\n// Generate shortcuts for custom animations\njQuery.each({\n\tslideDown: genFx(\"show\"),\n\tslideUp: genFx(\"hide\"),\n\tslideToggle: genFx(\"toggle\"),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n});\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ttimers = jQuery.timers,\n\t\ti = 0;\n\n\tfxNow = jQuery.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\t\t// Checks the timer has not already been removed\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tif ( timer() ) {\n\t\tjQuery.fx.start();\n\t} else {\n\t\tjQuery.timers.pop();\n\t}\n};\n\njQuery.fx.interval = 13;\n\njQuery.fx.start = function() {\n\tif ( !timerId ) {\n\t\ttimerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );\n\t}\n};\n\njQuery.fx.stop = function() {\n\tclearInterval( timerId );\n\ttimerId = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\tclearTimeout( timeout );\n\t\t};\n\t});\n};\n\n\n(function() {\n\t// Minified: var a,b,c,d,e\n\tvar input, div, select, a, opt;\n\n\t// Setup\n\tdiv = document.createElement( \"div\" );\n\tdiv.setAttribute( \"className\", \"t\" );\n\tdiv.innerHTML = \" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>\";\n\ta = div.getElementsByTagName(\"a\")[ 0 ];\n\n\t// First batch of tests.\n\tselect = document.createElement(\"select\");\n\topt = select.appendChild( document.createElement(\"option\") );\n\tinput = div.getElementsByTagName(\"input\")[ 0 ];\n\n\ta.style.cssText = \"top:1px\";\n\n\t// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)\n\tsupport.getSetAttribute = div.className !== \"t\";\n\n\t// Get the style information from getAttribute\n\t// (IE uses .cssText instead)\n\tsupport.style = /top/.test( a.getAttribute(\"style\") );\n\n\t// Make sure that URLs aren't manipulated\n\t// (IE normalizes it by default)\n\tsupport.hrefNormalized = a.getAttribute(\"href\") === \"/a\";\n\n\t// Check the default checkbox/radio value (\"\" on WebKit; \"on\" elsewhere)\n\tsupport.checkOn = !!input.value;\n\n\t// Make sure that a selected-by-default option has a working selected property.\n\t// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)\n\tsupport.optSelected = opt.selected;\n\n\t// Tests for enctype support on a form (#6743)\n\tsupport.enctype = !!document.createElement(\"form\").enctype;\n\n\t// Make sure that the options inside disabled selects aren't marked as disabled\n\t// (WebKit marks them as disabled)\n\tselect.disabled = true;\n\tsupport.optDisabled = !opt.disabled;\n\n\t// Support: IE8 only\n\t// Check if we can trust getAttribute(\"value\")\n\tinput = document.createElement( \"input\" );\n\tinput.setAttribute( \"value\", \"\" );\n\tsupport.input = input.getAttribute( \"value\" ) === \"\";\n\n\t// Check if an input maintains its value after becoming a radio\n\tinput.value = \"t\";\n\tinput.setAttribute( \"type\", \"radio\" );\n\tsupport.radioValue = input.value === \"t\";\n})();\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend({\n\tval: function( value ) {\n\t\tvar hooks, ret, isFunction,\n\t\t\telem = this[0];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, \"value\" )) !== undefined ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\treturn typeof ret === \"string\" ?\n\t\t\t\t\t// handle most common string cases\n\t\t\t\t\tret.replace(rreturn, \"\") :\n\t\t\t\t\t// handle cases where value is null/undef or number\n\t\t\t\t\tret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each(function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t});\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !(\"set\" in hooks) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\t\t\t\t\t// Support: IE10-11+\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\tjQuery.trim( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\" || index < 0,\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length,\n\t\t\t\t\ti = index < 0 ?\n\t\t\t\t\t\tmax :\n\t\t\t\t\t\tone ? index : 0;\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// oldIE doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t( support.optDisabled ? !option.disabled : option.getAttribute(\"disabled\") === null ) &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\tif ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) >= 0 ) {\n\n\t\t\t\t\t\t// Support: IE6\n\t\t\t\t\t\t// When new option element is added to select box we need to\n\t\t\t\t\t\t// force reflow of newly added node in order to workaround delay\n\t\t\t\t\t\t// of initialization properties\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\toption.selected = optionSet = true;\n\n\t\t\t\t\t\t} catch ( _ ) {\n\n\t\t\t\t\t\t\t// Will be executed only in IE6\n\t\t\t\t\t\t\toption.scrollHeight;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\toption.selected = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\n\t\t\t\treturn options;\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Radios and checkboxes getter/setter\njQuery.each([ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\t// Support: Webkit\n\t\t\t// \"\" is returned instead of \"on\" if a value isn't specified\n\t\t\treturn elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n\t\t};\n\t}\n});\n\n\n\n\nvar nodeHook, boolHook,\n\tattrHandle = jQuery.expr.attrHandle,\n\truseDefault = /^(?:checked|selected)$/i,\n\tgetSetAttribute = support.getSetAttribute,\n\tgetSetInput = support.input;\n\njQuery.fn.extend({\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tattr: function( elem, name, value ) {\n\t\tvar hooks, ret,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set attributes on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === strundefined ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// All attributes are lowercase\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\tname = name.toLowerCase();\n\t\t\thooks = jQuery.attrHooks[ name ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\n\t\t\t} else if ( hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {\n\t\t\t\treturn ret;\n\n\t\t\t} else {\n\t\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else if ( hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ) {\n\t\t\treturn ret;\n\n\t\t} else {\n\t\t\tret = jQuery.find.attr( elem, name );\n\n\t\t\t// Non-existent attributes return null, we normalize to undefined\n\t\t\treturn ret == null ?\n\t\t\t\tundefined :\n\t\t\t\tret;\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name, propName,\n\t\t\ti = 0,\n\t\t\tattrNames = value && value.match( rnotwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( (name = attrNames[i++]) ) {\n\t\t\t\tpropName = jQuery.propFix[ name ] || name;\n\n\t\t\t\t// Boolean attributes get special treatment (#10870)\n\t\t\t\tif ( jQuery.expr.match.bool.test( name ) ) {\n\t\t\t\t\t// Set corresponding property to false\n\t\t\t\t\tif ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {\n\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t// Also clear defaultChecked/defaultSelected (if appropriate)\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] =\n\t\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t}\n\n\t\t\t\t// See #9699 for explanation of this approach (setting first, then removal)\n\t\t\t\t} else {\n\t\t\t\t\tjQuery.attr( elem, name, \"\" );\n\t\t\t\t}\n\n\t\t\t\telem.removeAttribute( getSetAttribute ? name : propName );\n\t\t\t}\n\t\t}\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" && jQuery.nodeName(elem, \"input\") ) {\n\t\t\t\t\t// Setting the type on a radio button after the value resets the value in IE6-9\n\t\t\t\t\t// Reset value to default in case type is set after value during creation\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Hook for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {\n\t\t\t// IE<8 needs the *property* name\n\t\t\telem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );\n\n\t\t// Use defaultChecked and defaultSelected for oldIE\n\t\t} else {\n\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] = elem[ name ] = true;\n\t\t}\n\n\t\treturn name;\n\t}\n};\n\n// Retrieve booleans specially\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ?\n\t\tfunction( elem, name, isXML ) {\n\t\t\tvar ret, handle;\n\t\t\tif ( !isXML ) {\n\t\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\t\thandle = attrHandle[ name ];\n\t\t\t\tattrHandle[ name ] = ret;\n\t\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\t\tname.toLowerCase() :\n\t\t\t\t\tnull;\n\t\t\t\tattrHandle[ name ] = handle;\n\t\t\t}\n\t\t\treturn ret;\n\t\t} :\n\t\tfunction( elem, name, isXML ) {\n\t\t\tif ( !isXML ) {\n\t\t\t\treturn elem[ jQuery.camelCase( \"default-\" + name ) ] ?\n\t\t\t\t\tname.toLowerCase() :\n\t\t\t\t\tnull;\n\t\t\t}\n\t\t};\n});\n\n// fix oldIE attroperties\nif ( !getSetInput || !getSetAttribute ) {\n\tjQuery.attrHooks.value = {\n\t\tset: function( elem, value, name ) {\n\t\t\tif ( jQuery.nodeName( elem, \"input\" ) ) {\n\t\t\t\t// Does not return so that setAttribute is also used\n\t\t\t\telem.defaultValue = value;\n\t\t\t} else {\n\t\t\t\t// Use nodeHook if defined (#1954); otherwise setAttribute is fine\n\t\t\t\treturn nodeHook && nodeHook.set( elem, value, name );\n\t\t\t}\n\t\t}\n\t};\n}\n\n// IE6/7 do not support getting/setting some attributes with get/setAttribute\nif ( !getSetAttribute ) {\n\n\t// Use this for any attribute in IE6/7\n\t// This fixes almost every IE6/7 issue\n\tnodeHook = {\n\t\tset: function( elem, value, name ) {\n\t\t\t// Set the existing or create a new attribute node\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\tif ( !ret ) {\n\t\t\t\telem.setAttributeNode(\n\t\t\t\t\t(ret = elem.ownerDocument.createAttribute( name ))\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tret.value = value += \"\";\n\n\t\t\t// Break association with cloned elements by also using setAttribute (#9646)\n\t\t\tif ( name === \"value\" || value === elem.getAttribute( name ) ) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t};\n\n\t// Some attributes are constructed with empty-string values when not defined\n\tattrHandle.id = attrHandle.name = attrHandle.coords =\n\t\tfunction( elem, name, isXML ) {\n\t\t\tvar ret;\n\t\t\tif ( !isXML ) {\n\t\t\t\treturn (ret = elem.getAttributeNode( name )) && ret.value !== \"\" ?\n\t\t\t\t\tret.value :\n\t\t\t\t\tnull;\n\t\t\t}\n\t\t};\n\n\t// Fixing value retrieval on a button requires this module\n\tjQuery.valHooks.button = {\n\t\tget: function( elem, name ) {\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\tif ( ret && ret.specified ) {\n\t\t\t\treturn ret.value;\n\t\t\t}\n\t\t},\n\t\tset: nodeHook.set\n\t};\n\n\t// Set contenteditable to false on removals(#10429)\n\t// Setting to empty string throws an error as an invalid value\n\tjQuery.attrHooks.contenteditable = {\n\t\tset: function( elem, value, name ) {\n\t\t\tnodeHook.set( elem, value === \"\" ? false : value, name );\n\t\t}\n\t};\n\n\t// Set width and height to auto instead of 0 on empty string( Bug #8150 )\n\t// This is for removals\n\tjQuery.each([ \"width\", \"height\" ], function( i, name ) {\n\t\tjQuery.attrHooks[ name ] = {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\telem.setAttribute( name, \"auto\" );\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\nif ( !support.style ) {\n\tjQuery.attrHooks.style = {\n\t\tget: function( elem ) {\n\t\t\t// Return undefined in the case of empty string\n\t\t\t// Note: IE uppercases css property names, but if we were to .toLowerCase()\n\t\t\t// .cssText, that would destroy case senstitivity in URL's, like in \"background\"\n\t\t\treturn elem.style.cssText || undefined;\n\t\t},\n\t\tset: function( elem, value ) {\n\t\t\treturn ( elem.style.cssText = value + \"\" );\n\t\t}\n\t};\n}\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button|object)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend({\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\tname = jQuery.propFix[ name ] || name;\n\t\treturn this.each(function() {\n\t\t\t// try/catch handles cases where IE balks (such as removing a property on window)\n\t\t\ttry {\n\t\t\t\tthis[ name ] = undefined;\n\t\t\t\tdelete this[ name ];\n\t\t\t} catch( e ) {}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t},\n\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks, notxml,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set properties on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnotxml = nType !== 1 || !jQuery.isXMLDoc( elem );\n\n\t\tif ( notxml ) {\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\treturn hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?\n\t\t\t\tret :\n\t\t\t\t( elem[ name ] = value );\n\n\t\t} else {\n\t\t\treturn hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ?\n\t\t\t\tret :\n\t\t\t\telem[ name ];\n\t\t}\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\t\t\t\t// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set\n\t\t\t\t// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\treturn tabindex ?\n\t\t\t\t\tparseInt( tabindex, 10 ) :\n\t\t\t\t\trfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\t-1;\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Some attributes require a special call on IE\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !support.hrefNormalized ) {\n\t// href/src property should get the full normalized URL (#10299/#12915)\n\tjQuery.each([ \"href\", \"src\" ], function( i, name ) {\n\t\tjQuery.propHooks[ name ] = {\n\t\t\tget: function( elem ) {\n\t\t\t\treturn elem.getAttribute( name, 4 );\n\t\t\t}\n\t\t};\n\t});\n}\n\n// Support: Safari, IE9+\n// mis-reports the default selected property of an option\n// Accessing the parent's selectedIndex property fixes it\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\t// Make sure that it also works with optgroups, see #5701\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t};\n}\n\njQuery.each([\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n});\n\n// IE6/7 call enctype encoding\nif ( !support.enctype ) {\n\tjQuery.propFix.enctype = \"encoding\";\n}\n\n\n\n\nvar rclass = /[\\t\\r\\n\\f]/g;\n\njQuery.fn.extend({\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j, finalValue,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\n\t\tif ( proceed ) {\n\t\t\t// The disjunction here is for better compressibility (see removeClass)\n\t\t\tclasses = ( value || \"\" ).match( rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\" \"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = jQuery.trim( cur );\n\t\t\t\t\tif ( elem.className !== finalValue ) {\n\t\t\t\t\t\telem.className = finalValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j, finalValue,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = arguments.length === 0 || typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\t\tif ( proceed ) {\n\t\t\tclasses = ( value || \"\" ).match( rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\"\"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) >= 0 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = value ? jQuery.trim( cur ) : \"\";\n\t\t\t\t\tif ( elem.className !== finalValue ) {\n\t\t\t\t\t\telem.className = finalValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value;\n\n\t\tif ( typeof stateVal === \"boolean\" && type === \"string\" ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( i ) {\n\t\t\t\tjQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( type === \"string\" ) {\n\t\t\t\t// toggle individual class names\n\t\t\t\tvar className,\n\t\t\t\t\ti = 0,\n\t\t\t\t\tself = jQuery( this ),\n\t\t\t\t\tclassNames = value.match( rnotwhite ) || [];\n\n\t\t\t\twhile ( (className = classNames[ i++ ]) ) {\n\t\t\t\t\t// check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( type === strundefined || type === \"boolean\" ) {\n\t\t\t\tif ( this.className ) {\n\t\t\t\t\t// store className if set\n\t\t\t\t\tjQuery._data( this, \"__className__\", this.className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed \"false\",\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tthis.className = this.className || value === false ? \"\" : jQuery._data( this, \"__className__\" ) || \"\";\n\t\t\t}\n\t\t});\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className = \" \" + selector + \" \",\n\t\t\ti = 0,\n\t\t\tl = this.length;\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tif ( this[i].nodeType === 1 && (\" \" + this[i].className + \" \").replace(rclass, \" \").indexOf( className ) >= 0 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n});\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\njQuery.each( (\"blur focus focusin focusout load resize scroll unload click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup error contextmenu\").split(\" \"), function( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n});\n\njQuery.fn.extend({\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t},\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ? this.off( selector, \"**\" ) : this.off( types, selector || \"**\", fn );\n\t}\n});\n\n\nvar nonce = jQuery.now();\n\nvar rquery = (/\\?/);\n\n\n\nvar rvalidtokens = /(,)|(\\[|{)|(}|])|\"(?:[^\"\\\\\\r\\n]|\\\\[\"\\\\\\/bfnrt]|\\\\u[\\da-fA-F]{4})*\"\\s*:?|true|false|null|-?(?!0\\d)\\d+(?:\\.\\d+|)(?:[eE][+-]?\\d+|)/g;\n\njQuery.parseJSON = function( data ) {\n\t// Attempt to parse using the native JSON parser first\n\tif ( window.JSON && window.JSON.parse ) {\n\t\t// Support: Android 2.3\n\t\t// Workaround failure to string-cast null input\n\t\treturn window.JSON.parse( data + \"\" );\n\t}\n\n\tvar requireNonComma,\n\t\tdepth = null,\n\t\tstr = jQuery.trim( data + \"\" );\n\n\t// Guard against invalid (and possibly dangerous) input by ensuring that nothing remains\n\t// after removing valid tokens\n\treturn str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) {\n\n\t\t// Force termination if we see a misplaced comma\n\t\tif ( requireNonComma && comma ) {\n\t\t\tdepth = 0;\n\t\t}\n\n\t\t// Perform no more replacements after returning to outermost depth\n\t\tif ( depth === 0 ) {\n\t\t\treturn token;\n\t\t}\n\n\t\t// Commas must not follow \"[\", \"{\", or \",\"\n\t\trequireNonComma = open || comma;\n\n\t\t// Determine new depth\n\t\t// array/object open (\"[\" or \"{\"): depth += true - false (increment)\n\t\t// array/object close (\"]\" or \"}\"): depth += false - true (decrement)\n\t\t// other cases (\",\" or primitive): depth += true - true (numeric cast)\n\t\tdepth += !close - !open;\n\n\t\t// Remove this token\n\t\treturn \"\";\n\t}) ) ?\n\t\t( Function( \"return \" + str ) )() :\n\t\tjQuery.error( \"Invalid JSON: \" + data );\n};\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, tmp;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\ttry {\n\t\tif ( window.DOMParser ) { // Standard\n\t\t\ttmp = new DOMParser();\n\t\t\txml = tmp.parseFromString( data, \"text/xml\" );\n\t\t} else { // IE\n\t\t\txml = new ActiveXObject( \"Microsoft.XMLDOM\" );\n\t\t\txml.async = \"false\";\n\t\t\txml.loadXML( data );\n\t\t}\n\t} catch( e ) {\n\t\txml = undefined;\n\t}\n\tif ( !xml || !xml.documentElement || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\t// Document location\n\tajaxLocParts,\n\tajaxLocation,\n\n\trhash = /#.*$/,\n\trts = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)\\r?$/mg, // IE leaves an \\r character at EOL\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\trurl = /^([\\w.+-]+:)(?:\\/\\/(?:[^\\/?#]*@|)([^\\/?#:]*)(?::(\\d+)|)|)/,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat(\"*\");\n\n// #8138, IE may throw an exception when accessing\n// a field from window.location if document.domain has been set\ntry {\n\tajaxLocation = location.href;\n} catch( e ) {\n\t// Use the href attribute of an A element\n\t// since IE will modify it given document.location\n\tajaxLocation = document.createElement( \"a\" );\n\tajaxLocation.href = \"\";\n\tajaxLocation = ajaxLocation.href;\n}\n\n// Segment location into parts\najaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];\n\n\t\tif ( jQuery.isFunction( func ) ) {\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( (dataType = dataTypes[i++]) ) {\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType.charAt( 0 ) === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t(structure[ dataType ] = structure[ dataType ] || []).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t(structure[ dataType ] = structure[ dataType ] || []).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t});\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar deep, key,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\tvar firstDataType, ct, finalDataType, type,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[0] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s[ \"throws\" ] ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn { state: \"parsererror\", error: conv ? e : \"No conversion from \" + prev + \" to \" + current };\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend({\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: ajaxLocation,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /xml/,\n\t\t\thtml: /html/,\n\t\t\tjson: /json/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": jQuery.parseJSON,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar // Cross-domain detection vars\n\t\t\tparts,\n\t\t\t// Loop variable\n\t\t\ti,\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\t\t\t// Response headers as string\n\t\t\tresponseHeadersString,\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\ttransport,\n\t\t\t// Response headers\n\t\t\tresponseHeaders,\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks(\"once memory\"),\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\t\t\t// The jqXHR state\n\t\t\tstate = 0,\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( state === 2 ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( (match = rheaders.exec( responseHeadersString )) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[1].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn state === 2 ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tvar lname = name.toLowerCase();\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\tname = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\t// Lazy-add the new callback in a way that preserves old ones\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR ).complete = completeDeferred.add;\n\t\tjqXHR.success = jqXHR.done;\n\t\tjqXHR.error = jqXHR.fail;\n\n\t\t// Remove hash character (#7531: and string promotion)\n\t\t// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || ajaxLocation ) + \"\" ).replace( rhash, \"\" ).replace( rprotocol, ajaxLocParts[ 1 ] + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = jQuery.trim( s.dataType || \"*\" ).toLowerCase().match( rnotwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when we have a protocol:host:port mismatch\n\t\tif ( s.crossDomain == null ) {\n\t\t\tparts = rurl.exec( s.url.toLowerCase() );\n\t\t\ts.crossDomain = !!( parts &&\n\t\t\t\t( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||\n\t\t\t\t\t( parts[ 3 ] || ( parts[ 1 ] === \"http:\" ? \"80\" : \"443\" ) ) !==\n\t\t\t\t\t\t( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === \"http:\" ? \"80\" : \"443\" ) ) )\n\t\t\t);\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( state === 2 ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger(\"ajaxStart\");\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\tcacheURL = s.url;\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// If data is available, append data to url\n\t\t\tif ( s.data ) {\n\t\t\t\tcacheURL = ( s.url += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data );\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add anti-cache in url if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\ts.url = rts.test( cacheURL ) ?\n\n\t\t\t\t\t// If there is already a '_' parameter, set its value\n\t\t\t\t\tcacheURL.replace( rts, \"$1_=\" + nonce++ ) :\n\n\t\t\t\t\t// Otherwise add one to the end\n\t\t\t\t\tcacheURL + ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + nonce++;\n\t\t\t}\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tfor ( i in { success: 1, error: 1, complete: 1 } ) {\n\t\t\tjqXHR[ i ]( s[ i ] );\n\t\t}\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = setTimeout(function() {\n\t\t\t\t\tjqXHR.abort(\"timeout\");\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tstate = 1;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\t\t\t\t// Propagate exception as error if not done\n\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\tdone( -1, e );\n\t\t\t\t// Simply rethrow otherwise\n\t\t\t\t} else {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Called once\n\t\t\tif ( state === 2 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// State is \"done\" now\n\t\t\tstate = 2;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\tclearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"Last-Modified\");\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"etag\");\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// We extract error from statusText\n\t\t\t\t// then normalize statusText and status for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger(\"ajaxStop\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n});\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\t\t// shift arguments if data argument was omitted\n\t\tif ( jQuery.isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\treturn jQuery.ajax({\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t});\n\t};\n});\n\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tasync: false,\n\t\tglobal: false,\n\t\t\"throws\": true\n\t});\n};\n\n\njQuery.fn.extend({\n\twrapAll: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapAll( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\tif ( this[0] ) {\n\t\t\t// The elements to wrap the target around\n\t\t\tvar wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);\n\n\t\t\tif ( this[0].parentNode ) {\n\t\t\t\twrap.insertBefore( this[0] );\n\t\t\t}\n\n\t\t\twrap.map(function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstChild && elem.firstChild.nodeType === 1 ) {\n\t\t\t\t\telem = elem.firstChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t}).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapInner( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t});\n\t},\n\n\twrap: function( html ) {\n\t\tvar isFunction = jQuery.isFunction( html );\n\n\t\treturn this.each(function(i) {\n\t\t\tjQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );\n\t\t});\n\t},\n\n\tunwrap: function() {\n\t\treturn this.parent().each(function() {\n\t\t\tif ( !jQuery.nodeName( this, \"body\" ) ) {\n\t\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t\t}\n\t\t}).end();\n\t}\n});\n\n\njQuery.expr.filters.hidden = function( elem ) {\n\t// Support: Opera <= 12.12\n\t// Opera reports offsetWidths and offsetHeights less than zero on some elements\n\treturn elem.offsetWidth <= 0 && elem.offsetHeight <= 0 ||\n\t\t(!support.reliableHiddenOffsets() &&\n\t\t\t((elem.style && elem.style.display) || jQuery.css( elem, \"display\" )) === \"none\");\n};\n\njQuery.expr.filters.visible = function( elem ) {\n\treturn !jQuery.expr.filters.hidden( elem );\n};\n\n\n\n\nvar r20 = /%20/g,\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( jQuery.isArray( obj ) ) {\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams( prefix + \"[\" + ( typeof v === \"object\" ? i : \"\" ) + \"]\", v, traditional, add );\n\t\t\t}\n\t\t});\n\n\t} else if ( !traditional && jQuery.type( obj ) === \"object\" ) {\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, value ) {\n\t\t\t// If value is a function, invoke it and return its value\n\t\t\tvalue = jQuery.isFunction( value ) ? value() : ( value == null ? \"\" : value );\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" + encodeURIComponent( value );\n\t\t};\n\n\t// Set traditional to true for jQuery <= 1.3.2 behavior.\n\tif ( traditional === undefined ) {\n\t\ttraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t});\n\n\t} else {\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" ).replace( r20, \"+\" );\n};\n\njQuery.fn.extend({\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map(function() {\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t})\n\t\t.filter(function() {\n\t\t\tvar type = this.type;\n\t\t\t// Use .is(\":disabled\") so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t})\n\t\t.map(function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\treturn val == null ?\n\t\t\t\tnull :\n\t\t\t\tjQuery.isArray( val ) ?\n\t\t\t\t\tjQuery.map( val, function( val ) {\n\t\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t\t}) :\n\t\t\t\t\t{ name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t}).get();\n\t}\n});\n\n\n// Create the request object\n// (This is still attached to ajaxSettings for backward compatibility)\njQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ?\n\t// Support: IE6+\n\tfunction() {\n\n\t\t// XHR cannot access local files, always use ActiveX for that case\n\t\treturn !this.isLocal &&\n\n\t\t\t// Support: IE7-8\n\t\t\t// oldIE XHR does not support non-RFC2616 methods (#13240)\n\t\t\t// See http://msdn.microsoft.com/en-us/library/ie/ms536648(v=vs.85).aspx\n\t\t\t// and http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9\n\t\t\t// Although this check for six methods instead of eight\n\t\t\t// since IE also does not support \"trace\" and \"connect\"\n\t\t\t/^(get|post|head|put|delete|options)$/i.test( this.type ) &&\n\n\t\t\tcreateStandardXHR() || createActiveXHR();\n\t} :\n\t// For all other browsers, use the standard XMLHttpRequest object\n\tcreateStandardXHR;\n\nvar xhrId = 0,\n\txhrCallbacks = {},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\n// Support: IE<10\n// Open requests must be manually aborted on unload (#5280)\n// See https://support.microsoft.com/kb/2856746 for more info\nif ( window.attachEvent ) {\n\twindow.attachEvent( \"onunload\", function() {\n\t\tfor ( var key in xhrCallbacks ) {\n\t\t\txhrCallbacks[ key ]( undefined, true );\n\t\t}\n\t});\n}\n\n// Determine support properties\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nxhrSupported = support.ajax = !!xhrSupported;\n\n// Create transport if the browser can provide an xhr\nif ( xhrSupported ) {\n\n\tjQuery.ajaxTransport(function( options ) {\n\t\t// Cross domain only allowed if supported through XMLHttpRequest\n\t\tif ( !options.crossDomain || support.cors ) {\n\n\t\t\tvar callback;\n\n\t\t\treturn {\n\t\t\t\tsend: function( headers, complete ) {\n\t\t\t\t\tvar i,\n\t\t\t\t\t\txhr = options.xhr(),\n\t\t\t\t\t\tid = ++xhrId;\n\n\t\t\t\t\t// Open the socket\n\t\t\t\t\txhr.open( options.type, options.url, options.async, options.username, options.password );\n\n\t\t\t\t\t// Apply custom fields if provided\n\t\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Override mime type if needed\n\t\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t\t}\n\n\t\t\t\t\t// X-Requested-With header\n\t\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\t\tif ( !options.crossDomain && !headers[\"X-Requested-With\"] ) {\n\t\t\t\t\t\theaders[\"X-Requested-With\"] = \"XMLHttpRequest\";\n\t\t\t\t\t}\n\n\t\t\t\t\t// Set headers\n\t\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// IE's ActiveXObject throws a 'Type Mismatch' exception when setting\n\t\t\t\t\t\t// request header to a null-value.\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// To keep consistent with other XHR implementations, cast the value\n\t\t\t\t\t\t// to string and ignore `undefined`.\n\t\t\t\t\t\tif ( headers[ i ] !== undefined ) {\n\t\t\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] + \"\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Do send the request\n\t\t\t\t\t// This may raise an exception which is actually\n\t\t\t\t\t// handled in jQuery.ajax (so no try/catch here)\n\t\t\t\t\txhr.send( ( options.hasContent && options.data ) || null );\n\n\t\t\t\t\t// Listener\n\t\t\t\t\tcallback = function( _, isAbort ) {\n\t\t\t\t\t\tvar status, statusText, responses;\n\n\t\t\t\t\t\t// Was never called and is aborted or complete\n\t\t\t\t\t\tif ( callback && ( isAbort || xhr.readyState === 4 ) ) {\n\t\t\t\t\t\t\t// Clean up\n\t\t\t\t\t\t\tdelete xhrCallbacks[ id ];\n\t\t\t\t\t\t\tcallback = undefined;\n\t\t\t\t\t\t\txhr.onreadystatechange = jQuery.noop;\n\n\t\t\t\t\t\t\t// Abort manually if needed\n\t\t\t\t\t\t\tif ( isAbort ) {\n\t\t\t\t\t\t\t\tif ( xhr.readyState !== 4 ) {\n\t\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tresponses = {};\n\t\t\t\t\t\t\t\tstatus = xhr.status;\n\n\t\t\t\t\t\t\t\t// Support: IE<10\n\t\t\t\t\t\t\t\t// Accessing binary-data responseText throws an exception\n\t\t\t\t\t\t\t\t// (#11426)\n\t\t\t\t\t\t\t\tif ( typeof xhr.responseText === \"string\" ) {\n\t\t\t\t\t\t\t\t\tresponses.text = xhr.responseText;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Firefox throws an exception when accessing\n\t\t\t\t\t\t\t\t// statusText for faulty cross-domain requests\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tstatusText = xhr.statusText;\n\t\t\t\t\t\t\t\t} catch( e ) {\n\t\t\t\t\t\t\t\t\t// We normalize with Webkit giving an empty statusText\n\t\t\t\t\t\t\t\t\tstatusText = \"\";\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Filter status for non standard behaviors\n\n\t\t\t\t\t\t\t\t// If the request is local and we have data: assume a success\n\t\t\t\t\t\t\t\t// (success with no data won't get notified, that's the best we\n\t\t\t\t\t\t\t\t// can do given current implementations)\n\t\t\t\t\t\t\t\tif ( !status && options.isLocal && !options.crossDomain ) {\n\t\t\t\t\t\t\t\t\tstatus = responses.text ? 200 : 404;\n\t\t\t\t\t\t\t\t// IE - #1450: sometimes returns 1223 when it should be 204\n\t\t\t\t\t\t\t\t} else if ( status === 1223 ) {\n\t\t\t\t\t\t\t\t\tstatus = 204;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Call complete if needed\n\t\t\t\t\t\tif ( responses ) {\n\t\t\t\t\t\t\tcomplete( status, statusText, responses, xhr.getAllResponseHeaders() );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tif ( !options.async ) {\n\t\t\t\t\t\t// if we're in sync mode we fire the callback\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t} else if ( xhr.readyState === 4 ) {\n\t\t\t\t\t\t// (IE6 & IE7) if it's in cache and has been\n\t\t\t\t\t\t// retrieved directly we need to fire the callback\n\t\t\t\t\t\tsetTimeout( callback );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Add to the list of active xhr callbacks\n\t\t\t\t\t\txhr.onreadystatechange = xhrCallbacks[ id ] = callback;\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tabort: function() {\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tcallback( undefined, true );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t});\n}\n\n// Functions to create xhrs\nfunction createStandardXHR() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch( e ) {}\n}\n\nfunction createActiveXHR() {\n\ttry {\n\t\treturn new window.ActiveXObject( \"Microsoft.XMLHTTP\" );\n\t} catch( e ) {}\n}\n\n\n\n\n// Install script dataType\njQuery.ajaxSetup({\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /(?:java|ecma)script/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n});\n\n// Handle cache's special case and global\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t\ts.global = false;\n\t}\n});\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function(s) {\n\n\t// This transport only deals with cross domain requests\n\tif ( s.crossDomain ) {\n\n\t\tvar script,\n\t\t\thead = document.head || jQuery(\"head\")[0] || document.documentElement;\n\n\t\treturn {\n\n\t\t\tsend: function( _, callback ) {\n\n\t\t\t\tscript = document.createElement(\"script\");\n\n\t\t\t\tscript.async = true;\n\n\t\t\t\tif ( s.scriptCharset ) {\n\t\t\t\t\tscript.charset = s.scriptCharset;\n\t\t\t\t}\n\n\t\t\t\tscript.src = s.url;\n\n\t\t\t\t// Attach handlers for all browsers\n\t\t\t\tscript.onload = script.onreadystatechange = function( _, isAbort ) {\n\n\t\t\t\t\tif ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {\n\n\t\t\t\t\t\t// Handle memory leak in IE\n\t\t\t\t\t\tscript.onload = script.onreadystatechange = null;\n\n\t\t\t\t\t\t// Remove the script\n\t\t\t\t\t\tif ( script.parentNode ) {\n\t\t\t\t\t\t\tscript.parentNode.removeChild( script );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Dereference the script\n\t\t\t\t\t\tscript = null;\n\n\t\t\t\t\t\t// Callback if not abort\n\t\t\t\t\t\tif ( !isAbort ) {\n\t\t\t\t\t\t\tcallback( 200, \"success\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t// Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\thead.insertBefore( script, head.firstChild );\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( script ) {\n\t\t\t\t\tscript.onload( undefined, true );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n});\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup({\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n});\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" && !( s.contentType || \"\" ).indexOf(\"application/x-www-form-urlencoded\") && rjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[\"script json\"] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always(function() {\n\t\t\t// Restore preexisting value\n\t\t\twindow[ callbackName ] = overwritten;\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\t\t\t\t// make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && jQuery.isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t});\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n});\n\n\n\n\n// data: string of html\n// context (optional): If specified, the fragment will be created in this context, defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\tcontext = context || document;\n\n\tvar parsed = rsingleTag.exec( data ),\n\t\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[1] ) ];\n\t}\n\n\tparsed = jQuery.buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n// Keep a copy of the old load method\nvar _load = jQuery.fn.load;\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tif ( typeof url !== \"string\" && _load ) {\n\t\treturn _load.apply( this, arguments );\n\t}\n\n\tvar selector, response, type,\n\t\tself = this,\n\t\toff = url.indexOf(\" \");\n\n\tif ( off >= 0 ) {\n\t\tselector = jQuery.trim( url.slice( off, url.length ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( jQuery.isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax({\n\t\t\turl: url,\n\n\t\t\t// if \"type\" variable is undefined, then \"GET\" method will be used\n\t\t\ttype: type,\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t}).done(function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery(\"<div>\").append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t}).complete( callback && function( jqXHR, status ) {\n\t\t\tself.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t});\n\t}\n\n\treturn this;\n};\n\n\n\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [ \"ajaxStart\", \"ajaxStop\", \"ajaxComplete\", \"ajaxError\", \"ajaxSuccess\", \"ajaxSend\" ], function( i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n});\n\n\n\n\njQuery.expr.filters.animated = function( elem ) {\n\treturn jQuery.grep(jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t}).length;\n};\n\n\n\n\n\nvar docElem = window.document.documentElement;\n\n/**\n * Gets a window from an element\n */\nfunction getWindow( elem ) {\n\treturn jQuery.isWindow( elem ) ?\n\t\telem :\n\t\telem.nodeType === 9 ?\n\t\t\telem.defaultView || elem.parentWindow :\n\t\t\tfalse;\n}\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\tjQuery.inArray(\"auto\", [ curCSSTop, curCSSLeft ] ) > -1;\n\n\t\t// need to be able to calculate position if either top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( jQuery.isFunction( options ) ) {\n\t\t\toptions = options.call( elem, i, curOffset );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend({\n\toffset: function( options ) {\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each(function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t});\n\t\t}\n\n\t\tvar docElem, win,\n\t\t\tbox = { top: 0, left: 0 },\n\t\t\telem = this[ 0 ],\n\t\t\tdoc = elem && elem.ownerDocument;\n\n\t\tif ( !doc ) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocElem = doc.documentElement;\n\n\t\t// Make sure it's not a disconnected DOM node\n\t\tif ( !jQuery.contains( docElem, elem ) ) {\n\t\t\treturn box;\n\t\t}\n\n\t\t// If we don't have gBCR, just use 0,0 rather than error\n\t\t// BlackBerry 5, iOS 3 (original iPhone)\n\t\tif ( typeof elem.getBoundingClientRect !== strundefined ) {\n\t\t\tbox = elem.getBoundingClientRect();\n\t\t}\n\t\twin = getWindow( doc );\n\t\treturn {\n\t\t\ttop: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ),\n\t\t\tleft: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )\n\t\t};\n\t},\n\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset,\n\t\t\tparentOffset = { top: 0, left: 0 },\n\t\t\telem = this[ 0 ];\n\n\t\t// fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\t\t\t// we assume that getBoundingClientRect is available when computed position is fixed\n\t\t\toffset = elem.getBoundingClientRect();\n\t\t} else {\n\t\t\t// Get *real* offsetParent\n\t\t\toffsetParent = this.offsetParent();\n\n\t\t\t// Get correct offsets\n\t\t\toffset = this.offset();\n\t\t\tif ( !jQuery.nodeName( offsetParent[ 0 ], \"html\" ) ) {\n\t\t\t\tparentOffset = offsetParent.offset();\n\t\t\t}\n\n\t\t\t// Add offsetParent borders\n\t\t\tparentOffset.top += jQuery.css( offsetParent[ 0 ], \"borderTopWidth\", true );\n\t\t\tparentOffset.left += jQuery.css( offsetParent[ 0 ], \"borderLeftWidth\", true );\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\t// note: when an element has margin: auto the offsetLeft and marginLeft\n\t\t// are the same in Safari causing offset.left to incorrectly be 0\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true)\n\t\t};\n\t},\n\n\toffsetParent: function() {\n\t\treturn this.map(function() {\n\t\t\tvar offsetParent = this.offsetParent || docElem;\n\n\t\t\twhile ( offsetParent && ( !jQuery.nodeName( offsetParent, \"html\" ) && jQuery.css( offsetParent, \"position\" ) === \"static\" ) ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\t\t\treturn offsetParent || docElem;\n\t\t});\n\t}\n});\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = /Y/.test( prop );\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\t\t\tvar win = getWindow( elem );\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? (prop in win) ? win[ prop ] :\n\t\t\t\t\twin.document.documentElement[ method ] :\n\t\t\t\t\telem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : jQuery( win ).scrollLeft(),\n\t\t\t\t\ttop ? val : jQuery( win ).scrollTop()\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length, null );\n\t};\n});\n\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// getComputedStyle returns percent when specified for top/left/bottom/right\n// rather than make the css module depend on the offset module, we just check for it here\njQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\t\t\t\t// if curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n});\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name }, function( defaultExtra, funcName ) {\n\t\t// margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( jQuery.isWindow( elem ) ) {\n\t\t\t\t\t// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there\n\t\t\t\t\t// isn't a whole lot we can do. See pull request at this URL for discussion:\n\t\t\t\t\t// https://github.com/jquery/jquery/pull/764\n\t\t\t\t\treturn elem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest\n\t\t\t\t\t// unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable, null );\n\t\t};\n\t});\n});\n\n\n// The number of elements contained in the matched element set\njQuery.fn.size = function() {\n\treturn this.length;\n};\n\njQuery.fn.andSelf = jQuery.fn.addBack;\n\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t});\n}\n\n\n\n\nvar\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in\n// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === strundefined ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n\n}));\n })();\n});","","","","","","","","","","","","","","","","","","","","","","","","","var request,serializeddata,values;\nvar $inputs,$form;\n\nvar originalInputSelector = $.fn.validator.Constructor.INPUT_SELECTOR\n$.fn.validator.Constructor.INPUT_SELECTOR = originalInputSelector + ', input[data-recaptcha]'\n\nwindow.verifyRecaptchaCallback = function (response) {\n $('input[data-recaptcha]').val(response).trigger('change')\n}\n\n// $('form#csCaseStudyForm').validator({\n// custom: {\n// recaptcha: function ($el) {\n// if (!$el.val()) {\n// grecaptcha.execute();\n// return \"Please, complete the Captcha\"\n// }\n// }\n// }\n// });\n\n$('form#csCaseStudyForm').validator().on('submit', function (e) {\n verifyRecaptchaCallback();\n if (e.isDefaultPrevented()) {\n // handle the invalid form...\n console.log(\"Form validation failed!\");\n } else {\n // everything looks good!\n console.log('Case Study Submit Ok');\n $form = $(this);\n $inputs = $form.find(\"input,select\");\n serializeddata = $form.serialize();\n $inputs.prop(\"disabled\", true);\n values = {};\n $inputs.each(function() {\n values[this.name] = $(this).val();\n });\n $('#cscs-submit_button').prop('disabled',true);\n $('#cscs-submit_button').attr('value','Sending...');\n if(request){\n request.abort();\n }\n\n request = $.ajax({\n url: '%%GCSF', /////////////// PUT YOUR GOOGLE URL HERE*//////////////////////,\n type: \"post\",\n data: serializeddata\n });\n\n request.done(function(response,textStatus, cod){\n $('#cscs-submit_button').attr('value','CONTACT US');\n $form.trigger('reset');\n $inputs.prop(\"disabled\", false);\n console.log(response);\n console.log(textStatus);\n console.log(cod);\n window.location.href = '../thanks.html';\n });\n\n // Callback handler that will be called on failure\n request.fail(function (jqXHR, textStatus, errorThrown){\n // Log the error to the console\n console.error(\n \"The following error occurred: \"+\n textStatus, errorThrown\n );\n $inputs.prop(\"disabled\", false);\n alert('We could not send the message, try again');\n });\n\n event.preventDefault();\n }\n});\n","document.addEventListener('DOMContentLoaded', () => {\n // do your setup here\n console.log('Initialized app 2');\n\n require('scripts/case-studies.js');\n require('scripts/validator.min.js');\n require('scripts/case-studies-form.js');\n require('scripts/cookies.js');\n});\n","$(window).load(function() {\n $(\"input.hs-button\").addClass(\"btn btn-default btn-xl sr-button\");\n var e = window.location.href.split(\"/\").slice(-1)[0];\n $(\"select[name='case_study_selection'] option[value='\" + e + \"']\").prop(\"selected\", true).change();\n var g = navigator.userAgent || navigator.vendor || window.opera;\n var f = (/iPad|iPhone|iPod/.test(g) && !window.MSStream);\n if ((window.matchMedia(\"(min-width: 769px)\").matches) && !f) {\n var d = $(\".left-case-study-section\").position().top - $(window).height() / 2 + $(\".left-case-study-section\").height() / 2;\n if ($(\"#numbers-section-2\")[0] === undefined) {\n var c = $(document).height() - $(\"#testimony-section\").position().top + 150\n } else {\n var c = $(document).height() - $(\"#numbers-section-2\").position().top + 150\n }\n $(\".left-case-study-section\").affix({\n offset: {\n top: d,\n bottom: c\n }\n }).on(\"affix.bs.affix\", function() {\n $(this).css({\n width: $(this).outerWidth()\n })\n })\n }\n if (window.matchMedia(\"(max-width: 769px)\").matches || f) {\n $(\"#case-study-section > .row > .left-case-study-section\")[0].style.margin = \"0 auto\";\n $(\"#case-study-section > .row > .left-case-study-section\")[0].style.float = \"none\";\n $(\"#case-study-section > .row > .left-case-study-section\")[0].style.width = \"100%\";\n if (window.matchMedia(\"(min-width: 768px)\").matches) {\n $(\".request-more-information-form\")[0].style.width = \"345px\";\n }\n $(\"#case-study-section > .row > .case-study-block\")[0].style.width = \"100%\"\n }\n var b = $(window).scrollTop();\n var h = $(\".process-section\").offset().top - $(window).height() / 2;\n var a = $(\".impact-section\").offset().top - $(window).height() / 2;\n if (b >= h) {\n $(\"#case-study-section\").removeClass(\"bg-g1\").addClass(\"bg-o1\");\n $(\".left-case-study-section .section-header\").removeClass(\"text-g2\").addClass(\"text-g1\")\n }\n if (b < h) {\n $(\"#case-study-section\").removeClass(\"bg-o1\").addClass(\"bg-g1\");\n $(\".left-case-study-section .section-header\").removeClass(\"text-g1\").addClass(\"text-g2\")\n }\n if ((b >= a) && (b >= h)) {\n $(\"#case-study-section\").removeClass(\"bg-o1\").addClass(\"bg-g2\")\n }\n if ((b < a) && (b >= h)) {\n $(\"#case-study-section\").removeClass(\"bg-g2\").addClass(\"bg-o1\")\n }\n});\n$(document).ready(function() {\n $(\"form\").submit(function() {\n var a = window.location.href.split(\"/\").slice(-1)[0];\n $(\"select[name='case_study_selection'] option[value='\" + a + \"']\").prop(\"selected\", true).change()\n });\n $(window).scroll(function() {\n var b = $(window).scrollTop();\n var c = $(\".process-section\").offset().top - $(window).height() / 3;\n var a = $(\".impact-section\").offset().top - $(window).height() / 2;\n if (b >= c) {\n $(\"#case-study-section\").removeClass(\"bg-g1\").addClass(\"bg-o1\");\n $(\".left-case-study-section .section-header\").removeClass(\"text-g2\").addClass(\"text-g1\")\n }\n if (b < c) {\n $(\"#case-study-section\").removeClass(\"bg-o1\").addClass(\"bg-g1\");\n $(\".left-case-study-section .section-header\").removeClass(\"text-g1\").addClass(\"text-g2\")\n }\n if ((b >= a) && (b >= c)) {\n $(\"#case-study-section\").removeClass(\"bg-o1\").addClass(\"bg-g2\")\n }\n if ((b < a) && (b >= c)) {\n $(\"#case-study-section\").removeClass(\"bg-g2\").addClass(\"bg-o1\")\n }\n })\n});\n","window.addEventListener(\"load\", function(){\n window.cookieconsent.initialise({\n \"palette\": {\n \"popup\": {\n \"background\": \"#EB3B7F\",\n \"text\": \"rgba(255, 255, 255, 0.7)\"\n },\n \"button\": {\n \"background\": \"#fff\"\n }\n },\n \"position\": \"bottom\",\n \"content\": {\n \"message\": \"We use cookies, just to track visits to our website, we store no personal details.\"\n }\n })\n});\n","/*!\n * Validator v0.11.9 for Bootstrap 3, by @1000hz\n * Copyright 2017 Cina Saffary\n * Licensed under http://opensource.org/licenses/MIT\n *\n * https://github.com/1000hz/bootstrap-validator\n */\n\n+function(a){\"use strict\";function b(b){return b.is('[type=\"checkbox\"]')?b.prop(\"checked\"):b.is('[type=\"radio\"]')?!!a('[name=\"'+b.attr(\"name\")+'\"]:checked').length:b.is(\"select[multiple]\")?(b.val()||[]).length:b.val()}function c(b){return this.each(function(){var c=a(this),e=a.extend({},d.DEFAULTS,c.data(),\"object\"==typeof b&&b),f=c.data(\"bs.validator\");(f||\"destroy\"!=b)&&(f||c.data(\"bs.validator\",f=new d(this,e)),\"string\"==typeof b&&f[b]())})}var d=function(c,e){this.options=e,this.validators=a.extend({},d.VALIDATORS,e.custom),this.$element=a(c),this.$btn=a('button[type=\"submit\"], input[type=\"submit\"]').filter('[form=\"'+this.$element.attr(\"id\")+'\"]').add(this.$element.find('input[type=\"submit\"], button[type=\"submit\"]')),this.update(),this.$element.on(\"input.bs.validator change.bs.validator focusout.bs.validator\",a.proxy(this.onInput,this)),this.$element.on(\"submit.bs.validator\",a.proxy(this.onSubmit,this)),this.$element.on(\"reset.bs.validator\",a.proxy(this.reset,this)),this.$element.find(\"[data-match]\").each(function(){var c=a(this),d=c.attr(\"data-match\");a(d).on(\"input.bs.validator\",function(){b(c)&&c.trigger(\"input.bs.validator\")})}),this.$inputs.filter(function(){return b(a(this))&&!a(this).closest(\".has-error\").length}).trigger(\"focusout\"),this.$element.attr(\"novalidate\",!0)};d.VERSION=\"0.11.9\",d.INPUT_SELECTOR=':input:not([type=\"hidden\"], [type=\"submit\"], [type=\"reset\"], button)',d.FOCUS_OFFSET=20,d.DEFAULTS={delay:500,html:!1,disable:!0,focus:!0,custom:{},errors:{match:\"Does not match\",minlength:\"Not long enough\"},feedback:{success:\"glyphicon-ok\",error:\"glyphicon-remove\"}},d.VALIDATORS={\"native\":function(a){var b=a[0];return b.checkValidity?!b.checkValidity()&&!b.validity.valid&&(b.validationMessage||\"error!\"):void 0},match:function(b){var c=b.attr(\"data-match\");return b.val()!==a(c).val()&&d.DEFAULTS.errors.match},minlength:function(a){var b=a.attr(\"data-minlength\");return a.val().length<b&&d.DEFAULTS.errors.minlength}},d.prototype.update=function(){var b=this;return this.$inputs=this.$element.find(d.INPUT_SELECTOR).add(this.$element.find('[data-validate=\"true\"]')).not(this.$element.find('[data-validate=\"false\"]').each(function(){b.clearErrors(a(this))})),this.toggleSubmit(),this},d.prototype.onInput=function(b){var c=this,d=a(b.target),e=\"focusout\"!==b.type;this.$inputs.is(d)&&this.validateInput(d,e).done(function(){c.toggleSubmit()})},d.prototype.validateInput=function(c,d){var e=(b(c),c.data(\"bs.validator.errors\"));c.is('[type=\"radio\"]')&&(c=this.$element.find('input[name=\"'+c.attr(\"name\")+'\"]'));var f=a.Event(\"validate.bs.validator\",{relatedTarget:c[0]});if(this.$element.trigger(f),!f.isDefaultPrevented()){var g=this;return this.runValidators(c).done(function(b){c.data(\"bs.validator.errors\",b),b.length?d?g.defer(c,g.showErrors):g.showErrors(c):g.clearErrors(c),e&&b.toString()===e.toString()||(f=b.length?a.Event(\"invalid.bs.validator\",{relatedTarget:c[0],detail:b}):a.Event(\"valid.bs.validator\",{relatedTarget:c[0],detail:e}),g.$element.trigger(f)),g.toggleSubmit(),g.$element.trigger(a.Event(\"validated.bs.validator\",{relatedTarget:c[0]}))})}},d.prototype.runValidators=function(c){function d(a){return c.attr(\"data-\"+a+\"-error\")}function e(){var a=c[0].validity;return a.typeMismatch?c.attr(\"data-type-error\"):a.patternMismatch?c.attr(\"data-pattern-error\"):a.stepMismatch?c.attr(\"data-step-error\"):a.rangeOverflow?c.attr(\"data-max-error\"):a.rangeUnderflow?c.attr(\"data-min-error\"):a.valueMissing?c.attr(\"data-required-error\"):null}function f(){return c.attr(\"data-error\")}function g(a){return d(a)||e()||f()}var h=[],i=a.Deferred();return c.data(\"bs.validator.deferred\")&&c.data(\"bs.validator.deferred\").reject(),c.data(\"bs.validator.deferred\",i),a.each(this.validators,a.proxy(function(a,d){var e=null;!b(c)&&!c.attr(\"required\")||void 0===c.attr(\"data-\"+a)&&\"native\"!=a||!(e=d.call(this,c))||(e=g(a)||e,!~h.indexOf(e)&&h.push(e))},this)),!h.length&&b(c)&&c.attr(\"data-remote\")?this.defer(c,function(){var d={};d[c.attr(\"name\")]=b(c),a.get(c.attr(\"data-remote\"),d).fail(function(a,b,c){h.push(g(\"remote\")||c)}).always(function(){i.resolve(h)})}):i.resolve(h),i.promise()},d.prototype.validate=function(){var b=this;return a.when(this.$inputs.map(function(){return b.validateInput(a(this),!1)})).then(function(){b.toggleSubmit(),b.focusError()}),this},d.prototype.focusError=function(){if(this.options.focus){var b=this.$element.find(\".has-error :input:first\");0!==b.length&&(a(\"html, body\").animate({scrollTop:b.offset().top-d.FOCUS_OFFSET},250),b.focus())}},d.prototype.showErrors=function(b){var c=this.options.html?\"html\":\"text\",d=b.data(\"bs.validator.errors\"),e=b.closest(\".form-group\"),f=e.find(\".help-block.with-errors\"),g=e.find(\".form-control-feedback\");d.length&&(d=a(\"<ul/>\").addClass(\"list-unstyled\").append(a.map(d,function(b){return a(\"<li/>\")[c](b)})),void 0===f.data(\"bs.validator.originalContent\")&&f.data(\"bs.validator.originalContent\",f.html()),f.empty().append(d),e.addClass(\"has-error has-danger\"),e.hasClass(\"has-feedback\")&&g.removeClass(this.options.feedback.success)&&g.addClass(this.options.feedback.error)&&e.removeClass(\"has-success\"))},d.prototype.clearErrors=function(a){var c=a.closest(\".form-group\"),d=c.find(\".help-block.with-errors\"),e=c.find(\".form-control-feedback\");d.html(d.data(\"bs.validator.originalContent\")),c.removeClass(\"has-error has-danger has-success\"),c.hasClass(\"has-feedback\")&&e.removeClass(this.options.feedback.error)&&e.removeClass(this.options.feedback.success)&&b(a)&&e.addClass(this.options.feedback.success)&&c.addClass(\"has-success\")},d.prototype.hasErrors=function(){function b(){return!!(a(this).data(\"bs.validator.errors\")||[]).length}return!!this.$inputs.filter(b).length},d.prototype.isIncomplete=function(){function c(){var c=b(a(this));return!(\"string\"==typeof c?a.trim(c):c)}return!!this.$inputs.filter(\"[required]\").filter(c).length},d.prototype.onSubmit=function(a){this.validate(),(this.isIncomplete()||this.hasErrors())&&a.preventDefault()},d.prototype.toggleSubmit=function(){this.options.disable&&this.$btn.toggleClass(\"disabled\",this.isIncomplete()||this.hasErrors())},d.prototype.defer=function(b,c){return c=a.proxy(c,this,b),this.options.delay?(window.clearTimeout(b.data(\"bs.validator.timeout\")),void b.data(\"bs.validator.timeout\",window.setTimeout(c,this.options.delay))):c()},d.prototype.reset=function(){return this.$element.find(\".form-control-feedback\").removeClass(this.options.feedback.error).removeClass(this.options.feedback.success),this.$inputs.removeData([\"bs.validator.errors\",\"bs.validator.deferred\"]).each(function(){var b=a(this),c=b.data(\"bs.validator.timeout\");window.clearTimeout(c)&&b.removeData(\"bs.validator.timeout\")}),this.$element.find(\".help-block.with-errors\").each(function(){var b=a(this),c=b.data(\"bs.validator.originalContent\");b.removeData(\"bs.validator.originalContent\").html(c)}),this.$btn.removeClass(\"disabled\"),this.$element.find(\".has-error, .has-danger, .has-success\").removeClass(\"has-error has-danger has-success\"),this},d.prototype.destroy=function(){return this.reset(),this.$element.removeAttr(\"novalidate\").removeData(\"bs.validator\").off(\".bs.validator\"),this.$inputs.off(\".bs.validator\"),this.options=null,this.validators=null,this.$element=null,this.$btn=null,this.$inputs=null,this};var e=a.fn.validator;a.fn.validator=c,a.fn.validator.Constructor=d,a.fn.validator.noConflict=function(){return a.fn.validator=e,this},a(window).on(\"load\",function(){a('form[data-toggle=\"validator\"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery);","","","","","","","","","","","","","/**\n * jquery-circle-progress - jQuery Plugin to draw animated circular progress bars:\n * {@link http://kottenator.github.io/jquery-circle-progress/}\n *\n * @author Rostyslav Bryzgunov <kottenator@gmail.com>\n * @version 1.2.2\n * @licence MIT\n * @preserve\n */\n!function(i){if(\"function\"==typeof define&&define.amd)define([\"jquery\"],i);else if(\"object\"==typeof module&&module.exports){var t=require(\"jquery\");i(t),module.exports=t}else i(jQuery)}(function(i){function t(i){this.init(i)}t.prototype={value:0,size:100,startAngle:-Math.PI,thickness:\"auto\",fill:{gradient:[\"#3aeabb\",\"#fdd250\"]},emptyFill:\"rgba(0, 0, 0, .1)\",animation:{duration:1200,easing:\"circleProgressEasing\"},animationStartValue:0,reverse:!1,lineCap:\"butt\",insertMode:\"prepend\",constructor:t,el:null,canvas:null,ctx:null,radius:0,arcFill:null,lastFrameValue:0,init:function(t){i.extend(this,t),this.radius=this.size/2,this.initWidget(),this.initFill(),this.draw(),this.el.trigger(\"circle-inited\")},initWidget:function(){this.canvas||(this.canvas=i(\"<canvas>\")[\"prepend\"==this.insertMode?\"prependTo\":\"appendTo\"](this.el)[0]);var t=this.canvas;if(t.width=this.size,t.height=this.size,this.ctx=t.getContext(\"2d\"),window.devicePixelRatio>1){var e=window.devicePixelRatio;t.style.width=t.style.height=this.size+\"px\",t.width=t.height=this.size*e,this.ctx.scale(e,e)}},initFill:function(){function t(){var t=i(\"<canvas>\")[0];t.width=e.size,t.height=e.size,t.getContext(\"2d\").drawImage(g,0,0,r,r),e.arcFill=e.ctx.createPattern(t,\"no-repeat\"),e.drawFrame(e.lastFrameValue)}var e=this,a=this.fill,n=this.ctx,r=this.size;if(!a)throw Error(\"The fill is not specified!\");if(\"string\"==typeof a&&(a={color:a}),a.color&&(this.arcFill=a.color),a.gradient){var s=a.gradient;if(1==s.length)this.arcFill=s[0];else if(s.length>1){for(var l=a.gradientAngle||0,o=a.gradientDirection||[r/2*(1-Math.cos(l)),r/2*(1+Math.sin(l)),r/2*(1+Math.cos(l)),r/2*(1-Math.sin(l))],h=n.createLinearGradient.apply(n,o),c=0;c<s.length;c++){var d=s[c],u=c/(s.length-1);i.isArray(d)&&(u=d[1],d=d[0]),h.addColorStop(u,d)}this.arcFill=h}}if(a.image){var g;a.image instanceof Image?g=a.image:(g=new Image,g.src=a.image),g.complete?t():g.onload=t}},draw:function(){this.animation?this.drawAnimated(this.value):this.drawFrame(this.value)},drawFrame:function(i){this.lastFrameValue=i,this.ctx.clearRect(0,0,this.size,this.size),this.drawEmptyArc(i),this.drawArc(i)},drawArc:function(i){if(0!==i){var t=this.ctx,e=this.radius,a=this.getThickness(),n=this.startAngle;t.save(),t.beginPath(),this.reverse?t.arc(e,e,e-a/2,n-2*Math.PI*i,n):t.arc(e,e,e-a/2,n,n+2*Math.PI*i),t.lineWidth=a,t.lineCap=this.lineCap,t.strokeStyle=this.arcFill,t.stroke(),t.restore()}},drawEmptyArc:function(i){var t=this.ctx,e=this.radius,a=this.getThickness(),n=this.startAngle;i<1&&(t.save(),t.beginPath(),i<=0?t.arc(e,e,e-a/2,0,2*Math.PI):this.reverse?t.arc(e,e,e-a/2,n,n-2*Math.PI*i):t.arc(e,e,e-a/2,n+2*Math.PI*i,n),t.lineWidth=a,t.strokeStyle=this.emptyFill,t.stroke(),t.restore())},drawAnimated:function(t){var e=this,a=this.el,n=i(this.canvas);n.stop(!0,!1),a.trigger(\"circle-animation-start\"),n.css({animationProgress:0}).animate({animationProgress:1},i.extend({},this.animation,{step:function(i){var n=e.animationStartValue*(1-i)+t*i;e.drawFrame(n),a.trigger(\"circle-animation-progress\",[i,n])}})).promise().always(function(){a.trigger(\"circle-animation-end\")})},getThickness:function(){return i.isNumeric(this.thickness)?this.thickness:this.size/14},getValue:function(){return this.value},setValue:function(i){this.animation&&(this.animationStartValue=this.lastFrameValue),this.value=i,this.draw()}},i.circleProgress={defaults:t.prototype},i.easing.circleProgressEasing=function(i){return i<.5?(i=2*i,.5*i*i*i):(i=2-2*i,1-.5*i*i*i)},i.fn.circleProgress=function(e,a){var n=\"circle-progress\",r=this.data(n);if(\"widget\"==e){if(!r)throw Error('Calling \"widget\" method on not initialized instance is forbidden');return r.canvas}if(\"value\"==e){if(!r)throw Error('Calling \"value\" method on not initialized instance is forbidden');if(\"undefined\"==typeof a)return r.getValue();var s=arguments[1];return this.each(function(){i(this).data(n).setValue(s)})}return this.each(function(){var a=i(this),r=a.data(n),s=i.isPlainObject(e)?e:{};if(r)r.init(s);else{var l=i.extend({},a.data());\"string\"==typeof l.fill&&(l.fill=JSON.parse(l.fill)),\"string\"==typeof l.animation&&(l.animation=JSON.parse(l.animation)),s=i.extend(l,s),s.el=a,r=new t(s),a.data(n,r)}})}});","var CountUp=function(a,b,c,d,e,f){for(var g=0,h=[\"webkit\",\"moz\",\"ms\",\"o\"],i=0;i<h.length&&!window.requestAnimationFrame;++i)window.requestAnimationFrame=window[h[i]+\"RequestAnimationFrame\"],window.cancelAnimationFrame=window[h[i]+\"CancelAnimationFrame\"]||window[h[i]+\"CancelRequestAnimationFrame\"];window.requestAnimationFrame||(window.requestAnimationFrame=function(a){var c=(new Date).getTime(),d=Math.max(0,16-(c-g)),e=window.setTimeout(function(){a(c+d)},d);return g=c+d,e}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(a){clearTimeout(a)}),this.options={useEasing:!0,useGrouping:!0,separator:\",\",decimal:\".\"};for(var j in f)f.hasOwnProperty(j)&&(this.options[j]=f[j]);\"\"===this.options.separator&&(this.options.useGrouping=!1),this.options.prefix||(this.options.prefix=\"\"),this.options.suffix||(this.options.suffix=\"\"),this.d=\"string\"==typeof a?document.getElementById(a):a,this.startVal=Number(b),isNaN(b)&&(this.startVal=Number(b.match(/[\\d]+/g).join(\"\"))),this.endVal=Number(c),isNaN(c)&&(this.endVal=Number(c.match(/[\\d]+/g).join(\"\"))),this.countDown=this.startVal>this.endVal,this.frameVal=this.startVal,this.decimals=Math.max(0,d||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*Number(e)||2e3;var k=this;this.version=function(){return\"1.5.3\"},this.printValue=function(a){var b=isNaN(a)?\"--\":k.formatNumber(a);\"INPUT\"==k.d.tagName?this.d.value=b:\"text\"==k.d.tagName?this.d.textContent=b:this.d.innerHTML=b},this.easeOutExpo=function(a,b,c,d){return 1024*c*(-Math.pow(2,-10*a/d)+1)/1023+b},this.count=function(a){k.startTime||(k.startTime=a),k.timestamp=a;var b=a-k.startTime;k.remaining=k.duration-b,k.frameVal=k.options.useEasing?k.countDown?k.startVal-k.easeOutExpo(b,0,k.startVal-k.endVal,k.duration):k.easeOutExpo(b,k.startVal,k.endVal-k.startVal,k.duration):k.countDown?k.startVal-(k.startVal-k.endVal)*(b/k.duration):k.startVal+(k.endVal-k.startVal)*(b/k.duration),k.frameVal=k.countDown?k.frameVal<k.endVal?k.endVal:k.frameVal:k.frameVal>k.endVal?k.endVal:k.frameVal,k.frameVal=Math.round(k.frameVal*k.dec)/k.dec,k.printValue(k.frameVal),b<k.duration?k.rAF=requestAnimationFrame(k.count):k.callback&&k.callback()},this.start=function(a){return k.callback=a,isNaN(k.endVal)||isNaN(k.startVal)||k.startVal===k.endVal?(console.log(\"countUp error: startVal or endVal is not a number\"),k.printValue(c)):k.rAF=requestAnimationFrame(k.count),!1},this.pauseResume=function(){k.paused?(k.paused=!1,delete k.startTime,k.duration=k.remaining,k.startVal=k.frameVal,requestAnimationFrame(k.count)):(k.paused=!0,cancelAnimationFrame(k.rAF))},this.reset=function(){k.paused=!1,delete k.startTime,k.startVal=b,cancelAnimationFrame(k.rAF),k.printValue(k.startVal)},this.update=function(a){cancelAnimationFrame(k.rAF),k.paused=!1,delete k.startTime,k.startVal=k.frameVal,k.endVal=Number(a),k.countDown=k.startVal>k.endVal,k.rAF=requestAnimationFrame(k.count)},this.formatNumber=function(a){a=a.toFixed(k.decimals),a+=\"\";var b,c,d,e;if(b=a.split(\".\"),c=b[0],d=b.length>1?k.options.decimal+b[1]:\"\",e=/(\\d+)(\\d{3})/,k.options.useGrouping)for(;e.test(c);)c=c.replace(e,\"$1\"+k.options.separator+\"$2\");return k.options.prefix+c+d+k.options.suffix},k.printValue(k.startVal)};","/*!\n * Isotope PACKAGED v3.0.6\n *\n * Licensed GPLv3 for open source use\n * or Isotope Commercial License for commercial use\n *\n * https://isotope.metafizzy.co\n * Copyright 2010-2018 Metafizzy\n */\n\n!function(t,e){\"function\"==typeof define&&define.amd?define(\"jquery-bridget/jquery-bridget\",[\"jquery\"],function(i){return e(t,i)}):\"object\"==typeof module&&module.exports?module.exports=e(t,require(\"jquery\")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){\"use strict\";function i(i,s,a){function u(t,e,o){var n,s=\"$().\"+i+'(\"'+e+'\")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+\" not initialized. Cannot call methods, i.e. \"+s);var d=h[e];if(!d||\"_\"==e.charAt(0))return void r(s+\" is not a valid method\");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if(\"string\"==typeof t){var e=n.call(arguments,1);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r=\"undefined\"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){\"function\"==typeof define&&define.amd?define(\"ev-emitter/ev-emitter\",e):\"object\"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}(\"undefined\"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var o=this._onceEvents&&this._onceEvents[t],n=0;n<i.length;n++){var s=i[n],r=o&&o[s];r&&(this.off(t,s),delete o[s]),s.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){\"function\"==typeof define&&define.amd?define(\"get-size/get-size\",e):\"object\"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){\"use strict\";function t(t){var e=parseFloat(t),i=t.indexOf(\"%\")==-1&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<h;e++){var i=u[e];t[i]=0}return t}function o(t){var e=getComputedStyle(t);return e||a(\"Style returned \"+e+\". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1\"),e}function n(){if(!d){d=!0;var e=document.createElement(\"div\");e.style.width=\"200px\",e.style.padding=\"1px 2px 3px 4px\",e.style.borderStyle=\"solid\",e.style.borderWidth=\"1px 2px 3px 4px\",e.style.boxSizing=\"border-box\";var i=document.body||document.documentElement;i.appendChild(e);var n=o(e);r=200==Math.round(t(n.width)),s.isBoxSizeOuter=r,i.removeChild(e)}}function s(e){if(n(),\"string\"==typeof e&&(e=document.querySelector(e)),e&&\"object\"==typeof e&&e.nodeType){var s=o(e);if(\"none\"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox=\"border-box\"==s.boxSizing,l=0;l<h;l++){var f=u[l],c=s[f],m=parseFloat(c);a[f]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,y=a.paddingTop+a.paddingBottom,g=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,I=d&&r,x=t(s.width);x!==!1&&(a.width=x+(I?0:p+_));var S=t(s.height);return S!==!1&&(a.height=S+(I?0:y+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(y+z),a.outerWidth=a.width+g,a.outerHeight=a.height+v,a}}var r,a=\"undefined\"==typeof console?e:function(t){console.error(t)},u=[\"paddingLeft\",\"paddingRight\",\"paddingTop\",\"paddingBottom\",\"marginLeft\",\"marginRight\",\"marginTop\",\"marginBottom\",\"borderLeftWidth\",\"borderRightWidth\",\"borderTopWidth\",\"borderBottomWidth\"],h=u.length,d=!1;return s}),function(t,e){\"use strict\";\"function\"==typeof define&&define.amd?define(\"desandro-matches-selector/matches-selector\",e):\"object\"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){\"use strict\";var t=function(){var t=window.Element.prototype;if(t.matches)return\"matches\";if(t.matchesSelector)return\"matchesSelector\";for(var e=[\"webkit\",\"moz\",\"ms\",\"o\"],i=0;i<e.length;i++){var o=e[i],n=o+\"MatchesSelector\";if(t[n])return n}}();return function(e,i){return e[t](i)}}),function(t,e){\"function\"==typeof define&&define.amd?define(\"fizzy-ui-utils/utils\",[\"desandro-matches-selector/matches-selector\"],function(i){return e(t,i)}):\"object\"==typeof module&&module.exports?module.exports=e(t,require(\"desandro-matches-selector\")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var o=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e=\"object\"==typeof t&&\"number\"==typeof t.length;return e?o.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);i!=-1&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return\"string\"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e=\"on\"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,o){t=i.makeArray(t);var n=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!o)return void n.push(t);e(t,o)&&n.push(t);for(var i=t.querySelectorAll(o),s=0;s<i.length;s++)n.push(i[s])}}),n},i.debounceMethod=function(t,e,i){i=i||100;var o=t.prototype[e],n=e+\"Timeout\";t.prototype[e]=function(){var t=this[n];clearTimeout(t);var e=arguments,s=this;this[n]=setTimeout(function(){o.apply(s,e),delete s[n]},i)}},i.docReady=function(t){var e=document.readyState;\"complete\"==e||\"interactive\"==e?setTimeout(t):document.addEventListener(\"DOMContentLoaded\",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+\"-\"+i}).toLowerCase()};var n=t.console;return i.htmlInit=function(e,o){i.docReady(function(){var s=i.toDashed(o),r=\"data-\"+s,a=document.querySelectorAll(\"[\"+r+\"]\"),u=document.querySelectorAll(\".js-\"+s),h=i.makeArray(a).concat(i.makeArray(u)),d=r+\"-options\",l=t.jQuery;h.forEach(function(t){var i,s=t.getAttribute(r)||t.getAttribute(d);try{i=s&&JSON.parse(s)}catch(a){return void(n&&n.error(\"Error parsing \"+r+\" on \"+t.className+\": \"+a))}var u=new e(t,i);l&&l.data(t,o,u)})})},i}),function(t,e){\"function\"==typeof define&&define.amd?define(\"outlayer/item\",[\"ev-emitter/ev-emitter\",\"get-size/get-size\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"ev-emitter\"),require(\"get-size\")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){\"use strict\";function i(t){for(var e in t)return!1;return e=null,!0}function o(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function n(t){return t.replace(/([A-Z])/g,function(t){return\"-\"+t.toLowerCase()})}var s=document.documentElement.style,r=\"string\"==typeof s.transition?\"transition\":\"WebkitTransition\",a=\"string\"==typeof s.transform?\"transform\":\"WebkitTransform\",u={WebkitTransition:\"webkitTransitionEnd\",transition:\"transitionend\"}[r],h={transform:a,transition:r,transitionDuration:r+\"Duration\",transitionProperty:r+\"Property\",transitionDelay:r+\"Delay\"},d=o.prototype=Object.create(t.prototype);d.constructor=o,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:\"absolute\"})},d.handleEvent=function(t){var e=\"on\"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var o=h[i]||i;e[o]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption(\"originLeft\"),i=this.layout._getOption(\"originTop\"),o=t[e?\"left\":\"right\"],n=t[i?\"top\":\"bottom\"],s=parseFloat(o),r=parseFloat(n),a=this.layout.size;o.indexOf(\"%\")!=-1&&(s=s/100*a.width),n.indexOf(\"%\")!=-1&&(r=r/100*a.height),s=isNaN(s)?0:s,r=isNaN(r)?0:r,s-=e?a.paddingLeft:a.paddingRight,r-=i?a.paddingTop:a.paddingBottom,this.position.x=s,this.position.y=r},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption(\"originLeft\"),o=this.layout._getOption(\"originTop\"),n=i?\"paddingLeft\":\"paddingRight\",s=i?\"left\":\"right\",r=i?\"right\":\"left\",a=this.position.x+t[n];e[s]=this.getXValue(a),e[r]=\"\";var u=o?\"paddingTop\":\"paddingBottom\",h=o?\"top\":\"bottom\",d=o?\"bottom\":\"top\",l=this.position.y+t[u];e[h]=this.getYValue(l),e[d]=\"\",this.css(e),this.emitEvent(\"layout\",[this])},d.getXValue=function(t){var e=this.layout._getOption(\"horizontal\");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+\"%\":t+\"px\"},d.getYValue=function(t){var e=this.layout._getOption(\"horizontal\");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+\"%\":t+\"px\"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,o=this.position.y,n=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),n&&!this.isTransitioning)return void this.layoutPosition();var s=t-i,r=e-o,a={};a.transform=this.getTranslate(s,r),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption(\"originLeft\"),o=this.layout._getOption(\"originTop\");return t=i?t:-t,e=o?e:-e,\"translate3d(\"+t+\"px, \"+e+\"px, 0)\"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var o=this.element.offsetHeight;o=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l=\"opacity,\"+n(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t=\"number\"==typeof t?t+\"ms\":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(u,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var f={\"-webkit-transform\":\"transform\"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,o=f[t.propertyName]||t.propertyName;if(delete e.ingProperties[o],i(e.ingProperties)&&this.disableTransition(),o in e.clean&&(this.element.style[t.propertyName]=\"\",delete e.clean[o]),o in e.onEnd){var n=e.onEnd[o];n.call(this),delete e.onEnd[o]}this.emitEvent(\"transitionEnd\",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(u,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]=\"\";this.css(e)};var c={transitionProperty:\"\",transitionDuration:\"\",transitionDelay:\"\"};return d.removeTransitionStyles=function(){this.css(c)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+\"ms\"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:\"\"}),this.emitEvent(\"remove\",[this])},d.remove=function(){return r&&parseFloat(this.layout.options.transitionDuration)?(this.once(\"transitionEnd\",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:\"\"});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty(\"visibleStyle\");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent(\"reveal\")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return\"opacity\";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:\"\"});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty(\"hiddenStyle\");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:\"none\"}),this.emitEvent(\"hide\"))},d.destroy=function(){this.css({position:\"\",left:\"\",right:\"\",top:\"\",bottom:\"\",transition:\"\",transform:\"\"})},o}),function(t,e){\"use strict\";\"function\"==typeof define&&define.amd?define(\"outlayer/outlayer\",[\"ev-emitter/ev-emitter\",\"get-size/get-size\",\"fizzy-ui-utils/utils\",\"./item\"],function(i,o,n,s){return e(t,i,o,n,s)}):\"object\"==typeof module&&module.exports?module.exports=e(t,require(\"ev-emitter\"),require(\"get-size\"),require(\"fizzy-ui-utils\"),require(\"./item\")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,o,n){\"use strict\";function s(t,e){var i=o.getQueryElement(t);if(!i)return void(u&&u.error(\"Bad element for \"+this.constructor.namespace+\": \"+(i||t)));this.element=i,h&&(this.$element=h(this.element)),this.options=o.extend({},this.constructor.defaults),this.option(e);var n=++l;this.element.outlayerGUID=n,f[n]=this,this._create();var s=this._getOption(\"initLayout\");s&&this.layout()}function r(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if(\"number\"==typeof t)return t;var e=t.match(/(^\\d*\\.?\\d*)(\\w*)/),i=e&&e[1],o=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var n=m[o]||1;return i*n}var u=t.console,h=t.jQuery,d=function(){},l=0,f={};s.namespace=\"outlayer\",s.Item=n,s.defaults={containerStyle:{position:\"relative\"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:\"0.4s\",hiddenStyle:{opacity:0,transform:\"scale(0.001)\"},visibleStyle:{opacity:1,transform:\"scale(1)\"}};var c=s.prototype;o.extend(c,e.prototype),c.option=function(t){o.extend(this.options,t)},c._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},s.compatOptions={initLayout:\"isInitLayout\",horizontal:\"isHorizontal\",layoutInstant:\"isLayoutInstant\",originLeft:\"isOriginLeft\",originTop:\"isOriginTop\",resize:\"isResizeBound\",resizeContainer:\"isResizingContainer\"},c._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),o.extend(this.element.style,this.options.containerStyle);var t=this._getOption(\"resize\");t&&this.bindResize()},c.reloadItems=function(){this.items=this._itemize(this.element.children)},c._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,o=[],n=0;n<e.length;n++){var s=e[n],r=new i(s,this);o.push(r)}return o},c._filterFindItemElements=function(t){return o.filterFindElements(t,this.options.itemSelector)},c.getItemElements=function(){return this.items.map(function(t){return t.element})},c.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption(\"layoutInstant\"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},c._init=c.layout,c._resetLayout=function(){this.getSize()},c.getSize=function(){this.size=i(this.element)},c._getMeasurement=function(t,e){var o,n=this.options[t];n?(\"string\"==typeof n?o=this.element.querySelector(n):n instanceof HTMLElement&&(o=n),this[t]=o?i(o)[e]:n):this[t]=0},c.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},c._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},c._layoutItems=function(t,e){if(this._emitCompleteOnItems(\"layout\",t),t&&t.length){var i=[];t.forEach(function(t){var o=this._getItemLayoutPosition(t);o.item=t,o.isInstant=e||t.isLayoutInstant,i.push(o)},this),this._processLayoutQueue(i)}},c._getItemLayoutPosition=function(){return{x:0,y:0}},c._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},c.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},c._positionItem=function(t,e,i,o,n){o?t.goTo(e,i):(t.stagger(n*this.stagger),t.moveTo(e,i))},c._postLayout=function(){this.resizeContainer()},c.resizeContainer=function(){var t=this._getOption(\"resizeContainer\");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},c._getContainerSize=d,c._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?\"width\":\"height\"]=t+\"px\"}},c._emitCompleteOnItems=function(t,e){function i(){n.dispatchEvent(t+\"Complete\",null,[e])}function o(){r++,r==s&&i()}var n=this,s=e.length;if(!e||!s)return void i();var r=0;e.forEach(function(e){e.once(t,o)})},c.dispatchEvent=function(t,e,i){var o=e?[e].concat(i):i;if(this.emitEvent(t,o),h)if(this.$element=this.$element||h(this.element),e){var n=h.Event(e);n.type=t,this.$element.trigger(n,i)}else this.$element.trigger(t,i)},c.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},c.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},c.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},c.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){o.removeFrom(this.stamps,t),this.unignore(t)},this)},c._find=function(t){if(t)return\"string\"==typeof t&&(t=this.element.querySelectorAll(t)),t=o.makeArray(t)},c._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},c._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},c._manageStamp=d,c._getElementOffset=function(t){var e=t.getBoundingClientRect(),o=this._boundingRect,n=i(t),s={left:e.left-o.left-n.marginLeft,top:e.top-o.top-n.marginTop,right:o.right-e.right-n.marginRight,bottom:o.bottom-e.bottom-n.marginBottom};return s},c.handleEvent=o.handleEvent,c.bindResize=function(){t.addEventListener(\"resize\",this),this.isResizeBound=!0},c.unbindResize=function(){t.removeEventListener(\"resize\",this),this.isResizeBound=!1},c.onresize=function(){this.resize()},o.debounceMethod(s,\"onresize\",100),c.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},c.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},c.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},c.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},c.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},c.reveal=function(t){if(this._emitCompleteOnItems(\"reveal\",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},c.hide=function(t){if(this._emitCompleteOnItems(\"hide\",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},c.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},c.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},c.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},c.getItems=function(t){t=o.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},c.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems(\"remove\",e),e&&e.length&&e.forEach(function(t){t.remove(),o.removeFrom(this.items,t)},this)},c.destroy=function(){var t=this.element.style;t.height=\"\",t.position=\"\",t.width=\"\",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete f[e],delete this.element.outlayerGUID,h&&h.removeData(this.element,this.constructor.namespace)},s.data=function(t){t=o.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&f[e]},s.create=function(t,e){var i=r(s);return i.defaults=o.extend({},s.defaults),o.extend(i.defaults,e),i.compatOptions=o.extend({},s.compatOptions),i.namespace=t,i.data=s.data,i.Item=r(n),o.htmlInit(i,t),h&&h.bridget&&h.bridget(t,i),i};var m={ms:1,s:1e3};return s.Item=n,s}),function(t,e){\"function\"==typeof define&&define.amd?define(\"isotope-layout/js/item\",[\"outlayer/outlayer\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"outlayer\")):(t.Isotope=t.Isotope||{},t.Isotope.Item=e(t.Outlayer))}(window,function(t){\"use strict\";function e(){t.Item.apply(this,arguments)}var i=e.prototype=Object.create(t.Item.prototype),o=i._create;i._create=function(){this.id=this.layout.itemGUID++,o.call(this),this.sortData={}},i.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData[\"original-order\"]=this.id,this.sortData.random=Math.random();var t=this.layout.options.getSortData,e=this.layout._sorters;for(var i in t){var o=e[i];this.sortData[i]=o(this.element,this)}}};var n=i.destroy;return i.destroy=function(){n.apply(this,arguments),this.css({display:\"\"})},e}),function(t,e){\"function\"==typeof define&&define.amd?define(\"isotope-layout/js/layout-mode\",[\"get-size/get-size\",\"outlayer/outlayer\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"get-size\"),require(\"outlayer\")):(t.Isotope=t.Isotope||{},t.Isotope.LayoutMode=e(t.getSize,t.Outlayer))}(window,function(t,e){\"use strict\";function i(t){this.isotope=t,t&&(this.options=t.options[this.namespace],this.element=t.element,this.items=t.filteredItems,this.size=t.size)}var o=i.prototype,n=[\"_resetLayout\",\"_getItemLayoutPosition\",\"_manageStamp\",\"_getContainerSize\",\"_getElementOffset\",\"needsResizeLayout\",\"_getOption\"];return n.forEach(function(t){o[t]=function(){return e.prototype[t].apply(this.isotope,arguments)}}),o.needsVerticalResizeLayout=function(){var e=t(this.isotope.element),i=this.isotope.size&&e;return i&&e.innerHeight!=this.isotope.size.innerHeight},o._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},o.getColumnWidth=function(){this.getSegmentSize(\"column\",\"Width\")},o.getRowHeight=function(){this.getSegmentSize(\"row\",\"Height\")},o.getSegmentSize=function(t,e){var i=t+e,o=\"outer\"+e;if(this._getMeasurement(i,o),!this[i]){var n=this.getFirstItemSize();this[i]=n&&n[o]||this.isotope.size[\"inner\"+e]}},o.getFirstItemSize=function(){var e=this.isotope.filteredItems[0];return e&&e.element&&t(e.element)},o.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},o.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},i.modes={},i.create=function(t,e){function n(){i.apply(this,arguments)}return n.prototype=Object.create(o),n.prototype.constructor=n,e&&(n.options=e),n.prototype.namespace=t,i.modes[t]=n,n},i}),function(t,e){\"function\"==typeof define&&define.amd?define(\"masonry-layout/masonry\",[\"outlayer/outlayer\",\"get-size/get-size\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"outlayer\"),require(\"get-size\")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create(\"masonry\");i.compatOptions.fitWidth=\"isFitWidth\";var o=i.prototype;return o._resetLayout=function(){this.getSize(),this._getMeasurement(\"columnWidth\",\"outerWidth\"),this._getMeasurement(\"gutter\",\"outerWidth\"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},o.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var o=this.columnWidth+=this.gutter,n=this.containerWidth+this.gutter,s=n/o,r=o-n%o,a=r&&r<1?\"round\":\"floor\";s=Math[a](s),this.cols=Math.max(s,1)},o.getContainerWidth=function(){var t=this._getOption(\"fitWidth\"),i=t?this.element.parentNode:this.element,o=e(i);this.containerWidth=o&&o.innerWidth},o._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&e<1?\"round\":\"ceil\",o=Math[i](t.size.outerWidth/this.columnWidth);o=Math.min(o,this.cols);for(var n=this.options.horizontalOrder?\"_getHorizontalColPosition\":\"_getTopColPosition\",s=this[n](o,t),r={x:this.columnWidth*s.col,y:s.y},a=s.y+t.size.outerHeight,u=o+s.col,h=s.col;h<u;h++)this.colYs[h]=a;return r},o._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},o._getTopColGroup=function(t){if(t<2)return this.colYs;for(var e=[],i=this.cols+1-t,o=0;o<i;o++)e[o]=this._getColGroupY(o,t);return e},o._getColGroupY=function(t,e){if(e<2)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},o._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,o=t>1&&i+t>this.cols;i=o?0:i;var n=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=n?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},o._manageStamp=function(t){var i=e(t),o=this._getElementOffset(t),n=this._getOption(\"originLeft\"),s=n?o.left:o.right,r=s+i.outerWidth,a=Math.floor(s/this.columnWidth);a=Math.max(0,a);var u=Math.floor(r/this.columnWidth);u-=r%this.columnWidth?0:1,u=Math.min(this.cols-1,u);for(var h=this._getOption(\"originTop\"),d=(h?o.top:o.bottom)+i.outerHeight,l=a;l<=u;l++)this.colYs[l]=Math.max(d,this.colYs[l])},o._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption(\"fitWidth\")&&(t.width=this._getContainerFitWidth()),t},o._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},o.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}),function(t,e){\"function\"==typeof define&&define.amd?define(\"isotope-layout/js/layout-modes/masonry\",[\"../layout-mode\",\"masonry-layout/masonry\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"../layout-mode\"),require(\"masonry-layout\")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){\"use strict\";var i=t.create(\"masonry\"),o=i.prototype,n={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)n[s]||(o[s]=e.prototype[s]);var r=o.measureColumns;o.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=o._getOption;return o._getOption=function(t){return\"fitWidth\"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){\"function\"==typeof define&&define.amd?define(\"isotope-layout/js/layout-modes/fit-rows\",[\"../layout-mode\"],e):\"object\"==typeof exports?module.exports=e(require(\"../layout-mode\")):e(t.Isotope.LayoutMode)}(window,function(t){\"use strict\";var e=t.create(\"fitRows\"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement(\"gutter\",\"outerWidth\")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var o={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,o},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){\"function\"==typeof define&&define.amd?define(\"isotope-layout/js/layout-modes/vertical\",[\"../layout-mode\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"../layout-mode\")):e(t.Isotope.LayoutMode)}(window,function(t){\"use strict\";var e=t.create(\"vertical\",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(t,e){\"function\"==typeof define&&define.amd?define([\"outlayer/outlayer\",\"get-size/get-size\",\"desandro-matches-selector/matches-selector\",\"fizzy-ui-utils/utils\",\"isotope-layout/js/item\",\"isotope-layout/js/layout-mode\",\"isotope-layout/js/layout-modes/masonry\",\"isotope-layout/js/layout-modes/fit-rows\",\"isotope-layout/js/layout-modes/vertical\"],function(i,o,n,s,r,a){return e(t,i,o,n,s,r,a)}):\"object\"==typeof module&&module.exports?module.exports=e(t,require(\"outlayer\"),require(\"get-size\"),require(\"desandro-matches-selector\"),require(\"fizzy-ui-utils\"),require(\"isotope-layout/js/item\"),require(\"isotope-layout/js/layout-mode\"),require(\"isotope-layout/js/layout-modes/masonry\"),require(\"isotope-layout/js/layout-modes/fit-rows\"),require(\"isotope-layout/js/layout-modes/vertical\")):t.Isotope=e(t,t.Outlayer,t.getSize,t.matchesSelector,t.fizzyUIUtils,t.Isotope.Item,t.Isotope.LayoutMode)}(window,function(t,e,i,o,n,s,r){function a(t,e){return function(i,o){for(var n=0;n<t.length;n++){var s=t[n],r=i.sortData[s],a=o.sortData[s];if(r>a||r<a){var u=void 0!==e[s]?e[s]:e,h=u?1:-1;return(r>a?1:-1)*h}}return 0}}var u=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\\s+|\\s+$/g,\"\")},d=e.create(\"isotope\",{layoutMode:\"masonry\",isJQueryFiltering:!0,sortAscending:!0});d.Item=s,d.LayoutMode=r;var l=d.prototype;l._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),e.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=[\"original-order\"];for(var t in r.modes)this._initLayoutMode(t)},l.reloadItems=function(){this.itemGUID=0,e.prototype.reloadItems.call(this)},l._itemize=function(){for(var t=e.prototype._itemize.apply(this,arguments),i=0;i<t.length;i++){var o=t[i];o.id=this.itemGUID++}return this._updateItemsSortData(t),t},l._initLayoutMode=function(t){var e=r.modes[t],i=this.options[t]||{};this.options[t]=e.options?n.extend(e.options,i):i,this.modes[t]=new e(this)},l.layout=function(){return!this._isLayoutInited&&this._getOption(\"initLayout\")?void this.arrange():void this._layout()},l._layout=function(){var t=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,t),this._isLayoutInited=!0},l.arrange=function(t){this.option(t),this._getIsInstant();var e=this._filter(this.items);this.filteredItems=e.matches,this._bindArrangeComplete(),this._isInstant?this._noTransition(this._hideReveal,[e]):this._hideReveal(e),this._sort(),this._layout()},l._init=l.arrange,l._hideReveal=function(t){this.reveal(t.needReveal),this.hide(t.needHide)},l._getIsInstant=function(){var t=this._getOption(\"layoutInstant\"),e=void 0!==t?t:!this._isLayoutInited;return this._isInstant=e,e},l._bindArrangeComplete=function(){function t(){e&&i&&o&&n.dispatchEvent(\"arrangeComplete\",null,[n.filteredItems])}var e,i,o,n=this;this.once(\"layoutComplete\",function(){e=!0,t()}),this.once(\"hideComplete\",function(){i=!0,t()}),this.once(\"revealComplete\",function(){o=!0,t()})},l._filter=function(t){var e=this.options.filter;e=e||\"*\";for(var i=[],o=[],n=[],s=this._getFilterTest(e),r=0;r<t.length;r++){var a=t[r];if(!a.isIgnored){var u=s(a);u&&i.push(a),u&&a.isHidden?o.push(a):u||a.isHidden||n.push(a)}}return{matches:i,needReveal:o,needHide:n}},l._getFilterTest=function(t){return u&&this.options.isJQueryFiltering?function(e){return u(e.element).is(t);\n}:\"function\"==typeof t?function(e){return t(e.element)}:function(e){return o(e.element,t)}},l.updateSortData=function(t){var e;t?(t=n.makeArray(t),e=this.getItems(t)):e=this.items,this._getSorters(),this._updateItemsSortData(e)},l._getSorters=function(){var t=this.options.getSortData;for(var e in t){var i=t[e];this._sorters[e]=f(i)}},l._updateItemsSortData=function(t){for(var e=t&&t.length,i=0;e&&i<e;i++){var o=t[i];o.updateSortData()}};var f=function(){function t(t){if(\"string\"!=typeof t)return t;var i=h(t).split(\" \"),o=i[0],n=o.match(/^\\[(.+)\\]$/),s=n&&n[1],r=e(s,o),a=d.sortDataParsers[i[1]];return t=a?function(t){return t&&a(r(t))}:function(t){return t&&r(t)}}function e(t,e){return t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&i.textContent}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},l._sort=function(){if(this.options.sortBy){var t=n.makeArray(this.options.sortBy);this._getIsSameSortBy(t)||(this.sortHistory=t.concat(this.sortHistory));var e=a(this.sortHistory,this.options.sortAscending);this.filteredItems.sort(e)}},l._getIsSameSortBy=function(t){for(var e=0;e<t.length;e++)if(t[e]!=this.sortHistory[e])return!1;return!0},l._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error(\"No layout mode: \"+t);return e.options=this.options[t],e},l._resetLayout=function(){e.prototype._resetLayout.call(this),this._mode()._resetLayout()},l._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},l._manageStamp=function(t){this._mode()._manageStamp(t)},l._getContainerSize=function(){return this._mode()._getContainerSize()},l.needsResizeLayout=function(){return this._mode().needsResizeLayout()},l.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},l.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},l._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},l.insert=function(t){var e=this.addItems(t);if(e.length){var i,o,n=e.length;for(i=0;i<n;i++)o=e[i],this.element.appendChild(o.element);var s=this._filter(e).matches;for(i=0;i<n;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;i<n;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var c=l.remove;return l.remove=function(t){t=n.makeArray(t);var e=this.getItems(t);c.call(this,t);for(var i=e&&e.length,o=0;i&&o<i;o++){var s=e[o];n.removeFrom(this.filteredItems,s)}},l.shuffle=function(){for(var t=0;t<this.items.length;t++){var e=this.items[t];e.sortData.random=Math.random()}this.options.sortBy=\"random\",this._sort(),this._layout()},l._noTransition=function(t,e){var i=this.options.transitionDuration;this.options.transitionDuration=0;var o=t.apply(this,e);return this.options.transitionDuration=i,o},l.getFilteredItemElements=function(){return this.filteredItems.map(function(t){return t.element})},d});","/*jquery.mb.YTPlayer 30-05-2015\n _ jquery.mb.components \n _ email: matteo@open-lab.com \n _ Copyright (c) 2001-2015. Matteo Bicocchi (Pupunzi); \n _ blog: http://pupunzi.open-lab.com \n _ Open Lab s.r.l., Florence - Italy \n */\nfunction onYouTubeIframeAPIReady(){ytp.YTAPIReady||(ytp.YTAPIReady=!0,jQuery(document).trigger(\"YTAPIReady\"))}var ytp=ytp||{};!function(jQuery,ytp){var getYTPVideoID=function(a){var b,c;return a.indexOf(\"youtu.be\")>0?(b=a.substr(a.lastIndexOf(\"/\")+1,a.length),c=b.indexOf(\"?list=\")>0?b.substr(b.lastIndexOf(\"=\"),b.length):null,b=c?b.substr(0,b.lastIndexOf(\"?\")):b):a.indexOf(\"http\")>-1?(b=a.match(/[\\\\?&]v=([^&#]*)/)[1],c=a.indexOf(\"list=\")>0?a.match(/[\\\\?&]list=([^&#]*)/)[1]:null):(b=a.length>15?null:a,c=b?null:a),{videoID:b,playlistID:c}};jQuery.mbYTPlayer={name:\"jquery.mb.YTPlayer\",version:\"2.9.3\",author:\"Matteo Bicocchi\",apiKey:\"\",defaults:{containment:\"body\",ratio:\"auto\",videoURL:null,playlistURL:null,startAt:0,stopAt:0,autoPlay:!0,vol:50,addRaster:!1,opacity:1,quality:\"default\",mute:!1,loop:!0,showControls:!0,showAnnotations:!1,showYTLogo:!0,stopMovieOnBlur:!0,realfullscreen:!0,gaTrack:!0,optimizeDisplay:!0,onReady:function(a){}},controls:{play:\"P\",pause:\"p\",mute:\"M\",unmute:\"A\",onlyYT:\"O\",showSite:\"R\",ytLogo:\"Y\"},locationProtocol:\"https:\",buildPlayer:function(options){return this.each(function(){var YTPlayer=this,$YTPlayer=jQuery(YTPlayer);YTPlayer.loop=0,YTPlayer.opt={},YTPlayer.state={},YTPlayer.filtersEnabled=!0,YTPlayer.filters={grayscale:{value:0,unit:\"%\"},hue_rotate:{value:0,unit:\"deg\"},invert:{value:0,unit:\"%\"},opacity:{value:0,unit:\"%\"},saturate:{value:0,unit:\"%\"},sepia:{value:0,unit:\"%\"},brightness:{value:0,unit:\"%\"},contrast:{value:0,unit:\"%\"},blur:{value:0,unit:\"px\"}},$YTPlayer.addClass(\"mb_YTPlayer\");var property=$YTPlayer.data(\"property\")&&\"string\"==typeof $YTPlayer.data(\"property\")?eval(\"(\"+$YTPlayer.data(\"property\")+\")\"):$YTPlayer.data(\"property\");\"undefined\"!=typeof property&&\"undefined\"!=typeof property.vol&&(property.vol=0===property.vol?property.vol=1:property.vol),jQuery.extend(YTPlayer.opt,jQuery.mbYTPlayer.defaults,options,property),YTPlayer.hasChanged||(YTPlayer.defaultOpt={},jQuery.extend(YTPlayer.defaultOpt,jQuery.mbYTPlayer.defaults,options,property)),YTPlayer.isRetina=window.retina||window.devicePixelRatio>1;var isIframe=function(){var a=!1;try{self.location.href!=top.location.href&&(a=!0)}catch(b){a=!0}return a};YTPlayer.canGoFullScreen=!(jQuery.browser.msie||jQuery.browser.opera||isIframe()),YTPlayer.canGoFullScreen||(YTPlayer.opt.realfullscreen=!1),$YTPlayer.attr(\"id\")||$YTPlayer.attr(\"id\",\"video_\"+(new Date).getTime());var playerID=\"mbYTP_\"+YTPlayer.id;YTPlayer.isAlone=!1,YTPlayer.hasFocus=!0;var videoID=this.opt.videoURL?getYTPVideoID(this.opt.videoURL).videoID:$YTPlayer.attr(\"href\")?getYTPVideoID($YTPlayer.attr(\"href\")).videoID:!1,playlistID=this.opt.videoURL?getYTPVideoID(this.opt.videoURL).playlistID:$YTPlayer.attr(\"href\")?getYTPVideoID($YTPlayer.attr(\"href\")).playlistID:!1;YTPlayer.videoID=videoID,YTPlayer.playlistID=playlistID,YTPlayer.opt.showAnnotations=YTPlayer.opt.showAnnotations?\"0\":\"3\";var playerVars={autoplay:0,modestbranding:1,controls:0,showinfo:0,rel:0,enablejsapi:1,version:3,playerapiid:playerID,origin:\"*\",allowfullscreen:!0,wmode:\"transparent\",iv_load_policy:YTPlayer.opt.showAnnotations};document.createElement(\"video\").canPlayType&&jQuery.extend(playerVars,{html5:1}),jQuery.browser.msie&&jQuery.browser.version<9&&(this.opt.opacity=1);var playerBox=jQuery(\"<div/>\").attr(\"id\",playerID).addClass(\"playerBox\"),overlay=jQuery(\"<div/>\").css({position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\"}).addClass(\"YTPOverlay\");if(YTPlayer.isSelf=\"self\"==YTPlayer.opt.containment,YTPlayer.defaultOpt.containment=YTPlayer.opt.containment=jQuery(\"self\"==YTPlayer.opt.containment?this:YTPlayer.opt.containment),YTPlayer.isBackground=\"body\"==YTPlayer.opt.containment.get(0).tagName.toLowerCase(),!YTPlayer.isBackground||!ytp.backgroundIsInited){var isPlayer=YTPlayer.opt.containment.is(jQuery(this));if(YTPlayer.canPlayOnMobile=isPlayer&&0===jQuery(this).children().length,isPlayer?YTPlayer.isPlayer=!0:$YTPlayer.hide(),jQuery.browser.mobile&&!YTPlayer.canPlayOnMobile)return void $YTPlayer.remove();var wrapper=jQuery(\"<div/>\").addClass(\"mbYTP_wrapper\").attr(\"id\",\"wrapper_\"+playerID);if(wrapper.css({position:\"absolute\",zIndex:0,minWidth:\"100%\",minHeight:\"100%\",left:0,top:0,overflow:\"hidden\",opacity:0}),playerBox.css({position:\"absolute\",zIndex:0,width:\"100%\",height:\"100%\",top:0,left:0,overflow:\"hidden\"}),wrapper.append(playerBox),YTPlayer.opt.containment.children().not(\"script, style\").each(function(){\"static\"==jQuery(this).css(\"position\")&&jQuery(this).css(\"position\",\"relative\")}),YTPlayer.isBackground?(jQuery(\"body\").css({boxSizing:\"border-box\"}),wrapper.css({position:\"fixed\",top:0,left:0,zIndex:0}),$YTPlayer.hide()):\"static\"==YTPlayer.opt.containment.css(\"position\")&&YTPlayer.opt.containment.css({position:\"relative\"}),YTPlayer.opt.containment.prepend(wrapper),YTPlayer.wrapper=wrapper,playerBox.css({opacity:1}),jQuery.browser.mobile||(playerBox.after(overlay),YTPlayer.overlay=overlay),YTPlayer.isBackground||overlay.on(\"mouseenter\",function(){YTPlayer.controlBar&&YTPlayer.controlBar.addClass(\"visible\")}).on(\"mouseleave\",function(){YTPlayer.controlBar&&YTPlayer.controlBar.removeClass(\"visible\")}),ytp.YTAPIReady)setTimeout(function(){jQuery(document).trigger(\"YTAPIReady\")},100);else{jQuery(\"#YTAPI\").remove();var tag=jQuery(\"<script></script>\").attr({src:jQuery.mbYTPlayer.locationProtocol+\"//www.youtube.com/iframe_api?v=\"+jQuery.mbYTPlayer.version,id:\"YTAPI\"});jQuery(\"head\").prepend(tag)}jQuery(document).on(\"YTAPIReady\",function(){YTPlayer.isBackground&&ytp.backgroundIsInited||YTPlayer.isInit||(YTPlayer.isBackground&&(ytp.backgroundIsInited=!0),YTPlayer.opt.autoPlay=\"undefined\"==typeof YTPlayer.opt.autoPlay?YTPlayer.isBackground?!0:!1:YTPlayer.opt.autoPlay,YTPlayer.opt.vol=YTPlayer.opt.vol?YTPlayer.opt.vol:100,jQuery.mbYTPlayer.getDataFromAPI(YTPlayer),jQuery(YTPlayer).on(\"YTPChanged\",function(){if(!YTPlayer.isInit){if(YTPlayer.isInit=!0,jQuery.browser.mobile&&YTPlayer.canPlayOnMobile){if(YTPlayer.opt.containment.outerWidth()>jQuery(window).width()){YTPlayer.opt.containment.css({maxWidth:\"100%\"});var h=.6*YTPlayer.opt.containment.outerWidth();YTPlayer.opt.containment.css({maxHeight:h})}return void new YT.Player(playerID,{videoId:YTPlayer.videoID.toString(),height:\"100%\",width:\"100%\",events:{onReady:function(a){YTPlayer.player=a.target,playerBox.css({opacity:1}),YTPlayer.wrapper.css({opacity:1})}}})}new YT.Player(playerID,{videoId:YTPlayer.videoID.toString(),playerVars:playerVars,events:{onReady:function(a){if(YTPlayer.player=a.target,!YTPlayer.isReady){YTPlayer.isReady=YTPlayer.isPlayer&&!YTPlayer.opt.autoPlay?!1:!0,YTPlayer.playerEl=YTPlayer.player.getIframe(),$YTPlayer.optimizeDisplay(),YTPlayer.videoID=videoID,jQuery(window).on(\"resize.YTP\",function(){$YTPlayer.optimizeDisplay()}),jQuery.mbYTPlayer.checkForState(YTPlayer);var b=jQuery.Event(\"YTPUnstarted\");b.time=YTPlayer.player.time,YTPlayer.canTrigger&&jQuery(YTPlayer).trigger(b)}},onStateChange:function(event){if(\"function\"==typeof event.target.getPlayerState){var state=event.target.getPlayerState();if(YTPlayer.state!=state){YTPlayer.state=state;var eventType;switch(state){case-1:eventType=\"YTPUnstarted\";break;case 0:eventType=\"YTPEnd\";break;case 1:eventType=\"YTPStart\",YTPlayer.controlBar&&YTPlayer.controlBar.find(\".mb_YTPPlaypause\").html(jQuery.mbYTPlayer.controls.pause),\"undefined\"!=typeof _gaq&&eval(YTPlayer.opt.gaTrack)&&_gaq.push([\"_trackEvent\",\"YTPlayer\",\"Play\",YTPlayer.hasData?YTPlayer.videoData.title:YTPlayer.videoID.toString()]),\"undefined\"!=typeof ga&&eval(YTPlayer.opt.gaTrack)&&ga(\"send\",\"event\",\"YTPlayer\",\"play\",YTPlayer.hasData?YTPlayer.videoData.title:YTPlayer.videoID.toString());break;case 2:eventType=\"YTPPause\",YTPlayer.controlBar&&YTPlayer.controlBar.find(\".mb_YTPPlaypause\").html(jQuery.mbYTPlayer.controls.play);break;case 3:YTPlayer.player.setPlaybackQuality(YTPlayer.opt.quality),eventType=\"YTPBuffering\",YTPlayer.controlBar&&YTPlayer.controlBar.find(\".mb_YTPPlaypause\").html(jQuery.mbYTPlayer.controls.play);break;case 5:eventType=\"YTPCued\"}var YTPEvent=jQuery.Event(eventType);YTPEvent.time=YTPlayer.player.time,YTPlayer.canTrigger&&jQuery(YTPlayer).trigger(YTPEvent)}}},onPlaybackQualityChange:function(a){var b=a.target.getPlaybackQuality(),c=jQuery.Event(\"YTPQualityChange\");c.quality=b,jQuery(YTPlayer).trigger(c)},onError:function(a){150==a.data&&(console.log(\"Embedding this video is restricted by Youtube.\"),YTPlayer.isPlayList&&jQuery(YTPlayer).playNext()),2==a.data&&YTPlayer.isPlayList&&jQuery(YTPlayer).playNext(),\"function\"==typeof YTPlayer.opt.onError&&YTPlayer.opt.onError($YTPlayer,a)}}})}}))})}})},getDataFromAPI:function(a){if(a.videoData=jQuery.mbStorage.get(\"YYTPlayer_data_\"+a.videoID),a.videoData)setTimeout(function(){a.opt.ratio=\"auto\"==a.opt.ratio?\"16/9\":a.opt.ratio,a.dataReceived=!0,jQuery(a).trigger(\"YTPChanged\");var b=jQuery.Event(\"YTPData\");b.prop={};for(var c in a.videoData)b.prop[c]=a.videoData[c];jQuery(a).trigger(b)},500),a.hasData=!0;else if(jQuery.mbYTPlayer.apiKey)jQuery.getJSON(\"https://www.googleapis.com/youtube/v3/videos?id=\"+a.videoID+\"&key=\"+jQuery.mbYTPlayer.apiKey+\"&part=snippet\",function(b){function c(b){a.videoData={},a.videoData.id=a.videoID,a.videoData.channelTitle=b.channelTitle,a.videoData.title=b.title,a.videoData.description=b.description.length<400?b.description:b.description.substring(0,400)+\" ...\",a.videoData.aspectratio=\"auto\"==a.opt.ratio?\"16/9\":a.opt.ratio,a.opt.ratio=a.videoData.aspectratio,a.videoData.thumb_max=b.thumbnails.maxres?b.thumbnails.maxres.url:null,a.videoData.thumb_high=b.thumbnails.high?b.thumbnails.high.url:null,a.videoData.thumb_medium=b.thumbnails.medium?b.thumbnails.medium.url:null,jQuery.mbStorage.set(\"YYTPlayer_data_\"+a.videoID,a.videoData)}a.dataReceived=!0,jQuery(a).trigger(\"YTPChanged\"),c(b.items[0].snippet),a.hasData=!0;var d=jQuery.Event(\"YTPData\");d.prop={};for(var e in a.videoData)d.prop[e]=a.videoData[e];jQuery(a).trigger(d)});else{if(setTimeout(function(){jQuery(a).trigger(\"YTPChanged\")},50),a.isPlayer&&!a.opt.autoPlay){var b=\"https://i.ytimg.com/vi/\"+a.videoID+\"/hqdefault.jpg\";a.opt.containment.css({background:\"rgba(0,0,0,0.5) url(\"+b+\") center center\",backgroundSize:\"cover\"}),a.opt.backgroundUrl=b}a.videoData=null,a.opt.ratio=\"auto\"==a.opt.ratio?\"16/9\":a.opt.ratio}jQuery(a).off(\"YTPData.YTPlayer\").on(\"YTPData.YTPlayer\",function(){if(!a.hasData&&(a.hasData=!0,a.isPlayer&&!a.opt.autoPlay)){var b=a.videoData.thumb_max||a.videoData.thumb_high||a.videoData.thumb_medium;a.opt.containment.css({background:\"rgba(0,0,0,0.5) url(\"+b+\") center center\",backgroundSize:\"cover\"}),a.opt.backgroundUrl=b}}),a.isPlayer&&!a.opt.autoPlay&&(a.loading=jQuery(\"<div/>\").addClass(\"loading\").html(\"Loading\").hide(),jQuery(a).append(a.loading),a.loading.fadeIn())},removeStoredData:function(){jQuery.mbStorage.remove()},getVideoData:function(){var a=this.get(0);return a.videoData},getVideoID:function(){var a=this.get(0);return a.videoID||!1},setVideoQuality:function(a){var b=this.get(0);jQuery.browser.chrome||b.player.setPlaybackQuality(a)},playlist:function(a,b,c){var d=this,e=d.get(0);return e.isPlayList=!0,b&&(a=jQuery.shuffle(a)),e.videoID||(e.videos=a,e.videoCounter=0,e.videoLength=a.length,jQuery(e).data(\"property\",a[0]),jQuery(e).mb_YTPlayer()),\"function\"==typeof c&&jQuery(e).on(\"YTPChanged\",function(){c(e)}),jQuery(e).on(\"YTPEnd\",function(){jQuery(e).playNext()}),d},playNext:function(){var a=this.get(0);return a.videoCounter++,a.videoCounter>=a.videoLength&&(a.videoCounter=0),jQuery(a).changeMovie(a.videos[a.videoCounter]),this},playPrev:function(){var a=this.get(0);return a.videoCounter--,a.videoCounter<0&&(a.videoCounter=a.videoLength-1),jQuery(a).changeMovie(a.videos[a.videoCounter]),this},changeMovie:function(a){var b=this.get(0);b.opt.startAt=0,b.opt.stopAt=0,b.opt.mute=!0,b.hasData=!1,b.hasChanged=!0,a&&jQuery.extend(b.opt,b.defaultOpt,a),b.videoID=getYTPVideoID(b.opt.videoURL).videoID,jQuery(b.playerEl).CSSAnimate({opacity:0},200,function(){return jQuery(b).YTPGetPlayer().cueVideoByUrl(encodeURI(jQuery.mbYTPlayer.locationProtocol+\"//www.youtube.com/v/\"+b.videoID),1,b.opt.quality),jQuery.mbYTPlayer.checkForState(b),jQuery(b).optimizeDisplay(),jQuery.mbYTPlayer.getDataFromAPI(b),this})},getPlayer:function(){return jQuery(this).get(0).player},playerDestroy:function(){var a=this.get(0);ytp.YTAPIReady=!1,ytp.backgroundIsInited=!1,a.isInit=!1,a.videoID=null;var b=a.wrapper;return b.remove(),jQuery(\"#controlBar_\"+a.id).remove(),clearInterval(a.checkForStartAt),clearInterval(a.getState),this},fullscreen:function(real){function hideMouse(){YTPlayer.overlay.css({cursor:\"none\"})}function RunPrefixMethod(a,b){for(var c,d,e=[\"webkit\",\"moz\",\"ms\",\"o\",\"\"],f=0;f<e.length&&!a[c];){if(c=b,\"\"==e[f]&&(c=c.substr(0,1).toLowerCase()+c.substr(1)),c=e[f]+c,d=typeof a[c],\"undefined\"!=d)return e=[e[f]],\"function\"==d?a[c]():a[c];f++}}function launchFullscreen(a){RunPrefixMethod(a,\"RequestFullScreen\")}function cancelFullscreen(){(RunPrefixMethod(document,\"FullScreen\")||RunPrefixMethod(document,\"IsFullScreen\"))&&RunPrefixMethod(document,\"CancelFullScreen\")}var YTPlayer=this.get(0);\"undefined\"==typeof real&&(real=YTPlayer.opt.realfullscreen),real=eval(real);var controls=jQuery(\"#controlBar_\"+YTPlayer.id),fullScreenBtn=controls.find(\".mb_OnlyYT\"),videoWrapper=YTPlayer.isSelf?YTPlayer.opt.containment:YTPlayer.wrapper;if(real){var fullscreenchange=jQuery.browser.mozilla?\"mozfullscreenchange\":jQuery.browser.webkit?\"webkitfullscreenchange\":\"fullscreenchange\";jQuery(document).off(fullscreenchange).on(fullscreenchange,function(){var a=RunPrefixMethod(document,\"IsFullScreen\")||RunPrefixMethod(document,\"FullScreen\");a?(jQuery(YTPlayer).YTPSetVideoQuality(\"default\"),jQuery(YTPlayer).trigger(\"YTPFullScreenStart\")):(YTPlayer.isAlone=!1,fullScreenBtn.html(jQuery.mbYTPlayer.controls.onlyYT),jQuery(YTPlayer).YTPSetVideoQuality(YTPlayer.opt.quality),videoWrapper.removeClass(\"fullscreen\"),videoWrapper.CSSAnimate({opacity:YTPlayer.opt.opacity},500),videoWrapper.css({zIndex:0}),YTPlayer.isBackground?jQuery(\"body\").after(controls):YTPlayer.wrapper.before(controls),jQuery(window).resize(),jQuery(YTPlayer).trigger(\"YTPFullScreenEnd\"))})}return YTPlayer.isAlone?(jQuery(document).off(\"mousemove.YTPlayer\"),YTPlayer.overlay.css({cursor:\"auto\"}),real?cancelFullscreen():(videoWrapper.CSSAnimate({opacity:YTPlayer.opt.opacity},500),videoWrapper.css({zIndex:0})),fullScreenBtn.html(jQuery.mbYTPlayer.controls.onlyYT),YTPlayer.isAlone=!1):(jQuery(document).on(\"mousemove.YTPlayer\",function(a){YTPlayer.overlay.css({cursor:\"auto\"}),clearTimeout(YTPlayer.hideCursor),jQuery(a.target).parents().is(\".mb_YTPBar\")||(YTPlayer.hideCursor=setTimeout(hideMouse,3e3))}),hideMouse(),real?(videoWrapper.css({opacity:0}),videoWrapper.addClass(\"fullscreen\"),launchFullscreen(videoWrapper.get(0)),setTimeout(function(){videoWrapper.CSSAnimate({opacity:1},1e3),YTPlayer.wrapper.append(controls),jQuery(YTPlayer).optimizeDisplay(),YTPlayer.player.seekTo(YTPlayer.player.getCurrentTime()+.1,!0)},500)):videoWrapper.css({zIndex:1e4}).CSSAnimate({opacity:1},1e3),fullScreenBtn.html(jQuery.mbYTPlayer.controls.showSite),YTPlayer.isAlone=!0),this},toggleLoops:function(){var a=this.get(0),b=a.opt;return 1==b.loop?b.loop=0:(b.startAt?a.player.seekTo(b.startAt):a.player.playVideo(),b.loop=1),this},play:function(){var a=this.get(0);if(a.isReady){var b=jQuery(\"#controlBar_\"+a.id),c=b.find(\".mb_YTPPlaypause\");return c.html(jQuery.mbYTPlayer.controls.pause),a.player.playVideo(),a.wrapper.CSSAnimate({opacity:a.isAlone?1:a.opt.opacity},2e3),jQuery(a.playerEl).CSSAnimate({opacity:1},1e3),jQuery(a).css(\"background-image\",\"none\"),this}},togglePlay:function(a){var b=this.get(0);return 1==b.state?this.YTPPause():this.YTPPlay(),\"function\"==typeof a&&a(b.state),this},stop:function(){var a=this.get(0),b=jQuery(\"#controlBar_\"+a.id),c=b.find(\".mb_YTPPlaypause\");return c.html(jQuery.mbYTPlayer.controls.play),a.player.stopVideo(),this},pause:function(){var a=this.get(0),b=jQuery(\"#controlBar_\"+a.id),c=b.find(\".mb_YTPPlaypause\");return c.html(jQuery.mbYTPlayer.controls.play),a.player.pauseVideo(),this},seekTo:function(a){var b=this.get(0);return b.player.seekTo(a,!0),this},setVolume:function(a){var b=this.get(0);return a||b.opt.vol||0!=b.player.getVolume()?!a&&b.player.getVolume()>0||a&&b.opt.vol==a?b.isMute?jQuery(b).YTPUnmute():jQuery(b).YTPMute():(b.opt.vol=a,b.player.setVolume(b.opt.vol),b.volumeBar&&b.volumeBar.length&&b.volumeBar.updateSliderVal(a)):jQuery(b).YTPUnmute(),this},mute:function(){var a=this.get(0);if(!a.isMute){a.player.mute(),a.isMute=!0,a.player.setVolume(0),a.volumeBar&&a.volumeBar.length&&a.volumeBar.width()>10&&a.volumeBar.updateSliderVal(0);var b=jQuery(\"#controlBar_\"+a.id),c=b.find(\".mb_YTPMuteUnmute\");c.html(jQuery.mbYTPlayer.controls.unmute),jQuery(a).addClass(\"isMuted\"),a.volumeBar&&a.volumeBar.length&&a.volumeBar.addClass(\"muted\");var d=jQuery.Event(\"YTPMuted\");return d.time=a.player.time,a.canTrigger&&jQuery(a).trigger(d),this}},unmute:function(){var a=this.get(0);if(a.isMute){a.player.unMute(),a.isMute=!1,a.player.setVolume(a.opt.vol),a.volumeBar&&a.volumeBar.length&&a.volumeBar.updateSliderVal(a.opt.vol>10?a.opt.vol:10);var b=jQuery(\"#controlBar_\"+a.id),c=b.find(\".mb_YTPMuteUnmute\");c.html(jQuery.mbYTPlayer.controls.mute),jQuery(a).removeClass(\"isMuted\"),a.volumeBar&&a.volumeBar.length&&a.volumeBar.removeClass(\"muted\");var d=jQuery.Event(\"YTPUnmuted\");return d.time=a.player.time,a.canTrigger&&jQuery(a).trigger(d),this}},applyFilter:function(a,b){var c=this.get(0);return c.filters[a].value=b,c.filtersEnabled&&this.YTPEnableFilters(),this},applyFilters:function(a){var b=this.get(0);return this.on(\"YTPReady\",function(){for(var c in a)b.filters[c].value=a[c],jQuery(b).YTPApplyFilter(c,a[c]);jQuery(b).trigger(\"YTPFiltersApplied\")}),this},toggleFilter:function(a,b){return this.each(function(){var c=this;c.filters[a].value?c.filters[a].value=0:c.filters[a].value=b,c.filtersEnabled&&jQuery(this).YTPEnableFilters()})},toggleFilters:function(a){return this.each(function(){var b=this;b.filtersEnabled?(jQuery(b).trigger(\"YTPDisableFilters\"),jQuery(b).YTPDisableFilters()):(jQuery(b).YTPEnableFilters(),jQuery(b).trigger(\"YTPEnableFilters\")),\"function\"==typeof a&&a(b.filtersEnabled)})},disableFilters:function(){return this.each(function(){var a=this,b=jQuery(a.playerEl);b.css(\"-webkit-filter\",\"\"),b.css(\"filter\",\"\"),a.filtersEnabled=!1})},enableFilters:function(){return this.each(function(){var a=this,b=jQuery(a.playerEl),c=\"\";for(var d in a.filters)a.filters[d].value&&(c+=d.replace(\"_\",\"-\")+\"(\"+a.filters[d].value+a.filters[d].unit+\") \");b.css(\"-webkit-filter\",c),b.css(\"filter\",c),a.filtersEnabled=!0})},removeFilter:function(a,b){return this.each(function(){\"function\"==typeof a&&(b=a,a=null);var c=this;if(a)jQuery(this).YTPApplyFilter(a,0),\"function\"==typeof b&&b(a);else for(var d in c.filters)jQuery(this).YTPApplyFilter(d,0),\"function\"==typeof b&&b(d)})},manageProgress:function(){var a=this.get(0),b=jQuery(\"#controlBar_\"+a.id),c=b.find(\".mb_YTPProgress\"),d=b.find(\".mb_YTPLoaded\"),e=b.find(\".mb_YTPseekbar\"),f=c.outerWidth(),g=Math.floor(a.player.getCurrentTime()),h=Math.floor(a.player.getDuration()),i=g*f/h,j=0,k=100*a.player.getVideoLoadedFraction();return d.css({left:j,width:k+\"%\"}),e.css({left:0,width:i}),{totalTime:h,currentTime:g}},buildControls:function(YTPlayer){var data=YTPlayer.opt;if(data.showYTLogo=data.showYTLogo||data.printUrl,!jQuery(\"#controlBar_\"+YTPlayer.id).length){YTPlayer.controlBar=jQuery(\"<span/>\").attr(\"id\",\"controlBar_\"+YTPlayer.id).addClass(\"mb_YTPBar\").css({whiteSpace:\"noWrap\",position:YTPlayer.isBackground?\"fixed\":\"absolute\",zIndex:YTPlayer.isBackground?1e4:1e3}).hide();var buttonBar=jQuery(\"<div/>\").addClass(\"buttonBar\"),playpause=jQuery(\"<span>\"+jQuery.mbYTPlayer.controls.play+\"</span>\").addClass(\"mb_YTPPlaypause ytpicon\").click(function(){1==YTPlayer.player.getPlayerState()?jQuery(YTPlayer).YTPPause():jQuery(YTPlayer).YTPPlay()}),MuteUnmute=jQuery(\"<span>\"+jQuery.mbYTPlayer.controls.mute+\"</span>\").addClass(\"mb_YTPMuteUnmute ytpicon\").click(function(){0==YTPlayer.player.getVolume()?jQuery(YTPlayer).YTPUnmute():jQuery(YTPlayer).YTPMute()}),volumeBar=jQuery(\"<div/>\").addClass(\"mb_YTPVolumeBar\").css({display:\"inline-block\"});YTPlayer.volumeBar=volumeBar;var idx=jQuery(\"<span/>\").addClass(\"mb_YTPTime\"),vURL=data.videoURL?data.videoURL:\"\";vURL.indexOf(\"http\")<0&&(vURL=jQuery.mbYTPlayer.locationProtocol+\"//www.youtube.com/watch?v=\"+data.videoURL);var movieUrl=jQuery(\"<span/>\").html(jQuery.mbYTPlayer.controls.ytLogo).addClass(\"mb_YTPUrl ytpicon\").attr(\"title\",\"view on YouTube\").on(\"click\",function(){window.open(vURL,\"viewOnYT\")}),onlyVideo=jQuery(\"<span/>\").html(jQuery.mbYTPlayer.controls.onlyYT).addClass(\"mb_OnlyYT ytpicon\").on(\"click\",function(){jQuery(YTPlayer).YTPFullscreen(data.realfullscreen)}),progressBar=jQuery(\"<div/>\").addClass(\"mb_YTPProgress\").css(\"position\",\"absolute\").click(function(a){timeBar.css({width:a.clientX-timeBar.offset().left}),YTPlayer.timeW=a.clientX-timeBar.offset().left,YTPlayer.controlBar.find(\".mb_YTPLoaded\").css({width:0});var b=Math.floor(YTPlayer.player.getDuration());YTPlayer[\"goto\"]=timeBar.outerWidth()*b/progressBar.outerWidth(),YTPlayer.player.seekTo(parseFloat(YTPlayer[\"goto\"]),!0),YTPlayer.controlBar.find(\".mb_YTPLoaded\").css({width:0})}),loadedBar=jQuery(\"<div/>\").addClass(\"mb_YTPLoaded\").css(\"position\",\"absolute\"),timeBar=jQuery(\"<div/>\").addClass(\"mb_YTPseekbar\").css(\"position\",\"absolute\");progressBar.append(loadedBar).append(timeBar),buttonBar.append(playpause).append(MuteUnmute).append(volumeBar).append(idx),data.showYTLogo&&buttonBar.append(movieUrl),(YTPlayer.isBackground||eval(YTPlayer.opt.realfullscreen)&&!YTPlayer.isBackground)&&buttonBar.append(onlyVideo),YTPlayer.controlBar.append(buttonBar).append(progressBar),YTPlayer.isBackground?jQuery(\"body\").after(YTPlayer.controlBar):(YTPlayer.controlBar.addClass(\"inlinePlayer\"),YTPlayer.wrapper.before(YTPlayer.controlBar)),volumeBar.simpleSlider({initialval:YTPlayer.opt.vol,scale:100,orientation:\"h\",callback:function(a){0==a.value?jQuery(YTPlayer).YTPMute():jQuery(YTPlayer).YTPUnmute(),YTPlayer.player.setVolume(a.value),YTPlayer.isMute||(YTPlayer.opt.vol=a.value)}})}},checkForState:function(YTPlayer){var interval=YTPlayer.opt.showControls?100:1e3;return clearInterval(YTPlayer.getState),jQuery.contains(document,YTPlayer)?(jQuery.mbYTPlayer.checkForStart(YTPlayer),void(YTPlayer.getState=setInterval(function(){var prog=jQuery(YTPlayer).YTPManageProgress(),$YTPlayer=jQuery(YTPlayer),data=YTPlayer.opt,startAt=YTPlayer.opt.startAt?YTPlayer.opt.startAt:0,stopAt=YTPlayer.opt.stopAt>YTPlayer.opt.startAt?YTPlayer.opt.stopAt:0;if(stopAt=stopAt<YTPlayer.player.getDuration()?stopAt:0,YTPlayer.player.time!=prog.currentTime){var YTPEvent=jQuery.Event(\"YTPTime\");YTPEvent.time=YTPlayer.player.time,jQuery(YTPlayer).trigger(YTPEvent)}if(YTPlayer.player.time=prog.currentTime,0==YTPlayer.player.getVolume()?$YTPlayer.addClass(\"isMuted\"):$YTPlayer.removeClass(\"isMuted\"),YTPlayer.opt.showControls&&(prog.totalTime?YTPlayer.controlBar.find(\".mb_YTPTime\").html(jQuery.mbYTPlayer.formatTime(prog.currentTime)+\" / \"+jQuery.mbYTPlayer.formatTime(prog.totalTime)):YTPlayer.controlBar.find(\".mb_YTPTime\").html(\"-- : -- / -- : --\")),eval(YTPlayer.opt.stopMovieOnBlur)&&(document.hasFocus()?document.hasFocus()&&!YTPlayer.hasFocus&&-1!=YTPlayer.state&&0!=YTPlayer.state&&(YTPlayer.hasFocus=!0,$YTPlayer.YTPPlay()):1==YTPlayer.state&&(YTPlayer.hasFocus=!1,$YTPlayer.YTPPause())),YTPlayer.controlBar&&YTPlayer.controlBar.outerWidth()<=400&&!YTPlayer.isCompact?(YTPlayer.controlBar.addClass(\"compact\"),YTPlayer.isCompact=!0,!YTPlayer.isMute&&YTPlayer.volumeBar&&YTPlayer.volumeBar.updateSliderVal(YTPlayer.opt.vol)):YTPlayer.controlBar&&YTPlayer.controlBar.outerWidth()>400&&YTPlayer.isCompact&&(YTPlayer.controlBar.removeClass(\"compact\"),YTPlayer.isCompact=!1,!YTPlayer.isMute&&YTPlayer.volumeBar&&YTPlayer.volumeBar.updateSliderVal(YTPlayer.opt.vol)),1==YTPlayer.player.getPlayerState()&&(parseFloat(YTPlayer.player.getDuration()-3)<YTPlayer.player.getCurrentTime()||stopAt>0&&parseFloat(YTPlayer.player.getCurrentTime())>stopAt)){if(YTPlayer.isEnded)return;if(YTPlayer.isEnded=!0,setTimeout(function(){YTPlayer.isEnded=!1},2e3),YTPlayer.isPlayList){clearInterval(YTPlayer.getState);var YTPEnd=jQuery.Event(\"YTPEnd\");return YTPEnd.time=YTPlayer.player.time,void jQuery(YTPlayer).trigger(YTPEnd)}data.loop?YTPlayer.player.seekTo(startAt,!0):(YTPlayer.player.pauseVideo(),YTPlayer.wrapper.CSSAnimate({opacity:0},1e3,function(){var a=jQuery.Event(\"YTPEnd\");a.time=YTPlayer.player.time,jQuery(YTPlayer).trigger(a),YTPlayer.player.seekTo(startAt,!0),YTPlayer.isBackground||YTPlayer.opt.containment.css({background:\"rgba(0,0,0,0.5) url(\"+YTPlayer.opt.backgroundUrl+\") center center\",backgroundSize:\"cover\"})}))}},interval))):(jQuery(YTPlayer).YTPPlayerDestroy(),clearInterval(YTPlayer.getState),void clearInterval(YTPlayer.checkForStartAt))},checkForStart:function(a){var b=jQuery(a);if(!jQuery.contains(document,a))return void jQuery(a).YTPPlayerDestroy();if(jQuery.browser.chrome&&(a.opt.quality=\"default\"),a.player.pauseVideo(),jQuery(a).muteYTPVolume(),jQuery(\"#controlBar_\"+a.id).remove(),a.opt.showControls&&jQuery.mbYTPlayer.buildControls(a),a.opt.addRaster){var c=\"dot\"==a.opt.addRaster?\"raster-dot\":\"raster\";a.overlay.addClass(a.isRetina?c+\" retina\":c)}else a.overlay.removeClass(function(a,b){var c=b.split(\" \"),d=[];return jQuery.each(c,function(a,b){/raster.*/.test(b)&&d.push(b)}),d.push(\"retina\"),d.join(\" \")});a.checkForStartAt=setInterval(function(){jQuery(a).YTPMute();var c=a.opt.startAt?a.opt.startAt:1,d=a.player.getVideoLoadedFraction()>c/a.player.getDuration();if(a.player.getDuration()>0&&a.player.getCurrentTime()>=c&&d){clearInterval(a.checkForStartAt),a.isReady=!0,\"function\"==typeof a.opt.onReady&&a.opt.onReady(a);var e=jQuery.Event(\"YTPReady\");jQuery(a).trigger(e),a.player.pauseVideo(),a.opt.mute||jQuery(a).YTPUnmute(),a.canTrigger=!0,a.opt.autoPlay?(b.YTPPlay(),b.css(\"background-image\",\"none\"),jQuery(a.playerEl).CSSAnimate({opacity:1},1e3),a.wrapper.CSSAnimate({opacity:a.isAlone?1:a.opt.opacity},1e3)):(a.player.pauseVideo(),a.isPlayer||(jQuery(a.playerEl).CSSAnimate({opacity:1},1e3),a.wrapper.CSSAnimate({opacity:a.isAlone?1:a.opt.opacity},1e3))),a.isPlayer&&!a.opt.autoPlay&&(a.loading.html(\"Ready\"),setTimeout(function(){a.loading.fadeOut()},100)),a.controlBar&&a.controlBar.slideDown(1e3)}else c>=0&&a.player.seekTo(c,!0)},1e3)},formatTime:function(a){var b=Math.floor(a/60),c=Math.floor(a-60*b);return(9>=b?\"0\"+b:b)+\" : \"+(9>=c?\"0\"+c:c)}},jQuery.fn.toggleVolume=function(){var a=this.get(0);if(a)return a.player.isMuted()?(jQuery(a).YTPUnmute(),!0):(jQuery(a).YTPMute(),!1)},jQuery.fn.optimizeDisplay=function(){var a=this.get(0),b=a.opt,c=jQuery(a.playerEl),d={},e=a.wrapper;d.width=e.outerWidth(),d.height=e.outerHeight();var f=24,g=100,h={};b.optimizeDisplay?(h.width=d.width+d.width*f/100,h.height=\"16/9\"==b.ratio?Math.ceil(9*d.width/16):Math.ceil(3*d.width/4),h.marginTop=-((h.height-d.height)/2),h.marginLeft=-(d.width*(f/2)/100),h.height<d.height&&(h.height=d.height+d.height*f/100,h.width=\"16/9\"==b.ratio?Math.floor(16*d.height/9):Math.floor(4*d.height/3),h.marginTop=-(d.height*(f/2)/100),h.marginLeft=-((h.width-d.width)/2)),h.width+=g,h.height+=g,h.marginTop-=g/2,h.marginLeft-=g/2):(h.width=\"100%\",h.height=\"100%\",h.marginTop=0,h.marginLeft=0),c.css({width:h.width,height:h.height,marginTop:h.marginTop,marginLeft:h.marginLeft})},jQuery.shuffle=function(a){for(var b=a.slice(),c=b.length,d=c;d--;){var e=parseInt(Math.random()*c),f=b[d];b[d]=b[e],b[e]=f}return b},jQuery.fn.YTPlayer=jQuery.mbYTPlayer.buildPlayer,jQuery.fn.YTPlaylist=jQuery.mbYTPlayer.playlist,jQuery.fn.YTPPlayNext=jQuery.mbYTPlayer.playNext,jQuery.fn.YTPPlayPrev=jQuery.mbYTPlayer.playPrev,jQuery.fn.YTPChangeMovie=jQuery.mbYTPlayer.changeMovie,jQuery.fn.YTPGetVideoID=jQuery.mbYTPlayer.getVideoID,jQuery.fn.YTPGetPlayer=jQuery.mbYTPlayer.getPlayer,jQuery.fn.YTPPlayerDestroy=jQuery.mbYTPlayer.playerDestroy,jQuery.fn.YTPFullscreen=jQuery.mbYTPlayer.fullscreen,jQuery.fn.YTPPlay=jQuery.mbYTPlayer.play,jQuery.fn.YTPTogglePlay=jQuery.mbYTPlayer.togglePlay,jQuery.fn.YTPToggleLoops=jQuery.mbYTPlayer.toggleLoops,jQuery.fn.YTPStop=jQuery.mbYTPlayer.stop,jQuery.fn.YTPPause=jQuery.mbYTPlayer.pause,jQuery.fn.YTPSeekTo=jQuery.mbYTPlayer.seekTo,jQuery.fn.YTPMute=jQuery.mbYTPlayer.mute,jQuery.fn.YTPUnmute=jQuery.mbYTPlayer.unmute,jQuery.fn.YTPToggleVolume=jQuery.mbYTPlayer.toggleVolume,jQuery.fn.YTPSetVolume=jQuery.mbYTPlayer.setVolume,jQuery.fn.YTPSetVideoQuality=jQuery.mbYTPlayer.setVideoQuality,jQuery.fn.YTPManageProgress=jQuery.mbYTPlayer.manageProgress,jQuery.fn.YTPGetVideoData=jQuery.mbYTPlayer.getVideoData,jQuery.fn.YTPApplyFilter=jQuery.mbYTPlayer.applyFilter,jQuery.fn.YTPApplyFilters=jQuery.mbYTPlayer.applyFilters,jQuery.fn.YTPToggleFilter=jQuery.mbYTPlayer.toggleFilter,jQuery.fn.YTPToggleFilters=jQuery.mbYTPlayer.toggleFilters,jQuery.fn.YTPRemoveFilter=jQuery.mbYTPlayer.removeFilter,jQuery.fn.YTPDisableFilters=jQuery.mbYTPlayer.disableFilters,jQuery.fn.YTPEnableFilters=jQuery.mbYTPlayer.enableFilters,jQuery.fn.mb_YTPlayer=jQuery.mbYTPlayer.buildPlayer,jQuery.fn.playNext=jQuery.mbYTPlayer.playNext,jQuery.fn.playPrev=jQuery.mbYTPlayer.playPrev,jQuery.fn.changeMovie=jQuery.mbYTPlayer.changeMovie,jQuery.fn.getVideoID=jQuery.mbYTPlayer.getVideoID,jQuery.fn.getPlayer=jQuery.mbYTPlayer.getPlayer,jQuery.fn.playerDestroy=jQuery.mbYTPlayer.playerDestroy,jQuery.fn.fullscreen=jQuery.mbYTPlayer.fullscreen,jQuery.fn.buildYTPControls=jQuery.mbYTPlayer.buildControls,jQuery.fn.playYTP=jQuery.mbYTPlayer.play,jQuery.fn.toggleLoops=jQuery.mbYTPlayer.toggleLoops,jQuery.fn.stopYTP=jQuery.mbYTPlayer.stop,jQuery.fn.pauseYTP=jQuery.mbYTPlayer.pause,jQuery.fn.seekToYTP=jQuery.mbYTPlayer.seekTo,jQuery.fn.muteYTPVolume=jQuery.mbYTPlayer.mute,jQuery.fn.unmuteYTPVolume=jQuery.mbYTPlayer.unmute,jQuery.fn.setYTPVolume=jQuery.mbYTPlayer.setVolume,jQuery.fn.setVideoQuality=jQuery.mbYTPlayer.setVideoQuality,jQuery.fn.manageYTPProgress=jQuery.mbYTPlayer.manageProgress,jQuery.fn.YTPGetDataFromFeed=jQuery.mbYTPlayer.getVideoData}(jQuery,ytp),!function($){function uncamel(a){return a.replace(/([A-Z])/g,function(a){return\"-\"+a.toLowerCase()})}function setUnit(a,b){return\"string\"!=typeof a||a.match(/^[\\-0-9\\.]+$/)?\"\"+a+b:a}function setFilter(a,b,c){var d=uncamel(b),e=jQuery.browser.mozilla?\"\":$.CSS.sfx;a[e+\"filter\"]=a[e+\"filter\"]||\"\",c=setUnit(c>$.CSS.filters[b].max?$.CSS.filters[b].max:c,$.CSS.filters[b].unit),a[e+\"filter\"]+=d+\"(\"+c+\") \",delete a[b]}eval(function(a,b,c,d,e,f){if(e=function(a){return a},!\"\".replace(/^/,String)){for(;c--;)f[c]=d[c]||c;d=[function(a){return f[a]}],e=function(){return\"\\\\w+\"},c=1}for(;c--;)d[c]&&(a=a.replace(new RegExp(\"\\\\b\"+e(c)+\"\\\\b\",\"g\"),d[c]));return a}('29 11=17.53;24(!2.9){2.9={};2.9.34=!1;2.9.22=!1;2.9.45=!1;2.9.42=!1;2.9.40=!1;2.9.28=!1;2.9.56=11;2.9.16=17.51;2.9.13=\"\"+47(17.23);2.9.18=26(17.23,10);29 32,12,20;24(-1!=(12=11.15(\"33\")))2.9.45=!0,2.9.16=\"33\",2.9.13=11.14(12+6),-1!=(12=11.15(\"25\"))&&(2.9.13=11.14(12+8));27 24(-1!=(12=11.15(\"58\")))2.9.28=!0,2.9.16=\"36 38 39\",2.9.13=11.14(12+5);27 24(-1!=11.15(\"57\")){2.9.28=!0;2.9.16=\"36 38 39\";29 30=11.15(\"59:\")+3,43=30+4;2.9.13=11.14(30,43)}27-1!=(12=11.15(\"41\"))?(2.9.22=!0,2.9.40=!0,2.9.16=\"41\",2.9.13=11.14(12+7)):-1!=(12=11.15(\"31\"))?(2.9.22=!0,2.9.42=!0,2.9.16=\"31\",2.9.13=11.14(12+7),-1!=(12=11.15(\"25\"))&&(2.9.13=11.14(12+8))):-1!=(12=11.15(\"68\"))?(2.9.22=!0,2.9.16=\"31\",2.9.13=11.14(12+7),-1!=(12=11.15(\"25\"))&&(2.9.13=11.14(12+8))):-1!=(12=11.15(\"35\"))?(2.9.34=!0,2.9.16=\"35\",2.9.13=11.14(12+8)):(32=11.37(\" \")+1)<(12=11.37(\"/\"))&&(2.9.16=11.14(32,12),2.9.13=11.14(12+1),2.9.16.63()==2.9.16.64()&&(2.9.16=17.51));-1!=(20=2.9.13.15(\";\"))&&(2.9.13=2.9.13.14(0,20));-1!=(20=2.9.13.15(\" \"))&&(2.9.13=2.9.13.14(0,20));2.9.18=26(\"\"+2.9.13,10);67(2.9.18)&&(2.9.13=\"\"+47(17.23),2.9.18=26(17.23,10));2.9.69=2.9.18}2.9.46=/65/19.21(11);2.9.49=/66/19.21(11);2.9.48=/60|61|55/19.21(11);2.9.50=/33 52/19.21(11);2.9.44=/54/19.21(11);2.9.62=2.9.46||2.9.49||2.9.48||2.9.44||2.9.50;',10,70,\"||jQuery|||||||browser||nAgt|verOffset|fullVersion|substring|indexOf|name|navigator|majorVersion|i|ix|test|webkit|appVersion|if|Version|parseInt|else|msie|var|start|Safari|nameOffset|Opera|mozilla|Firefox|Microsoft|lastIndexOf|Internet|Explorer|chrome|Chrome|safari|end|windowsMobile|opera|android|parseFloat|ios|blackberry|operaMobile|appName|Mini|userAgent|IEMobile|iPod|ua|Trident|MSIE|rv|iPhone|iPad|mobile|toLowerCase|toUpperCase|Android|BlackBerry|isNaN|AppleWebkit|version\".split(\"|\"),0,{})),\njQuery.support.CSStransition=function(){var a=document.body||document.documentElement,b=a.style;return void 0!==b.transition||void 0!==b.WebkitTransition||void 0!==b.MozTransition||void 0!==b.MsTransition||void 0!==b.OTransition}(),$.CSS={name:\"mb.CSSAnimate\",author:\"Matteo Bicocchi\",version:\"2.0.0\",transitionEnd:\"transitionEnd\",sfx:\"\",filters:{blur:{min:0,max:100,unit:\"px\"},brightness:{min:0,max:400,unit:\"%\"},contrast:{min:0,max:400,unit:\"%\"},grayscale:{min:0,max:100,unit:\"%\"},hueRotate:{min:0,max:360,unit:\"deg\"},invert:{min:0,max:100,unit:\"%\"},saturate:{min:0,max:400,unit:\"%\"},sepia:{min:0,max:100,unit:\"%\"}},normalizeCss:function(a){var b=jQuery.extend(!0,{},a);jQuery.browser.webkit||jQuery.browser.opera?$.CSS.sfx=\"-webkit-\":jQuery.browser.mozilla?$.CSS.sfx=\"-moz-\":jQuery.browser.msie&&($.CSS.sfx=\"-ms-\");for(var c in b){\"transform\"===c&&(b[$.CSS.sfx+\"transform\"]=b[c],delete b[c]),\"transform-origin\"===c&&(b[$.CSS.sfx+\"transform-origin\"]=a[c],delete b[c]),\"filter\"!==c||jQuery.browser.mozilla||(b[$.CSS.sfx+\"filter\"]=a[c],delete b[c]),\"blur\"===c&&setFilter(b,\"blur\",a[c]),\"brightness\"===c&&setFilter(b,\"brightness\",a[c]),\"contrast\"===c&&setFilter(b,\"contrast\",a[c]),\"grayscale\"===c&&setFilter(b,\"grayscale\",a[c]),\"hueRotate\"===c&&setFilter(b,\"hueRotate\",a[c]),\"invert\"===c&&setFilter(b,\"invert\",a[c]),\"saturate\"===c&&setFilter(b,\"saturate\",a[c]),\"sepia\"===c&&setFilter(b,\"sepia\",a[c]);var d=\"\";\"x\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" translateX(\"+setUnit(a[c],\"px\")+\")\",delete b[c]),\"y\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" translateY(\"+setUnit(a[c],\"px\")+\")\",delete b[c]),\"z\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" translateZ(\"+setUnit(a[c],\"px\")+\")\",delete b[c]),\"rotate\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" rotate(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"rotateX\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" rotateX(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"rotateY\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" rotateY(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"rotateZ\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" rotateZ(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"scale\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" scale(\"+setUnit(a[c],\"\")+\")\",delete b[c]),\"scaleX\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" scaleX(\"+setUnit(a[c],\"\")+\")\",delete b[c]),\"scaleY\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" scaleY(\"+setUnit(a[c],\"\")+\")\",delete b[c]),\"scaleZ\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" scaleZ(\"+setUnit(a[c],\"\")+\")\",delete b[c]),\"skew\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" skew(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"skewX\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" skewX(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"skewY\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" skewY(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"perspective\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" perspective(\"+setUnit(a[c],\"px\")+\")\",delete b[c])}return b},getProp:function(a){var b=[];for(var c in a)b.indexOf(c)<0&&b.push(uncamel(c));return b.join(\",\")},animate:function(a,b,c,d,e){return this.each(function(){function f(){g.called=!0,g.CSSAIsRunning=!1,h.off($.CSS.transitionEnd+\".\"+g.id),clearTimeout(g.timeout),h.css($.CSS.sfx+\"transition\",\"\"),\"function\"==typeof e&&e.apply(g),\"function\"==typeof g.CSSqueue&&(g.CSSqueue(),g.CSSqueue=null)}var g=this,h=jQuery(this);g.id=g.id||\"CSSA_\"+(new Date).getTime();var i=i||{type:\"noEvent\"};if(g.CSSAIsRunning&&g.eventType==i.type&&!jQuery.browser.msie&&jQuery.browser.version<=9)return void(g.CSSqueue=function(){h.CSSAnimate(a,b,c,d,e)});if(g.CSSqueue=null,g.eventType=i.type,0!==h.length&&a){if(a=$.normalizeCss(a),g.CSSAIsRunning=!0,\"function\"==typeof b&&(e=b,b=jQuery.fx.speeds._default),\"function\"==typeof c&&(d=c,c=0),\"string\"==typeof c&&(e=c,c=0),\"function\"==typeof d&&(e=d,d=\"cubic-bezier(0.65,0.03,0.36,0.72)\"),\"string\"==typeof b)for(var j in jQuery.fx.speeds){if(b==j){b=jQuery.fx.speeds[j];break}b=jQuery.fx.speeds._default}if(b||(b=jQuery.fx.speeds._default),\"string\"==typeof e&&(d=e,e=null),!jQuery.support.CSStransition){for(var k in a){if(\"transform\"===k&&delete a[k],\"filter\"===k&&delete a[k],\"transform-origin\"===k&&delete a[k],\"auto\"===a[k]&&delete a[k],\"x\"===k){var l=a[k],m=\"left\";a[m]=l,delete a[k]}if(\"y\"===k){var l=a[k],m=\"top\";a[m]=l,delete a[k]}(\"-ms-transform\"===k||\"-ms-filter\"===k)&&delete a[k]}return void h.delay(c).animate(a,b,e)}var n={\"default\":\"ease\",\"in\":\"ease-in\",out:\"ease-out\",\"in-out\":\"ease-in-out\",snap:\"cubic-bezier(0,1,.5,1)\",easeOutCubic:\"cubic-bezier(.215,.61,.355,1)\",easeInOutCubic:\"cubic-bezier(.645,.045,.355,1)\",easeInCirc:\"cubic-bezier(.6,.04,.98,.335)\",easeOutCirc:\"cubic-bezier(.075,.82,.165,1)\",easeInOutCirc:\"cubic-bezier(.785,.135,.15,.86)\",easeInExpo:\"cubic-bezier(.95,.05,.795,.035)\",easeOutExpo:\"cubic-bezier(.19,1,.22,1)\",easeInOutExpo:\"cubic-bezier(1,0,0,1)\",easeInQuad:\"cubic-bezier(.55,.085,.68,.53)\",easeOutQuad:\"cubic-bezier(.25,.46,.45,.94)\",easeInOutQuad:\"cubic-bezier(.455,.03,.515,.955)\",easeInQuart:\"cubic-bezier(.895,.03,.685,.22)\",easeOutQuart:\"cubic-bezier(.165,.84,.44,1)\",easeInOutQuart:\"cubic-bezier(.77,0,.175,1)\",easeInQuint:\"cubic-bezier(.755,.05,.855,.06)\",easeOutQuint:\"cubic-bezier(.23,1,.32,1)\",easeInOutQuint:\"cubic-bezier(.86,0,.07,1)\",easeInSine:\"cubic-bezier(.47,0,.745,.715)\",easeOutSine:\"cubic-bezier(.39,.575,.565,1)\",easeInOutSine:\"cubic-bezier(.445,.05,.55,.95)\",easeInBack:\"cubic-bezier(.6,-.28,.735,.045)\",easeOutBack:\"cubic-bezier(.175, .885,.32,1.275)\",easeInOutBack:\"cubic-bezier(.68,-.55,.265,1.55)\"};n[d]&&(d=n[d]),h.off($.CSS.transitionEnd+\".\"+g.id);var o=$.CSS.getProp(a),p={};$.extend(p,a),p[$.CSS.sfx+\"transition-property\"]=o,p[$.CSS.sfx+\"transition-duration\"]=b+\"ms\",p[$.CSS.sfx+\"transition-delay\"]=c+\"ms\",p[$.CSS.sfx+\"transition-timing-function\"]=d,setTimeout(function(){h.one($.CSS.transitionEnd+\".\"+g.id,f),h.css(p)},1),g.timeout=setTimeout(function(){return g.called||!e?(g.called=!1,void(g.CSSAIsRunning=!1)):(h.css($.CSS.sfx+\"transition\",\"\"),e.apply(g),g.CSSAIsRunning=!1,void(\"function\"==typeof g.CSSqueue&&(g.CSSqueue(),g.CSSqueue=null)))},b+c+10)}})}},$.fn.CSSAnimate=$.CSS.animate,$.normalizeCss=$.CSS.normalizeCss,$.fn.css3=function(a){return this.each(function(){var b=$(this),c=$.normalizeCss(a);b.css(c)})}}(jQuery);var nAgt=navigator.userAgent;if(!jQuery.browser){jQuery.browser={},jQuery.browser.mozilla=!1,jQuery.browser.webkit=!1,jQuery.browser.opera=!1,jQuery.browser.safari=!1,jQuery.browser.chrome=!1,jQuery.browser.msie=!1,jQuery.browser.ua=nAgt,jQuery.browser.name=navigator.appName,jQuery.browser.fullVersion=\"\"+parseFloat(navigator.appVersion),jQuery.browser.majorVersion=parseInt(navigator.appVersion,10);var nameOffset,verOffset,ix;if(-1!=(verOffset=nAgt.indexOf(\"Opera\")))jQuery.browser.opera=!0,jQuery.browser.name=\"Opera\",jQuery.browser.fullVersion=nAgt.substring(verOffset+6),-1!=(verOffset=nAgt.indexOf(\"Version\"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8));else if(-1!=(verOffset=nAgt.indexOf(\"OPR\")))jQuery.browser.opera=!0,jQuery.browser.name=\"Opera\",jQuery.browser.fullVersion=nAgt.substring(verOffset+4);else if(-1!=(verOffset=nAgt.indexOf(\"MSIE\")))jQuery.browser.msie=!0,jQuery.browser.name=\"Microsoft Internet Explorer\",jQuery.browser.fullVersion=nAgt.substring(verOffset+5);else if(-1!=nAgt.indexOf(\"Trident\")){jQuery.browser.msie=!0,jQuery.browser.name=\"Microsoft Internet Explorer\";var start=nAgt.indexOf(\"rv:\")+3,end=start+4;jQuery.browser.fullVersion=nAgt.substring(start,end)}else-1!=(verOffset=nAgt.indexOf(\"Chrome\"))?(jQuery.browser.webkit=!0,jQuery.browser.chrome=!0,jQuery.browser.name=\"Chrome\",jQuery.browser.fullVersion=nAgt.substring(verOffset+7)):-1!=(verOffset=nAgt.indexOf(\"Safari\"))?(jQuery.browser.webkit=!0,jQuery.browser.safari=!0,jQuery.browser.name=\"Safari\",jQuery.browser.fullVersion=nAgt.substring(verOffset+7),-1!=(verOffset=nAgt.indexOf(\"Version\"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8))):-1!=(verOffset=nAgt.indexOf(\"AppleWebkit\"))?(jQuery.browser.webkit=!0,jQuery.browser.name=\"Safari\",jQuery.browser.fullVersion=nAgt.substring(verOffset+7),-1!=(verOffset=nAgt.indexOf(\"Version\"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8))):-1!=(verOffset=nAgt.indexOf(\"Firefox\"))?(jQuery.browser.mozilla=!0,jQuery.browser.name=\"Firefox\",jQuery.browser.fullVersion=nAgt.substring(verOffset+8)):(nameOffset=nAgt.lastIndexOf(\" \")+1)<(verOffset=nAgt.lastIndexOf(\"/\"))&&(jQuery.browser.name=nAgt.substring(nameOffset,verOffset),jQuery.browser.fullVersion=nAgt.substring(verOffset+1),jQuery.browser.name.toLowerCase()==jQuery.browser.name.toUpperCase()&&(jQuery.browser.name=navigator.appName));-1!=(ix=jQuery.browser.fullVersion.indexOf(\";\"))&&(jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix)),-1!=(ix=jQuery.browser.fullVersion.indexOf(\" \"))&&(jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix)),jQuery.browser.majorVersion=parseInt(\"\"+jQuery.browser.fullVersion,10),isNaN(jQuery.browser.majorVersion)&&(jQuery.browser.fullVersion=\"\"+parseFloat(navigator.appVersion),jQuery.browser.majorVersion=parseInt(navigator.appVersion,10)),jQuery.browser.version=jQuery.browser.majorVersion}jQuery.browser.android=/Android/i.test(nAgt),jQuery.browser.blackberry=/BlackBerry|BB|PlayBook/i.test(nAgt),jQuery.browser.ios=/iPhone|iPad|iPod|webOS/i.test(nAgt),jQuery.browser.operaMobile=/Opera Mini/i.test(nAgt),jQuery.browser.windowsMobile=/IEMobile|Windows Phone/i.test(nAgt),jQuery.browser.kindle=/Kindle|Silk/i.test(nAgt),jQuery.browser.mobile=jQuery.browser.android||jQuery.browser.blackberry||jQuery.browser.ios||jQuery.browser.windowsMobile||jQuery.browser.operaMobile||jQuery.browser.kindle,jQuery.isMobile=jQuery.browser.mobile,jQuery.isAndroidDefault=jQuery.browser.android&&!/chrome/i.test(nAgt),!function(a){/iphone|ipod|ipad|android|ie|blackberry|fennec/.test(navigator.userAgent.toLowerCase());var b=\"ontouchstart\"in window||window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture||window.DocumentTouch&&document instanceof DocumentTouch||!1;a.simpleSlider={defaults:{initialval:0,scale:100,orientation:\"h\",readonly:!1,callback:!1},events:{start:b?\"touchstart\":\"mousedown\",end:b?\"touchend\":\"mouseup\",move:b?\"touchmove\":\"mousemove\"},init:function(c){return this.each(function(){var d=this,e=a(d);e.addClass(\"simpleSlider\"),d.opt={},a.extend(d.opt,a.simpleSlider.defaults,c),a.extend(d.opt,e.data());var f=\"h\"==d.opt.orientation?\"horizontal\":\"vertical\",g=a(\"<div/>\").addClass(\"level\").addClass(f);e.prepend(g),d.level=g,e.css({cursor:\"default\"}),\"auto\"==d.opt.scale&&(d.opt.scale=a(d).outerWidth()),e.updateSliderVal(),d.opt.readonly||(e.on(a.simpleSlider.events.start,function(a){b&&(a=a.changedTouches[0]),d.canSlide=!0,e.updateSliderVal(a),e.css({cursor:\"col-resize\"}),a.preventDefault(),a.stopPropagation()}),a(document).on(a.simpleSlider.events.move,function(c){b&&(c=c.changedTouches[0]),d.canSlide&&(a(document).css({cursor:\"default\"}),e.updateSliderVal(c),c.preventDefault(),c.stopPropagation())}).on(a.simpleSlider.events.end,function(){a(document).css({cursor:\"auto\"}),d.canSlide=!1,e.css({cursor:\"auto\"})}))})},updateSliderVal:function(b){function c(a,b){return Math.floor(100*a/b)}var d=this,e=d.get(0);e.opt.initialval=\"number\"==typeof e.opt.initialval?e.opt.initialval:e.opt.initialval(e);var f=a(e).outerWidth(),g=a(e).outerHeight();e.x=\"object\"==typeof b?b.clientX+document.body.scrollLeft-d.offset().left:\"number\"==typeof b?b*f/e.opt.scale:e.opt.initialval*f/e.opt.scale,e.y=\"object\"==typeof b?b.clientY+document.body.scrollTop-d.offset().top:\"number\"==typeof b?(e.opt.scale-e.opt.initialval-b)*g/e.opt.scale:e.opt.initialval*g/e.opt.scale,e.y=d.outerHeight()-e.y,e.scaleX=e.x*e.opt.scale/f,e.scaleY=e.y*e.opt.scale/g,e.outOfRangeX=e.scaleX>e.opt.scale?e.scaleX-e.opt.scale:e.scaleX<0?e.scaleX:0,e.outOfRangeY=e.scaleY>e.opt.scale?e.scaleY-e.opt.scale:e.scaleY<0?e.scaleY:0,e.outOfRange=\"h\"==e.opt.orientation?e.outOfRangeX:e.outOfRangeY,e.value=\"undefined\"!=typeof b?\"h\"==e.opt.orientation?e.x>=d.outerWidth()?e.opt.scale:e.x<=0?0:e.scaleX:e.y>=d.outerHeight()?e.opt.scale:e.y<=0?0:e.scaleY:\"h\"==e.opt.orientation?e.scaleX:e.scaleY,\"h\"==e.opt.orientation?e.level.width(c(e.x,f)+\"%\"):e.level.height(c(e.y,g)),\"function\"==typeof e.opt.callback&&e.opt.callback(e)}},a.fn.simpleSlider=a.simpleSlider.init,a.fn.updateSliderVal=a.simpleSlider.updateSliderVal}(jQuery),!function(a){a.mbCookie={set:function(a,b,c,d){b=JSON.stringify(b),c||(c=7),d=d?\"; domain=\"+d:\"\";var e,f=new Date;f.setTime(f.getTime()+864e5*c),e=\"; expires=\"+f.toGMTString(),document.cookie=a+\"=\"+b+e+\"; path=/\"+d},get:function(a){for(var b=a+\"=\",c=document.cookie.split(\";\"),d=0;d<c.length;d++){for(var e=c[d];\" \"==e.charAt(0);)e=e.substring(1,e.length);if(0==e.indexOf(b))return JSON.parse(e.substring(b.length,e.length))}return null},remove:function(b){a.mbCookie.set(b,\"\",-1)}},a.mbStorage={set:function(a,b){b=JSON.stringify(b),localStorage.setItem(a,b)},get:function(a){return localStorage[a]?JSON.parse(localStorage[a]):null},remove:function(a){a?localStorage.removeItem(a):localStorage.clear()}}}(jQuery);","/*!\nWaypoints - 4.0.1\nCopyright © 2011-2016 Caleb Troughton\nLicensed under the MIT license.\nhttps://github.com/imakewebthings/waypoints/blob/master/licenses.txt\n*/\n!function(){\"use strict\";function t(o){if(!o)throw new Error(\"No options passed to Waypoint constructor\");if(!o.element)throw new Error(\"No element option passed to Waypoint constructor\");if(!o.handler)throw new Error(\"No handler option passed to Waypoint constructor\");this.key=\"waypoint-\"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?\"horizontal\":\"vertical\",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r>n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll(\"destroy\")},t.disableAll=function(){t.invokeAll(\"disable\")},t.enableAll=function(){t.Context.refreshAll();for(var e in i)i[e].enabled=!0;return this},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:\"default\",horizontal:!1,offset:0},t.offsetAliases={\"bottom-in-view\":function(){return this.context.innerHeight()-this.adapter.outerHeight()},\"right-in-view\":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){\"use strict\";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key=\"waypoint-context-\"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,n.windowContext||(n.windowContext=!0,n.windowContext=new e(window)),this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?\"horizontal\":\"vertical\";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical),i=this.element==this.element.window;t&&e&&!i&&(this.adapter.off(\".waypoints\"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on(\"resize.waypoints\",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on(\"scroll.waypoints\",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:\"right\",backward:\"left\"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:\"down\",backward:\"up\"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s];if(null!==a.triggerPoint){var l=o.oldScroll<a.triggerPoint,h=o.newScroll>=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:\"right\",backward:\"left\",offsetProp:\"left\"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:\"down\",backward:\"up\",offsetProp:\"top\"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),\"function\"==typeof f?f=f.apply(d):\"string\"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf(\"%\")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=Math.floor(y+l-f),h=w<s.oldScroll,p=d.triggerPoint>=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){\"use strict\";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+\"-\"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n=\"up\"===i||\"left\"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){\"use strict\";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each([\"innerHeight\",\"innerWidth\",\"off\",\"offset\",\"on\",\"outerHeight\",\"outerWidth\",\"scrollLeft\",\"scrollTop\"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each([\"extend\",\"inArray\",\"isEmptyObject\"],function(i,o){t[o]=e[o]}),i.adapters.push({name:\"jquery\",Adapter:t}),i.Adapter=t}(),function(){\"use strict\";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});\"string\"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();","/*\n _ _ _ _\n ___| (_) ___| | __ (_)___\n/ __| | |/ __| |/ / | / __|\n\\__ \\ | | (__| < _ | \\__ \\\n|___/_|_|\\___|_|\\_(_)/ |___/\n |__/\n\n Version: 1.5.5\n Author: Ken Wheeler\n Website: http://kenwheeler.github.io\n Docs: http://kenwheeler.github.io/slick\n Repo: http://github.com/kenwheeler/slick\n Issues: http://github.com/kenwheeler/slick/issues\n\n */\n!function(a){\"use strict\";\"function\"==typeof define&&define.amd?define([\"jquery\"],a):\"undefined\"!=typeof exports?module.exports=a(require(\"jquery\")):a(jQuery)}(function(a){\"use strict\";var b=window.Slick||{};b=function(){function c(c,d){var f,g,h,e=this;if(e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'<button type=\"button\" data-role=\"none\" class=\"slick-prev\" aria-label=\"previous\">Previous</button>',nextArrow:'<button type=\"button\" data-role=\"none\" class=\"slick-next\" aria-label=\"next\">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:\"50px\",cssEase:\"ease\",customPaging:function(a,b){return'<button type=\"button\" data-role=\"none\">'+(b+1)+\"</button>\"},dots:!1,dotsClass:\"slick-dots\",draggable:!0,easing:\"linear\",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:\"ondemand\",mobileFirst:!1,pauseOnHover:!0,pauseOnDotsHover:!1,respondTo:\"window\",responsive:null,rows:1,rtl:!1,slide:\"\",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0},e.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},a.extend(e,e.initials),e.activeBreakpoint=null,e.animType=null,e.animProp=null,e.breakpoints=[],e.breakpointSettings=[],e.cssTransitions=!1,e.hidden=\"hidden\",e.paused=!1,e.positionProp=null,e.respondTo=null,e.rowCount=1,e.shouldClick=!0,e.$slider=a(c),e.$slidesCache=null,e.transformType=null,e.transitionType=null,e.visibilityChange=\"visibilitychange\",e.windowWidth=0,e.windowTimer=null,f=a(c).data(\"slick\")||{},e.options=a.extend({},e.defaults,f,d),e.currentSlide=e.options.initialSlide,e.originalSettings=e.options,g=e.options.responsive||null,g&&g.length>-1){e.respondTo=e.options.respondTo||\"window\";for(h in g)g.hasOwnProperty(h)&&(e.breakpoints.push(g[h].breakpoint),e.breakpointSettings[g[h].breakpoint]=g[h].settings);e.breakpoints.sort(function(a,b){return e.options.mobileFirst===!0?a-b:b-a})}\"undefined\"!=typeof document.mozHidden?(e.hidden=\"mozHidden\",e.visibilityChange=\"mozvisibilitychange\"):\"undefined\"!=typeof document.webkitHidden&&(e.hidden=\"webkitHidden\",e.visibilityChange=\"webkitvisibilitychange\"),e.autoPlay=a.proxy(e.autoPlay,e),e.autoPlayClear=a.proxy(e.autoPlayClear,e),e.changeSlide=a.proxy(e.changeSlide,e),e.clickHandler=a.proxy(e.clickHandler,e),e.selectHandler=a.proxy(e.selectHandler,e),e.setPosition=a.proxy(e.setPosition,e),e.swipeHandler=a.proxy(e.swipeHandler,e),e.dragHandler=a.proxy(e.dragHandler,e),e.keyHandler=a.proxy(e.keyHandler,e),e.autoPlayIterator=a.proxy(e.autoPlayIterator,e),e.instanceUid=b++,e.htmlExpr=/^(?:\\s*(<[\\w\\W]+>)[^>]*)$/,e.init(!0),e.checkResponsive(!0)}var b=0;return c}(),b.prototype.addSlide=b.prototype.slickAdd=function(b,c,d){var e=this;if(\"boolean\"==typeof c)d=c,c=null;else if(0>c||c>=e.slideCount)return!1;e.unload(),\"number\"==typeof c?0===c&&0===e.$slides.length?a(b).appendTo(e.$slideTrack):d?a(b).insertBefore(e.$slides.eq(c)):a(b).insertAfter(e.$slides.eq(c)):d===!0?a(b).prependTo(e.$slideTrack):a(b).appendTo(e.$slideTrack),e.$slides=e.$slideTrack.children(this.options.slide),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.append(e.$slides),e.$slides.each(function(b,c){a(c).attr(\"data-slick-index\",b)}),e.$slidesCache=e.$slides,e.reinit()},b.prototype.animateHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.animate({height:b},a.options.speed)}},b.prototype.animateSlide=function(b,c){var d={},e=this;e.animateHeight(),e.options.rtl===!0&&e.options.vertical===!1&&(b=-b),e.transformsEnabled===!1?e.options.vertical===!1?e.$slideTrack.animate({left:b},e.options.speed,e.options.easing,c):e.$slideTrack.animate({top:b},e.options.speed,e.options.easing,c):e.cssTransitions===!1?(e.options.rtl===!0&&(e.currentLeft=-e.currentLeft),a({animStart:e.currentLeft}).animate({animStart:b},{duration:e.options.speed,easing:e.options.easing,step:function(a){a=Math.ceil(a),e.options.vertical===!1?(d[e.animType]=\"translate(\"+a+\"px, 0px)\",e.$slideTrack.css(d)):(d[e.animType]=\"translate(0px,\"+a+\"px)\",e.$slideTrack.css(d))},complete:function(){c&&c.call()}})):(e.applyTransition(),b=Math.ceil(b),d[e.animType]=e.options.vertical===!1?\"translate3d(\"+b+\"px, 0px, 0px)\":\"translate3d(0px,\"+b+\"px, 0px)\",e.$slideTrack.css(d),c&&setTimeout(function(){e.disableTransition(),c.call()},e.options.speed))},b.prototype.asNavFor=function(b){var c=this,d=c.options.asNavFor;d&&null!==d&&(d=a(d).not(c.$slider)),null!==d&&\"object\"==typeof d&&d.each(function(){var c=a(this).slick(\"getSlick\");c.unslicked||c.slideHandler(b,!0)})},b.prototype.applyTransition=function(a){var b=this,c={};c[b.transitionType]=b.options.fade===!1?b.transformType+\" \"+b.options.speed+\"ms \"+b.options.cssEase:\"opacity \"+b.options.speed+\"ms \"+b.options.cssEase,b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.autoPlay=function(){var a=this;a.autoPlayTimer&&clearInterval(a.autoPlayTimer),a.slideCount>a.options.slidesToShow&&a.paused!==!0&&(a.autoPlayTimer=setInterval(a.autoPlayIterator,a.options.autoplaySpeed))},b.prototype.autoPlayClear=function(){var a=this;a.autoPlayTimer&&clearInterval(a.autoPlayTimer)},b.prototype.autoPlayIterator=function(){var a=this;a.options.infinite===!1?1===a.direction?(a.currentSlide+1===a.slideCount-1&&(a.direction=0),a.slideHandler(a.currentSlide+a.options.slidesToScroll)):(0===a.currentSlide-1&&(a.direction=1),a.slideHandler(a.currentSlide-a.options.slidesToScroll)):a.slideHandler(a.currentSlide+a.options.slidesToScroll)},b.prototype.buildArrows=function(){var b=this;b.options.arrows===!0&&b.slideCount>b.options.slidesToShow&&(b.$prevArrow=a(b.options.prevArrow),b.$nextArrow=a(b.options.nextArrow),b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.appendTo(b.options.appendArrows),b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.appendTo(b.options.appendArrows),b.options.infinite!==!0&&b.$prevArrow.addClass(\"slick-disabled\"))},b.prototype.buildDots=function(){var c,d,b=this;if(b.options.dots===!0&&b.slideCount>b.options.slidesToShow){for(d='<ul class=\"'+b.options.dotsClass+'\">',c=0;c<=b.getDotCount();c+=1)d+=\"<li>\"+b.options.customPaging.call(this,b,c)+\"</li>\";d+=\"</ul>\",b.$dots=a(d).appendTo(b.options.appendDots),b.$dots.find(\"li\").first().addClass(\"slick-active\").attr(\"aria-hidden\",\"false\")}},b.prototype.buildOut=function(){var b=this;b.$slides=b.$slider.children(\":not(.slick-cloned)\").addClass(\"slick-slide\"),b.slideCount=b.$slides.length,b.$slides.each(function(b,c){a(c).attr(\"data-slick-index\",b).data(\"originalStyling\",a(c).attr(\"style\")||\"\")}),b.$slidesCache=b.$slides,b.$slider.addClass(\"slick-slider\"),b.$slideTrack=0===b.slideCount?a('<div class=\"slick-track\"/>').appendTo(b.$slider):b.$slides.wrapAll('<div class=\"slick-track\"/>').parent(),b.$list=b.$slideTrack.wrap('<div aria-live=\"polite\" class=\"slick-list\"/>').parent(),b.$slideTrack.css(\"opacity\",0),(b.options.centerMode===!0||b.options.swipeToSlide===!0)&&(b.options.slidesToScroll=1),a(\"img[data-lazy]\",b.$slider).not(\"[src]\").addClass(\"slick-loading\"),b.setupInfinite(),b.buildArrows(),b.buildDots(),b.updateDots(),b.options.accessibility===!0&&b.$list.prop(\"tabIndex\",0),b.setSlideClasses(\"number\"==typeof this.currentSlide?this.currentSlide:0),b.options.draggable===!0&&b.$list.addClass(\"draggable\")},b.prototype.buildRows=function(){var b,c,d,e,f,g,h,a=this;if(e=document.createDocumentFragment(),g=a.$slider.children(),a.options.rows>1){for(h=a.options.slidesPerRow*a.options.rows,f=Math.ceil(g.length/h),b=0;f>b;b++){var i=document.createElement(\"div\");for(c=0;c<a.options.rows;c++){var j=document.createElement(\"div\");for(d=0;d<a.options.slidesPerRow;d++){var k=b*h+(c*a.options.slidesPerRow+d);g.get(k)&&j.appendChild(g.get(k))}i.appendChild(j)}e.appendChild(i)}a.$slider.html(e),a.$slider.children().children().children().css({width:100/a.options.slidesPerRow+\"%\",display:\"inline-block\"})}},b.prototype.checkResponsive=function(b){var d,e,f,c=this,g=!1,h=c.$slider.width(),i=window.innerWidth||a(window).width();if(\"window\"===c.respondTo?f=i:\"slider\"===c.respondTo?f=h:\"min\"===c.respondTo&&(f=Math.min(i,h)),c.originalSettings.responsive&&c.originalSettings.responsive.length>-1&&null!==c.originalSettings.responsive){e=null;for(d in c.breakpoints)c.breakpoints.hasOwnProperty(d)&&(c.originalSettings.mobileFirst===!1?f<c.breakpoints[d]&&(e=c.breakpoints[d]):f>c.breakpoints[d]&&(e=c.breakpoints[d]));null!==e?null!==c.activeBreakpoint?e!==c.activeBreakpoint&&(c.activeBreakpoint=e,\"unslick\"===c.breakpointSettings[e]?c.unslick(e):(c.options=a.extend({},c.originalSettings,c.breakpointSettings[e]),b===!0&&(c.currentSlide=c.options.initialSlide),c.refresh(b)),g=e):(c.activeBreakpoint=e,\"unslick\"===c.breakpointSettings[e]?c.unslick(e):(c.options=a.extend({},c.originalSettings,c.breakpointSettings[e]),b===!0&&(c.currentSlide=c.options.initialSlide),c.refresh(b)),g=e):null!==c.activeBreakpoint&&(c.activeBreakpoint=null,c.options=c.originalSettings,b===!0&&(c.currentSlide=c.options.initialSlide),c.refresh(b),g=e),b||g===!1||c.$slider.trigger(\"breakpoint\",[c,g])}},b.prototype.changeSlide=function(b,c){var f,g,h,d=this,e=a(b.target);switch(e.is(\"a\")&&b.preventDefault(),e.is(\"li\")||(e=e.closest(\"li\")),h=0!==d.slideCount%d.options.slidesToScroll,f=h?0:(d.slideCount-d.currentSlide)%d.options.slidesToScroll,b.data.message){case\"previous\":g=0===f?d.options.slidesToScroll:d.options.slidesToShow-f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide-g,!1,c);break;case\"next\":g=0===f?d.options.slidesToScroll:f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide+g,!1,c);break;case\"index\":var i=0===b.data.index?0:b.data.index||e.index()*d.options.slidesToScroll;d.slideHandler(d.checkNavigable(i),!1,c),e.children().trigger(\"focus\");break;default:return}},b.prototype.checkNavigable=function(a){var c,d,b=this;if(c=b.getNavigableIndexes(),d=0,a>c[c.length-1])a=c[c.length-1];else for(var e in c){if(a<c[e]){a=d;break}d=c[e]}return a},b.prototype.cleanUpEvents=function(){var b=this;b.options.dots&&null!==b.$dots&&(a(\"li\",b.$dots).off(\"click.slick\",b.changeSlide),b.options.pauseOnDotsHover===!0&&b.options.autoplay===!0&&a(\"li\",b.$dots).off(\"mouseenter.slick\",a.proxy(b.setPaused,b,!0)).off(\"mouseleave.slick\",a.proxy(b.setPaused,b,!1))),b.options.arrows===!0&&b.slideCount>b.options.slidesToShow&&(b.$prevArrow&&b.$prevArrow.off(\"click.slick\",b.changeSlide),b.$nextArrow&&b.$nextArrow.off(\"click.slick\",b.changeSlide)),b.$list.off(\"touchstart.slick mousedown.slick\",b.swipeHandler),b.$list.off(\"touchmove.slick mousemove.slick\",b.swipeHandler),b.$list.off(\"touchend.slick mouseup.slick\",b.swipeHandler),b.$list.off(\"touchcancel.slick mouseleave.slick\",b.swipeHandler),b.$list.off(\"click.slick\",b.clickHandler),a(document).off(b.visibilityChange,b.visibility),b.$list.off(\"mouseenter.slick\",a.proxy(b.setPaused,b,!0)),b.$list.off(\"mouseleave.slick\",a.proxy(b.setPaused,b,!1)),b.options.accessibility===!0&&b.$list.off(\"keydown.slick\",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().off(\"click.slick\",b.selectHandler),a(window).off(\"orientationchange.slick.slick-\"+b.instanceUid,b.orientationChange),a(window).off(\"resize.slick.slick-\"+b.instanceUid,b.resize),a(\"[draggable!=true]\",b.$slideTrack).off(\"dragstart\",b.preventDefault),a(window).off(\"load.slick.slick-\"+b.instanceUid,b.setPosition),a(document).off(\"ready.slick.slick-\"+b.instanceUid,b.setPosition)},b.prototype.cleanUpRows=function(){var b,a=this;a.options.rows>1&&(b=a.$slides.children().children(),b.removeAttr(\"style\"),a.$slider.html(b))},b.prototype.clickHandler=function(a){var b=this;b.shouldClick===!1&&(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault())},b.prototype.destroy=function(b){var c=this;c.autoPlayClear(),c.touchObject={},c.cleanUpEvents(),a(\".slick-cloned\",c.$slider).detach(),c.$dots&&c.$dots.remove(),c.$prevArrow&&\"object\"!=typeof c.options.prevArrow&&c.$prevArrow.remove(),c.$nextArrow&&\"object\"!=typeof c.options.nextArrow&&c.$nextArrow.remove(),c.$slides&&(c.$slides.removeClass(\"slick-slide slick-active slick-center slick-visible\").removeAttr(\"aria-hidden\").removeAttr(\"data-slick-index\").each(function(){a(this).attr(\"style\",a(this).data(\"originalStyling\"))}),c.$slideTrack.children(this.options.slide).detach(),c.$slideTrack.detach(),c.$list.detach(),c.$slider.append(c.$slides)),c.cleanUpRows(),c.$slider.removeClass(\"slick-slider\"),c.$slider.removeClass(\"slick-initialized\"),c.unslicked=!0,b||c.$slider.trigger(\"destroy\",[c])},b.prototype.disableTransition=function(a){var b=this,c={};c[b.transitionType]=\"\",b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.fadeSlide=function(a,b){var c=this;c.cssTransitions===!1?(c.$slides.eq(a).css({zIndex:1e3}),c.$slides.eq(a).animate({opacity:1},c.options.speed,c.options.easing,b)):(c.applyTransition(a),c.$slides.eq(a).css({opacity:1,zIndex:1e3}),b&&setTimeout(function(){c.disableTransition(a),b.call()},c.options.speed))},b.prototype.filterSlides=b.prototype.slickFilter=function(a){var b=this;null!==a&&(b.unload(),b.$slideTrack.children(this.options.slide).detach(),b.$slidesCache.filter(a).appendTo(b.$slideTrack),b.reinit())},b.prototype.getCurrent=b.prototype.slickCurrentSlide=function(){var a=this;return a.currentSlide},b.prototype.getDotCount=function(){var a=this,b=0,c=0,d=0;if(a.options.infinite===!0)for(;b<a.slideCount;)++d,b=c+a.options.slidesToShow,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else if(a.options.centerMode===!0)d=a.slideCount;else for(;b<a.slideCount;)++d,b=c+a.options.slidesToShow,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;return d-1},b.prototype.getLeft=function(a){var c,d,f,b=this,e=0;return b.slideOffset=0,d=b.$slides.first().outerHeight(),b.options.infinite===!0?(b.slideCount>b.options.slidesToShow&&(b.slideOffset=-1*b.slideWidth*b.options.slidesToShow,e=-1*d*b.options.slidesToShow),0!==b.slideCount%b.options.slidesToScroll&&a+b.options.slidesToScroll>b.slideCount&&b.slideCount>b.options.slidesToShow&&(a>b.slideCount?(b.slideOffset=-1*(b.options.slidesToShow-(a-b.slideCount))*b.slideWidth,e=-1*(b.options.slidesToShow-(a-b.slideCount))*d):(b.slideOffset=-1*b.slideCount%b.options.slidesToScroll*b.slideWidth,e=-1*b.slideCount%b.options.slidesToScroll*d))):a+b.options.slidesToShow>b.slideCount&&(b.slideOffset=(a+b.options.slidesToShow-b.slideCount)*b.slideWidth,e=(a+b.options.slidesToShow-b.slideCount)*d),b.slideCount<=b.options.slidesToShow&&(b.slideOffset=0,e=0),b.options.centerMode===!0&&b.options.infinite===!0?b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)-b.slideWidth:b.options.centerMode===!0&&(b.slideOffset=0,b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)),c=b.options.vertical===!1?-1*a*b.slideWidth+b.slideOffset:-1*a*d+e,b.options.variableWidth===!0&&(f=b.slideCount<=b.options.slidesToShow||b.options.infinite===!1?b.$slideTrack.children(\".slick-slide\").eq(a):b.$slideTrack.children(\".slick-slide\").eq(a+b.options.slidesToShow),c=f[0]?-1*f[0].offsetLeft:0,b.options.centerMode===!0&&(f=b.options.infinite===!1?b.$slideTrack.children(\".slick-slide\").eq(a):b.$slideTrack.children(\".slick-slide\").eq(a+b.options.slidesToShow+1),c=f[0]?-1*f[0].offsetLeft:0,c+=(b.$list.width()-f.outerWidth())/2)),c},b.prototype.getOption=b.prototype.slickGetOption=function(a){var b=this;return b.options[a]},b.prototype.getNavigableIndexes=function(){var e,a=this,b=0,c=0,d=[];for(a.options.infinite===!1?e=a.slideCount:(b=-1*a.options.slidesToScroll,c=-1*a.options.slidesToScroll,e=2*a.slideCount);e>b;)d.push(b),b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;return d},b.prototype.getSlick=function(){return this},b.prototype.getSlideCount=function(){var c,d,e,b=this;return e=b.options.centerMode===!0?b.slideWidth*Math.floor(b.options.slidesToShow/2):0,b.options.swipeToSlide===!0?(b.$slideTrack.find(\".slick-slide\").each(function(c,f){return f.offsetLeft-e+a(f).outerWidth()/2>-1*b.swipeLeft?(d=f,!1):void 0}),c=Math.abs(a(d).attr(\"data-slick-index\")-b.currentSlide)||1):b.options.slidesToScroll},b.prototype.goTo=b.prototype.slickGoTo=function(a,b){var c=this;c.changeSlide({data:{message:\"index\",index:parseInt(a)}},b)},b.prototype.init=function(b){var c=this;a(c.$slider).hasClass(\"slick-initialized\")||(a(c.$slider).addClass(\"slick-initialized\"),c.buildRows(),c.buildOut(),c.setProps(),c.startLoad(),c.loadSlider(),c.initializeEvents(),c.updateArrows(),c.updateDots()),b&&c.$slider.trigger(\"init\",[c])},b.prototype.initArrowEvents=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.on(\"click.slick\",{message:\"previous\"},a.changeSlide),a.$nextArrow.on(\"click.slick\",{message:\"next\"},a.changeSlide))},b.prototype.initDotEvents=function(){var b=this;b.options.dots===!0&&b.slideCount>b.options.slidesToShow&&a(\"li\",b.$dots).on(\"click.slick\",{message:\"index\"},b.changeSlide),b.options.dots===!0&&b.options.pauseOnDotsHover===!0&&b.options.autoplay===!0&&a(\"li\",b.$dots).on(\"mouseenter.slick\",a.proxy(b.setPaused,b,!0)).on(\"mouseleave.slick\",a.proxy(b.setPaused,b,!1))},b.prototype.initializeEvents=function(){var b=this;b.initArrowEvents(),b.initDotEvents(),b.$list.on(\"touchstart.slick mousedown.slick\",{action:\"start\"},b.swipeHandler),b.$list.on(\"touchmove.slick mousemove.slick\",{action:\"move\"},b.swipeHandler),b.$list.on(\"touchend.slick mouseup.slick\",{action:\"end\"},b.swipeHandler),b.$list.on(\"touchcancel.slick mouseleave.slick\",{action:\"end\"},b.swipeHandler),b.$list.on(\"click.slick\",b.clickHandler),a(document).on(b.visibilityChange,a.proxy(b.visibility,b)),b.$list.on(\"mouseenter.slick\",a.proxy(b.setPaused,b,!0)),b.$list.on(\"mouseleave.slick\",a.proxy(b.setPaused,b,!1)),b.options.accessibility===!0&&b.$list.on(\"keydown.slick\",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on(\"click.slick\",b.selectHandler),a(window).on(\"orientationchange.slick.slick-\"+b.instanceUid,a.proxy(b.orientationChange,b)),a(window).on(\"resize.slick.slick-\"+b.instanceUid,a.proxy(b.resize,b)),a(\"[draggable!=true]\",b.$slideTrack).on(\"dragstart\",b.preventDefault),a(window).on(\"load.slick.slick-\"+b.instanceUid,b.setPosition),a(document).on(\"ready.slick.slick-\"+b.instanceUid,b.setPosition)},b.prototype.initUI=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.show(),a.$nextArrow.show()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.show(),a.options.autoplay===!0&&a.autoPlay()},b.prototype.keyHandler=function(a){var b=this;37===a.keyCode&&b.options.accessibility===!0?b.changeSlide({data:{message:\"previous\"}}):39===a.keyCode&&b.options.accessibility===!0&&b.changeSlide({data:{message:\"next\"}})},b.prototype.lazyLoad=function(){function g(b){a(\"img[data-lazy]\",b).each(function(){var b=a(this),c=a(this).attr(\"data-lazy\"),d=document.createElement(\"img\");d.onload=function(){b.animate({opacity:1},200)},d.src=c,b.css({opacity:0}).attr(\"src\",c).removeAttr(\"data-lazy\").removeClass(\"slick-loading\")})}var c,d,e,f,b=this;b.options.centerMode===!0?b.options.infinite===!0?(e=b.currentSlide+(b.options.slidesToShow/2+1),f=e+b.options.slidesToShow+2):(e=Math.max(0,b.currentSlide-(b.options.slidesToShow/2+1)),f=2+(b.options.slidesToShow/2+1)+b.currentSlide):(e=b.options.infinite?b.options.slidesToShow+b.currentSlide:b.currentSlide,f=e+b.options.slidesToShow,b.options.fade===!0&&(e>0&&e--,f<=b.slideCount&&f++)),c=b.$slider.find(\".slick-slide\").slice(e,f),g(c),b.slideCount<=b.options.slidesToShow?(d=b.$slider.find(\".slick-slide\"),g(d)):b.currentSlide>=b.slideCount-b.options.slidesToShow?(d=b.$slider.find(\".slick-cloned\").slice(0,b.options.slidesToShow),g(d)):0===b.currentSlide&&(d=b.$slider.find(\".slick-cloned\").slice(-1*b.options.slidesToShow),g(d))},b.prototype.loadSlider=function(){var a=this;a.setPosition(),a.$slideTrack.css({opacity:1}),a.$slider.removeClass(\"slick-loading\"),a.initUI(),\"progressive\"===a.options.lazyLoad&&a.progressiveLazyLoad()},b.prototype.next=b.prototype.slickNext=function(){var a=this;a.changeSlide({data:{message:\"next\"}})},b.prototype.orientationChange=function(){var a=this;a.checkResponsive(),a.setPosition()},b.prototype.pause=b.prototype.slickPause=function(){var a=this;a.autoPlayClear(),a.paused=!0},b.prototype.play=b.prototype.slickPlay=function(){var a=this;a.paused=!1,a.autoPlay()},b.prototype.postSlide=function(a){var b=this;b.$slider.trigger(\"afterChange\",[b,a]),b.animating=!1,b.setPosition(),b.swipeLeft=null,b.options.autoplay===!0&&b.paused===!1&&b.autoPlay()},b.prototype.prev=b.prototype.slickPrev=function(){var a=this;a.changeSlide({data:{message:\"previous\"}})},b.prototype.preventDefault=function(a){a.preventDefault()},b.prototype.progressiveLazyLoad=function(){var c,d,b=this;c=a(\"img[data-lazy]\",b.$slider).length,c>0&&(d=a(\"img[data-lazy]\",b.$slider).first(),d.attr(\"src\",d.attr(\"data-lazy\")).removeClass(\"slick-loading\").load(function(){d.removeAttr(\"data-lazy\"),b.progressiveLazyLoad(),b.options.adaptiveHeight===!0&&b.setPosition()}).error(function(){d.removeAttr(\"data-lazy\"),b.progressiveLazyLoad()}))},b.prototype.refresh=function(b){var c=this,d=c.currentSlide;c.destroy(!0),a.extend(c,c.initials),c.init(),b||c.changeSlide({data:{message:\"index\",index:d}},!1)},b.prototype.reinit=function(){var b=this;b.$slides=b.$slideTrack.children(b.options.slide).addClass(\"slick-slide\"),b.slideCount=b.$slides.length,b.currentSlide>=b.slideCount&&0!==b.currentSlide&&(b.currentSlide=b.currentSlide-b.options.slidesToScroll),b.slideCount<=b.options.slidesToShow&&(b.currentSlide=0),b.setProps(),b.setupInfinite(),b.buildArrows(),b.updateArrows(),b.initArrowEvents(),b.buildDots(),b.updateDots(),b.initDotEvents(),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on(\"click.slick\",b.selectHandler),b.setSlideClasses(0),b.setPosition(),b.$slider.trigger(\"reInit\",[b])},b.prototype.resize=function(){var b=this;a(window).width()!==b.windowWidth&&(clearTimeout(b.windowDelay),b.windowDelay=window.setTimeout(function(){b.windowWidth=a(window).width(),b.checkResponsive(),b.unslicked||b.setPosition()},50))},b.prototype.removeSlide=b.prototype.slickRemove=function(a,b,c){var d=this;return\"boolean\"==typeof a?(b=a,a=b===!0?0:d.slideCount-1):a=b===!0?--a:a,d.slideCount<1||0>a||a>d.slideCount-1?!1:(d.unload(),c===!0?d.$slideTrack.children().remove():d.$slideTrack.children(this.options.slide).eq(a).remove(),d.$slides=d.$slideTrack.children(this.options.slide),d.$slideTrack.children(this.options.slide).detach(),d.$slideTrack.append(d.$slides),d.$slidesCache=d.$slides,d.reinit(),void 0)},b.prototype.setCSS=function(a){var d,e,b=this,c={};b.options.rtl===!0&&(a=-a),d=\"left\"==b.positionProp?Math.ceil(a)+\"px\":\"0px\",e=\"top\"==b.positionProp?Math.ceil(a)+\"px\":\"0px\",c[b.positionProp]=a,b.transformsEnabled===!1?b.$slideTrack.css(c):(c={},b.cssTransitions===!1?(c[b.animType]=\"translate(\"+d+\", \"+e+\")\",b.$slideTrack.css(c)):(c[b.animType]=\"translate3d(\"+d+\", \"+e+\", 0px)\",b.$slideTrack.css(c)))},b.prototype.setDimensions=function(){var a=this;a.options.vertical===!1?a.options.centerMode===!0&&a.$list.css({padding:\"0px \"+a.options.centerPadding}):(a.$list.height(a.$slides.first().outerHeight(!0)*a.options.slidesToShow),a.options.centerMode===!0&&a.$list.css({padding:a.options.centerPadding+\" 0px\"})),a.listWidth=a.$list.width(),a.listHeight=a.$list.height(),a.options.vertical===!1&&a.options.variableWidth===!1?(a.slideWidth=Math.ceil(a.listWidth/a.options.slidesToShow),a.$slideTrack.width(Math.ceil(a.slideWidth*a.$slideTrack.children(\".slick-slide\").length))):a.options.variableWidth===!0?a.$slideTrack.width(5e3*a.slideCount):(a.slideWidth=Math.ceil(a.listWidth),a.$slideTrack.height(Math.ceil(a.$slides.first().outerHeight(!0)*a.$slideTrack.children(\".slick-slide\").length)));var b=a.$slides.first().outerWidth(!0)-a.$slides.first().width();a.options.variableWidth===!1&&a.$slideTrack.children(\".slick-slide\").width(a.slideWidth-b)},b.prototype.setFade=function(){var c,b=this;b.$slides.each(function(d,e){c=-1*b.slideWidth*d,b.options.rtl===!0?a(e).css({position:\"relative\",right:c,top:0,zIndex:800,opacity:0}):a(e).css({position:\"relative\",left:c,top:0,zIndex:800,opacity:0})}),b.$slides.eq(b.currentSlide).css({zIndex:900,opacity:1})},b.prototype.setHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.css(\"height\",b)}},b.prototype.setOption=b.prototype.slickSetOption=function(a,b,c){var d=this;d.options[a]=b,c===!0&&(d.unload(),d.reinit())},b.prototype.setPosition=function(){var a=this;a.setDimensions(),a.setHeight(),a.options.fade===!1?a.setCSS(a.getLeft(a.currentSlide)):a.setFade(),a.$slider.trigger(\"setPosition\",[a])},b.prototype.setProps=function(){var a=this,b=document.body.style;a.positionProp=a.options.vertical===!0?\"top\":\"left\",\"top\"===a.positionProp?a.$slider.addClass(\"slick-vertical\"):a.$slider.removeClass(\"slick-vertical\"),(void 0!==b.WebkitTransition||void 0!==b.MozTransition||void 0!==b.msTransition)&&a.options.useCSS===!0&&(a.cssTransitions=!0),void 0!==b.OTransform&&(a.animType=\"OTransform\",a.transformType=\"-o-transform\",a.transitionType=\"OTransition\",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.MozTransform&&(a.animType=\"MozTransform\",a.transformType=\"-moz-transform\",a.transitionType=\"MozTransition\",void 0===b.perspectiveProperty&&void 0===b.MozPerspective&&(a.animType=!1)),void 0!==b.webkitTransform&&(a.animType=\"webkitTransform\",a.transformType=\"-webkit-transform\",a.transitionType=\"webkitTransition\",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.msTransform&&(a.animType=\"msTransform\",a.transformType=\"-ms-transform\",a.transitionType=\"msTransition\",void 0===b.msTransform&&(a.animType=!1)),void 0!==b.transform&&a.animType!==!1&&(a.animType=\"transform\",a.transformType=\"transform\",a.transitionType=\"transition\"),a.transformsEnabled=null!==a.animType&&a.animType!==!1},b.prototype.setSlideClasses=function(a){var c,d,e,f,b=this;b.$slider.find(\".slick-slide\").removeClass(\"slick-active\").attr(\"aria-hidden\",\"true\").removeClass(\"slick-center\"),d=b.$slider.find(\".slick-slide\"),b.options.centerMode===!0?(c=Math.floor(b.options.slidesToShow/2),b.options.infinite===!0&&(a>=c&&a<=b.slideCount-1-c?b.$slides.slice(a-c,a+c+1).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):(e=b.options.slidesToShow+a,d.slice(e-c+1,e+c+2).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\")),0===a?d.eq(d.length-1-b.options.slidesToShow).addClass(\"slick-center\"):a===b.slideCount-1&&d.eq(b.options.slidesToShow).addClass(\"slick-center\")),b.$slides.eq(a).addClass(\"slick-center\")):a>=0&&a<=b.slideCount-b.options.slidesToShow?b.$slides.slice(a,a+b.options.slidesToShow).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):d.length<=b.options.slidesToShow?d.addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):(f=b.slideCount%b.options.slidesToShow,e=b.options.infinite===!0?b.options.slidesToShow+a:a,b.options.slidesToShow==b.options.slidesToScroll&&b.slideCount-a<b.options.slidesToShow?d.slice(e-(b.options.slidesToShow-f),e+f).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):d.slice(e,e+b.options.slidesToShow).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\")),\"ondemand\"===b.options.lazyLoad&&b.lazyLoad()},b.prototype.setupInfinite=function(){var c,d,e,b=this;if(b.options.fade===!0&&(b.options.centerMode=!1),b.options.infinite===!0&&b.options.fade===!1&&(d=null,b.slideCount>b.options.slidesToShow)){for(e=b.options.centerMode===!0?b.options.slidesToShow+1:b.options.slidesToShow,c=b.slideCount;c>b.slideCount-e;c-=1)d=c-1,a(b.$slides[d]).clone(!0).attr(\"id\",\"\").attr(\"data-slick-index\",d-b.slideCount).prependTo(b.$slideTrack).addClass(\"slick-cloned\");for(c=0;e>c;c+=1)d=c,a(b.$slides[d]).clone(!0).attr(\"id\",\"\").attr(\"data-slick-index\",d+b.slideCount).appendTo(b.$slideTrack).addClass(\"slick-cloned\");b.$slideTrack.find(\".slick-cloned\").find(\"[id]\").each(function(){a(this).attr(\"id\",\"\")})}},b.prototype.setPaused=function(a){var b=this;b.options.autoplay===!0&&b.options.pauseOnHover===!0&&(b.paused=a,a?b.autoPlayClear():b.autoPlay())},b.prototype.selectHandler=function(b){var c=this,d=a(b.target).is(\".slick-slide\")?a(b.target):a(b.target).parents(\".slick-slide\"),e=parseInt(d.attr(\"data-slick-index\"));return e||(e=0),c.slideCount<=c.options.slidesToShow?(c.$slider.find(\".slick-slide\").removeClass(\"slick-active\").attr(\"aria-hidden\",\"true\"),c.$slides.eq(e).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"),c.options.centerMode===!0&&(c.$slider.find(\".slick-slide\").removeClass(\"slick-center\"),c.$slides.eq(e).addClass(\"slick-center\")),c.asNavFor(e),void 0):(c.slideHandler(e),void 0)},b.prototype.slideHandler=function(a,b,c){var d,e,f,g,h=null,i=this;return b=b||!1,i.animating===!0&&i.options.waitForAnimate===!0||i.options.fade===!0&&i.currentSlide===a||i.slideCount<=i.options.slidesToShow?void 0:(b===!1&&i.asNavFor(a),d=a,h=i.getLeft(d),g=i.getLeft(i.currentSlide),i.currentLeft=null===i.swipeLeft?g:i.swipeLeft,i.options.infinite===!1&&i.options.centerMode===!1&&(0>a||a>i.getDotCount()*i.options.slidesToScroll)?(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d)),void 0):i.options.infinite===!1&&i.options.centerMode===!0&&(0>a||a>i.slideCount-i.options.slidesToScroll)?(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d)),void 0):(i.options.autoplay===!0&&clearInterval(i.autoPlayTimer),e=0>d?0!==i.slideCount%i.options.slidesToScroll?i.slideCount-i.slideCount%i.options.slidesToScroll:i.slideCount+d:d>=i.slideCount?0!==i.slideCount%i.options.slidesToScroll?0:d-i.slideCount:d,i.animating=!0,i.$slider.trigger(\"beforeChange\",[i,i.currentSlide,e]),f=i.currentSlide,i.currentSlide=e,i.setSlideClasses(i.currentSlide),i.updateDots(),i.updateArrows(),i.options.fade===!0?(c!==!0?i.fadeSlide(e,function(){i.postSlide(e)}):i.postSlide(e),i.animateHeight(),void 0):(c!==!0?i.animateSlide(h,function(){i.postSlide(e)}):i.postSlide(e),void 0)))},b.prototype.startLoad=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.hide(),a.$nextArrow.hide()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.hide(),a.$slider.addClass(\"slick-loading\")},b.prototype.swipeDirection=function(){var a,b,c,d,e=this;return a=e.touchObject.startX-e.touchObject.curX,b=e.touchObject.startY-e.touchObject.curY,c=Math.atan2(b,a),d=Math.round(180*c/Math.PI),0>d&&(d=360-Math.abs(d)),45>=d&&d>=0?e.options.rtl===!1?\"left\":\"right\":360>=d&&d>=315?e.options.rtl===!1?\"left\":\"right\":d>=135&&225>=d?e.options.rtl===!1?\"right\":\"left\":e.options.verticalSwiping===!0?d>=35&&135>=d?\"left\":\"right\":\"vertical\"},b.prototype.swipeEnd=function(){var c,b=this;if(b.dragging=!1,b.shouldClick=b.touchObject.swipeLength>10?!1:!0,void 0===b.touchObject.curX)return!1;if(b.touchObject.edgeHit===!0&&b.$slider.trigger(\"edge\",[b,b.swipeDirection()]),b.touchObject.swipeLength>=b.touchObject.minSwipe)switch(b.swipeDirection()){case\"left\":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide+b.getSlideCount()):b.currentSlide+b.getSlideCount(),b.slideHandler(c),b.currentDirection=0,b.touchObject={},b.$slider.trigger(\"swipe\",[b,\"left\"]);break;case\"right\":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide-b.getSlideCount()):b.currentSlide-b.getSlideCount(),b.slideHandler(c),b.currentDirection=1,b.touchObject={},b.$slider.trigger(\"swipe\",[b,\"right\"])\n}else b.touchObject.startX!==b.touchObject.curX&&(b.slideHandler(b.currentSlide),b.touchObject={})},b.prototype.swipeHandler=function(a){var b=this;if(!(b.options.swipe===!1||\"ontouchend\"in document&&b.options.swipe===!1||b.options.draggable===!1&&-1!==a.type.indexOf(\"mouse\")))switch(b.touchObject.fingerCount=a.originalEvent&&void 0!==a.originalEvent.touches?a.originalEvent.touches.length:1,b.touchObject.minSwipe=b.listWidth/b.options.touchThreshold,b.options.verticalSwiping===!0&&(b.touchObject.minSwipe=b.listHeight/b.options.touchThreshold),a.data.action){case\"start\":b.swipeStart(a);break;case\"move\":b.swipeMove(a);break;case\"end\":b.swipeEnd(a)}},b.prototype.swipeMove=function(a){var d,e,f,g,h,b=this;return h=void 0!==a.originalEvent?a.originalEvent.touches:null,!b.dragging||h&&1!==h.length?!1:(d=b.getLeft(b.currentSlide),b.touchObject.curX=void 0!==h?h[0].pageX:a.clientX,b.touchObject.curY=void 0!==h?h[0].pageY:a.clientY,b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curX-b.touchObject.startX,2))),b.options.verticalSwiping===!0&&(b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curY-b.touchObject.startY,2)))),e=b.swipeDirection(),\"vertical\"!==e?(void 0!==a.originalEvent&&b.touchObject.swipeLength>4&&a.preventDefault(),g=(b.options.rtl===!1?1:-1)*(b.touchObject.curX>b.touchObject.startX?1:-1),b.options.verticalSwiping===!0&&(g=b.touchObject.curY>b.touchObject.startY?1:-1),f=b.touchObject.swipeLength,b.touchObject.edgeHit=!1,b.options.infinite===!1&&(0===b.currentSlide&&\"right\"===e||b.currentSlide>=b.getDotCount()&&\"left\"===e)&&(f=b.touchObject.swipeLength*b.options.edgeFriction,b.touchObject.edgeHit=!0),b.swipeLeft=b.options.vertical===!1?d+f*g:d+f*(b.$list.height()/b.listWidth)*g,b.options.verticalSwiping===!0&&(b.swipeLeft=d+f*g),b.options.fade===!0||b.options.touchMove===!1?!1:b.animating===!0?(b.swipeLeft=null,!1):(b.setCSS(b.swipeLeft),void 0)):void 0)},b.prototype.swipeStart=function(a){var c,b=this;return 1!==b.touchObject.fingerCount||b.slideCount<=b.options.slidesToShow?(b.touchObject={},!1):(void 0!==a.originalEvent&&void 0!==a.originalEvent.touches&&(c=a.originalEvent.touches[0]),b.touchObject.startX=b.touchObject.curX=void 0!==c?c.pageX:a.clientX,b.touchObject.startY=b.touchObject.curY=void 0!==c?c.pageY:a.clientY,b.dragging=!0,void 0)},b.prototype.unfilterSlides=b.prototype.slickUnfilter=function(){var a=this;null!==a.$slidesCache&&(a.unload(),a.$slideTrack.children(this.options.slide).detach(),a.$slidesCache.appendTo(a.$slideTrack),a.reinit())},b.prototype.unload=function(){var b=this;a(\".slick-cloned\",b.$slider).remove(),b.$dots&&b.$dots.remove(),b.$prevArrow&&\"object\"!=typeof b.options.prevArrow&&b.$prevArrow.remove(),b.$nextArrow&&\"object\"!=typeof b.options.nextArrow&&b.$nextArrow.remove(),b.$slides.removeClass(\"slick-slide slick-active slick-visible\").attr(\"aria-hidden\",\"true\").css(\"width\",\"\")},b.prototype.unslick=function(a){var b=this;b.$slider.trigger(\"unslick\",[b,a]),b.destroy()},b.prototype.updateArrows=function(){var b,a=this;b=Math.floor(a.options.slidesToShow/2),a.options.arrows===!0&&a.options.infinite!==!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.removeClass(\"slick-disabled\"),a.$nextArrow.removeClass(\"slick-disabled\"),0===a.currentSlide?(a.$prevArrow.addClass(\"slick-disabled\"),a.$nextArrow.removeClass(\"slick-disabled\")):a.currentSlide>=a.slideCount-a.options.slidesToShow&&a.options.centerMode===!1?(a.$nextArrow.addClass(\"slick-disabled\"),a.$prevArrow.removeClass(\"slick-disabled\")):a.currentSlide>=a.slideCount-1&&a.options.centerMode===!0&&(a.$nextArrow.addClass(\"slick-disabled\"),a.$prevArrow.removeClass(\"slick-disabled\")))},b.prototype.updateDots=function(){var a=this;null!==a.$dots&&(a.$dots.find(\"li\").removeClass(\"slick-active\").attr(\"aria-hidden\",\"true\"),a.$dots.find(\"li\").eq(Math.floor(a.currentSlide/a.options.slidesToScroll)).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"))},b.prototype.visibility=function(){var a=this;document[a.hidden]?(a.paused=!0,a.autoPlayClear()):a.options.autoplay===!0&&(a.paused=!1,a.autoPlay())},a.fn.slick=function(){var g,a=this,c=arguments[0],d=Array.prototype.slice.call(arguments,1),e=a.length,f=0;for(f;e>f;f++)if(\"object\"==typeof c||\"undefined\"==typeof c?a[f].slick=new b(a[f],c):g=a[f].slick[c].apply(a[f].slick,d),\"undefined\"!=typeof g)return g;return a}});","/*! WOW - v1.1.2 - 2015-04-07\n* Copyright (c) 2015 Matthieu Aussaguel; Licensed MIT */\n(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.createEvent=function(a,b,c,d){var e;return null==b&&(b=!1),null==c&&(c=!1),null==d&&(d=null),null!=document.createEvent?(e=document.createEvent(\"CustomEvent\"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e},a.prototype.emitEvent=function(a,b){return null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():\"on\"+b in(null!=a)?a[\"on\"+b]():void 0},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent(\"on\"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent(\"on\"+b,c):delete a[b]},a.prototype.innerHeight=function(){return\"innerHeight\"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){\"undefined\"!=typeof console&&null!==console&&console.warn(\"MutationObserver is not supported by your browser.\"),\"undefined\"!=typeof console&&null!==console&&console.warn(\"WOW.js cannot detect dom mutations, please call .sync() after loading new content.\")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a){return this.getPropertyValue=function(b){var c;return\"float\"===b&&(b=\"styleFloat\"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.resetAnimation=f(this.resetAnimation,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),this.animationNameCache=new c,this.wowEvent=this.util().createEvent(this.config.boxClass)}return e.prototype.defaults={boxClass:\"wow\",animateClass:\"animated\",offset:0,mobile:!0,live:!0,callback:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,\"interactive\"===(a=document.readyState)||\"complete\"===a?this.start():this.util().addEvent(document,\"DOMContentLoaded\",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll(\".\"+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(window,\"scroll\",this.scrollHandler),this.util().addEvent(window,\"resize\",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],c=0,d=b.length;d>c;c++)f=b[c],g.push(function(){var a,b,c,d;for(c=f.addedNodes||[],d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(this.doSync(e));return d}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(window,\"scroll\",this.scrollHandler),this.util().removeEvent(window,\"resize\",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll(\".\"+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyle(a),a.className=a.className+\" \"+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),this.util().emitEvent(a,this.wowEvent),this.util().addEvent(a,\"animationend\",this.resetAnimation),this.util().addEvent(a,\"oanimationend\",this.resetAnimation),this.util().addEvent(a,\"webkitAnimationEnd\",this.resetAnimation),this.util().addEvent(a,\"MSAnimationEnd\",this.resetAnimation),a},e.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute(\"data-wow-duration\"),c=a.getAttribute(\"data-wow-delay\"),e=a.getAttribute(\"data-wow-iteration\"),this.animate(function(f){return function(){return f.customStyle(a,b,d,c,e)}}(this))},e.prototype.animate=function(){return\"requestAnimationFrame\"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),e.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.style.visibility=\"visible\");return e},e.prototype.resetAnimation=function(a){var b;return a.type.toLowerCase().indexOf(\"animationend\")>=0?(b=a.target||a.srcElement,b.className=b.className.replace(this.config.animateClass,\"\").trim()):void 0},e.prototype.customStyle=function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?\"hidden\":\"visible\",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?\"none\":this.cachedAnimationName(a)}),a},e.prototype.vendors=[\"moz\",\"webkit\"],e.prototype.vendorSet=function(a,b){var c,d,e,f;d=[];for(c in b)e=b[c],a[\"\"+c]=e,d.push(function(){var b,d,g,h;for(g=this.vendors,h=[],b=0,d=g.length;d>b;b++)f=g[b],h.push(a[\"\"+f+c.charAt(0).toUpperCase()+c.substr(1)]=e);return h}.call(this));return d},e.prototype.vendorCSS=function(a,b){var c,e,f,g,h,i;for(h=d(a),g=h.getPropertyCSSValue(b),f=this.vendors,c=0,e=f.length;e>c;c++)i=f[c],g=g||h.getPropertyCSSValue(\"-\"+i+\"-\"+b);return g},e.prototype.animationName=function(a){var b;try{b=this.vendorCSS(a,\"animation-name\").cssText}catch(c){b=d(a).getPropertyValue(\"animation-name\")}return\"none\"===b?\"\":b},e.prototype.cacheAnimationName=function(a){return this.animationNameCache.set(a,this.animationName(a))},e.prototype.cachedAnimationName=function(a){return this.animationNameCache.get(a)},e.prototype.scrollHandler=function(){return this.scrolled=!0},e.prototype.scrollCallback=function(){var a;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},e.prototype.offsetTop=function(a){for(var b;void 0===a.offsetTop;)a=a.parentNode;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},e.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute(\"data-wow-offset\")||this.config.offset,f=window.pageYOffset,e=f+Math.min(this.element.clientHeight,this.util().innerHeight())-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},e.prototype.util=function(){return null!=this._util?this._util:this._util=new b},e.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},e}()}).call(this);"]}