text: // Avoid `console` errors in browsers that lack a console.
  !function( ){for ( var a, b = function( ){}, c = ["assert", "clear", "count", "debug", "dir", "dirxml", "error", "exception", "group", "groupCollapsed", "groupEnd", "info", "log", "markTimeline", "profile", "profileEnd", "table", "time", "timeEnd", "timeline", "timelineEnd", "timeStamp", "trace", "warn"], d = c.length, e = window.console = window.console || {}; d--; )a = c[d], e[a] || ( e[a] = b )}( );
  // Place any jQuery/helper plugins in here.
  
      /*
       jQuery Waypoints - v2.0.3
       Copyright (c) 2011-2013 Caleb Troughton
       Dual licensed under the MIT license and GPL license.
       https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt
       */
          ( function( ){var t = [].indexOf || function( t ){for ( var e = 0, i = this.length; i > e; e++ )if ( e in this && this[e] === t )return e; return - 1}, e = [].slice; !function( t, e ){return"function" == typeof define && define.amd?define( "waypoints", ["jquery"], function( i ){return e( i, t )} ):e( t.jQuery, t )}( this, function( i, s ){var n, o, r, a, h, l, c, d, u, p, g, f, m, v, y, _; return n = i( s ), d = t.call( s, "ontouchstart" ) >= 0, a = {horizontal:{}, vertical:{}}, h = 1, c = {}, l = "waypoints-context-id", g = "resize.waypoints", f = "scroll.waypoints", m = 1, v = "waypoints-waypoint-ids", y = "waypoint", _ = "waypoints", o = function( ){function t( t ){var e = this; this.$element = t, this.element = t[0], this.didResize = !1, this.didScroll = !1, this.id = "context" + h++, this.oldScroll = {x:t.scrollLeft( ), y:t.scrollTop( )}, this.waypoints = {horizontal:{}, vertical:{}}, t.data( l, this.id ), c[this.id] = this, t.bind( f, function( ){var t; return e.didScroll || d?void 0:( e.didScroll = !0, t = function( ){return e.doScroll( ), e.didScroll = !1}, s.setTimeout( t, i[_].settings.scrollThrottle ) )} ), t.bind( g, function( ){var t; return e.didResize?void 0:( e.didResize = !0, t = function( ){return i[_]( "refresh" ), e.didResize = !1}, s.setTimeout( t, i[_].settings.resizeThrottle ) )} )}return t.prototype.doScroll = function( ){var t, e = this; return t = {horizontal:{newScroll:this.$element.scrollLeft( ), oldScroll:this.oldScroll.x, forward:"right", backward:"left"}, vertical:{newScroll:this.$element.scrollTop( ), oldScroll:this.oldScroll.y, forward:"down", backward:"up"}}, !d || t.vertical.oldScroll && t.vertical.newScroll || i[_]( "refresh" ), i.each( t, function( t, s ){var n, o, r; return r = [], o = s.newScroll > s.oldScroll, n = o?s.forward:s.backward, i.each( e.waypoints[t], function( t, e ){var i, n; return s.oldScroll < ( i = e.offset ) && i <= s.newScroll?r.push( e ):s.newScroll < ( n = e.offset ) && n <= s.oldScroll?r.push( e ):void 0} ), r.sort( function( t, e ){return t.offset - e.offset} ), o || r.reverse( ), i.each( r, function( t, e ){return e.options.continuous || t === r.length - 1?e.trigger( [n] ):void 0} )} ), this.oldScroll = {x:t.horizontal.newScroll, y:t.vertical.newScroll}}, t.prototype.refresh = function( ){var t, e, s, n = this; return s = i.isWindow( this.element ), e = this.$element.offset( ), this.doScroll( ), t = {horizontal:{contextOffset:s?0:e.left, contextScroll:s?0:this.oldScroll.x, contextDimension:this.$element.width( ), oldScroll:this.oldScroll.x, forward:"right", backward:"left", offsetProp:"left"}, vertical:{contextOffset:s?0:e.top, contextScroll:s?0:this.oldScroll.y, contextDimension:s?i[_]( "viewportHeight" ):this.$element.height( ), oldScroll:this.oldScroll.y, forward:"down", backward:"up", offsetProp:"top"}}, i.each( t, function( t, e ){return i.each( n.waypoints[t], function( t, s ){var n, o, r, a, h; return n = s.options.offset, r = s.offset, o = i.isWindow( s.element )?0:s.$element.offset( )[e.offsetProp], i.isFunction( n )?n = n.apply( s.element ):"string" == typeof n && ( n = parseFloat( n ), s.options.offset.indexOf( "%" ) > - 1 && ( n = Math.ceil( e.contextDimension * n / 100 ) ) ), s.offset = o - e.contextOffset + e.contextScroll - n, s.options.onlyOnScroll && null != r || !s.enabled?void 0:null !== r && r < ( a = e.oldScroll ) && a <= s.offset?s.trigger( [e.backward] ):null !== r && r > ( h = e.oldScroll ) && h >= s.offset?s.trigger( [e.forward] ):null === r && e.oldScroll >= s.offset?s.trigger( [e.forward] ):void 0} )} )}, t.prototype.checkEmpty = function( ){return i.isEmptyObject( this.waypoints.horizontal ) && i.isEmptyObject( this.waypoints.vertical )?( this.$element.unbind( [g, f].join( " " ) ), delete c[this.id] ):void 0}, t}( ), r = function( ){function t( t, e, s ){var n, o; s = i.extend( {}, i.fn[y].defaults, s ), "bottom-in-view" === s.offset && ( s.offset = function( ){var t; return t = i[_]( "viewportHeight" ), i.isWindow( e.element ) || ( t = e.$element.height( ) ), t - i( this ).outerHeight( )} ), this.$element = t, this.element = t[0], this.axis = s.horizontal?"horizontal":"vertical", this.callback = s.handler, this.context = e, this.enabled = s.enabled, this.id = "waypoints" + m++, this.offset = null, this.options = s, e.waypoints[this.axis][this.id] = this, a[this.axis][this.id] = this, n = null != ( o = t.data( v ) )?o:[], n.push( this.id ), t.data( v, n )}return t.prototype.trigger = function( t ){return this.enabled?( null != this.callback && this.callback.apply( this.element, t ), this.options.triggerOnce?this.destroy( ):void 0 ):void 0}, t.prototype.disable = function( ){return this.enabled = !1}, t.prototype.enable = function( ){return this.context.refresh( ), this.enabled = !0}, t.prototype.destroy = function( ){return delete a[this.axis][this.id], delete this.context.waypoints[this.axis][this.id], this.context.checkEmpty( )}, t.getWaypointsByElement = function( t ){var e, s; return( s = i( t ).data( v ) )?( e = i.extend( {}, a.horizontal, a.vertical ), i.map( s, function( t ){return e[t]} ) ):[]}, t}( ), p = {init:function( t, e ){var s; return null == e && ( e = {} ), null == ( s = e.handler ) && ( e.handler = t ), this.each( function( ){var t, s, n, a; return t = i( this ), n = null != ( a = e.context )?a:i.fn[y].defaults.context, i.isWindow( n ) || ( n = t.closest( n ) ), n = i( n ), s = c[n.data( l )], s || ( s = new o( n ) ), new r( t, s, e )} ), i[_]( "refresh" ), this}, disable:function( ){return p._invoke( this, "disable" )}, enable:function( ){return p._invoke( this, "enable" )}, destroy:function( ){return p._invoke( this, "destroy" )}, prev:function( t, e ){return p._traverse.call( this, t, e, function( t, e, i ){return e > 0?t.push( i[e - 1] ):void 0} )}, next:function( t, e ){return p._traverse.call( this, t, e, function( t, e, i ){return e < i.length - 1?t.push( i[e + 1] ):void 0} )}, _traverse:function( t, e, n ){var o, r; return null == t && ( t = "vertical" ), null == e && ( e = s ), r = u.aggregate( e ), o = [], this.each( function( ){var e; return e = i.inArray( this, r[t] ), n( o, e, r[t] )} ), this.pushStack( o )}, _invoke:function( t, e ){return t.each( function( ){var t; return t = r.getWaypointsByElement( this ), i.each( t, function( t, i ){return i[e]( ), !0} )} ), this}}, i.fn[y] = function( ){var t, s; return s = arguments[0], t = 2 <= arguments.length?e.call( arguments, 1 ):[], p[s]?p[s].apply( this, t ):i.isFunction( s )?p.init.apply( this, arguments ):i.isPlainObject( s )?p.init.apply( this, [null, s] ):s?i.error( "The " + s + " method does not exist in jQuery Waypoints." ):i.error( "jQuery Waypoints needs a callback function or handler option." )}, i.fn[y].defaults = {context:s, continuous:!0, enabled:!0, horizontal:!1, offset:0, triggerOnce:!1}, u = {refresh:function( ){return i.each( c, function( t, e ){return e.refresh( )} )}, viewportHeight:function( ){var t; return null != ( t = s.innerHeight )?t:n.height( )}, aggregate:function( t ){var e, s, n; return e = a, t && ( e = null != ( n = c[i( t ).data( l )] )?n.waypoints:void 0 ), e?( s = {horizontal:[], vertical:[]}, i.each( s, function( t, n ){return i.each( e[t], function( t, e ){return n.push( e )} ), n.sort( function( t, e ){return t.offset - e.offset} ), s[t] = i.map( n, function( t ){return t.element} ), s[t] = i.unique( s[t] )} ), s ):[]}, above:function( t ){return null == t && ( t = s ), u._filter( t, "vertical", function( t, e ){return e.offset <= t.oldScroll.y} )}, below:function( t ){return null == t && ( t = s ), u._filter( t, "vertical", function( t, e ){return e.offset > t.oldScroll.y} )}, left:function( t ){return null == t && ( t = s ), u._filter( t, "horizontal", function( t, e ){return e.offset <= t.oldScroll.x} )}, right:function( t ){return null == t && ( t = s ), u._filter( t, "horizontal", function( t, e ){return e.offset > t.oldScroll.x} )}, enable:function( ){return u._invoke( "enable" )}, disable:function( ){return u._invoke( "disable" )}, destroy:function( ){return u._invoke( "destroy" )}, extendFn:function( t, e ){return p[t] = e}, _invoke:function( t ){var e; return e = i.extend( {}, a.vertical, a.horizontal ), i.each( e, function( e, i ){return i[t]( ), !0} )}, _filter:function( t, e, s ){var n, o; return( n = c[i( t ).data( l )] )?( o = [], i.each( n.waypoints[e], function( t, e ){return s( n, e )?o.push( e ):void 0} ), o.sort( function( t, e ){return t.offset - e.offset} ), i.map( o, function( t ){return t.element} ) ):[]}}, i[_] = function( ){var t, i; return i = arguments[0], t = 2 <= arguments.length?e.call( arguments, 1 ):[], u[i]?u[i].apply( null, t ):u.aggregate.call( null, i )}, i[_].settings = {resizeThrottle:100, scrollThrottle:30}, n.load( function( ){return i[_]( "refresh" )} )} )} ).call( this ), !function( t, e, i, s ){function n( e, i ){this.settings = null, this.options = t.extend( {}, n.Defaults, i ), this.$element = t( e ), this.drag = t.extend( {}, u ), this.state = t.extend( {}, p ), this.e = t.extend( {}, g ), this._plugins = {}, this._supress = {}, this._current = null, this._speed = null, this._coordinates = [], this._breakpoint = null, this._width = null, this._items = [], this._clones = [], this._mergers = [], this._invalidated = {}, this._pipe = [], t.each( n.Plugins, t.proxy( function( t, e ){this._plugins[t[0].toLowerCase( ) + t.slice( 1 )] = new e( this )}, this ) ), t.each( n.Pipe, t.proxy( function( e, i ){this._pipe.push( {filter:i.filter, run:t.proxy( i.run, this )} )}, this ) ), this.setup( ), this.initialize( )}function o( t ){if ( t.touches !== s )return{x:t.touches[0].pageX, y:t.touches[0].pageY}; if ( t.touches === s ){if ( t.pageX !== s )return{x:t.pageX, y:t.pageY}; if ( t.pageX === s )return{x:t.clientX, y:t.clientY}}}function r( t ){var e, s, n = i.createElement( "div" ), o = t; for ( e in o )if ( s = o[e], "undefined" != typeof n.style[s] )return n = null, [s, e]; return[!1]}function a( ){return r( ["transition", "WebkitTransition", "MozTransition", "OTransition"] )[1]}function h( ){return r( ["transform", "WebkitTransform", "MozTransform", "OTransform", "msTransform"] )[0]}function l( ){return r( ["perspective", "webkitPerspective", "MozPerspective", "OPerspective", "MsPerspective"] )[0]}function c( ){return"ontouchstart"in e || !!navigator.msMaxTouchPoints}function d( ){return e.navigator.msPointerEnabled}var u, p, g; u = {start:0, startX:0, startY:0, current:0, currentX:0, currentY:0, offsetX:0, offsetY:0, distance:null, startTime:0, endTime:0, updatedX:0, targetEl:null}, p = {isTouch:!1, isScrolling:!1, isSwiping:!1, direction:!1, inMotion:!1}, g = {_onDragStart:null, _onDragMove:null, _onDragEnd:null, _transitionEnd:null, _resizer:null, _responsiveCall:null, _goToLoop:null, _checkVisibile:null}, n.Defaults = {items:3, loop:!1, center:!1, mouseDrag:!0, touchDrag:!0, pullDrag:!0, freeDrag:!1, margin:0, stagePadding:0, merge:!1, mergeFit:!0, autoWidth:!1, startPosition:0, rtl:!1, smartSpeed:250, fluidSpeed:!1, dragEndSpeed:!1, responsive:{}, responsiveRefreshRate:200, responsiveBaseElement:e, responsiveClass:!1, fallbackEasing:"swing", info:!1, nestedItemSelector:!1, itemElement:"div", stageElement:"div", themeClass:"owl-theme", baseClass:"owl-carousel", itemClass:"owl-item", centerClass:"center", activeClass:"active"}, n.Width = {Default:"default", Inner:"inner", Outer:"outer"}, n.Plugins = {}, n.Pipe = [{filter:["width", "items", "settings"], run:function( t ){t.current = this._items && this._items[this.relative( this._current )]}}, {filter:["items", "settings"], run:function( ){var t = this._clones, e = this.$stage.children( ".cloned" ); ( e.length !== t.length || !this.settings.loop && t.length > 0 ) && ( this.$stage.children( ".cloned" ).remove( ), this._clones = [] )}}, {filter:["items", "settings"], run:function( ){var t, e, i = this._clones, s = this._items, n = this.settings.loop?i.length - Math.max( 2 * this.settings.items, 4 ):0; for ( t = 0, e = Math.abs( n / 2 ); e > t; t++ )n > 0?( this.$stage.children( ).eq( s.length + i.length - 1 ).remove( ), i.pop( ), this.$stage.children( ).eq( 0 ).remove( ), i.pop( ) ):( i.push( i.length / 2 ), this.$stage.append( s[i[i.length - 1]].clone( ).addClass( "cloned" ) ), i.push( s.length - 1 - ( i.length - 1 ) / 2 ), this.$stage.prepend( s[i[i.length - 1]].clone( ).addClass( "cloned" ) ) )}}, {filter:["width", "items", "settings"], run:function( ){var t, e, i, s = this.settings.rtl?1: - 1, n = ( this.width( ) / this.settings.items ).toFixed( 3 ), o = 0; for ( this._coordinates = [], e = 0, i = this._clones.length + this._items.length; i > e; e++ )t = this._mergers[this.relative( e )], t = this.settings.mergeFit && Math.min( t, this.settings.items ) || t, o += ( this.settings.autoWidth?this._items[this.relative( e )].width( ) + this.settings.margin:n * t ) * s, this._coordinates.push( o )}}, {filter:["width", "items", "settings"], run:function( ){var e, i, s = ( this.width( ) / this.settings.items ).toFixed( 3 ), n = {width:Math.abs( this._coordinates[this._coordinates.length - 1] ) + 2 * this.settings.stagePadding, "padding-left":this.settings.stagePadding || "", "padding-right":this.settings.stagePadding || ""}; if ( this.$stage.css( n ), n = {width:this.settings.autoWidth?"auto":s - this.settings.margin}, n[this.settings.rtl?"margin-left":"margin-right"] = this.settings.margin, !this.settings.autoWidth && t.grep( this._mergers, function( t ){return t > 1} ).length > 0 )for ( e = 0, i = this._coordinates.length; i > e; e++ )n.width = Math.abs( this._coordinates[e] ) - Math.abs( this._coordinates[e - 1] || 0 ) - this.settings.margin, this.$stage.children( ).eq( e ).css( n ); else this.$stage.children( ).css( n )}}, {filter:["width", "items", "settings"], run:function( t ){t.current && this.reset( this.$stage.children( ).index( t.current ) )}}, {filter:["position"], run:function( ){this.animate( this.coordinates( this._current ) )}}, {filter:["width", "position", "items", "settings"], run:function( ){var t, e, i, s, n = this.settings.rtl?1: - 1, o = 2 * this.settings.stagePadding, r = this.coordinates( this.current( ) ) + o, a = r + this.width( ) * n, h = []; for ( i = 0, s = this._coordinates.length; s > i; i++ )t = this._coordinates[i - 1] || 0, e = Math.abs( this._coordinates[i] ) + o * n, ( this.op( t, "<=", r ) && this.op( t, ">", a ) || this.op( e, "<", r ) && this.op( e, ">", a ) ) && h.push( i ); this.$stage.children( "." + this.settings.activeClass ).removeClass( this.settings.activeClass ), this.$stage.children( ":eq(" + h.join( "), :eq(" ) + ")" ).addClass( this.settings.activeClass ), this.settings.center && ( this.$stage.children( "." + this.settings.centerClass ).removeClass( this.settings.centerClass ), this.$stage.children( ).eq( this.current( ) ).addClass( this.settings.centerClass ) )}}], n.prototype.initialize = function( ){if ( this.trigger( "initialize" ), this.$element.addClass( this.settings.baseClass ).addClass( this.settings.themeClass ).toggleClass( "owl-rtl", this.settings.rtl ), this.browserSupport( ), this.settings.autoWidth && this.state.imagesLoaded !== !0 ){var e, i, n; if ( e = this.$element.find( "img" ), i = this.settings.nestedItemSelector?"." + this.settings.nestedItemSelector:s, n = this.$element.children( i ).width( ), e.length && 0 >= n )return this.preloadAutoWidthImages( e ), !1}this.$element.addClass( "owl-loading" ), this.$stage = t( "<" + this.settings.stageElement + ' class="owl-stage"/>' ).wrap( '<div class="owl-stage-outer">' ), this.$element.append( this.$stage.parent( ) ), this.replace( this.$element.children( ).not( this.$stage.parent( ) ) ), this._width = this.$element.width( ), this.refresh( ), this.$element.removeClass( "owl-loading" ).addClass( "owl-loaded" ), this.eventsCall( ), this.internalEvents( ), this.addTriggerableEvents( ), this.trigger( "initialized" )}, n.prototype.setup = function( ){var e = this.viewport( ), i = this.options.responsive, s = - 1, n = null; i?( t.each( i, function( t ){e >= t && t > s && ( s = Number( t ) )} ), n = t.extend( {}, this.options, i[s] ), delete n.responsive, n.responsiveClass && this.$element.attr( "class", function( t, e ){return e.replace( /\b owl-responsive-\S+/g, "" )} ).addClass( "owl-responsive-" + s ) ):n = t.extend( {}, this.options ), ( null === this.settings || this._breakpoint !== s ) && ( this.trigger( "change", {property:{name:"settings", value:n}} ), this._breakpoint = s, this.settings = n, this.invalidate( "settings" ), this.trigger( "changed", {property:{name:"settings", value:this.settings}} ) )}, n.prototype.optionsLogic = function( ){this.$element.toggleClass( "owl-center", this.settings.center ), this.settings.loop && this._items.length < this.settings.items && ( this.settings.loop = !1 ), this.settings.autoWidth && ( this.settings.stagePadding = !1, this.settings.merge = !1 )}, n.prototype.prepare = function( e ){var i = this.trigger( "prepare", {content:e} ); return i.data || ( i.data = t( "<" + this.settings.itemElement + "/>" ).addClass( this.settings.itemClass ).append( e ) ), this.trigger( "prepared", {content:i.data} ), i.data}, n.prototype.update = function( ){for ( var e = 0, i = this._pipe.length, s = t.proxy( function( t ){return this[t]}, this._invalidated ), n = {}; i > e; )( this._invalidated.all || t.grep( this._pipe[e].filter, s ).length > 0 ) && this._pipe[e].run( n ), e++; this._invalidated = {}}, n.prototype.width = function( t ){switch ( t = t || n.Width.Default ){case n.Width.Inner:case n.Width.Outer:return this._width; default:return this._width - 2 * this.settings.stagePadding + this.settings.margin}}, n.prototype.refresh = function( ){return 0 === this._items.length?!1:( ( new Date ).getTime( ), this.trigger( "refresh" ), this.setup( ), this.optionsLogic( ), this.$stage.addClass( "owl-refresh" ), this.update( ), this.$stage.removeClass( "owl-refresh" ), this.state.orientation = e.orientation, this.watchVisibility( ), this.trigger( "refreshed" ), void 0 )}, n.prototype.eventsCall = function( ){this.e._onDragStart = t.proxy( function( t ){this.onDragStart( t )}, this ), this.e._onDragMove = t.proxy( function( t ){this.onDragMove( t )}, this ), this.e._onDragEnd = t.proxy( function( t ){this.onDragEnd( t )}, this ), this.e._onResize = t.proxy( function( t ){this.onResize( t )}, this ), this.e._transitionEnd = t.proxy( function( t ){this.transitionEnd( t )}, this ), this.e._preventClick = t.proxy( function( t ){this.preventClick( t )}, this )}, n.prototype.onThrottledResize = function( ){e.clearTimeout( this.resizeTimer ), this.resizeTimer = e.setTimeout( this.e._onResize, this.settings.responsiveRefreshRate )}, n.prototype.onResize = function( ){return this._items.length?this._width === this.$element.width( )?!1:this.trigger( "resize" ).isDefaultPrevented( )?!1:( this._width = this.$element.width( ), this.invalidate( "width" ), this.refresh( ), void this.trigger( "resized" ) ):!1}, n.prototype.eventsRouter = function( t ){var e = t.type; "mousedown" === e || "touchstart" === e?this.onDragStart( t ):"mousemove" === e || "touchmove" === e?this.onDragMove( t ):"mouseup" === e || "touchend" === e?this.onDragEnd( t ):"touchcancel" === e && this.onDragEnd( t )}, n.prototype.internalEvents = function( ){var i = ( c( ), d( ) ); this.settings.mouseDrag?( this.$stage.on( "mousedown", t.proxy( function( t ){this.eventsRouter( t )}, this ) ), this.$stage.on( "dragstart", function( ){return!1} ), this.$stage.get( 0 ).onselectstart = function( ){return!1} ):this.$element.addClass( "owl-text-select-on" ), this.settings.touchDrag && !i && this.$stage.on( "touchstart touchcancel", t.proxy( function( t ){this.eventsRouter( t )}, this ) ), this.transitionEndVendor && this.on( this.$stage.get( 0 ), this.transitionEndVendor, this.e._transitionEnd, !1 ), this.settings.responsive !== !1 && this.on( e, "resize", t.proxy( this.onThrottledResize, this ) )}, n.prototype.onDragStart = function( s ){var n, r, a, h; if ( n = s.originalEvent || s || e.event, 3 === n.which || this.state.isTouch )return!1; if ( "mousedown" === n.type && this.$stage.addClass( "owl-grab" ), this.trigger( "drag" ), this.drag.startTime = ( new Date ).getTime( ), this.speed( 0 ), this.state.isTouch = !0, this.state.isScrolling = !1, this.state.isSwiping = !1, this.drag.distance = 0, r = o( n ).x, a = o( n ).y, this.drag.offsetX = this.$stage.position( ).left, this.drag.offsetY = this.$stage.position( ).top, this.settings.rtl && ( this.drag.offsetX = this.$stage.position( ).left + this.$stage.width( ) - this.width( ) + this.settings.margin ), this.state.inMotion && this.support3d )h = this.getTransformProperty( ), this.drag.offsetX = h, this.animate( h ), this.state.inMotion = !0; else if ( this.state.inMotion && !this.support3d )return this.state.inMotion = !1, !1; this.drag.startX = r - this.drag.offsetX, this.drag.startY = a - this.drag.offsetY, this.drag.start = r - this.drag.startX, this.drag.targetEl = n.target || n.srcElement, this.drag.updatedX = this.drag.start, ( "IMG" === this.drag.targetEl.tagName || "A" === this.drag.targetEl.tagName ) && ( this.drag.targetEl.draggable = !1 ), t( i ).on( "mousemove.owl.dragEvents mouseup.owl.dragEvents touchmove.owl.dragEvents touchend.owl.dragEvents", t.proxy( function( t ){this.eventsRouter( t )}, this ) )}, n.prototype.onDragMove = function( t ){var i, n, r, a, h, l; this.state.isTouch && ( this.state.isScrolling || ( i = t.originalEvent || t || e.event, n = o( i ).x, r = o( i ).y, this.drag.currentX = n - this.drag.startX, this.drag.currentY = r - this.drag.startY, this.drag.distance = this.drag.currentX - this.drag.offsetX, this.drag.distance < 0?this.state.direction = this.settings.rtl?"right":"left":this.drag.distance > 0 && ( this.state.direction = this.settings.rtl?"left":"right" ), this.settings.loop?this.op( this.drag.currentX, ">", this.coordinates( this.minimum( ) ) ) && "right" === this.state.direction?this.drag.currentX -= ( this.settings.center && this.coordinates( 0 ) ) - this.coordinates( this._items.length ):this.op( this.drag.currentX, "<", this.coordinates( this.maximum( ) ) ) && "left" === this.state.direction && ( this.drag.currentX += ( this.settings.center && this.coordinates( 0 ) ) - this.coordinates( this._items.length ) ):( a = this.coordinates( this.settings.rtl?this.maximum( ):this.minimum( ) ), h = this.coordinates( this.settings.rtl?this.minimum( ):this.maximum( ) ), l = this.settings.pullDrag?this.drag.distance / 5:0, this.drag.currentX = Math.max( Math.min( this.drag.currentX, a + l ), h + l ) ), ( this.drag.distance > 8 || this.drag.distance < - 8 ) && ( i.preventDefault !== s?i.preventDefault( ):i.returnValue = !1, this.state.isSwiping = !0 ), this.drag.updatedX = this.drag.currentX, ( this.drag.currentY > 16 || this.drag.currentY < - 16 ) && this.state.isSwiping === !1 && ( this.state.isScrolling = !0, this.drag.updatedX = this.drag.start ), this.animate( this.drag.updatedX ) ) )}, n.prototype.onDragEnd = function( e ){var s, n, o; if ( this.state.isTouch ){if ( "mouseup" === e.type && this.$stage.removeClass( "owl-grab" ), this.trigger( "dragged" ), this.drag.targetEl.removeAttribute( "draggable" ), this.state.isTouch = !1, this.state.isScrolling = !1, this.state.isSwiping = !1, 0 === this.drag.distance && this.state.inMotion !== !0 )return this.state.inMotion = !1, !1; this.drag.endTime = ( new Date ).getTime( ), s = this.drag.endTime - this.drag.startTime, n = Math.abs( this.drag.distance ), ( n > 3 || s > 300 ) && this.removeClick( this.drag.targetEl ), o = this.closest( this.drag.updatedX ), this.speed( this.settings.dragEndSpeed || this.settings.smartSpeed ), this.current( o ), this.invalidate( "position" ), this.update( ), this.settings.pullDrag || this.drag.updatedX !== this.coordinates( o ) || this.transitionEnd( ), this.drag.distance = 0, t( i ).off( ".owl.dragEvents" )}}, n.prototype.removeClick = function( i ){this.drag.targetEl = i, t( i ).on( "click.preventClick", this.e._preventClick ), e.setTimeout( function( ){t( i ).off( "click.preventClick" )}, 300 )}, n.prototype.preventClick = function( e ){e.preventDefault?e.preventDefault( ):e.returnValue = !1, e.stopPropagation && e.stopPropagation( ), t( e.target ).off( "click.preventClick" )}, n.prototype.getTransformProperty = function( ){var t, i; return t = e.getComputedStyle( this.$stage.get( 0 ), null ).getPropertyValue( this.vendorName + "transform" ), t = t.replace( /matrix(3d)?\(|\)/g, "" ).split( "," ), i = 16 === t.length, i !== !0?t[4]:t[12]}, n.prototype.closest = function( e ){var i = - 1, s = 30, n = this.width( ), o = this.coordinates( ); return this.settings.freeDrag || t.each( o, t.proxy( function( t, r ){return e > r - s && r + s > e?i = t:this.op( e, "<", r ) && this.op( e, ">", o[t + 1] || r - n ) && ( i = "left" === this.state.direction?t + 1:t ), - 1 === i}, this ) ), this.settings.loop || ( this.op( e, ">", o[this.minimum( )] )?i = e = this.minimum( ):this.op( e, "<", o[this.maximum( )] ) && ( i = e = this.maximum( ) ) ), i}, n.prototype.animate = function( e ){this.trigger( "translate" ), this.state.inMotion = this.speed( ) > 0, this.support3d?this.$stage.css( {transform:"translate3d(" + e + "px,0px, 0px)", transition:this.speed( ) / 1e3 + "s"} ):this.state.isTouch?this.$stage.css( {left:e + "px"} ):this.$stage.animate( {left:e}, this.speed( ) / 1e3, this.settings.fallbackEasing, t.proxy( function( ){this.state.inMotion && this.transitionEnd( )}, this ) )}, n.prototype.current = function( t ){if ( t === s )return this._current; if ( 0 === this._items.length )return s; if ( t = this.normalize( t ), this._current !== t ){var e = this.trigger( "change", {property:{name:"position", value:t}} ); e.data !== s && ( t = this.normalize( e.data ) ), this._current = t, this.invalidate( "position" ), this.trigger( "changed", {property:{name:"position", value:this._current}} )}return this._current}, n.prototype.invalidate = function( t ){this._invalidated[t] = !0}, n.prototype.reset = function( t ){t = this.normalize( t ), t !== s && ( this._speed = 0, this._current = t, this.suppress( ["translate", "translated"] ), this.animate( this.coordinates( t ) ), this.release( ["translate", "translated"] ) )}, n.prototype.normalize = function( e, i ){var n = i?this._items.length:this._items.length + this._clones.length; return!t.isNumeric( e ) || 1 > n?s:e = this._clones.length?( e % n + n ) % n:Math.max( this.minimum( i ), Math.min( this.maximum( i ), e ) )}, n.prototype.relative = function( t ){return t = this.normalize( t ), t -= this._clones.length / 2, this.normalize( t, !0 )}, n.prototype.maximum = function( t ){var e, i, s, n = 0, o = this.settings; if ( t )return this._items.length - 1; if ( !o.loop && o.center )e = this._items.length - 1; else if ( o.loop || o.center )if ( o.loop || o.center )e = this._items.length + o.items; else{if ( !o.autoWidth && !o.merge )throw"Can not detect maximum absolute position."; for ( revert = o.rtl?1: - 1, i = this.$stage.width( ) - this.$element.width( ); ( s = this.coordinates( n ) ) && !( s * revert >= i ); )e = ++n} else e = this._items.length - o.items; return e}, n.prototype.minimum = function( t ){return t?0:this._clones.length / 2}, n.prototype.items = function( t ){return t === s?this._items.slice( ):( t = this.normalize( t, !0 ), this._items[t] )}, n.prototype.mergers = function( t ){return t === s?this._mergers.slice( ):( t = this.normalize( t, !0 ), this._mergers[t] )}, n.prototype.clones = function( e ){var i = this._clones.length / 2, n = i + this._items.length, o = function( t ){return t % 2 === 0?n + t / 2:i - ( t + 1 ) / 2}; return e === s?t.map( this._clones, function( t, e ){return o( e )} ):t.map( this._clones, function( t, i ){return t === e?o( i ):null} )}, n.prototype.speed = function( t ){return t !== s && ( this._speed = t ), this._speed}, n.prototype.coordinates = function( e ){var i = null; return e === s?t.map( this._coordinates, t.proxy( function( t, e ){return this.coordinates( e )}, this ) ):( this.settings.center?( i = this._coordinates[e], i += ( this.width( ) - i + ( this._coordinates[e - 1] || 0 ) ) / 2 * ( this.settings.rtl? - 1:1 ) ):i = this._coordinates[e - 1] || 0, i )}, n.prototype.duration = function( t, e, i ){return Math.min( Math.max( Math.abs( e - t ), 1 ), 6 ) * Math.abs( i || this.settings.smartSpeed )}, n.prototype.to = function( i, s ){if ( this.settings.loop ){var n = i - this.relative( this.current( ) ), o = this.current( ), r = this.current( ), a = this.current( ) + n, h = 0 > r - a?!0:!1, l = this._clones.length + this._items.length; a < this.settings.items && h === !1?( o = r + this._items.length, this.reset( o ) ):a >= l - this.settings.items && h === !0 && ( o = r - this._items.length, this.reset( o ) ), e.clearTimeout( this.e._goToLoop ), this.e._goToLoop = e.setTimeout( t.proxy( function( ){this.speed( this.duration( this.current( ), o + n, s ) ), this.current( o + n ), this.update( )}, this ), 30 )} else this.speed( this.duration( this.current( ), i, s ) ), this.current( i ), this.update( )}, n.prototype.next = function( t ){t = t || !1, this.to( this.relative( this.current( ) ) + 1, t )}, n.prototype.prev = function( t ){t = t || !1, this.to( this.relative( this.current( ) ) - 1, t )}, n.prototype.transitionEnd = function( t ){return t !== s && ( t.stopPropagation( ), ( t.target || t.srcElement || t.originalTarget ) !== this.$stage.get( 0 ) )?!1:( this.state.inMotion = !1, void this.trigger( "translated" ) )}, n.prototype.viewport = function( ){var s; if ( this.options.responsiveBaseElement !== e )s = t( this.options.responsiveBaseElement ).width( ); else if ( e.innerWidth )s = e.innerWidth; else{if ( !i.documentElement || !i.documentElement.clientWidth )throw"Can not detect viewport width."; s = i.documentElement.clientWidth}return s}, n.prototype.replace = function( e ){this.$stage.empty( ), this._items = [], e && ( e = e instanceof jQuery?e:t( e ) ), this.settings.nestedItemSelector && ( e = e.find( "." + this.settings.nestedItemSelector ) ), e.filter( function( ){return 1 === this.nodeType} ).each( t.proxy( function( t, e ){e = this.prepare( e ), this.$stage.append( e ), this._items.push( e ), this._mergers.push( 1 * e.find( "[data-merge]" ).andSelf( "[data-merge]" ).attr( "data-merge" ) || 1 )}, this ) ), this.reset( t.isNumeric( this.settings.startPosition )?this.settings.startPosition:0 ), this.invalidate( "items" )}, n.prototype.add = function( t, e ){e = e === s?this._items.length:this.normalize( e, !0 ), this.trigger( "add", {content:t, position:e} ), 0 === this._items.length || e === this._items.length?( this.$stage.append( t ), this._items.push( t ), this._mergers.push( 1 * t.find( "[data-merge]" ).andSelf( "[data-merge]" ).attr( "data-merge" ) || 1 ) ):( this._items[e].before( t ), this._items.splice( e, 0, t ), this._mergers.splice( e, 0, 1 * t.find( "[data-merge]" ).andSelf( "[data-merge]" ).attr( "data-merge" ) || 1 ) ), this.invalidate( "items" ), this.trigger( "added", {content:t, position:e} )}, n.prototype.remove = function( t ){t = this.normalize( t, !0 ), t !== s && ( this.trigger( "remove", {content:this._items[t], position:t} ), this._items[t].remove( ), this._items.splice( t, 1 ), this._mergers.splice( t, 1 ), this.invalidate( "items" ), this.trigger( "removed", {content:null, position:t} ) )}, n.prototype.addTriggerableEvents = function( ){var e = t.proxy( function( e, i ){return t.proxy( function( t ){t.relatedTarget !== this && ( this.suppress( [i] ), e.apply( this, [].slice.call( arguments, 1 ) ), this.release( [i] ) )}, this )}, this ); t.each( {next:this.next, prev:this.prev, to:this.to, destroy:this.destroy, refresh:this.refresh, replace:this.replace, add:this.add, remove:this.remove}, t.proxy( function( t, i ){this.$element.on( t + ".owl.carousel", e( i, t + ".owl.carousel" ) )}, this ) )}, n.prototype.watchVisibility = function( ){function i( t ){return t.offsetWidth > 0 && t.offsetHeight > 0}function s( ){i( this.$element.get( 0 ) ) && ( this.$element.removeClass( "owl-hidden" ), this.refresh( ), e.clearInterval( this.e._checkVisibile ) )}i( this.$element.get( 0 ) ) || ( this.$element.addClass( "owl-hidden" ), e.clearInterval( this.e._checkVisibile ), this.e._checkVisibile = e.setInterval( t.proxy( s, this ), 500 ) )}, n.prototype.preloadAutoWidthImages = function( e ){var i, s, n, o; i = 0, s = this, e.each( function( r, a ){n = t( a ), o = new Image, o.onload = function( ){i++, n.attr( "src", o.src ), n.css( "opacity", 1 ), i >= e.length && ( s.state.imagesLoaded = !0, s.initialize( ) )}, o.src = n.attr( "src" ) || n.attr( "data-src" ) || n.attr( "data-src-retina" )} )}, n.prototype.destroy = function( ){this.$element.hasClass( this.settings.themeClass ) && this.$element.removeClass( this.settings.themeClass ), this.settings.responsive !== !1 && t( e ).off( "resize.owl.carousel" ), this.transitionEndVendor && this.off( this.$stage.get( 0 ), this.transitionEndVendor, this.e._transitionEnd ); for ( var s in this._plugins )this._plugins[s].destroy( ); ( this.settings.mouseDrag || this.settings.touchDrag ) && ( this.$stage.off( "mousedown touchstart touchcancel" ), t( i ).off( ".owl.dragEvents" ), this.$stage.get( 0 ).onselectstart = function( ){}, this.$stage.off( "dragstart", function( ){return!1} ) ), this.$element.off( ".owl" ), this.$stage.children( ".cloned" ).remove( ), this.e = null, this.$element.removeData( "owlCarousel" ), this.$stage.children( ).contents( ).unwrap( ), this.$stage.children( ).unwrap( ), this.$stage.unwrap( )}, n.prototype.op = function( t, e, i ){var s = this.settings.rtl; switch ( e ){case"<":return s?t > i:i > t; case">":return s?i > t:t > i; case">=":return s?i >= t:t >= i; case"<=":return s?t >= i:i >= t}}, n.prototype.on = function( t, e, i, s ){t.addEventListener?t.addEventListener( e, i, s ):t.attachEvent && t.attachEvent( "on" + e, i )}, n.prototype.off = function( t, e, i, s ){t.removeEventListener?t.removeEventListener( e, i, s ):t.detachEvent && t.detachEvent( "on" + e, i )}, n.prototype.trigger = function( e, i, s ){var n = {item:{count:this._items.length, index:this.current( )}}, o = t.camelCase( t.grep( ["on", e, s], function( t ){return t} ).join( "-" ).toLowerCase( ) ), r = t.Event( [e, "owl", s || "carousel"].join( "." ).toLowerCase( ), t.extend( {relatedTarget:this}, n, i ) ); return this._supress[e] || ( t.each( this._plugins, function( t, e ){e.onTrigger && e.onTrigger( r )} ), this.$element.trigger( r ), this.settings && "function" == typeof this.settings[o] && this.settings[o].apply( this, r ) ), r}, n.prototype.suppress = function( e ){t.each( e, t.proxy( function( t, e ){this._supress[e] = !0}, this ) )}, n.prototype.release = function( e ){t.each( e, t.proxy( function( t, e ){delete this._supress[e]}, this ) )}, n.prototype.browserSupport = function( ){if ( this.support3d = l( ), this.support3d ){this.transformVendor = h( ); var t = ["transitionend", "webkitTransitionEnd", "transitionend", "oTransitionEnd"]; this.transitionEndVendor = t[a( )], this.vendorName = this.transformVendor.replace( /Transform/i, "" ), this.vendorName = "" !== this.vendorName?"-" + this.vendorName.toLowerCase( ) + "-":""}this.state.orientation = e.orientation}, t.fn.owlCarousel = function( e ){return this.each( function( ){t( this ).data( "owlCarousel" ) || t( this ).data( "owlCarousel", new n( this, e ) )} )}, t.fn.owlCarousel.Constructor = n}( window.Zepto || window.jQuery, window, document ), function( t, e ){var i = function( e ){this._core = e, this._loaded = [], this._handlers = {"initialized.owl.carousel change.owl.carousel":t.proxy( function( e ){if ( e.namespace && this._core.settings && this._core.settings.lazyLoad && ( e.property && "position" == e.property.name || "initialized" == e.type ) )for ( var i = this._core.settings, s = i.center && Math.ceil( i.items / 2 ) || i.items, n = i.center && - 1 * s || 0, o = ( e.property && e.property.value || this._core.current( ) ) + n, r = this._core.clones( ).length, a = t.proxy( function( t, e ){this.load( e )}, this ); n++ < s; )this.load( r / 2 + this._core.relative( o ) ), r && t.each( this._core.clones( this._core.relative( o++ ) ), a )}, this )}, this._core.options = t.extend( {}, i.Defaults, this._core.options ), this._core.$element.on( this._handlers )}; i.Defaults = {lazyLoad:!1}, i.prototype.load = function( i ){var s = this._core.$stage.children( ).eq( i ), n = s && s.find( ".owl-lazy" ); !n || t.inArray( s.get( 0 ), this._loaded ) > - 1 || ( n.each( t.proxy( function( i, s ){var n, o = t( s ), r = e.devicePixelRatio > 1 && o.attr( "data-src-retina" ) || o.attr( "data-src" ); this._core.trigger( "load", {element:o, url:r}, "lazy" ), o.is( "img" )?o.one( "load.owl.lazy", t.proxy( function( ){o.css( "opacity", 1 ), this._core.trigger( "loaded", {element:o, url:r}, "lazy" )}, this ) ).attr( "src", r ):( n = new Image,
          n.onload = t.proxy( function( ){o.css( {"background-image":"url(" + r + ")", opacity:"1"} ), this._core.trigger( "loaded", {element:o, url:r}, "lazy" )}, this ), n.src = r )}, this ) ), this._loaded.push( s.get( 0 ) ) )}, i.prototype.destroy = function( ){var t, e; for ( t in this.handlers )this._core.$element.off( t, this.handlers[t] ); for ( e in Object.getOwnPropertyNames( this ) )"function" != typeof this[e] && ( this[e] = null )}, t.fn.owlCarousel.Constructor.Plugins.Lazy = i}( window.Zepto || window.jQuery, window, document ), function( t ){var e = function( i ){this._core = i, this._handlers = {"initialized.owl.carousel":t.proxy( function( ){this._core.settings.autoHeight && this.update( )}, this ), "changed.owl.carousel":t.proxy( function( t ){this._core.settings.autoHeight && "position" == t.property.name && this.update( )}, this ), "loaded.owl.lazy":t.proxy( function( t ){this._core.settings.autoHeight && t.element.closest( "." + this._core.settings.itemClass ) === this._core.$stage.children( ).eq( this._core.current( ) ) && this.update( )}, this )}, this._core.options = t.extend( {}, e.Defaults, this._core.options ), this._core.$element.on( this._handlers )}; e.Defaults = {autoHeight:!1, autoHeightClass:"owl-height"}, e.prototype.update = function( ){this._core.$stage.parent( ).height( this._core.$stage.children( ).eq( this._core.current( ) ).height( ) ).addClass( this._core.settings.autoHeightClass )}, e.prototype.destroy = function( ){var t, e; for ( t in this._handlers )this._core.$element.off( t, this._handlers[t] ); for ( e in Object.getOwnPropertyNames( this ) )"function" != typeof this[e] && ( this[e] = null )}, t.fn.owlCarousel.Constructor.Plugins.AutoHeight = e}( window.Zepto || window.jQuery, window, document ), function( t, e, i ){var s = function( e ){this._core = e, this._videos = {}, this._playing = null, this._fullscreen = !1, this._handlers = {"resize.owl.carousel":t.proxy( function( t ){this._core.settings.video && !this.isInFullScreen( ) && t.preventDefault( )}, this ), "refresh.owl.carousel changed.owl.carousel":t.proxy( function( ){this._playing && this.stop( )}, this ), "prepared.owl.carousel":t.proxy( function( e ){var i = t( e.content ).find( ".owl-video" ); i.length && ( i.css( "display", "none" ), this.fetch( i, t( e.content ) ) )}, this )}, this._core.options = t.extend( {}, s.Defaults, this._core.options ), this._core.$element.on( this._handlers ), this._core.$element.on( "click.owl.video", ".owl-video-play-icon", t.proxy( function( t ){this.play( t )}, this ) )}; s.Defaults = {video:!1, videoHeight:!1, videoWidth:!1}, s.prototype.fetch = function( t, e ){var i = t.attr( "data-vimeo-id" )?"vimeo":"youtube", s = t.attr( "data-vimeo-id" ) || t.attr( "data-youtube-id" ), n = t.attr( "data-width" ) || this._core.settings.videoWidth, o = t.attr( "data-height" ) || this._core.settings.videoHeight, r = t.attr( "href" ); if ( !r )throw new Error( "Missing video URL." ); if ( s = r.match( /(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/ ), s[3].indexOf( "youtu" ) > - 1 )i = "youtube"; else{if ( !( s[3].indexOf( "vimeo" ) > - 1 ) )throw new Error( "Video URL not supported." ); i = "vimeo"}s = s[6], this._videos[r] = {type:i, id:s, width:n, height:o}, e.attr( "data-video", r ), this.thumbnail( t, this._videos[r] )}, s.prototype.thumbnail = function( e, i ){var s, n, o, r = i.width && i.height?'style="width:' + i.width + "px;height:" + i.height + 'px;"':"", a = e.find( "img" ), h = "src", l = "", c = this._core.settings, d = function( t ){n = '<div class="owl-video-play-icon"></div>', s = c.lazyLoad?'<div class="owl-video-tn ' + l + '" ' + h + '="' + t + '"></div>':'<div class="owl-video-tn" style="opacity:1;background-image:url(' + t + ')"></div>', e.after( s ), e.after( n )}; return e.wrap( '<div class="owl-video-wrapper"' + r + "></div>" ), this._core.settings.lazyLoad && ( h = "data-src", l = "owl-lazy" ), a.length?( d( a.attr( h ) ), a.remove( ), !1 ):void( "youtube" === i.type?( o = "http://img.youtube.com/vi/" + i.id + "/hqdefault.jpg", d( o ) ):"vimeo" === i.type && t.ajax( {type:"GET", url:"http://vimeo.com/api/v2/video/" + i.id + ".json", jsonp:"callback", dataType:"jsonp", success:function( t ){o = t[0].thumbnail_large, d( o )}} ) )}, s.prototype.stop = function( ){this._core.trigger( "stop", null, "video" ), this._playing.find( ".owl-video-frame" ).remove( ), this._playing.removeClass( "owl-video-playing" ), this._playing = null}, s.prototype.play = function( e ){this._core.trigger( "play", null, "video" ), this._playing && this.stop( ); var i, s, n = t( e.target || e.srcElement ), o = n.closest( "." + this._core.settings.itemClass ), r = this._videos[o.attr( "data-video" )], a = r.width || "100%", h = r.height || this._core.$stage.height( ); "youtube" === r.type?i = '<iframe width="' + a + '" height="' + h + '" src="http://www.youtube.com/embed/' + r.id + "?autoplay=1&v=" + r.id + '" frameborder="0" allowfullscreen></iframe>':"vimeo" === r.type && ( i = '<iframe src="http://player.vimeo.com/video/' + r.id + '?autoplay=1" width="' + a + '" height="' + h + '" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>' ), o.addClass( "owl-video-playing" ), this._playing = o, s = t( '<div style="height:' + h + "px; width:" + a + 'px" class="owl-video-frame">' + i + "</div>" ), n.after( s )}, s.prototype.isInFullScreen = function( ){var s = i.fullscreenElement || i.mozFullScreenElement || i.webkitFullscreenElement; return s && t( s ).parent( ).hasClass( "owl-video-frame" ) && ( this._core.speed( 0 ), this._fullscreen = !0 ), s && this._fullscreen && this._playing?!1:this._fullscreen?( this._fullscreen = !1, !1 ):this._playing && this._core.state.orientation !== e.orientation?( this._core.state.orientation = e.orientation, !1 ):!0}, s.prototype.destroy = function( ){var t, e; this._core.$element.off( "click.owl.video" ); for ( t in this._handlers )this._core.$element.off( t, this._handlers[t] ); for ( e in Object.getOwnPropertyNames( this ) )"function" != typeof this[e] && ( this[e] = null )}, t.fn.owlCarousel.Constructor.Plugins.Video = s}( window.Zepto || window.jQuery, window, document ), function( t, e, i, s ){var n = function( e ){this.core = e, this.core.options = t.extend( {}, n.Defaults, this.core.options ), this.swapping = !0, this.previous = s, this.next = s, this.handlers = {"change.owl.carousel":t.proxy( function( t ){"position" == t.property.name && ( this.previous = this.core.current( ), this.next = t.property.value )}, this ), "drag.owl.carousel dragged.owl.carousel translated.owl.carousel":t.proxy( function( t ){this.swapping = "translated" == t.type}, this ), "translate.owl.carousel":t.proxy( function( ){this.swapping && ( this.core.options.animateOut || this.core.options.animateIn ) && this.swap( )}, this )}, this.core.$element.on( this.handlers )}; n.Defaults = {animateOut:!1, animateIn:!1}, n.prototype.swap = function( ){if ( 1 === this.core.settings.items && this.core.support3d ){this.core.speed( 0 ); var e, i = t.proxy( this.clear, this ), s = this.core.$stage.children( ).eq( this.previous ), n = this.core.$stage.children( ).eq( this.next ), o = this.core.settings.animateIn, r = this.core.settings.animateOut; this.core.current( ) !== this.previous && ( r && ( e = this.core.coordinates( this.previous ) - this.core.coordinates( this.next ), s.css( {left:e + "px"} ).addClass( "animated owl-animated-out" ).addClass( r ).one( "webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", i ) ), o && n.addClass( "animated owl-animated-in" ).addClass( o ).one( "webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", i ) )}}, n.prototype.clear = function( e ){t( e.target ).css( {left:""} ).removeClass( "animated owl-animated-out owl-animated-in" ).removeClass( this.core.settings.animateIn ).removeClass( this.core.settings.animateOut ), this.core.transitionEnd( )}, n.prototype.destroy = function( ){var t, e; for ( t in this.handlers )this.core.$element.off( t, this.handlers[t] ); for ( e in Object.getOwnPropertyNames( this ) )"function" != typeof this[e] && ( this[e] = null )}, t.fn.owlCarousel.Constructor.Plugins.Animate = n}( window.Zepto || window.jQuery, window, document ), function( t, e, i ){var s = function( e ){this.core = e, this.core.options = t.extend( {}, s.Defaults, this.core.options ), this.handlers = {"translated.owl.carousel refreshed.owl.carousel":t.proxy( function( ){this.autoplay( )}, this ), "play.owl.autoplay":t.proxy( function( t, e, i ){this.play( e, i )}, this ), "stop.owl.autoplay":t.proxy( function( ){this.stop( )}, this ), "mouseover.owl.autoplay":t.proxy( function( ){this.core.settings.autoplayHoverPause && this.pause( )}, this ), "mouseleave.owl.autoplay":t.proxy( function( ){this.core.settings.autoplayHoverPause && this.autoplay( )}, this )}, this.core.$element.on( this.handlers )}; s.Defaults = {autoplay:!1, autoplayTimeout:5e3, autoplayHoverPause:!1, autoplaySpeed:!1}, s.prototype.autoplay = function( ){this.core.settings.autoplay && !this.core.state.videoPlay?( e.clearInterval( this.interval ), this.interval = e.setInterval( t.proxy( function( ){this.play( )}, this ), this.core.settings.autoplayTimeout ) ):e.clearInterval( this.interval )}, s.prototype.play = function( ){return i.hidden === !0 || this.core.state.isTouch || this.core.state.isScrolling || this.core.state.isSwiping || this.core.state.inMotion?void 0:this.core.settings.autoplay === !1?void e.clearInterval( this.interval ):void this.core.next( this.core.settings.autoplaySpeed )}, s.prototype.stop = function( ){e.clearInterval( this.interval )}, s.prototype.pause = function( ){e.clearInterval( this.interval )}, s.prototype.destroy = function( ){var t, i; e.clearInterval( this.interval ); for ( t in this.handlers )this.core.$element.off( t, this.handlers[t] ); for ( i in Object.getOwnPropertyNames( this ) )"function" != typeof this[i] && ( this[i] = null )}, t.fn.owlCarousel.Constructor.Plugins.autoplay = s}( window.Zepto || window.jQuery, window, document ), function( t ){"use strict"; var e = function( i ){this._core = i, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = {next:this._core.next, prev:this._core.prev, to:this._core.to}, this._handlers = {"prepared.owl.carousel":t.proxy( function( e ){this._core.settings.dotsData && this._templates.push( t( e.content ).find( "[data-dot]" ).andSelf( "[data-dot]" ).attr( "data-dot" ) )}, this ), "add.owl.carousel":t.proxy( function( e ){this._core.settings.dotsData && this._templates.splice( e.position, 0, t( e.content ).find( "[data-dot]" ).andSelf( "[data-dot]" ).attr( "data-dot" ) )}, this ), "remove.owl.carousel prepared.owl.carousel":t.proxy( function( t ){this._core.settings.dotsData && this._templates.splice( t.position, 1 )}, this ), "change.owl.carousel":t.proxy( function( t ){if ( "position" == t.property.name && !this._core.state.revert && !this._core.settings.loop && this._core.settings.navRewind ){var e = this._core.current( ), i = this._core.maximum( ), s = this._core.minimum( ); t.data = t.property.value > i?e >= i?s:i:t.property.value < s?i:t.property.value}}, this ), "changed.owl.carousel":t.proxy( function( t ){"position" == t.property.name && this.draw( )}, this ), "refreshed.owl.carousel":t.proxy( function( ){this._initialized || ( this.initialize( ), this._initialized = !0 ), this._core.trigger( "refresh", null, "navigation" ), this.update( ), this.draw( ), this._core.trigger( "refreshed", null, "navigation" )}, this )}, this._core.options = t.extend( {}, e.Defaults, this._core.options ), this.$element.on( this._handlers )}; e.Defaults = {nav:!1, navRewind:!0, navText:["prev", "next"], navSpeed:!1, navElement:"div", navContainer:!1, navContainerClass:"owl-nav", navClass:["owl-prev", "owl-next"], slideBy:1, dotClass:"owl-dot", dotsClass:"owl-dots", dots:!0, dotsEach:!1, dotData:!1, dotsSpeed:!1, dotsContainer:!1, controlsClass:"owl-controls"}, e.prototype.initialize = function( ){var e, i, s = this._core.settings; s.dotsData || ( this._templates = [t( "<div>" ).addClass( s.dotClass ).append( t( "<span>" ) ).prop( "outerHTML" )] ), s.navContainer && s.dotsContainer || ( this._controls.$container = t( "<div>" ).addClass( s.controlsClass ).appendTo( this.$element ) ), this._controls.$indicators = s.dotsContainer?t( s.dotsContainer ):t( "<div>" ).hide( ).addClass( s.dotsClass ).appendTo( this._controls.$container ), this._controls.$indicators.on( "click", "div", t.proxy( function( e ){var i = t( e.target ).parent( ).is( this._controls.$indicators )?t( e.target ).index( ):t( e.target ).parent( ).index( ); e.preventDefault( ), this.to( i, s.dotsSpeed )}, this ) ), e = s.navContainer?t( s.navContainer ):t( "<div>" ).addClass( s.navContainerClass ).prependTo( this._controls.$container ), this._controls.$next = t( "<" + s.navElement + ">" ), this._controls.$previous = this._controls.$next.clone( ), this._controls.$previous.addClass( s.navClass[0] ).html( s.navText[0] ).hide( ).prependTo( e ).on( "click", t.proxy( function( ){this.prev( s.navSpeed )}, this ) ), this._controls.$next.addClass( s.navClass[1] ).html( s.navText[1] ).hide( ).appendTo( e ).on( "click", t.proxy( function( ){this.next( s.navSpeed )}, this ) ); for ( i in this._overrides )this._core[i] = t.proxy( this[i], this )}, e.prototype.destroy = function( ){var t, e, i, s; for ( t in this._handlers )this.$element.off( t, this._handlers[t] ); for ( e in this._controls )this._controls[e].remove( ); for ( s in this.overides )this._core[s] = this._overrides[s]; for ( i in Object.getOwnPropertyNames( this ) )"function" != typeof this[i] && ( this[i] = null )}, e.prototype.update = function( ){var t, e, i, s = this._core.settings, n = this._core.clones( ).length / 2, o = n + this._core.items( ).length, r = s.center || s.autoWidth || s.dotData?1:s.dotsEach || s.items; if ( "page" !== s.slideBy && ( s.slideBy = Math.min( s.slideBy, s.items ) ), s.dots || "page" == s.slideBy )for ( this._pages = [], t = n, e = 0, i = 0; o > t; t++ )( e >= r || 0 === e ) && ( this._pages.push( {start:t - n, end:t - n + r - 1} ), e = 0, ++i ), e += this._core.mergers( this._core.relative( t ) )}, e.prototype.draw = function( ){var e, i, s = "", n = this._core.settings, o = ( this._core.$stage.children( ), this._core.relative( this._core.current( ) ) ); if ( !n.nav || n.loop || n.navRewind || ( this._controls.$previous.toggleClass( "disabled", 0 >= o ), this._controls.$next.toggleClass( "disabled", o >= this._core.maximum( ) ) ), this._controls.$previous.toggle( n.nav ), this._controls.$next.toggle( n.nav ), n.dots ){if ( e = this._pages.length - this._controls.$indicators.children( ).length, n.dotData && 0 !== e ){for ( i = 0; i < this._controls.$indicators.children( ).length; i++ )s += this._templates[this._core.relative( i )]; this._controls.$indicators.html( s )} else e > 0?( s = new Array( e + 1 ).join( this._templates[0] ), this._controls.$indicators.append( s ) ):0 > e && this._controls.$indicators.children( ).slice( e ).remove( ); this._controls.$indicators.find( ".active" ).removeClass( "active" ), this._controls.$indicators.children( ).eq( t.inArray( this.current( ), this._pages ) ).addClass( "active" )}this._controls.$indicators.toggle( n.dots )}, e.prototype.onTrigger = function( e ){var i = this._core.settings; e.page = {index:t.inArray( this.current( ), this._pages ), count:this._pages.length, size:i && ( i.center || i.autoWidth || i.dotData?1:i.dotsEach || i.items )}}, e.prototype.current = function( ){var e = this._core.relative( this._core.current( ) ); return t.grep( this._pages, function( t ){return t.start <= e && t.end >= e} ).pop( )}, e.prototype.getPosition = function( e ){var i, s, n = this._core.settings; return"page" == n.slideBy?( i = t.inArray( this.current( ), this._pages ), s = this._pages.length, e?++i:--i, i = this._pages[( i % s + s ) % s].start ):( i = this._core.relative( this._core.current( ) ), s = this._core.items( ).length, e?i += n.slideBy:i -= n.slideBy ), i}, e.prototype.next = function( e ){t.proxy( this._overrides.to, this._core )( this.getPosition( !0 ), e )}, e.prototype.prev = function( e ){t.proxy( this._overrides.to, this._core )( this.getPosition( !1 ), e )}, e.prototype.to = function( e, i, s ){var n; s?t.proxy( this._overrides.to, this._core )( e, i ):( n = this._pages.length, t.proxy( this._overrides.to, this._core )( this._pages[( e % n + n ) % n].start, i ) )}, t.fn.owlCarousel.Constructor.Plugins.Navigation = e}( window.Zepto || window.jQuery, window, document ), function( t, e ){"use strict"; var i = function( s ){this._core = s, this._hashes = {}, this.$element = this._core.$element, this._handlers = {"initialized.owl.carousel":t.proxy( function( ){"URLHash" == this._core.settings.startPosition && t( e ).trigger( "hashchange.owl.navigation" )}, this ), "prepared.owl.carousel":t.proxy( function( e ){var i = t( e.content ).find( "[data-hash]" ).andSelf( "[data-hash]" ).attr( "data-hash" ); this._hashes[i] = e.content}, this )}, this._core.options = t.extend( {}, i.Defaults, this._core.options ), this.$element.on( this._handlers ), t( e ).on( "hashchange.owl.navigation", t.proxy( function( ){var t = e.location.hash.substring( 1 ), i = this._core.$stage.children( ), s = this._hashes[t] && i.index( this._hashes[t] ) || 0; return t?void this._core.to( s, !1, !0 ):!1}, this ) )}; i.Defaults = {URLhashListener:!1}, i.prototype.destroy = function( ){var i, s; t( e ).off( "hashchange.owl.navigation" ); for ( i in this._handlers )this._core.$element.off( i, this._handlers[i] ); for ( s in Object.getOwnPropertyNames( this ) )"function" != typeof this[s] && ( this[s] = null )}, t.fn.owlCarousel.Constructor.Plugins.Hash = i}( window.Zepto || window.jQuery, window, document );
  //Smooth scroll
  
          !function( ){function e( ){T.keyboardSupport && f( "keydown", a )}function t( ){if ( !z && document.body ){z = !0; var t = document.body, o = document.documentElement, n = window.innerHeight, a = t.scrollHeight; if ( X = document.compatMode.indexOf( "CSS" ) >= 0?o:t, S = t, e( ), top != self )C = !0; else if ( a > n && ( t.offsetHeight <= n || o.offsetHeight <= n ) ){var r = document.createElement( "div" ); r.style.cssText = "position:absolute; z-index:-10000; top:0; left:0; right:0; height:" + X.scrollHeight + "px", document.body.appendChild( r ); var l, i = function( ){l || ( l = setTimeout( function( ){H || ( r.style.height = "0", r.style.height = X.scrollHeight + "px", l = null )}, 500 ) )}; setTimeout( i, 10 ); var c = {attributes:!0, childList:!0, characterData:!1}; if ( x = new j( i ), x.observe( t, c ), X.offsetHeight <= n ){var u = document.createElement( "div" ); u.style.clear = "both", t.appendChild( u )}}T.fixedBackground || H || ( t.style.backgroundAttachment = "scroll", o.style.backgroundAttachment = "scroll" )}}function o( e, t, o ){if ( h( t, o ), 1 != T.accelerationMax ){var n = Date.now( ), a = n - N; if ( a < T.accelerationDelta ){var r = ( 1 + 50 / a ) / 2; r > 1 && ( r = Math.min( r, T.accelerationMax ), t *= r, o *= r )}N = Date.now( )}if ( A.push( {x:t, y:o, lastX:0 > t?.99: - .99, lastY:0 > o?.99: - .99, start:Date.now( )} ), !K ){var l = e === document.body, i = function( n ){for ( var a = Date.now( ), r = 0, c = 0, u = 0; u < A.length; u++ ){var d = A[u], s = a - d.start, f = s >= T.animationTime, m = f?1:s / T.animationTime; T.pulseAlgorithm && ( m = y( m ) ); var h = d.x * m - d.lastX >> 0, p = d.y * m - d.lastY >> 0; r += h, c += p, d.lastX += h, d.lastY += p, f && ( A.splice( u, 1 ), u-- )}l?window.scrollBy( r, c ):( r && ( e.scrollLeft += r ), c && ( e.scrollTop += c ) ), t || o || ( A = [] ), A.length?P( i, e, 1e3 / T.frameRate + 1 ):K = !1}; P( i, e, 0 ), K = !0}}function n( e ){z || t( ); var n = e.target, a = c( n ); if ( !a || e.defaultPrevented || e.ctrlKey )return!0; if ( m( S, "embed" ) || m( n, "embed" ) && /\.pdf/i.test( n.src ) || m( S, "object" ) )return!0; var r = - e.wheelDeltaX || e.deltaX || 0, i = - e.wheelDeltaY || e.deltaY || 0; return B && ( e.wheelDeltaX && w( e.wheelDeltaX, 120 ) && ( r = - 120 * ( e.wheelDeltaX / Math.abs( e.wheelDeltaX ) ) ), e.wheelDeltaY && w( e.wheelDeltaY, 120 ) && ( i = - 120 * ( e.wheelDeltaY / Math.abs( e.wheelDeltaY ) ) ) ), r || i || ( i = - e.wheelDelta || 0 ), 1 === e.deltaMode && ( r *= 40, i *= 40 ), !T.touchpadSupport && p( i )?!0:( Math.abs( r ) > 1.2 && ( r *= T.stepSize / 120 ), Math.abs( i ) > 1.2 && ( i *= T.stepSize / 120 ), o( a, r, i ), e.preventDefault( ), void l( ) )}function a( e ){var t = e.target, n = e.ctrlKey || e.altKey || e.metaKey || e.shiftKey && e.keyCode !== L.spacebar; document.contains( S ) || ( S = document.activeElement ); var a = /^(textarea|select|embed|object)$/i, r = /^(button|submit|radio|checkbox|file|color|image)$/i; if ( a.test( t.nodeName ) || m( t, "input" ) && !r.test( t.type ) || m( S, "video" ) || b( e ) || t.isContentEditable || e.defaultPrevented || n )return!0; if ( ( m( t, "button" ) || m( t, "input" ) && r.test( t.type ) ) && e.keyCode === L.spacebar )return!0; var i, u = 0, d = 0, s = c( S ), f = s.clientHeight; switch ( s == document.body && ( f = window.innerHeight ), e.keyCode ){case L.up:d = - T.arrowScroll; break; case L.down:d = T.arrowScroll; break; case L.spacebar:i = e.shiftKey?1: - 1, d = - i * f * .9; break; case L.pageup:d = .9 * - f; break; case L.pagedown:d = .9 * f; break; case L.home:d = - s.scrollTop; break; case L.end:var h = s.scrollHeight - s.scrollTop - f; d = h > 0?h + 10:0; break; case L.left:u = - T.arrowScroll; break; case L.right:u = T.arrowScroll; break; default:return!0}o( s, u, d ), e.preventDefault( ), l( )}function r( e ){S = e.target}function l( ){clearTimeout( D ), D = setInterval( function( ){O = {}}, 1e3 )}function i( e, t ){for ( var o = e.length; o--; )O[q( e[o] )] = t; return t}function c( e ){var t = [], o = document.body, n = X.scrollHeight; do{var a = O[q( e )]; if ( a )return i( t, a ); if ( t.push( e ), n === e.scrollHeight ){var r = d( X ) && d( o ), l = r || s( X ); if ( C && u( X ) || !C && l )return i( t, F( ) )} else if ( u( e ) && s( e ) )return i( t, e )}while ( e = e.parentElement )}function u( e ){return e.clientHeight + 10 < e.scrollHeight}function d( e ){var t = getComputedStyle( e, "" ).getPropertyValue( "overflow-y" ); return"hidden" !== t}function s( e ){var t = getComputedStyle( e, "" ).getPropertyValue( "overflow-y" ); return"scroll" === t || "auto" === t}function f( e, t ){window.addEventListener( e, t, !1 )}function m( e, t ){return( e.nodeName || "" ).toLowerCase( ) === t.toLowerCase( )}function h( e, t ){e = e > 0?1: - 1, t = t > 0?1: - 1, ( E.x !== e || E.y !== t ) && ( E.x = e, E.y = t, A = [], N = 0 )}function p( e ){return e?( Y.length || ( Y = [e, e, e] ), e = Math.abs( e ), Y.push( e ), Y.shift( ), clearTimeout( k ), k = setTimeout( function( ){window.localStorage && ( localStorage.SS_deltaBuffer = Y.join( "," ) )}, 1e3 ), !v( 120 ) && !v( 100 ) ):void 0}function w( e, t ){return Math.floor( e / t ) == e / t}function v( e ){return w( Y[0], e ) && w( Y[1], e ) && w( Y[2], e )}function b( e ){var t = e.target, o = !1; if ( - 1 != document.URL.indexOf( "www.youtube.com/watch" ) )do if ( o = t.classList && t.classList.contains( "html5-video-controls" ) )break; while ( t = t.parentNode ); return o}function g( e ){var t, o, n; return e *= T.pulseScale, 1 > e?t = e - ( 1 - Math.exp( - e ) ):( o = Math.exp( - 1 ), e -= 1, n = 1 - Math.exp( - e ), t = o + n * ( 1 - o ) ), t * T.pulseNormalize}function y( e ){return e >= 1?1:0 >= e?0:( 1 == T.pulseNormalize && ( T.pulseNormalize /= g( 1 ) ), g( e ) )}var S, x, D, k, M = {frameRate:150, animationTime:400, stepSize:120, pulseAlgorithm:!0, pulseScale:4, pulseNormalize:1, accelerationDelta:20, accelerationMax:1, keyboardSupport:!0, arrowScroll:50, touchpadSupport:!0, fixedBackground:!0, excluded:""}, T = M, H = !1, C = !1, E = {x:0, y:0}, z = !1, X = document.documentElement, Y = [], B = /^Mac/.test( navigator.platform ), L = {left:37, up:38, right:39, down:40, spacebar:32, pageup:33, pagedown:34, end:35, home:36}, T = M, A = [], K = !1, N = Date.now( ), q = function( ){var e = 0; return function( t ){return t.uniqueID || ( t.uniqueID = e++ )}}( ), O = {}; window.localStorage && localStorage.SS_deltaBuffer && ( Y = localStorage.SS_deltaBuffer.split( "," ) ); var R, P = function( ){return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function( e, t, o ){window.setTimeout( e, o || 1e3 / 60 )}}( ), j = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver, F = function( ){var e; return function( ){if ( !e ){var t = document.createElement( "div" ); t.style.cssText = "height:10000px;width:1px;", document.body.appendChild( t ); var o = document.body.scrollTop; document.documentElement.scrollTop; window.scrollBy( 0, 1 ), e = document.body.scrollTop != o?document.body:document.documentElement, window.scrollBy( 0, - 1 ), document.body.removeChild( t )}return e}}( ); "onwheel"in document.createElement( "div" )?R = "wheel":"onmousewheel"in document.createElement( "div" ) && ( R = "mousewheel" ), R && ( f( R, n ), f( "mousedown", r ), f( "load", t ) )}( );
  //LocalScroll                             
          /**
           * Copyright (c) 2007-2014 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
           * Licensed under MIT
           * @author Ariel Flesler
           * @version 1.3.5
           */
          !function( e ){"function" == typeof define && define.amd?define( ["jquery"], e ):e( jQuery )}( function( e ){function t( t, o, n ){var i = o.hash.slice( 1 ), a = document.getElementById( i ) || document.getElementsByName( i )[0]; if ( a ){t && t.preventDefault( ); var l = e( n.target ); if ( !( n.lock && l.is( ":animated" ) || n.onBefore && n.onBefore( t, a, l ) === !1 ) ){if ( n.stop && l._scrollable( ).stop( !0 ), n.hash ){var r = a.id === i?"id":"name", s = e( "<a> </a>" ).attr( r, i ).css( {position:"absolute", top:e( window ).scrollTop( ), left:e( window ).scrollLeft( )} ); a[r] = "", e( "body" ).prepend( s ), location.hash = o.hash, s.remove( ), a[r] = i}l.scrollTo( a, n ).trigger( "notify.serialScroll", [a] )}}}var o = location.href.replace( /#.*/, "" ), n = e.localScroll = function( t ){e( "body" ).localScroll( t )}; return n.defaults = {duration:1e3, axis:"y", event:"click", stop:!0, target:window}, e.fn.localScroll = function( i ){function a( ){return!!this.href && !!this.hash && this.href.replace( this.hash, "" ) == o && ( !i.filter || e( this ).is( i.filter ) )}return i = e.extend( {}, n.defaults, i ), i.hash && location.hash && ( i.target && window.scrollTo( 0, 0 ), t( 0, location, i ) ), i.lazy?this.on( i.event, "a,area", function( e ){a.call( this ) && t( e, this, i )} ):this.find( "a,area" ).filter( a ).bind( i.event, function( e ){t( e, this, i )} ).end( ).end( )}, n.hash = function( ){}, n} );
          /**
           * Copyright (c) 2007-2014 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
           * Licensed under MIT
           * @author Ariel Flesler
           * @version 1.4.12
           */
          !function( a ){"function" == typeof define && define.amd?define( ["jquery"], a ):a( jQuery )}( function( a ){function c( b ){return a.isFunction( b ) || "object" == typeof b?b:{top:b, left:b}}var b = a.scrollTo = function( b, c, d ){return a( window ).scrollTo( b, c, d )}; return b.defaults = {axis:"xy", duration:parseFloat( a.fn.jquery ) >= 1.3?0:1, limit:!0}, b.window = function( b ){return a( window )._scrollable( )}, a.fn._scrollable = function( ){return this.map( function( ){var b = this, c = !b.nodeName || a.inArray( b.nodeName.toLowerCase( ), ["iframe", "#document", "html", "body"] ) != - 1; if ( !c )return b; var d = ( b.contentWindow || b ).document || b.ownerDocument || b; return/webkit/i.test( navigator.userAgent ) || "BackCompat" == d.compatMode?d.body:d.documentElement} )}, a.fn.scrollTo = function( d, e, f ){return"object" == typeof e && ( f = e, e = 0 ), "function" == typeof f && ( f = {onAfter:f} ), "max" == d && ( d = 9e9 ), f = a.extend( {}, b.defaults, f ), e = e || f.duration, f.queue = f.queue && f.axis.length > 1, f.queue && ( e /= 2 ), f.offset = c( f.offset ), f.over = c( f.over ), this._scrollable( ).each( function( ){function n( a ){h.animate( k, e, f.easing, a && function( ){a.call( this, i, f )} )}if ( null != d ){var j, g = this, h = a( g ), i = d, k = {}, l = h.is( "html,body" ); switch ( typeof i ){case"number":case"string":if ( /^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test( i ) ){i = c( i ); break}if ( i = l?a( i ):a( i, this ), !i.length )return; case"object":( i.is || i.style ) && ( j = ( i = a( i ) ).offset( ) )}var m = a.isFunction( f.offset ) && f.offset( g, i ) || f.offset; a.each( f.axis.split( "" ), function( a, c ){var d = "x" == c?"Left":"Top", e = d.toLowerCase( ), o = "scroll" + d, p = g[o], q = b.max( g, c ); if ( j )k[o] = j[e] + ( l?0:p - h.offset( )[e] ), f.margin && ( k[o] -= parseInt( i.css( "margin" + d ) ) || 0, k[o] -= parseInt( i.css( "border" + d + "Width" ) ) || 0 ), k[o] += m[e] || 0, f.over[e] && ( k[o] += i["x" == c?"width":"height"]( ) * f.over[e] ); else{var r = i[e]; k[o] = r.slice && "%" == r.slice( - 1 )?parseFloat( r ) / 100 * q:r}f.limit && /^\d+$/.test( k[o] ) && ( k[o] = k[o] <= 0?0:Math.min( k[o], q ) ), !a && f.queue && ( p != k[o] && n( f.onAfterFirst ), delete k[o] )} ), n( f.onAfter )}} ).end( )}, b.max = function( b, c ){var d = "x" == c?"Width":"Height", e = "scroll" + d; if ( !a( b ).is( "html,body" ) )return b[e] - a( b )[d.toLowerCase( )]( ); var f = "client" + d, g = b.ownerDocument.documentElement, h = b.ownerDocument.body; return Math.max( g[e], h[e] ) - Math.min( g[f], h[f] )}, b} );
          /*!
           * jquery.counterup.js 1.0
           *
           * Copyright 2013, Benjamin Intal http://gambit.ph @bfintal
           * Released under the GPL v2 License
           *
           * Date: Nov 26, 2013
           */
          !function( t ){"use strict"; t.fn.counterUp = function( e ){var n = t.extend( {time:400, delay:10}, e ); return this.each( function( ){var e = t( this ), i = n, o = function( ){var t = [], n = i.time / i.delay, o = e.text( ), r = /[0-9]+,[0-9]+/.test( o ); o = o.replace( /,/g, "" ); for ( var s = ( /^[0-9]+$/.test( o ), /^[0-9]+\.[0-9]+$/.test( o ) ), a = s?( o.split( "." )[1] || [] ).length:0, l = n; l >= 1; l-- ){var u = parseInt( o / n * l ); if ( s && ( u = parseFloat( o / n * l ).toFixed( a ) ), r )for ( ; /(\d+)(\d{3})/.test( u.toString( ) ); )u = u.toString( ).replace( /(\d+)(\d{3})/, "$1,$2" ); t.unshift( u )}e.data( "counterup-nums", t ), e.text( "0" ); var h = function( ){e.text( e.data( "counterup-nums" ).shift( ) ), e.data( "counterup-nums" ).length?setTimeout( e.data( "counterup-func" ), i.delay ):( delete e.data( "counterup-nums" ), e.data( "counterup-nums", null ), e.data( "counterup-func", null ) )}; e.data( "counterup-func", h ), setTimeout( e.data( "counterup-func" ), i.delay )}; e.waypoint( o, {offset:"100%", triggerOnce:!0} )} )}}( jQuery ), function( ){var t, e, n, i, o, r = function( t, e ){return function( ){return t.apply( e, arguments )}}, s = [].indexOf || function( t ){for ( var e = 0, n = this.length; n > e; e++ )if ( e in this && this[e] === t )return e; return - 1}; e = function( ){function t( ){}return t.prototype.extend = function( t, e ){var n, i; for ( n in e )i = e[n], null == t[n] && ( t[n] = i ); return t}, t.prototype.isMobile = function( t ){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( t )}, t.prototype.addEvent = function( t, e, n ){return null != t.addEventListener?t.addEventListener( e, n, !1 ):null != t.attachEvent?t.attachEvent( "on" + e, n ):t[e] = n}, t.prototype.removeEvent = function( t, e, n ){return null != t.removeEventListener?t.removeEventListener( e, n, !1 ):null != t.detachEvent?t.detachEvent( "on" + e, n ):delete t[e]}, t.prototype.innerHeight = function( ){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight}, t}( ), n = this.WeakMap || this.MozWeakMap || ( n = function( ){function t( ){this.keys = [], this.values = []}return t.prototype.get = function( t ){var e, n, i, o, r; for ( r = this.keys, e = i = 0, o = r.length; o > i; e = ++i )if ( n = r[e], n === t )return this.values[e]}, t.prototype.set = function( t, e ){var n, i, o, r, s; for ( s = this.keys, n = o = 0, r = s.length; r > o; n = ++o )if ( i = s[n], i === t )return void( this.values[n] = e ); return this.keys.push( t ), this.values.push( e )}, t}( ) ), t = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || ( t = function( ){function t( ){"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 t.notSupported = !0, t.prototype.observe = function( ){}, t}( ) ), i = this.getComputedStyle || function( t ){return this.getPropertyValue = function( e ){var n; return"float" === e && ( e = "styleFloat" ), o.test( e ) && e.replace( o, function( t, e ){return e.toUpperCase( )} ), ( null != ( n = t.currentStyle )?n[e]:void 0 ) || null}, this}, o = /(\-([a-z]){1})/g, this.WOW = function( ){function o( t ){null == t && ( t = {} ), this.scrollCallback = r( this.scrollCallback, this ), this.scrollHandler = r( this.scrollHandler, this ), this.start = r( this.start, this ), this.scrolled = !0, this.config = this.util( ).extend( t, this.defaults ), this.animationNameCache = new n}return o.prototype.defaults = {boxClass:"wow", animateClass:"animated", offset:0, mobile:!0, live:!0}, o.prototype.init = function( ){var t; return this.element = window.document.documentElement, "interactive" === ( t = document.readyState ) || "complete" === t?this.start( ):this.util( ).addEvent( document, "DOMContentLoaded", this.start ), this.finished = []}, o.prototype.start = function( ){var e, n, i, o; if ( this.stopped = !1, this.boxes = function( ){var t, n, i, o; for ( i = this.element.querySelectorAll( "." + this.config.boxClass ), o = [], t = 0, n = i.length; n > t; t++ )e = i[t], o.push( e ); return o}.call( this ), this.all = function( ){var t, n, i, o; for ( i = this.boxes, o = [], t = 0, n = i.length; n > t; t++ )e = i[t], o.push( e ); return o}.call( this ), this.boxes.length )if ( this.disabled( ) )this.resetStyle( ); else{for ( o = this.boxes, n = 0, i = o.length; i > n; n++ )e = o[n], this.applyStyle( e, !0 ); this.util( ).addEvent( window, "scroll", this.scrollHandler ), this.util( ).addEvent( window, "resize", this.scrollHandler ), this.interval = setInterval( this.scrollCallback, 50 )}return this.config.live?new t( function( t ){return function( e ){var n, i, o, r, s; for ( s = [], o = 0, r = e.length; r > o; o++ )i = e[o], s.push( function( ){var t, e, o, r; for ( o = i.addedNodes || [], r = [], t = 0, e = o.length; e > t; t++ )n = o[t], r.push( this.doSync( n ) ); return r}.call( t ) ); return s}}( this ) ).observe( document.body, {childList:!0, subtree:!0} ):void 0}, o.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}, o.prototype.sync = function( ){return t.notSupported?this.doSync( this.element ):void 0}, o.prototype.doSync = function( t ){var e, n, i, o, r; if ( null == t && ( t = this.element ), 1 === t.nodeType ){for ( t = t.parentNode || t, o = t.querySelectorAll( "." + this.config.boxClass ), r = [], n = 0, i = o.length; i > n; n++ )e = o[n], s.call( this.all, e ) < 0?( this.boxes.push( e ), this.all.push( e ), this.stopped || this.disabled( )?this.resetStyle( ):this.applyStyle( e, !0 ), r.push( this.scrolled = !0 ) ):r.push( void 0 ); return r}}, o.prototype.show = function( t ){return this.applyStyle( t ), t.className = "" + t.className + " " + this.config.animateClass}, o.prototype.applyStyle = function( t, e ){var n, i, o; return i = t.getAttribute( "data-wow-duration" ), n = t.getAttribute( "data-wow-delay" ), o = t.getAttribute( "data-wow-iteration" ), this.animate( function( r ){return function( ){return r.customStyle( t, e, i, n, o )}}( this ) )}, o.prototype.animate = function( ){return"requestAnimationFrame"in window?function( t ){return window.requestAnimationFrame( t )}:function( t ){return t( )}}( ), o.prototype.resetStyle = function( ){var t, e, n, i, o; for ( i = this.boxes, o = [], e = 0, n = i.length; n > e; e++ )t = i[e], o.push( t.style.visibility = "visible" ); return o}, o.prototype.customStyle = function( t, e, n, i, o ){return e && this.cacheAnimationName( t ), t.style.visibility = e?"hidden":"visible", n && this.vendorSet( t.style, {animationDuration:n} ), i && this.vendorSet( t.style, {animationDelay:i} ), o && this.vendorSet( t.style, {animationIterationCount:o} ), this.vendorSet( t.style, {animationName:e?"none":this.cachedAnimationName( t )} ), t}, o.prototype.vendors = ["moz", "webkit"], o.prototype.vendorSet = function( t, e ){var n, i, o, r; r = []; for ( n in e )i = e[n], t["" + n] = i, r.push( function( ){var e, r, s, a; for ( s = this.vendors, a = [], e = 0, r = s.length; r > e; e++ )o = s[e], a.push( t["" + o + n.charAt( 0 ).toUpperCase( ) + n.substr( 1 )] = i ); return a}.call( this ) ); return r}, o.prototype.vendorCSS = function( t, e ){var n, o, r, s, a, l; for ( o = i( t ), n = o.getPropertyCSSValue( e ), l = this.vendors, s = 0, a = l.length; a > s; s++ )r = l[s], n = n || o.getPropertyCSSValue( "-" + r + "-" + e ); return n}, o.prototype.animationName = function( t ){var e; try{e = this.vendorCSS( t, "animation-name" ).cssText} catch ( n ){e = i( t ).getPropertyValue( "animation-name" )}return"none" === e?"":e}, o.prototype.cacheAnimationName = function( t ){return this.animationNameCache.set( t, this.animationName( t ) )}, o.prototype.cachedAnimationName = function( t ){return this.animationNameCache.get( t )}, o.prototype.scrollHandler = function( ){return this.scrolled = !0}, o.prototype.scrollCallback = function( ){var t; return!this.scrolled || ( this.scrolled = !1, this.boxes = function( ){var e, n, i, o; for ( i = this.boxes, o = [], e = 0, n = i.length; n > e; e++ )t = i[e], t && ( this.isVisible( t )?this.show( t ):o.push( t ) ); return o}.call( this ), this.boxes.length || this.config.live )?void 0:this.stop( )}, o.prototype.offsetTop = function( t ){for ( var e; void 0 === t.offsetTop; )t = t.parentNode; for ( e = t.offsetTop; t = t.offsetParent; )e += t.offsetTop; return e}, o.prototype.isVisible = function( t ){var e, n, i, o, r; return n = t.getAttribute( "data-wow-offset" ) || this.config.offset, r = window.pageYOffset, o = r + Math.min( this.element.clientHeight, this.util( ).innerHeight( ) ) - n, i = this.offsetTop( t ), e = i + t.clientHeight, o >= i && e >= r}, o.prototype.util = function( ){return null != this._util?this._util:this._util = new e}, o.prototype.disabled = function( ){return!this.config.mobile && this.util( ).isMobile( navigator.userAgent )}, o}( )}.call( this );
          /*
           //images loded
           */
  
          !function( a, b ){"function" == typeof define && define.amd?define( "ev-emitter/ev-emitter", b ):"object" == typeof module && module.exports?module.exports = b( ):a.EvEmitter = b( )}( "undefined" != typeof window?window:this, function( ){function a( ){}var b = a.prototype; return b.on = function( a, b ){if ( a && b ){var c = this._events = this._events || {}, d = c[a] = c[a] || []; return - 1 == d.indexOf( b ) && d.push( b ), this}}, b.once = function( a, b ){if ( a && b ){this.on( a, b ); var c = this._onceEvents = this._onceEvents || {}, d = c[a] = c[a] || {}; return d[b] = !0, this}}, b.off = function( a, b ){var c = this._events && this._events[a]; if ( c && c.length ){var d = c.indexOf( b ); return - 1 != d && c.splice( d, 1 ), this}}, b.emitEvent = function( a, b ){var c = this._events && this._events[a]; if ( c && c.length ){var d = 0, e = c[d]; b = b || []; for ( var f = this._onceEvents && this._onceEvents[a]; e; ){var g = f && f[e]; g && ( this.off( a, e ), delete f[e] ), e.apply( this, b ), d += g?0:1, e = c[d]}return this}}, a} ), function( a, b ){"use strict"; "function" == typeof define && define.amd?define( ["ev-emitter/ev-emitter"], function( c ){return b( a, c )} ):"object" == typeof module && module.exports?module.exports = b( a, require( "ev-emitter" ) ):a.imagesLoaded = b( a, a.EvEmitter )}( window, function( a, b ){function c( a, b ){for ( var c in b )a[c] = b[c]; return a}function d( a ){var b = []; if ( Array.isArray( a ) )b = a; else if ( "number" == typeof a.length )for ( var c = 0; c < a.length; c++ )b.push( a[c] ); else b.push( a ); return b}function e( a, b, f ){return this instanceof e?( "string" == typeof a && ( a = document.querySelectorAll( a ) ), this.elements = d( a ), this.options = c( {}, this.options ), "function" == typeof b?f = b:c( this.options, b ), f && this.on( "always", f ), this.getImages( ), h && ( this.jqDeferred = new h.Deferred ), void setTimeout( function( ){this.check( )}.bind( this ) ) ):new e( a, b, f )}function f( a ){this.img = a}function g( a, b ){this.url = a, this.element = b, this.img = new Image}var h = a.jQuery, i = a.console; e.prototype = Object.create( b.prototype ), e.prototype.options = {}, e.prototype.getImages = function( ){this.images = [], this.elements.forEach( this.addElementImages, this )}, e.prototype.addElementImages = function( a ){"IMG" == a.nodeName && this.addImage( a ), this.options.background === !0 && this.addElementBackgroundImages( a ); var b = a.nodeType; if ( b && j[b] ){for ( var c = a.querySelectorAll( "img" ), d = 0; d < c.length; d++ ){var e = c[d]; this.addImage( e )}if ( "string" == typeof this.options.background ){var f = a.querySelectorAll( this.options.background ); for ( d = 0; d < f.length; d++ ){var g = f[d]; this.addElementBackgroundImages( g )}}}}; var j = {1:!0, 9:!0, 11:!0}; return e.prototype.addElementBackgroundImages = function( a ){var b = getComputedStyle( a ); if ( b )for ( var c = /url\((['"])?(.*?)\1\)/gi, d = c.exec( b.backgroundImage ); null !== d; ){var e = d && d[2]; e && this.addBackground( e, a ), d = c.exec( b.backgroundImage )}}, e.prototype.addImage = function( a ){var b = new f( a ); this.images.push( b )}, e.prototype.addBackground = function( a, b ){var c = new g( a, b ); this.images.push( c )}, e.prototype.check = function( ){function a( a, c, d ){setTimeout( function( ){b.progress( a, c, d )} )}var b = this; return this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length?void this.images.forEach( function( b ){b.once( "progress", a ), b.check( )} ):void this.complete( )}, e.prototype.progress = function( a, b, c ){this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !a.isLoaded, this.emitEvent( "progress", [this, a, b] ), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify( this, a ), this.progressedCount == this.images.length && this.complete( ), this.options.debug && i && i.log( "progress: " + c, a, b )}, e.prototype.complete = function( ){var a = this.hasAnyBroken?"fail":"done"; if ( this.isComplete = !0, this.emitEvent( a, [this] ), this.emitEvent( "always", [this] ), this.jqDeferred ){var b = this.hasAnyBroken?"reject":"resolve"; this.jqDeferred[b]( this )}}, f.prototype = Object.create( b.prototype ), f.prototype.check = function( ){var a = this.getIsImageComplete( ); return a?void this.confirm( 0 !== this.img.naturalWidth, "naturalWidth" ):( this.proxyImage = new Image, this.proxyImage.addEventListener( "load", this ), this.proxyImage.addEventListener( "error", this ), this.img.addEventListener( "load", this ), this.img.addEventListener( "error", this ), void( this.proxyImage.src = this.img.src ) )}, f.prototype.getIsImageComplete = function( ){return this.img.complete && void 0 !== this.img.naturalWidth}, f.prototype.confirm = function( a, b ){this.isLoaded = a, this.emitEvent( "progress", [this, this.img, b] )}, f.prototype.handleEvent = function( a ){var b = "on" + a.type; this[b] && this[b]( a )}, f.prototype.onload = function( ){this.confirm( !0, "onload" ), this.unbindEvents( )}, f.prototype.onerror = function( ){this.confirm( !1, "onerror" ), this.unbindEvents( )}, f.prototype.unbindEvents = function( ){this.proxyImage.removeEventListener( "load", this ), this.proxyImage.removeEventListener( "error", this ), this.img.removeEventListener( "load", this ), this.img.removeEventListener( "error", this )}, g.prototype = Object.create( f.prototype ), g.prototype.check = function( ){this.img.addEventListener( "load", this ), this.img.addEventListener( "error", this ), this.img.src = this.url; var a = this.getIsImageComplete( ); a && ( this.confirm( 0 !== this.img.naturalWidth, "naturalWidth" ), this.unbindEvents( ) )}, g.prototype.unbindEvents = function( ){this.img.removeEventListener( "load", this ), this.img.removeEventListener( "error", this )}, g.prototype.confirm = function( a, b ){this.isLoaded = a, this.emitEvent( "progress", [this, this.element, b] )}, e.makeJQueryPlugin = function( b ){b = b || a.jQuery, b && ( h = b, h.fn.imagesLoaded = function( a, b ){var c = new e( this, a, b ); return c.jqDeferred.promise( h( this ) )} )}, e.makeJQueryPlugin( ), e} );
          /*! ScrollMagic v2.0.5 | (c) 2015 Jan Paepke (@janpaepke) | license & info: http://scrollmagic.io */
          !function( e, t ){"function" == typeof define && define.amd?define( t ):"object" == typeof exports?module.exports = t( ):e.ScrollMagic = t( )}( this, function( ){"use strict"; var e = function( ){}; e.version = "2.0.5", window.addEventListener( "mousewheel", function( ){} ); var t = "data-scrollmagic-pin-spacer"; e.Controller = function( r ){var o, s, a = "ScrollMagic.Controller", l = "FORWARD", c = "REVERSE", u = "PAUSED", f = n.defaults, d = this, h = i.extend( {}, f, r ), g = [], p = !1, v = 0, m = u, w = !0, y = 0, S = !0, b = function( ){for ( var e in h )f.hasOwnProperty( e ) || delete h[e]; if ( h.container = i.get.elements( h.container )[0], !h.container )throw a + " init failed."; w = h.container === window || h.container === document.body || !document.body.contains( h.container ), w && ( h.container = window ), y = z( ), h.container.addEventListener( "resize", T ), h.container.addEventListener( "scroll", T ), h.refreshInterval = parseInt( h.refreshInterval ) || f.refreshInterval, E( )}, E = function( ){h.refreshInterval > 0 && ( s = window.setTimeout( A, h.refreshInterval ) )}, x = function( ){return h.vertical?i.get.scrollTop( h.container ):i.get.scrollLeft( h.container )}, z = function( ){return h.vertical?i.get.height( h.container ):i.get.width( h.container )}, C = this._setScrollPos = function( e ){h.vertical?w?window.scrollTo( i.get.scrollLeft( ), e ):h.container.scrollTop = e:w?window.scrollTo( e, i.get.scrollTop( ) ):h.container.scrollLeft = e}, F = function( ){if ( S && p ){var e = i.type.Array( p )?p:g.slice( 0 ); p = !1; var t = v; v = d.scrollPos( ); var n = v - t; 0 !== n && ( m = n > 0?l:c ), m === c && e.reverse( ), e.forEach( function( e ){e.update( !0 )} )}}, L = function( ){o = i.rAF( F )}, T = function( e ){"resize" == e.type && ( y = z( ), m = u ), p !== !0 && ( p = !0, L( ) )}, A = function( ){if ( !w && y != z( ) ){var e; try{e = new Event( "resize", {bubbles:!1, cancelable:!1} )} catch ( t ){e = document.createEvent( "Event" ), e.initEvent( "resize", !1, !1 )}h.container.dispatchEvent( e )}g.forEach( function( e ){e.refresh( )} ), E( )}; this._options = h; var O = function( e ){if ( e.length <= 1 )return e; var t = e.slice( 0 ); return t.sort( function( e, t ){return e.scrollOffset( ) > t.scrollOffset( )?1: - 1} ), t}; return this.addScene = function( t ){if ( i.type.Array( t ) )t.forEach( function( e ){d.addScene( e )} ); else if ( t instanceof e.Scene )if ( t.controller( ) !== d )t.addTo( d ); else if ( g.indexOf( t ) < 0 ){g.push( t ), g = O( g ), t.on( "shift.controller_sort", function( ){g = O( g )} ); for ( var n in h.globalSceneOptions )t[n] && t[n].call( t, h.globalSceneOptions[n] )}return d}, this.removeScene = function( e ){if ( i.type.Array( e ) )e.forEach( function( e ){d.removeScene( e )} ); else{var t = g.indexOf( e ); t > - 1 && ( e.off( "shift.controller_sort" ), g.splice( t, 1 ), e.remove( ) )}return d}, this.updateScene = function( t, n ){return i.type.Array( t )?t.forEach( function( e ){d.updateScene( e, n )} ):n?t.update( !0 ):p !== !0 && t instanceof e.Scene && ( p = p || [], - 1 == p.indexOf( t ) && p.push( t ), p = O( p ), L( ) ), d}, this.update = function( e ){return T( {type:"resize"} ), e && F( ), d}, this.scrollTo = function( n, r ){if ( i.type.Number( n ) )C.call( h.container, n, r ); else if ( n instanceof e.Scene )n.controller( ) === d && d.scrollTo( n.scrollOffset( ), r ); else if ( i.type.Function( n ) )C = n; else{var o = i.get.elements( n )[0]; if ( o ){for ( ; o.parentNode.hasAttribute( t ); )o = o.parentNode; var s = h.vertical?"top":"left", a = i.get.offset( h.container ), l = i.get.offset( o ); w || ( a[s] -= d.scrollPos( ) ), d.scrollTo( l[s] - a[s], r )}}return d}, this.scrollPos = function( e ){return arguments.length?( i.type.Function( e ) && ( x = e ), d ):x.call( d )}, this.info = function( e ){var t = {size:y, vertical:h.vertical, scrollPos:v, scrollDirection:m, container:h.container, isDocument:w}; return arguments.length?void 0 !== t[e]?t[e]:void 0:t}, this.loglevel = function( ){return d}, this.enabled = function( e ){return arguments.length?( S != e && ( S = !!e, d.updateScene( g, !0 ) ), d ):S}, this.destroy = function( e ){window.clearTimeout( s ); for ( var t = g.length; t--; )g[t].destroy( e ); return h.container.removeEventListener( "resize", T ), h.container.removeEventListener( "scroll", T ), i.cAF( o ), null}, b( ), d}; var n = {defaults:{container:window, vertical:!0, globalSceneOptions:{}, loglevel:2, refreshInterval:100}}; e.Controller.addOption = function( e, t ){n.defaults[e] = t}, e.Controller.extend = function( t ){var n = this; e.Controller = function( ){return n.apply( this, arguments ), this.$super = i.extend( {}, this ), t.apply( this, arguments ) || this}, i.extend( e.Controller, n ), e.Controller.prototype = n.prototype, e.Controller.prototype.constructor = e.Controller}, e.Scene = function( n ){var o, s, a = "BEFORE", l = "DURING", c = "AFTER", u = r.defaults, f = this, d = i.extend( {}, u, n ), h = a, g = 0, p = {start:0, end:0}, v = 0, m = !0, w = function( ){for ( var e in d )u.hasOwnProperty( e ) || delete d[e]; for ( var t in u )L( t ); C( )}, y = {}; this.on = function( e, t ){return i.type.Function( t ) && ( e = e.trim( ).split( " " ), e.forEach( function( e ){var n = e.split( "." ), r = n[0], i = n[1]; "*" != r && ( y[r] || ( y[r] = [] ), y[r].push( {namespace:i || "", callback:t} ) )} ) ), f}, this.off = function( e, t ){return e?( e = e.trim( ).split( " " ), e.forEach( function( e ){var n = e.split( "." ), r = n[0], i = n[1] || "", o = "*" === r?Object.keys( y ):[r]; o.forEach( function( e ){for ( var n = y[e] || [], r = n.length; r--; ){var o = n[r]; !o || i !== o.namespace && "*" !== i || t && t != o.callback || n.splice( r, 1 )}n.length || delete y[e]} )} ), f ):f}, this.trigger = function( t, n ){if ( t ){var r = t.trim( ).split( "." ), i = r[0], o = r[1], s = y[i]; s && s.forEach( function( t ){o && o !== t.namespace || t.callback.call( f, new e.Event( i, t.namespace, f, n ) )} )}return f}, f.on( "change.internal", function( e ){"loglevel" !== e.what && "tweenChanges" !== e.what && ( "triggerElement" === e.what?E( ):"reverse" === e.what && f.update( ) )} ).on( "shift.internal", function( ){S( ), f.update( )} ), this.addTo = function( t ){return t instanceof e.Controller && s != t && ( s && s.removeScene( f ), s = t, C( ), b( !0 ), E( !0 ), S( ), s.info( "container" ).addEventListener( "resize", x ), t.addScene( f ), f.trigger( "add", {controller:s} ), f.update( ) ), f}, this.enabled = function( e ){return arguments.length?( m != e && ( m = !!e, f.update( !0 ) ), f ):m}, this.remove = function( ){if ( s ){s.info( "container" ).removeEventListener( "resize", x ); var e = s; s = void 0, e.removeScene( f ), f.trigger( "remove" )}return f}, this.destroy = function( e ){return f.trigger( "destroy", {reset:e} ), f.remove( ), f.off( "*.*" ), null}, this.update = function( e ){if ( s )if ( e )if ( s.enabled( ) && m ){var t, n = s.info( "scrollPos" ); t = d.duration > 0?( n - p.start ) / ( p.end - p.start ):n >= p.start?1:0, f.trigger( "update", {startPos:p.start, endPos:p.end, scrollPos:n} ), f.progress( t )} else T && h === l && O( !0 ); else s.updateScene( f, !1 ); return f}, this.refresh = function( ){return b( ), E( ), f}, this.progress = function( e ){if ( arguments.length ){var t = !1, n = h, r = s?s.info( "scrollDirection" ):"PAUSED", i = d.reverse || e >= g; if ( 0 === d.duration?( t = g != e, g = 1 > e && i?0:1, h = 0 === g?a:l ):0 > e && h !== a && i?( g = 0, h = a, t = !0 ):e >= 0 && 1 > e && i?( g = e, h = l, t = !0 ):e >= 1 && h !== c?( g = 1, h = c, t = !0 ):h !== l || i || O( ), t ){var o = {progress:g, state:h, scrollDirection:r}, u = h != n, p = function( e ){f.trigger( e, o )}; u && n !== l && ( p( "enter" ), p( n === a?"start":"end" ) ), p( "progress" ), u && h !== l && ( p( h === a?"start":"end" ), p( "leave" ) )}return f}return g}; var S = function( ){p = {start:v + d.offset}, s && d.triggerElement && ( p.start -= s.info( "size" ) * d.triggerHook ), p.end = p.start + d.duration}, b = function( e ){if ( o ){var t = "duration"; F( t, o.call( f ) ) && !e && ( f.trigger( "change", {what:t, newval:d[t]} ), f.trigger( "shift", {reason:t} ) )}}, E = function( e ){var n = 0, r = d.triggerElement; if ( s && r ){for ( var o = s.info( ), a = i.get.offset( o.container ), l = o.vertical?"top":"left"; r.parentNode.hasAttribute( t ); )r = r.parentNode; var c = i.get.offset( r ); o.isDocument || ( a[l] -= s.scrollPos( ) ), n = c[l] - a[l]}var u = n != v; v = n, u && !e && f.trigger( "shift", {reason:"triggerElementPosition"} )}, x = function( ){d.triggerHook > 0 && f.trigger( "shift", {reason:"containerResize"} )}, z = i.extend( r.validate, {duration:function( e ){if ( i.type.String( e ) && e.match( /^(\.|\d)*\d+%$/ ) ){var t = parseFloat( e ) / 100; e = function( ){return s?s.info( "size" ) * t:0}}if ( i.type.Function( e ) ){o = e; try{e = parseFloat( o( ) )} catch ( n ){e = - 1}}if ( e = parseFloat( e ), !i.type.Number( e ) || 0 > e )throw o?( o = void 0, 0 ):0; return e}} ), C = function( e ){e = arguments.length?[e]:Object.keys( z ), e.forEach( function( e ){var t; if ( z[e] )try{t = z[e]( d[e] )} catch ( n ){t = u[e]} finally{d[e] = t}} )}, F = function( e, t ){var n = !1, r = d[e]; return d[e] != t && ( d[e] = t, C( e ), n = r != d[e] ), n}, L = function( e ){f[e] || ( f[e] = function( t ){return arguments.length?( "duration" === e && ( o = void 0 ), F( e, t ) && ( f.trigger( "change", {what:e, newval:d[e]} ), r.shifts.indexOf( e ) > - 1 && f.trigger( "shift", {reason:e} ) ), f ):d[e]} )}; this.controller = function( ){return s}, this.state = function( ){return h}, this.scrollOffset = function( ){return p.start}, this.triggerPosition = function( ){var e = d.offset; return s && ( e += d.triggerElement?v:s.info( "size" ) * f.triggerHook( ) ), e}; var T, A; f.on( "shift.internal", function( e ){var t = "duration" === e.reason; ( h === c && t || h === l && 0 === d.duration ) && O( ), t && _( )} ).on( "progress.internal", function( ){O( )} ).on( "add.internal", function( ){_( )} ).on( "destroy.internal", function( e ){f.removePin( e.reset )} ); var O = function( e ){if ( T && s ){var t = s.info( ), n = A.spacer.firstChild; if ( e || h !== l ){var r = {position:A.inFlow?"relative":"absolute", top:0, left:0}, o = i.css( n, "position" ) != r.position; A.pushFollowers?d.duration > 0 && ( h === c && 0 === parseFloat( i.css( A.spacer, "padding-top" ) )?o = !0:h === a && 0 === parseFloat( i.css( A.spacer, "padding-bottom" ) ) && ( o = !0 ) ):r[t.vertical?"top":"left"] = d.duration * g, i.css( n, r ), o && _( )} else{"fixed" != i.css( n, "position" ) && ( i.css( n, {position:"fixed"} ), _( ) ); var u = i.get.offset( A.spacer, !0 ), f = d.reverse || 0 === d.duration?t.scrollPos - p.start:Math.round( g * d.duration * 10 ) / 10; u[t.vertical?"top":"left"] += f, i.css( A.spacer.firstChild, {top:u.top, left:u.left} )}}}, _ = function( ){if ( T && s && A.inFlow ){var e = h === l, t = s.info( "vertical" ), n = A.spacer.firstChild, r = i.isMarginCollapseType( i.css( A.spacer, "display" ) ), o = {}; A.relSize.width || A.relSize.autoFullWidth?e?i.css( T, {width:i.get.width( A.spacer )} ):i.css( T, {width:"100%"} ):( o["min-width"] = i.get.width( t?T:n, !0, !0 ), o.width = e?o["min-width"]:"auto" ), A.relSize.height?e?i.css( T, {height:i.get.height( A.spacer ) - ( A.pushFollowers?d.duration:0 )} ):i.css( T, {height:"100%"} ):( o["min-height"] = i.get.height( t?n:T, !0, !r ), o.height = e?o["min-height"]:"auto" ), A.pushFollowers && ( o["padding" + ( t?"Top":"Left" )] = d.duration * g, o["padding" + ( t?"Bottom":"Right" )] = d.duration * ( 1 - g ) ), i.css( A.spacer, o )}}, N = function( ){s && T && h === l && !s.info( "isDocument" ) && O( )}, P = function( ){s && T && h === l && ( ( A.relSize.width || A.relSize.autoFullWidth ) && i.get.width( window ) != i.get.width( A.spacer.parentNode ) || A.relSize.height && i.get.height( window ) != i.get.height( A.spacer.parentNode ) ) && _( )}, D = function( e ){s && T && h === l && !s.info( "isDocument" ) && ( e.preventDefault( ), s._setScrollPos( s.info( "scrollPos" ) - ( ( e.wheelDelta || e[s.info( "vertical" )?"wheelDeltaY":"wheelDeltaX"] ) / 3 || 30 * - e.detail ) ) )}; this.setPin = function( e, n ){var r = {pushFollowers:!0, spacerClass:"scrollmagic-pin-spacer"}; if ( n = i.extend( {}, r, n ), e = i.get.elements( e )[0], !e )return f; if ( "fixed" === i.css( e, "position" ) )return f; if ( T ){if ( T === e )return f; f.removePin( )}T = e; var o = T.parentNode.style.display, s = ["top", "left", "bottom", "right", "margin", "marginLeft", "marginRight", "marginTop", "marginBottom"]; T.parentNode.style.display = "none"; var a = "absolute" != i.css( T, "position" ), l = i.css( T, s.concat( ["display"] ) ), c = i.css( T, ["width", "height"] ); T.parentNode.style.display = o, !a && n.pushFollowers && ( n.pushFollowers = !1 ); var u = T.parentNode.insertBefore( document.createElement( "div" ), T ), d = i.extend( l, {position:a?"relative":"absolute", boxSizing:"content-box", mozBoxSizing:"content-box", webkitBoxSizing:"content-box"} ); if ( a || i.extend( d, i.css( T, ["width", "height"] ) ), i.css( u, d ), u.setAttribute( t, "" ), i.addClass( u, n.spacerClass ), A = {spacer:u, relSize:{width:"%" === c.width.slice( - 1 ), height:"%" === c.height.slice( - 1 ), autoFullWidth:"auto" === c.width && a && i.isMarginCollapseType( l.display )}, pushFollowers:n.pushFollowers, inFlow:a}, !T.___origStyle ){T.___origStyle = {}; var h = T.style, g = s.concat( ["width", "height", "position", "boxSizing", "mozBoxSizing", "webkitBoxSizing"] ); g.forEach( function( e ){T.___origStyle[e] = h[e] || ""} )}return A.relSize.width && i.css( u, {width:c.width} ), A.relSize.height && i.css( u, {height:c.height} ), u.appendChild( T ), i.css( T, {position:a?"relative":"absolute", margin:"auto", top:"auto", left:"auto", bottom:"auto", right:"auto"} ), ( A.relSize.width || A.relSize.autoFullWidth ) && i.css( T, {boxSizing:"border-box", mozBoxSizing:"border-box", webkitBoxSizing:"border-box"} ), window.addEventListener( "scroll", N ), window.addEventListener( "resize", N ), window.addEventListener( "resize", P ), T.addEventListener( "mousewheel", D ), T.addEventListener( "DOMMouseScroll", D ), O( ), f}, this.removePin = function( e ){if ( T ){if ( h === l && O( !0 ), e || !s ){var n = A.spacer.firstChild; if ( n.hasAttribute( t ) ){var r = A.spacer.style, o = ["margin", "marginLeft", "marginRight", "marginTop", "marginBottom"]; margins = {}, o.forEach( function( e ){margins[e] = r[e] || ""} ), i.css( n, margins )}A.spacer.parentNode.insertBefore( n, A.spacer ), A.spacer.parentNode.removeChild( A.spacer ), T.parentNode.hasAttribute( t ) || ( i.css( T, T.___origStyle ), delete T.___origStyle )}window.removeEventListener( "scroll", N ), window.removeEventListener( "resize", N ), window.removeEventListener( "resize", P ), T.removeEventListener( "mousewheel", D ), T.removeEventListener( "DOMMouseScroll", D ), T = void 0}return f}; var R, k = []; return f.on( "destroy.internal", function( e ){f.removeClassToggle( e.reset )} ), this.setClassToggle = function( e, t ){var n = i.get.elements( e ); return 0 !== n.length && i.type.String( t )?( k.length > 0 && f.removeClassToggle( ), R = t, k = n, f.on( "enter.internal_class leave.internal_class", function( e ){var t = "enter" === e.type?i.addClass:i.removeClass; k.forEach( function( e ){t( e, R )} )} ), f ):f}, this.removeClassToggle = function( e ){return e && k.forEach( function( e ){i.removeClass( e, R )} ), f.off( "start.internal_class end.internal_class" ), R = void 0, k = [], f}, w( ), f}; var r = {defaults:{duration:0, offset:0, triggerElement:void 0, triggerHook:.5, reverse:!0, loglevel:2}, validate:{offset:function( e ){if ( e = parseFloat( e ), !i.type.Number( e ) )throw 0; return e}, triggerElement:function( e ){if ( e = e || void 0 ){var t = i.get.elements( e )[0]; if ( !t )throw 0; e = t}return e}, triggerHook:function( e ){var t = {onCenter:.5, onEnter:1, onLeave:0}; if ( i.type.Number( e ) )e = Math.max( 0, Math.min( parseFloat( e ), 1 ) ); else{if ( !( e in t ) )throw 0; e = t[e]}return e}, reverse:function( e ){return!!e}}, shifts:["duration", "offset", "triggerHook"]}; e.Scene.addOption = function( e, t, n, i ){e in r.defaults || ( r.defaults[e] = t, r.validate[e] = n, i && r.shifts.push( e ) )}, e.Scene.extend = function( t ){var n = this; e.Scene = function( ){return n.apply( this, arguments ), this.$super = i.extend( {}, this ), t.apply( this, arguments ) || this}, i.extend( e.Scene, n ), e.Scene.prototype = n.prototype, e.Scene.prototype.constructor = e.Scene}, e.Event = function( e, t, n, r ){r = r || {}; for ( var i in r )this[i] = r[i]; return this.type = e, this.target = this.currentTarget = n, this.namespace = t || "", this.timeStamp = this.timestamp = Date.now( ), this}; var i = e._util = function( e ){var t, n = {}, r = function( e ){return parseFloat( e ) || 0}, i = function( t ){return t.currentStyle?t.currentStyle:e.getComputedStyle( t )}, o = function( t, n, o, s ){if ( n = n === document?e:n, n === e )s = !1; else if ( !f.DomElement( n ) )return 0; t = t.charAt( 0 ).toUpperCase( ) + t.substr( 1 ).toLowerCase( ); var a = ( o?n["offset" + t] || n["outer" + t]:n["client" + t] || n["inner" + t] ) || 0; if ( o && s ){var l = i( n ); a += "Height" === t?r( l.marginTop ) + r( l.marginBottom ):r( l.marginLeft ) + r( l.marginRight )}return a}, s = function( e ){return e.replace( /^[^a-z]+([a-z])/g, "$1" ).replace( /-([a-z])/g, function( e ){return e[1].toUpperCase( )} )}; n.extend = function( e ){for ( e = e || {}, t = 1; t < arguments.length; t++ )if ( arguments[t] )for ( var n in arguments[t] )arguments[t].hasOwnProperty( n ) && ( e[n] = arguments[t][n] ); return e}, n.isMarginCollapseType = function( e ){return["block", "flex", "list-item", "table", "-webkit-box"].indexOf( e ) > - 1}; var a = 0, l = ["ms", "moz", "webkit", "o"], c = e.requestAnimationFrame, u = e.cancelAnimationFrame; for ( t = 0; !c && t < l.length; ++t )c = e[l[t] + "RequestAnimationFrame"], u = e[l[t] + "CancelAnimationFrame"] || e[l[t] + "CancelRequestAnimationFrame"]; c || ( c = function( t ){var n = ( new Date ).getTime( ), r = Math.max( 0, 16 - ( n - a ) ), i = e.setTimeout( function( ){t( n + r )}, r ); return a = n + r, i} ), u || ( u = function( t ){e.clearTimeout( t )} ), n.rAF = c.bind( e ), n.cAF = u.bind( e ); var f = n.type = function( e ){return Object.prototype.toString.call( e ).replace( /^\[object (.+)\]$/, "$1" ).toLowerCase( )}; f.String = function( e ){return"string" === f( e )}, f.Function = function( e ){return"function" === f( e )}, f.Array = function( e ){return Array.isArray( e )}, f.Number = function( e ){return!f.Array( e ) && e - parseFloat( e ) + 1 >= 0}, f.DomElement = function( e ){return"object" == typeof HTMLElement?e instanceof HTMLElement:e && "object" == typeof e && null !== e && 1 === e.nodeType && "string" == typeof e.nodeName}; var d = n.get = {}; return d.elements = function( t ){var n = []; if ( f.String( t ) )try{t = document.querySelectorAll( t )} catch ( r ){return n}if ( "nodelist" === f( t ) || f.Array( t ) )for ( var i = 0, o = n.length = t.length; o > i; i++ ){var s = t[i]; n[i] = f.DomElement( s )?s:d.elements( s )} else( f.DomElement( t ) || t === document || t === e ) && ( n = [t] ); return n}, d.scrollTop = function( t ){return t && "number" == typeof t.scrollTop?t.scrollTop:e.pageYOffset || 0}, d.scrollLeft = function( t ){return t && "number" == typeof t.scrollLeft?t.scrollLeft:e.pageXOffset || 0}, d.width = function( e, t, n ){return o( "width", e, t, n )}, d.height = function( e, t, n ){return o( "height", e, t, n )}, d.offset = function( e, t ){var n = {top:0, left:0}; if ( e && e.getBoundingClientRect ){var r = e.getBoundingClientRect( ); n.top = r.top, n.left = r.left, t || ( n.top += d.scrollTop( ), n.left += d.scrollLeft( ) )}return n}, n.addClass = function( e, t ){t && ( e.classList?e.classList.add( t ):e.className += " " + t )}, n.removeClass = function( e, t ){t && ( e.classList?e.classList.remove( t ):e.className = e.className.replace( RegExp( "(^|\\b)" + t.split( " " ).join( "|" ) + "(\\b|$)", "gi" ), " " ) )}, n.css = function( e, t ){if ( f.String( t ) )return i( e )[s( t )]; if ( f.Array( t ) ){var n = {}, r = i( e ); return t.forEach( function( e ){n[e] = r[s( e )]} ), n}for ( var o in t ){var a = t[o]; a == parseFloat( a ) && ( a += "px" ), e.style[s( o )] = a}}, n}( window || {} ); return e} );
          /*! VelocityJS.org (1.2.3). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */
          /*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */
          !function( a ){function b( a ){var b = a.length, d = c.type( a ); return"function" === d || c.isWindow( a )?!1:1 === a.nodeType && b?!0:"array" === d || 0 === b || "number" == typeof b && b > 0 && b - 1 in a}if ( !a.jQuery ){var c = function( a, b ){return new c.fn.init( a, b )}; c.isWindow = function( a ){return null != a && a == a.window}, c.type = function( a ){return null == a?a + "":"object" == typeof a || "function" == typeof a?e[g.call( a )] || "object":typeof a}, c.isArray = Array.isArray || function( a ){return"array" === c.type( a )}, c.isPlainObject = function( a ){var b; if ( !a || "object" !== c.type( a ) || a.nodeType || c.isWindow( a ) )return!1; try{if ( a.constructor && !f.call( a, "constructor" ) && !f.call( a.constructor.prototype, "isPrototypeOf" ) )return!1} catch ( d ){return!1}for ( b in a ); return void 0 === b || f.call( a, b )}, c.each = function( a, c, d ){var e, f = 0, g = a.length, h = b( a ); if ( d ){if ( h )for ( ; g > f && ( e = c.apply( a[f], d ), e !== !1 ); f++ ); else for ( f in a )if ( e = c.apply( a[f], d ), e === !1 )break} else if ( h )for ( ; g > f && ( e = c.call( a[f], f, a[f] ), e !== !1 ); f++ ); else for ( f in a )if ( e = c.call( a[f], f, a[f] ), e === !1 )break; return a}, c.data = function( a, b, e ){if ( void 0 === e ){var f = a[c.expando], g = f && d[f]; if ( void 0 === b )return g; if ( g && b in g )return g[b]} else if ( void 0 !== b ){var f = a[c.expando] || ( a[c.expando] = ++c.uuid ); return d[f] = d[f] || {}, d[f][b] = e, e}}, c.removeData = function( a, b ){var e = a[c.expando], f = e && d[e]; f && c.each( b, function( a, b ){delete f[b]} )}, c.extend = function( ){var a, b, d, e, f, g, h = arguments[0] || {}, i = 1, j = arguments.length, k = !1; for ( "boolean" == typeof h && ( k = h, h = arguments[i] || {}, i++ ), "object" != typeof h && "function" !== c.type( h ) && ( h = {} ), i === j && ( h = this, i-- ); j > i; i++ )if ( null != ( f = arguments[i] ) )for ( e in f )a = h[e], d = f[e], h !== d && ( k && d && ( c.isPlainObject( d ) || ( b = c.isArray( d ) ) )?( b?( b = !1, g = a && c.isArray( a )?a:[] ):g = a && c.isPlainObject( a )?a:{}, h[e] = c.extend( k, g, d ) ):void 0 !== d && ( h[e] = d ) ); return h}, c.queue = function( a, d, e ){function f( a, c ){var d = c || []; return null != a && ( b( Object( a ) )?!function( a, b ){for ( var c = + b.length, d = 0, e = a.length; c > d; )a[e++] = b[d++]; if ( c !== c )for ( ; void 0 !== b[d]; )a[e++] = b[d++]; return a.length = e, a}( d, "string" == typeof a?[a]:a ):[].push.call( d, a ) ), d}if ( a ){d = ( d || "fx" ) + "queue"; var g = c.data( a, d ); return e?( !g || c.isArray( e )?g = c.data( a, d, f( e ) ):g.push( e ), g ):g || []}}, c.dequeue = function( a, b ){c.each( a.nodeType?[a]:a, function( a, d ){b = b || "fx"; var e = c.queue( d, b ), f = e.shift( ); "inprogress" === f && ( f = e.shift( ) ), f && ( "fx" === b && e.unshift( "inprogress" ), f.call( d, function( ){c.dequeue( d, b )} ) )} )}, c.fn = c.prototype = {init:function( a ){if ( a.nodeType )return this[0] = a, this; throw new Error( "Not a DOM node." )}, offset:function( ){var b = this[0].getBoundingClientRect?this[0].getBoundingClientRect( ):{top:0, left:0}; return{top:b.top + ( a.pageYOffset || document.scrollTop || 0 ) - ( document.clientTop || 0 ), left:b.left + ( a.pageXOffset || document.scrollLeft || 0 ) - ( document.clientLeft || 0 )}}, position:function( ){function a( ){for ( var a = this.offsetParent || document; a && "html" === !a.nodeType.toLowerCase && "static" === a.style.position; )a = a.offsetParent; return a || document}var b = this[0], a = a.apply( b ), d = this.offset( ), e = /^(?:body|html)$/i.test( a.nodeName )?{top:0, left:0}:c( a ).offset( ); return d.top -= parseFloat( b.style.marginTop ) || 0, d.left -= parseFloat( b.style.marginLeft ) || 0, a.style && ( e.top += parseFloat( a.style.borderTopWidth ) || 0, e.left += parseFloat( a.style.borderLeftWidth ) || 0 ), {top:d.top - e.top, left:d.left - e.left}}}; var d = {}; c.expando = "velocity" + ( new Date ).getTime( ), c.uuid = 0; for ( var e = {}, f = e.hasOwnProperty, g = e.toString, h = "Boolean Number String Function Array Date RegExp Object Error".split( " " ), i = 0; i < h.length; i++ )e["[object " + h[i] + "]"] = h[i].toLowerCase( ); c.fn.init.prototype = c.fn, a.Velocity = {Utilities:c}}}( window ), function( a ){"object" == typeof module && "object" == typeof module.exports?module.exports = a( ):"function" == typeof define && define.amd?define( a ):a( )}( function( ){return function( a, b, c, d ){function e( a ){for ( var b = - 1, c = a?a.length:0, d = []; ++b < c; ){var e = a[b]; e && d.push( e )}return d}function f( a ){return p.isWrapped( a )?a = [].slice.call( a ):p.isNode( a ) && ( a = [a] ), a}function g( a ){var b = m.data( a, "velocity" ); return null === b?d:b}function h( a ){return function( b ){return Math.round( b * a ) * ( 1 / a )}}function i( a, c, d, e ){function f( a, b ){return 1 - 3 * b + 3 * a}function g( a, b ){return 3 * b - 6 * a}function h( a ){return 3 * a}function i( a, b, c ){return( ( f( b, c ) * a + g( b, c ) ) * a + h( b ) ) * a}function j( a, b, c ){return 3 * f( b, c ) * a * a + 2 * g( b, c ) * a + h( b )}function k( b, c ){for ( var e = 0; p > e; ++e ){var f = j( c, a, d ); if ( 0 === f )return c; var g = i( c, a, d ) - b; c -= g / f}return c}function l( ){for ( var b = 0; t > b; ++b )x[b] = i( b * u, a, d )}function m( b, c, e ){var f, g, h = 0; do g = c + ( e - c ) / 2, f = i( g, a, d ) - b, f > 0?e = g:c = g; while ( Math.abs( f ) > r && ++h < s ); return g}function n( b ){for ( var c = 0, e = 1, f = t - 1; e != f && x[e] <= b; ++e )c += u; --e; var g = ( b - x[e] ) / ( x[e + 1] - x[e] ), h = c + g * u, i = j( h, a, d ); return i >= q?k( b, h ):0 == i?h:m( b, c, c + u )}function o( ){y = !0, ( a != c || d != e ) && l( )}var p = 4, q = .001, r = 1e-7, s = 10, t = 11, u = 1 / ( t - 1 ), v = "Float32Array"in b; if ( 4 !== arguments.length )return!1; for ( var w = 0; 4 > w; ++w )if ( "number" != typeof arguments[w] || isNaN( arguments[w] ) || !isFinite( arguments[w] ) )return!1; a = Math.min( a, 1 ), d = Math.min( d, 1 ), a = Math.max( a, 0 ), d = Math.max( d, 0 ); var x = v?new Float32Array( t ):new Array( t ), y = !1, z = function( b ){return y || o( ), a === c && d === e?b:0 === b?0:1 === b?1:i( n( b ), c, e )}; z.getControlPoints = function( ){return[{x:a, y:c}, {x:d, y:e}]}; var A = "generateBezier(" + [a, c, d, e] + ")"; return z.toString = function( ){return A}, z}function j( a, b ){var c = a; return p.isString( a )?t.Easings[a] || ( c = !1 ):c = p.isArray( a ) && 1 === a.length?h.apply( null, a ):p.isArray( a ) && 2 === a.length?u.apply( null, a.concat( [b] ) ):p.isArray( a ) && 4 === a.length?i.apply( null, a ):!1, c === !1 && ( c = t.Easings[t.defaults.easing]?t.defaults.easing:s ), c}function k( a ){if ( a ){var b = ( new Date ).getTime( ), c = t.State.calls.length; c > 1e4 && ( t.State.calls = e( t.State.calls ) ); for ( var f = 0; c > f; f++ )if ( t.State.calls[f] ){var h = t.State.calls[f], i = h[0], j = h[2], n = h[3], o = !!n, q = null; n || ( n = t.State.calls[f][3] = b - 16 ); for ( var r = Math.min( ( b - n ) / j.duration, 1 ), s = 0, u = i.length; u > s; s++ ){var w = i[s], y = w.element; if ( g( y ) ){var z = !1; if ( j.display !== d && null !== j.display && "none" !== j.display ){if ( "flex" === j.display ){var A = ["-webkit-box", "-moz-box", "-ms-flexbox", "-webkit-flex"]; m.each( A, function( a, b ){v.setPropertyValue( y, "display", b )} )}v.setPropertyValue( y, "display", j.display )}j.visibility !== d && "hidden" !== j.visibility && v.setPropertyValue( y, "visibility", j.visibility ); for ( var B in w )if ( "element" !== B ){var C, D = w[B], E = p.isString( D.easing )?t.Easings[D.easing]:D.easing; if ( 1 === r )C = D.endValue; else{var F = D.endValue - D.startValue; if ( C = D.startValue + F * E( r, j, F ), !o && C === D.currentValue )continue}if ( D.currentValue = C, "tween" === B )q = C; else{if ( v.Hooks.registered[B] ){var G = v.Hooks.getRoot( B ), H = g( y ).rootPropertyValueCache[G]; H && ( D.rootPropertyValue = H )}var I = v.setPropertyValue( y, B, D.currentValue + ( 0 === parseFloat( C )?"":D.unitType ), D.rootPropertyValue, D.scrollData ); v.Hooks.registered[B] && ( g( y ).rootPropertyValueCache[G] = v.Normalizations.registered[G]?v.Normalizations.registered[G]( "extract", null, I[1] ):I[1] ), "transform" === I[0] && ( z = !0 )}}j.mobileHA && g( y ).transformCache.translate3d === d && ( g( y ).transformCache.translate3d = "(0px, 0px, 0px)", z = !0 ), z && v.flushTransformCache( y )}}j.display !== d && "none" !== j.display && ( t.State.calls[f][2].display = !1 ), j.visibility !== d && "hidden" !== j.visibility && ( t.State.calls[f][2].visibility = !1 ), j.progress && j.progress.call( h[1], h[1], r, Math.max( 0, n + j.duration - b ), n, q ), 1 === r && l( f )}}t.State.isTicking && x( k )}function l( a, b ){if ( !t.State.calls[a] )return!1; for ( var c = t.State.calls[a][0], e = t.State.calls[a][1], f = t.State.calls[a][2], h = t.State.calls[a][4], i = !1, j = 0, k = c.length; k > j; j++ ){var l = c[j].element; if ( b || f.loop || ( "none" === f.display && v.setPropertyValue( l, "display", f.display ), "hidden" === f.visibility && v.setPropertyValue( l, "visibility", f.visibility ) ), f.loop !== !0 && ( m.queue( l )[1] === d || !/\.velocityQueueEntryFlag/i.test( m.queue( l )[1] ) ) && g( l ) ){g( l ).isAnimating = !1, g( l ).rootPropertyValueCache = {}; var n = !1; m.each( v.Lists.transforms3D, function( a, b ){var c = /^scale/.test( b )?1:0, e = g( l ).transformCache[b]; g( l ).transformCache[b] !== d && new RegExp( "^\\(" + c + "[^.]" ).test( e ) && ( n = !0, delete g( l ).transformCache[b] )} ), f.mobileHA && ( n = !0, delete g( l ).transformCache.translate3d ), n && v.flushTransformCache( l ), v.Values.removeClass( l, "velocity-animating" )}if ( !b && f.complete && !f.loop && j === k - 1 )try{f.complete.call( e, e )} catch ( o ){setTimeout( function( ){throw o}, 1 )}h && f.loop !== !0 && h( e ), g( l ) && f.loop === !0 && !b && ( m.each( g( l ).tweensContainer, function( a, b ){/^rotate/.test( a ) && 360 === parseFloat( b.endValue ) && ( b.endValue = 0, b.startValue = 360 ), /^backgroundPosition/.test( a ) && 100 === parseFloat( b.endValue ) && "%" === b.unitType && ( b.endValue = 0, b.startValue = 100 )} ), t( l, "reverse", {loop:!0, delay:f.delay} ) ), f.queue !== !1 && m.dequeue( l, f.queue )}t.State.calls[a] = !1; for ( var p = 0, q = t.State.calls.length; q > p; p++ )if ( t.State.calls[p] !== !1 ){i = !0; break}i === !1 && ( t.State.isTicking = !1, delete t.State.calls, t.State.calls = [] )}var m, n = function( ){if ( c.documentMode )return c.documentMode; for ( var a = 7; a > 4; a-- ){var b = c.createElement( "div" ); if ( b.innerHTML = "<!--[if IE " + a + "]><span></span><![endif]-->", b.getElementsByTagName( "span" ).length )return b = null, a}return d}( ), o = function( ){var a = 0; return b.webkitRequestAnimationFrame || b.mozRequestAnimationFrame || function( b ){var c, d = ( new Date ).getTime( ); return c = Math.max( 0, 16 - ( d - a ) ), a = d + c, setTimeout( function( ){b( d + c )}, c )}}( ), p = {isString:function( a ){return"string" == typeof a}, isArray:Array.isArray || function( a ){return"[object Array]" === Object.prototype.toString.call( a )}, isFunction:function( a ){return"[object Function]" === Object.prototype.toString.call( a )}, isNode:function( a ){return a && a.nodeType}, isNodeList:function( a ){return"object" == typeof a && /^\[object (HTMLCollection|NodeList|Object)\]$/.test( Object.prototype.toString.call( a ) ) && a.length !== d && ( 0 === a.length || "object" == typeof a[0] && a[0].nodeType > 0 )}, isWrapped:function( a ){return a && ( a.jquery || b.Zepto && b.Zepto.zepto.isZ( a ) )}, isSVG:function( a ){return b.SVGElement && a instanceof b.SVGElement}, isEmptyObject:function( a ){for ( var b in a )return!1; return!0}}, q = !1; if ( a.fn && a.fn.jquery?( m = a, q = !0 ):m = b.Velocity.Utilities, 8 >= n && !q )throw new Error( "Velocity: IE8 and below require jQuery to be loaded before Velocity." ); if ( 7 >= n )return void( jQuery.fn.velocity = jQuery.fn.animate ); var r = 400, s = "swing", t = {State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent ), isAndroid:/Android/i.test( navigator.userAgent ), isGingerbread:/Android 2\.3\.[3-7]/i.test( navigator.userAgent ), isChrome:b.chrome, isFirefox:/Firefox/i.test( navigator.userAgent ), prefixElement:c.createElement( "div" ), prefixMatches:{}, scrollAnchor:null, scrollPropertyLeft:null, scrollPropertyTop:null, isTicking:!1, calls:[]}, CSS:{}, Utilities:m, Redirects:{}, Easings:{}, Promise:b.Promise, defaults:{queue:"", duration:r, easing:s, begin:d, complete:d, progress:d, display:d, visibility:d, loop:!1, delay:!1, mobileHA:!0, _cacheValues:!0}, init:function( a ){m.data( a, "velocity", {isSVG:p.isSVG( a ), isAnimating:!1, computedStyle:null, tweensContainer:null, rootPropertyValueCache:{}, transformCache:{}} )}, hook:null, mock:!1, version:{major:1, minor:2, patch:2}, debug:!1}; b.pageYOffset !== d?( t.State.scrollAnchor = b, t.State.scrollPropertyLeft = "pageXOffset", t.State.scrollPropertyTop = "pageYOffset" ):( t.State.scrollAnchor = c.documentElement || c.body.parentNode || c.body, t.State.scrollPropertyLeft = "scrollLeft", t.State.scrollPropertyTop = "scrollTop" ); var u = function( ){function a( a ){return - a.tension * a.x - a.friction * a.v}function b( b, c, d ){var e = {x:b.x + d.dx * c, v:b.v + d.dv * c, tension:b.tension, friction:b.friction}; return{dx:e.v, dv:a( e )}}function c( c, d ){var e = {dx:c.v, dv:a( c )}, f = b( c, .5 * d, e ), g = b( c, .5 * d, f ), h = b( c, d, g ), i = 1 / 6 * ( e.dx + 2 * ( f.dx + g.dx ) + h.dx ), j = 1 / 6 * ( e.dv + 2 * ( f.dv + g.dv ) + h.dv ); return c.x = c.x + i * d, c.v = c.v + j * d, c}return function d( a, b, e ){var f, g, h, i = {x: - 1, v:0, tension:null, friction:null}, j = [0], k = 0, l = 1e-4, m = .016; for ( a = parseFloat( a ) || 500, b = parseFloat( b ) || 20, e = e || null, i.tension = a, i.friction = b, f = null !== e, f?( k = d( a, b ), g = k / e * m ):g = m; ; )if ( h = c( h || i, g ), j.push( 1 + h.x ), k += 16, !( Math.abs( h.x ) > l && Math.abs( h.v ) > l ) )break; return f?function( a ){return j[a * ( j.length - 1 ) | 0]}:k}}( ); t.Easings = {linear:function( a ){return a}, swing:function( a ){return.5 - Math.cos( a * Math.PI ) / 2}, spring:function( a ){return 1 - Math.cos( 4.5 * a * Math.PI ) * Math.exp( 6 * - a )}}, m.each( [["ease", [.25, .1, .25, 1]], ["ease-in", [.42, 0, 1, 1]], ["ease-out", [0, 0, .58, 1]], ["ease-in-out", [.42, 0, .58, 1]], ["easeInSine", [.47, 0, .745, .715]], ["easeOutSine", [.39, .575, .565, 1]], ["easeInOutSine", [.445, .05, .55, .95]], ["easeInQuad", [.55, .085, .68, .53]], ["easeOutQuad", [.25, .46, .45, .94]], ["easeInOutQuad", [.455, .03, .515, .955]], ["easeInCubic", [.55, .055, .675, .19]], ["easeOutCubic", [.215, .61, .355, 1]], ["easeInOutCubic", [.645, .045, .355, 1]], ["easeInQuart", [.895, .03, .685, .22]], ["easeOutQuart", [.165, .84, .44, 1]], ["easeInOutQuart", [.77, 0, .175, 1]], ["easeInQuint", [.755, .05, .855, .06]], ["easeOutQuint", [.23, 1, .32, 1]], ["easeInOutQuint", [.86, 0, .07, 1]], ["easeInExpo", [.95, .05, .795, .035]], ["easeOutExpo", [.19, 1, .22, 1]], ["easeInOutExpo", [1, 0, 0, 1]], ["easeInCirc", [.6, .04, .98, .335]], ["easeOutCirc", [.075, .82, .165, 1]], ["easeInOutCirc", [.785, .135, .15, .86]]], function( a, b ){t.Easings[b[0]] = i.apply( null, b[1] )} ); var v = t.CSS = {RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i, valueUnwrap:/^[A-z]+\((.*)\)$/i, wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/, valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi}, Lists:{colors:["fill", "stroke", "stopColor", "color", "backgroundColor", "borderColor", "borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor", "outlineColor"], transformsBase:["translateX", "translateY", "scale", "scaleX", "scaleY", "skewX", "skewY", "rotateZ"], transforms3D:["transformPerspective", "translateZ", "scaleZ", "rotateX", "rotateY"]}, Hooks:{templates:{textShadow:["Color X Y Blur", "black 0px 0px 0px"], boxShadow:["Color X Y Blur Spread", "black 0px 0px 0px 0px"], clip:["Top Right Bottom Left", "0px 0px 0px 0px"], backgroundPosition:["X Y", "0% 0%"], transformOrigin:["X Y Z", "50% 50% 0px"], perspectiveOrigin:["X Y", "50% 50%"]}, registered:{}, register:function( ){for ( var a = 0; a < v.Lists.colors.length; a++ ){var b = "color" === v.Lists.colors[a]?"0 0 0 1":"255 255 255 1"; v.Hooks.templates[v.Lists.colors[a]] = ["Red Green Blue Alpha", b]}var c, d, e; if ( n )for ( c in v.Hooks.templates ){d = v.Hooks.templates[c], e = d[0].split( " " ); var f = d[1].match( v.RegEx.valueSplit ); "Color" === e[0] && ( e.push( e.shift( ) ), f.push( f.shift( ) ), v.Hooks.templates[c] = [e.join( " " ), f.join( " " )] )}for ( c in v.Hooks.templates ){d = v.Hooks.templates[c], e = d[0].split( " " ); for ( var a in e ){var g = c + e[a], h = a; v.Hooks.registered[g] = [c, h]}}}, getRoot:function( a ){var b = v.Hooks.registered[a]; return b?b[0]:a}, cleanRootPropertyValue:function( a, b ){return v.RegEx.valueUnwrap.test( b ) && ( b = b.match( v.RegEx.valueUnwrap )[1] ), v.Values.isCSSNullValue( b ) && ( b = v.Hooks.templates[a][1] ), b}, extractValue:function( a, b ){var c = v.Hooks.registered[a]; if ( c ){var d = c[0], e = c[1]; return b = v.Hooks.cleanRootPropertyValue( d, b ), b.toString( ).match( v.RegEx.valueSplit )[e]}return b}, injectValue:function( a, b, c ){var d = v.Hooks.registered[a]; if ( d ){var e, f, g = d[0], h = d[1]; return c = v.Hooks.cleanRootPropertyValue( g, c ), e = c.toString( ).match( v.RegEx.valueSplit ), e[h] = b, f = e.join( " " )}return c}}, Normalizations:{registered:{clip:function( a, b, c ){switch ( a ){case"name":return"clip"; case"extract":var d; return v.RegEx.wrappedValueAlreadyExtracted.test( c )?d = c:( d = c.toString( ).match( v.RegEx.valueUnwrap ), d = d?d[1].replace( /,(\s+)?/g, " " ):c ), d; case"inject":return"rect(" + c + ")"}}, blur:function( a, b, c ){switch ( a ){case"name":return t.State.isFirefox?"filter":"-webkit-filter"; case"extract":var d = parseFloat( c ); if ( !d && 0 !== d ){var e = c.toString( ).match( /blur\(([0-9]+[A-z]+)\)/i ); d = e?e[1]:0}return d; case"inject":return parseFloat( c )?"blur(" + c + ")":"none"}}, opacity:function( a, b, c ){if ( 8 >= n )switch ( a ){case"name":return"filter"; case"extract":var d = c.toString( ).match( /alpha\(opacity=(.*)\)/i ); return c = d?d[1] / 100:1; case"inject":return b.style.zoom = 1, parseFloat( c ) >= 1?"":"alpha(opacity=" + parseInt( 100 * parseFloat( c ), 10 ) + ")"} else switch ( a ){case"name":return"opacity"; case"extract":return c; case"inject":return c}}}, register:function( ){9 >= n || t.State.isGingerbread || ( v.Lists.transformsBase = v.Lists.transformsBase.concat( v.Lists.transforms3D ) ); for ( var a = 0; a < v.Lists.transformsBase.length; a++ )!function( ){var b = v.Lists.transformsBase[a]; v.Normalizations.registered[b] = function( a, c, e ){switch ( a ){case"name":return"transform"; case"extract":return g( c ) === d || g( c ).transformCache[b] === d?/^scale/i.test( b )?1:0:g( c ).transformCache[b].replace( /[()]/g, "" ); case"inject":var f = !1; switch ( b.substr( 0, b.length - 1 ) ){case"translate":f = !/(%|px|em|rem|vw|vh|\d)$/i.test( e ); break; case"scal":case"scale":t.State.isAndroid && g( c ).transformCache[b] === d && 1 > e && ( e = 1 ), f = !/(\d)$/i.test( e ); break; case"skew":f = !/(deg|\d)$/i.test( e ); break; case"rotate":f = !/(deg|\d)$/i.test( e )}return f || ( g( c ).transformCache[b] = "(" + e + ")" ), g( c ).transformCache[b]}}}( ); for ( var a = 0; a < v.Lists.colors.length; a++ )!function( ){var b = v.Lists.colors[a]; v.Normalizations.registered[b] = function( a, c, e ){switch ( a ){case"name":return b; case"extract":var f; if ( v.RegEx.wrappedValueAlreadyExtracted.test( e ) )f = e; else{var g, h = {black:"rgb(0, 0, 0)", blue:"rgb(0, 0, 255)", gray:"rgb(128, 128, 128)", green:"rgb(0, 128, 0)", red:"rgb(255, 0, 0)", white:"rgb(255, 255, 255)"}; /^[A-z]+$/i.test( e )?g = h[e] !== d?h[e]:h.black:v.RegEx.isHex.test( e )?g = "rgb(" + v.Values.hexToRgb( e ).join( " " ) + ")":/^rgba?\(/i.test( e ) || ( g = h.black ), f = ( g || e ).toString( ).match( v.RegEx.valueUnwrap )[1].replace( /,(\s+)?/g, " " )}return 8 >= n || 3 !== f.split( " " ).length || ( f += " 1" ), f; case"inject":return 8 >= n?4 === e.split( " " ).length && ( e = e.split( /\s+/ ).slice( 0, 3 ).join( " " ) ):3 === e.split( " " ).length && ( e += " 1" ), ( 8 >= n?"rgb":"rgba" ) + "(" + e.replace( /\s+/g, "," ).replace( /\.(\d)+(?=,)/g, "" ) + ")"}}}( )}}, Names:{camelCase:function( a ){return a.replace( /-(\w)/g, function( a, b ){return b.toUpperCase( )} )}, SVGAttribute:function( a ){var b = "width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2"; return( n || t.State.isAndroid && !t.State.isChrome ) && ( b += "|transform" ), new RegExp( "^(" + b + ")$", "i" ).test( a )}, prefixCheck:function( a ){if ( t.State.prefixMatches[a] )return[t.State.prefixMatches[a], !0]; for ( var b = ["", "Webkit", "Moz", "ms", "O"], c = 0, d = b.length; d > c; c++ ){var e; if ( e = 0 === c?a:b[c] + a.replace( /^\w/, function( a ){return a.toUpperCase( )} ), p.isString( t.State.prefixElement.style[e] ) )return t.State.prefixMatches[a] = e, [e, !0]}return[a, !1]}}, Values:{hexToRgb:function( a ){var b, c = /^#?([a-f\d])([a-f\d])([a-f\d])$/i, d = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i; return a = a.replace( c, function( a, b, c, d ){return b + b + c + c + d + d} ), b = d.exec( a ), b?[parseInt( b[1], 16 ), parseInt( b[2], 16 ), parseInt( b[3], 16 )]:[0, 0, 0]}, isCSSNullValue:function( a ){return 0 == a || /^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test( a )}, getUnitType:function( a ){return/^(rotate|skew)/i.test( a )?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test( a )?"":"px"}, getDisplayType:function( a ){var b = a && a.tagName.toString( ).toLowerCase( ); return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test( b )?"inline":/^(li)$/i.test( b )?"list-item":/^(tr)$/i.test( b )?"table-row":/^(table)$/i.test( b )?"table":/^(tbody)$/i.test( b )?"table-row-group":"block"}, addClass:function( a, b ){a.classList?a.classList.add( b ):a.className += ( a.className.length?" ":"" ) + b}, removeClass:function( a, b ){a.classList?a.classList.remove( b ):a.className = a.className.toString( ).replace( new RegExp( "(^|\\s)" + b.split( " " ).join( "|" ) + "(\\s|$)", "gi" ), " " )}}, getPropertyValue:function( a, c, e, f ){function h( a, c ){function e( ){j && v.setPropertyValue( a, "display", "none" )}var i = 0; if ( 8 >= n )i = m.css( a, c ); else{var j = !1; if ( /^(width|height)$/.test( c ) && 0 === v.getPropertyValue( a, "display" ) && ( j = !0, v.setPropertyValue( a, "display", v.Values.getDisplayType( a ) ) ), !f ){if ( "height" === c && "border-box" !== v.getPropertyValue( a, "boxSizing" ).toString( ).toLowerCase( ) ){var k = a.offsetHeight - ( parseFloat( v.getPropertyValue( a, "borderTopWidth" ) ) || 0 ) - ( parseFloat( v.getPropertyValue( a, "borderBottomWidth" ) ) || 0 ) - ( parseFloat( v.getPropertyValue( a, "paddingTop" ) ) || 0 ) - ( parseFloat( v.getPropertyValue( a, "paddingBottom" ) ) || 0 ); return e( ), k}if ( "width" === c && "border-box" !== v.getPropertyValue( a, "boxSizing" ).toString( ).toLowerCase( ) ){var l = a.offsetWidth - ( parseFloat( v.getPropertyValue( a, "borderLeftWidth" ) ) || 0 ) - ( parseFloat( v.getPropertyValue( a, "borderRightWidth" ) ) || 0 ) - ( parseFloat( v.getPropertyValue( a, "paddingLeft" ) ) || 0 ) - ( parseFloat( v.getPropertyValue( a, "paddingRight" ) ) || 0 ); return e( ), l}}var o; o = g( a ) === d?b.getComputedStyle( a, null ):g( a ).computedStyle?g( a ).computedStyle:g( a ).computedStyle = b.getComputedStyle( a, null ), "borderColor" === c && ( c = "borderTopColor" ), i = 9 === n && "filter" === c?o.getPropertyValue( c ):o[c], ( "" === i || null === i ) && ( i = a.style[c] ), e( )}if ( "auto" === i && /^(top|right|bottom|left)$/i.test( c ) ){var p = h( a, "position" ); ( "fixed" === p || "absolute" === p && /top|left/i.test( c ) ) && ( i = m( a ).position( )[c] + "px" )}return i}var i; if ( v.Hooks.registered[c] ){var j = c, k = v.Hooks.getRoot( j ); e === d && ( e = v.getPropertyValue( a, v.Names.prefixCheck( k )[0] ) ), v.Normalizations.registered[k] && ( e = v.Normalizations.registered[k]( "extract", a, e ) ), i = v.Hooks.extractValue( j, e )} else if ( v.Normalizations.registered[c] ){var l, o; l = v.Normalizations.registered[c]( "name", a ), "transform" !== l && ( o = h( a, v.Names.prefixCheck( l )[0] ), v.Values.isCSSNullValue( o ) && v.Hooks.templates[c] && ( o = v.Hooks.templates[c][1] ) ), i = v.Normalizations.registered[c]( "extract", a, o )}if ( !/^[\d-]/.test( i ) )if ( g( a ) && g( a ).isSVG && v.Names.SVGAttribute( c ) )if ( /^(height|width)$/i.test( c ) )try{i = a.getBBox( )[c]} catch ( p ){i = 0} else i = a.getAttribute( c ); else i = h( a, v.Names.prefixCheck( c )[0] ); return v.Values.isCSSNullValue( i ) && ( i = 0 ), t.debug >= 2 && console.log( "Get " + c + ": " + i ), i}, setPropertyValue:function( a, c, d, e, f ){var h = c; if ( "scroll" === c )f.container?f.container["scroll" + f.direction] = d:"Left" === f.direction?b.scrollTo( d, f.alternateValue ):b.scrollTo( f.alternateValue, d ); else if ( v.Normalizations.registered[c] && "transform" === v.Normalizations.registered[c]( "name", a ) )v.Normalizations.registered[c]( "inject", a, d ), h = "transform", d = g( a ).transformCache[c]; else{if ( v.Hooks.registered[c] ){var i = c, j = v.Hooks.getRoot( c ); e = e || v.getPropertyValue( a, j ), d = v.Hooks.injectValue( i, d, e ), c = j}if ( v.Normalizations.registered[c] && ( d = v.Normalizations.registered[c]( "inject", a, d ), c = v.Normalizations.registered[c]( "name", a ) ), h = v.Names.prefixCheck( c )[0], 8 >= n )try{a.style[h] = d} catch ( k ){t.debug && console.log( "Browser does not support [" + d + "] for [" + h + "]" )} else g( a ) && g( a ).isSVG && v.Names.SVGAttribute( c )?a.setAttribute( c, d ):a.style[h] = d; t.debug >= 2 && console.log( "Set " + c + " (" + h + "): " + d )}return[h, d]}, flushTransformCache:function( a ){function b( b ){return parseFloat( v.getPropertyValue( a, b ) )}var c = ""; if ( ( n || t.State.isAndroid && !t.State.isChrome ) && g( a ).isSVG ){var d = {translate:[b( "translateX" ), b( "translateY" )], skewX:[b( "skewX" )], skewY:[b( "skewY" )], scale:1 !== b( "scale" )?[b( "scale" ), b( "scale" )]:[b( "scaleX" ), b( "scaleY" )], rotate:[b( "rotateZ" ), 0, 0]}; m.each( g( a ).transformCache, function( a ){/^translate/i.test( a )?a = "translate":/^scale/i.test( a )?a = "scale":/^rotate/i.test( a ) && ( a = "rotate" ), d[a] && ( c += a + "(" + d[a].join( " " ) + ") ", delete d[a] )} )} else{var e, f; m.each( g( a ).transformCache, function( b ){return e = g( a ).transformCache[b], "transformPerspective" === b?( f = e, !0 ):( 9 === n && "rotateZ" === b && ( b = "rotate" ), void( c += b + e + " " ) )} ), f && ( c = "perspective" + f + " " + c )}v.setPropertyValue( a, "transform", c )}}; v.Hooks.register( ), v.Normalizations.register( ), t.hook = function( a, b, c ){var e = d; return a = f( a ), m.each( a, function( a, f ){if ( g( f ) === d && t.init( f ), c === d )e === d && ( e = t.CSS.getPropertyValue( f, b ) ); else{var h = t.CSS.setPropertyValue( f, b, c ); "transform" === h[0] && t.CSS.flushTransformCache( f ), e = h}} ), e}; var w = function( ){function a( ){return h?B.promise || null:i}function e( ){function a( ){function a( a, b ){var c = d, e = d, g = d; return p.isArray( a )?( c = a[0], !p.isArray( a[1] ) && /^[\d-]/.test( a[1] ) || p.isFunction( a[1] ) || v.RegEx.isHex.test( a[1] )?g = a[1]:( p.isString( a[1] ) && !v.RegEx.isHex.test( a[1] ) || p.isArray( a[1] ) ) && ( e = b?a[1]:j( a[1], h.duration ), a[2] !== d && ( g = a[2] ) ) ):c = a, b || ( e = e || h.easing ), p.isFunction( c ) && ( c = c.call( f, y, x ) ), p.isFunction( g ) && ( g = g.call( f, y, x ) ), [c || 0, e, g]}function l( a, b ){var c, d; return d = ( b || "0" ).toString( ).toLowerCase( ).replace( /[%A-z]+$/, function( a ){return c = a, ""} ), c || ( c = v.Values.getUnitType( a ) ), [d, c]}function n( ){var a = {myParent:f.parentNode || c.body, position:v.getPropertyValue( f, "position" ), fontSize:v.getPropertyValue( f, "fontSize" )}, d = a.position === I.lastPosition && a.myParent === I.lastParent, e = a.fontSize === I.lastFontSize; I.lastParent = a.myParent, I.lastPosition = a.position, I.lastFontSize = a.fontSize; var h = 100, i = {}; if ( e && d )i.emToPx = I.lastEmToPx, i.percentToPxWidth = I.lastPercentToPxWidth, i.percentToPxHeight = I.lastPercentToPxHeight; else{var j = g( f ).isSVG?c.createElementNS( "http://www.w3.org/2000/svg", "rect" ):c.createElement( "div" ); t.init( j ), a.myParent.appendChild( j ), m.each( ["overflow", "overflowX", "overflowY"], function( a, b ){t.CSS.setPropertyValue( j, b, "hidden" )} ), t.CSS.setPropertyValue( j, "position", a.position ), t.CSS.setPropertyValue( j, "fontSize", a.fontSize ), t.CSS.setPropertyValue( j, "boxSizing", "content-box" ), m.each( ["minWidth", "maxWidth", "width", "minHeight", "maxHeight", "height"], function( a, b ){t.CSS.setPropertyValue( j, b, h + "%" )} ), t.CSS.setPropertyValue( j, "paddingLeft", h + "em" ), i.percentToPxWidth = I.lastPercentToPxWidth = ( parseFloat( v.getPropertyValue( j, "width", null, !0 ) ) || 1 ) / h, i.percentToPxHeight = I.lastPercentToPxHeight = ( parseFloat( v.getPropertyValue( j, "height", null, !0 ) ) || 1 ) / h, i.emToPx = I.lastEmToPx = ( parseFloat( v.getPropertyValue( j, "paddingLeft" ) ) || 1 ) / h, a.myParent.removeChild( j )}return null === I.remToPx && ( I.remToPx = parseFloat( v.getPropertyValue( c.body, "fontSize" ) ) || 16 ), null === I.vwToPx && ( I.vwToPx = parseFloat( b.innerWidth ) / 100, I.vhToPx = parseFloat( b.innerHeight ) / 100 ), i.remToPx = I.remToPx, i.vwToPx = I.vwToPx, i.vhToPx = I.vhToPx, t.debug >= 1 && console.log( "Unit ratios: " + JSON.stringify( i ), f ), i}if ( h.begin && 0 === y )try{h.begin.call( o, o )} catch ( r ){setTimeout( function( ){throw r}, 1 )}if ( "scroll" === C ){var u, w, z, A = /^x$/i.test( h.axis )?"Left":"Top", D = parseFloat( h.offset ) || 0; h.container?p.isWrapped( h.container ) || p.isNode( h.container )?( h.container = h.container[0] || h.container, u = h.container["scroll" + A], z = u + m( f ).position( )[A.toLowerCase( )] + D ):h.container = null:( u = t.State.scrollAnchor[t.State["scrollProperty" + A]], w = t.State.scrollAnchor[t.State["scrollProperty" + ( "Left" === A?"Top":"Left" )]], z = m( f ).offset( )[A.toLowerCase( )] + D ), i = {scroll:{rootPropertyValue:!1, startValue:u, currentValue:u, endValue:z, unitType:"", easing:h.easing, scrollData:{container:h.container, direction:A, alternateValue:w}}, element:f}, t.debug && console.log( "tweensContainer (scroll): ", i.scroll, f )} else if ( "reverse" === C ){if ( !g( f ).tweensContainer )return void m.dequeue( f, h.queue ); "none" === g( f ).opts.display && ( g( f ).opts.display = "auto" ), "hidden" === g( f ).opts.visibility && ( g( f ).opts.visibility = "visible" ), g( f ).opts.loop = !1, g( f ).opts.begin = null, g( f ).opts.complete = null, s.easing || delete h.easing, s.duration || delete h.duration, h = m.extend( {}, g( f ).opts, h ); var E = m.extend( !0, {}, g( f ).tweensContainer ); for ( var F in E )if ( "element" !== F ){var G = E[F].startValue; E[F].startValue = E[F].currentValue = E[F].endValue, E[F].endValue = G, p.isEmptyObject( s ) || ( E[F].easing = h.easing ), t.debug && console.log( "reverse tweensContainer (" + F + "): " + JSON.stringify( E[F] ), f )}i = E} else if ( "start" === C ){var E; g( f ).tweensContainer && g( f ).isAnimating === !0 && ( E = g( f ).tweensContainer ), m.each( q, function( b, c ){if ( RegExp( "^" + v.Lists.colors.join( "$|^" ) + "$" ).test( b ) ){var e = a( c, !0 ), f = e[0], g = e[1], h = e[2]; if ( v.RegEx.isHex.test( f ) ){for ( var i = ["Red", "Green", "Blue"], j = v.Values.hexToRgb( f ), k = h?v.Values.hexToRgb( h ):d, l = 0; l < i.length; l++ ){var m = [j[l]]; g && m.push( g ), k !== d && m.push( k[l] ), q[b + i[l]] = m}delete q[b]}}} ); for ( var H in q ){var K = a( q[H] ), L = K[0], M = K[1], N = K[2]; H = v.Names.camelCase( H ); var O = v.Hooks.getRoot( H ), P = !1; if ( g( f ).isSVG || "tween" === O || v.Names.prefixCheck( O )[1] !== !1 || v.Normalizations.registered[O] !== d ){( h.display !== d && null !== h.display && "none" !== h.display || h.visibility !== d && "hidden" !== h.visibility ) && /opacity|filter/.test( H ) && !N && 0 !== L && ( N = 0 ), h._cacheValues && E && E[H]?( N === d && ( N = E[H].endValue + E[H].unitType ), P = g( f ).rootPropertyValueCache[O] ):v.Hooks.registered[H]?N === d?( P = v.getPropertyValue( f, O ), N = v.getPropertyValue( f, H, P ) ):P = v.Hooks.templates[O][1]:N === d && ( N = v.getPropertyValue( f, H ) ); var Q, R, S, T = !1; if ( Q = l( H, N ), N = Q[0], S = Q[1], Q = l( H, L ), L = Q[0].replace( /^([+-\/*])=/, function( a, b ){return T = b, ""} ), R = Q[1], N = parseFloat( N ) || 0, L = parseFloat( L ) || 0, "%" === R && ( /^(fontSize|lineHeight)$/.test( H )?( L /= 100, R = "em" ):/^scale/.test( H )?( L /= 100, R = "" ):/(Red|Green|Blue)$/i.test( H ) && ( L = L / 100 * 255, R = "" ) ), /[\/*]/.test( T ) )R = S; else if ( S !== R && 0 !== N )if ( 0 === L )R = S; else{e = e || n( ); var U = /margin|padding|left|right|width|text|word|letter/i.test( H ) || /X$/.test( H ) || "x" === H?"x":"y"; switch ( S ){case"%":N *= "x" === U?e.percentToPxWidth:e.percentToPxHeight; break; case"px":break; default:N *= e[S + "ToPx"]}switch ( R ){case"%":N *= 1 / ( "x" === U?e.percentToPxWidth:e.percentToPxHeight ); break; case"px":break; default:N *= 1 / e[R + "ToPx"]}}switch ( T ){case"+":L = N + L; break; case"-":L = N - L; break; case"*":L = N * L; break; case"/":L = N / L}i[H] = {rootPropertyValue:P, startValue:N, currentValue:N, endValue:L, unitType:R, easing:M}, t.debug && console.log( "tweensContainer (" + H + "): " + JSON.stringify( i[H] ), f )} else t.debug && console.log( "Skipping [" + O + "] due to a lack of browser support." )}i.element = f}i.element && ( v.Values.addClass( f, "velocity-animating" ), J.push( i ), "" === h.queue && ( g( f ).tweensContainer = i, g( f ).opts = h ), g( f ).isAnimating = !0, y === x - 1?( t.State.calls.push( [J, o, h, null, B.resolver] ), t.State.isTicking === !1 && ( t.State.isTicking = !0, k( ) ) ):y++ )}var e, f = this, h = m.extend( {}, t.defaults, s ), i = {}; switch ( g( f ) === d && t.init( f ), parseFloat( h.delay ) && h.queue !== !1 && m.queue( f, h.queue, function( a ){t.velocityQueueEntryFlag = !0, g( f ).delayTimer = {setTimeout:setTimeout( a, parseFloat( h.delay ) ), next:a}} ), h.duration.toString( ).toLowerCase( ) ){case"fast":h.duration = 200; break; case"normal":h.duration = r; break; case"slow":h.duration = 600; break; default:h.duration = parseFloat( h.duration ) || 1}t.mock !== !1 && ( t.mock === !0?h.duration = h.delay = 1:( h.duration *= parseFloat( t.mock ) || 1, h.delay *= parseFloat( t.mock ) || 1 ) ), h.easing = j( h.easing, h.duration ), h.begin && !p.isFunction( h.begin ) && ( h.begin = null ), h.progress && !p.isFunction( h.progress ) && ( h.progress = null ), h.complete && !p.isFunction( h.complete ) && ( h.complete = null ), h.display !== d && null !== h.display && ( h.display = h.display.toString( ).toLowerCase( ), "auto" === h.display && ( h.display = t.CSS.Values.getDisplayType( f ) ) ), h.visibility !== d && null !== h.visibility && ( h.visibility = h.visibility.toString( ).toLowerCase( ) ), h.mobileHA = h.mobileHA && t.State.isMobile && !t.State.isGingerbread, h.queue === !1?h.delay?setTimeout( a, h.delay ):a( ):m.queue( f, h.queue, function( b, c ){return c === !0?( B.promise && B.resolver( o ), !0 ):( t.velocityQueueEntryFlag = !0, void a( b ) )} ), "" !== h.queue && "fx" !== h.queue || "inprogress" === m.queue( f )[0] || m.dequeue( f )}var h, i, n, o, q, s, u = arguments[0] && ( arguments[0].p || m.isPlainObject( arguments[0].properties ) && !arguments[0].properties.names || p.isString( arguments[0].properties ) ); if ( p.isWrapped( this )?( h = !1, n = 0, o = this, i = this ):( h = !0, n = 1, o = u?arguments[0].elements || arguments[0].e:arguments[0] ), o = f( o ) ){u?( q = arguments[0].properties || arguments[0].p, s = arguments[0].options || arguments[0].o ):( q = arguments[n], s = arguments[n + 1] ); var x = o.length, y = 0; if ( !/^(stop|finish|finishAll)$/i.test( q ) && !m.isPlainObject( s ) ){var z = n + 1; s = {}; for ( var A = z; A < arguments.length; A++ )p.isArray( arguments[A] ) || !/^(fast|normal|slow)$/i.test( arguments[A] ) && !/^\d/.test( arguments[A] )?p.isString( arguments[A] ) || p.isArray( arguments[A] )?s.easing = arguments[A]:p.isFunction( arguments[A] ) && ( s.complete = arguments[A] ):s.duration = arguments[A]}var B = {promise:null, resolver:null, rejecter:null}; h && t.Promise && ( B.promise = new t.Promise( function( a, b ){B.resolver = a, B.rejecter = b} ) ); var C; switch ( q ){case"scroll":C = "scroll"; break; case"reverse":C = "reverse"; break; case"finish":case"finishAll":case"stop":m.each( o, function( a, b ){g( b ) && g( b ).delayTimer && ( clearTimeout( g( b ).delayTimer.setTimeout ), g( b ).delayTimer.next && g( b ).delayTimer.next( ), delete g( b ).delayTimer ), "finishAll" !== q || s !== !0 && !p.isString( s ) || ( m.each( m.queue( b, p.isString( s )?s:"" ), function( a, b ){p.isFunction( b ) && b( )} ), m.queue( b, p.isString( s )?s:"", [] ) )} ); var D = []; return m.each( t.State.calls, function( a, b ){b && m.each( b[1], function( c, e ){var f = s === d?"":s; return f === !0 || b[2].queue === f || s === d && b[2].queue === !1?void m.each( o, function( c, d ){d === e && ( ( s === !0 || p.isString( s ) ) && ( m.each( m.queue( d, p.isString( s )?s:"" ), function( a, b ){p.isFunction( b ) && b( null, !0 )
      } ), m.queue( d, p.isString( s )?s:"", [] ) ), "stop" === q?( g( d ) && g( d ).tweensContainer && f !== !1 && m.each( g( d ).tweensContainer, function( a, b ){b.endValue = b.currentValue} ), D.push( a ) ):( "finish" === q || "finishAll" === q ) && ( b[2].duration = 1 ) )} ):!0} )} ), "stop" === q && ( m.each( D, function( a, b ){l( b, !0 )} ), B.promise && B.resolver( o ) ), a( ); default:if ( !m.isPlainObject( q ) || p.isEmptyObject( q ) ){if ( p.isString( q ) && t.Redirects[q] ){var E = m.extend( {}, s ), F = E.duration, G = E.delay || 0; return E.backwards === !0 && ( o = m.extend( !0, [], o ).reverse( ) ), m.each( o, function( a, b ){parseFloat( E.stagger )?E.delay = G + parseFloat( E.stagger ) * a:p.isFunction( E.stagger ) && ( E.delay = G + E.stagger.call( b, a, x ) ), E.drag && ( E.duration = parseFloat( F ) || ( /^(callout|transition)/.test( q )?1e3:r ), E.duration = Math.max( E.duration * ( E.backwards?1 - a / x:( a + 1 ) / x ), .75 * E.duration, 200 ) ), t.Redirects[q].call( b, b, E || {}, a, x, o, B.promise?B:d )} ), a( )}var H = "Velocity: First argument (" + q + ") was not a property map, a known action, or a registered redirect. Aborting."; return B.promise?B.rejecter( new Error( H ) ):console.log( H ), a( )}C = "start"}var I = {lastParent:null, lastPosition:null, lastFontSize:null, lastPercentToPxWidth:null, lastPercentToPxHeight:null, lastEmToPx:null, remToPx:null, vwToPx:null, vhToPx:null}, J = []; m.each( o, function( a, b ){p.isNode( b ) && e.call( b )} ); var K, E = m.extend( {}, t.defaults, s ); if ( E.loop = parseInt( E.loop ), K = 2 * E.loop - 1, E.loop )for ( var L = 0; K > L; L++ ){var M = {delay:E.delay, progress:E.progress}; L === K - 1 && ( M.display = E.display, M.visibility = E.visibility, M.complete = E.complete ), w( o, "reverse", M )}return a( )}}; t = m.extend( w, t ), t.animate = w; var x = b.requestAnimationFrame || o; return t.State.isMobile || c.hidden === d || c.addEventListener( "visibilitychange", function( ){c.hidden?( x = function( a ){return setTimeout( function( ){a( !0 )}, 16 )}, k( ) ):x = b.requestAnimationFrame || o} ), a.Velocity = t, a !== b && ( a.fn.velocity = w, a.fn.velocity.defaults = t.defaults ), m.each( ["Down", "Up"], function( a, b ){t.Redirects["slide" + b] = function( a, c, e, f, g, h ){var i = m.extend( {}, c ), j = i.begin, k = i.complete, l = {height:"", marginTop:"", marginBottom:"", paddingTop:"", paddingBottom:""}, n = {}; i.display === d && ( i.display = "Down" === b?"inline" === t.CSS.Values.getDisplayType( a )?"inline-block":"block":"none" ), i.begin = function( ){j && j.call( g, g ); for ( var c in l ){n[c] = a.style[c]; var d = t.CSS.getPropertyValue( a, c ); l[c] = "Down" === b?[d, 0]:[0, d]}n.overflow = a.style.overflow, a.style.overflow = "hidden"}, i.complete = function( ){for ( var b in n )a.style[b] = n[b]; k && k.call( g, g ), h && h.resolver( g )}, t( a, l, i )}} ), m.each( ["In", "Out"], function( a, b ){t.Redirects["fade" + b] = function( a, c, e, f, g, h ){var i = m.extend( {}, c ), j = {opacity:"In" === b?1:0}, k = i.complete; i.complete = e !== f - 1?i.begin = null:function( ){k && k.call( g, g ), h && h.resolver( g )}, i.display === d && ( i.display = "In" === b?"auto":"none" ), t( this, j, i )}} ), t}( window.jQuery || window.Zepto || window, window, document )} );
          /*
           _ _      _       _
           ___| (_) ___| | __  (_)___
           / __| | |/ __| |/ /  | / __|
           \__ \ | | (__|   < _ | \__ \
           |___/_|_|\___|_|\_(_)/ |___/
           |__/
           
           Version: 1.6.0
           Author: Ken Wheeler
           Website: http://kenwheeler.github.io
           Docs: http://kenwheeler.github.io/slick
           Repo: http://github.com/kenwheeler/slick
           Issues: http://github.com/kenwheeler/slick/issues
           
           */
  
          !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, e = this; 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" tabindex="0" role="button">Previous</button>', nextArrow:'<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>', autoplay:!1, autoplaySpeed:3e3, centerMode:!1, centerPadding:"50px", cssEase:"ease", customPaging:function( b, c ){return a( '<button type="button" data-role="none" role="button" tabindex="0" />' ).text( c + 1 )}, 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, pauseOnFocus:!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, useTransform:!0, variableWidth:!1, vertical:!1, verticalSwiping:!1, waitForAnimate:!0, zIndex:1e3}, 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.focussed = !1, e.interrupted = !1, e.hidden = "hidden", e.paused = !0, 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, d, f ), e.currentSlide = e.options.initialSlide, e.originalSettings = e.options, "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.autoPlayIterator = a.proxy( e.autoPlayIterator, 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.instanceUid = b++, e.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/, e.registerBreakpoints( ), e.init( !0 )}var b = 0; return c}( ), b.prototype.activateADA = function( ){var a = this; a.$slideTrack.find( ".slick-active" ).attr( {"aria-hidden":"false"} ).find( "a, input, button, select" ).attr( {tabindex:"0"} )}, 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 ), e.options.vertical === !1?d[e.animType] = "translate3d(" + b + "px, 0px, 0px)":d[e.animType] = "translate3d(0px," + b + "px, 0px)", e.$slideTrack.css( d ), c && setTimeout( function( ){e.disableTransition( ), c.call( )}, e.options.speed ) )}, b.prototype.getNavTarget = function( ){var b = this, c = b.options.asNavFor; return c && null !== c && ( c = a( c ).not( b.$slider ) ), c}, b.prototype.asNavFor = function( b ){var c = this, d = c.getNavTarget( ); 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 = {}; b.options.fade === !1?c[b.transitionType] = b.transformType + " " + b.options.speed + "ms " + b.options.cssEase:c[b.transitionType] = "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.autoPlayClear( ), a.slideCount > a.options.slidesToShow && ( 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, b = a.currentSlide + a.options.slidesToScroll; a.paused || a.interrupted || a.focussed || ( a.options.infinite === !1 && ( 1 === a.direction && a.currentSlide + 1 === a.slideCount - 1?a.direction = 0:0 === a.direction && ( b = a.currentSlide - a.options.slidesToScroll, a.currentSlide - 1 === 0 && ( a.direction = 1 ) ) ), a.slideHandler( b ) )}, b.prototype.buildArrows = function( ){var b = this; b.options.arrows === !0 && ( b.$prevArrow = a( b.options.prevArrow ).addClass( "slick-arrow" ), b.$nextArrow = a( b.options.nextArrow ).addClass( "slick-arrow" ), b.slideCount > b.options.slidesToShow?( b.$prevArrow.removeClass( "slick-hidden" ).removeAttr( "aria-hidden tabindex" ), b.$nextArrow.removeClass( "slick-hidden" ).removeAttr( "aria-hidden tabindex" ), b.htmlExpr.test( b.options.prevArrow ) && b.$prevArrow.prependTo( b.options.appendArrows ), b.htmlExpr.test( b.options.nextArrow ) && b.$nextArrow.appendTo( b.options.appendArrows ), b.options.infinite !== !0 && b.$prevArrow.addClass( "slick-disabled" ).attr( "aria-disabled", "true" ) ):b.$prevArrow.add( b.$nextArrow ).addClass( "slick-hidden" ).attr( {"aria-disabled":"true", tabindex:"-1"} ) )}, b.prototype.buildDots = function( ){var c, d, b = this; if ( b.options.dots === !0 && b.slideCount > b.options.slidesToShow ){for ( b.$slider.addClass( "slick-dotted" ), d = a( "<ul />" ).addClass( b.options.dotsClass ), c = 0; c <= b.getDotCount( ); c += 1 )d.append( a( "<li />" ).append( b.options.customPaging.call( this, b, c ) ) ); b.$dots = 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( b.options.slide + ":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.$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.setSlideClasses( "number" == typeof b.currentSlide?b.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.empty( ).append( e ), a.$slider.children( ).children( ).children( ).css( {width:100 / a.options.slidesPerRow + "%", display:"inline-block"} )}}, b.prototype.checkResponsive = function( b, c ){var e, f, g, d = this, h = !1, i = d.$slider.width( ), j = window.innerWidth || a( window ).width( ); if ( "window" === d.respondTo?g = j:"slider" === d.respondTo?g = i:"min" === d.respondTo && ( g = Math.min( j, i ) ), d.options.responsive && d.options.responsive.length && null !== d.options.responsive ){f = null; for ( e in d.breakpoints )d.breakpoints.hasOwnProperty( e ) && ( d.originalSettings.mobileFirst === !1?g < d.breakpoints[e] && ( f = d.breakpoints[e] ):g > d.breakpoints[e] && ( f = d.breakpoints[e] ) ); null !== f?null !== d.activeBreakpoint?( f !== d.activeBreakpoint || c ) && ( d.activeBreakpoint = f, "unslick" === d.breakpointSettings[f]?d.unslick( f ):( d.options = a.extend( {}, d.originalSettings, d.breakpointSettings[f] ), b === !0 && ( d.currentSlide = d.options.initialSlide ), d.refresh( b ) ), h = f ):( d.activeBreakpoint = f, "unslick" === d.breakpointSettings[f]?d.unslick( f ):( d.options = a.extend( {}, d.originalSettings, d.breakpointSettings[f] ), b === !0 && ( d.currentSlide = d.options.initialSlide ), d.refresh( b ) ), h = f ):null !== d.activeBreakpoint && ( d.activeBreakpoint = null, d.options = d.originalSettings, b === !0 && ( d.currentSlide = d.options.initialSlide ), d.refresh( b ), h = f ), b || h === !1 || d.$slider.trigger( "breakpoint", [d, h] )}}, b.prototype.changeSlide = function( b, c ){var f, g, h, d = this, e = a( b.currentTarget ); switch ( e.is( "a" ) && b.preventDefault( ), e.is( "li" ) || ( e = e.closest( "li" ) ), h = d.slideCount % d.options.slidesToScroll !== 0, 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 ).off( "mouseenter.slick", a.proxy( b.interrupt, b, !0 ) ).off( "mouseleave.slick", a.proxy( b.interrupt, b, !1 ) ), b.$slider.off( "focus.slick blur.slick" ), 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.cleanUpSlideEvents( ), 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.cleanUpSlideEvents = function( ){var b = this; b.$list.off( "mouseenter.slick", a.proxy( b.interrupt, b, !0 ) ), b.$list.off( "mouseleave.slick", a.proxy( b.interrupt, b, !1 ) )}, b.prototype.cleanUpRows = function( ){var b, a = this; a.options.rows > 1 && ( b = a.$slides.children( ).children( ), b.removeAttr( "style" ), a.$slider.empty( ).append( 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 && c.$prevArrow.length && ( c.$prevArrow.removeClass( "slick-disabled slick-arrow slick-hidden" ).removeAttr( "aria-hidden aria-disabled tabindex" ).css( "display", "" ), c.htmlExpr.test( c.options.prevArrow ) && c.$prevArrow.remove( ) ), c.$nextArrow && c.$nextArrow.length && ( c.$nextArrow.removeClass( "slick-disabled slick-arrow slick-hidden" ).removeAttr( "aria-hidden aria-disabled tabindex" ).css( "display", "" ), c.htmlExpr.test( c.options.nextArrow ) && c.$nextArrow.remove( ) ), c.$slides && ( c.$slides.removeClass( "slick-slide slick-active slick-center slick-visible slick-current" ).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.$slider.removeClass( "slick-dotted" ), 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:c.options.zIndex} ), 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:c.options.zIndex} ), b && setTimeout( function( ){c.disableTransition( a ), b.call( )}, c.options.speed ) )}, b.prototype.fadeSlideOut = function( a ){var b = this; b.cssTransitions === !1?b.$slides.eq( a ).animate( {opacity:0, zIndex:b.options.zIndex - 2}, b.options.speed, b.options.easing ):( b.applyTransition( a ), b.$slides.eq( a ).css( {opacity:0, zIndex:b.options.zIndex - 2} ) )}, b.prototype.filterSlides = b.prototype.slickFilter = function( a ){var b = this; null !== a && ( b.$slidesCache = b.$slides, b.unload( ), b.$slideTrack.children( this.options.slide ).detach( ), b.$slidesCache.filter( a ).appendTo( b.$slideTrack ), b.reinit( ) )}, b.prototype.focusHandler = function( ){var b = this; b.$slider.off( "focus.slick blur.slick" ).on( "focus.slick blur.slick", "*:not(.slick-arrow)", function( c ){c.stopImmediatePropagation( ); var d = a( this ); setTimeout( function( ){b.options.pauseOnFocus && ( b.focussed = d.is( ":focus" ), b.autoPlay( ) )}, 0 )} )}, 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.slidesToScroll, c += a.options.slidesToScroll <= a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow; else if ( a.options.centerMode === !0 )d = a.slideCount; else if ( a.options.asNavFor )for ( ; b < a.slideCount; )++d, b = c + a.options.slidesToScroll, c += a.options.slidesToScroll <= a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow; else d = 1 + Math.ceil( ( a.slideCount - a.options.slidesToShow ) / a.options.slidesToScroll ); 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( !0 ), b.options.infinite === !0?( b.slideCount > b.options.slidesToShow && ( b.slideOffset = b.slideWidth * b.options.slidesToShow * - 1, e = d * b.options.slidesToShow * - 1 ), b.slideCount % b.options.slidesToScroll !== 0 && a + b.options.slidesToScroll > b.slideCount && b.slideCount > b.options.slidesToShow && ( a > b.slideCount?( b.slideOffset = ( b.options.slidesToShow - ( a - b.slideCount ) ) * b.slideWidth * - 1, e = ( b.options.slidesToShow - ( a - b.slideCount ) ) * d * - 1 ):( b.slideOffset = b.slideCount % b.options.slidesToScroll * b.slideWidth * - 1, e = b.slideCount % b.options.slidesToScroll * d * - 1 ) ) ):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?a * b.slideWidth * - 1 + b.slideOffset:a * d * - 1 + 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 = b.options.rtl === !0?f[0]? - 1 * ( b.$slideTrack.width( ) - f[0].offsetLeft - f.width( ) ):0:f[0]? - 1 * f[0].offsetLeft:0, b.options.centerMode === !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 + 1 ), c = b.options.rtl === !0?f[0]? - 1 * ( b.$slideTrack.width( ) - f[0].offsetLeft - f.width( ) ):0: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( ), c.checkResponsive( !0 ), c.focusHandler( ) ), b && c.$slider.trigger( "init", [c] ), c.options.accessibility === !0 && c.initADA( ), c.options.autoplay && ( c.paused = !1, c.autoPlay( ) )}, b.prototype.initADA = function( ){var b = this; b.$slides.add( b.$slideTrack.find( ".slick-cloned" ) ).attr( {"aria-hidden":"true", tabindex:"-1"} ).find( "a, input, button, select" ).attr( {tabindex:"-1"} ), b.$slideTrack.attr( "role", "listbox" ), b.$slides.not( b.$slideTrack.find( ".slick-cloned" ) ).each( function( c ){a( this ).attr( {role:"option", "aria-describedby":"slick-slide" + b.instanceUid + c} )} ), null !== b.$dots && b.$dots.attr( "role", "tablist" ).find( "li" ).each( function( c ){a( this ).attr( {role:"presentation", "aria-selected":"false", "aria-controls":"navigation" + b.instanceUid + c, id:"slick-slide" + b.instanceUid + c} )} ).first( ).attr( "aria-selected", "true" ).end( ).find( "button" ).attr( "role", "button" ).end( ).closest( "div" ).attr( "role", "toolbar" ), b.activateADA( )}, b.prototype.initArrowEvents = function( ){var a = this; a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && ( a.$prevArrow.off( "click.slick" ).on( "click.slick", {message:"previous"}, a.changeSlide ), a.$nextArrow.off( "click.slick" ).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 && a( "li", b.$dots ).on( "mouseenter.slick", a.proxy( b.interrupt, b, !0 ) ).on( "mouseleave.slick", a.proxy( b.interrupt, b, !1 ) )}, b.prototype.initSlideEvents = function( ){var b = this; b.options.pauseOnHover && ( b.$list.on( "mouseenter.slick", a.proxy( b.interrupt, b, !0 ) ), b.$list.on( "mouseleave.slick", a.proxy( b.interrupt, b, !1 ) ) )}, b.prototype.initializeEvents = function( ){var b = this; b.initArrowEvents( ), b.initDotEvents( ), b.initSlideEvents( ), 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.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( )}, b.prototype.keyHandler = function( a ){var b = this; a.target.tagName.match( "TEXTAREA|INPUT|SELECT" ) || ( 37 === a.keyCode && b.options.accessibility === !0?b.changeSlide( {data:{message:b.options.rtl === !0?"next":"previous"}} ):39 === a.keyCode && b.options.accessibility === !0 && b.changeSlide( {data:{message:b.options.rtl === !0?"previous":"next"}} ) )}, b.prototype.lazyLoad = function( ){function g( c ){a( "img[data-lazy]", c ).each( function( ){var c = a( this ), d = a( this ).attr( "data-lazy" ), e = document.createElement( "img" ); e.onload = function( ){c.animate( {opacity:0}, 100, function( ){c.attr( "src", d ).animate( {opacity:1}, 200, function( ){c.removeAttr( "data-lazy" ).removeClass( "slick-loading" )} ), b.$slider.trigger( "lazyLoaded", [b, c, d] )} )}, e.onerror = function( ){c.removeAttr( "data-lazy" ).removeClass( "slick-loading" ).addClass( "slick-lazyload-error" ), b.$slider.trigger( "lazyLoadError", [b, c, d] )}, e.src = d} )}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 = Math.ceil( 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.autoPlay( ), a.options.autoplay = !0, a.paused = !1, a.focussed = !1, a.interrupted = !1}, b.prototype.postSlide = function( a ){var b = this; b.unslicked || ( b.$slider.trigger( "afterChange", [b, a] ), b.animating = !1, b.setPosition( ), b.swipeLeft = null, b.options.autoplay && b.autoPlay( ), b.options.accessibility === !0 && b.initADA( ) )}, 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( b ){b = b || 1; var e, f, g, c = this, d = a( "img[data-lazy]", c.$slider ); d.length?( e = d.first( ), f = e.attr( "data-lazy" ), g = document.createElement( "img" ), g.onload = function( ){e.attr( "src", f ).removeAttr( "data-lazy" ).removeClass( "slick-loading" ), c.options.adaptiveHeight === !0 && c.setPosition( ), c.$slider.trigger( "lazyLoaded", [c, e, f] ), c.progressiveLazyLoad( )}, g.onerror = function( ){3 > b?setTimeout( function( ){c.progressiveLazyLoad( b + 1 )}, 500 ):( e.removeAttr( "data-lazy" ).removeClass( "slick-loading" ).addClass( "slick-lazyload-error" ), c.$slider.trigger( "lazyLoadError", [c, e, f] ), c.progressiveLazyLoad( ) )}, g.src = f ):c.$slider.trigger( "allImagesLoaded", [c] )}, b.prototype.refresh = function( b ){var d, e, c = this; e = c.slideCount - c.options.slidesToShow, !c.options.infinite && c.currentSlide > e && ( c.currentSlide = e ), c.slideCount <= c.options.slidesToShow && ( c.currentSlide = 0 ), d = c.currentSlide, c.destroy( !0 ), a.extend( c, c.initials, {currentSlide:d} ), c.init( ), b || c.changeSlide( {data:{message:"index", index:d}}, !1 )}, b.prototype.registerBreakpoints = function( ){var c, d, e, b = this, f = b.options.responsive || null; if ( "array" === a.type( f ) && f.length ){b.respondTo = b.options.respondTo || "window"; for ( c in f )if ( e = b.breakpoints.length - 1, d = f[c].breakpoint, f.hasOwnProperty( c ) ){for ( ; e >= 0; )b.breakpoints[e] && b.breakpoints[e] === d && b.breakpoints.splice( e, 1 ), e--; b.breakpoints.push( d ), b.breakpointSettings[d] = f[c].settings}b.breakpoints.sort( function( a, c ){return b.options.mobileFirst?a - c:c - a} )}}, 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.registerBreakpoints( ), b.setProps( ), b.setupInfinite( ), b.buildArrows( ), b.updateArrows( ), b.initArrowEvents( ), b.buildDots( ), b.updateDots( ), b.initDotEvents( ), b.cleanUpSlideEvents( ), b.initSlideEvents( ), b.checkResponsive( !1, !0 ), b.options.focusOnSelect === !0 && a( b.$slideTrack ).children( ).on( "click.slick", b.selectHandler ), b.setSlideClasses( "number" == typeof b.currentSlide?b.currentSlide:0 ), b.setPosition( ), b.focusHandler( ), b.paused = !b.options.autoplay, b.autoPlay( ), 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, void d.reinit( ) )}, 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 = b.slideWidth * d * - 1, b.options.rtl === !0?a( e ).css( {position:"relative", right:c, top:0, zIndex:b.options.zIndex - 2, opacity:0} ):a( e ).css( {position:"relative", left:c, top:0, zIndex:b.options.zIndex - 2, opacity:0} )} ), b.$slides.eq( b.currentSlide ).css( {zIndex:b.options.zIndex - 1, 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( ){var c, d, e, f, h, b = this, g = !1; if ( "object" === a.type( arguments[0] )?( e = arguments[0], g = arguments[1], h = "multiple" ):"string" === a.type( arguments[0] ) && ( e = arguments[0], f = arguments[1], g = arguments[2], "responsive" === arguments[0] && "array" === a.type( arguments[1] )?h = "responsive":"undefined" != typeof arguments[1] && ( h = "single" ) ), "single" === h )b.options[e] = f; else if ( "multiple" === h )a.each( e, function( a, c ){b.options[a] = c} ); else if ( "responsive" === h )for ( d in f )if ( "array" !== a.type( b.options.responsive ) )b.options.responsive = [f[d]]; else{for ( c = b.options.responsive.length - 1; c >= 0; )b.options.responsive[c].breakpoint === f[d].breakpoint && b.options.responsive.splice( c, 1 ), c--; b.options.responsive.push( f[d] )}g && ( b.unload( ), b.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 ), a.options.fade && ( "number" == typeof a.options.zIndex?a.options.zIndex < 3 && ( a.options.zIndex = 3 ):a.options.zIndex = a.defaults.zIndex ), 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 = a.options.useTransform && null !== a.animType && a.animType !== !1}, b.prototype.setSlideClasses = function( a ){var c, d, e, f, b = this; d = b.$slider.find( ".slick-slide" ).removeClass( "slick-active slick-center slick-current" ).attr( "aria-hidden", "true" ), b.$slides.eq( a ).addClass( "slick-current" ), 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.interrupt = function( a ){var b = this; a || b.autoPlay( ), b.interrupted = a}, 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.setSlideClasses( e ), void c.asNavFor( e ) ):void c.slideHandler( e )}, b.prototype.slideHandler = function( a, b, c ){var d, e, f, g, j, 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 )?void( i.options.fade === !1 && ( d = i.currentSlide, c !== !0?i.animateSlide( g, function( ){i.postSlide( d )} ):i.postSlide( d ) ) ):i.options.infinite === !1 && i.options.centerMode === !0 && ( 0 > a || a > i.slideCount - i.options.slidesToScroll )?void( i.options.fade === !1 && ( d = i.currentSlide, c !== !0?i.animateSlide( g, function( ){i.postSlide( d )} ):i.postSlide( d ) ) ):( i.options.autoplay && clearInterval( i.autoPlayTimer ), e = 0 > d?i.slideCount % i.options.slidesToScroll !== 0?i.slideCount - i.slideCount % i.options.slidesToScroll:i.slideCount + d:d >= i.slideCount?i.slideCount % i.options.slidesToScroll !== 0?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.options.asNavFor && ( j = i.getNavTarget( ), j = j.slick( "getSlick" ), j.slideCount <= j.options.slidesToShow && j.setSlideClasses( i.currentSlide ) ), i.updateDots( ), i.updateArrows( ), i.options.fade === !0?( c !== !0?( i.fadeSlideOut( f ), i.fadeSlide( e, function( ){i.postSlide( e )} ) ):i.postSlide( e ), void i.animateHeight( ) ):void( c !== !0?i.animateSlide( h, function( ){i.postSlide( e )} ):i.postSlide( e ) ) ) )}, 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?"down":"up":"vertical"}, b.prototype.swipeEnd = function( a ){var c, d, b = this; if ( b.dragging = !1, b.interrupted = !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 ( d = b.swipeDirection( ) ){case"left":case"down":c = b.options.swipeToSlide?b.checkNavigable( b.currentSlide + b.getSlideCount( ) ):b.currentSlide + b.getSlideCount( ), b.currentDirection = 0; break; case"right":case"up":c = b.options.swipeToSlide?b.checkNavigable( b.currentSlide - b.getSlideCount( ) ):b.currentSlide - b.getSlideCount( ), b.currentDirection = 1}"vertical" != d && ( b.slideHandler( c ), b.touchObject = {}, b.$slider.trigger( "swipe", [b, d] ) )} 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.options.vertical === !1?b.swipeLeft = d + f * g:b.swipeLeft = 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 ):void b.setCSS( b.swipeLeft ) ):void 0 )}, b.prototype.swipeStart = function( a ){var c, b = this; return b.interrupted = !0, 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, void( b.dragging = !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 && b.htmlExpr.test( b.options.prevArrow ) && b.$prevArrow.remove( ), b.$nextArrow && b.htmlExpr.test( b.options.nextArrow ) && b.$nextArrow.remove( ), b.$slides.removeClass( "slick-slide slick-active slick-visible slick-current" ).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.slideCount > a.options.slidesToShow && !a.options.infinite && ( a.$prevArrow.removeClass( "slick-disabled" ).attr( "aria-disabled", "false" ), a.$nextArrow.removeClass( "slick-disabled" ).attr( "aria-disabled", "false" ), 0 === a.currentSlide?( a.$prevArrow.addClass( "slick-disabled" ).attr( "aria-disabled", "true" ), a.$nextArrow.removeClass( "slick-disabled" ).attr( "aria-disabled", "false" ) ):a.currentSlide >= a.slideCount - a.options.slidesToShow && a.options.centerMode === !1?( a.$nextArrow.addClass( "slick-disabled" ).attr( "aria-disabled", "true" ), a.$prevArrow.removeClass( "slick-disabled" ).attr( "aria-disabled", "false" ) ):a.currentSlide >= a.slideCount - 1 && a.options.centerMode === !0 && ( a.$nextArrow.addClass( "slick-disabled" ).attr( "aria-disabled", "true" ), a.$prevArrow.removeClass( "slick-disabled" ).attr( "aria-disabled", "false" ) ) )}, 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; a.options.autoplay && ( document[a.hidden]?a.interrupted = !0:a.interrupted = !1 )}, a.fn.slick = function( ){var f, g, a = this, c = arguments[0], d = Array.prototype.slice.call( arguments, 1 ), e = a.length; for ( f = 0; 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}} );
          /**!
           * MixItUp v2.1.11
           *
           * @copyright Copyright 2015 KunkaLabs Limited.
           * @author    KunkaLabs Limited.
           * @link      https://mixitup.kunkalabs.com
           *
           * @license   Commercial use requires a commercial license.
           *            https://mixitup.kunkalabs.com/licenses/
           *
           *            Non-commercial use permitted under terms of CC-BY-NC license.
           *            http://creativecommons.org/licenses/by-nc/3.0/
           */
          !function( a, b ){"use strict"; a.MixItUp = function( ){var b = this; b._execAction( "_constructor", 0 ), a.extend( b, {selectors:{target:".mix", filter:".filter", sort:".sort"}, animation:{enable:!0, effects:"fade scale", duration:600, easing:"ease", perspectiveDistance:"3000", perspectiveOrigin:"50% 50%", queue:!0, queueLimit:1, animateChangeLayout:!1, animateResizeContainer:!0, animateResizeTargets:!1, staggerSequence:!1, reverseOut:!1}, callbacks:{onMixLoad:!1, onMixStart:!1, onMixBusy:!1, onMixEnd:!1, onMixFail:!1, _user:!1}, controls:{enable:!0, live:!1, toggleFilterButtons:!1, toggleLogic:"or", activeClass:"active"}, layout:{display:"inline-block", containerClass:"", containerClassFail:"fail"}, load:{filter:"all", sort:!1}, _$body:null, _$container:null, _$targets:null, _$parent:null, _$sortButtons:null, _$filterButtons:null, _suckMode:!1, _mixing:!1, _sorting:!1, _clicking:!1, _loading:!0, _changingLayout:!1, _changingClass:!1, _changingDisplay:!1, _origOrder:[], _startOrder:[], _newOrder:[], _activeFilter:null, _toggleArray:[], _toggleString:"", _activeSort:"default:asc", _newSort:null, _startHeight:null, _newHeight:null, _incPadding:!0, _newDisplay:null, _newClass:null, _targetsBound:0, _targetsDone:0, _queue:[], _$show:a( ), _$hide:a( )} ), b._execAction( "_constructor", 1 )}, a.MixItUp.prototype = {constructor:a.MixItUp, _instances:{}, _handled:{_filter:{}, _sort:{}}, _bound:{_filter:{}, _sort:{}}, _actions:{}, _filters:{}, extend:function( b ){for ( var c in b )a.MixItUp.prototype[c] = b[c]}, addAction:function( b, c, d, e ){a.MixItUp.prototype._addHook( "_actions", b, c, d, e )}, addFilter:function( b, c, d, e ){a.MixItUp.prototype._addHook( "_filters", b, c, d, e )}, _addHook:function( b, c, d, e, f ){var g = a.MixItUp.prototype[b], h = {}; f = 1 === f || "post" === f?"post":"pre", h[c] = {}, h[c][f] = {}, h[c][f][d] = e, a.extend( !0, g, h )}, _init:function( b, c ){var d = this; if ( d._execAction( "_init", 0, arguments ), c && a.extend( !0, d, c ), d._$body = a( "body" ), d._domNode = b, d._$container = a( b ), d._$container.addClass( d.layout.containerClass ), d._id = b.id, d._platformDetect( ), d._brake = d._getPrefixedCSS( "transition", "none" ), d._refresh( !0 ), d._$parent = d._$targets.parent( ).length?d._$targets.parent( ):d._$container, d.load.sort && ( d._newSort = d._parseSort( d.load.sort ), d._newSortString = d.load.sort, d._activeSort = d.load.sort, d._sort( ), d._printSort( ) ), d._activeFilter = "all" === d.load.filter?d.selectors.target:"none" === d.load.filter?"":d.load.filter, d.controls.enable && d._bindHandlers( ), d.controls.toggleFilterButtons ){d._buildToggleArray( ); for ( var e = 0; e < d._toggleArray.length; e++ )d._updateControls( {filter:d._toggleArray[e], sort:d._activeSort}, !0 )} else d.controls.enable && d._updateControls( {filter:d._activeFilter, sort:d._activeSort} ); d._filter( ), d._init = !0, d._$container.data( "mixItUp", d ), d._execAction( "_init", 1, arguments ), d._buildState( ), d._$targets.css( d._brake ), d._goMix( d.animation.enable )}, _platformDetect:function( ){var a = this, c = ["Webkit", "Moz", "O", "ms"], d = ["webkit", "moz"], e = window.navigator.appVersion.match( /Chrome\/(\d+)\./ ) || !1, f = "undefined" != typeof InstallTrigger, g = function( a ){for ( var b = 0; b < c.length; b++ )if ( c[b] + "Transition"in a.style )return{prefix:"-" + c[b].toLowerCase( ) + "-", vendor:c[b]}; return"transition"in a.style?"":!1}, h = g( a._domNode ); a._execAction( "_platformDetect", 0 ), a._chrome = e?parseInt( e[1], 10 ):!1, a._ff = f?parseInt( window.navigator.userAgent.match( /rv:([^)]+)\)/ )[1] ):!1, a._prefix = h.prefix, a._vendor = h.vendor, a._suckMode = window.atob && a._prefix?!1:!0, a._suckMode && ( a.animation.enable = !1 ), a._ff && a._ff <= 4 && ( a.animation.enable = !1 ); for ( var i = 0; i < d.length && !window.requestAnimationFrame; i++ )window.requestAnimationFrame = window[d[i] + "RequestAnimationFrame"]; "function" != typeof Object.getPrototypeOf && ( "object" == typeof "test".__proto__?Object.getPrototypeOf = function( a ){return a.__proto__}:Object.getPrototypeOf = function( a ){return a.constructor.prototype} ), a._domNode.nextElementSibling === b && Object.defineProperty( Element.prototype, "nextElementSibling", {get:function( ){for ( var a = this.nextSibling; a; ){if ( 1 === a.nodeType )return a; a = a.nextSibling}return null}} ), a._execAction( "_platformDetect", 1 )}, _refresh:function( a, c ){var d = this; d._execAction( "_refresh", 0, arguments ), d._$targets = d._$container.find( d.selectors.target ); for ( var e = 0; e < d._$targets.length; e++ ){var f = d._$targets[e]; if ( f.dataset === b || c ){f.dataset = {}; for ( var g = 0; g < f.attributes.length; g++ ){var h = f.attributes[g], i = h.name, j = h.value; if ( i.indexOf( "data-" ) > - 1 ){var k = d._helpers._camelCase( i.substring( 5, i.length ) ); f.dataset[k] = j}}}f.mixParent === b && ( f.mixParent = d._id )}if ( d._$targets.length && a || !d._origOrder.length && d._$targets.length ){d._origOrder = []; for ( var e = 0; e < d._$targets.length; e++ ){var f = d._$targets[e]; d._origOrder.push( f )}}d._execAction( "_refresh", 1, arguments )}, _bindHandlers:function( ){var c = this, d = a.MixItUp.prototype._bound._filter, e = a.MixItUp.prototype._bound._sort; c._execAction( "_bindHandlers", 0 ), c.controls.live?c._$body.on( "click.mixItUp." + c._id, c.selectors.sort, function( ){c._processClick( a( this ), "sort" )} ).on( "click.mixItUp." + c._id, c.selectors.filter, function( ){c._processClick( a( this ), "filter" )} ):( c._$sortButtons = a( c.selectors.sort ), c._$filterButtons = a( c.selectors.filter ), c._$sortButtons.on( "click.mixItUp." + c._id, function( ){c._processClick( a( this ), "sort" )} ), c._$filterButtons.on( "click.mixItUp." + c._id, function( ){c._processClick( a( this ), "filter" )} ) ), d[c.selectors.filter] = d[c.selectors.filter] === b?1:d[c.selectors.filter] + 1, e[c.selectors.sort] = e[c.selectors.sort] === b?1:e[c.selectors.sort] + 1, c._execAction( "_bindHandlers", 1 )}, _processClick:function( c, d ){var e = this, f = function( c, d, f ){var g = a.MixItUp.prototype; g._handled["_" + d][e.selectors[d]] = g._handled["_" + d][e.selectors[d]] === b?1:g._handled["_" + d][e.selectors[d]] + 1, g._handled["_" + d][e.selectors[d]] === g._bound["_" + d][e.selectors[d]] && ( c[( f?"remove":"add" ) + "Class"]( e.controls.activeClass ), delete g._handled["_" + d][e.selectors[d]] )}; if ( e._execAction( "_processClick", 0, arguments ), !e._mixing || e.animation.queue && e._queue.length < e.animation.queueLimit ){if ( e._clicking = !0, "sort" === d ){var g = c.attr( "data-sort" ); ( !c.hasClass( e.controls.activeClass ) || g.indexOf( "random" ) > - 1 ) && ( a( e.selectors.sort ).removeClass( e.controls.activeClass ), f( c, d ), e.sort( g ) )}if ( "filter" === d ){var h, i = c.attr( "data-filter" ), j = "or" === e.controls.toggleLogic?",":""; e.controls.toggleFilterButtons?( e._buildToggleArray( ), c.hasClass( e.controls.activeClass )?( f( c, d, !0 ), h = e._toggleArray.indexOf( i ), e._toggleArray.splice( h, 1 ) ):( f( c, d ), e._toggleArray.push( i ) ), e._toggleArray = a.grep( e._toggleArray, function( a ){return a} ), e._toggleString = e._toggleArray.join( j ), e.filter( e._toggleString ) ):c.hasClass( e.controls.activeClass ) || ( a( e.selectors.filter ).removeClass( e.controls.activeClass ), f( c, d ), e.filter( i ) )}e._execAction( "_processClick", 1, arguments )} else"function" == typeof e.callbacks.onMixBusy && e.callbacks.onMixBusy.call( e._domNode, e._state, e ), e._execAction( "_processClickBusy", 1, arguments )}, _buildToggleArray:function( ){var a = this, b = a._activeFilter.replace( /\s/g, "" ); if ( a._execAction( "_buildToggleArray", 0, arguments ), "or" === a.controls.toggleLogic )a._toggleArray = b.split( "," ); else{a._toggleArray = b.split( "." ), !a._toggleArray[0] && a._toggleArray.shift( ); for ( var c, d = 0; c = a._toggleArray[d]; d++ )a._toggleArray[d] = "." + c}a._execAction( "_buildToggleArray", 1, arguments )}, _updateControls:function( c, d ){var e = this, f = {filter:c.filter, sort:c.sort}, g = function( a, b ){try{d && "filter" === h && "none" !== f.filter && "" !== f.filter?a.filter( b ).addClass( e.controls.activeClass ):a.removeClass( e.controls.activeClass ).filter( b ).addClass( e.controls.activeClass )} catch ( c ){}}, h = "filter", i = null; e._execAction( "_updateControls", 0, arguments ), c.filter === b && ( f.filter = e._activeFilter ), c.sort === b && ( f.sort = e._activeSort ), f.filter === e.selectors.target && ( f.filter = "all" ); for ( var j = 0; 2 > j; j++ )i = e.controls.live?a( e.selectors[h] ):e["_$" + h + "Buttons"], i && g( i, "[data-" + h + '="' + f[h] + '"]' ), h = "sort"; e._execAction( "_updateControls", 1, arguments )}, _filter:function( ){var b = this; b._execAction( "_filter", 0 ); for ( var c = 0; c < b._$targets.length; c++ ){var d = a( b._$targets[c] ); d.is( b._activeFilter )?b._$show = b._$show.add( d ):b._$hide = b._$hide.add( d )}b._execAction( "_filter", 1 )}, _sort:function( ){var a = this, b = 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}; a._execAction( "_sort", 0 ), a._startOrder = []; for ( var c = 0; c < a._$targets.length; c++ ){var d = a._$targets[c]; a._startOrder.push( d )}switch ( a._newSort[0].sortBy ){case"default":a._newOrder = a._origOrder; break; case"random":a._newOrder = b( a._startOrder ); break; case"custom":a._newOrder = a._newSort[0].order; break; default:a._newOrder = a._startOrder.concat( ).sort( function( b, c ){return a._compare( b, c )} )}a._execAction( "_sort", 1 )}, _compare:function( a, b, c ){c = c?c:0; var d = this, e = d._newSort[c].order, f = function( a ){return a.dataset[d._newSort[c].sortBy] || 0}, g = isNaN( 1 * f( a ) )?f( a ).toLowerCase( ):1 * f( a ), h = isNaN( 1 * f( b ) )?f( b ).toLowerCase( ):1 * f( b ); return h > g?"asc" === e? - 1:1:g > h?"asc" === e?1: - 1:g === h && d._newSort.length > c + 1?d._compare( a, b, c + 1 ):0}, _printSort:function( a ){var b = this, c = a?b._startOrder:b._newOrder, d = b._$parent[0].querySelectorAll( b.selectors.target ), e = d.length?d[d.length - 1].nextElementSibling:null, f = document.createDocumentFragment( ); b._execAction( "_printSort", 0, arguments ); for ( var g = 0; g < d.length; g++ ){var h = d[g], i = h.nextSibling; "absolute" !== h.style.position && ( i && "#text" === i.nodeName && b._$parent[0].removeChild( i ), b._$parent[0].removeChild( h ) )}for ( var g = 0; g < c.length; g++ ){var j = c[g]; if ( "default" !== b._newSort[0].sortBy || "desc" !== b._newSort[0].order || a )f.appendChild( j ), f.appendChild( document.createTextNode( " " ) ); else{var k = f.firstChild; f.insertBefore( j, k ), f.insertBefore( document.createTextNode( " " ), j )}}e?b._$parent[0].insertBefore( f, e ):b._$parent[0].appendChild( f ), b._execAction( "_printSort", 1, arguments )}, _parseSort:function( a ){for ( var b = this, c = "string" == typeof a?a.split( " " ):[a], d = [], e = 0; e < c.length; e++ ){var f = "string" == typeof a?c[e].split( ":" ):["custom", c[e]], g = {sortBy:b._helpers._camelCase( f[0] ), order:f[1] || "asc"}; if ( d.push( g ), "default" === g.sortBy || "random" === g.sortBy )break}return b._execFilter( "_parseSort", d, arguments )}, _parseEffects:function( ){var a = this, b = {opacity:"", transformIn:"", transformOut:"", filter:""}, c = function( b, c, d ){if ( a.animation.effects.indexOf( b ) > - 1 ){if ( c ){var e = a.animation.effects.indexOf( b + "(" ); if ( e > - 1 ){var f = a.animation.effects.substring( e ), g = /\(([^)]+)\)/.exec( f ), h = g[1]; return{val:h}}}return!0}return!1}, d = function( a, b ){return b?"-" === a.charAt( 0 )?a.substr( 1, a.length ):"-" + a:a}, e = function( a, e ){for ( var f = [["scale", ".01"], ["translateX", "20px"], ["translateY", "20px"], ["translateZ", "20px"], ["rotateX", "90deg"], ["rotateY", "90deg"], ["rotateZ", "180deg"]], g = 0; g < f.length; g++ ){var h = f[g][0], i = f[g][1], j = e && "scale" !== h; b[a] += c( h )?h + "(" + d( c( h, !0 ).val || i, j ) + ") ":""}}; return b.opacity = c( "fade" )?c( "fade", !0 ).val || "0":"1", e( "transformIn" ), a.animation.reverseOut?e( "transformOut", !0 ):b.transformOut = b.transformIn, b.transition = {}, b.transition = a._getPrefixedCSS( "transition", "all " + a.animation.duration + "ms " + a.animation.easing + ", opacity " + a.animation.duration + "ms linear" ), a.animation.stagger = c( "stagger" )?!0:!1, a.animation.staggerDuration = parseInt( c( "stagger" ) && c( "stagger", !0 ).val?c( "stagger", !0 ).val:100 ), a._execFilter( "_parseEffects", b )}, _buildState:function( a ){var b = this, c = {}; return b._execAction( "_buildState", 0 ), c = {activeFilter:"" === b._activeFilter?"none":b._activeFilter, activeSort:a && b._newSortString?b._newSortString:b._activeSort, fail:!b._$show.length && "" !== b._activeFilter, $targets:b._$targets, $show:b._$show, $hide:b._$hide, totalTargets:b._$targets.length, totalShow:b._$show.length, totalHide:b._$hide.length, display:a && b._newDisplay?b._newDisplay:b.layout.display}, a?b._execFilter( "_buildState", c ):( b._state = c, void b._execAction( "_buildState", 1 ) )}, _goMix:function( a ){var b = this, c = function( ){b._chrome && 31 === b._chrome && f( b._$parent[0] ), b._setInter( ), d( )}, d = function( ){var a = window.pageYOffset, c = window.pageXOffset; document.documentElement.scrollHeight; b._getInterMixData( ), b._setFinal( ), b._getFinalMixData( ), window.pageYOffset !== a && window.scrollTo( c, a ), b._prepTargets( ), window.requestAnimationFrame?requestAnimationFrame( e ):setTimeout( function( ){e( )}, 20 )}, e = function( ){b._animateTargets( ), 0 === b._targetsBound && b._cleanUp( )}, f = function( a ){var b = a.parentElement, c = document.createElement( "div" ), d = document.createDocumentFragment( ); b.insertBefore( c, a ), d.appendChild( a ), b.replaceChild( a, c )}, g = b._buildState( !0 ); b._execAction( "_goMix", 0, arguments ), !b.animation.duration && ( a = !1 ), b._mixing = !0, b._$container.removeClass( b.layout.containerClassFail ), "function" == typeof b.callbacks.onMixStart && b.callbacks.onMixStart.call( b._domNode, b._state, g, b ), b._$container.trigger( "mixStart", [b._state, g, b] ), b._getOrigMixData( ), a && !b._suckMode?window.requestAnimationFrame?requestAnimationFrame( c ):c( ):b._cleanUp( ), b._execAction( "_goMix", 1, arguments )}, _getTargetData:function( a, b ){var c, d = this; a.dataset[b + "PosX"] = a.offsetLeft, a.dataset[b + "PosY"] = a.offsetTop, d.animation.animateResizeTargets && ( c = d._suckMode?{marginBottom:"", marginRight:""}:window.getComputedStyle( a ), a.dataset[b + "MarginBottom"] = parseInt( c.marginBottom ), a.dataset[b + "MarginRight"] = parseInt( c.marginRight ), a.dataset[b + "Width"] = a.offsetWidth, a.dataset[b + "Height"] = a.offsetHeight )}, _getOrigMixData:function( ){var a = this, b = a._suckMode?{boxSizing:""}:window.getComputedStyle( a._$parent[0] ), c = b.boxSizing || b[a._vendor + "BoxSizing"]; a._incPadding = "border-box" === c, a._execAction( "_getOrigMixData", 0 ), !a._suckMode && ( a.effects = a._parseEffects( ) ), a._$toHide = a._$hide.filter( ":visible" ), a._$toShow = a._$show.filter( ":hidden" ), a._$pre = a._$targets.filter( ":visible" ), a._startHeight = a._incPadding?a._$parent.outerHeight( ):a._$parent.height( ); for ( var d = 0; d < a._$pre.length; d++ ){var e = a._$pre[d]; a._getTargetData( e, "orig" )}a._execAction( "_getOrigMixData", 1 )}, _setInter:function( ){var a = this; a._execAction( "_setInter", 0 ), a._changingLayout && a.animation.animateChangeLayout?( a._$toShow.css( "display", a._newDisplay ), a._changingClass && a._$container.removeClass( a.layout.containerClass ).addClass( a._newClass ) ):a._$toShow.css( "display", a.layout.display ), a._execAction( "_setInter", 1 )}, _getInterMixData:function( ){var a = this; a._execAction( "_getInterMixData", 0 ); for ( var b = 0; b < a._$toShow.length; b++ ){var c = a._$toShow[b]; a._getTargetData( c, "inter" )}for ( var b = 0; b < a._$pre.length; b++ ){var c = a._$pre[b]; a._getTargetData( c, "inter" )}a._execAction( "_getInterMixData", 1 )}, _setFinal:function( ){var a = this; a._execAction( "_setFinal", 0 ), a._sorting && a._printSort( ), a._$toHide.removeStyle( "display" ), a._changingLayout && a.animation.animateChangeLayout && a._$pre.css( "display", a._newDisplay ), a._execAction( "_setFinal", 1 )}, _getFinalMixData:function( ){var a = this; a._execAction( "_getFinalMixData", 0 ); for ( var b = 0; b < a._$toShow.length; b++ ){var c = a._$toShow[b]; a._getTargetData( c, "final" )}for ( var b = 0; b < a._$pre.length; b++ ){var c = a._$pre[b]; a._getTargetData( c, "final" )}a._newHeight = a._incPadding?a._$parent.outerHeight( ):a._$parent.height( ), a._sorting && a._printSort( !0 ), a._$toShow.removeStyle( "display" ), a._$pre.css( "display", a.layout.display ), a._changingClass && a.animation.animateChangeLayout && a._$container.removeClass( a._newClass ).addClass( a.layout.containerClass ), a._execAction( "_getFinalMixData", 1 )}, _prepTargets:function( ){var b = this, c = {_in:b._getPrefixedCSS( "transform", b.effects.transformIn ), _out:b._getPrefixedCSS( "transform", b.effects.transformOut )}; b._execAction( "_prepTargets", 0 ), b.animation.animateResizeContainer && b._$parent.css( "height", b._startHeight + "px" ); for ( var d = 0; d < b._$toShow.length; d++ ){var e = b._$toShow[d], f = a( e ); e.style.opacity = b.effects.opacity, e.style.display = b._changingLayout && b.animation.animateChangeLayout?b._newDisplay:b.layout.display, f.css( c._in ), b.animation.animateResizeTargets && ( e.style.width = e.dataset.finalWidth + "px", e.style.height = e.dataset.finalHeight + "px", e.style.marginRight = - ( e.dataset.finalWidth - e.dataset.interWidth ) + 1 * e.dataset.finalMarginRight + "px", e.style.marginBottom = - ( e.dataset.finalHeight - e.dataset.interHeight ) + 1 * e.dataset.finalMarginBottom + "px" )}for ( var d = 0; d < b._$pre.length; d++ ){var e = b._$pre[d], f = a( e ), g = {x:e.dataset.origPosX - e.dataset.interPosX, y:e.dataset.origPosY - e.dataset.interPosY}, c = b._getPrefixedCSS( "transform", "translate(" + g.x + "px," + g.y + "px)" ); f.css( c ), b.animation.animateResizeTargets && ( e.style.width = e.dataset.origWidth + "px", e.style.height = e.dataset.origHeight + "px", e.dataset.origWidth - e.dataset.finalWidth && ( e.style.marginRight = - ( e.dataset.origWidth - e.dataset.interWidth ) + 1 * e.dataset.origMarginRight + "px" ), e.dataset.origHeight - e.dataset.finalHeight && ( e.style.marginBottom = - ( e.dataset.origHeight - e.dataset.interHeight ) + 1 * e.dataset.origMarginBottom + "px" ) )}b._execAction( "_prepTargets", 1 )}, _animateTargets:function( ){var b = this; b._execAction( "_animateTargets", 0 ), b._targetsDone = 0, b._targetsBound = 0, b._$parent.css( b._getPrefixedCSS( "perspective", b.animation.perspectiveDistance + "px" ) ).css( b._getPrefixedCSS( "perspective-origin", b.animation.perspectiveOrigin ) ), b.animation.animateResizeContainer && b._$parent.css( b._getPrefixedCSS( "transition", "height " + b.animation.duration + "ms ease" ) ).css( "height", b._newHeight + "px" ); for ( var c = 0; c < b._$toShow.length; c++ ){var d = b._$toShow[c], e = a( d ), f = {x:d.dataset.finalPosX - d.dataset.interPosX, y:d.dataset.finalPosY - d.dataset.interPosY}, g = b._getDelay( c ), h = {}; d.style.opacity = ""; for ( var i = 0; 2 > i; i++ ){var j = 0 === i?j = b._prefix:""; b._ff && b._ff <= 20 && ( h[j + "transition-property"] = "all", h[j + "transition-timing-function"] = b.animation.easing + "ms", h[j + "transition-duration"] = b.animation.duration + "ms" ), h[j + "transition-delay"] = g + "ms", h[j + "transform"] = "translate(" + f.x + "px," + f.y + "px)"}( b.effects.transform || b.effects.opacity ) && b._bindTargetDone( e ), b._ff && b._ff <= 20?e.css( h ):e.css( b.effects.transition ).css( h )}for ( var c = 0; c < b._$pre.length; c++ ){var d = b._$pre[c], e = a( d ), f = {x:d.dataset.finalPosX - d.dataset.interPosX, y:d.dataset.finalPosY - d.dataset.interPosY}, g = b._getDelay( c ); ( d.dataset.finalPosX !== d.dataset.origPosX || d.dataset.finalPosY !== d.dataset.origPosY ) && b._bindTargetDone( e ), e.css( b._getPrefixedCSS( "transition", "all " + b.animation.duration + "ms " + b.animation.easing + " " + g + "ms" ) ), e.css( b._getPrefixedCSS( "transform", "translate(" + f.x + "px," + f.y + "px)" ) ), b.animation.animateResizeTargets && ( d.dataset.origWidth - d.dataset.finalWidth && 1 * d.dataset.finalWidth && ( d.style.width = d.dataset.finalWidth + "px", d.style.marginRight = - ( d.dataset.finalWidth - d.dataset.interWidth ) + 1 * d.dataset.finalMarginRight + "px" ), d.dataset.origHeight - d.dataset.finalHeight && 1 * d.dataset.finalHeight && ( d.style.height = d.dataset.finalHeight + "px", d.style.marginBottom = - ( d.dataset.finalHeight - d.dataset.interHeight ) + 1 * d.dataset.finalMarginBottom + "px" ) )}b._changingClass && b._$container.removeClass( b.layout.containerClass ).addClass( b._newClass ); for ( var c = 0; c < b._$toHide.length; c++ ){for ( var d = b._$toHide[c], e = a( d ), g = b._getDelay( c ), k = {}, i = 0; 2 > i; i++ ){var j = 0 === i?j = b._prefix:""; k[j + "transition-delay"] = g + "ms", k[j + "transform"] = b.effects.transformOut, k.opacity = b.effects.opacity}e.css( b.effects.transition ).css( k ), ( b.effects.transform || b.effects.opacity ) && b._bindTargetDone( e )}b._execAction( "_animateTargets", 1 )}, _bindTargetDone:function( b ){var c = this, d = b[0]; c._execAction( "_bindTargetDone", 0, arguments ), d.dataset.bound || ( d.dataset.bound = !0, c._targetsBound++, b.on( "webkitTransitionEnd.mixItUp transitionend.mixItUp", function( e ){( e.originalEvent.propertyName.indexOf( "transform" ) > - 1 || e.originalEvent.propertyName.indexOf( "opacity" ) > - 1 ) && a( e.originalEvent.target ).is( c.selectors.target ) && ( b.off( ".mixItUp" ), d.dataset.bound = "", c._targetDone( ) )} ) ), c._execAction( "_bindTargetDone", 1, arguments )}, _targetDone:function( ){var a = this; a._execAction( "_targetDone", 0 ), a._targetsDone++, a._targetsDone === a._targetsBound && a._cleanUp( ), a._execAction( "_targetDone", 1 )}, _cleanUp:function( ){var b = this, c = b.animation.animateResizeTargets?"transform opacity width height margin-bottom margin-right":"transform opacity", d = function( ){b._$targets.removeStyle( "transition", b._prefix )}; b._execAction( "_cleanUp", 0 ), b._changingLayout?b._$show.css( "display", b._newDisplay ):b._$show.css( "display", b.layout.display ), b._$targets.css( b._brake ), b._$targets.removeStyle( c, b._prefix ).removeAttr( "data-inter-pos-x data-inter-pos-y data-final-pos-x data-final-pos-y data-orig-pos-x data-orig-pos-y data-orig-height data-orig-width data-final-height data-final-width data-inter-width data-inter-height data-orig-margin-right data-orig-margin-bottom data-inter-margin-right data-inter-margin-bottom data-final-margin-right data-final-margin-bottom" ), b._$hide.removeStyle( "display" ), b._$parent.removeStyle( "height transition perspective-distance perspective perspective-origin-x perspective-origin-y perspective-origin perspectiveOrigin", b._prefix ), b._sorting && ( b._printSort( ), b._activeSort = b._newSortString, b._sorting = !1 ), b._changingLayout && ( b._changingDisplay && ( b.layout.display = b._newDisplay, b._changingDisplay = !1 ), b._changingClass && ( b._$parent.removeClass( b.layout.containerClass ).addClass( b._newClass ), b.layout.containerClass = b._newClass, b._changingClass = !1 ), b._changingLayout = !1 ), b._refresh( ), b._buildState( ), b._state.fail && b._$container.addClass( b.layout.containerClassFail ), b._$show = a( ), b._$hide = a( ), window.requestAnimationFrame && requestAnimationFrame( d ), b._mixing = !1, "function" == typeof b.callbacks._user && b.callbacks._user.call( b._domNode, b._state, b ), "function" == typeof b.callbacks.onMixEnd && b.callbacks.onMixEnd.call( b._domNode, b._state, b ), b._$container.trigger( "mixEnd", [b._state, b] ), b._state.fail && ( "function" == typeof b.callbacks.onMixFail && b.callbacks.onMixFail.call( b._domNode, b._state, b ), b._$container.trigger( "mixFail", [b._state, b] ) ), b._loading && ( "function" == typeof b.callbacks.onMixLoad && b.callbacks.onMixLoad.call( b._domNode, b._state, b ), b._$container.trigger( "mixLoad", [b._state, b] ) ), b._queue.length && ( b._execAction( "_queue", 0 ), b.multiMix( b._queue[0][0], b._queue[0][1], b._queue[0][2] ), b._queue.splice( 0, 1 ) ), b._execAction( "_cleanUp", 1 ), b._loading = !1}, _getPrefixedCSS:function( a, b, c ){var d = this, e = {}, f = "", g = - 1; for ( g = 0; 2 > g; g++ )f = 0 === g?d._prefix:"", c?e[f + a] = f + b:e[f + a] = b; return d._execFilter( "_getPrefixedCSS", e, arguments )}, _getDelay:function( a ){var b = this, c = "function" == typeof b.animation.staggerSequence?b.animation.staggerSequence.call( b._domNode, a, b._state ):a, d = b.animation.stagger?c * b.animation.staggerDuration:0; return b._execFilter( "_getDelay", d, arguments )}, _parseMultiMixArgs:function( a ){for ( var b = this, c = {command:null, animate:b.animation.enable, callback:null}, d = 0; d < a.length; d++ ){var e = a[d]; null !== e && ( "object" == typeof e || "string" == typeof e?c.command = e:"boolean" == typeof e?c.animate = e:"function" == typeof e && ( c.callback = e ) )}return b._execFilter( "_parseMultiMixArgs", c, arguments )}, _parseInsertArgs:function( b ){for ( var c = this, d = {index:0, $object:a( ), multiMix:{filter:c._state.activeFilter}, callback:null}, e = 0; e < b.length; e++ ){var f = b[e]; "number" == typeof f?d.index = f:"object" == typeof f && f instanceof a?d.$object = f:"object" == typeof f && c._helpers._isElement( f )?d.$object = a( f ):"object" == typeof f && null !== f?d.multiMix = f:"boolean" != typeof f || f?"function" == typeof f && ( d.callback = f ):d.multiMix = !1}return c._execFilter( "_parseInsertArgs", d, arguments )}, _execAction:function( a, b, c ){var d = this, e = b?"post":"pre"; if ( !d._actions.isEmptyObject && d._actions.hasOwnProperty( a ) )for ( var f in d._actions[a][e] )d._actions[a][e][f].call( d, c )}, _execFilter:function( a, b, c ){var d = this; if ( d._filters.isEmptyObject || !d._filters.hasOwnProperty( a ) )return b; for ( var e in d._filters[a] )return d._filters[a][e].call( d, c )}, _helpers:{_camelCase:function( a ){return a.replace( /-([a-z])/g, function( a ){return a[1].toUpperCase( )} )}, _isElement:function( a ){return window.HTMLElement?a instanceof HTMLElement:null !== a && 1 === a.nodeType && "string" === a.nodeName}}, isMixing:function( ){var a = this; return a._execFilter( "isMixing", a._mixing )}, filter:function( ){var a = this, b = a._parseMultiMixArgs( arguments ); a._clicking && ( a._toggleString = "" ), a.multiMix( {filter:b.command}, b.animate, b.callback )}, sort:function( ){var a = this, b = a._parseMultiMixArgs( arguments ); a.multiMix( {sort:b.command}, b.animate, b.callback )}, changeLayout:function( ){var a = this, b = a._parseMultiMixArgs( arguments ); a.multiMix( {changeLayout:b.command}, b.animate, b.callback )}, multiMix:function( ){var a = this, c = a._parseMultiMixArgs( arguments ); if ( a._execAction( "multiMix", 0, arguments ), a._mixing )a.animation.queue && a._queue.length < a.animation.queueLimit?( a._queue.push( arguments ), a.controls.enable && !a._clicking && a._updateControls( c.command ), a._execAction( "multiMixQueue", 1, arguments ) ):( "function" == typeof a.callbacks.onMixBusy && a.callbacks.onMixBusy.call( a._domNode, a._state, a ), a._$container.trigger( "mixBusy", [a._state, a] ), a._execAction( "multiMixBusy", 1, arguments ) ); else{a.controls.enable && !a._clicking && ( a.controls.toggleFilterButtons && a._buildToggleArray( ), a._updateControls( c.command, a.controls.toggleFilterButtons ) ), a._queue.length < 2 && ( a._clicking = !1 ), delete a.callbacks._user, c.callback && ( a.callbacks._user = c.callback ); var d = c.command.sort, e = c.command.filter, f = c.command.changeLayout; a._refresh( ), d && ( a._newSort = a._parseSort( d ), a._newSortString = d, a._sorting = !0, a._sort( ) ), e !== b && ( e = "all" === e?a.selectors.target:e, a._activeFilter = e ), a._filter( ), f && ( a._newDisplay = "string" == typeof f?f:f.display || a.layout.display, a._newClass = f.containerClass || "", ( a._newDisplay !== a.layout.display || a._newClass !== a.layout.containerClass ) && ( a._changingLayout = !0, a._changingClass = a._newClass !== a.layout.containerClass, a._changingDisplay = a._newDisplay !== a.layout.display ) ), a._$targets.css( a._brake ), a._goMix( c.animate ^ a.animation.enable?c.animate:a.animation.enable ), a._execAction( "multiMix", 1, arguments )}}, insert:function( ){var a = this, b = a._parseInsertArgs( arguments ), c = "function" == typeof b.callback?b.callback:null, d = document.createDocumentFragment( ), e = function( ){return a._refresh( ), a._$targets.length?b.index < a._$targets.length || !a._$targets.length?a._$targets[b.index]:a._$targets[a._$targets.length - 1].nextElementSibling:a._$parent[0].children[0]}( ); if ( a._execAction( "insert", 0, arguments ), b.$object ){for ( var f = 0; f < b.$object.length; f++ ){var g = b.$object[f]; d.appendChild( g ), d.appendChild( document.createTextNode( " " ) )}a._$parent[0].insertBefore( d, e )}a._execAction( "insert", 1, arguments ), "object" == typeof b.multiMix && a.multiMix( b.multiMix, c )}, prepend:function( ){var a = this, b = a._parseInsertArgs( arguments ); a.insert( 0, b.$object, b.multiMix, b.callback )}, append:function( ){var a = this, b = a._parseInsertArgs( arguments ); a.insert( a._state.totalTargets, b.$object, b.multiMix, b.callback )}, getOption:function( a ){var c = this, d = function( a, c ){for ( var d = c.split( "." ), e = d.pop( ), f = d.length, g = 1, h = d[0] || c; ( a = a[h] ) && f > g; )h = d[g], g++; return a !== b?a[e] !== b?a[e]:a:void 0}; return a?c._execFilter( "getOption", d( c, a ), arguments ):c}, setOptions:function( b ){var c = this; c._execAction( "setOptions", 0, arguments ), "object" == typeof b && a.extend( !0, c, b ), c._execAction( "setOptions", 1, arguments )}, getState:function( ){var a = this; return a._execFilter( "getState", a._state, a )}, forceRefresh:function( ){var a = this; a._refresh( !1, !0 )}, destroy:function( b ){var c = this, d = a.MixItUp.prototype._bound._filter, e = a.MixItUp.prototype._bound._sort; c._execAction( "destroy", 0, arguments ), c._$body.add( a( c.selectors.sort ) ).add( a( c.selectors.filter ) ).off( ".mixItUp" ); for ( var f = 0; f < c._$targets.length; f++ ){var g = c._$targets[f]; b && ( g.style.display = "" ), delete g.mixParent}c._execAction( "destroy", 1, arguments ), d[c.selectors.filter] && d[c.selectors.filter] > 1?d[c.selectors.filter]--:1 === d[c.selectors.filter] && delete d[c.selectors.filter], e[c.selectors.sort] && e[c.selectors.sort] > 1?e[c.selectors.sort]--:1 === e[c.selectors.sort] && delete e[c.selectors.sort], delete a.MixItUp.prototype._instances[c._id]}}, a.fn.mixItUp = function( ){var c, d = arguments, e = [], f = function( b, c ){var d = new a.MixItUp, e = function( ){return( "00000" + ( 16777216 * Math.random( ) << 0 ).toString( 16 ) ).substr( - 6 ).toUpperCase( )}; d._execAction( "_instantiate", 0, arguments ), b.id = b.id?b.id:"MixItUp" + e( ), d._instances[b.id] || ( d._instances[b.id] = d, d._init( b, c ) ), d._execAction( "_instantiate", 1, arguments )}; return c = this.each( function( ){if ( d && "string" == typeof d[0] ){var c = a.MixItUp.prototype._instances[this.id]; if ( "isLoaded" === d[0] )e.push( c?!0:!1 ); else{var g = c[d[0]]( d[1], d[2], d[3] ); g !== b && e.push( g )}} else f( this, d[0] )} ), e.length?e.length > 1?e:e[0]:c}, a.fn.removeStyle = function( c, d ){return d = d?d:"", this.each( function( ){for ( var e = this, f = c.split( " " ), g = 0; g < f.length; g++ )for ( var h = 0; 4 > h; h++ ){switch ( h ){case 0:var i = f[g]; break; case 1:var i = a.MixItUp.prototype._helpers._camelCase( i ); break; case 2:var i = d + f[g]; break; case 3:var i = a.MixItUp.prototype._helpers._camelCase( d + f[g] )}if ( e.style[i] !== b && "unknown" != typeof e.style[i] && e.style[i].length > 0 && ( e.style[i] = "" ), !d && 1 === h )break}e.attributes && e.attributes.style && e.attributes.style !== b && "" === e.attributes.style.value && e.attributes.removeNamedItem( "style" )} )}}( jQuery );
          /*Bootstrap Carousel Touch Slider.
           http://bootstrapthemes.co
           
           Credits: Bootstrap, jQuery, TouchSwipe, Animate.css, FontAwesome
           
           */
          !function( n ){"function" == typeof define && define.amd && define.amd.jQuery?define( ["jquery"], n ):n( "undefined" != typeof module && module.exports?require( "jquery" ):jQuery )}( function( n ){"use strict"; function e( e ){return!e || void 0 !== e.allowPageScroll || void 0 === e.swipe && void 0 === e.swipeStatus || ( e.allowPageScroll = c ), void 0 !== e.click && void 0 === e.tap && ( e.tap = e.click ), e || ( e = {} ), e = n.extend( {}, n.fn.swipe.defaults, e ), this.each( function( ){var r = n( this ), i = r.data( P ); i || ( i = new t( this, e ), r.data( P, i ) )} )}function t( e, t ){function r( e ){if ( !( cn( ) || n( e.target ).closest( t.excludedElements, Wn ).length > 0 ) ){var r = e.originalEvent?e.originalEvent:e; if ( !r.pointerType || "mouse" != r.pointerType || 0 != t.fallbackToMouseEvents ){var i, o = r.touches, a = o?o[0]:r; return zn = E, o?Gn = o.length:t.preventDefaultEvents !== !1 && e.preventDefault( ), Nn = 0, Hn = null, Cn = null, Yn = null, Qn = 0, _n = 0, qn = 0, Fn = 1, Xn = 0, Vn = wn( ), un( ), pn( 0, a ), !o || Gn === t.fingers || t.fingers === b || X( )?( Bn = Mn( ), 2 == Gn && ( pn( 1, o[1] ), _n = qn = mn( Zn[0].start, Zn[1].start ) ), ( t.swipeStatus || t.pinchStatus ) && ( i = U( r, zn ) ) ):i = !1, i === !1?( zn = S, U( r, zn ), i ):( t.hold && ( te = setTimeout( n.proxy( function( ){Wn.trigger( "hold", [r.target] ), t.hold && ( i = t.hold.call( Wn, r, r.target ) )}, this ), t.longTapThreshold ) ), fn( !0 ), null )}}}function L( n ){var e = n.originalEvent?n.originalEvent:n; if ( zn !== x && zn !== S && !sn( ) ){var r, i = e.touches, o = i?i[0]:e, a = dn( o ); if ( Jn = Mn( ), i && ( Gn = i.length ), t.hold && clearTimeout( te ), zn = y, 2 == Gn && ( 0 == _n?( pn( 1, i[1] ), _n = qn = mn( Zn[0].start, Zn[1].start ) ):( dn( i[1] ), qn = mn( Zn[0].end, Zn[1].end ), Yn = yn( Zn[0].end, Zn[1].end ) ), Fn = En( _n, qn ), Xn = Math.abs( _n - qn ) ), Gn === t.fingers || t.fingers === b || !i || X( ) ){if ( Hn = On( a.start, a.end ), Cn = On( a.last, a.end ), q( n, Cn ), Nn = xn( a.start, a.end ), Qn = bn( ), gn( Hn, Nn ), r = U( e, zn ), !t.triggerOnTouchEnd || t.triggerOnTouchLeave ){var l = !0; if ( t.triggerOnTouchLeave ){var u = Dn( this ); l = Pn( a.end, u )}!t.triggerOnTouchEnd && l?zn = I( y ):t.triggerOnTouchLeave && !l && ( zn = I( x ) ), ( zn == S || zn == x ) && U( e, zn )}} else zn = S, U( e, zn ); r === !1 && ( zn = S, U( e, zn ) )}}function k( n ){var e = n.originalEvent?n.originalEvent:n, r = e.touches; if ( r ){if ( r.length && !sn( ) )return ln( e ), !0; if ( r.length && sn( ) )return!0}return sn( ) && ( Gn = $n ), Jn = Mn( ), Qn = bn( ), C( ) || !H( )?( zn = S, U( e, zn ) ):t.triggerOnTouchEnd || t.triggerOnTouchEnd === !1 && zn === y?( t.preventDefaultEvents !== !1 && n.preventDefault( ), zn = x, U( e, zn ) ):!t.triggerOnTouchEnd && B( )?( zn = x, N( e, zn, h ) ):zn === y && ( zn = S, U( e, zn ) ), fn( !1 ), null}function R( ){Gn = 0, Jn = 0, Bn = 0, _n = 0, qn = 0, Fn = 1, un( ), fn( !1 )}function A( n ){var e = n.originalEvent?n.originalEvent:n; t.triggerOnTouchLeave && ( zn = I( x ), U( e, zn ) )}function j( ){Wn.unbind( Rn, r ), Wn.unbind( Un, R ), Wn.unbind( An, L ), Wn.unbind( jn, k ), In && Wn.unbind( In, A ), fn( !1 )}function I( n ){var e = n, r = _( ), i = H( ), o = C( ); return!r || o?e = S:!i || n != y || t.triggerOnTouchEnd && !t.triggerOnTouchLeave?!i && n == x && t.triggerOnTouchLeave && ( e = S ):e = x, e}function U( n, e ){var t, r = n.touches; return( z( ) || W( ) ) && ( t = N( n, e, p ) ), ( Y( ) || X( ) ) && t !== !1 && ( t = N( n, e, d ) ), on( ) && t !== !1?t = N( n, e, g ):an( ) && t !== !1?t = N( n, e, v ):rn( ) && t !== !1 && ( t = N( n, e, h ) ), e === S && R( n ), e === x && ( r?r.length || R( n ):R( n ) ), t}function N( e, r, c ){var f; if ( c == p ){if ( Wn.trigger( "swipeStatus", [r, Hn || null, Nn || 0, Qn || 0, Gn, Zn, Cn] ), t.swipeStatus && ( f = t.swipeStatus.call( Wn, e, r, Hn || null, Nn || 0, Qn || 0, Gn, Zn, Cn ), f === !1 ) )return!1; if ( r == x && V( ) ){if ( clearTimeout( ee ), clearTimeout( te ), Wn.trigger( "swipe", [Hn, Nn, Qn, Gn, Zn, Cn] ), t.swipe && ( f = t.swipe.call( Wn, e, Hn, Nn, Qn, Gn, Zn, Cn ), f === !1 ) )return!1; switch ( Hn ){case i:Wn.trigger( "swipeLeft", [Hn, Nn, Qn, Gn, Zn, Cn] ), t.swipeLeft && ( f = t.swipeLeft.call( Wn, e, Hn, Nn, Qn, Gn, Zn, Cn ) ); break; case o:Wn.trigger( "swipeRight", [Hn, Nn, Qn, Gn, Zn, Cn] ), t.swipeRight && ( f = t.swipeRight.call( Wn, e, Hn, Nn, Qn, Gn, Zn, Cn ) ); break; case a:Wn.trigger( "swipeUp", [Hn, Nn, Qn, Gn, Zn, Cn] ), t.swipeUp && ( f = t.swipeUp.call( Wn, e, Hn, Nn, Qn, Gn, Zn, Cn ) ); break; case l:Wn.trigger( "swipeDown", [Hn, Nn, Qn, Gn, Zn, Cn] ), t.swipeDown && ( f = t.swipeDown.call( Wn, e, Hn, Nn, Qn, Gn, Zn, Cn ) )}}}if ( c == d ){if ( Wn.trigger( "pinchStatus", [r, Yn || null, Xn || 0, Qn || 0, Gn, Fn, Zn] ), t.pinchStatus && ( f = t.pinchStatus.call( Wn, e, r, Yn || null, Xn || 0, Qn || 0, Gn, Fn, Zn ), f === !1 ) )return!1; if ( r == x && F( ) )switch ( Yn ){case u:Wn.trigger( "pinchIn", [Yn || null, Xn || 0, Qn || 0, Gn, Fn, Zn] ), t.pinchIn && ( f = t.pinchIn.call( Wn, e, Yn || null, Xn || 0, Qn || 0, Gn, Fn, Zn ) ); break; case s:Wn.trigger( "pinchOut", [Yn || null, Xn || 0, Qn || 0, Gn, Fn, Zn] ), t.pinchOut && ( f = t.pinchOut.call( Wn, e, Yn || null, Xn || 0, Qn || 0, Gn, Fn, Zn ) )}}return c == h?( r === S || r === x ) && ( clearTimeout( ee ), clearTimeout( te ), J( ) && !nn( )?( ne = Mn( ), ee = setTimeout( n.proxy( function( ){ne = null, Wn.trigger( "tap", [e.target] ), t.tap && ( f = t.tap.call( Wn, e, e.target ) )}, this ), t.doubleTapThreshold ) ):( ne = null, Wn.trigger( "tap", [e.target] ), t.tap && ( f = t.tap.call( Wn, e, e.target ) ) ) ):c == g?( r === S || r === x ) && ( clearTimeout( ee ), clearTimeout( te ), ne = null, Wn.trigger( "doubletap", [e.target] ), t.doubleTap && ( f = t.doubleTap.call( Wn, e, e.target ) ) ):c == v && ( r === S || r === x ) && ( clearTimeout( ee ), ne = null, Wn.trigger( "longtap", [e.target] ), t.longTap && ( f = t.longTap.call( Wn, e, e.target ) ) ), f}function H( ){var n = !0; return null !== t.threshold && ( n = Nn >= t.threshold ), n}function C( ){var n = !1; return null !== t.cancelThreshold && null !== Hn && ( n = vn( Hn ) - Nn >= t.cancelThreshold ), n}function Q( ){return null !== t.pinchThreshold?Xn >= t.pinchThreshold:!0}function _( ){var n; return n = t.maxTimeThreshold && Qn >= t.maxTimeThreshold?!1:!0}function q( n, e ){if ( t.preventDefaultEvents !== !1 )if ( t.allowPageScroll === c )n.preventDefault( ); else{var r = t.allowPageScroll === f; switch ( e ){case i:( t.swipeLeft && r || !r && t.allowPageScroll != w ) && n.preventDefault( ); break; case o:( t.swipeRight && r || !r && t.allowPageScroll != w ) && n.preventDefault( ); break; case a:( t.swipeUp && r || !r && t.allowPageScroll != T ) && n.preventDefault( ); break; case l:( t.swipeDown && r || !r && t.allowPageScroll != T ) && n.preventDefault( ); break; case c:}}}function F( ){var n = G( ), e = Z( ), t = Q( ); return n && e && t}function X( ){return!!( t.pinchStatus || t.pinchIn || t.pinchOut )}function Y( ){return!( !F( ) || !X( ) )}function V( ){var n = _( ), e = H( ), t = G( ), r = Z( ), i = C( ), o = !i && r && t && e && n; return o}function W( ){return!!( t.swipe || t.swipeStatus || t.swipeLeft || t.swipeRight || t.swipeUp || t.swipeDown )}function z( ){return!( !V( ) || !W( ) )}function G( ){return Gn === t.fingers || t.fingers === b || !O}function Z( ){return 0 !== Zn[0].end.x}function B( ){return!!t.tap}function J( ){return!!t.doubleTap}function K( ){return!!t.longTap}function $( ){if ( null == ne )return!1; var n = Mn( ); return J( ) && n - ne <= t.doubleTapThreshold}function nn( ){return $( )}function en( ){return( 1 === Gn || !O ) && ( isNaN( Nn ) || Nn < t.threshold )}function tn( ){return Qn > t.longTapThreshold && m > Nn}function rn( ){return!( !en( ) || !B( ) )}function on( ){return!( !$( ) || !J( ) )}function an( ){return!( !tn( ) || !K( ) )}function ln( n ){Kn = Mn( ), $n = n.touches.length + 1}function un( ){Kn = 0, $n = 0}function sn( ){var n = !1; if ( Kn ){var e = Mn( ) - Kn; e <= t.fingerReleaseThreshold && ( n = !0 )}return n}function cn( ){return!( Wn.data( P + "_intouch" ) !== !0 )}function fn( n ){Wn && ( n === !0?( Wn.bind( An, L ), Wn.bind( jn, k ), In && Wn.bind( In, A ) ):( Wn.unbind( An, L, !1 ), Wn.unbind( jn, k, !1 ), In && Wn.unbind( In, A, !1 ) ), Wn.data( P + "_intouch", n === !0 ) )}function pn( n, e ){var t = {start:{x:0, y:0}, last:{x:0, y:0}, end:{x:0, y:0}}; return t.start.x = t.last.x = t.end.x = e.pageX || e.clientX, t.start.y = t.last.y = t.end.y = e.pageY || e.clientY, Zn[n] = t, t}function dn( n ){var e = void 0 !== n.identifier?n.identifier:0, t = hn( e ); return null === t && ( t = pn( e, n ) ), t.last.x = t.end.x, t.last.y = t.end.y, t.end.x = n.pageX || n.clientX, t.end.y = n.pageY || n.clientY, t}function hn( n ){return Zn[n] || null}function gn( n, e ){n != c && ( e = Math.max( e, vn( n ) ), Vn[n].distance = e )}function vn( n ){return Vn[n]?Vn[n].distance:void 0}function wn( ){var n = {}; return n[i] = Tn( i ), n[o] = Tn( o ), n[a] = Tn( a ), n[l] = Tn( l ), n}function Tn( n ){return{direction:n, distance:0}}function bn( ){return Jn - Bn}function mn( n, e ){var t = Math.abs( n.x - e.x ), r = Math.abs( n.y - e.y ); return Math.round( Math.sqrt( t * t + r * r ) )}function En( n, e ){var t = e / n * 1; return t.toFixed( 2 )}function yn( ){return 1 > Fn?s:u}function xn( n, e ){return Math.round( Math.sqrt( Math.pow( e.x - n.x, 2 ) + Math.pow( e.y - n.y, 2 ) ) )}function Sn( n, e ){var t = n.x - e.x, r = e.y - n.y, i = Math.atan2( r, t ), o = Math.round( 180 * i / Math.PI ); return 0 > o && ( o = 360 - Math.abs( o ) ), o}function On( n, e ){if ( Ln( n, e ) )return c; var t = Sn( n, e ); return 45 >= t && t >= 0?i:360 >= t && t >= 315?i:t >= 135 && 225 >= t?o:t > 45 && 135 > t?l:a}function Mn( ){var n = new Date; return n.getTime( )}function Dn( e ){e = n( e ); var t = e.offset( ), r = {left:t.left, right:t.left + e.outerWidth( ), top:t.top, bottom:t.top + e.outerHeight( )}; return r}function Pn( n, e ){return n.x > e.left && n.x < e.right && n.y > e.top && n.y < e.bottom}function Ln( n, e ){return n.x == e.x && n.y == e.y}var t = n.extend( {}, t ), kn = O || D || !t.fallbackToMouseEvents, Rn = kn?D?M?"MSPointerDown":"pointerdown":"touchstart":"mousedown", An = kn?D?M?"MSPointerMove":"pointermove":"touchmove":"mousemove", jn = kn?D?M?"MSPointerUp":"pointerup":"touchend":"mouseup", In = kn?D?"mouseleave":null:"mouseleave", Un = D?M?"MSPointerCancel":"pointercancel":"touchcancel", Nn = 0, Hn = null, Cn = null, Qn = 0, _n = 0, qn = 0, Fn = 1, Xn = 0, Yn = 0, Vn = null, Wn = n( e ), zn = "start", Gn = 0, Zn = {}, Bn = 0, Jn = 0, Kn = 0, $n = 0, ne = 0, ee = null, te = null; try{Wn.bind( Rn, r ), Wn.bind( Un, R )} catch ( re ){n.error( "events not supported " + Rn + "," + Un + " on jQuery.swipe" )}this.enable = function( ){return this.disable( ), Wn.bind( Rn, r ), Wn.bind( Un, R ), Wn}, this.disable = function( ){return j( ), Wn}, this.destroy = function( ){j( ), Wn.data( P, null ), Wn = null}, this.option = function( e, r ){if ( "object" == typeof e )t = n.extend( t, e ); else if ( void 0 !== t[e] ){if ( void 0 === r )return t[e]; t[e] = r} else{if ( !e )return t; n.error( "Option " + e + " does not exist on jQuery.swipe.options" )}return null}}var r = "1.6.18", i = "left", o = "right", a = "up", l = "down", u = "in", s = "out", c = "none", f = "auto", p = "swipe", d = "pinch", h = "tap", g = "doubletap", v = "longtap", w = "horizontal", T = "vertical", b = "all", m = 10, E = "start", y = "move", x = "end", S = "cancel", O = "ontouchstart"in window, M = window.navigator.msPointerEnabled && !window.navigator.pointerEnabled && !O, D = ( window.navigator.pointerEnabled || window.navigator.msPointerEnabled ) && !O, P = "TouchSwipe", L = {fingers:1, threshold:75, cancelThreshold:null, pinchThreshold:20, maxTimeThreshold:null, fingerReleaseThreshold:250, longTapThreshold:500, doubleTapThreshold:200, swipe:null, swipeLeft:null, swipeRight:null, swipeUp:null, swipeDown:null, swipeStatus:null, pinchIn:null, pinchOut:null, pinchStatus:null, click:null, tap:null, doubleTap:null, longTap:null, hold:null, triggerOnTouchEnd:!0, triggerOnTouchLeave:!1, allowPageScroll:"auto", fallbackToMouseEvents:!0, excludedElements:".noSwipe", preventDefaultEvents:!0}; n.fn.swipe = function( t ){var r = n( this ), i = r.data( P ); if ( i && "string" == typeof t ){if ( i[t] )return i[t].apply( i, Array.prototype.slice.call( arguments, 1 ) ); n.error( "Method " + t + " does not exist on jQuery.swipe" )} else if ( i && "object" == typeof t )i.option.apply( i, arguments ); else if ( !( i || "object" != typeof t && t ) )return e.apply( this, arguments ); return r}, n.fn.swipe.version = r, n.fn.swipe.defaults = L, n.fn.swipe.phases = {PHASE_START:E, PHASE_MOVE:y, PHASE_END:x, PHASE_CANCEL:S}, n.fn.swipe.directions = {LEFT:i, RIGHT:o, UP:a, DOWN:l, IN:u, OUT:s}, n.fn.swipe.pageScroll = {NONE:c, HORIZONTAL:w, VERTICAL:T, AUTO:f}, n.fn.swipe.fingers = {ONE:1, TWO:2, THREE:3, FOUR:4, FIVE:5, ALL:b}} ), function( n ){"use strict"; n.fn.bsTouchSlider = function( e ){var t = n( ".carousel" ); return this.each( function( ){function e( e ){var t = "webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend"; e.each( function( ){var e = n( this ), r = e.data( "animation" ); e.addClass( r ).one( t, function( ){e.removeClass( r )} )} )}var r = t.find( ".item:first" ).find( "[data-animation ^= 'animated']" ); t.carousel( ), e( r ), t.on( "slide.bs.carousel", function( t ){var r = n( t.relatedTarget ).find( "[data-animation ^= 'animated']" ); e( r )} ), n( ".carousel .carousel-inner" ).swipe( {swipeLeft:function( n, e, t, r, i ){this.parent( ).carousel( "next" )}, swipeRight:function( ){this.parent( ).carousel( "prev" )}, threshold:0} )} )}}( jQuery );
          /*! ScrollMagic v2.0.5 | (c) 2015 Jan Paepke (@janpaepke) | license & info: http://scrollmagic.io */
          !function( e, i ){"function" == typeof define && define.amd?define( ["ScrollMagic", "velocity"], i ):"object" == typeof exports?i( require( "scrollmagic" ), require( "velocity" ) ):i( e.ScrollMagic || e.jQuery && e.jQuery.ScrollMagic, e.Velocity || e.jQuery && e.jQuery.Velocity )}( this, function( e, i ){"use strict"; var t = "animation.velocity", o = 0; e.Scene.extend( function( ){var r, u, n, c, l = this, s = e._util, a = 0; l.on( "progress.plugin_velocity", function( ){v( )} ), l.on( "destroy.plugin_velocity", function( e ){l.off( "*.plugin_velocity" ), l.removeVelocity( e.reset )} ); var f = function( e, t, o ){s.type.Array( e )?e.forEach( function( e ){f( e, t, o )} ):( i.Utilities.data( e, c ) || i.Utilities.data( e, c, {reverseProps:s.css( e, Object.keys( u ) )} ), i( e, t, o ), void 0 !== o.queue && i.Utilities.dequeue( e, o.queue ) )}, y = function( e, t ){if ( s.type.Array( e ) )e.forEach( function( e ){y( e, t )} ); else{var o = i.Utilities.data( e, c ); o && o.reverseProps && ( i( e, o.reverseProps, t ), void 0 !== t.queue && i.Utilities.dequeue( e, t.queue ) )}}, v = function( ){if ( r ){var e = l.progress( ); e != a && ( 0 === l.duration( ) && ( e > 0?f( r, u, n ):y( r, n ) ), a = e )}}; l.setVelocity = function( e, i, a ){return r && l.removeVelocity( ), r = s.get.elements( e ), u = i || {}, n = a || {}, c = "ScrollMagic." + t + "[" + o++ + "]", void 0 !== n.queue && ( n.queue = c + "_queue" ), v( ), l}, l.removeVelocity = function( e ){return r && ( void 0 !== n.queue && i( r, "stop", n.queue ), e && y( r, {duration:0} ), r.forEach( function( e ){i.Utilities.removeData( e, c )} ), r = u = n = c = void 0 ), l}} )} );
  //Make equal column  for service section
          function ResetGridColumns( ){$( ".equalcol" ).each( function( ){var a = $( this ).children( '[class*="col-"]' ); a.css( "height", "auto" ); var b = $( this ).width( ), c = $( ), d = 0, e = 0; a.each( function( ){var a = $( this ).width( ), f = $( this ).height( ); e + a <= b?( c = c.add( this ), e += a, f > d && ( d = f ) ):( c.length > 1 && c.css( "height", d + "px" ), c = $( this ), e = a, d = f )} ), c.length > 1 && c.css( "height", d + "px" )} )}$( document ).ready( function( ){$( window ).resize( function( ){ResetGridColumns( )} ), ResetGridColumns( )} );
         