PageSourceSearch

https://donatestock.com/sites/default/files/js/js_6pwcJ_xX196jQ7BTpE1YH6Dv8RXh6Aj_85KhnKGtB2I.js

js donatestock.com collected 2026-09-26 01:01:26 UTC 93,773 bytes, 1,441 lines download raw bytes

vendor: 36,085 bytes, lines 1-7
1/**
2 * Owl Carousel v2.3.4
3 * Copyright 2013-2018 David Deutsch
4 * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
5 */
6!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},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._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,checkVisibility:!0,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:b,fallbackEasing:"swing",slideTransition:"",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"owl-refresh",loadedClass:"owl-loaded",loadingClass:"owl-loading",rtlClass:"owl-rtl",responsiveClass:"owl-responsive",dragClass:"owl-drag",itemClass:"owl-item",stageClass:"owl-stage",stageOuterClass:"owl-stage-outer",grabClass:"owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g>0;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i,g-=1;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c<b;)d=f[c-1]||0,e=this._widths[this.relative(c)]+this.settings.margin,f.push(d+e*a);this._coordinates=f}},{filter:["width","items","settings"],run:function(){var a=this.settings.stagePadding,b=this._coordinates,c={width:Math.ceil(Math.abs(b[b.length-1]))+2*a,"padding-left":a||"","padding-right":a||""};this.$stage.css(c)}},{filter:["width","items","settings"],run:function(a){var b=this._coordinates.length,c=!this.settings.autoWidth,d=this.$stage.children();if(c&&a.items.merge)for(;b--;)a.css.width=this._widths[this.relative(b)],d.eq(b).css(a.css);else c&&(a.css.width=a.items.width,d.css(a.css))}},{filter:["items"],run:function(){this._coordinates.length<1&&this.$stage.removeAttr("style")}},{filter:["width","items","settings"],run:function(a){a.current=a.current?this.$stage.children().index(a.current):0,a.current=Math.max(this.minimum(),Math.min(this.maximum(),a.current)),this.reset(a.current)}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;c<d;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,"<=",g)&&this.op(a,">",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.$stage.children(".center").removeClass("center"),this.settings.center&&this.$stage.children().eq(this.current()).addClass("center")}}],e.prototype.initializeStage=function(){this.$stage=this.$element.find("."+this.settings.stageClass),this.$stage.length||(this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+">",{class:this.settings.stageClass}).wrap(a("<div/>",{class:this.settings.stageOuterClass})),this.$element.append(this.$stage.parent()))},e.prototype.initializeItems=function(){var b=this.$element.find(".owl-item");if(b.length)return this._items=b.get().map(function(b){return a(b)}),this._mergers=this._items.map(function(){return 1}),void this.refresh();this.replace(this.$element.children().not(this.$stage.parent())),this.isVisible()?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)},e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var a,b,c;a=this.$element.find("img"),b=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,c=this.$element.children(b).width(),a.length&&c<=0&&this.preloadAutoWidthImages(a)}this.initializeStage(),this.initializeItems(),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.isVisible=function(){return!this.settings.checkVisibility||this.$element.is(":visible")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b<c;)(this._invalidated.all||a.grep(this._pipe[b].filter,d).length>0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.isVisible()&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core touchmove.owl.core",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)<Math.abs(d.y)&&this.is("valid")||(b.preventDefault(),this.enter("dragging"),this.trigger("drag"))},this)))},e.prototype.onDragMove=function(a){var b=null,c=null,d=null,e=this.difference(this._drag.pointer,this.pointer(a)),f=this.difference(this._drag.stage.start,e);this.is("dragging")&&(a.preventDefault(),this.settings.loop?(b=this.coordinates(this.minimum()),c=this.coordinates(this.maximum()+1)-b,f.x=((f.x-b)%c+c)%c+b):(b=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum()),c=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum()),d=this.settings.pullDrag?-1*e.x/5:0,f.x=Math.max(Math.min(f.x,b+d),c+d)),this._drag.stage.current=f,this.animate(f.x))},e.prototype.onDragEnd=function(b){var d=this.difference(this._drag.pointer,this.pointer(b)),e=this._drag.stage.current,f=d.x>0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var e=-1,f=30,g=this.width(),h=this.coordinates();return this.settings.freeDrag||a.each(h,a.proxy(function(a,i){return"left"===c&&b>i-f&&b<i+f?e=a:"right"===c&&b>i-g-f&&b<i-g+f?e=a+1:this.op(b,"<",i)&&this.op(b,">",h[a+1]!==d?h[a+1]:i-g)&&(e="left"===c?a+1:a),-1===e},this)),this.settings.loop||(this.op(b,">",h[this.minimum()])?e=b=this.minimum():this.op(b,"<",h[this.maximum()])&&(e=b=this.maximum())),e},e.prototype.animate=function(b){var c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"+(this.settings.slideTransition?" "+this.settings.slideTransition:"")}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){(a=this.normalize(a))!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){if(b=this._items.length)for(c=this._items[--b].width(),d=this.$element.width();b--&&!((c+=this._items[b].width()+this.settings.margin)>d););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2==0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=-1*f*g),a=c+e,(d=((a-h)%g+g)%g+h)!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.isVisible()&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can not detect viewport width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){(a=this.normalize(a,!0))!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter("pre-loading"),c=a(c),a(new Image).one("load",a.proxy(function(a){c.attr("src",a.target.src),c.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",c.attr("src")||c.attr("data-src")||c.attr("data-src-retina"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),!1!==this.settings.responsive&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.remove(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:a<c;case">":return d?a<c:a>c;case">=":return d?a<=c:a>=c;case"<=":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&-1!==a.namespace.indexOf("owl")?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.owlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data("owl.carousel");f||(f=new e(this,"object"==typeof b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.isVisible(),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.isVisible()!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type)){var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&-1*e||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);for(c.lazyLoadEager>0&&(e+=c.lazyLoadEager,c.loop&&(g-=c.lazyLoadEager,e++));f++<e;)this.load(h/2+this._core.relative(g)),h&&a.each(this._core.clones(this._core.relative(g)),i),g++}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={lazyLoad:!1,lazyLoadEager:0},e.prototype.load=function(c){var d=this._core.$stage.children().eq(c),e=d&&d.find(".owl-lazy");!e||a.inArray(d.get(0),this._loaded)>-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src")||f.attr("data-srcset");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):f.is("source")?f.one("load.owl.lazy",a.proxy(function(){this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("srcset",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(c){this._core=c,this._previousHeight=null,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"===a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._intervalId=null;var d=this;a(b).on("load",function(){d._core.settings.autoHeight&&d.update()}),a(b).resize(function(){d._core.settings.autoHeight&&(null!=d._intervalId&&clearTimeout(d._intervalId),d._intervalId=setTimeout(function(){d.update()},250))})};e.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.settings.lazyLoad,e=this._core.$stage.children().toArray().slice(b,c),f=[],g=0;a.each(e,function(b,c){f.push(a(c).height())}),g=Math.max.apply(null,f),g<=1&&d&&this._previousHeight&&(g=this._previousHeight),this._previousHeight=g,this._core.$stage.parent().height(g).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?"width:"+c.width+"px;height:"+c.height+"px;":"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(c){e='<div class="owl-video-play-icon"></div>',d=k.lazyLoad?a("<div/>",{class:"owl-video-tn "+j,srcType:c}):a("<div/>",{class:"owl-video-tn",style:"opacity:1;background-image:url("+c+")"}),b.after(d),b.after(e)};if(b.wrap(a("<div/>",{class:"owl-video-wrapper",style:g})),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length)return l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.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,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),c=a('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>'),c.attr("height",h),c.attr("width",g),"youtube"===f.type?c.attr("src","//www.youtube.com/embed/"+f.id+"?autoplay=1&rel=0&v="+f.id):"vimeo"===f.type?c.attr("src","//player.vimeo.com/video/"+f.id+"?autoplay=1"):"vzaar"===f.type&&c.attr("src","//view.vzaar.com/"+f.id+"/player?autoplay=true"),a(c).wrap('<div class="owl-video-frame" />').insertAfter(e.find(".owl-video")),this._playing=e.addClass("owl-video-playing"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass("owl-video-frame")},e.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,
7animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._call=null,this._time=0,this._timeout=0,this._paused=!0,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._paused&&(this._time=0)},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype._next=function(d){this._call=b.setTimeout(a.proxy(this._next,this,d),this._timeout*(Math.round(this.read()/this._timeout)+1)-this.read()),this._core.is("interacting")||c.hidden||this._core.next(d||this._core.settings.autoplaySpeed)},e.prototype.read=function(){return(new Date).getTime()-this._time},e.prototype.play=function(c,d){var e;this._core.is("rotating")||this._core.enter("rotating"),c=c||this._core.settings.autoplayTimeout,e=Math.min(this._time%(this._timeout||c),c),this._paused?(this._time=this.read(),this._paused=!1):b.clearTimeout(this._call),this._time+=this.read()%c-e,this._timeout=c,this._call=b.setTimeout(a.proxy(this._next,this,d),c-e)},e.prototype.stop=function(){this._core.is("rotating")&&(this._time=0,this._paused=!0,b.clearTimeout(this._call),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&!this._paused&&(this._time=this.read(),this._paused=!0,b.clearTimeout(this._call))},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,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}
vendor: 5,569 bytes, line 7
7,this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('<div class="'+this._core.settings.dotClass+'">'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"</div>")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:['<span aria-label="Previous">&#x2039;</span>','<span aria-label="Next">&#x203a;</span>'],navSpeed:!1,navElement:'button type="button" role="presentation"',navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("<div>").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a('<button role="button">').addClass(c.dotClass).append(a("<span>")).prop("outerHTML")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a("<div>").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","button",a.proxy(function(b){var d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b in this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var a,b,c,d,e;e=this._core.settings;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)"$relative"===b&&e.navContainer?this._controls[b].html(""):this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},e.prototype.update=function(){var a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if("page"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||"page"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a<e;a++){if(b>=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass("disabled",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass("disabled",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join("")):b>0?this._controls.$absolute.append(new Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass("active"))},e.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,a.proxy(function(a,c){return a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.owlCarousel.Constructor.Plugins.Navigation=e}(
vendor: 3,418 bytes, lines 7-25
7window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(c){c.namespace&&"URLHash"===this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!c)return;this._hashes[c]=b.content}},this),"changed.owl.carousel":a.proxy(function(c){if(c.namespace&&"position"===c.property.name){var d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(a){var c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return a.each((b+" "+h.join(f+" ")+f).split(" "),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function f(a){return e(a,!0)}var g=a("<support>").get(0).style,h="Webkit Moz O ms".split(" "),i={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},j={csstransforms:function(){return!!e("transform")},csstransforms3d:function(){return!!e("perspective")},csstransitions:function(){return!!e("transition")},cssanimations:function(){return!!e("animation")}};j.csstransitions()&&(a.support.transition=new String(f("transition")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new String(f("animation")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new String(f("transform")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document);;
8/**
9* DO NOT EDIT THIS FILE.
10* See the following change record for more information,
11* https://www.drupal.org/node/2815083
12* @preserve
13**/
14
15(function ($, Drupal) {
16  Drupal.theme.progressBar = function (id) {
17    return '<div id="' + id + '" class="progress" aria-live="polite">' + '<div class="progress__label">&nbsp;</div>' + '<div class="progress__track"><div class="progress__bar"></div></div>' + '<div class="progress__percentage"></div>' + '<div class="progress__description">&nbsp;</div>' + '</div>';
18  };
19
20  Drupal.ProgressBar = function (id, updateCallback, method, errorCallback) {
21    this.id = id;
22    this.method = method || 'GET';
23    this.updateCallback = updateCallback;
24    this.errorCallback = errorCallback;
25
26    this.element = $(Drupal.theme('progressBar', id));
27  };
28
29  $.extend(Drupal.ProgressBar.prototype, {
30    setProgress: function setProgress(percentage, message, label) {
31      if (percentage >= 0 && percentage <= 100) {
32        $(this.element).find('div.progress__bar').css('width', percentage + '%');
33        $(this.element).find('div.progress__percentage').html(percentage + '%');
34      }
35      $('div.progress__description', this.element).html(message);
36      $('div.progress__label', this.element).html(label);
37      if (this.updateCallback) {
38        this.updateCallback(percentage, message, this);
39      }
40    },
41    startMonitoring: function startMonitoring(uri, delay) {
42      this.delay = delay;
43      this.uri = uri;
44      this.sendPing();
45    },
46    stopMonitoring: function stopMonitoring() {
47      clearTimeout(this.timer);
48
49      this.uri = null;
50    },
51    sendPing: function sendPing() {
52      if (this.timer) {
53        clearTimeout(this.timer);
54      }
55      if (this.uri) {
56        var pb = this;
57
58        var uri = this.uri;
59        if (uri.indexOf('?') === -1) {
60          uri += '?';
61        } else {
62          uri += '&';
63        }
64        uri += '_format=json';
65        $.ajax({
66          type: this.method,
67          url: uri,
68          data: '',
69          dataType: 'json',
70          success: function success(progress) {
71            if (progress.status === 0) {
72              pb.displayError(progress.data);
73              return;
74            }
75
76            pb.setProgress(progress.percentage, progress.message, progress.label);
77
78            pb.timer = setTimeout(function () {
79              pb.sendPing();
80            }, pb.delay);
81          },
82          error: function error(xmlhttp) {
83            var e = new Drupal.AjaxError(xmlhttp, pb.uri);
84            pb.displayError('<pre>' + e.message + '</pre>');
85          }
86        });
87      }
88    },
89    displayError: function displayError(string) {
90      var error = $('<div class="messages messages--error"></div>').html(string);
91      $(this.element).before(error).hide();
92
93      if (this.errorCallback) {
94        this.errorCallback(this);
95      }
96    }
97  });
98})(jQuery, Drupal);;
99/**
100* DO NOT EDIT THIS FILE.
101* See the following change record for more information,
102* https://www.drupal.org/node/2815083
103* @preserve
104**/
105
106(function (Drupal) {
107  Drupal.behaviors.responsiveImageAJAX = {
108    attach: function attach() {
109      if (window.picturefill) {
110        window.picturefill();
111      }
112    }
113  };
114})(Drupal);;
115/**
116* DO NOT EDIT THIS FILE.
117* See the following change record for more information,
118* https://www.drupal.org/node/2815083
119* @preserve
120**/
121function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
122
123(function ($, window, Drupal, drupalSettings) {
124  Drupal.behaviors.AJAX = {
125    attach: function attach(context, settings) {
126      function loadAjaxBehavior(base) {
127        var elementSettings = settings.ajax[base];
128        if (typeof elementSettings.selector === 'undefined') {
129          elementSettings.selector = '#' + base;
130        }
131        $(elementSettings.selector).once('drupal-ajax').each(function () {
132          elementSettings.element = this;
133          elementSettings.base = base;
134          Drupal.ajax(elementSettings);
135        });
136      }
137
138      Object.keys(settings.ajax || {}).forEach(function (base) {
139        return loadAjaxBehavior(base);
140      });
141
142      Drupal.ajax.bindAjaxLinks(document.body);
143
144      $('.use-ajax-submit').once('ajax').each(function () {
145        var elementSettings = {};
146
147        elementSettings.url = $(this.form).attr('action');
148
149        elementSettings.setClick = true;
150
151        elementSettings.event = 'click';
152
153        elementSettings.progress = { type: 'throbber' };
154        elementSettings.base = $(this).attr('id');
155        elementSettings.element = this;
156
157        Drupal.ajax(elementSettings);
158      });
159    },
160    detach: function detach(context, settings, trigger) {
161      if (trigger === 'unload') {
162        Drupal.ajax.expired().forEach(function (instance) {
163          Drupal.ajax.instances[instance.instanceIndex] = null;
164        });
165      }
166    }
167  };
168
169  Drupal.AjaxError = function (xmlhttp, uri, customMessage) {
170    var statusCode = void 0;
171    var statusText = void 0;
172    var responseText = void 0;
173    if (xmlhttp.status) {
174      statusCode = '\n' + Drupal.t('An AJAX HTTP error occurred.') + '\n' + Drupal.t('HTTP Result Code: !status', {
175        '!status': xmlhttp.status
176      });
177    } else {
178      statusCode = '\n' + Drupal.t('An AJAX HTTP request terminated abnormally.');
179    }
180    statusCode += '\n' + Drupal.t('Debugging information follows.');
181    var pathText = '\n' + Drupal.t('Path: !uri', { '!uri': uri });
182    statusText = '';
183
184    try {
185      statusText = '\n' + Drupal.t('StatusText: !statusText', {
186        '!statusText': $.trim(xmlhttp.statusText)
187      });
188    } catch (e) {}
189
190    responseText = '';
191
192    try {
193      responseText = '\n' + Drupal.t('ResponseText: !responseText', {
194        '!responseText': $.trim(xmlhttp.responseText)
195      });
196    } catch (e) {}
197
198    responseText = responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, '');
199    responseText = responseText.replace(/[\n]+\s+/g, '\n');
200
201    var readyStateText = xmlhttp.status === 0 ? '\n' + Drupal.t('ReadyState: !readyState', {
202      '!readyState': xmlhttp.readyState
203    }) : '';
204
205    customMessage = customMessage ? '\n' + Drupal.t('CustomMessage: !customMessage', {
206      '!customMessage': customMessage
207    }) : '';
208
209    this.message = statusCode + pathText + statusText + customMessage + responseText + readyStateText;
210
211    this.name = 'AjaxError';
212  };
213
214  Drupal.AjaxError.prototype = new Error();
215  Drupal.AjaxError.prototype.constructor = Drupal.AjaxError;
216
217  Drupal.ajax = function (settings) {
218    if (arguments.length !== 1) {
219      throw new Error('Drupal.ajax() function must be called with one configuration object only');
220    }
221
222    var base = settings.base || false;
223    var element = settings.element || false;
224    delete settings.base;
225    delete settings.element;
226
227    if (!settings.progress && !element) {
228      settings.progress = false;
229    }
230
231    var ajax = new Drupal.Ajax(base, element, settings);
232    ajax.instanceIndex = Drupal.ajax.instances.length;
233    Drupal.ajax.instances.push(ajax);
234
235    return ajax;
236  };
237
238  Drupal.ajax.instances = [];
239
240  Drupal.ajax.expired = function () {
241    return Drupal.ajax.instances.filter(function (instance) {
242      return instance && instance.element !== false && !document.body.contains(instance.element);
243    });
244  };
245
246  Drupal.ajax.bindAjaxLinks = function (element) {
247    $(element).find('.use-ajax').once('ajax').each(function (i, ajaxLink) {
248      var $linkElement = $(ajaxLink);
249
250      var elementSettings = {
251        progress: { type: 'throbber' },
252        dialogType: $linkElement.data('dialog-type'),
253        dialog: $linkElement.data('dialog-options'),
254        dialogRenderer: $linkElement.data('dialog-renderer'),
255        base: $linkElement.attr('id'),
256        element: ajaxLink
257      };
258      var href = $linkElement.attr('href');
259
260      if (href) {
261        elementSettings.url = href;
262        elementSettings.event = 'click';
263      }
264      Drupal.ajax(elementSettings);
265    });
266  };
267
268  Drupal.Ajax = function (base, element, elementSettings) {
269    var defaults = {
270      event: element ? 'mousedown' : null,
271      keypress: true,
272      selector: base ? '#' + base : null,
273      effect: 'none',
274      speed: 'none',
275      method: 'replaceWith',
276      progress: {
277        type: 'throbber',
278        message: Drupal.t('Please wait...')
279      },
280      submit: {
281        js: true
282      }
283    };
284
285    $.extend(this, defaults, elementSettings);
286
287    this.commands = new Drupal.AjaxCommands();
288
289    this.instanceIndex = false;
290
291    if (this.wrapper) {
292      this.wrapper = '#' + this.wrapper;
293    }
294
295    this.element = element;
296
297    this.element_settings = elementSettings;
298
299    this.elementSettings = elementSettings;
300
301    if (this.element && this.element.form) {
302      this.$form = $(this.element.form);
303    }
304
305    if (!this.url) {
306      var $element = $(this.element);
307      if ($element.is('a')) {
308        this.url = $element.attr('href');
309      } else if (this.element && element.form) {
310        this.url = this.$form.attr('action');
311      }
312    }
313
314    var originalUrl = this.url;
315
316    this.url = this.url.replace(/\/nojs(\/|$|\?|#)/, '/ajax$1');
317
318    if (drupalSettings.ajaxTrustedUrl[originalUrl]) {
319      drupalSettings.ajaxTrustedUrl[this.url] = true;
320    }
321
322    var ajax = this;
323
324    ajax.options = {
325      url: ajax.url,
326      data: ajax.submit,
327      beforeSerialize: function beforeSerialize(elementSettings, options) {
328        return ajax.beforeSerialize(elementSettings, options);
329      },
330      beforeSubmit: function beforeSubmit(formValues, elementSettings, options) {
331        ajax.ajaxing = true;
332        return ajax.beforeSubmit(formValues, elementSettings, options);
333      },
334      beforeSend: function beforeSend(xmlhttprequest, options) {
335        ajax.ajaxing = true;
336        return ajax.beforeSend(xmlhttprequest, options);
337      },
338      success: function success(response, status, xmlhttprequest) {
339        if (typeof response === 'string') {
340          response = $.parseJSON(response);
341        }
342
343        if (response !== null && !drupalSettings.ajaxTrustedUrl[ajax.url]) {
344          if (xmlhttprequest.getResponseHeader('X-Drupal-Ajax-Token') !== '1') {
345            var customMessage = Drupal.t('The response failed verification so will not be processed.');
346            return ajax.error(xmlhttprequest, ajax.url, customMessage);
347          }
348        }
349
350        return ajax.success(response, status);
351      },
352      complete: function complete(xmlhttprequest, status) {
353        ajax.ajaxing = false;
354        if (status === 'error' || status === 'parsererror') {
355          return ajax.error(xmlhttprequest, ajax.url);
356        }
357      },
358
359      dataType: 'json',
360      jsonp: false,
361      type: 'POST'
362    };
363
364    if (elementSettings.dialog) {
365      ajax.options.data.dialogOptions = elementSettings.dialog;
366    }
367
368    if (ajax.options.url.indexOf('?') === -1) {
369      ajax.options.url += '?';
370    } else {
371      ajax.options.url += '&';
372    }
373
374    var wrapper = 'drupal_' + (elementSettings.dialogType || 'ajax');
375    if (elementSettings.dialogRenderer) {
376      wrapper += '.' + elementSettings.dialogRenderer;
377    }
378    ajax.options.url += Drupal.ajax.WRAPPER_FORMAT + '=' + wrapper;
379
380    $(ajax.element).on(elementSettings.event, function (event) {
381      if (!drupalSettings.ajaxTrustedUrl[ajax.url] && !Drupal.url.isLocal(ajax.url)) {
382        throw new Error(Drupal.t('The callback URL is not local and not trusted: !url', {
383          '!url': ajax.url
384        }));
385      }
386      return ajax.eventResponse(this, event);
387    });
388
389    if (elementSettings.keypress) {
390      $(ajax.element).on('keypress', function (event) {
391        return ajax.keypressResponse(this, event);
392      });
393    }
394
395    if (elementSettings.prevent) {
396      $(ajax.element).on(elementSettings.prevent, false);
397    }
398  };
399
400  Drupal.ajax.WRAPPER_FORMAT = '_wrapper_format';
401
402  Drupal.Ajax.AJAX_REQUEST_PARAMETER = '_drupal_ajax';
403
404  Drupal.Ajax.prototype.execute = function () {
405    if (this.ajaxing) {
406      return;
407    }
408
409    try {
410      this.beforeSerialize(this.element, this.options);
411
412      return $.ajax(this.options);
413    } catch (e) {
414      this.ajaxing = false;
415      window.alert('An error occurred while attempting to process ' + this.options.url + ': ' + e.message);
416
417      return $.Deferred().reject();
418    }
419  };
420
421  Drupal.Ajax.prototype.keypressResponse = function (element, event) {
422    var ajax = this;
423
424    if (event.which === 13 || event.which === 32 && element.type !== 'text' && element.type !== 'textarea' && element.type !== 'tel' && element.type !== 'number') {
425      event.preventDefault();
426      event.stopPropagation();
427      $(element).trigger(ajax.elementSettings.event);
428    }
429  };
430
431  Drupal.Ajax.prototype.eventResponse = function (element, event) {
432    event.preventDefault();
433    event.stopPropagation();
434
435    var ajax = this;
436
437    if (ajax.ajaxing) {
438      return;
439    }
440
441    try {
442      if (ajax.$form) {
443        if (ajax.setClick) {
444          element.form.clk = element;
445        }
446
447        ajax.$form.ajaxSubmit(ajax.options);
448      } else {
449        ajax.beforeSerialize(ajax.element, ajax.options);
450        $.ajax(ajax.options);
451      }
452    } catch (e) {
453      ajax.ajaxing = false;
454      window.alert('An error occurred while attempting to process ' + ajax.options.url + ': ' + e.message);
455    }
456  };
457
458  Drupal.Ajax.prototype.beforeSerialize = function (element, options) {
459    if (this.$form && document.body.contains(this.$form.get(0))) {
460      var settings = this.settings || drupalSettings;
461      Drupal.detachBehaviors(this.$form.get(0), settings, 'serialize');
462    }
463
464    options.data[Drupal.Ajax.AJAX_REQUEST_PARAMETER] = 1;
465
466    var pageState = drupalSettings.ajaxPageState;
467    options.data['ajax_page_state[theme]'] = pageState.theme;
468    options.data['ajax_page_state[theme_token]'] = pageState.theme_token;
469    options.data['ajax_page_state[libraries]'] = pageState.libraries;
470  };
471
472  Drupal.Ajax.prototype.beforeSubmit = function (formValues, element, options) {};
473
474  Drupal.Ajax.prototype.beforeSend = function (xmlhttprequest, options) {
475    if (this.$form) {
476      options.extraData = options.extraData || {};
477
478      options.extraData.ajax_iframe_upload = '1';
479
480      var v = $.fieldValue(this.element);
481      if (v !== null) {
482        options.extraData[this.element.name] = v;
483      }
484    }
485
486    $(this.element).prop('disabled', true);
487
488    if (!this.progress || !this.progress.type) {
489      return;
490    }
491
492    var progressIndicatorMethod = 'setProgressIndicator' + this.progress.type.slice(0, 1).toUpperCase() + this.progress.type.slice(1).toLowerCase();
493    if (progressIndicatorMethod in this && typeof this[progressIndicatorMethod] === 'function') {
494      this[progressIndicatorMethod].call(this);
495    }
496  };
497
498  Drupal.theme.ajaxProgressThrobber = function (message) {
499    var messageMarkup = typeof message === 'string' ? Drupal.theme('ajaxProgressMessage', message) : '';
500    var throbber = '<div class="throbber">&nbsp;</div>';
501
502    return '<div class="ajax-progress ajax-progress-throbber">' + throbber + messageMarkup + '</div>';
503  };
504
505  Drupal.theme.ajaxProgressIndicatorFullscreen = function () {
506    return '<div class="ajax-progress ajax-progress-fullscreen">&nbsp;</div>';
507  };
508
509  Drupal.theme.ajaxProgressMessage = function (message) {
510    return '<div class="message">' + message + '</div>';
511  };
512
513  Drupal.theme.ajaxProgressBar = function ($element) {
514    return $('<div class="ajax-progress ajax-progress-bar"></div>').append($element);
515  };
516
517  Drupal.Ajax.prototype.setProgressIndicatorBar = function () {
518    var progressBar = new Drupal.ProgressBar('ajax-progress-' + this.element.i
518d, $.noop, this.progress.method, $.noop);
519    if (this.progress.message) {
520      progressBar.setProgress(-1, this.progress.message);
521    }
522    if (this.progress.url) {
523      progressBar.startMonitoring(this.progress.url, this.progress.interval || 1500);
524    }
525    this.progress.element = $(Drupal.theme('ajaxProgressBar', progressBar.element));
526    this.progress.object = progressBar;
527    $(this.element).after(this.progress.element);
528  };
529
530  Drupal.Ajax.prototype.setProgressIndicatorThrobber = function () {
531    this.progress.element = $(Drupal.theme('ajaxProgressThrobber', this.progress.message));
532    $(this.element).after(this.progress.element);
533  };
534
535  Drupal.Ajax.prototype.setProgressIndicatorFullscreen = function () {
536    this.progress.element = $(Drupal.theme('ajaxProgressIndicatorFullscreen'));
537    $('body').append(this.progress.element);
538  };
539
540  Drupal.Ajax.prototype.success = function (response, status) {
541    var _this = this;
542
543    if (this.progress.element) {
544      $(this.progress.element).remove();
545    }
546    if (this.progress.object) {
547      this.progress.object.stopMonitoring();
548    }
549    $(this.element).prop('disabled', false);
550
551    var elementParents = $(this.element).parents('[data-drupal-selector]').addBack().toArray();
552
553    var focusChanged = false;
554    Object.keys(response || {}).forEach(function (i) {
555      if (response[i].command && _this.commands[response[i].command]) {
556        _this.commands[response[i].command](_this, response[i], status);
557        if (response[i].command === 'invoke' && response[i].method === 'focus') {
558          focusChanged = true;
559        }
560      }
561    });
562
563    if (!focusChanged && this.element && !$(this.element).data('disable-refocus')) {
564      var target = false;
565
566      for (var n = elementParents.length - 1; !target && n >= 0; n--) {
567        target = document.querySelector('[data-drupal-selector="' + elementParents[n].getAttribute('data-drupal-selector') + '"]');
568      }
569
570      if (target) {
571        $(target).trigger('focus');
572      }
573    }
574
575    if (this.$form && document.body.contains(this.$form.get(0))) {
576      var settings = this.settings || drupalSettings;
577      Drupal.attachBehaviors(this.$form.get(0), settings);
578    }
579
580    this.settings = null;
581  };
582
583  Drupal.Ajax.prototype.getEffect = function (response) {
584    var type = response.effect || this.effect;
585    var speed = response.speed || this.speed;
586
587    var effect = {};
588    if (type === 'none') {
589      effect.showEffect = 'show';
590      effect.hideEffect = 'hide';
591      effect.showSpeed = '';
592    } else if (type === 'fade') {
593      effect.showEffect = 'fadeIn';
594      effect.hideEffect = 'fadeOut';
595      effect.showSpeed = speed;
596    } else {
597      effect.showEffect = type + 'Toggle';
598      effect.hideEffect = type + 'Toggle';
599      effect.showSpeed = speed;
600    }
601
602    return effect;
603  };
604
605  Drupal.Ajax.prototype.error = function (xmlhttprequest, uri, customMessage) {
606    if (this.progress.element) {
607      $(this.progress.element).remove();
608    }
609    if (this.progress.object) {
610      this.progress.object.stopMonitoring();
611    }
612
613    $(this.wrapper).show();
614
615    $(this.element).prop('disabled', false);
616
617    if (this.$form && document.body.contains(this.$form.get(0))) {
618      var settings = this.settings || drupalSettings;
619      Drupal.attachBehaviors(this.$form.get(0), settings);
620    }
621    throw new Drupal.AjaxError(xmlhttprequest, uri, customMessage);
622  };
623
624  Drupal.theme.ajaxWrapperNewContent = function ($newContent, ajax, response) {
625    return (response.effect || ajax.effect) !== 'none' && $newContent.filter(function (i) {
626      return !($newContent[i].nodeName === '#comment' || $newContent[i].nodeName === '#text' && /^(\s|\n|\r)*$/.test($newContent[i].textContent));
627    }).length > 1 ? Drupal.theme('ajaxWrapperMultipleRootElements', $newContent) : $newContent;
628  };
629
630  Drupal.theme.ajaxWrapperMultipleRootElements = function ($elements) {
631    return $('<div></div>').append($elements);
632  };
633
634  Drupal.AjaxCommands = function () {};
635  Drupal.AjaxCommands.prototype = {
636    insert: function insert(ajax, response) {
637      var $wrapper = response.selector ? $(response.selector) : $(ajax.wrapper);
638      var method = response.method || ajax.method;
639      var effect = ajax.getEffect(response);
640
641      var settings = response.settings || ajax.settings || drupalSettings;
642
643      var $newContent = $($.parseHTML(response.data, document, true));
644
645      $newContent = Drupal.theme('ajaxWrapperNewContent', $newContent, ajax, response);
646
647      switch (method) {
648        case 'html':
649        case 'replaceWith':
650        case 'replaceAll':
651        case 'empty':
652        case 'remove':
653          Drupal.detachBehaviors($wrapper.get(0), settings);
654          break;
655        default:
656          break;
657      }
658
659      $wrapper[method]($newContent);
660
661      if (effect.showEffect !== 'show') {
662        $newContent.hide();
663      }
664
665      var $ajaxNewContent = $newContent.find('.ajax-new-content');
666      if ($ajaxNewContent.length) {
667        $ajaxNewContent.hide();
668        $newContent.show();
669        $ajaxNewContent[effect.showEffect](effect.showSpeed);
670      } else if (effect.showEffect !== 'show') {
671        $newContent[effect.showEffect](effect.showSpeed);
672      }
673
674      if ($newContent.parents('html').length) {
675        $newContent.each(function (index, element) {
676          if (element.nodeType === Node.ELEMENT_NODE) {
677            Drupal.attachBehaviors(element, settings);
678          }
679        });
680      }
681    },
682    remove: function remove(ajax, response, status) {
683      var settings = response.settings || ajax.settings || drupalSettings;
684      $(response.selector).each(function () {
685        Drupal.detachBehaviors(this, settings);
686      }).remove();
687    },
688    changed: function changed(ajax, response, status) {
689      var $element = $(response.selector);
690      if (!$element.hasClass('ajax-changed')) {
691        $element.addClass('ajax-changed');
692        if (response.asterisk) {
693          $element.find(response.asterisk).append(' <abbr class="ajax-changed" title="' + Drupal.t('Changed') + '">*</abbr> ');
694        }
695      }
696    },
697    alert: function alert(ajax, response, status) {
698      window.alert(response.text, response.title);
699    },
700    announce: function announce(ajax, response) {
701      if (response.priority) {
702        Drupal.announce(response.text, response.priority);
703      } else {
704        Drupal.announce(response.text);
705      }
706    },
707    redirect: function redirect(ajax, response, status) {
708      window.location = response.url;
709    },
710    css: function css(ajax, response, status) {
711      $(response.selector).css(response.argument);
712    },
713    settings: function settings(ajax, response, status) {
714      var ajaxSettings = drupalSettings.ajax;
715
716      if (ajaxSettings) {
717        Drupal.ajax.expired().forEach(function (instance) {
718
719          if (instance.selector) {
720            var selector = instance.selector.replace('#', '');
721            if (selector in ajaxSettings) {
722              delete ajaxSettings[selector];
723            }
724          }
725        });
726      }
727
728      if (response.merge) {
729        $.extend(true, drupalSettings, response.settings);
730      } else {
731        ajax.settings = response.settings;
732      }
733    },
734    data: function data(ajax, response, status) {
735      $(response.selector).data(response.name, response.value);
736    },
737    invoke: function invoke(ajax, response, status) {
738      var $element = $(response.selector);
739      $element[response.method].apply($element, _toConsumableArray(response.args));
740    },
741    restripe: function restripe(ajax, response, status) {
742      $(response.selector).find('> tbody > tr:visible, > tr:visible').removeClass('odd even').filter(':even').addClass('odd').end().filter(':odd').addClass('even');
743    },
744    update_build_id: function update_build_id(ajax, response, status) {
745      $('input[name="form_build_id"][value="' + response.old + '"]').val(response.new);
746    },
747    add_css: function add_css(ajax, response, status) {
748      $('head').prepend(response.data);
749    },
750    message: function message(ajax, response) {
751      var messages = new Drupal.Message(document.querySelector(response.messageWrapperQuerySelector));
752      if (response.clearPrevious) {
753        messages.clear();
754      }
755      messages.add(response.message, response.messageOptions);
756    }
757  };
758})(jQuery, window, Drupal, drupalSettings);;
759(function ($, window, Drupal) {
760  'use strict';
761
762  var originalAjaxBeforeSend = Drupal.Ajax.prototype.beforeSend;
763
764  /**
765   * Prepare the Ajax request before it is sent.
766   *
767   * @param {XMLHttpRequest} xmlhttprequest
768   * @param {object} options
769   * @param {object} options.extraData
770   */
771  Drupal.Ajax.prototype.beforeSend = function (xmlhttprequest, options) {
772    var $element = $(this.element);
773
774    // Check for a data attribute to override the progress type.
775    if ($element.data('progress-type')) {
776      this.progress.type = $element.data('progress-type');
777    }
778
779    // Force fullscreen progress indicator for 'throbber' and 'bar' types.
780    if (this.progress && this.progress.type && ['throbber', 'bar'].includes(this.progress.type)) {
781      this.progress.type = 'fullscreen';
782    }
783
784    // Call the original beforeSend method.
785    originalAjaxBeforeSend.apply(this, arguments);
786  };
787
788  /**
789   * Theme function for a fullscreen progress indicator.
790   * @param message
791   * @returns {*|jQuery|HTMLElement}
792   */
793  Drupal.theme.ajaxProgressIndicatorForm = function (message) {
794    var messageMarkup = typeof message === 'string' ? Drupal.theme('ajaxProgressMessage', message) : '';
795    var throbber = '<div class="throbber">&nbsp;</div>';
796
797    return '<div class="ajax-progress ajax-progress-form">' + throbber + messageMarkup + '</div>';
798  };
799
800  /**
801   * Theme function for a fullscreen progress indicator.
802   * @param message
803   * @returns {*|jQuery|HTMLElement}
804   */
805  Drupal.theme.ajaxProgressIndicatorFullscreen = function (message) {
806    var messageMarkup = typeof message === 'string' ? Drupal.theme('ajaxProgressMessage', message) : '';
807    var throbber = '<div class="throbber">&nbsp;</div>';
808
809    return '<div class="ajax-progress ajax-progress-fullscreen">' + throbber + messageMarkup + '</div>';
810  };
811
812  Drupal.Ajax.prototype.setProgressIndicatorFullscreen = function () {
813    var message = this.progress.message || Drupal.t('Loading...');
814    this.progress.element = $(Drupal.theme('ajaxProgressIndicatorFullscreen', message));
815    $('body').append(this.progress.element);
816  };
817
818  /**
819   * Sets the form progress indicator.
820   */
821  Drupal.Ajax.prototype.setProgressIndicatorForm = function () {
822    this.$form.find('input, select, textarea, button').attr('disabled', 'disabled');
823    this.$form.find('.form-item').addClass('form-disabled');
824    this.setProgressIndicatorFullscreen();
825  };
826
827})(jQuery, this, Drupal);
828;
829/**
830* DO NOT EDIT THIS FILE.
831* See the following change record for more information,
832* https://www.drupal.org/node/2815083
833* @preserve
834**/
835
836(function ($, Drupal) {
837  Drupal.behaviors.dialog = {
838    attach: function attach(context, settings) {
839      var $context = $(context);
840
841      if (!$('#drupal-modal').length) {
842        $('<div id="drupal-modal" class="ui-front"></div>').hide().appendTo('body');
843      }
844
845      var $dialog = $context.closest('.ui-dialog-content');
846      if ($dialog.length) {
847        if ($dialog.dialog('option', 'drupalAutoButtons')) {
848          $dialog.trigger('dialogButtonsChange');
849        }
850
851        $dialog.dialog('widget').trigger('focus');
852      }
853
854      var originalClose = settings.dialog.close;
855
856      settings.dialog.close = function (event) {
857        for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
858          args[_key - 1] = arguments[_key];
859        }
860
861        originalClose.apply(settings.dialog, [event].concat(args));
862        $(event.target).remove();
863      };
864    },
865    prepareDialogButtons: function prepareDialogButtons($dialog) {
866      var buttons = [];
867      var $buttons = $dialog.find('.form-actions input[type=submit], .form-actions a.button');
868      $buttons.each(function () {
869        var $originalButton = $(this).css({ display: 'none' });
870        buttons.push({
871          text: $originalButton.html() || $originalButton.attr('value'),
872          class: $originalButton.attr('class'),
873          click: function click(e) {
874            if ($originalButton.is('a')) {
875              $originalButton[0].click();
876            } else {
877              $originalButton.trigger('mousedown').trigger('mouseup').trigger('click');
878              e.preventDefault();
879            }
880          }
881        });
882      });
883      return buttons;
884    }
885  };
886
887  Drupal.AjaxCommands.prototype.openDialog = function (ajax, response, status) {
888    if (!response.selector) {
889      return false;
890    }
891    var $dialog = $(response.selector);
892    if (!$dialog.length) {
893      $dialog = $('<div id="' + response.selector.replace(/^#/, '') + '" class="ui-front"></div>').appendTo('body');
894    }
895
896    if (!ajax.wrapper) {
897      ajax.wrapper = $dialog.attr('id');
898    }
899
900    response.command = 'insert';
901    response.method = 'html';
902    ajax.commands.insert(ajax, response, status);
903
904    if (!response.dialogOptions.buttons) {
905      response.dialogOptions.drupalAutoButtons = true;
906      response.dialogOptions.buttons = Drupal.behaviors.dialog.prepareDialogButtons($dialog);
907    }
908
909    $dialog.on('dialogButtonsChange', function () {
910      var buttons = Drupal.behaviors.dialog.prepareDialogButtons($dialog);
911      $dialog.dialog('option', 'buttons', buttons);
912    });
913
914    response.dialogOptions = response.dialogOptions || {};
915    var dialog = Drupal.dialog($dialog.get(0), response.dialogOptions);
916    if (response.dialogOptions.modal) {
917      dialog.showModal();
918    } else {
919      dialog.show();
920    }
921
922    $dialog.parent().find('.ui-dialog-buttonset').addClass('form-actions');
923  };
924
925  Drupal.AjaxCommands.prototype.closeDialog = function (ajax, response, status) {
926    var $dialog = $(response.selector);
927    if ($dialog.length) {
928      Drupal.dialog($dialog.get(0)).close();
929      if (!response.persist) {
930        $dialog.remove();
931      }
932    }
933
934    $dialog.off('dialogButtonsChange');
935  };
936
937  Drupal.AjaxCommands.prototype.setDialogOption = function (ajax, response, status) {
938    var $dialog = $(response.selector);
939    if ($dialog.length) {
940      $dialog.dialog('option', response.optionName, response.optionValue);
941    }
942  };
943
944  $(window).on('dialog:aftercreate', function (e, dialog, $element, settings) {
945    $element.on('click.dialog', '.dialog-cancel', function (e) {
946      dialog.close('cancel');
947      e.preventDefault();
948      e.stopPropagation();
949    });
950  });
951
952  $(window).on('dialog:beforeclose', function (e, dialog, $element) {
953    $element.off('.dialog');
954  });
955})(jQuery, Drupal);;
956(function ($, Drupal) {
957  Drupal.behaviors.dialog.prepareDialogButtons = function prepareDialogButtons($dialog) {
958    var buttons = [];
959    var $buttons = $dialog.find('.form-actions input[type=submit], .form-actions button, .form-actions a.button');
960
961    $buttons.each(function () {
962      var $originalButton = $(this).css({ display: 'none' });
963
964      if (!$originalButton.hasClass('btn')) {
965        $originalButton.addClass('btn', 'btn-link');
966      }
967
968      if ($originalButton.is(':disabled')) {
969        $originalButton.addClass('disabled');
970      }
971
972      buttons.push({
973        text: $originalButton.html() || $originalButton.attr('value'),
974        class: $originalButton.attr('class'),
975        click: function click(e) {
976          if ($originalButton.is('a')) {
977            $originalButton[0].click();
978          } else {
979            $originalButton.trigger('mousedown').trigger('mouseup').trigger('click');
980            e.preventDefault();
981          }
982        }
983      });
984    });
985    return buttons;
986  }
987})(jQuery, Drupal);
988;
989/**
990 * @file
991 * JavaScript behaviors to fix jQuery UI dialogs.
992 */
993
994(function ($, Drupal) {
995
996  'use strict';
997
998  /**
999   * Ensure that ckeditor has focus when displayed inside of jquery-ui dialog widget
1000   *
1001   * @see http://stackoverflow.com/questions/20533487/how-to-ensure-that-ckeditor-has-focus-when-displayed-inside-of-jquery-ui-dialog
1002   */
1003  var _allowInteraction = $.ui.dialog.prototype._allowInteraction;
1004  $.ui.dialog.prototype._allowInteraction = function (event) {
1005    if ($(event.target).closest('.cke_dialog').length) {
1006      return true;
1007    }
1008    return _allowInteraction.apply(this, arguments);
1009  };
1010
1011  /**
1012   * Attaches webform dialog behaviors.
1013   *
1014   * @type {Drupal~behavior}
1015   *
1016   * @prop {Drupal~behaviorAttach} attach
1017   *   Attaches event listeners for webform dialogs.
1018   */
1019  Drupal.behaviors.webformDialogEvents = {
1020    attach: function () {
1021      $(window).once('webform-dialog').on({
1022        'dialog:aftercreate': function (event, dialog, $element, settings) {
1023          setTimeout(function () {
1024            var hasFocus = $element.find('[autofocus]:tabbable');
1025            if (!hasFocus.length) {
1026              // Move focus to first input which is not a button.
1027              hasFocus = $element.find(':input:tabbable:not(:button)');
1028            }
1029            if (!hasFocus.length) {
1030              // Move focus to close dialog button.
1031              hasFocus = $element.parent().find('.ui-dialog-titlebar-close');
1032            }
1033            hasFocus.eq(0).trigger('focus');
1034          });
1035        }
1036      });
1037    }
1038  };
1039
1040})(jQuery, Drupal);
1041;
1042/**
1043 * @file
1044 * JavaScript behaviors for webform dialogs.
1045 */
1046
1047(function ($, Drupal, drupalSettings) {
1048
1049  'use strict';
1050
1051  // @see http://api.jqueryui.com/dialog/
1052  Drupal.webform = Drupal.webform || {};
1053  Drupal.webform.dialog = Drupal.webform.dialog || {};
1054  Drupal.webform.dialog.options = Drupal.webform.dialog.options || {};
1055
1056  /**
1057   * Programmatically open a webform (or page) in a dialog.
1058   *
1059   * @param {string} url
1060   *   Webform URL.
1061   * @param {string} type
1062   *   Webform dialog type defined via /admin/structure/webform/config.
1063   */
1064  Drupal.webformOpenDialog = function (url, type) {
1065    // Create a div with link but don't attach it to the page.
1066    var $div = $('<div><a href="' + url + '" class="webform-dialog ' + type + '"></a></div>');
1067    // Init the webform dialog behavior.
1068    Drupal.behaviors.webformDialog.attach($div);
1069    // Trigger the link.
1070    $div.find('a').trigger('click');
1071  };
1072
1073  /**
1074   * Open webform dialog using preset options.
1075   *
1076   * @type {Drupal~behavior}
1077   */
1078  Drupal.behaviors.webformDialog = {
1079    attach: function (context) {
1080      $('a.webform-dialog', context).once('webform-dialog').each(function () {
1081        var $a = $(this);
1082
1083        // Get default options.
1084        var options = $.extend({}, Drupal.webform.dialog.options);
1085
1086        // Get preset dialog options.
1087        if ($a.attr('class').match(/webform-dialog-([a-z0-9_]+)/)) {
1088          var dialogOptionsName = RegExp.$1;
1089          if (drupalSettings.webform.dialog.options[dialogOptionsName]) {
1090            options = drupalSettings.webform.dialog.options[dialogOptionsName];
1091
1092            // Unset title.
1093            delete options.title;
1094          }
1095        }
1096
1097        // Get custom dialog options.
1098        if ($(this).data('dialog-options')) {
1099          $.extend(options, $(this).data('dialog-options'));
1100        }
1101
1102        var href = $a.attr('href');
1103
1104        // Replace ENTITY_TYPE and ENTITY_ID placeholders and update the href.
1105        // @see webform_page_attachments()
1106        if (href.indexOf('?source_entity_type=ENTITY_TYPE&source_entity_id=ENTITY_ID') !== -1) {
1107          if (drupalSettings.webform.dialog.entity_type && drupalSettings.webform.dialog.entity_id) {
1108            href = href.replace('ENTITY_TYPE', encodeURIComponent(drupalSettings.webform.dialog.entity_type));
1109            href = href.replace('ENTITY_ID', encodeURIComponent(drupalSettings.webform.dialog.entity_id));
1110          }
1111          else {
1112            href = href.replace('?source_entity_type=ENTITY_TYPE&source_entity_id=ENTITY_ID', '');
1113          }
1114          $a.attr('href', href);
1115        }
1116
1117        // Append _webform_dialog=1 to href to trigger Ajax support.
1118        // @see \Drupal\webform\WebformSubmissionForm::setEntity
1119        href += (href.indexOf('?') === -1 ? '?' : '&') + '_webform_dialog=1';
1120
1121        var element_settings = {};
1122        element_settings.progress = {type: 'fullscreen'};
1123        element_settings.url = href;
1124        element_settings.event = 'click';
1125        element_settings.dialogType = $a.data('dialog-type') || 'modal';
1126        element_settings.dialog = options;
1127        element_settings.element = this;
1128        element_settings.error = function error(xmlhttp, uri) {
1129          if (xmlhttp.status === 403) {
1130            window.location.replace(href.split('?')[0]);
1131          }
1132        };
1133        Drupal.ajax(element_settings);
1134      });
1135    }
1136  };
1137
1138})(jQuery, Drupal, drupalSettings);
1139;
1140/**
1141 * @file
1142 * External links js file.
1143 */
1144
1145(function ($, Drupal, drupalSettings) {
1146
1147  'use strict';
1148
1149  Drupal.extlink = Drupal.extlink || {};
1150
1151  Drupal.extlink.attach = function (context, drupalSettings) {
1152    if (typeof drupalSettings.data === 'undefined' || !drupalSettings.data.hasOwnProperty('extlink')) {
1153      return;
1154    }
1155
1156    // Define the jQuery method (either 'append' or 'prepend') of placing the
1157    // icon, defaults to 'append'.
1158    var extIconPlacement = 'append';
1159    if (drupalSettings.data.extlink.extIconPlacement && drupalSettings.data.extlink.extIconPlacement != '0') {
1160          extIconPlacement = drupalSettings.data.extlink.extIconPlacement;
1161        }
1162
1163    // Strip the host name down, removing ports, subdomains, or www.
1164    var pattern = /^(([^\/:]+?\.)*)([^\.:]{1,})((\.[a-z0-9]{1,253})*)(:[0-9]{1,5})?$/;
1165    var host = window.location.host.replace(pattern, '$2$3$6');
1166    var subdomain = window.location.host.replace(host, '');
1167
1168    // Determine what subdomains are considered internal.
1169    var subdomains;
1170    if (drupalSettings.data.extlink.extSubdomains) {
1171      subdomains = '([^/]*\\.)?';
1172    }
1173    else if (subdomain === 'www.' || subdomain === '') {
1174      subdomains = '(www\\.)?';
1175    }
1176    else {
1177      subdomains = subdomain.replace('.', '\\.');
1178    }
1179
1180    // Whitelisted domains.
1181    var whitelistedDomains = false;
1182    if (drupalSettings.data.extlink.whitelistedDomains) {
1183      whitelistedDomains = [];
1184      for (var i = 0; i < drupalSettings.data.extlink.whitelistedDomains.length; i++) {
1185        whitelistedDomains.push(new RegExp('^https?:\\/\\/' + drupalSettings.data.extlink.whitelistedDomains[i].replace(/(\r\n|\n|\r)/gm,'') + '.*$', 'i'));
1186      }
1187    }
1188
1189    // Build regular expressions that define an internal link.
1190    var internal_link = new RegExp('^https?://([^@]*@)?' + subdomains + host, 'i');
1191
1192    // Extra internal link matching.
1193    var extInclude = false;
1194    if (drupalSettings.data.extlink.extInclude) {
1195      extInclude = new RegExp(drupalSettings.data.extlink.extInclude.replace(/\\/, '\\'), 'i');
1196    }
1197
1198    // Extra external link matching.
1199    var extExclude = false;
1200    if (drupalSettings.data.extlink.extExclude) {
1201      extExclude = new RegExp(drupalSettings.data.extlink.extExclude.replace(/\\/, '\\'), 'i');
1202    }
1203
1204    // Extra external link CSS selector exclusion.
1205    var extCssExclude = false;
1206    if (drupalSettings.data.extlink.extCssExclude) {
1207      extCssExclude = drupalSettings.data.extlink.extCssExclude;
1208    }
1209
1210    // Extra external link CSS selector explicit.
1211    var extCssExplicit = false;
1212    if (drupalSettings.data.extlink.extCssExplicit) {
1213      extCssExplicit = drupalSettings.data.extlink.extCssExplicit;
1214    }
1215
1216    // Find all links which are NOT internal and begin with http as opposed
1217    // to ftp://, javascript:, etc. other kinds of links.
1218    // When operating on the 'this' variable, the host has been appended to
1219    // all links by the browser, even local ones.
1220    // In jQuery 1.1 and higher, we'd use a filter method here, but it is not
1221    // available in jQuery 1.0 (Drupal 5 default).
1222    var external_links = [];
1223    var mailto_links = [];
1224    $('a:not([data-extlink]), area:not([data-extlink])', context).each(function (el) {
1225      try {
1226        var url = '';
1227        if (typeof this.href == 'string') {
1228          url = this.href.toLowerCase();
1229        }
1230        // Handle SVG links (xlink:href).
1231        else if (typeof this.href == 'object') {
1232          url = this.href.baseVal;
1233        }
1234        if (url.indexOf('http') === 0
1235          && ((!internal_link.test(url) && !(extExclude && extExclude.test(url))) || (extInclude && extInclude.test(url)))
1236          && !(extCssExclude && $(this).is(extCssExclude))
1237          && !(extCssExclude && $(this).parents(extCssExclude).length > 0)
1238          && !(extCssExplicit && $(this).parents(extCssExplicit).length < 1)) {
1239          var match = false;
1240          if (whitelistedDomains) {
1241            for (var i = 0; i < whitelistedDomains.length; i++) {
1242              if (whitelistedDomains[i].test(url)) {
1243                match = true;
1244                break;
1245              }
1246            }
1247          }
1248          if (!match) {
1249            external_links.push(this);
1250          }
1251        }
1252        // Do not include area tags with begin with mailto: (this prohibits
1253        // icons from being added to image-maps).
1254        else if (this.tagName !== 'AREA'
1255          && url.indexOf('mailto:') === 0
1256          && !(extCssExclude && $(this).parents(extCssExclude).length > 0)
1257          && !(extCssExplicit && $(this).parents(extCssExplicit).length < 1)) {
1258          mailto_links.push(this);
1259        }
1260      }
1261      // IE7 throws errors often when dealing with irregular links, such as:
1262      // <a href="node/10"></a> Empty tags.
1263      // <a href="http://user:[email protected]">example</a> User:pass syntax.
1264      catch (error) {
1265        return false;
1266      }
1267    });
1268
1269    if (drupalSettings.data.extlink.extClass !== '0' && drupalSettings.data.extlink.extClass !== '') {
1270      Drupal.extlink.applyClassAndSpan(external_links, drupalSettings.data.extlink.extClass, extIconPlacement);
1271    }
1272
1273    if (drupalSettings.data.extlink.mailtoClass !== '0' && drupalSettings.data.extlink.mailtoClass !== '') {
1274      Drupal.extlink.applyClassAndSpan(mailto_links, drupalSettings.data.extlink.mailtoClass, extIconPlacement);
1275    }
1276
1277    if (drupalSettings.data.extlink.extTarget) {
1278      // Apply the target attribute to all links.
1279      $(external_links).filter(function () {
1280        // Filter out links with target set if option specified.
1281        return !(drupalSettings.data.extlink.extTargetNoOverride && $(this).is('a[target]'));
1282      }).attr({target: '_blank'});
1283
1284      // Add noopener rel attribute to combat phishing.
1285      $(external_links).attr('rel', function (i, val) {
1286        // If no rel attribute is present, create one with the value noopener.
1287        if (val === null || typeof val === 'undefined') {
1288          return 'noopener';
1289        }
1290        // Check to see if rel contains noopener. Add what doesn't exist.
1291        if (val.indexOf('noopener') > -1) {
1292          if (val.indexOf('noopener') === -1) {
1293            return val + ' noopener';
1294          }
1295          // Noopener exists. Nothing needs to be added.
1296          else {
1297            return val;
1298          }
1299        }
1300        // Else, append noopener to val.
1301        else {
1302          return val + ' noopener';
1303        }
1304      });
1305    }
1306
1307    if (drupalSettings.data.extlink.extNofollow) {
1308      $(external_links).attr('rel', function (i, val) {
1309        // When the link does not have a rel attribute set it to 'nofollow'.
1310        if (val === null || typeof val === 'undefined') {
1311          return 'nofollow';
1312        }
1313        var target = 'nofollow';
1314        // Change the target, if not overriding follow.
1315        if (drupalSettings.data.extlink.extFollowNoOverride) {
1316          target = 'follow';
1317        }
1318        if (val.indexOf(target) === -1) {
1319          return val + ' nofollow';
1320        }
1321        return val;
1322      });
1323    }
1324
1325    if (drupalSettings.data.extlink.extNoreferrer) {
1326      $(external_links).attr('rel', function (i, val) {
1327        // When the link does not have a rel attribute set it to 'noreferrer'.
1328        if (val === null || typeof val === 'undefined') {
1329          return 'noreferrer';
1330        }
1331        if (val.indexOf('noreferrer') === -1) {
1332          return val + ' noreferrer';
1333        }
1334        return val;
1335      });
1336    }
1337
1338    Drupal.extlink = Drupal.extlink || {};
1339
1340    // Set up default click function for the external links popup. This should be
1341    // overridden by modules wanting to alter the popup.
1342    Drupal.extlink.popupClickHandler = Drupal.extlink.popupClickHandler || function () {
1343      if (drupalSettings.data.extlink.extAlert) {
1344        return confirm(drupalSettings.data.extlink.extAlertText);
1345      }
1346    };
1347
1348    $(external_links).off("click.extlink");
1349    $(external_links).on("click.extlink", function (e) {
1350      return Drupal.extlink.popupClickHandler(e, this);
1351    });
1352  };
1353
1354  /**
1355   * Apply a class and a trailing <span> to all links not containing images.
1356   *
1357   * @param {object[]} links
1358   *   An array of DOM elements representing the links.
1359   * @param {string} class_name
1360   *   The class to apply to the links.
1361   * @param {string} icon_placement
1362   *   'append' or 'prepend' the icon to the link.
1363   */
1364  Drupal.extlink.applyClassAndSpan = function (links, class_name, icon_placement) {
1365    var $links_to_process;
1366    if (drupalSettings.data.extlink.extImgClass) {
1367      $links_to_process = $(links);
1368    }
1369    else {
1370      var links_with_images = $(links).find('img, svg').parents('a');
1371      $links_to_process = $(links).not(links_with_images);
1372    }
1373
1374    if (class_name !== '0') {
1375      $links_to_process.addClass(class_name);
1376    }
1377
1378    // Add data-extlink attribute.
1379    $links_to_process.attr('data-extlink', '');
1380
1381    var i;
1382    var length = $links_to_process.length;
1383    for (i = 0; i < length; i++) {
1384      var $link = $($links_to_process[i]);
1385      if (drupalSettings.data.extlink.extUseFontAwesome) {
1386        if (class_name === drupalSettings.data.extlink.mailtoClass) {
1387          $link[icon_placement]('<span class="fa-' + class_name + ' extlink"><span class="' + drupalSettings.data.extlink.extFaMailtoClasses + '" aria-label="' + drupalSettings.data.extlink.mailtoLabel + '"></span></span>');
1388        }
1389        else {
1390          $link[icon_placement]('<span class="fa-' + class_name + ' extlink"><span class="' + drupalSettings.data.extlink.extFaLinkClasses + '" aria-label="' + drupalSettings.data.extlink.extLabel + '"></span></span>');
1391        }
1392      }
1393      else {
1394        if (class_name === drupalSettings.data.extlink.mailtoClass) {
1395          $link[icon_placement]('<svg focusable="false" class="' + class_name + '" role="img" aria-label="' + drupalSettings.data.extlink.mailtoLabel + '" xmlns="http://www.w3.org/2000/svg" viewBox="0 10 70 20"><metadata><sfw xmlns="http://ns.adobe.com/SaveForWeb/1.0/"><sliceSourceBounds y="-8160" x="-8165" width="16389" height="16384" bottomLeftOrigin="true"/><optimizationSettings><targetSettings targetSettingsID="0" fileFormat="PNG24Format"><PNG24Format transparency="true" filtered="false" interlaced="false" noMatteColor="false" matteColor="#FFFFFF"/></targetSettings></optimizationSettings></sfw></metadata><title>' + drupalSettings.data.extlink.mailtoLabel + '</title><path d="M56 14H8c-1.1 0-2 0.9-2 2v32c0 1.1 0.9 2 2 2h48c1.1 0 2-0.9 2-2V16C58 14.9 57.1 14 56 14zM50.5 18L32 33.4 13.5 18H50.5zM10 46V20.3l20.7 17.3C31.1 37.8 31.5 38 32 38s0.9-0.2 1.3-0.5L54 20.3V46H10z"/></svg>');
1396        }
1397        else {
1398          $link[icon_placement]('<svg focusable="false" class="' + class_name + '" role="img" aria-label="' + drupalSettings.data.extlink.extLabel + '" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 40"><metadata><sfw xmlns="http://ns.adobe.com/SaveForWeb/1.0/"><sliceSourceBounds y="-8160" x="-8165" width="16389" height="16384" bottomLeftOrigin="true"/><optimizationSettings><targetSettings targetSettingsID="0" fileFormat="PNG24Format"><PNG24Format transparency="true" filtered="false" interlaced="false" noMatteColor="false" matteColor="#FFFFFF"/></targetSettings></optimizationSettings></sfw></metadata><title>' + drupalSettings.data.extlink.extLabel + '</title><path d="M48 26c-1.1 0-2 0.9-2 2v26H10V18h26c1.1 0 2-0.9 2-2s-0.9-2-2-2H8c-1.1 0-2 0.9-2 2v40c0 1.1 0.9 2 2 2h40c1.1 0 2-0.9 2-2V28C50 26.9 49.1 26 48 26z"/><path d="M56 6H44c-1.1 0-2 0.9-2 2s0.9 2 2 2h7.2L30.6 30.6c-0.8 0.8-0.8 2 0 2.8C31 33.8 31.5 34 32 34s1-0.2 1.4-0.6L54 12.8V20c0 1.1 0.9 2 2 2s2-0.9 2-2V8C58 6.9 57.1 6 56 6z"/></svg>');
1399        }
1400      }
1401    }
1402  };
1403
1404  Drupal.behaviors.extlink = Drupal.behaviors.extlink || {};
1405  Drupal.behaviors.extlink.attach = function (context, drupalSettings) {
1406    // Backwards compatibility, for the benefit of modules overriding extlink
1407    // functionality by defining an "extlinkAttach" global function.
1408    if (typeof extlinkAttach === 'function') {
1409      extlinkAttach(context);
1410    }
1411    else {
1412      Drupal.extlink.attach(context, drupalSettings);
1413    }
1414  };
1415
1416})(jQuery, Drupal, drupalSettings);
1417;
1418(function (settings) {
1419  if ('BrevoConversations' in window && 'brevo' in settings && 'user' in settings) {
1420    if (settings.user.type !== 'anonymous') {
1421      window.BrevoConversations('updateIntegrationData', {
1422        email: settings.user.email,
1423        firstName: settings.user.firstName,
1424        lastName: settings.user.lastName,
1425        phone: settings.user.phone,
1426        notes: null,
1427        'usertype': settings.user.type,
1428      });
1429    } else {
1430      window.BrevoConversations('updateIntegrationData', {
1431        email: null,
1432        firstName: null,
1433        lastName: null,
1434        phone: null,
1435        notes: null,
1436        'usertype': null,
1437      });
1438    }
1439  }
1440})(window.drupalSettings);
1441;

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