(function(a){a.Jcrop=function(b,c){function i(a){return Math.round(a)+"px"}function j(a){return d.baseClass+"-"+a}function k(){return a.fx.step.hasOwnProperty("backgroundColor")}function l(b){var c=a(b).offset();return[c.left,c.top]}function m(a){return[a.pageX-e[0],a.pageY-e[1]]}function n(b){typeof b!="object"&&(b={}),d=a.extend(d,b),a.each(["onChange","onSelect","onRelease","onDblClick"],function(a,b){typeof d[b]!="function"&&(d[b]=function(){})})}function o(a,b,c){e=l(D),bc.setCursor(a==="move"?a:a+"-resize");if(a==="move")return bc.activateHandlers(q(b),v,c);var d=_.getFixed(),f=r(a),g=_.getCorner(r(f));_.setPressed(_.getCorner(f)),_.setCurrent(g),bc.activateHandlers(p(a,d),v,c)}function p(a,b){return function(c){if(!d.aspectRatio)switch(a){case"e":c[1]=b.y2;break;case"w":c[1]=b.y2;break;case"n":c[0]=b.x2;break;case"s":c[0]=b.x2}else switch(a){case"e":c[1]=b.y+1;break;case"w":c[1]=b.y+1;break;case"n":c[0]=b.x+1;break;case"s":c[0]=b.x+1}_.setCurrent(c),bb.update()}}function q(a){var b=a;return bd.watchKeys
(),function(a){_.moveOffset([a[0]-b[0],a[1]-b[1]]),b=a,bb.update()}}function r(a){switch(a){case"n":return"sw";case"s":return"nw";case"e":return"nw";case"w":return"ne";case"ne":return"sw";case"nw":return"se";case"se":return"nw";case"sw":return"ne"}}function s(a){return function(b){return d.disabled?!1:a==="move"&&!d.allowMove?!1:(e=l(D),W=!0,o(a,m(b)),b.stopPropagation(),b.preventDefault(),!1)}}function t(a,b,c){var d=a.width(),e=a.height();d>b&&b>0&&(d=b,e=b/a.width()*a.height()),e>c&&c>0&&(e=c,d=c/a.height()*a.width()),T=a.width()/d,U=a.height()/e,a.width(d).height(e)}function u(a){return{x:a.x*T,y:a.y*U,x2:a.x2*T,y2:a.y2*U,w:a.w*T,h:a.h*U}}function v(a){var b=_.getFixed();b.w>d.minSelect[0]&&b.h>d.minSelect[1]?(bb.enableHandles(),bb.done()):bb.release(),bc.setCursor(d.allowSelect?"crosshair":"default")}function w(a){if(d.disabled)return!1;if(!d.allowSelect)return!1;W=!0,e=l(D),bb.disableHandles(),bc.setCursor("crosshair");var b=m(a);return _.setPressed(b),bb.update(),bc.activateHandlers(x,v,a.type.substring
(0,5)==="touch"),bd.watchKeys(),a.stopPropagation(),a.preventDefault(),!1}function x(a){_.setCurrent(a),bb.update()}function y(){var b=a("<div></div>").addClass(j("tracker"));return g&&b.css({opacity:0,backgroundColor:"white"}),b}function be(a){G.removeClass().addClass(j("holder")).addClass(a)}function bf(a,b){function t(){window.setTimeout(u,l)}var c=a[0]/T,e=a[1]/U,f=a[2]/T,g=a[3]/U;if(X)return;var h=_.flipCoords(c,e,f,g),i=_.getFixed(),j=[i.x,i.y,i.x2,i.y2],k=j,l=d.animationDelay,m=h[0]-j[0],n=h[1]-j[1],o=h[2]-j[2],p=h[3]-j[3],q=0,r=d.swingSpeed;c=k[0],e=k[1],f=k[2],g=k[3],bb.animMode(!0);var s,u=function(){return function(){q+=(100-q)/r,k[0]=Math.round(c+q/100*m),k[1]=Math.round(e+q/100*n),k[2]=Math.round(f+q/100*o),k[3]=Math.round(g+q/100*p),q>=99.8&&(q=100),q<100?(bh(k),t()):(bb.done(),bb.animMode(!1),typeof b=="function"&&b.call(bs))}}();t()}function bg(a){bh([a[0]/T,a[1]/U,a[2]/T,a[3]/U]),d.onSelect.call(bs,u(_.getFixed())),bb.enableHandles()}function bh(a){_.setPressed([a[0],a[1]]),_.setCurrent([a[2],
a[3]]),bb.update()}function bi(){return u(_.getFixed())}function bj(){return _.getFixed()}function bk(a){n(a),br()}function bl(){d.disabled=!0,bb.disableHandles(),bb.setCursor("default"),bc.setCursor("default")}function bm(){d.disabled=!1,br()}function bn(){bb.done(),bc.activateHandlers(null,null)}function bo(){G.remove(),A.show(),A.css("visibility","visible"),a(b).removeData("Jcrop")}function bp(a,b){bb.release(),bl();var c=new Image;c.onload=function(){var e=c.width,f=c.height,g=d.boxWidth,h=d.boxHeight;D.width(e).height(f),D.attr("src",a),H.attr("src",a),t(D,g,h),E=D.width(),F=D.height(),H.width(E).height(F),M.width(E+L*2).height(F+L*2),G.width(E).height(F),ba.resize(E,F),bm(),typeof b=="function"&&b.call(bs)},c.src=a}function bq(a,b,c){var e=b||d.bgColor;d.bgFade&&k()&&d.fadeTime&&!c?a.animate({backgroundColor:e},{queue:!1,duration:d.fadeTime}):a.css("backgroundColor",e)}function br(a){d.allowResize?a?bb.enableOnly():bb.enableHandles():bb.disableHandles(),bc.setCursor(d.allowSelect?"crosshair":"default"),bb
.setCursor(d.allowMove?"move":"default"),d.hasOwnProperty("trueSize")&&(T=d.trueSize[0]/E,U=d.trueSize[1]/F),d.hasOwnProperty("setSelect")&&(bg(d.setSelect),bb.done(),delete d.setSelect),ba.refresh(),d.bgColor!=N&&(bq(d.shade?ba.getShades():G,d.shade?d.shadeColor||d.bgColor:d.bgColor),N=d.bgColor),O!=d.bgOpacity&&(O=d.bgOpacity,d.shade?ba.refresh():bb.setBgOpacity(O)),P=d.maxSize[0]||0,Q=d.maxSize[1]||0,R=d.minSize[0]||0,S=d.minSize[1]||0,d.hasOwnProperty("outerImage")&&(D.attr("src",d.outerImage),delete d.outerImage),bb.refresh()}var d=a.extend({},a.Jcrop.defaults),e,f=navigator.userAgent.toLowerCase(),g=/msie/.test(f),h=/msie [1-6]\./.test(f);typeof b!="object"&&(b=a(b)[0]),typeof c!="object"&&(c={}),n(c);var z={border:"none",visibility:"visible",margin:0,padding:0,position:"absolute",top:0,left:0},A=a(b),B=!0;if(b.tagName=="IMG"){if(A[0].width!=0&&A[0].height!=0)A.width(A[0].width),A.height(A[0].height);else{var C=new Image;C.src=A[0].src,A.width(C.width),A.height(C.height)}var D=A.clone().removeAttr("id").
css(z).show();D.width(A.width()),D.height(A.height()),A.after(D).hide()}else D=A.css(z).show(),B=!1,d.shade===null&&(d.shade=!0);t(D,d.boxWidth,d.boxHeight);var E=D.width(),F=D.height(),G=a("<div />").width(E).height(F).addClass(j("holder")).css({position:"relative",backgroundColor:d.bgColor}).insertAfter(A).append(D);d.addClass&&G.addClass(d.addClass);var H=a("<div />"),I=a("<div />").width("100%").height("100%").css({zIndex:310,position:"absolute",overflow:"hidden"}),J=a("<div />").width("100%").height("100%").css("zIndex",320),K=a("<div />").css({position:"absolute",zIndex:600}).dblclick(function(){var a=_.getFixed();d.onDblClick.call(bs,a)}).insertBefore(D).append(I,J);B&&(H=a("<img />").attr("src",D.attr("src")).css(z).width(E).height(F),I.append(H)),h&&K.css({overflowY:"hidden"});var L=d.boundary,M=y().width(E+L*2).height(F+L*2).css({position:"absolute",top:i(-L),left:i(-L),zIndex:290}).mousedown(w),N=d.bgColor,O=d.bgOpacity,P,Q,R,S,T,U,V=!0,W,X,Y;e=l(D);var Z=function(){function a(){var a={},b=["touchstart"
,"touchmove","touchend"],c=document.createElement("div"),d;try{for(d=0;d<b.length;d++){var e=b[d];e="on"+e;var f=e in c;f||(c.setAttribute(e,"return;"),f=typeof c[e]=="function"),a[b[d]]=f}return a.touchstart&&a.touchend&&a.touchmove}catch(g){return!1}}function b(){return d.touchSupport===!0||d.touchSupport===!1?d.touchSupport:a()}return{createDragger:function(a){return function(b){return d.disabled?!1:a==="move"&&!d.allowMove?!1:(e=l(D),W=!0,o(a,m(Z.cfilter(b)),!0),b.stopPropagation(),b.preventDefault(),!1)}},newSelection:function(a){return w(Z.cfilter(a))},cfilter:function(a){return a.pageX=a.originalEvent.changedTouches[0].pageX,a.pageY=a.originalEvent.changedTouches[0].pageY,a},isSupported:a,support:b()}}(),_=function(){function h(d){d=n(d),c=a=d[0],e=b=d[1]}function i(a){a=n(a),f=a[0]-c,g=a[1]-e,c=a[0],e=a[1]}function j(){return[f,g]}function k(d){var f=d[0],g=d[1];0>a+f&&(f-=f+a),0>b+g&&(g-=g+b),F<e+g&&(g+=F-(e+g)),E<c+f&&(f+=E-(c+f)),a+=f,c+=f,b+=g,e+=g}function l(a){var b=m();switch(a){case"ne":return[
b.x2,b.y];case"nw":return[b.x,b.y];case"se":return[b.x2,b.y2];case"sw":return[b.x,b.y2]}}function m(){if(!d.aspectRatio)return p();var f=d.aspectRatio,g=d.minSize[0]/T,h=d.maxSize[0]/T,i=d.maxSize[1]/U,j=c-a,k=e-b,l=Math.abs(j),m=Math.abs(k),n=l/m,r,s,t,u;return h===0&&(h=E*10),i===0&&(i=F*10),n<f?(s=e,t=m*f,r=j<0?a-t:t+a,r<0?(r=0,u=Math.abs((r-a)/f),s=k<0?b-u:u+b):r>E&&(r=E,u=Math.abs((r-a)/f),s=k<0?b-u:u+b)):(r=c,u=l/f,s=k<0?b-u:b+u,s<0?(s=0,t=Math.abs((s-b)*f),r=j<0?a-t:t+a):s>F&&(s=F,t=Math.abs(s-b)*f,r=j<0?a-t:t+a)),r>a?(r-a<g?r=a+g:r-a>h&&(r=a+h),s>b?s=b+(r-a)/f:s=b-(r-a)/f):r<a&&(a-r<g?r=a-g:a-r>h&&(r=a-h),s>b?s=b+(a-r)/f:s=b-(a-r)/f),r<0?(a-=r,r=0):r>E&&(a-=r-E,r=E),s<0?(b-=s,s=0):s>F&&(b-=s-F,s=F),q(o(a,b,r,s))}function n(a){return a[0]<0&&(a[0]=0),a[1]<0&&(a[1]=0),a[0]>E&&(a[0]=E),a[1]>F&&(a[1]=F),[Math.round(a[0]),Math.round(a[1])]}function o(a,b,c,d){var e=a,f=c,g=b,h=d;return c<a&&(e=c,f=a),d<b&&(g=d,h=b),[e,g,f,h]}function p(){var d=c-a,f=e-b,g;return P&&Math.abs(d)>P&&(c=d>0?a+P:a-P),Q&&Math.abs
(f)>Q&&(e=f>0?b+Q:b-Q),S/U&&Math.abs(f)<S/U&&(e=f>0?b+S/U:b-S/U),R/T&&Math.abs(d)<R/T&&(c=d>0?a+R/T:a-R/T),a<0&&(c-=a,a-=a),b<0&&(e-=b,b-=b),c<0&&(a-=c,c-=c),e<0&&(b-=e,e-=e),c>E&&(g=c-E,a-=g,c-=g),e>F&&(g=e-F,b-=g,e-=g),a>E&&(g=a-F,e-=g,b-=g),b>F&&(g=b-F,e-=g,b-=g),q(o(a,b,c,e))}function q(a){return{x:a[0],y:a[1],x2:a[2],y2:a[3],w:a[2]-a[0],h:a[3]-a[1]}}var a=0,b=0,c=0,e=0,f,g;return{flipCoords:o,setPressed:h,setCurrent:i,getOffset:j,moveOffset:k,getCorner:l,getFixed:m}}(),ba=function(){function f(a,b){e.left.css({height:i(b)}),e.right.css({height:i(b)})}function g(){return h(_.getFixed())}function h(a){e.top.css({left:i(a.x),width:i(a.w),height:i(a.y)}),e.bottom.css({top:i(a.y2),left:i(a.x),width:i(a.w),height:i(F-a.y2)}),e.right.css({left:i(a.x2),width:i(E-a.x2)}),e.left.css({width:i(a.x)})}function j(){return a("<div />").css({position:"absolute",backgroundColor:d.shadeColor||d.bgColor}).appendTo(c)}function k(){b||(b=!0,c.insertBefore(D),g(),bb.setBgOpacity(1,0,1),H.hide(),l(d.shadeColor||d.bgColor,1),bb.
isAwake()?n(d.bgOpacity,1):n(1,1))}function l(a,b){bq(p(),a,b)}function m(){b&&(c.remove(),H.show(),b=!1,bb.isAwake()?bb.setBgOpacity(d.bgOpacity,1,1):(bb.setBgOpacity(1,1,1),bb.disableHandles()),bq(G,0,1))}function n(a,e){b&&(d.bgFade&&!e?c.animate({opacity:1-a},{queue:!1,duration:d.fadeTime}):c.css({opacity:1-a}))}function o(){d.shade?k():m(),bb.isAwake()&&n(d.bgOpacity)}function p(){return c.children()}var b=!1,c=a("<div />").css({position:"absolute",zIndex:240,opacity:0}),e={top:j(),left:j().height(F),right:j().height(F),bottom:j()};return{update:g,updateRaw:h,getShades:p,setBgColor:l,enable:k,disable:m,resize:f,refresh:o,opacity:n}}(),bb=function(){function k(b){var c=a("<div />").css({position:"absolute",opacity:d.borderOpacity}).addClass(j(b));return I.append(c),c}function l(b,c){var d=a("<div />").mousedown(s(b)).css({cursor:b+"-resize",position:"absolute",zIndex:c}).addClass("ord-"+b);return Z.support&&d.bind("touchstart.jcrop",Z.createDragger(b)),J.append(d),d}function m(a){var b=d.handleSize,e=l(a,c++
).css({opacity:d.handleOpacity}).addClass(j("handle"));return b&&e.width(b).height(b),e}function n(a){return l(a,c++).addClass("jcrop-dragbar")}function o(a){var b;for(b=0;b<a.length;b++)g[a[b]]=n(a[b])}function p(a){var b,c;for(c=0;c<a.length;c++){switch(a[c]){case"n":b="hline";break;case"s":b="hline bottom";break;case"e":b="vline right";break;case"w":b="vline"}e[a[c]]=k(b)}}function q(a){var b;for(b=0;b<a.length;b++)f[a[b]]=m(a[b])}function r(a,b){d.shade||H.css({top:i(-b),left:i(-a)}),K.css({top:i(b),left:i(a)})}function t(a,b){K.width(Math.round(a)).height(Math.round(b))}function v(){var a=_.getFixed();_.setPressed([a.x,a.y]),_.setCurrent([a.x2,a.y2]),w()}function w(a){if(b)return x(a)}function x(a){var c=_.getFixed();t(c.w,c.h),r(c.x,c.y),d.shade&&ba.updateRaw(c),b||A(),a?d.onSelect.call(bs,u(c)):d.onChange.call(bs,u(c))}function z(a,c,e){if(!b&&!c)return;d.bgFade&&!e?D.animate({opacity:a},{queue:!1,duration:d.fadeTime}):D.css("opacity",a)}function A(){K.show(),d.shade?ba.opacity(O):z(O,!0),b=!0}function B
(){F(),K.hide(),d.shade?ba.opacity(1):z(1),b=!1,d.onRelease.call(bs)}function C(){h&&J.show()}function E(){h=!0;if(d.allowResize)return J.show(),!0}function F(){h=!1,J.hide()}function G(a){a?(X=!0,F()):(X=!1,E())}function L(){G(!1),v()}var b,c=370,e={},f={},g={},h=!1;d.dragEdges&&a.isArray(d.createDragbars)&&o(d.createDragbars),a.isArray(d.createHandles)&&q(d.createHandles),d.drawBorders&&a.isArray(d.createBorders)&&p(d.createBorders),a(document).bind("touchstart.jcrop-ios",function(b){a(b.currentTarget).hasClass("jcrop-tracker")&&b.stopPropagation()});var M=y().mousedown(s("move")).css({cursor:"move",position:"absolute",zIndex:360});return Z.support&&M.bind("touchstart.jcrop",Z.createDragger("move")),I.append(M),F(),{updateVisible:w,update:x,release:B,refresh:v,isAwake:function(){return b},setCursor:function(a){M.css("cursor",a)},enableHandles:E,enableOnly:function(){h=!0},showHandles:C,disableHandles:F,animMode:G,setBgOpacity:z,done:L}}(),bc=function(){function f(b){M.css({zIndex:450}),b?a(document).bind("touchmove.jcrop"
,k).bind("touchend.jcrop",l):e&&a(document).bind("mousemove.jcrop",h).bind("mouseup.jcrop",i)}function g(){M.css({zIndex:290}),a(document).unbind(".jcrop")}function h(a){return b(m(a)),!1}function i(a){return a.preventDefault(),a.stopPropagation(),W&&(W=!1,c(m(a)),bb.isAwake()&&d.onSelect.call(bs,u(_.getFixed())),g(),b=function(){},c=function(){}),!1}function j(a,d,e){return W=!0,b=a,c=d,f(e),!1}function k(a){return b(m(Z.cfilter(a))),!1}function l(a){return i(Z.cfilter(a))}function n(a){M.css("cursor",a)}var b=function(){},c=function(){},e=d.trackDocument;return e||M.mousemove(h).mouseup(i).mouseout(i),D.before(M),{activateHandlers:j,setCursor:n}}(),bd=function(){function e(){d.keySupport&&(b.show(),b.focus())}function f(a){b.hide()}function g(a,b,c){d.allowMove&&(_.moveOffset([b,c]),bb.updateVisible(!0)),a.preventDefault(),a.stopPropagation()}function i(a){if(a.ctrlKey||a.metaKey)return!0;Y=a.shiftKey?!0:!1;var b=Y?10:1;switch(a.keyCode){case 37:g(a,-b,0);break;case 39:g(a,b,0);break;case 38:g(a,0,-b);break;
case 40:g(a,0,b);break;case 27:d.allowSelect&&bb.release();break;case 9:return!0}return!1}var b=a('<input type="radio" />').css({position:"fixed",left:"-120px",width:"12px"}).addClass("jcrop-keymgr"),c=a("<div />").css({position:"absolute",overflow:"hidden"}).append(b);return d.keySupport&&(b.keydown(i).blur(f),h||!d.fixedSupport?(b.css({position:"absolute",left:"-20px"}),c.append(b).insertBefore(D)):b.insertBefore(D)),{watchKeys:e}}();Z.support&&M.bind("touchstart.jcrop",Z.newSelection),J.hide(),br(!0);var bs={setImage:bp,animateTo:bf,setSelect:bg,setOptions:bk,tellSelect:bi,tellScaled:bj,setClass:be,disable:bl,enable:bm,cancel:bn,release:bb.release,destroy:bo,focus:bd.watchKeys,getBounds:function(){return[E*T,F*U]},getWidgetSize:function(){return[E,F]},getScaleFactor:function(){return[T,U]},getOptions:function(){return d},ui:{holder:G,selection:K}};return g&&G.bind("selectstart",function(){return!1}),A.data("Jcrop",bs),bs},a.fn.Jcrop=function(b,c){var d;return this.each(function(){if(a(this).data("Jcrop")){if(b==="api")return a(this).data("Jcrop");a(this).data("Jcrop").setOptions(b)}else this.tagName=="IMG"?a.Jcrop.Loader(this,function(){a(this).css({display:"block",visibility:"hidden"}),d=a.Jcrop(this,b),a.isFunction(c)&&c.call(d)}):(a(this).css({display:"block",visibility:"hidden"}),d=a.Jcrop(this,b),a.isFunction(c)&&c.call(d))}),this},a.Jcrop.Loader=function(b,c,d){function g(){f.complete?(e.unbind(".jcloader"),a.isFunction(c)&&c.call(f)):window.setTimeout(g,50)}var e=a(b),f=e[0];e.bind("load.jcloader",g).bind("error.jcloader",function(b){e.unbind(".jcloader"),a.isFunction(d)&&d.call(f)}),f.complete&&a.isFunction(c)&&(e.unbind(".jcloader"),c.call(f))},a.Jcrop.defaults={allowSelect:!0,allowMove:!0,allowResize:!0,trackDocument:!0,baseClass:"jcrop",addClass:null,bgColor:"black",bgOpacity:.6,bgFade:!1,borderOpacity:.4,handleOpacity:.5,handleSize:null,aspectRatio:0,keySupport:!0,createHandles:["n","s","e","w","nw","ne","se","sw"],createDragbars:["n","s","e","w"],createBorders:["n","s","e","w"],drawBorders:!0,dragEdges
:!0,fixedSupport:!0,touchSupport:null,shade:null,boxWidth:0,boxHeight:0,boundary:2,fadeTime:400,animationDelay:20,swingSpeed:3,minSelect:[0,0],maxSize:[0,0],minSize:[0,0],onChange:function(){},onSelect:function(){},onDblClick:function(){},onRelease:function(){}}})(jQuery);
(function(window){
var _userMedia;
function FlashError(){
var temp=Error.apply(this, arguments);
temp.name=this.name="FlashError";
this.stack=temp.stack;
this.message=temp.message;
}
function WebcamError(){
var temp=Error.apply(this, arguments);
temp.name=this.name="WebcamError";
this.stack=temp.stack;
this.message=temp.message;
}
IntermediateInheritor=function(){};
IntermediateInheritor.prototype=Error.prototype;
FlashError.prototype=new IntermediateInheritor();
WebcamError.prototype=new IntermediateInheritor();
var Webcam={
version: '1.0.23',
protocol: location.protocol.match(/https/i) ? 'https':'http',
loaded: false,
live: false,
userMedia: true,
iOS: /iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,
params: {
width: 0,
height: 0,
dest_width: 0,
dest_height: 0,
image_format: 'jpeg',
jpeg_quality: 90,
enable_flash: true,
force_flash: false,
flip_horiz: false,
fps: 30,
upload_name: 'webcam',
constraints: null,
swfURL: '',
flashNotDetectedText: 'ERROR: No Adobe Flash Player detected.  Webcam.js relies on Flash for browsers that do not support getUserMedia (like yours).',
noInterfaceFoundText: 'No supported webcam interface found.',
unfreeze_snap: true,
iosPlaceholderText: 'Click here to open camera.',
user_callback: null,
user_canvas: null
},
errors: {
FlashError: FlashError,
WebcamError: WebcamError
},
hooks: {},
init: function(){
var self=this;
this.mediaDevices=(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia) ?
navigator.mediaDevices:((navigator.mozGetUserMedia||navigator.webkitGetUserMedia) ? {
getUserMedia: function(c){
return new Promise(function(y, n){
(navigator.mozGetUserMedia ||
navigator.webkitGetUserMedia).call(navigator, c, y, n);
});
}}:null);
window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL;
this.userMedia=this.userMedia&&!!this.mediaDevices&&!!window.URL;
if(this.iOS){
this.userMedia=null;
}
if(navigator.userAgent.match(/Firefox\D+(\d+)/)){
if(parseInt(RegExp.$1, 10) < 21) this.userMedia=null;
}
if(this.userMedia){
window.addEventListener('beforeunload', function(event){
self.reset();
});
}},
exifOrientation: function(binFile){
var dataView=new DataView(binFile);
if((dataView.getUint8(0)!=0xFF)||(dataView.getUint8(1)!=0xD8)){
console.log('Not a valid JPEG file');
return 0;
}
var offset=2;
var marker=null;
while (offset < binFile.byteLength){
if(dataView.getUint8(offset)!=0xFF){
console.log('Not a valid marker at offset ' + offset + ', found: ' + dataView.getUint8(offset));
return 0;
}
marker=dataView.getUint8(offset + 1);
if(marker==225){
offset +=4;
var str="";
for (n=0; n < 4; n++){
str +=String.fromCharCode(dataView.getUint8(offset+n));
}
if(str!='Exif'){
console.log('Not valid EXIF data found');
return 0;
}
offset +=6;
var bigEnd=null;
if(dataView.getUint16(offset)==0x4949){
bigEnd=false;
}else if(dataView.getUint16(offset)==0x4D4D){
bigEnd=true;
}else{
console.log("Not valid TIFF data! (no 0x4949 or 0x4D4D)");
return 0;
}
if(dataView.getUint16(offset+2, !bigEnd)!=0x002A){
console.log("Not valid TIFF data! (no 0x002A)");
return 0;
}
var firstIFDOffset=dataView.getUint32(offset+4, !bigEnd);
if(firstIFDOffset < 0x00000008){
console.log("Not valid TIFF data! (First offset less than 8)", dataView.getUint32(offset+4, !bigEnd));
return 0;
}
var dataStart=offset + firstIFDOffset;
var entries=dataView.getUint16(dataStart, !bigEnd);
for (var i=0; i<entries; i++){
var entryOffset=dataStart + i*12 + 2;
if(dataView.getUint16(entryOffset, !bigEnd)==0x0112){
var valueType=dataView.getUint16(entryOffset+2, !bigEnd);
var numValues=dataView.getUint32(entryOffset+4, !bigEnd);
if(valueType!=3&&numValues!=1){
console.log('Invalid EXIF orientation value type ('+valueType+') or count ('+numValues+')');
return 0;
}
var value=dataView.getUint16(entryOffset + 8, !bigEnd);
if(value < 1||value > 8){
console.log('Invalid EXIF orientation value ('+value+')');
return 0;
}
return value;
}}
}else{
offset +=2+dataView.getUint16(offset+2);
}}
return 0;
},
fixOrientation: function(origObjURL, orientation, targetImg){
var img=new Image();
img.addEventListener('load', function(event){
var canvas=document.createElement('canvas');
var ctx=canvas.getContext('2d');
if(orientation < 5){
canvas.width=img.width;
canvas.height=img.height;
}else{
canvas.width=img.height;
canvas.height=img.width;
}
switch (orientation){
case 2: ctx.transform(-1, 0, 0, 1, img.width, 0); break;
case 3: ctx.transform(-1, 0, 0, -1, img.width, img.height); break;
case 4: ctx.transform(1, 0, 0, -1, 0, img.height); break;
case 5: ctx.transform(0, 1, 1, 0, 0, 0); break;
case 6: ctx.transform(0, 1, -1, 0, img.height , 0); break;
case 7: ctx.transform(0, -1, -1, 0, img.height, img.width); break;
case 8: ctx.transform(0, -1, 1, 0, 0, img.width); break;
}
ctx.drawImage(img, 0, 0);
targetImg.src=canvas.toDataURL();
}, false);
img.src=origObjURL;
},
attach: function(elem){
if(typeof(elem)=='string'){
elem=document.getElementById(elem)||document.querySelector(elem);
}
if(!elem){
return this.dispatch('error', new WebcamError("Could not locate DOM element to attach to."));
}
this.container=elem;
elem.innerHTML='';
var peg=document.createElement('div');
elem.appendChild(peg);
this.peg=peg;
if(!this.params.width) this.params.width=elem.offsetWidth;
if(!this.params.height) this.params.height=elem.offsetHeight;
if(!this.params.width||!this.params.height){
return this.dispatch('error', new WebcamError("No width and/or height for webcam.  Please call set() first, or attach to a visible element."));
}
if(!this.params.dest_width) this.params.dest_width=this.params.width;
if(!this.params.dest_height) this.params.dest_height=this.params.height;
this.userMedia=_userMedia===undefined ? this.userMedia:_userMedia;
if(this.params.force_flash){
_userMedia=this.userMedia;
this.userMedia=null;
}
if(typeof this.params.fps!=="number") this.params.fps=30;
var scaleX=this.params.width / this.params.dest_width;
var scaleY=this.params.height / this.params.dest_height;
if(this.userMedia){
var video=document.createElement('video');
video.setAttribute('autoplay', 'autoplay');
video.style.width='' + this.params.dest_width + 'px';
video.style.height='' + this.params.dest_height + 'px';
if((scaleX!=1.0)||(scaleY!=1.0)){
elem.style.overflow='hidden';
video.style.webkitTransformOrigin='0px 0px';
video.style.mozTransformOrigin='0px 0px';
video.style.msTransformOrigin='0px 0px';
video.style.oTransformOrigin='0px 0px';
video.style.transformOrigin='0px 0px';
video.style.webkitTransform='scaleX('+scaleX+') scaleY('+scaleY+')';
video.style.mozTransform='scaleX('+scaleX+') scaleY('+scaleY+')';
video.style.msTransform='scaleX('+scaleX+') scaleY('+scaleY+')';
video.style.oTransform='scaleX('+scaleX+') scaleY('+scaleY+')';
video.style.transform='scaleX('+scaleX+') scaleY('+scaleY+')';
}
elem.appendChild(video);
this.video=video;
var self=this;
this.mediaDevices.getUserMedia({
"audio": false,
"video": this.params.constraints||{
mandatory: {
minWidth: this.params.dest_width,
minHeight: this.params.dest_height
}}
})
.then(function(stream){
video.onloadedmetadata=function(e){
self.stream=stream;
self.loaded=true;
self.live=true;
self.dispatch('load');
self.dispatch('live');
self.flip();
};
video.src=window.URL.createObjectURL(stream)||stream;
})
.catch(function(err){
if(self.params.enable_flash&&self.detectFlash()){
setTimeout(function(){ self.params.force_flash=1; self.attach(elem); }, 1);
}else{
self.dispatch('error', err);
}});
}
else if(this.iOS){
var div=document.createElement('div');
div.id=this.container.id+'-ios_div';
div.className='webcamjs-ios-placeholder';
div.style.width='' + this.params.width + 'px';
div.style.height='' + this.params.height + 'px';
div.style.textAlign='center';
div.style.display='table-cell';
div.style.verticalAlign='middle';
div.style.backgroundRepeat='no-repeat';
div.style.backgroundSize='contain';
div.style.backgroundPosition='center';
var span=document.createElement('span');
span.className='webcamjs-ios-text';
span.innerHTML=this.params.iosPlaceholderText;
div.appendChild(span);
var img=document.createElement('img');
img.id=this.container.id+'-ios_img';
img.style.width='' + this.params.dest_width + 'px';
img.style.height='' + this.params.dest_height + 'px';
img.style.display='none';
div.appendChild(img);
var input=document.createElement('input');
input.id=this.container.id+'-ios_input';
input.setAttribute('type', 'file');
input.setAttribute('accept', 'image/*');
input.setAttribute('capture', 'camera');
var self=this;
var params=this.params;
input.addEventListener('change', function(event){
if(event.target.files.length > 0&&event.target.files[0].type.indexOf('image/')==0){
var objURL=URL.createObjectURL(event.target.files[0]);
var image=new Image();
image.addEventListener('load', function(event){
var canvas=document.createElement('canvas');
canvas.width=params.dest_width;
canvas.height=params.dest_height;
var ctx=canvas.getContext('2d');
ratio=Math.min(image.width / params.dest_width, image.height / params.dest_height);
var sw=params.dest_width * ratio;
var sh=params.dest_height * ratio;
var sx=(image.width - sw) / 2;
var sy=(image.height - sh) / 2;
ctx.drawImage(image, sx, sy, sw, sh, 0, 0, params.dest_width, params.dest_height);
var dataURL=canvas.toDataURL();
img.src=dataURL;
div.style.backgroundImage="url('"+dataURL+"')";
}, false);
var fileReader=new FileReader();
fileReader.addEventListener('load', function(e){
var orientation=self.exifOrientation(e.target.result);
if(orientation > 1){
self.fixOrientation(objURL, orientation, image);
}else{
image.src=objURL;
}}, false);
var http=new XMLHttpRequest();
http.open("GET", objURL, true);
http.responseType="blob";
http.onload=function(e){
if(this.status==200||this.status===0){
fileReader.readAsArrayBuffer(this.response);
}};
http.send();
}}, false);
input.style.display='none';
jQuery(elem).closest('.ci_editor').append(input);
/**div.addEventListener('click', function(event){
if(params.user_callback){
self.snap(params.user_callback, params.user_canvas);
}else{
input.style.display='block';
input.focus();
input.click();
input.style.display='none';
}}, false);**/
div.style.display='none';
jQuery(elem).closest('.ci_editor').append(div);
this.loaded=true;
this.live=true;
if(params.user_callback){
self.snap(params.user_callback, params.user_canvas);
}else{
input.style.display='block';
input.focus();
input.click();
input.style.display='none';
}}
else if(this.params.enable_flash&&this.detectFlash()){
window.Webcam=Webcam;
var div=document.createElement('div');
div.innerHTML=this.getSWFHTML();
elem.appendChild(div);
}else{
this.dispatch('error', new WebcamError(this.params.noInterfaceFoundText));
}
if(this.params.crop_width&&this.params.crop_height){
var scaled_crop_width=Math.floor(this.params.crop_width * scaleX);
var scaled_crop_height=Math.floor(this.params.crop_height * scaleY);
elem.style.width='' + scaled_crop_width + 'px';
elem.style.height='' + scaled_crop_height + 'px';
elem.style.overflow='hidden';
elem.scrollLeft=Math.floor((this.params.width / 2) - (scaled_crop_width / 2));
elem.scrollTop=Math.floor((this.params.height / 2) - (scaled_crop_height / 2));
}else{
elem.style.width='' + this.params.width + 'px';
elem.style.height='' + this.params.height + 'px';
}},
reset: function(){
if(this.preview_active) this.unfreeze();
this.unflip();
if(this.userMedia){
if(this.stream){
if(this.stream.getVideoTracks){
var tracks=this.stream.getVideoTracks();
if(tracks&&tracks[0]&&tracks[0].stop) tracks[0].stop();
}
else if(this.stream.stop){
this.stream.stop();
}}
delete this.stream;
delete this.video;
}
if((this.userMedia!==true)&&this.loaded&&!this.iOS){
var movie=this.getMovie();
if(movie&&movie._releaseCamera) movie._releaseCamera();
}
if(this.container){
this.container.innerHTML='';
delete this.container;
}
this.loaded=false;
this.live=false;
},
set: function(){
if(arguments.length==1){
for (var key in arguments[0]){
this.params[key]=arguments[0][key];
}}else{
this.params[ arguments[0] ]=arguments[1];
}},
on: function(name, callback){
name=name.replace(/^on/i, '').toLowerCase();
if(!this.hooks[name]) this.hooks[name]=[];
this.hooks[name].push(callback);
},
off: function(name, callback){
name=name.replace(/^on/i, '').toLowerCase();
if(this.hooks[name]){
if(callback){
var idx=this.hooks[name].indexOf(callback);
if(idx > -1) this.hooks[name].splice(idx, 1);
}else{
this.hooks[name]=[];
}}
},
dispatch: function(){
var name=arguments[0].replace(/^on/i, '').toLowerCase();
var args=Array.prototype.slice.call(arguments, 1);
if(this.hooks[name]&&this.hooks[name].length){
for (var idx=0, len=this.hooks[name].length; idx < len; idx++){
var hook=this.hooks[name][idx];
if(typeof(hook)=='function'){
hook.apply(this, args);
}
else if((typeof(hook)=='object')&&(hook.length==2)){
hook[0][hook[1]].apply(hook[0], args);
}
else if(window[hook]){
window[ hook ].apply(window, args);
}}
return true;
}
else if(name=='error'){
if((args[0] instanceof FlashError)||(args[0] instanceof WebcamError)){
message=args[0].message;
}else{
message="Could not access webcam: " + args[0].name + ": " +
args[0].message + " " + args[0].toString();
}
alert("Webcam.js Error: " + message);
}
return false;
},
setSWFLocation: function(value){
this.set('swfURL', value);
},
detectFlash: function(){
var SHOCKWAVE_FLASH="Shockwave Flash",
SHOCKWAVE_FLASH_AX="ShockwaveFlash.ShockwaveFlash",
FLASH_MIME_TYPE="application/x-shockwave-flash",
win=window,
nav=navigator,
hasFlash=false;
if(typeof nav.plugins!=="undefined"&&typeof nav.plugins[SHOCKWAVE_FLASH]==="object"){
var desc=nav.plugins[SHOCKWAVE_FLASH].description;
if(desc&&(typeof nav.mimeTypes!=="undefined"&&nav.mimeTypes[FLASH_MIME_TYPE]&&nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)){
hasFlash=true;
}}
else if(typeof win.ActiveXObject!=="undefined"){
try {
var ax=new ActiveXObject(SHOCKWAVE_FLASH_AX);
if(ax){
var ver=ax.GetVariable("$version");
if(ver) hasFlash=true;
}}
catch (e){;}}
return hasFlash;
},
getSWFHTML: function(){
var html='',
swfURL=this.params.swfURL;
if(location.protocol.match(/file/)){
this.dispatch('error', new FlashError("Flash does not work from local disk.  Please run from a web server."));
return '<h3 style="color:red">ERROR: the Webcam.js Flash fallback does not work from local disk.  Please run it from a web server.</h3>';
}
if(!this.detectFlash()){
this.dispatch('error', new FlashError("Adobe Flash Player not found.  Please install from get.adobe.com/flashplayer and try again."));
return '<h3 style="color:red">' + this.params.flashNotDetectedText + '</h3>';
}
if(!swfURL){
var base_url='';
var scpts=document.getElementsByTagName('script');
for (var idx=0, len=scpts.length; idx < len; idx++){
var src=scpts[idx].getAttribute('src');
if(src&&src.match(/\/webcam(\.min)?\.js/)){
base_url=src.replace(/\/webcam(\.min)?\.js.*$/, '');
idx=len;
}}
if(base_url) swfURL=base_url + '/webcam.swf';
else swfURL='webcam.swf';
}
if(window.localStorage&&!localStorage.getItem('visited')){
this.params.new_user=1;
localStorage.setItem('visited', 1);
}
var flashvars='';
for (var key in this.params){
if(flashvars) flashvars +='&';
flashvars +=key + '=' + escape(this.params[key]);
}
html +='<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" type="application/x-shockwave-flash" codebase="'+this.protocol+'://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'+this.params.width+'" height="'+this.params.height+'" id="webcam_movie_obj" align="middle"><param name="wmode" value="opaque" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="'+swfURL+'" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="'+flashvars+'"/><embed id="webcam_movie_embed" src="'+swfURL+'" wmode="opaque" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="'+this.params.width+'" height="'+this.params.height+'" name="webcam_movie_embed" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'+flashvars+'"></embed></object>';
return html;
},
getMovie: function(){
if(!this.loaded) return this.dispatch('error', new FlashError("Flash Movie is not loaded yet"));
var movie=document.getElementById('webcam_movie_obj');
if(!movie||!movie._snap) movie=document.getElementById('webcam_movie_embed');
if(!movie) this.dispatch('error', new FlashError("Cannot locate Flash movie in DOM"));
return movie;
},
freeze: function(){
var self=this;
var params=this.params;
if(this.preview_active) this.unfreeze();
var scaleX=this.params.width / this.params.dest_width;
var scaleY=this.params.height / this.params.dest_height;
this.unflip();
var final_width=params.crop_width||params.dest_width;
var final_height=params.crop_height||params.dest_height;
var preview_canvas=document.createElement('canvas');
preview_canvas.width=final_width;
preview_canvas.height=final_height;
var preview_context=preview_canvas.getContext('2d');
this.preview_canvas=preview_canvas;
this.preview_context=preview_context;
if((scaleX!=1.0)||(scaleY!=1.0)){
preview_canvas.style.webkitTransformOrigin='0px 0px';
preview_canvas.style.mozTransformOrigin='0px 0px';
preview_canvas.style.msTransformOrigin='0px 0px';
preview_canvas.style.oTransformOrigin='0px 0px';
preview_canvas.style.transformOrigin='0px 0px';
preview_canvas.style.webkitTransform='scaleX('+scaleX+') scaleY('+scaleY+')';
preview_canvas.style.mozTransform='scaleX('+scaleX+') scaleY('+scaleY+')';
preview_canvas.style.msTransform='scaleX('+scaleX+') scaleY('+scaleY+')';
preview_canvas.style.oTransform='scaleX('+scaleX+') scaleY('+scaleY+')';
preview_canvas.style.transform='scaleX('+scaleX+') scaleY('+scaleY+')';
}
this.snap(function(){
preview_canvas.style.position='relative';
preview_canvas.style.left='' + self.container.scrollLeft + 'px';
preview_canvas.style.top='' + self.container.scrollTop + 'px';
self.container.insertBefore(preview_canvas, self.peg);
self.container.style.overflow='hidden';
self.preview_active=true;
}, preview_canvas);
},
unfreeze: function(){
if(this.preview_active){
this.container.removeChild(this.preview_canvas);
delete this.preview_context;
delete this.preview_canvas;
this.preview_active=false;
this.flip();
}},
flip: function(){
if(this.params.flip_horiz){
var sty=this.container.style;
sty.webkitTransform='scaleX(-1)';
sty.mozTransform='scaleX(-1)';
sty.msTransform='scaleX(-1)';
sty.oTransform='scaleX(-1)';
sty.transform='scaleX(-1)';
sty.filter='FlipH';
sty.msFilter='FlipH';
}},
unflip: function(){
if(this.params.flip_horiz){
var sty=this.container.style;
sty.webkitTransform='scaleX(1)';
sty.mozTransform='scaleX(1)';
sty.msTransform='scaleX(1)';
sty.oTransform='scaleX(1)';
sty.transform='scaleX(1)';
sty.filter='';
sty.msFilter='';
}},
savePreview: function(user_callback, user_canvas){
var params=this.params;
var canvas=this.preview_canvas;
var context=this.preview_context;
if(user_canvas){
var user_context=user_canvas.getContext('2d');
user_context.drawImage(canvas, 0, 0);
}
user_callback(
user_canvas ? null:canvas.toDataURL('image/' + params.image_format, params.jpeg_quality / 100),
canvas,
context
);
if(this.params.unfreeze_snap) this.unfreeze();
},
snap: function(user_callback, user_canvas){
if(!user_callback) user_callback=this.params.user_callback;
if(!user_canvas) user_canvas=this.params.user_canvas;
var self=this;
var params=this.params;
if(!this.loaded) return this.dispatch('error', new WebcamError("Webcam is not loaded yet"));
if(!user_callback) return this.dispatch('error', new WebcamError("Please provide a callback function or canvas to snap()"));
if(this.preview_active){
this.savePreview(user_callback, user_canvas);
return null;
}
var canvas=document.createElement('canvas');
canvas.width=this.params.dest_width;
canvas.height=this.params.dest_height;
var context=canvas.getContext('2d');
if(this.params.flip_horiz){
context.translate(params.dest_width, 0);
context.scale(-1, 1);
}
var func=function(){
if(this.src&&this.width&&this.height){
context.drawImage(this, 0, 0, params.dest_width, params.dest_height);
}
if(params.crop_width&&params.crop_height){
var crop_canvas=document.createElement('canvas');
crop_canvas.width=params.crop_width;
crop_canvas.height=params.crop_height;
var crop_context=crop_canvas.getContext('2d');
crop_context.drawImage(canvas,
Math.floor((params.dest_width / 2) - (params.crop_width / 2)),
Math.floor((params.dest_height / 2) - (params.crop_height / 2)),
params.crop_width,
params.crop_height,
0,
0,
params.crop_width,
params.crop_height
);
context=crop_context;
canvas=crop_canvas;
}
if(user_canvas){
var user_context=user_canvas.getContext('2d');
user_context.drawImage(canvas, 0, 0);
}
user_callback(
user_canvas ? null:canvas.toDataURL('image/' + params.image_format, params.jpeg_quality / 100),
canvas,
context
);
};
if(this.userMedia){
context.drawImage(this.video, 0, 0, this.params.dest_width, this.params.dest_height);
func();
}
else if(this.iOS){
var div=document.getElementById(this.container.id+'-ios_div');
var img=document.getElementById(this.container.id+'-ios_img');
var input=document.getElementById(this.container.id+'-ios_input');
iFunc=function(event){
func.call(img);
img.removeEventListener('load', iFunc);
div.style.backgroundImage='none';
img.removeAttribute('src');
input.value=null;
};
if(!input.value){
img.addEventListener('load', iFunc);
input.style.display='block';
input.focus();
input.click();
input.style.display='none';
}else{
iFunc(null);
}}else{
var raw_data=this.getMovie()._snap();
var img=new Image();
img.onload=func;
img.src='data:image/'+this.params.image_format+';base64,' + raw_data;
}
return null;
},
configure: function(panel){
if(!panel) panel="camera";
this.getMovie()._configure(panel);
},
flashNotify: function(type, msg){
switch (type){
case 'flashLoadComplete':
this.loaded=true;
this.dispatch('load');
break;
case 'cameraLive':
this.live=true;
this.dispatch('live');
break;
case 'error':
this.dispatch('error', new FlashError(msg));
break;
default:
break;
}},
b64ToUint6: function(nChr){
return nChr > 64&&nChr < 91 ? nChr - 65
: nChr > 96&&nChr < 123 ? nChr - 71
: nChr > 47&&nChr < 58 ? nChr + 4
: nChr===43 ? 62:nChr===47 ? 63:0;
},
base64DecToArr: function(sBase64, nBlocksSize){
var sB64Enc=sBase64.replace(/[^A-Za-z0-9\+\/]/g, ""), nInLen=sB64Enc.length,
nOutLen=nBlocksSize ? Math.ceil((nInLen * 3 + 1 >> 2) / nBlocksSize) * nBlocksSize:nInLen * 3 + 1 >> 2,
taBytes=new Uint8Array(nOutLen);
for (var nMod3, nMod4, nUint24=0, nOutIdx=0, nInIdx=0; nInIdx < nInLen; nInIdx++){
nMod4=nInIdx & 3;
nUint24 |=this.b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;
if(nMod4===3||nInLen - nInIdx===1){
for (nMod3=0; nMod3 < 3&&nOutIdx < nOutLen; nMod3++, nOutIdx++){
taBytes[nOutIdx]=nUint24 >>> (16 >>> nMod3 & 24) & 255;
}
nUint24=0;
}}
return taBytes;
},
upload: function(image_data_uri, target_url, callback){
var form_elem_name=this.params.upload_name||'webcam';
var image_fmt='';
if(image_data_uri.match(/^data\:image\/(\w+)/))
image_fmt=RegExp.$1;
else
throw "Cannot locate image format in Data URI";
var raw_image_data=image_data_uri.replace(/^data\:image\/\w+\;base64\,/, '');
var http=new XMLHttpRequest();
http.open("POST", target_url, true);
if(http.upload&&http.upload.addEventListener){
http.upload.addEventListener('progress', function(e){
if(e.lengthComputable){
var progress=e.loaded / e.total;
Webcam.dispatch('uploadProgress', progress, e);
}}, false);
}
var self=this;
http.onload=function(){
if(callback) callback.apply(self, [http.status, http.responseText, http.statusText]);
Webcam.dispatch('uploadComplete', http.status, http.responseText, http.statusText);
};
var blob=new Blob([ this.base64DecToArr(raw_image_data) ], {type: 'image/'+image_fmt});
var form=new FormData();
form.append(form_elem_name, blob, form_elem_name+"."+image_fmt.replace(/e/, ''));
http.send(form);
}};
Webcam.init();
if(typeof define==='function'&&define.amd){
define(function(){ return Webcam; });
}
else if(typeof module==='object'&&module.exports){
module.exports=Webcam;
}else{
window.Webcam=Webcam;
}}(window));
(function($, window, document, undefined){
function CI_Webcam(elements, successCallback, errorCallback){
this.element=elements.video;
this.stream=null;
}
CI_Webcam.prototype={
};
function ci_modal(){
this.target_image=null;
this.stream=null;
this.webcam_on=false;
this.webcam=null;
this.archive_on=false;
this.is_getusermedia=true;
this.iOS=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream;
this.init();
this.controls_event();
}
ci_modal.prototype={
init: function(){
navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;
window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL;
this.is_getusermedia=this.is_getusermedia&&!!navigator.getUserMedia&&!!window.URL;
$("body").append('<div id="ci-modal-bg"></div><div id="ci-modal"><div class="ci-modal-body"></div></div>');
if(typeof Webcam=='object')
this.webcam=Webcam;
},
controls_event: function(){
var imgobj=this;
$("body").on("click", ".delete_avatar", function(){
delete_btn=$(this);
var avatar_url=delete_btn.parent().find('.ci_choose_image').attr('src');
delete_btn.parent().find('input[name="wp-user-avatar-deleted-url[]"]').val(avatar_url);
$(this).hide();
delete_btn.parent().find('input[name="wpua_avatar"]').val(delete_btn.attr('data-nonce'));
delete_btn.parent().find('.ci_choose_image').attr('src', $('#default_avatar').val());
delete_btn.parent().find('.reset_avatar').show().click(function(){
delete_btn.parent().find('.ci_choose_image').attr('src', avatar_url);
$(this).hide();
delete_btn.show();
delete_btn.parent().find('.wp-user-avatar-url').val('');
delete_btn.parent().find('input[name="wp-user-avatar-deleted-url[]"]').val('');
delete_btn.parent().find('input[name="wpua_avatar"]').val('');
});
});
$("body").on("click", ".ci_controls .icon-close", function(e){
e.preventDefault();
imgobj.close();
});
$("body").on("click", ".ci_controls .icon-disk", function(e){
e.preventDefault();
$(".ci_editor form").submit();
});
$("body").on("click", ".ci_controls .wpua_capture", function(e){
e.preventDefault();
$('.ci_img_container').trigger('click');
$(this).hide();
});
$("body").on("click", ".ci_controls .icon-image", function(e){
e.preventDefault();
});
$("body").on("click", ".ci_editor .wpua_capture", function(e){
if(imgobj.is_getusermedia==true){
return;
}
imgobj.showLoader();
if(imgobj.webcam){
var Webcam=imgobj.webcam;
Webcam.snap(function(dataURL){
if(imgobj.stream){
imgobj.stream.getTracks().forEach(function(track){
track.stop();
});
}
var blob=imgobj.dataURItoBlob(dataURL);
var reader=new FileReader();
var img=new Image();
reader.onload=function(e){
img.src=reader.result;
img.onload=function(){
$(".ci_editor .ci_img_container").css('transform','unset');
$(".ci_editor .ci_img_container").html(img);
imgobj.loadCropper($(".ci_editor .ci_img_container img"));
}}
reader.readAsDataURL(blob);
})
}else{
var video=$("#ci_webcam")[0];
var canvas=document.createElement('canvas');
var canvas_context=canvas.getContext('2d');
canvas.width=video.videoWidth;
canvas.height=video.videoHeight;
canvas_context.drawImage(video, 0, 0);
imgobj.stream.getTracks().forEach(function(track){
track.stop();
});
canvas.toDataURL('image/jpeg');
var dataURL=canvas.toDataURL('image/jpeg', 0.5);
var blob=imgobj.dataURItoBlob(dataURL);
var reader=new FileReader();
var img=new Image();
reader.onload=function(e){
img.src=reader.result;
img.onload=function(){
$(".ci_editor .ci_img_container").html(img);
imgobj.loadCropper($(".ci_editor .ci_img_container img"));
}}
reader.readAsDataURL(blob);
}});
$("body").on("click", ".ci_editor .ci_img_container, .ci_editor  .ci_placeholder", function(e){
e.preventDefault();
if(imgobj.archive_on==true){
var image=wp.media({
title: wpua_imgloader_vars.wpua_string.upload_image,
multiple: false
}).open()
.on('select', function(e){
imgobj.showLoader();
var uploaded_image=image.state().get('selection').first();
var image_url=uploaded_image.toJSON().url;
var image_type=uploaded_image.toJSON().mime;
var allowed_file_size=uploaded_image.toJSON().filesizeInBytes;
var img=new Image();
img.src=image_url;
img.onload=function(){
imgobj.set_image(img);
};});
}else if(imgobj.webcam_on==true){
if(imgobj.is_getusermedia==false){
return;
}
imgobj.showLoader();
if(imgobj.webcam){
var Webcam=imgobj.webcam;
Webcam.snap(function(dataURL){
if(imgobj.stream){
imgobj.stream.getTracks().forEach(function(track){
track.stop();
});
}
var blob=imgobj.dataURItoBlob(dataURL);
var reader=new FileReader();
var img=new Image();
reader.onload=function(e){
img.src=reader.result;
img.onload=function(){
$(".ci_editor .ci_img_container").css('transform','none');
$(".ci_editor .ci_img_container").html(img);
imgobj.loadCropper($(".ci_editor .ci_img_container img"));
}}
reader.readAsDataURL(blob);
})
}else{
var video=$("#ci_webcam")[0];
var canvas=document.createElement('canvas');
var canvas_context=canvas.getContext('2d');
canvas.width=video.videoWidth;
canvas.height=video.videoHeight;
canvas_context.drawImage(video, 0, 0);
imgobj.stream.getTracks().forEach(function(track){
track.stop();
});
canvas.toDataURL('image/jpeg');
var dataURL=canvas.toDataURL('image/jpeg', 0.5);
var blob=imgobj.dataURItoBlob(dataURL);
var reader=new FileReader();
var img=new Image();
reader.onload=function(e){
img.src=reader.result;
img.onload=function(){
$(".ci_editor .ci_img_container").html(img);
imgobj.loadCropper($(".ci_editor .ci_img_container img"));
}}
reader.readAsDataURL(blob);
}}else{
if(!imgobj.stream)
$('.ci_editor .ci_file_control').trigger('click');
}});
$("body").on("click", ".ci_editor .ci_img_container .jcrop-holder ", function(e){
e.stopPropagation();
});
$("body").on("click", ".ci_editor .ci_controls .icon-image ", function(e){
e.preventDefault();
if(imgobj.webcam_on==true){
imgobj.webcam_on=false;
imgobj.stopWebcam();
}
if(imgobj.mediamanager_on==true){
imgobj.mediamanager_on=false;
imgobj.disableMediaManager();
}else{
imgobj.mediamanager_on=true;
imgobj.enableMediaManager();
}});
$("body").on("click", ".ci_controls a.icon-camera", function(e){
e.preventDefault();
imgobj.disableMediaManager();
if(imgobj.webcam_on!=true&&!$(this).hasClass('webcam_on')){
imgobj.webcam_on=true;
imgobj.onWebcam();
}else{
imgobj.webcam_on=false;
imgobj.stopWebcam();
}});
$("body").on("change", ".ci_file_control", function(event){
if(event.target.files&&event.target.files[0]){
var size=event.target.files[0].size;
var type=event.target.files[0].type;
var show_image=true;
if(imgobj.fileSizeCompare(size, type)==true){
imgobj.showLoader();
var reader=new FileReader();
var img=new Image();
reader.onload=function(e){
img.src=reader.result;
img.onload=function(){
imgobj.set_image(img);
}}
reader.readAsDataURL(event.target.files[0]);
}}
});
$("body").on('dragenter', ".ci_editor .ci_img_container", function(e){
e.stopPropagation();
e.preventDefault();
});
$("body").on('dragover', ".ci_editor .ci_img_container", function(e){
e.stopPropagation();
e.preventDefault();
});
$("body").on('drop', ".ci_editor .ci_img_container", function(e){
e.preventDefault();
var files=e.originalEvent.dataTransfer.files;
if(files&&files[0]){
imgobj.showLoader();
var reader=new FileReader();
var img=new Image();
reader.onload=function(e){
img.src=reader.result;
img.onload=function(){
imgobj.set_image(img);
}}
reader.readAsDataURL(files[0]);
}});
$(document).on('dragenter', function(e){
e.stopPropagation();
e.preventDefault();
});
$(document).on('dragover', function(e){
e.stopPropagation();
e.preventDefault();
});
$(document).on('drop', function(e){
e.stopPropagation();
e.preventDefault();
});
$("body").on('submit', ".ci_editor form", function(e){
e.preventDefault();
form_data=new FormData(this);
if(typeof $(".ci_editor .ci_img_container img").attr('src')=='undefined'){
imgobj.setPlaceholder(wpua_imgloader_vars.wpua_string.no_image, wpua_imgloader_vars.wpua_string.no_image_instruction)
return false;
}
var image_type=$(".ci_editor .ci_img_container img").attr('src').match(/^data\:image\/(\w+)/);
if(typeof image_type[1]!="undefined"&&(image_type[1]=='jpeg'||image_type[1]=='png'||image_type[1]=='gif')){
form_data.append("ci_blob", $(".ci_editor .ci_img_container img").attr('src'));
form_data.append("file_type", image_type[1]);
form_data.append("action", 'wpua_save_avatar_action');
}else{
return false;
}
imgobj.showLoader();
is_wp_user_avatar=$(imgobj.target_image).data('source');
if(is_wp_user_avatar=="wp-user-avatar"){
form_data.append("no_cache", 'true');
}else if(is_wp_user_avatar=="role-based-avatar"){
form_data.append("no_cache", 'true');
form_data.append("avatar_for_role", $(imgobj.target_image).data('role'));
}
$.ajax({
url: wpua_imgloader_vars.url,
type: "POST",
data: form_data,
contentType: false,
dataType: 'json',
cache: false,
processData: false,
success: function(response){
imgobj.hideLoader();
if(typeof response.error!='undefined'){
}else{
is_custom_target=$(imgobj.target_image).data('target');
if($(imgobj.target_image).hasClass('role_based_avatar')){
$("#" + is_custom_target).attr("src", response.img);
$(imgobj.target_image).parent().parent().find('.role-based-avatar').val(response.filename);
}else{
$(imgobj.target_image).parent().find('input[name="wp-user-avatar-deleted-url[]"]').val($(imgobj.target_image).attr("src"));
if(typeof is_custom_target!='undefined'){
$("#" + is_custom_target).attr("src", response.img);
$('#wp-user-avatar-url').val(response.filename);
}else{
$(imgobj.target_image).attr("src", response.img);
$(imgobj.target_image).parent().find('.wp-user-avatar-url').val(response.filename);
}}
imgobj.close();
}}
});
});
},
set_image: function(img){
var imgobj=this;
var width_height_valid=true;
var canvas=document.createElement('canvas');
var canvas_context=canvas.getContext('2d');
var max_width=wpua_imgloader_vars.restriction.max_file_width;
var max_height=wpua_imgloader_vars.restriction.max_file_height;
if(max_width > 0&&img.width > max_width){
width_height_valid=false;
}
if(max_height > 0&&img.height > max_height){
width_height_valid=false;
}
if(width_height_valid==true){
var ratio=1;
if(img.width > 509||img.height > 330){
ratio=470 / img.width;
}else{
ratio=1;
}
canvas.width=img.width * ratio;
canvas.height=img.height * ratio;
canvas_context.scale(ratio, ratio);
canvas_context.drawImage(img, 0, 0);
var final_img=new Image();
final_img.src=canvas.toDataURL();
final_img.onload=function(){
$(".ci_editor .ci_img_container").html(final_img);
imgobj.loadCropper($(".ci_editor .ci_img_container img"));
}}else{
$(".ci_editor .ci_img_container").html('');
$(".ci_editor .ci_placeholder label").text(wpua_imgloader_vars.wpua_string.file_size_error);
$(".ci_editor .ci_placeholder p").html(wpua_imgloader_vars.wpua_string.file_size_error_description);
imgobj.placeholder('show');
imgobj.hideLoader();
}},
showLoader: function(){
var imgobj=this;
$('.ci_editor .ci_placeholder .wpua-loader').addClass('wpua_loader');
imgobj.setPlaceholder("", "");
imgobj.placeholder("show");
},
hideLoader: function(){
$('.ci_editor .ci_placeholder .wpua-loader').removeClass('wpua_loader');
},
loadCropper: function(obj){
var interval, imgobj=this;
interval=setInterval(function(){
$(obj).Jcrop({
aspectRatio: 1,
bgColor: '',
onSelect: imgobj.updateCoords
});
imgobj.placeholder('hide');
clearInterval(interval);
imgobj.hideLoader();
}, 1000);
},
fileSizeCompare: function(file_size, file_type){
var imgobj=this;
if(wpua_imgloader_vars.restriction.max_file_size < file_size){
$(".ci_editor .ci_placeholder label").text(wpua_imgloader_vars.wpua_string.file_size_error);
$(".ci_editor .ci_placeholder p").html(wpua_imgloader_vars.wpua_string.file_size_error_description);
imgobj.placeholder('show');
return false;
}else if(file_type.search('image')==-1){
$(".ci_editor .ci_placeholder label").text(wpua_imgloader_vars.wpua_string.file_type_error);
$(".ci_editor .ci_placeholder p").html(wpua_imgloader_vars.wpua_string.file_type_error_description);
imgobj.placeholder('show');
return false;
}
return true;
},
disableMediaManager: function(){
var imgobj=this;
$(".ci_editor .ci_controls .icon-image").removeClass('archive_on');
imgobj.archive_on=false;
imgobj.resetPlaceholder();
},
enableMediaManager: function(){
var imgobj=this;
$(".ci_editor .ci_controls .icon-image").addClass('archive_on');
imgobj.archive_on=true;
imgobj.setPlaceholder(wpua_imgloader_vars.wpua_string.mediamanager_on_title, wpua_imgloader_vars.wpua_string.mediamanager_on_instruction);
},
onWebcam: function(){
var imgobj=this;
imgobj.placeholder("hide");
if(imgobj.is_getusermedia==false&&!imgobj.iOS){
$('.wpua_capture').show();
}
var container=$(".ci_editor .ci_img_container")[0];
if(imgobj.iOS){
this.webcam.set({
iosPlaceholderText: '',
user_callback: function(data_uri){
container.innerHTML =
'<img src="'+data_uri+'"/>';
}});
}
if(!imgobj.stream){
if(this.webcam){
var webcam=this.webcam;
if(screen.width < screen.height){
webcam.set('constraints', {
width: container.offsetHeight,
height: container.offsetWidth
});
webcam.set({flip_horiz: true});
}else{
webcam.set('constraints', {
width: container.offsetWidth,
height: container.offsetHeight
});
webcam.set({flip_horiz: true});
}
webcam.attach(container);
webcam.on('live', function(){
imgobj.placeholder("hide");
imgobj.stream=webcam.stream;
console.log(imgobj.stream);
$(".ci_editor .ci_img_container").addClass('webcam_on');
});
webcam.on('error', function(){
imgobj.html5_webcam();
});
}else{
imgobj.placeholder("hide");
this.html5_webcam();
}}
},
html5_webcam: function(){
var imgobj=this;
this.webcam=null;
var video=document.createElement("video");
video.setAttribute("id", "ci_webcam");
$(".ci_editor .ci_img_container").html(video);
var webcam=imgobj.play($("#ci_webcam")[0]);
imgobj.placeholder("hide");
$(".ci_editor .ci_controls .icon-camera").addClass('webcam_on');
},
stopWebcam: function(){
var imgobj=this;
$('.wpua_capture').hide();
if(imgobj.stream){
imgobj.stream.getTracks().forEach(function(track){
track.stop();
});
imgobj.stream=null;
imgobj.webcam_on=false;
$("#ci_webcam").remove();
$(".ci_editor .ci_img_container").find('video, object').remove();
}
imgobj.resetPlaceholder();
imgobj.placeholder("show");
$(".ci_editor .ci_controls .icon-camera").removeClass('webcam_on');
},
placeholder: function(type){
var placeholder=$(".ci_editor .ci_placeholder");
if(type=='hide') placeholder.hide();
if(type=='show') placeholder.show();
},
setPlaceholder: function(title, message){
var placeholder=$(".ci_editor .ci_placeholder");
placeholder.find('label').html(title);
placeholder.find('p').text(message);
},
resetPlaceholder: function(){
var placeholder=$(".ci_editor .ci_placeholder");
placeholder.find('label').text(wpua_imgloader_vars.wpua_string.drop_instruction);
placeholder.find('p').text(wpua_imgloader_vars.wpua_string.control_instruction);
if(this.iOS){
$('body').find('.webcamjs-ios-placeholder').remove();
}},
dataURItoBlob: function(dataURI){
var byteString;
if(dataURI.split(',')[0].indexOf('base64') >=0)
byteString=atob(dataURI.split(',')[1]);
else
byteString=unescape(dataURI.split(',')[1]);
var mimeString=dataURI.split(',')[0].split(':')[1].split(';')[0];
var ia=new Uint8Array(byteString.length);
for (var i=0; i < byteString.length; i++){
ia[i]=byteString.charCodeAt(i);
}
return new Blob([ia], {
type: mimeString
});
},
show: function(){
this.content(this.editor());
$("#ci-modal, #ci-modal-bg").toggleClass("active");
},
content: function(obj){
$("#ci-modal .ci-modal-body").html("");
$("#ci-modal .ci-modal-body").append(obj);
},
updateCoords: function(c){
var imgobj=this;
$('.ci_editor form input[name="ci_crop_x"]').val(c.x);
$('.ci_editor form input[name="ci_crop_y"]').val(c.y);
$('.ci_editor form input[name="ci_crop_w"]').val(c.w);
$('.ci_editor form input[name="ci_crop_h"]').val(c.h);
},
editor: function(){
var media_uploader="",
webcam_uploader="";
if(wpua_imgloader_vars.WPUA_MEDIA=='true')
media_uploader='<a title="' + wpua_imgloader_vars.wpua_string.media_uploader + '" href="" class="fa icon-image"></a>';
if(wpua_imgloader_vars.wpua_webcam=='true')
webcam_uploader +='<a title="' + wpua_imgloader_vars.wpua_string.webcam_on + '" href="" class="fa icon-camera"></a>';
$editor='<div class="ci_editor"><form class="wpua_image_form" enctype="multipart/form-data" action="ajax_file.php" method="post"><input type="hidden"  name="ci_crop_x" /><input type="hidden"  name="ci_crop_y" /><input type="hidden"  name="ci_crop_w" /><input type="hidden"  name="ci_crop_h" /><div class="ci_img_container"></div><div class="ci_controls">' + media_uploader + '<input name="ci_file_control" class="ci_file_control" type="file"  />' + webcam_uploader + '<a title="' + wpua_imgloader_vars.wpua_string.close + '" href="" class="fa icon-close"></a><a title="' + wpua_imgloader_vars.wpua_string.save + '" href="" class="fa icon-disk"></a><a title="Title" href="" class="wpua_capture">' + wpua_imgloader_vars.wpua_string.capture_image + '</a></div><div class="ci_placeholder"><label>' + wpua_imgloader_vars.wpua_string.drop_instruction + ' </label><p>' + wpua_imgloader_vars.wpua_string.control_instruction + '</p><div class="wpua-loader"></div></div></form></div>';
return $editor;
},
close: function(){
var imgobj=this;
imgobj.stopWebcam();
$("#ci-modal, #ci-modal-bg").removeClass("active");
},
play: function(video){
var imgobj=this;
function successCallback(stream){
imgobj.stream=stream;
if(video.mozSrcObject!==undefined){
video.mozSrcObject=imgobj.stream;
}else{
video.src=(window.URL&&window.URL.createObjectURL(imgobj.stream))||imgobj.stream;
}
video.play();
}
function errorCallback(error){
imgobj.stopWebcam();
}
navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;
window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL;
if(navigator.getUserMedia){
navigator.getUserMedia({
video: true
}, successCallback, errorCallback);
}else{
console.log('Native web camera streaming (getUserMedia) not supported in this browser.');
}}
}
function ci_choose_image(element, options){
this.element=element;
this.config=options;
this.modal=options['modal'];
this.init();
}
ci_choose_image.prototype={
init: function(){
var imgobj=this;
$(imgobj.element).wrap("<div class='avatar_container'></div>");
elem_tag=$(imgobj.element).prop('tagName').toLowerCase();
if(elem_tag=='img'){
$(imgobj.element).parent().append("<input type='hidden' name='wp-user-avatar-deleted-url[]' value=''><input type='hidden' name='wp-user-avatar-url[]' class='wp-user-avatar-url' value=''><i class='icon-edit'></i><i class='delete_avatar icon-trash'></i><i style='display:none;' class='reset_avatar icon-undo'></i>");
}
imgobj.controls_event();
},
controls_event: function(){
var imgobj=this;
elem_tag=$(imgobj.element).prop('tagName').toLowerCase();
if(elem_tag!='img'){
$(imgobj.element).on("click", function(){
imgobj.modal.target_image=imgobj.element;
imgobj.modal.show();
});
}else{
$(imgobj.element).parent().on("click", ".icon-edit", function(){
imgobj.modal.target_image=imgobj.element;
imgobj.modal.show();
});
}}
}
$.fn.ci_choose_image=function(options){
var modal=new ci_modal();
options["modal"]=modal;
this.each(function(){
if(!$.data(this, "ci_choose_image")){
$.data(this, "ci_choose_image", new ci_choose_image(this, options));
}});
};
$(document).ready(function(){
$(".ci_choose_image").ci_choose_image({});
$("input[name='avatar_storage_option']").change(function(){
$(".wpua_media_storage").hide();
$(".wpua_aws_storage").hide();
$(".wpua_dropbox_storage").hide();
$(".wpua_directory_storage").hide();
$(".wpua_" + $("input[name='avatar_storage_option']:checked").val() + "_storage").show();
});
$("input[name='avatar_storage_option']").trigger("change");
});
}(jQuery, window, document));
!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){"use strict";var b=window.Slick||{};b=function(){function c(c,d){var f,e=this;e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(b,c){return a('<button type="button" data-role="none" role="button" tabindex="0" />').text(c+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},e.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},a.extend(e,e.initials),e.activeBreakpoint=null,e.animType=null,e.animProp=null,e.breakpoints=[],e.breakpointSettings=[],e.cssTransitions=!1,e.focussed=!1,e.interrupted=!1,e.hidden="hidden",e.paused=!0,e.positionProp=null,e.respondTo=null,e.rowCount=1,e.shouldClick=!0,e.$slider=a(c),e.$slidesCache=null,e.transformType=null,e.transitionType=null,e.visibilityChange="visibilitychange",e.windowWidth=0,e.windowTimer=null,f=a(c).data("slick")||{},e.options=a.extend({},e.defaults,d,f),e.currentSlide=e.options.initialSlide,e.originalSettings=e.options,"undefined"!=typeof document.mozHidden?(e.hidden="mozHidden",e.visibilityChange="mozvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(e.hidden="webkitHidden",e.visibilityChange="webkitvisibilitychange"),e.autoPlay=a.proxy(e.autoPlay,e),e.autoPlayClear=a.proxy(e.autoPlayClear,e),e.autoPlayIterator=a.proxy(e.autoPlayIterator,e),e.changeSlide=a.proxy(e.changeSlide,e),e.clickHandler=a.proxy(e.clickHandler,e),e.selectHandler=a.proxy(e.selectHandler,e),e.setPosition=a.proxy(e.setPosition,e),e.swipeHandler=a.proxy(e.swipeHandler,e),e.dragHandler=a.proxy(e.dragHandler,e),e.keyHandler=a.proxy(e.keyHandler,e),e.instanceUid=b++,e.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,e.registerBreakpoints(),e.init(!0)}var b=0;return c}(),b.prototype.activateADA=function(){var a=this;a.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},b.prototype.addSlide=b.prototype.slickAdd=function(b,c,d){var e=this;if("boolean"==typeof c)d=c,c=null;else if(0>c||c>=e.slideCount)return!1;e.unload(),"number"==typeof c?0===c&&0===e.$slides.length?a(b).appendTo(e.$slideTrack):d?a(b).insertBefore(e.$slides.eq(c)):a(b).insertAfter(e.$slides.eq(c)):d===!0?a(b).prependTo(e.$slideTrack):a(b).appendTo(e.$slideTrack),e.$slides=e.$slideTrack.children(this.options.slide),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.append(e.$slides),e.$slides.each(function(b,c){a(c).attr("data-slick-index",b)}),e.$slidesCache=e.$slides,e.reinit()},b.prototype.animateHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.animate({height:b},a.options.speed)}},b.prototype.animateSlide=function(b,c){var d={},e=this;e.animateHeight(),e.options.rtl===!0&&e.options.vertical===!1&&(b=-b),e.transformsEnabled===!1?e.options.vertical===!1?e.$slideTrack.animate({left:b},e.options.speed,e.options.easing,c):e.$slideTrack.animate({top:b},e.options.speed,e.options.easing,c):e.cssTransitions===!1?(e.options.rtl===!0&&(e.currentLeft=-e.currentLeft),a({animStart:e.currentLeft}).animate({animStart:b},{duration:e.options.speed,easing:e.options.easing,step:function(a){a=Math.ceil(a),e.options.vertical===!1?(d[e.animType]="translate("+a+"px, 0px)",e.$slideTrack.css(d)):(d[e.animType]="translate(0px,"+a+"px)",e.$slideTrack.css(d))},complete:function(){c&&c.call()}})):(e.applyTransition(),b=Math.ceil(b),e.options.vertical===!1?d[e.animType]="translate3d("+b+"px, 0px, 0px)":d[e.animType]="translate3d(0px,"+b+"px, 0px)",e.$slideTrack.css(d),c&&setTimeout(function(){e.disableTransition(),c.call()},e.options.speed))},b.prototype.getNavTarget=function(){var b=this,c=b.options.asNavFor;return c&&null!==c&&(c=a(c).not(b.$slider)),c},b.prototype.asNavFor=function(b){var c=this,d=c.getNavTarget();null!==d&&"object"==typeof d&&d.each(function(){var c=a(this).slick("getSlick");c.unslicked||c.slideHandler(b,!0)})},b.prototype.applyTransition=function(a){var b=this,c={};b.options.fade===!1?c[b.transitionType]=b.transformType+" "+b.options.speed+"ms "+b.options.cssEase:c[b.transitionType]="opacity "+b.options.speed+"ms "+b.options.cssEase,b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.autoPlay=function(){var a=this;a.autoPlayClear(),a.slideCount>a.options.slidesToShow&&(a.autoPlayTimer=setInterval(a.autoPlayIterator,a.options.autoplaySpeed))},b.prototype.autoPlayClear=function(){var a=this;a.autoPlayTimer&&clearInterval(a.autoPlayTimer)},b.prototype.autoPlayIterator=function(){var a=this,b=a.currentSlide+a.options.slidesToScroll;a.paused||a.interrupted||a.focussed||(a.options.infinite===!1&&(1===a.direction&&a.currentSlide+1===a.slideCount-1?a.direction=0:0===a.direction&&(b=a.currentSlide-a.options.slidesToScroll,a.currentSlide-1===0&&(a.direction=1))),a.slideHandler(b))},b.prototype.buildArrows=function(){var b=this;b.options.arrows===!0&&(b.$prevArrow=a(b.options.prevArrow).addClass("slick-arrow"),b.$nextArrow=a(b.options.nextArrow).addClass("slick-arrow"),b.slideCount>b.options.slidesToShow?(b.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),b.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.prependTo(b.options.appendArrows),b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.appendTo(b.options.appendArrows),b.options.infinite!==!0&&b.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):b.$prevArrow.add(b.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},b.prototype.buildDots=function(){var c,d,b=this;if(b.options.dots===!0&&b.slideCount>b.options.slidesToShow){for(b.$slider.addClass("slick-dotted"),d=a("<ul />").addClass(b.options.dotsClass),c=0;c<=b.getDotCount();c+=1)d.append(a("<li />").append(b.options.customPaging.call(this,b,c)));b.$dots=d.appendTo(b.options.appendDots),b.$dots.find("li").first().addClass("slick-active").attr("aria-hidden","false")}},b.prototype.buildOut=function(){var b=this;b.$slides=b.$slider.children(b.options.slide+":not(.slick-cloned)").addClass("slick-slide"),b.slideCount=b.$slides.length,b.$slides.each(function(b,c){a(c).attr("data-slick-index",b).data("originalStyling",a(c).attr("style")||"")}),b.$slider.addClass("slick-slider"),b.$slideTrack=0===b.slideCount?a('<div class="slick-track"/>').appendTo(b.$slider):b.$slides.wrapAll('<div class="slick-track"/>').parent(),b.$list=b.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent(),b.$slideTrack.css("opacity",0),(b.options.centerMode===!0||b.options.swipeToSlide===!0)&&(b.options.slidesToScroll=1),a("img[data-lazy]",b.$slider).not("[src]").addClass("slick-loading"),b.setupInfinite(),b.buildArrows(),b.buildDots(),b.updateDots(),b.setSlideClasses("number"==typeof b.currentSlide?b.currentSlide:0),b.options.draggable===!0&&b.$list.addClass("draggable")},b.prototype.buildRows=function(){var b,c,d,e,f,g,h,a=this;if(e=document.createDocumentFragment(),g=a.$slider.children(),a.options.rows>1){for(h=a.options.slidesPerRow*a.options.rows,f=Math.ceil(g.length/h),b=0;f>b;b++){var i=document.createElement("div");for(c=0;c<a.options.rows;c++){var j=document.createElement("div");for(d=0;d<a.options.slidesPerRow;d++){var k=b*h+(c*a.options.slidesPerRow+d);g.get(k)&&j.appendChild(g.get(k))}i.appendChild(j)}e.appendChild(i)}a.$slider.empty().append(e),a.$slider.children().children().children().css({width:100/a.options.slidesPerRow+"%",display:"inline-block"})}},b.prototype.checkResponsive=function(b,c){var e,f,g,d=this,h=!1,i=d.$slider.width(),j=window.innerWidth||a(window).width();if("window"===d.respondTo?g=j:"slider"===d.respondTo?g=i:"min"===d.respondTo&&(g=Math.min(j,i)),d.options.responsive&&d.options.responsive.length&&null!==d.options.responsive){f=null;for(e in d.breakpoints)d.breakpoints.hasOwnProperty(e)&&(d.originalSettings.mobileFirst===!1?g<d.breakpoints[e]&&(f=d.breakpoints[e]):g>d.breakpoints[e]&&(f=d.breakpoints[e]));null!==f?null!==d.activeBreakpoint?(f!==d.activeBreakpoint||c)&&(d.activeBreakpoint=f,"unslick"===d.breakpointSettings[f]?d.unslick(f):(d.options=a.extend({},d.originalSettings,d.breakpointSettings[f]),b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b)),h=f):(d.activeBreakpoint=f,"unslick"===d.breakpointSettings[f]?d.unslick(f):(d.options=a.extend({},d.originalSettings,d.breakpointSettings[f]),b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b)),h=f):null!==d.activeBreakpoint&&(d.activeBreakpoint=null,d.options=d.originalSettings,b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b),h=f),b||h===!1||d.$slider.trigger("breakpoint",[d,h])}},b.prototype.changeSlide=function(b,c){var f,g,h,d=this,e=a(b.currentTarget);switch(e.is("a")&&b.preventDefault(),e.is("li")||(e=e.closest("li")),h=d.slideCount%d.options.slidesToScroll!==0,f=h?0:(d.slideCount-d.currentSlide)%d.options.slidesToScroll,b.data.message){case"previous":g=0===f?d.options.slidesToScroll:d.options.slidesToShow-f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide-g,!1,c);break;case"next":g=0===f?d.options.slidesToScroll:f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide+g,!1,c);break;case"index":var i=0===b.data.index?0:b.data.index||e.index()*d.options.slidesToScroll;d.slideHandler(d.checkNavigable(i),!1,c),e.children().trigger("focus");break;default:return}},b.prototype.checkNavigable=function(a){var c,d,b=this;if(c=b.getNavigableIndexes(),d=0,a>c[c.length-1])a=c[c.length-1];else for(var e in c){if(a<c[e]){a=d;break}d=c[e]}return a},b.prototype.cleanUpEvents=function(){var b=this;b.options.dots&&null!==b.$dots&&a("li",b.$dots).off("click.slick",b.changeSlide).off("mouseenter.slick",a.proxy(b.interrupt,b,!0)).off("mouseleave.slick",a.proxy(b.interrupt,b,!1)),b.$slider.off("focus.slick blur.slick"),b.options.arrows===!0&&b.slideCount>b.options.slidesToShow&&(b.$prevArrow&&b.$prevArrow.off("click.slick",b.changeSlide),b.$nextArrow&&b.$nextArrow.off("click.slick",b.changeSlide)),b.$list.off("touchstart.slick mousedown.slick",b.swipeHandler),b.$list.off("touchmove.slick mousemove.slick",b.swipeHandler),b.$list.off("touchend.slick mouseup.slick",b.swipeHandler),b.$list.off("touchcancel.slick mouseleave.slick",b.swipeHandler),b.$list.off("click.slick",b.clickHandler),a(document).off(b.visibilityChange,b.visibility),b.cleanUpSlideEvents(),b.options.accessibility===!0&&b.$list.off("keydown.slick",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().off("click.slick",b.selectHandler),a(window).off("orientationchange.slick.slick-"+b.instanceUid,b.orientationChange),a(window).off("resize.slick.slick-"+b.instanceUid,b.resize),a("[draggable!=true]",b.$slideTrack).off("dragstart",b.preventDefault),a(window).off("load.slick.slick-"+b.instanceUid,b.setPosition),a(document).off("ready.slick.slick-"+b.instanceUid,b.setPosition)},b.prototype.cleanUpSlideEvents=function(){var b=this;b.$list.off("mouseenter.slick",a.proxy(b.interrupt,b,!0)),b.$list.off("mouseleave.slick",a.proxy(b.interrupt,b,!1))},b.prototype.cleanUpRows=function(){var b,a=this;a.options.rows>1&&(b=a.$slides.children().children(),b.removeAttr("style"),a.$slider.empty().append(b))},b.prototype.clickHandler=function(a){var b=this;b.shouldClick===!1&&(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault())},b.prototype.destroy=function(b){var c=this;c.autoPlayClear(),c.touchObject={},c.cleanUpEvents(),a(".slick-cloned",c.$slider).detach(),c.$dots&&c.$dots.remove(),c.$prevArrow&&c.$prevArrow.length&&(c.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),c.htmlExpr.test(c.options.prevArrow)&&c.$prevArrow.remove()),c.$nextArrow&&c.$nextArrow.length&&(c.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),c.htmlExpr.test(c.options.nextArrow)&&c.$nextArrow.remove()),c.$slides&&(c.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){a(this).attr("style",a(this).data("originalStyling"))}),c.$slideTrack.children(this.options.slide).detach(),c.$slideTrack.detach(),c.$list.detach(),c.$slider.append(c.$slides)),c.cleanUpRows(),c.$slider.removeClass("slick-slider"),c.$slider.removeClass("slick-initialized"),c.$slider.removeClass("slick-dotted"),c.unslicked=!0,b||c.$slider.trigger("destroy",[c])},b.prototype.disableTransition=function(a){var b=this,c={};c[b.transitionType]="",b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.fadeSlide=function(a,b){var c=this;c.cssTransitions===!1?(c.$slides.eq(a).css({zIndex:c.options.zIndex}),c.$slides.eq(a).animate({opacity:1},c.options.speed,c.options.easing,b)):(c.applyTransition(a),c.$slides.eq(a).css({opacity:1,zIndex:c.options.zIndex}),b&&setTimeout(function(){c.disableTransition(a),b.call()},c.options.speed))},b.prototype.fadeSlideOut=function(a){var b=this;b.cssTransitions===!1?b.$slides.eq(a).animate({opacity:0,zIndex:b.options.zIndex-2},b.options.speed,b.options.easing):(b.applyTransition(a),b.$slides.eq(a).css({opacity:0,zIndex:b.options.zIndex-2}))},b.prototype.filterSlides=b.prototype.slickFilter=function(a){var b=this;null!==a&&(b.$slidesCache=b.$slides,b.unload(),b.$slideTrack.children(this.options.slide).detach(),b.$slidesCache.filter(a).appendTo(b.$slideTrack),b.reinit())},b.prototype.focusHandler=function(){var b=this;b.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*:not(.slick-arrow)",function(c){c.stopImmediatePropagation();var d=a(this);setTimeout(function(){b.options.pauseOnFocus&&(b.focussed=d.is(":focus"),b.autoPlay())},0)})},b.prototype.getCurrent=b.prototype.slickCurrentSlide=function(){var a=this;return a.currentSlide},b.prototype.getDotCount=function(){var a=this,b=0,c=0,d=0;if(a.options.infinite===!0)for(;b<a.slideCount;)++d,b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else if(a.options.centerMode===!0)d=a.slideCount;else if(a.options.asNavFor)for(;b<a.slideCount;)++d,b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else d=1+Math.ceil((a.slideCount-a.options.slidesToShow)/a.options.slidesToScroll);return d-1},b.prototype.getLeft=function(a){var c,d,f,b=this,e=0;return b.slideOffset=0,d=b.$slides.first().outerHeight(!0),b.options.infinite===!0?(b.slideCount>b.options.slidesToShow&&(b.slideOffset=b.slideWidth*b.options.slidesToShow*-1,e=d*b.options.slidesToShow*-1),b.slideCount%b.options.slidesToScroll!==0&&a+b.options.slidesToScroll>b.slideCount&&b.slideCount>b.options.slidesToShow&&(a>b.slideCount?(b.slideOffset=(b.options.slidesToShow-(a-b.slideCount))*b.slideWidth*-1,e=(b.options.slidesToShow-(a-b.slideCount))*d*-1):(b.slideOffset=b.slideCount%b.options.slidesToScroll*b.slideWidth*-1,e=b.slideCount%b.options.slidesToScroll*d*-1))):a+b.options.slidesToShow>b.slideCount&&(b.slideOffset=(a+b.options.slidesToShow-b.slideCount)*b.slideWidth,e=(a+b.options.slidesToShow-b.slideCount)*d),b.slideCount<=b.options.slidesToShow&&(b.slideOffset=0,e=0),b.options.centerMode===!0&&b.options.infinite===!0?b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)-b.slideWidth:b.options.centerMode===!0&&(b.slideOffset=0,b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)),c=b.options.vertical===!1?a*b.slideWidth*-1+b.slideOffset:a*d*-1+e,b.options.variableWidth===!0&&(f=b.slideCount<=b.options.slidesToShow||b.options.infinite===!1?b.$slideTrack.children(".slick-slide").eq(a):b.$slideTrack.children(".slick-slide").eq(a+b.options.slidesToShow),c=b.options.rtl===!0?f[0]?-1*(b.$slideTrack.width()-f[0].offsetLeft-f.width()):0:f[0]?-1*f[0].offsetLeft:0,b.options.centerMode===!0&&(f=b.slideCount<=b.options.slidesToShow||b.options.infinite===!1?b.$slideTrack.children(".slick-slide").eq(a):b.$slideTrack.children(".slick-slide").eq(a+b.options.slidesToShow+1),c=b.options.rtl===!0?f[0]?-1*(b.$slideTrack.width()-f[0].offsetLeft-f.width()):0:f[0]?-1*f[0].offsetLeft:0,c+=(b.$list.width()-f.outerWidth())/2)),c},b.prototype.getOption=b.prototype.slickGetOption=function(a){var b=this;return b.options[a]},b.prototype.getNavigableIndexes=function(){var e,a=this,b=0,c=0,d=[];for(a.options.infinite===!1?e=a.slideCount:(b=-1*a.options.slidesToScroll,c=-1*a.options.slidesToScroll,e=2*a.slideCount);e>b;)d.push(b),b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;return d},b.prototype.getSlick=function(){return this},b.prototype.getSlideCount=function(){var c,d,e,b=this;return e=b.options.centerMode===!0?b.slideWidth*Math.floor(b.options.slidesToShow/2):0,b.options.swipeToSlide===!0?(b.$slideTrack.find(".slick-slide").each(function(c,f){return f.offsetLeft-e+a(f).outerWidth()/2>-1*b.swipeLeft?(d=f,!1):void 0}),c=Math.abs(a(d).attr("data-slick-index")-b.currentSlide)||1):b.options.slidesToScroll},b.prototype.goTo=b.prototype.slickGoTo=function(a,b){var c=this;c.changeSlide({data:{message:"index",index:parseInt(a)}},b)},b.prototype.init=function(b){var c=this;a(c.$slider).hasClass("slick-initialized")||(a(c.$slider).addClass("slick-initialized"),c.buildRows(),c.buildOut(),c.setProps(),c.startLoad(),c.loadSlider(),c.initializeEvents(),c.updateArrows(),c.updateDots(),c.checkResponsive(!0),c.focusHandler()),b&&c.$slider.trigger("init",[c]),c.options.accessibility===!0&&c.initADA(),c.options.autoplay&&(c.paused=!1,c.autoPlay())},b.prototype.initADA=function(){var b=this;b.$slides.add(b.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),b.$slideTrack.attr("role","listbox"),b.$slides.not(b.$slideTrack.find(".slick-cloned")).each(function(c){a(this).attr({role:"option","aria-describedby":"slick-slide"+b.instanceUid+c})}),null!==b.$dots&&b.$dots.attr("role","tablist").find("li").each(function(c){a(this).attr({role:"presentation","aria-selected":"false","aria-controls":"navigation"+b.instanceUid+c,id:"slick-slide"+b.instanceUid+c})}).first().attr("aria-selected","true").end().find("button").attr("role","button").end().closest("div").attr("role","toolbar"),b.activateADA()},b.prototype.initArrowEvents=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},a.changeSlide),a.$nextArrow.off("click.slick").on("click.slick",{message:"next"},a.changeSlide))},b.prototype.initDotEvents=function(){var b=this;b.options.dots===!0&&b.slideCount>b.options.slidesToShow&&a("li",b.$dots).on("click.slick",{message:"index"},b.changeSlide),b.options.dots===!0&&b.options.pauseOnDotsHover===!0&&a("li",b.$dots).on("mouseenter.slick",a.proxy(b.interrupt,b,!0)).on("mouseleave.slick",a.proxy(b.interrupt,b,!1))},b.prototype.initSlideEvents=function(){var b=this;b.options.pauseOnHover&&(b.$list.on("mouseenter.slick",a.proxy(b.interrupt,b,!0)),b.$list.on("mouseleave.slick",a.proxy(b.interrupt,b,!1)))},b.prototype.initializeEvents=function(){var b=this;b.initArrowEvents(),b.initDotEvents(),b.initSlideEvents(),b.$list.on("touchstart.slick mousedown.slick",{action:"start"},b.swipeHandler),b.$list.on("touchmove.slick mousemove.slick",{action:"move"},b.swipeHandler),b.$list.on("touchend.slick mouseup.slick",{action:"end"},b.swipeHandler),b.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},b.swipeHandler),b.$list.on("click.slick",b.clickHandler),a(document).on(b.visibilityChange,a.proxy(b.visibility,b)),b.options.accessibility===!0&&b.$list.on("keydown.slick",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on("click.slick",b.selectHandler),a(window).on("orientationchange.slick.slick-"+b.instanceUid,a.proxy(b.orientationChange,b)),a(window).on("resize.slick.slick-"+b.instanceUid,a.proxy(b.resize,b)),a("[draggable!=true]",b.$slideTrack).on("dragstart",b.preventDefault),a(window).on("load.slick.slick-"+b.instanceUid,b.setPosition),a(document).on("ready.slick.slick-"+b.instanceUid,b.setPosition)},b.prototype.initUI=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.show(),a.$nextArrow.show()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.show()},b.prototype.keyHandler=function(a){var b=this;a.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===a.keyCode&&b.options.accessibility===!0?b.changeSlide({data:{message:b.options.rtl===!0?"next":"previous"}}):39===a.keyCode&&b.options.accessibility===!0&&b.changeSlide({data:{message:b.options.rtl===!0?"previous":"next"}}))},b.prototype.lazyLoad=function(){function g(c){a("img[data-lazy]",c).each(function(){var c=a(this),d=a(this).attr("data-lazy"),e=document.createElement("img");e.onload=function(){c.animate({opacity:0},100,function(){c.attr("src",d).animate({opacity:1},200,function(){c.removeAttr("data-lazy").removeClass("slick-loading")}),b.$slider.trigger("lazyLoaded",[b,c,d])})},e.onerror=function(){c.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),b.$slider.trigger("lazyLoadError",[b,c,d])},e.src=d})}var c,d,e,f,b=this;b.options.centerMode===!0?b.options.infinite===!0?(e=b.currentSlide+(b.options.slidesToShow/2+1),f=e+b.options.slidesToShow+2):(e=Math.max(0,b.currentSlide-(b.options.slidesToShow/2+1)),f=2+(b.options.slidesToShow/2+1)+b.currentSlide):(e=b.options.infinite?b.options.slidesToShow+b.currentSlide:b.currentSlide,f=Math.ceil(e+b.options.slidesToShow),b.options.fade===!0&&(e>0&&e--,f<=b.slideCount&&f++)),c=b.$slider.find(".slick-slide").slice(e,f),g(c),b.slideCount<=b.options.slidesToShow?(d=b.$slider.find(".slick-slide"),g(d)):b.currentSlide>=b.slideCount-b.options.slidesToShow?(d=b.$slider.find(".slick-cloned").slice(0,b.options.slidesToShow),g(d)):0===b.currentSlide&&(d=b.$slider.find(".slick-cloned").slice(-1*b.options.slidesToShow),g(d))},b.prototype.loadSlider=function(){var a=this;a.setPosition(),a.$slideTrack.css({opacity:1}),a.$slider.removeClass("slick-loading"),a.initUI(),"progressive"===a.options.lazyLoad&&a.progressiveLazyLoad()},b.prototype.next=b.prototype.slickNext=function(){var a=this;a.changeSlide({data:{message:"next"}})},b.prototype.orientationChange=function(){var a=this;a.checkResponsive(),a.setPosition()},b.prototype.pause=b.prototype.slickPause=function(){var a=this;a.autoPlayClear(),a.paused=!0},b.prototype.play=b.prototype.slickPlay=function(){var a=this;a.autoPlay(),a.options.autoplay=!0,a.paused=!1,a.focussed=!1,a.interrupted=!1},b.prototype.postSlide=function(a){var b=this;b.unslicked||(b.$slider.trigger("afterChange",[b,a]),b.animating=!1,b.setPosition(),b.swipeLeft=null,b.options.autoplay&&b.autoPlay(),b.options.accessibility===!0&&b.initADA())},b.prototype.prev=b.prototype.slickPrev=function(){var a=this;a.changeSlide({data:{message:"previous"}})},b.prototype.preventDefault=function(a){a.preventDefault()},b.prototype.progressiveLazyLoad=function(b){b=b||1;var e,f,g,c=this,d=a("img[data-lazy]",c.$slider);d.length?(e=d.first(),f=e.attr("data-lazy"),g=document.createElement("img"),g.onload=function(){e.attr("src",f).removeAttr("data-lazy").removeClass("slick-loading"),c.options.adaptiveHeight===!0&&c.setPosition(),c.$slider.trigger("lazyLoaded",[c,e,f]),c.progressiveLazyLoad()},g.onerror=function(){3>b?setTimeout(function(){c.progressiveLazyLoad(b+1)},500):(e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),c.$slider.trigger("lazyLoadError",[c,e,f]),c.progressiveLazyLoad())},g.src=f):c.$slider.trigger("allImagesLoaded",[c])},b.prototype.refresh=function(b){var d,e,c=this;e=c.slideCount-c.options.slidesToShow,!c.options.infinite&&c.currentSlide>e&&(c.currentSlide=e),c.slideCount<=c.options.slidesToShow&&(c.currentSlide=0),d=c.currentSlide,c.destroy(!0),a.extend(c,c.initials,{currentSlide:d}),c.init(),b||c.changeSlide({data:{message:"index",index:d}},!1)},b.prototype.registerBreakpoints=function(){var c,d,e,b=this,f=b.options.responsive||null;if("array"===a.type(f)&&f.length){b.respondTo=b.options.respondTo||"window";for(c in f)if(e=b.breakpoints.length-1,d=f[c].breakpoint,f.hasOwnProperty(c)){for(;e>=0;)b.breakpoints[e]&&b.breakpoints[e]===d&&b.breakpoints.splice(e,1),e--;b.breakpoints.push(d),b.breakpointSettings[d]=f[c].settings}b.breakpoints.sort(function(a,c){return b.options.mobileFirst?a-c:c-a})}},b.prototype.reinit=function(){var b=this;b.$slides=b.$slideTrack.children(b.options.slide).addClass("slick-slide"),b.slideCount=b.$slides.length,b.currentSlide>=b.slideCount&&0!==b.currentSlide&&(b.currentSlide=b.currentSlide-b.options.slidesToScroll),b.slideCount<=b.options.slidesToShow&&(b.currentSlide=0),b.registerBreakpoints(),b.setProps(),b.setupInfinite(),b.buildArrows(),b.updateArrows(),b.initArrowEvents(),b.buildDots(),b.updateDots(),b.initDotEvents(),b.cleanUpSlideEvents(),b.initSlideEvents(),b.checkResponsive(!1,!0),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on("click.slick",b.selectHandler),b.setSlideClasses("number"==typeof b.currentSlide?b.currentSlide:0),b.setPosition(),b.focusHandler(),b.paused=!b.options.autoplay,b.autoPlay(),b.$slider.trigger("reInit",[b])},b.prototype.resize=function(){var b=this;a(window).width()!==b.windowWidth&&(clearTimeout(b.windowDelay),b.windowDelay=window.setTimeout(function(){b.windowWidth=a(window).width(),b.checkResponsive(),b.unslicked||b.setPosition()},50))},b.prototype.removeSlide=b.prototype.slickRemove=function(a,b,c){var d=this;return"boolean"==typeof a?(b=a,a=b===!0?0:d.slideCount-1):a=b===!0?--a:a,d.slideCount<1||0>a||a>d.slideCount-1?!1:(d.unload(),c===!0?d.$slideTrack.children().remove():d.$slideTrack.children(this.options.slide).eq(a).remove(),d.$slides=d.$slideTrack.children(this.options.slide),d.$slideTrack.children(this.options.slide).detach(),d.$slideTrack.append(d.$slides),d.$slidesCache=d.$slides,void d.reinit())},b.prototype.setCSS=function(a){var d,e,b=this,c={};b.options.rtl===!0&&(a=-a),d="left"==b.positionProp?Math.ceil(a)+"px":"0px",e="top"==b.positionProp?Math.ceil(a)+"px":"0px",c[b.positionProp]=a,b.transformsEnabled===!1?b.$slideTrack.css(c):(c={},b.cssTransitions===!1?(c[b.animType]="translate("+d+", "+e+")",b.$slideTrack.css(c)):(c[b.animType]="translate3d("+d+", "+e+", 0px)",b.$slideTrack.css(c)))},b.prototype.setDimensions=function(){var a=this;a.options.vertical===!1?a.options.centerMode===!0&&a.$list.css({padding:"0px "+a.options.centerPadding}):(a.$list.height(a.$slides.first().outerHeight(!0)*a.options.slidesToShow),a.options.centerMode===!0&&a.$list.css({padding:a.options.centerPadding+" 0px"})),a.listWidth=a.$list.width(),a.listHeight=a.$list.height(),a.options.vertical===!1&&a.options.variableWidth===!1?(a.slideWidth=Math.ceil(a.listWidth/a.options.slidesToShow),a.$slideTrack.width(Math.ceil(a.slideWidth*a.$slideTrack.children(".slick-slide").length))):a.options.variableWidth===!0?a.$slideTrack.width(5e3*a.slideCount):(a.slideWidth=Math.ceil(a.listWidth),a.$slideTrack.height(Math.ceil(a.$slides.first().outerHeight(!0)*a.$slideTrack.children(".slick-slide").length)));var b=a.$slides.first().outerWidth(!0)-a.$slides.first().width();a.options.variableWidth===!1&&a.$slideTrack.children(".slick-slide").width(a.slideWidth-b)},b.prototype.setFade=function(){var c,b=this;b.$slides.each(function(d,e){c=b.slideWidth*d*-1,b.options.rtl===!0?a(e).css({position:"relative",right:c,top:0,zIndex:b.options.zIndex-2,opacity:0}):a(e).css({position:"relative",left:c,top:0,zIndex:b.options.zIndex-2,opacity:0})}),b.$slides.eq(b.currentSlide).css({zIndex:b.options.zIndex-1,opacity:1})},b.prototype.setHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.css("height",b)}},b.prototype.setOption=b.prototype.slickSetOption=function(){var c,d,e,f,h,b=this,g=!1;if("object"===a.type(arguments[0])?(e=arguments[0],g=arguments[1],h="multiple"):"string"===a.type(arguments[0])&&(e=arguments[0],f=arguments[1],g=arguments[2],"responsive"===arguments[0]&&"array"===a.type(arguments[1])?h="responsive":"undefined"!=typeof arguments[1]&&(h="single")),"single"===h)b.options[e]=f;else if("multiple"===h)a.each(e,function(a,c){b.options[a]=c});else if("responsive"===h)for(d in f)if("array"!==a.type(b.options.responsive))b.options.responsive=[f[d]];else{for(c=b.options.responsive.length-1;c>=0;)b.options.responsive[c].breakpoint===f[d].breakpoint&&b.options.responsive.splice(c,1),c--;b.options.responsive.push(f[d])}g&&(b.unload(),b.reinit())},b.prototype.setPosition=function(){var a=this;a.setDimensions(),a.setHeight(),a.options.fade===!1?a.setCSS(a.getLeft(a.currentSlide)):a.setFade(),a.$slider.trigger("setPosition",[a])},b.prototype.setProps=function(){var a=this,b=document.body.style;a.positionProp=a.options.vertical===!0?"top":"left","top"===a.positionProp?a.$slider.addClass("slick-vertical"):a.$slider.removeClass("slick-vertical"),(void 0!==b.WebkitTransition||void 0!==b.MozTransition||void 0!==b.msTransition)&&a.options.useCSS===!0&&(a.cssTransitions=!0),a.options.fade&&("number"==typeof a.options.zIndex?a.options.zIndex<3&&(a.options.zIndex=3):a.options.zIndex=a.defaults.zIndex),void 0!==b.OTransform&&(a.animType="OTransform",a.transformType="-o-transform",a.transitionType="OTransition",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.MozTransform&&(a.animType="MozTransform",a.transformType="-moz-transform",a.transitionType="MozTransition",void 0===b.perspectiveProperty&&void 0===b.MozPerspective&&(a.animType=!1)),void 0!==b.webkitTransform&&(a.animType="webkitTransform",a.transformType="-webkit-transform",a.transitionType="webkitTransition",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.msTransform&&(a.animType="msTransform",a.transformType="-ms-transform",a.transitionType="msTransition",void 0===b.msTransform&&(a.animType=!1)),void 0!==b.transform&&a.animType!==!1&&(a.animType="transform",a.transformType="transform",a.transitionType="transition"),a.transformsEnabled=a.options.useTransform&&null!==a.animType&&a.animType!==!1},b.prototype.setSlideClasses=function(a){var c,d,e,f,b=this;d=b.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),b.$slides.eq(a).addClass("slick-current"),b.options.centerMode===!0?(c=Math.floor(b.options.slidesToShow/2),b.options.infinite===!0&&(a>=c&&a<=b.slideCount-1-c?b.$slides.slice(a-c,a+c+1).addClass("slick-active").attr("aria-hidden","false"):(e=b.options.slidesToShow+a,
d.slice(e-c+1,e+c+2).addClass("slick-active").attr("aria-hidden","false")),0===a?d.eq(d.length-1-b.options.slidesToShow).addClass("slick-center"):a===b.slideCount-1&&d.eq(b.options.slidesToShow).addClass("slick-center")),b.$slides.eq(a).addClass("slick-center")):a>=0&&a<=b.slideCount-b.options.slidesToShow?b.$slides.slice(a,a+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):d.length<=b.options.slidesToShow?d.addClass("slick-active").attr("aria-hidden","false"):(f=b.slideCount%b.options.slidesToShow,e=b.options.infinite===!0?b.options.slidesToShow+a:a,b.options.slidesToShow==b.options.slidesToScroll&&b.slideCount-a<b.options.slidesToShow?d.slice(e-(b.options.slidesToShow-f),e+f).addClass("slick-active").attr("aria-hidden","false"):d.slice(e,e+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false")),"ondemand"===b.options.lazyLoad&&b.lazyLoad()},b.prototype.setupInfinite=function(){var c,d,e,b=this;if(b.options.fade===!0&&(b.options.centerMode=!1),b.options.infinite===!0&&b.options.fade===!1&&(d=null,b.slideCount>b.options.slidesToShow)){for(e=b.options.centerMode===!0?b.options.slidesToShow+1:b.options.slidesToShow,c=b.slideCount;c>b.slideCount-e;c-=1)d=c-1,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d-b.slideCount).prependTo(b.$slideTrack).addClass("slick-cloned");for(c=0;e>c;c+=1)d=c,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d+b.slideCount).appendTo(b.$slideTrack).addClass("slick-cloned");b.$slideTrack.find(".slick-cloned").find("[id]").each(function(){a(this).attr("id","")})}},b.prototype.interrupt=function(a){var b=this;a||b.autoPlay(),b.interrupted=a},b.prototype.selectHandler=function(b){var c=this,d=a(b.target).is(".slick-slide")?a(b.target):a(b.target).parents(".slick-slide"),e=parseInt(d.attr("data-slick-index"));return e||(e=0),c.slideCount<=c.options.slidesToShow?(c.setSlideClasses(e),void c.asNavFor(e)):void c.slideHandler(e)},b.prototype.slideHandler=function(a,b,c){var d,e,f,g,j,h=null,i=this;return b=b||!1,i.animating===!0&&i.options.waitForAnimate===!0||i.options.fade===!0&&i.currentSlide===a||i.slideCount<=i.options.slidesToShow?void 0:(b===!1&&i.asNavFor(a),d=a,h=i.getLeft(d),g=i.getLeft(i.currentSlide),i.currentLeft=null===i.swipeLeft?g:i.swipeLeft,i.options.infinite===!1&&i.options.centerMode===!1&&(0>a||a>i.getDotCount()*i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):i.options.infinite===!1&&i.options.centerMode===!0&&(0>a||a>i.slideCount-i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):(i.options.autoplay&&clearInterval(i.autoPlayTimer),e=0>d?i.slideCount%i.options.slidesToScroll!==0?i.slideCount-i.slideCount%i.options.slidesToScroll:i.slideCount+d:d>=i.slideCount?i.slideCount%i.options.slidesToScroll!==0?0:d-i.slideCount:d,i.animating=!0,i.$slider.trigger("beforeChange",[i,i.currentSlide,e]),f=i.currentSlide,i.currentSlide=e,i.setSlideClasses(i.currentSlide),i.options.asNavFor&&(j=i.getNavTarget(),j=j.slick("getSlick"),j.slideCount<=j.options.slidesToShow&&j.setSlideClasses(i.currentSlide)),i.updateDots(),i.updateArrows(),i.options.fade===!0?(c!==!0?(i.fadeSlideOut(f),i.fadeSlide(e,function(){i.postSlide(e)})):i.postSlide(e),void i.animateHeight()):void(c!==!0?i.animateSlide(h,function(){i.postSlide(e)}):i.postSlide(e))))},b.prototype.startLoad=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.hide(),a.$nextArrow.hide()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.hide(),a.$slider.addClass("slick-loading")},b.prototype.swipeDirection=function(){var a,b,c,d,e=this;return a=e.touchObject.startX-e.touchObject.curX,b=e.touchObject.startY-e.touchObject.curY,c=Math.atan2(b,a),d=Math.round(180*c/Math.PI),0>d&&(d=360-Math.abs(d)),45>=d&&d>=0?e.options.rtl===!1?"left":"right":360>=d&&d>=315?e.options.rtl===!1?"left":"right":d>=135&&225>=d?e.options.rtl===!1?"right":"left":e.options.verticalSwiping===!0?d>=35&&135>=d?"down":"up":"vertical"},b.prototype.swipeEnd=function(a){var c,d,b=this;if(b.dragging=!1,b.interrupted=!1,b.shouldClick=b.touchObject.swipeLength>10?!1:!0,void 0===b.touchObject.curX)return!1;if(b.touchObject.edgeHit===!0&&b.$slider.trigger("edge",[b,b.swipeDirection()]),b.touchObject.swipeLength>=b.touchObject.minSwipe){switch(d=b.swipeDirection()){case"left":case"down":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide+b.getSlideCount()):b.currentSlide+b.getSlideCount(),b.currentDirection=0;break;case"right":case"up":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide-b.getSlideCount()):b.currentSlide-b.getSlideCount(),b.currentDirection=1}"vertical"!=d&&(b.slideHandler(c),b.touchObject={},b.$slider.trigger("swipe",[b,d]))}else b.touchObject.startX!==b.touchObject.curX&&(b.slideHandler(b.currentSlide),b.touchObject={})},b.prototype.swipeHandler=function(a){var b=this;if(!(b.options.swipe===!1||"ontouchend"in document&&b.options.swipe===!1||b.options.draggable===!1&&-1!==a.type.indexOf("mouse")))switch(b.touchObject.fingerCount=a.originalEvent&&void 0!==a.originalEvent.touches?a.originalEvent.touches.length:1,b.touchObject.minSwipe=b.listWidth/b.options.touchThreshold,b.options.verticalSwiping===!0&&(b.touchObject.minSwipe=b.listHeight/b.options.touchThreshold),a.data.action){case"start":b.swipeStart(a);break;case"move":b.swipeMove(a);break;case"end":b.swipeEnd(a)}},b.prototype.swipeMove=function(a){var d,e,f,g,h,b=this;return h=void 0!==a.originalEvent?a.originalEvent.touches:null,!b.dragging||h&&1!==h.length?!1:(d=b.getLeft(b.currentSlide),b.touchObject.curX=void 0!==h?h[0].pageX:a.clientX,b.touchObject.curY=void 0!==h?h[0].pageY:a.clientY,b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curX-b.touchObject.startX,2))),b.options.verticalSwiping===!0&&(b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curY-b.touchObject.startY,2)))),e=b.swipeDirection(),"vertical"!==e?(void 0!==a.originalEvent&&b.touchObject.swipeLength>4&&a.preventDefault(),g=(b.options.rtl===!1?1:-1)*(b.touchObject.curX>b.touchObject.startX?1:-1),b.options.verticalSwiping===!0&&(g=b.touchObject.curY>b.touchObject.startY?1:-1),f=b.touchObject.swipeLength,b.touchObject.edgeHit=!1,b.options.infinite===!1&&(0===b.currentSlide&&"right"===e||b.currentSlide>=b.getDotCount()&&"left"===e)&&(f=b.touchObject.swipeLength*b.options.edgeFriction,b.touchObject.edgeHit=!0),b.options.vertical===!1?b.swipeLeft=d+f*g:b.swipeLeft=d+f*(b.$list.height()/b.listWidth)*g,b.options.verticalSwiping===!0&&(b.swipeLeft=d+f*g),b.options.fade===!0||b.options.touchMove===!1?!1:b.animating===!0?(b.swipeLeft=null,!1):void b.setCSS(b.swipeLeft)):void 0)},b.prototype.swipeStart=function(a){var c,b=this;return b.interrupted=!0,1!==b.touchObject.fingerCount||b.slideCount<=b.options.slidesToShow?(b.touchObject={},!1):(void 0!==a.originalEvent&&void 0!==a.originalEvent.touches&&(c=a.originalEvent.touches[0]),b.touchObject.startX=b.touchObject.curX=void 0!==c?c.pageX:a.clientX,b.touchObject.startY=b.touchObject.curY=void 0!==c?c.pageY:a.clientY,void(b.dragging=!0))},b.prototype.unfilterSlides=b.prototype.slickUnfilter=function(){var a=this;null!==a.$slidesCache&&(a.unload(),a.$slideTrack.children(this.options.slide).detach(),a.$slidesCache.appendTo(a.$slideTrack),a.reinit())},b.prototype.unload=function(){var b=this;a(".slick-cloned",b.$slider).remove(),b.$dots&&b.$dots.remove(),b.$prevArrow&&b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.remove(),b.$nextArrow&&b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.remove(),b.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},b.prototype.unslick=function(a){var b=this;b.$slider.trigger("unslick",[b,a]),b.destroy()},b.prototype.updateArrows=function(){var b,a=this;b=Math.floor(a.options.slidesToShow/2),a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&!a.options.infinite&&(a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===a.currentSlide?(a.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):a.currentSlide>=a.slideCount-a.options.slidesToShow&&a.options.centerMode===!1?(a.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):a.currentSlide>=a.slideCount-1&&a.options.centerMode===!0&&(a.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},b.prototype.updateDots=function(){var a=this;null!==a.$dots&&(a.$dots.find("li").removeClass("slick-active").attr("aria-hidden","true"),a.$dots.find("li").eq(Math.floor(a.currentSlide/a.options.slidesToScroll)).addClass("slick-active").attr("aria-hidden","false"))},b.prototype.visibility=function(){var a=this;a.options.autoplay&&(document[a.hidden]?a.interrupted=!0:a.interrupted=!1)},a.fn.slick=function(){var f,g,a=this,c=arguments[0],d=Array.prototype.slice.call(arguments,1),e=a.length;for(f=0;e>f;f++)if("object"==typeof c||"undefined"==typeof c?a[f].slick=new b(a[f],c):g=a[f].slick[c].apply(a[f].slick,d),"undefined"!=typeof g)return g;return a}});