vendor: 6,189 bytes, lines 1-73
1/*! jquery.iframetracker v2.1.0 | https://github.com/vincepare/iframeTracker-jquery | Copyright (c) 2013-2018 Vincent Paré | Licensed Apache-2.0 */ 2!function(e,r){"function"==typeof define&&define.amd?define(["jquery"],function(e){return r(e)}):"object"==typeof module&&module.exports?module.exports=r(require("jquery")):r(e.jQuery)}(this,function(e){!function(e){e.fn.iframeTracker=function(r){"function"==typeof r&&(r={blurCallback:r});var t=this.get();if(null===r||!1===r)e.iframeTracker.untrack(t);else{if("object"!=typeof r)throw new Error("Wrong handler type (must be an object, or null|false to untrack)");e.iframeTracker.track(t,r)}return this},e.iframeTracker={focusRetriever:null,focusRetrieved:!1,handlersList:[],isIE8AndOlder:!1,init:function(){try{!0===e.browser.msie&&e.browser.version<9&&(this.isIE8AndOlder=!0)}catch(e){try{navigator.userAgent.match(/(msie) ([\w.]+)/i)[2]<9&&(this.isIE8AndOlder=!0)}catch(e){}}if(e(window).focus(),e(window).blur(function(r){e.iframeTracker.windowLoseFocus(r)}),e("body").append('<div style="position:fixed; top:0; left:0; overflow:hidden;"><input style="position:absolute; left:-300px;" type="text" value="" id="focus_retriever" readonly="true" /></div>'),this.focusRetriever=e("#focus_retriever"),this.focusRetrieved=!1,this.isIE8AndOlder){this.focusRetriever.blur(function(r){r.stopPropagation(),r.preventDefault(),e.iframeTracker.windowLoseFocus(r)}),e("body").click(function(r){e(window).focus()}),e("form").click(function(e){e.stopPropagation()});try{e("body").on("click","form",function(e){e.stopPropagation()})}catch(e){console.log("[iframeTracker] Please update jQuery to 1.7 or newer. (exception: "+e.message+")")}}},track:function(r,t){t.target=r,e.iframeTracker.handlersList.push(t),e(r).bind("mouseover",{handler:t},e.iframeTracker.mouseoverListener).bind("mouseout",{handler:t},e.iframeTracker.mouseoutListener)},untrack:function(r){if("function"==typeof Array.prototype.filter){e(r).each(function(r){e(this).unbind("mouseover",e.iframeTracker.mouseoverListener).unbind("mouseout",e.iframeTracker.mouseoutListener)});var t=function(e){return null!==e};for(var i in this.handlersList){for(var o in this.handlersList[i].target)-1!==e.inArray(this.handlersList[i].target[o],r)&&(this.handlersList[i].target[o]=null);this.handlersList[i].target=this.handlersList[i].target.filter(t),0===this.handlersList[i].target.length&&(this.handlersList[i]=null)}this.handlersList=this.handlersList.filter(t)}else console.log("Your browser doesn't support Array filter, untrack disabled")},mouseoverListener:function(r){r.data.handler.over=!0,e.iframeTracker.retrieveFocus();try{r.data.handler.overCallback(this,r)}catch(e){}},mouseoutListener:function(r){r.data.handler.over=!1,e.iframeTracker.retrieveFocus();try{r.data.handler.outCallback(this,r)}catch(e){}},retrieveFocus:function(){document.activeElement&&"IFRAME"===document.activeElement.tagName&&(e.iframeTracker.focusRetriever.focus(),e.iframeTracker.focusRetrieved=!0)},windowLoseFocus:function(e){for(var r in this.handlersList)if(!0===this.handlersList[r].over)try{this.handlersList[r].blurCallback(e)}catch(e){}}},e(document).ready(function(){e.iframeTracker.init()})}(e)}); 3/** 4 * jQuery Validation Plugin 1.9.0 5 * 6 * http://bassistance.de/jquery-plugins/jquery-plugin-validation/ 7 * http://docs.jquery.com/Plugins/Validation 8 * 9 * Copyright (c) 2006 - 2011 Jörn Zaefferer 10 * 11 * Dual licensed under the MIT and GPL licenses: 12 * http://www.opensource.org/licenses/mit-license.php 13 * http://www.gnu.org/licenses/gpl.html 14 */ 15 16(function($) { 17 18 $.extend($.fn, { 19 // http://docs.jquery.com/Plugins/Validation/validate 20 validate: function( options ) { 21 22 // if nothing is selected, return nothing; can't chain anyway 23 if (!this.length) { 24 options && options.debug && window.console && console.warn( "nothing selected, can't validate, returning nothing" ); 25 return; 26 } 27 28 // check if a validator for this form was already created 29 var validator = $.data(this[0], 'validator'); 30 if ( validator ) { 31 return validator; 32 } 33 34 // Add novalidate tag if HTML5. 35 this.attr('novalidate', 'novalidate'); 36 37 validator = new $.validator( options, this[0] ); 38 $.data(this[0], 'validator', validator); 39 40 if ( validator.settings.onsubmit ) { 41 42 var inputsAndButtons = this.find("input, button"); 43 44 // allow suppresing validation by adding a cancel class to the submit button 45 inputsAndButtons.filter(".cancel").click(function () { 46 validator.cancelSubmit = true; 47 }); 48 49 // when a submitHandler is used, capture the submitting button 50 if (validator.settings.submitHandler) { 51 inputsAndButtons.filter(":submit").click(function () { 52 validator.submitButton = this; 53 }); 54 } 55 56 // validate the form on submit 57 this.submit( function( event ) { 58 if ( validator.settings.debug ) 59 // prevent form submit to be able to see console output 60 event.preventDefault(); 61 62 function handle() { 63 if ( validator.settings.submitHandler ) { 64 if (validator.submitButton) { 65 // insert a hidden input as a replacement for the missing submit button 66 var hidden = $("<input type='hidden'/>").attr("name", validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm); 67 } 68 validator.settings.submitHandler.call( validator, validator.currentForm ); 69 if (validator.submitButton) { 70 // and clean up afterwards; thanks to no-block-scope, hidden can be referenced 71 hidden.remove(); 72 } 73 return false;
74 } 75 return true; 76 } 77 78 // prevent submit for invalid forms or custom submit handlers 79 if ( validator.cancelSubmit ) { 80 validator.cancelSubmit = false; 81 return handle(); 82 } 83 if ( validator.form() ) { 84 if ( validator.pendingRequest ) { 85 validator.formSubmitted = true; 86 return false; 87 } 88 return handle(); 89 } else { 90 validator.focusInvalid(); 91 return false; 92 } 93 }); 94 } 95 96 return validator; 97 }, 98 // http://docs.jquery.com/Plugins/Validation/valid 99 valid: function() { 100 var el = this[0]; //create a jQuery obj from 1st element in this 101 if (el && el.nodeName && el.nodeName.toLowerCase() === "form") { //checks if el exists & el.nodeName is defined. 102 return $(el).validate().form(); 103 } 104 else { 105 var valid = true; 106 var validator = $(el.form).validate(); 107 this.each(function() { 108 valid &= validator.element(this); 109 }); 110 return valid; 111 } 112 }, 113 // attributes: space seperated list of attributes to retrieve and remove 114 removeAttrs: function(attributes) { 115 var result = {}, 116 $element = this; 117 $.each(attributes.split(/\s/), function(index, value) { 118 result[value] = $element.attr(value); 119 $element.removeAttr(value); 120 }); 121 return result; 122 }, 123 // http://docs.jquery.com/Plugins/Validation/rules 124 rules: function(command, argument) { 125 var element = this[0]; 126 127 if (command) { 128 var settings = $.data(element.form, 'validator').settings; 129 var staticRules = settings.rules; 130 var existingRules = $.validator.staticRules(element); 131 switch(command) { 132 case "add": 133 $.extend(existingRules, $.validator.normalizeRule(argument)); 134 staticRules[element.name] = existingRules; 135 if (argument.messages) 136 settings.messages[element.name] = $.extend( settings.messages[element.name], argument.messages ); 137 break; 138 case "remove": 139 if (!argument) { 140 delete staticRules[element.name]; 141 return existingRules; 142 } 143 var filtered = {}; 144 $.each(argument.split(/\s/), function(index, method) { 145 filtered[method] = existingRules[method]; 146 delete existingRules[method]; 147 }); 148 return filtered; 149 } 150 } 151 152 var data = $.validator.normalizeRules( 153 $.extend( 154 {}, 155 $.validator.metadataRules(element), 156 $.validator.classRules(element), 157 $.validator.attributeRules(element), 158 $.validator.staticRules(element) 159 ), element); 160 161 // make sure required is at front 162 if (data.required) { 163 var param = data.required; 164 delete data.required; 165 data = $.extend({required: param}, data); 166 } 167 168 return data; 169 } 170 }); 171 172// Custom selectors 173 $.extend($.expr[":"], { 174 // http://docs.jquery.com/Plugins/Validation/blank 175 blank: function(a) {return !$.trim("" + a.value);}, 176 // http://docs.jquery.com/Plugins/Validation/filled 177 filled: function(a) {return !!$.trim("" + a.value);}, 178 // http://docs.jquery.com/Plugins/Validation/unchecked 179 unchecked: function(a) {return !a.checked;} 180 }); 181 182// constructor for validator 183 $.validator = function( options, form ) { 184 this.settings = $.extend( true, {}, $.validator.defaults, options ); 185 this.currentForm = form; 186 this.init(); 187 }; 188 189 $.validator.format = function(source, params) { 190 if ( arguments.length == 1 ) 191 return function() { 192 var args = $.makeArray(arguments); 193 args.unshift(source); 194 return $.validator.format.apply( this, args ); 195 }; 196 if ( arguments.length > 2 && params.constructor != Array ) { 197 params = $.makeArray(arguments).slice(1); 198 } 199 if ( params.constructor != Array ) { 200 params = [ params ]; 201 } 202 $.each(params, function(i, n) { 203 source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n); 204 }); 205 return source; 206 }; 207 208 $.extend($.validator, { 209 210 defaults: { 211 messages: {}, 212 groups: {}, 213 rules: {}, 214 errorClass: "error", 215 validClass: "valid", 216 errorElement: "label", 217 focusInvalid: true, 218 errorContainer: $( [] ), 219 errorLabelContainer: $( [] ), 220 onsubmit: true, 221 ignore: ":hidden", 222 ignoreTitle: false, 223 onfocusin: function(element, event) { 224 this.lastActive = element; 225 226 // hide error label and remove error class on focus if enabled 227 if ( this.settings.focusCleanup && !this.blockFocusCleanup ) { 228 this.settings.unhighlight && this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.val
228idClass ); 229 this.addWrapper(this.errorsFor(element)).hide(); 230 } 231 }, 232 onfocusout: function(element, event) { 233 if ( !this.checkable(element) && (element.name in this.submitted || !this.optional(element)) ) { 234 this.element(element); 235 } 236 }, 237 onkeyup: function(element, event) { 238 /* GRANITE:START */ 239 /*if ( element.name in this.submitted || element == this.lastElement ) { 240 this.element(element); 241 }*/ 242 this.valid(); 243 this.element(element) 244 /* GRANITE:END */ 245 }, 246 onclick: function(element, event) { 247 // click on selects, radiobuttons and checkboxes 248 if ( element.name in this.submitted ) 249 this.element(element); 250 // or option elements, check parent select in that case 251 else if (element.parentNode.name in this.submitted) 252 this.element(element.parentNode); 253 }, 254 highlight: function(element, errorClass, validClass) { 255 if (element.type === 'radio') { 256 this.findByName(element.name).addClass(errorClass).removeClass(validClass); 257 } else { 258 $(element).addClass(errorClass).removeClass(validClass); 259 } 260 }, 261 unhighlight: function(element, errorClass, validClass) { 262 if (element.type === 'radio') { 263 this.findByName(element.name).removeClass(errorClass).addClass(validClass); 264 } else { 265 $(element).removeClass(errorClass).addClass(validClass); 266 } 267 } 268 }, 269 270 // http://docs.jquery.com/Plugins/Validation/Validator/setDefaults 271 setDefaults: function(settings) { 272 $.extend( $.validator.defaults, settings ); 273 }, 274 275 messages: { 276 required: "This field is required.", 277 lettersonly: { 278 required: "This field is required.", 279 lettersonly: "Please use letters only.", 280 }, 281 remote: "Please fix this field.", 282 email: "Please enter a valid email address.", 283 url: "Please enter a valid URL.", 284 date: "Please enter a valid date.", 285 dateISO: "Please enter a valid date (ISO).", 286 number: "Please enter a valid number.", 287 digits: "Please enter only digits.", 288 creditcard: "Please enter a valid credit card number.", 289 equalTo: "Please enter the same value again.", 290 accept: "Please enter a value with a valid extension.", 291 maxlength: $.validator.format("Please enter no more than {0} characters."), 292 minlength: $.validator.format("Please enter at least {0} characters."), 293 rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."), 294 range: $.validator.format("Please enter a value between {0} and {1}."), 295 max: $.validator.format("Please enter a value less than or equal to {0}."), 296 min: $.validator.format("Please enter a value greater than or equal to {0}.") 297 }, 298 299 autoCreateRanges: false, 300 301 prototype: { 302 303 init: function() { 304 this.labelContainer = $(this.settings.errorLabelContainer); 305 this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm); 306 this.containers = $(this.settings.errorContainer).add( this.settings.errorLabelContainer ); 307 this.submitted = {}; 308 this.valueCache = {}; 309 this.pendingRequest = 0; 310 this.pending = {}; 311 this.invalid = {}; 312 this.reset(); 313 314 var groups = (this.groups = {}); 315 $.each(this.settings.groups, function(key, value) { 316 $.each(value.split(/\s/), function(index, name) { 317 groups[name] = key; 318 }); 319 }); 320 var rules = this.settings.rules; 321 $.each(rules, function(key, value) { 322 rules[key] = $.validator.normalizeRule(value); 323 }); 324 325 function delegate(event) {
326 var validator = $.data(this[0].form, "validator"), 327 eventType = "on" + event.type.replace(/^validate/, ""); 328 validator.settings[eventType] && validator.settings[eventType].call(validator, this[0], event); 329 } 330 $(this.currentForm) 331 .validateDelegate("[type='text'], [type='password'], [type='file'], select, textarea, " + 332 "[type='number'], [type='search'] ,[type='tel'], [type='url'], " + 333 "[type='email'], [type='datetime'], [type='date'], [type='month'], " + 334 "[type='week'], [type='time'], [type='datetime-local'], " + 335 "[type='range'], [type='color'] ", 336 "focusin focusout keyup", delegate) 337 .validateDelegate("[type='radio'], [type='checkbox'], select, option", "click", delegate); 338 339 if (this.settings.invalidHandler) 340 $(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler); 341 }, 342 343 // http://docs.jquery.com/Plugins/Validation/Validator/form 344 form: function() { 345 this.checkForm(); 346 $.extend(this.submitted, this.errorMap); 347 this.invalid = $.extend({}, this.errorMap); 348 if (!this.valid()) 349 $(this.currentForm).triggerHandler("invalid-form", [this]); 350 this.showErrors(); 351 return this.valid(); 352 }, 353 354 checkForm: function() { 355 this.prepareForm(); 356 for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) { 357 this.check( elements[i] ); 358 } 359 return this.valid(); 360 }, 361 362 // http://docs.jquery.com/Plugins/Validation/Validator/element 363 element: function( element ) { 364 element = this.validationTargetFor( this.clean( element ) ); 365 this.lastElement = element; 366 this.prepareElement( element ); 367 this.currentElements = $(element); 368 var result = this.check( element ); 369 if ( result ) { 370 delete this.invalid[element.name]; 371 } else { 372 this.invalid[element.name] = true; 373 } 374 if ( !this.numberOfInvalids() ) { 375 // Hide error containers on last error 376 this.toHide = this.toHide.add( this.containers ); 377 } 378 this.showErrors(); 379 return result; 380 }, 381 382 // http://docs.jquery.com/Plugins/Validation/Validator/showErrors 383 showErrors: function(errors) { 384 if(errors) { 385 // add items to error list and map 386 $.extend( this.errorMap, errors ); 387 this.errorList = []; 388 for ( var name in errors ) { 389 this.errorList.push({ 390 message: errors[name], 391 element: this.findByName(name)[0] 392 }); 393 } 394 // remove items from success list 395 this.successList = $.grep( this.successList, function(element) { 396 return !(element.name in errors); 397 }); 398 } 399 this.settings.showErrors 400 ? this.settings.showErrors.call( this, this.errorMap, this.errorList ) 401 : this.defaultShowErrors(); 402 }, 403 404 // http://docs.jquery.com/Plugins/Validation/Validator/resetForm 405 resetForm: function() { 406 if ( $.fn.resetForm ) 407 $( this.currentForm ).resetForm(); 408 this.submitted = {}; 409 this.lastElement = null; 410 this.prepareForm(); 411 this.hideErrors(); 412 this.elements().removeClass( this.settings.errorClass ); 413 }, 414 415 numberOfInvalids: function() { 416 return this.objectLength(this.invalid); 417 }, 418 419 objectLength: function( obj ) { 420 var count = 0; 421 for ( var i in obj ) 422 count++; 423 return count; 424 }, 425 426 hideErrors: function() { 427 this.addWrapper( this.toHide ).hide(); 428 }, 429 430 valid: function() { 431 return this.size() == 0; 432 }, 433 434 size: function() { 435 return this.errorList.length; 436 }, 437 438 focusInvalid: function() { 439 if( this.settings.focusInvalid ) { 440 try { 441 $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []) 442 .filter(":visible") 443 .focus() 444 // manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find 445 .trigger("focusin"); 446 } catch(e) {
447 // ignore IE throwing errors when focusing hidden elements 448 } 449 } 450 }, 451 452 findLastActive: function() { 453 var lastActive = this.lastActive; 454 return lastActive && $.grep(this.errorList, function(n) { 455 return n.element.name == lastActive.name; 456 }).length == 1 && lastActive; 457 }, 458 459 elements: function() { 460 var validator = this, 461 rulesCache = {}; 462 463 // select all valid inputs inside the form (no submit or reset buttons) 464 return $(this.currentForm) 465 .find("input, select, textarea") 466 .not(":submit, :reset, :image, [disabled]") 467 .not( this.settings.ignore ) 468 .filter(function() { 469 !this.name && validator.settings.debug && window.console && console.error( "%o has no name assigned", this); 470 471 // select only the first element for each name, and only those with rules specified 472 if ( this.name in rulesCache || !validator.objectLength($(this).rules()) ) 473 return false; 474 475 rulesCache[this.name] = true; 476 return true; 477 }); 478 }, 479 480 clean: function( selector ) { 481 return $( selector )[0]; 482 }, 483 484 errors: function() { 485 return $( this.settings.errorElement + "." + this.settings.errorClass, this.errorContext ); 486 }, 487 488 reset: function() { 489 this.successList = []; 490 this.errorList = []; 491 this.errorMap = {}; 492 this.toShow = $([]); 493 this.toHide = $([]); 494 this.currentElements = $([]); 495 }, 496 497 prepareForm: function() { 498 this.reset(); 499 this.toHide = this.errors().add( this.containers ); 500 }, 501 502 prepareElement: function( element ) { 503 this.reset(); 504 this.toHide = this.errorsFor(element); 505 }, 506 507 check: function( element ) { 508 element = this.validationTargetFor( this.clean( element ) ); 509 510 var rules = $(element).rules(); 511 var dependencyMismatch = false; 512 for (var method in rules ) { 513 var rule = { method: method, parameters: rules[method] }; 514 try { 515 var result = $.validator.methods[method].call( this, element.value.replace(/\r/g, ""), element, rule.parameters ); 516 517 // if a method indicates that the field is optional and therefore valid, 518 // don't mark it as valid when there are no other rules 519 if ( result == "dependency-mismatch" ) { 520 dependencyMismatch = true; 521 continue; 522 } 523 dependencyMismatch = false; 524 525 if ( result == "pending" ) { 526 this.toHide = this.toHide.not( this.errorsFor(element) ); 527 return; 528 } 529 530 if( !result ) { 531 this.formatAndAdd( element, rule ); 532 return false; 533 } 534 } catch(e) { 535 this.settings.debug && window.console && console.log("exception occured when checking element " + element.id 536 + ", check the '" + rule.method + "' method", e); 537 throw e; 538 } 539 } 540 if (dependencyMismatch) 541 return; 542 if ( this.objectLength(rules) ) 543 this.successList.push(element); 544 return true; 545 }, 546 547 // return the custom message for the given element and validation method 548 // specified in the element's "messages" metadata 549 customMetaMessage: function(element, method) { 550 if (!$.metadata) 551 return; 552 553 var meta = this.settings.meta 554 ? $(element).metadata()[this.settings.meta] 555 : $(element).metadata(); 556 557 return meta && meta.messages && meta.messages[method]; 558 }, 559 560 // return the custom message for the given element name and validation method 561 customMessage: function( name, method ) { 562 var m = this.settings.messages[name]; 563 return m && (m.constructor == String 564 ? m 565 : m[method]); 566 }, 567 568 // return the first defined argument, allowing empty strings 569 findDefined: function() { 570 for(var i = 0; i < arguments.length; i++) { 571 if (arguments[i] !== undefined) 572 return arguments[i]; 573 } 574 return undefined; 575 }, 576 577 defaultMessage: function( element, method) { 578 return this.findDefined( 579 this.customMessage( element.name, method ), 580 this.customMetaMessage( element, method ), 581 // title is never undefined, so handle empty string as undefined 582 !this.settings.ignoreTitle && element.title || undefined, 583 $.validator.messages[method], 584 "<strong>Warning: No message defined for " + element.name + "</strong>" 585 ); 586 }, 587 588 formatAndAdd: function( element, rule ) { 589 var message = this.defaultMessage( element, rule.method ), 590 theregex = /\$?\{(\d+)\}/g; 591 if ( typeof message == "function" ) { 592 message = message.call(this, rule.parameters, element); 593 } else if (theregex.test(message)) { 594 message = jQuery.format(message.replace(theregex, '{$1}'), rule.parameters); 595 } 596 this.errorList.push({ 597 message: message, 598 element: element 599 }); 600 601 this.errorMap[element.name] = message; 602 this.submitted[element.name] = message; 603 }, 604 605 addWrapper: function(toToggle) { 606 if ( this.settings.wrapper ) 607 toToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) ); 608 return toToggle; 609 }, 610 611 defaultShowErrors: function() { 612 for ( var i = 0; this.errorList[i]; i++ ) { 613 var error = this.errorList[i]; 614 this.settings.highlight && this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.val
614idClass ); 615 this.showLabel( error.element, error.message ); 616 } 617 if( this.errorList.length ) { 618 this.toShow = this.toShow.add( this.containers ); 619 } 620 if (this.settings.success) { 621 for ( var i = 0; this.successList[i]; i++ ) { 622 this.showLabel( this.successList[i] ); 623 } 624 } 625 if (this.settings.unhighlight) { 626 for ( var i = 0, elements = this.validElements(); elements[i]; i++ ) { 627 this.settings.unhighlight.call( this, elements[i], this.settings.errorClass, this.settings.validClass ); 628 } 629 } 630 this.toHide = this.toHide.not( this.toShow ); 631 this.hideErrors(); 632 this.addWrapper( this.toShow ).show(); 633 }, 634 635 validElements: function() { 636 return this.currentElements.not(this.invalidElements()); 637 }, 638 639 invalidElements: function() { 640 return $(this.errorList).map(function() { 641 return this.element; 642 }); 643 }, 644 645 showLabel: function(element, message) { 646 var label = this.errorsFor( element ); 647 if ( label.length ) { 648 // refresh error/success class 649 label.removeClass( this.settings.validClass ).addClass( this.settings.errorClass ); 650 651 // check if we have a generated label, replace the message then 652 label.attr("generated") && label.html(message); 653 } else { 654 // create label 655 label = $("<" + this.settings.errorElement + "/>") 656 .attr({"for": this.idOrName(element), generated: true}) 657 .addClass(this.settings.errorClass) 658 .html(message || ""); 659 if ( this.settings.wrapper ) { 660 // make sure the element is visible, even in IE 661 // actually showing the wrapped element is handled elsewhere 662 label = label.hide().show().wrap("<" + this.settings.wrapper + "/>").parent(); 663 } 664 if ( !this.labelContainer.append(label).length ) 665 this.settings.errorPlacement 666 ? this.settings.errorPlacement(label, $(element) ) 667 : label.insertAfter(element); 668 } 669 if ( !message && this.settings.success ) { 670 label.text(""); 671 typeof this.settings.success == "string" 672 ? label.addClass( this.settings.success ) 673 : this.settings.success( label ); 674 } 675 this.toShow = this.toShow.add(label); 676 }, 677 678 errorsFor: function(element) { 679 var name = this.idOrName(element); 680 return this.errors().filter(function() { 681 return $(this).attr('for') == name; 682 }); 683 }, 684 685 idOrName: function(element) { 686 return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name); 687 }, 688 689 validationTargetFor: function(element) { 690 // if radio/checkbox, validate first element in group instead 691 if (this.checkable(element)) { 692 element = this.findByName( element.name ).not(this.settings.ignore)[0]; 693 } 694 return element; 695 }, 696 697 checkable: function( element ) { 698 return /radio|checkbox/i.test(element.type); 699 }, 700 701 findByName: function( name ) { 702 // select by name and filter by form for performance over form.find("[name=...]") 703 var form = this.currentForm; 704 return $(document.getElementsByName(name)).map(function(index, element) { 705 return element.form == form && element.name == name && element || null; 706 }); 707 }, 708 709 getLength: function(value, element) { 710 switch( element.nodeName.toLowerCase() ) { 711 case 'select': 712 return $("option:selected", element).length; 713 case 'input': 714 if( this.checkable( element) ) 715 return this.findByName(element.name).filter(':checked').length; 716 } 717 return value.length; 718 }, 719 720 depend: function(param, element) { 721 return this.dependTypes[typeof param] 722 ? this.dependTypes[typeof param](param, element) 723 : true; 724 }, 725 726 dependTypes: { 727 "boolean": function(param, element) { 728 return param; 729 }, 730 "string": function(param, element) { 731 return !!$(param, element.form).length; 732 }, 733 "function": function(param, element) { 734 return param(element); 735 } 736 }, 737 738 optional: function(element) { 739 return !$.validator.methods.required.call(this, $.trim(element.value), element) && "dependency-mismatch"; 740 }, 741 742 startRequest: function(element) { 743 if (!this.pending[element.name]) { 744 this.pendingRequest++; 745 this.pending[element.name] = true; 746 } 747 }, 748 749 stopRequest: function(element, valid) { 750 this.pendingRequest--; 751 // sometimes synchronization fails, make sure pendingRequest is never < 0 752 if (this.pendingRequest < 0) 753 this.pendingRequest = 0; 754 delete this.pending[element.name]; 755 if ( valid && this.pendingRequest == 0 && this.formSubmitted && this.form() ) { 756 $(this.currentForm).submit(); 757 this.formSubmitted = false;
758 } else if (!valid && this.pendingRequest == 0 && this.formSubmitted) { 759 $(this.currentForm).triggerHandler("invalid-form", [this]); 760 this.formSubmitted = false; 761 } 762 }, 763 764 previousValue: function(element) { 765 return $.data(element, "previousValue") || $.data(element, "previousValue", { 766 old: null, 767 valid: true, 768 message: this.defaultMessage( element, "remote" ) 769 }); 770 } 771 772 }, 773 774 classRuleSettings: { 775 required: {required: true}, 776 email: {email: true}, 777 url: {url: true}, 778 date: {date: true}, 779 dateISO: {dateISO: true}, 780 dateDE: {dateDE: true}, 781 number: {number: true}, 782 numberDE: {numberDE: true}, 783 digits: {digits: true}, 784 creditcard: {creditcard: true} 785 }, 786 787 addClassRules: function(className, rules) { 788 className.constructor == String ? 789 this.classRuleSettings[className] = rules : 790 $.extend(this.classRuleSettings, className); 791 }, 792 793 classRules: function(element) { 794 var rules = {}; 795 var classes = $(element).attr('class'); 796 classes && $.each(classes.split(' '), function() { 797 if (this in $.validator.classRuleSettings) { 798 $.extend(rules, $.validator.classRuleSettings[this]); 799 } 800 }); 801 return rules; 802 }, 803 804 attributeRules: function(element) { 805 var rules = {}; 806 var $element = $(element); 807 808 for (var method in $.validator.methods) { 809 var value; 810 // If .prop exists (jQuery >= 1.6), use it to get true/false for required 811 if (method === 'required' && typeof $.fn.prop === 'function') { 812 value = $element.prop(method); 813 } else { 814 value = $element.attr(method); 815 } 816 if (value) { 817 rules[method] = value; 818 } else if ($element[0].getAttribute("type") === method) { 819 rules[method] = true; 820 } 821 } 822 823 // maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs 824 if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) { 825 delete rules.maxlength; 826 } 827 828 return rules; 829 }, 830 831 metadataRules: function(element) { 832 if (!$.metadata) return {}; 833 834 var meta = $.data(element.form, 'validator').settings.meta; 835 return meta ? 836 $(element).metadata()[meta] : 837 $(element).metadata(); 838 }, 839 840 staticRules: function(element) { 841 var rules = {}; 842 var validator = $.data(element.form, 'validator'); 843 if (validator.settings.rules) { 844 rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {}; 845 } 846 return rules; 847 }, 848 849 normalizeRules: function(rules, element) { 850 // handle dependency check 851 $.each(rules, function(prop, val) { 852 // ignore rule when param is explicitly false, eg. required:false 853 if (val === false) { 854 delete rules[prop]; 855 return; 856 } 857 if (val.param || val.depends) { 858 var keepRule = true; 859 switch (typeof val.depends) { 860 case "string": 861 keepRule = !!$(val.depends, element.form).length; 862 break; 863 case "function": 864 keepRule = val.depends.call(element, element); 865 break; 866 } 867 if (keepRule) { 868 rules[prop] = val.param !== undefined ? val.param : true; 869 } else { 870 delete rules[prop]; 871 } 872 } 873 }); 874 875 // evaluate parameters 876 $.each(rules, function(rule, parameter) { 877 rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter; 878 }); 879 880 // clean number parameters 881 $.each(['minlength', 'maxlength', 'min', 'max'], function() { 882 if (rules[this]) { 883 rules[this] = Number(rules[this]); 884 } 885 }); 886 $.each(['rangelength', 'range'], function() { 887 if (rules[this]) { 888 rules[this] = [Number(rules[this][0]), Number(rules[this][1])]; 889 } 890 }); 891 892 if ($.validator.autoCreateRanges) { 893 // auto-create ranges 894 if (rules.min && rules.max) { 895 rules.range = [rules.min, rules.max]; 896 delete rules.min; 897 delete rules.max; 898 } 899 if (rules.minlength && rules.maxlength) { 900 rules.rangelength = [rules.minlength, rules.maxlength]; 901 delete rules.minlength; 902 delete rules.maxlength; 903 } 904 } 905 906 // To support custom messages in metadata ignore rule methods titled "messages" 907 if (rules.messages) { 908 delete rules.messages; 909 } 910 911 return rules; 912 }, 913
914 // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true} 915 normalizeRule: function(data) { 916 if( typeof data == "string" ) { 917 var transformed = {}; 918 $.each(data.split(/\s/), function() { 919 transformed[this] = true; 920 }); 921 data = transformed; 922 } 923 return data; 924 }, 925 926 // http://docs.jquery.com/Plugins/Validation/Validator/addMethod 927 addMethod: function(name, method, message) { 928 $.validator.methods[name] = method; 929 $.validator.messages[name] = message != undefined ? message : $.validator.messages[name]; 930 if (method.length < 3) { 931 $.validator.addClassRules(name, $.validator.normalizeRule(name)); 932 } 933 }, 934 935 methods: { 936 937 // http://docs.jquery.com/Plugins/Validation/Methods/required 938 required: function(value, element, param) { 939 // check if dependency is met 940 if ( !this.depend(param, element) ) 941 return "dependency-mismatch"; 942 switch( element.nodeName.toLowerCase() ) { 943 case 'select': 944 // could be an array for select-multiple or a string, both are fine this way 945 var val = $(element).val(); 946 return val && val.length > 0; 947 case 'input': 948 if ( this.checkable(element) ) 949 return this.getLength(value, element) > 0; 950 default: 951 return $.trim(value).length > 0; 952 } 953 }, 954 955 // http://docs.jquery.com/Plugins/Validation/Methods/remote 956 remote: function(value, element, param) { 957 if ( this.optional(element) ) 958 return "dependency-mismatch"; 959 960 var previous = this.previousValue(element); 961 if (!this.settings.messages[element.name] ) 962 this.settings.messages[element.name] = {}; 963 previous.originalMessage = this.settings.messages[element.name].remote; 964 this.settings.messages[element.name].remote = previous.message; 965 966 param = typeof param == "string" && {url:param} || param; 967 968 if ( this.pending[element.name] ) { 969 return "pending"; 970 } 971 if ( previous.old === value ) { 972 return previous.valid; 973 } 974 975 previous.old = value; 976 var validator = this; 977 this.startRequest(element); 978 var data = {}; 979 data[element.name] = value; 980 $.ajax($.extend(true, { 981 url: param, 982 mode: "abort", 983 port: "validate" + element.name, 984 dataType: "json", 985 data: data, 986 success: function(response) { 987 validator.settings.messages[element.name].remote = previous.originalMessage; 988 var valid = response === true; 989 if ( valid ) { 990 var submitted = validator.formSubmitted; 991 validator.prepareElement(element); 992 validator.formSubmitted = submitted; 993 validator.successList.push(element); 994 validator.showErrors(); 995 } else { 996 var errors = {}; 997 var message = response || validator.defaultMessage( element, "remote" ); 998 errors[element.name] = previous.message = $.isFunction(message) ? message(value) : message; 999 validator.showErrors(errors); 1000 } 1001 previous.valid = valid; 1002 validator.stopRequest(element, valid); 1003 } 1004 }, param)); 1005 return "pending"; 1006 }, 1007 1008 // http://docs.jquery.com/Plugins/Validation/Methods/minlength 1009 minlength: function(value, element, param) { 1010 return this.optional(element) || this.getLength($.trim(value), element) >= param; 1011 }, 1012 1013 // http://docs.jquery.com/Plugins/Validation/Methods/maxlength 1014 maxlength: function(value, element, param) { 1015 return this.optional(element) || this.getLength($.trim(value), element) <= param; 1016 }, 1017 1018 // http://docs.jquery.com/Plugins/Validation/Methods/rangelength 1019 rangelength: function(value, element, param) { 1020 var length = this.getLength($.trim(value), element); 1021 return this.optional(element) || ( length >= param[0] && length <= param[1] ); 1022 }, 1023 1024 // http://docs.jquery.com/Plugins/Validation/Methods/min 1025 min: function( value, element, param ) { 1026 return this.optional(element) || value >= param; 1027 }, 1028 1029 // http://docs.jquery.com/Plugins/Validation/Methods/max 1030 max: function( value, element, param ) { 1031 return this.optional(element) || value <= param; 1032 }, 1033 1034 // http://docs.jquery.com/Plugins/Validation/Methods/range 1035 range: function( value, element, param ) { 1036 return this.optional(element) || ( value >= param[0] && value <= param[1] ); 1037 }, 1038 1039 // http://docs.jquery.com/Plugins/Validation/Methods/email 1040 email: function(value, element) { 1041 // contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/ 1042 return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(value); 1043 }, 1044 1045 // http://docs.jquery.com/Plugins/Validation/Methods/url 1046 url: function(value, element) { 1047 // contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/ 1048 return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value); 1049 }, 1050 1051 // http://docs.jquery.com/Plugins/Validation/Methods/date 1052 date: function(value, element) { 1053 return this.optional(element) || !/Invalid|NaN/.test(new Date(value)); 1054 }, 1055 1056 // http://docs.jquery.com/Plugins/Validation/Methods/dateISO 1057 dateISO: function(value, element) { 1058 return this.optional(element) || /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value); 1059 }, 1060 1061 // http://docs.jquery.com/Plugins/Validation/Methods/number 1062 number: function(value, element) { 1063 return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value); 1064 }, 1065 1066 lettersonly: function(value, element) { 1067 return this.optional(element) || /^[a-zA-Z\s]*$/.test(value); 1068 }, 1069 1070 phonenumber: function(value, element) { 1071 return this.optional(element) || /^[+]?[0-9]{9,12}$/.test(value); 1072 }, 1073 1074 companyname: function(value, element) { 1075 return this.optional(element) || /^[a-zA-Z0-9\s]*/.test(value); 1076 }, 1077 1078 // http://docs.jquery.com/Plugins/Validation/Methods/digits 1079 digits: function(value, element) { 1080 return this.optional(element) || /^\d+$/.test(value); 1081 }, 1082 1083 // http://docs.jquery.com/Plugins/Validation/Methods/creditcard 1084 // based on http://en.wikipedia.org/wiki/Luhn 1085 creditcard: function(value, element) { 1086 if ( this.optional(element) ) 1087 return "dependency-mismatch"; 1088 // accept only spaces, digits and dashes 1089 if (/[^0-9 -]+/.test(value)) 1090 return false;
1091 var nCheck = 0, 1092 nDigit = 0, 1093 bEven = false; 1094 1095 value = value.replace(/\D/g, ""); 1096 1097 for (var n = value.length - 1; n >= 0; n--) { 1098 var cDigit = value.charAt(n); 1099 var nDigit = parseInt(cDigit, 10); 1100 if (bEven) { 1101 if ((nDigit *= 2) > 9) 1102 nDigit -= 9; 1103 } 1104 nCheck += nDigit; 1105 bEven = !bEven; 1106 } 1107 1108 return (nCheck % 10) == 0; 1109 }, 1110 1111 // http://docs.jquery.com/Plugins/Validation/Methods/accept 1112 accept: function(value, element, param) { 1113 param = typeof param == "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif"; 1114 return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i")); 1115 }, 1116 1117 // http://docs.jquery.com/Plugins/Validation/Methods/equalTo 1118 equalTo: function(value, element, param) { 1119 // bind to the blur event of the target in order to revalidate whenever the target field is updated 1120 // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead 1121 var target = $(param).unbind(".validate-equalTo").bind("blur.validate-equalTo", function() { 1122 $(element).valid(); 1123 }); 1124 return value == target.val(); 1125 } 1126 1127 } 1128 1129 }); 1130 1131// deprecated, use $.validator.format instead 1132 $.format = $.validator.format; 1133 1134})(jQuery); 1135 1136// ajax mode: abort 1137// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]}); 1138// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() 1139;(function($) { 1140 var pendingRequests = {}; 1141 // Use a prefilter if available (1.5+) 1142 if ( $.ajaxPrefilter ) { 1143 $.ajaxPrefilter(function(settings, _, xhr) { 1144 var port = settings.port; 1145 if (settings.mode == "abort") { 1146 if ( pendingRequests[port] ) { 1147 pendingRequests[port].abort(); 1148 } 1149 pendingRequests[port] = xhr; 1150 } 1151 }); 1152 } else { 1153 // Proxy ajax 1154 var ajax = $.ajax; 1155 $.ajax = function(settings) { 1156 var mode = ( "mode" in settings ? settings : $.ajaxSettings ).mode, 1157 port = ( "port" in settings ? settings : $.ajaxSettings ).port; 1158 if (mode == "abort") { 1159 if ( pendingRequests[port] ) { 1160 pendingRequests[port].abort(); 1161 } 1162 return (pendingRequests[port] = ajax.apply(this, arguments)); 1163 } 1164 return ajax.apply(this, arguments); 1165 }; 1166 } 1167})(jQuery); 1168 1169// provides cross-browser focusin and focusout events 1170// IE has native support, in other browsers, use event caputuring (neither bubbles) 1171 1172// provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation 1173// handler is only called when $(event.target).is(delegate), in the scope of the jquery-object for event.target 1174;(function($) { 1175 // only implement if not provided by jQuery core (since 1.4) 1176 // TODO verify if jQuery 1.4's implementation is compatible with older jQuery special-event APIs 1177 if (!jQuery.event.special.focusin && !jQuery.event.special.focusout && document.addEventListener) { 1178 $.each({ 1179 focus: 'focusin', 1180 blur: 'focusout' 1181 }, function( original, fix ){ 1182 $.event.special[fix] = { 1183 setup:function() { 1184 this.addEventListener( original, handler, true ); 1185 }, 1186 teardown:function() { 1187 this.removeEventListener( original, handler, true ); 1188 }, 1189 handler: function(e) { 1190 arguments[0] = $.event.fix(e); 1191 arguments[0].type = fix; 1192 return $.event.handle.apply(this, arguments); 1193 } 1194 }; 1195 function handler(e) { 1196 e = $.event.fix(e); 1197 e.type = fix; 1198 return $.event.handle.call(this, e); 1199 } 1200 }); 1201 }; 1202 $.extend($.fn, { 1203 validateDelegate: function(delegate, type, handler) { 1204 return this.bind(type, function(event) { 1205 var target = $(event.target); 1206 if (target.is(delegate)) { 1207 return handler.apply(target, arguments); 1208 } 1209 }); 1210 } 1211 }); 1212})(jQuery); 1213 1214!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',nextArrow:'<button class="slick-next" aria-label="Next" type="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('<button type="button" />').text(t+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,focusOnChange:!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},n.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,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,
vendor: 6,594 bytes, line 1214
1214sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden="hidden",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(t),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange="visibilitychange",n.windowWidth=0,n.windowTimer=null,s=i(t).data("slick")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,void 0!==document.mozHidden?(n.hidden="mozHidden",n.visibilityChange="mozvisibilitychange"):void 0!==document.webkitHidden&&(n.hidden="webkitHidden",n.visibilityChange="webkitvisibilitychange"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=e++,n.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}}()).prototype.activateADA=function(){this.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},e.prototype.addSlide=e.prototype.slickAdd=function(e,t,o){var s=this;if("boolean"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),"number"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):!0===o?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each(function(e,t){i(t).attr("data-slick-index",e)}),s.$slidesCache=s.$slides,s.reinit()},e.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},e.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),!0===s.options.rtl&&!1===s.options.vertical&&(e=-e),!1===s.transformsEnabled?!1===s.options.vertical?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):!1===s.cssTransitions?(!0===s.options.rtl&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),!1===s.options.vertical?(o[s.animType]="translate("+i+"px, 0px)",s.$slideTrack.css(o)):(o[s.animType]="translate(0px,"+i+"px)",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),!1===s.options.vertical?o[s.animType]="translate3d("+e+"px, 0px, 0px)":o[s.animType]="translate3d(0px,"+e+"px, 0px)",s.$slideTrack.css(o),t&&setTimeout(function(){s.disableTransition(),t.call()},s.options.speed))},e.prototype.getNavTarget=function(){var e=this,t=e.options.asNavFor;return t&&null!==t&&(t=i(t).not(e.$slider)),t},e.prototype.asNavFor=function(e){var t=this.getNavTarget();null!==t&&"object"==typeof t&&t.each(function(){var t=i(this).slick("getSlick");t.unslicked||t.slideHandler(e,!0)})},e.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},e.prototype.autoPlayClear=function(){var i=this;i.autoPlayTimer&&clearInterval(i.autoPlayTimer)},e.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},e.prototype.buildArrows=function(){var e=this;!0===e.options.arrows&&(e.$prevArrow=i(e.options.prevArrow).addClass("slick-arrow"),e.$nextArrow=i(e.options.nextArrow).addClass("slick-arrow"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),!0!==e.options.infinite&&e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},e.prototype.buildDots=function(){var e,t,o=this;if(!0===o.options.dots){for(o.$slider.addClass("slick-dotted"),t=i("<ul />").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i("<li />").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find("li").first().addClass("slick-active")}},e.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+":not(.slick-cloned)").addClass("slick-slide"),e.slideCount=e.$slides.length,e.$slides.each(function(e,t){i(t).attr("data-slick-index",e).data("originalStyling",i(t).attr("style")||"")}),e.$slider.addClass("slick-slider"),e.$slideTrack=0===e.slideCount?i('<div class="slick-track"/>').appendTo(e.$slider):e.$slides.wrapAll('<div class="slick-track"/>').parent(),e.$list=e.$slideTrack.wrap('<div class="slick-list"/>').parent(),e.$slideTrack.css("opacity",0),!0!==e.options.centerMode&&!0!==e.options.swipeToSlide||(e.options.slidesToScroll=1),i("img[data-lazy]",e.$slider).not("[src]").addClass("slick-loading"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),!0===e.options.draggable&&e.$list.addClass("draggable")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.o
vendor: 3,442 bytes, line 1214
1214ptions.rows>1){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement("div");for(e=0;e<l.options.rows;e++){var a=document.createElement("div");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+"%",display:"inline-block"})}},e.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if("window"===r.respondTo?n=a:"slider"===r.respondTo?n=d:"min"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){s=null;for(o in r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(!1===r.originalSettings.mobileFirst?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||!1===l||r.$slider.trigger("breakpoint",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is("a")&&e.preventDefault(),l.is("li")||(l=l.closest("li")),n=r.slideCount%r.options.slidesToScroll!=0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case"previous":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case"next":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case"index":var d=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(d),!1,t),l.children().trigger("focus");break;default:return}},e.prototype.checkNavigable=function(i){var e,t;if(e=this.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var o in e){if(i<e[o]){i=t;break}t=e[o]}return i},e.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&(i("li",e.$dots).off("click.slick",e.changeSlide).off("mouseenter.slick",i.proxy(e.interrupt,e,!0)).off("mouseleave.slick",i.proxy(e.interrupt,e,!1)),!0===e.options.accessibility&&e.$dots.off("keydown.slick",e.keyHandler)),e.$slider.off("focus.slick blur.slick"),!0===e.options.arrows&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off("click.slick",e.changeSlide),e.$nextArrow&&e.$nextArrow.off("click.slick",e.changeSlide),!0===e.options.accessibility&&(e.$prevArrow&&e.$prevArrow.off("keydown.slick",e.keyHandler),e.$nextArrow&&e.$nextArrow.off("keydown.slick",e.keyHandler))),e.$list.off("touchstart.slick mousedown.slick",e.swipeHandler),e.$list.off("touchmove.slick mousemove.slick",e.swipeHandler),e.$list.off("touchend.slick mouseup.slick",e.swipeHandler),e.$list.off("touchcancel.slick mouseleave.
1214slick",e.swipeHandler),e.$list.off("click.slick",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),!0===e.options.accessibility&&e.$list.off("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().off("click.slick",e.selectHandler),i(window).off("orientationchange.slick.slick-"+e.instanceUid,e.orientationChange),i(window).off("resize.slick.slick-"+e.instanceUid,e.resize),i("[draggable!=true]",e.$slideTrack).off("dragstart",e.preventDefault),i(window).off("load.slick.slick-"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.off("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>1&&((i=e.$slides.children().children()).removeAttr("style"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(".slick-cloned",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){i(this).attr("style",i(this).data("originalStyling"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass("slick-slider"),t.$slider.removeClass("slick-initialized"),t.$slider.removeClass("slick-dotted"),t.unslicked=!0,e||t.$slider.trigger("destroy",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]="",!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*",function(t){t.stopImmediatePropagation();var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&(e.focussed=o.is(":focus"),e.autoPlay())},0)})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){return this.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},e.prototype.getLeft=function(i){var e,t,o,s,n=this,r=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){return this.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(!1===e.options.infinite?i=e.slideCount:(t=-1*e.options.slidesToScroll,o=-1*e.options.slidesToScroll,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},e.prototype.getSlick=function(){return this},e.prototype.getSlideCount=function(){var e,t,o=this;return t=!0===o.options.centerMode?o.slideWidth*Math.floor(o.options.slidesToShow/2):0,!0===o.options.swipeToSlide?(o.$slideTrack.find(".slick-slide").each(function(s,n){if(n.offsetLeft-t+i(n).outerWidth()/2>-1*o.swipeLeft)return e=n,!1}),Math.abs(i(e).attr("data-slick-index")-o.currentSlide)||1):o.options.slidesToScroll},e.prototype.goTo=e.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:"index",index:
1214parseInt(i)}},e)},e.prototype.init=function(e){var t=this;i(t.$slider).hasClass("slick-initialized")||(i(t.$slider).addClass("slick-initialized"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger("init",[t]),!0===t.options.accessibility&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},e.prototype.initADA=function(){var e=this,t=Math.ceil(e.slideCount/e.options.slidesToShow),o=e.getNavigableIndexes().filter(function(i){return i>=0&&i<e.slideCount});e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),null!==e.$dots&&(e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t){var s=o.indexOf(t);i(this).attr({role:"tabpanel",id:"slick-slide"+e.instanceUid+t,tabindex:-1}),-1!==s&&i(this).attr({"aria-describedby":"slick-slide-control"+e.instanceUid+s})}),e.$dots.attr("role","tablist").find("li").each(function(s){var n=o[s];i(this).attr({role:"presentation"}),i(this).find("button").first().attr({role:"tab",id:"slick-slide-control"+e.instanceUid+s,"aria-controls":"slick-slide"+e.instanceUid+n,"aria-label":s+1+" of "+t,"aria-selected":null,tabindex:"-1"})}).eq(e.currentSlide).find("button").attr({"aria-selected":"true",tabindex:"0"}).end());for(var s=e.currentSlide,n=s+e.options.slidesToShow;s<n;s++)e.$slides.eq(s).attr("tabindex",0);e.activateADA()},e.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide),!0===i.options.accessibility&&(i.$prevArrow.on("keydown.slick",i.keyHandler),i.$nextArrow.on("keydown.slick",i.keyHandler)))},e.prototype.initDotEvents=function(){var e=this;!0===e.options.dots&&(i("li",e.$dots).on("click.slick",{message:"index"},e.changeSlide),!0===e.options.accessibility&&e.$dots.on("keydown.slick",e.keyHandler)),!0===e.options.dots&&!0===e.options.pauseOnDotsHover&&i("li",e.$dots).on("mouseenter.slick",i.proxy(e.interrupt,e,!0)).on("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.on("mouseleave.slick",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on("touchstart.slick mousedown.slick",{action:"start"},e.swipeHandler),e.$list.on("touchmove.slick mousemove.slick",{action:"move"},e.swipeHandler),e.$list.on("touchend.slick mouseup.slick",{action:"end"}
1214,e.swipeHandler),e.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},e.swipeHandler),e.$list.on("click.slick",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),!0===e.options.accessibility&&e.$list.on("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),i(window).on("orientationchange.slick.slick-"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on("resize.slick.slick-"+e.instanceUid,i.proxy(e.resize,e)),i("[draggable!=true]",e.$slideTrack).on("dragstart",e.preventDefault),i(window).on("load.slick.slick-"+e.instanceUid,e.setPosition),i(e.setPosition)},e.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===i.keyCode&&!0===e.options.accessibility?e.changeSlide({data:{message:!0===e.options.rtl?"next":"previous"}}):39===i.keyCode&&!0===e.options.accessibility&&e.changeSlide({data:{message:!0===e.options.rtl?"previous":"next"}}))},e.prototype.lazyLoad=function(){function e(e){i("img[data-lazy]",e).each(function(){var e=i(this),t=i(this).attr("data-lazy"),o=i(this).attr("data-srcset"),s=i(this).attr("data-sizes")||n.$slider.attr("data-sizes"),r=document.createElement("img");r.onload=function(){e.animate({opacity:0}
vendor: 5,619 bytes, line 1214
1214,100,function(){o&&(e.attr("srcset",o),s&&e.attr("sizes",s)),e.attr("src",t).animate({opacity:1},200,function(){e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")}),n.$slider.trigger("lazyLoaded",[n,e,t])})},r.onerror=function(){e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),n.$slider.trigger("lazyLoadError",[n,e,t])},r.src=t})}var t,o,s,n=this;if(!0===n.options.centerMode?!0===n.options.infinite?s=(o=n.currentSlide+(n.options.slidesToShow/2+1))+n.options.slidesToShow+2:(o=Math.max(0,n.currentSlide-(n.options.slidesToShow/2+1)),s=n.options.slidesToShow/2+1+2+n.currentSlide):(o=n.options.infinite?n.options.slidesToShow+n.currentSlide:n.currentSlide,s=Math.ceil(o+n.options.slidesToShow),!0===n.options.fade&&(o>0&&o--,s<=n.slideCount&&s++)),t=n.$slider.find(".slick-slide").slice(o,s),"anticipated"===n.options.lazyLoad)for(var r=o-1,l=s,d=n.$slider.find(".slick-slide"),a=0;a<n.options.slidesToScroll;a++)r<0&&(r=n.slideCount-1),t=(t=t.add(d.eq(r))).add(d.eq(l)),r--,l++;e(t),n.slideCount<=n.options.slidesToShow?e(n.$slider.find(".slick-slide")):n.currentSlide>=n.slideCount-n.options.slidesToShow?e(n.$slider.find(".slick-cloned").slice(0,n.options.slidesToShow)):0===n.currentSlide&&e(n.$slider.find(".slick-cloned").slice(-1*n.options.slidesToShow))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){this.changeSlide({data:{message:"next"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(e){var t=this;t.unslicked||(t.$slider.trigger("afterChange",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),!0===t.options.accessibility&&(t.initADA(),t.options.focusOnChange&&i(t.$slides.get(t.currentSlide)).attr("tabindex",0).focus()))},e.prototype.prev=e.prototype.slickPrev=function(){this.changeSlide({data:{message:"previous"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i("img[data-lazy]",l.$slider);d.length?(t=d.first(),o=t.attr("data-lazy"),s=t.attr("data-srcset"),n=t.attr("data-sizes")||l.$slider.attr("data-sizes"),(r=document.createElement("img")).onload=function(){s&&(t.attr("srcset",s),n&&t.attr("sizes",n)),t.attr("src",o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger("lazyLoaded",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout(function(){l.progressiveLazyLoad(e+1)},500):(t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),l.$slider.trigger("lazyLoadError",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger("allImagesLoaded",[l])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:"index",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if("array"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||"window";for(e in n)if(o=s.breakpoints.length-1,n.hasOwnProperty(e)){for(t=n[e].breakpoint;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass("slick-slide"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger("reInit",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;if(i="boolean"==typeof i?!0===(e=i)?0:o.slideCount-1:!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},e.prototype.setCSS=function(i){var e,t,o=this,s={};
1214!0===o.options.rtl&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,!1===o.transformsEnabled?o.$slideTrack.css(s):(s={},!1===o.cssTransitions?(s[o.animType]="translate("+e+", "+t+")",o.$slideTrack.css(s)):(s[o.animType]="translate3d("+e+", "+t+", 0px)",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,!0===t.options.rtl?i(s).css({position:"relative",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}
1214):i(s).css({position:"relative",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css("height",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if("object"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n="multiple"):"string"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],"responsive"===arguments[0]&&"array"===i.type(arguments[1])?n="responsive":void 0!==arguments[1]&&(n="single")),"single"===n)r.options[o]=s;else if("multiple"===n)i.each(o,function(i,e){r.options[i]=e});else if("responsive"===n)for(t in s)if("array"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),n.$slides.eq(i).addClass("slick-current"),!0===n.options.centerMode){var r=n.options.slidesToShow%2==0?1:0;e=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass("slick-active").attr("aria-hidden","false"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass("slick-active").attr("aria-hidden","false")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass("slick-center"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass("slick-center")),n.$slides.eq(i).addClass("slick-center")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):t.length<=n.options.slidesToShow?t.addClass("slick-active").attr("aria-hidden","false"):(s=n.slideCount%n.options.slidesToShow,o=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass("slick-active").attr("aria-hidden","false"):t.slice(o,o+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"));"ondemand"!==n.options.lazyLoad&&"anticipated"!==n.options.lazyLoad||n.lazyLoad()},e.prototype.setupInfinite=function(){var e,t,o,s=this;if(!0===s.options.fade&&(s.options.centerMode=!1),!0===s.options.infinite&&!1===s.options.fade&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=!0===s.options.centerMode?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t-s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");for(e=0;e<o+s.slideCount;e+=1)t=e,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t+s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");s.$slideTrack.find(".slick-cloned").find("[id]").each(function(){i(this).attr("id","")})}},e.prototype.interrupt=function(i){var e=this;i||e.autoPlay(),e.interrupted=i},e.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(".slick-slide")?i(e.target):i(e.target).parents(".slick-slide"),s=parseInt(o.attr("data-slick-index"));s||(s=0),t.slideCount<=t.options.slidesToShow?t.slideHandler(s,!1,!0):t.slideHandler(s)},e.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d=null,a=this;if(e=e||!1,!(!0===a.animating&&!0===a.options.waitForAnimate||!0===a.options.fade&&a.currentSlide===i))if(!1===e&&a.asNavFor(i),o=i,d=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,!1===a.options.infinite&&!1===a.options.centerMode&&(i<0||i>a.getDotCount()*a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else if(!1===a.options.infinite&&!0===a.options.centerMode&&(i<0||i>a.slideCount-a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else{if(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!=0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+
1214o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!=0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger("beforeChange",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(l=(l=a.getNavTarget()).slick("getSlick")).slideCount<=l.options.slidesToShow&&l.setSlideClasses(a.currentSlide),a.updateDots(),a.updateArrows(),!0===a.options.fade)return!0!==t?(a.fadeSlideOut(n),a.fadeSlide(s,function(){a.postSlide(s)})):a.postSlide(s),void a.animateHeight();!0!==t?a.animateSlide(d,function(){a.postSlide(s)}):a.postSlide(s)}},e.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),(o=Math.round(180*t/Math.PI))<0&&(o=360-Math.abs(o)),o<=45&&o>=0?!1===s.options.rtl?"left":"right":o<=360&&o>=315?!1===s.options.rtl?"left":"right":o>=135&&o<=225?!1===s.options.rtl?"right":"left":!0===s.options.verticalSwiping?o>=35&&o<=135?"down":"up":"vertical"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||"ontouchend"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf("mouse")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,!1===l.options.infinite&&(0===l.currentSlide&&"right"===t||l.currentSlide>=l.getDotCount()&&"left"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},e.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return t.touchObject={},!1;void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(".slick-cloned",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")}
1214,e.prototype.unslick=function(i){var e=this;e.$slider.trigger("unslick",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===i.currentSlide?(i.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode?(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode&&(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").end(),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if("object"==typeof s||void 0===s?o[i].slick=new e(o[i],s):t=o[i].slick[s].apply(o[i].slick,n),void 0!==t)return t;return o}}); 1215 1216const swiffyslider={version:"1.6.0",init(e=document.body){e.querySelectorAll(".swiffy-slider").forEach((e=>this.initSlider(e)))},initSlider(e){if(e.querySelectorAll(".slider-nav").forEach((t=>t.addEventListener("click",(()=>this.slide(e,t.classList.contains("slider-nav-next"))),{passive:!0}))),e.querySelectorAll(".slider-indicators").forEach((t=>{t.addEventListener("click",(()=>this.slideToByIndicator())),this.onSlideEnd(e,(()=>this.handleIndicators(e)),60)})),e.classList.contains("slider-nav-autoplay")){const t=e.getAttribute("data-slider-nav-autoplay-interval")?e.getAttribute("data-slider-nav-autoplay-interval"):2500;this.autoPlay(e,t,e.classList.contains("slider-nav-autopause"))}if(["slider-nav-autohide","slider-nav-animation"].some((t=>e.classList.contains(t)))){const t=e.getAttribute("data-slider-nav-animation-threshold")?e.getAttribute("data-slider-nav-animation-threshold"):.3;this.setVisibleSlides(e,t)}},setVisibleSlides(e,t=.3){let i=new IntersectionObserver((t=>{t.forEach((e=>{e.isIntersecting?e.target.classList.add("slide-visible"):e.target.classList.remove("slide-visible")})),e.querySelector(".slider-container>*:first-child").classList.contains("slide-visible")?e.classList.add("slider-item-first-visible"):e.classList.remove("slider-item-first-visible"),e.querySelector(".slider-container>*:last-child").classList.contains("slide-visible")?e.classList.add("slider-item-last-visible"):e.classList.remove("slider-item-last-visible")}),{root:e.querySelector(".slider-container"),threshold:t});e.querySelectorAll(".slider-container>*").forEach((e=>i.observe(e)))},slide(e,t=!0){const i=e.querySelector(".slider-container"),s=e.classList.contains("slider-nav-page"),l=e.classList.contains("slider-nav-noloop"),r=e.classList.contains("slider-nav-nodelay"),a=i.children,o=parseInt(window.getComputedStyle(i).columnGap),n=a[0].offsetWidth+o;let d=t?i.scrollLeft+n:i.scrollLeft-n;s&&(d=t?i.scrollLeft+i.offsetWidth:i.scrollLeft-i.offsetWidth),i.scrollLeft<1&&!t&&!l&&(d=i.scrollWidth-i.offsetWidth),Math.ceil(i.scrollLeft)>=i.scrollWidth-i.offsetWidth&&t&&!l&&(d=0),i.scroll({left:d,behavior:r?"auto":"smooth"})},slideToByIndicator(){const e=window.event.target,t=Array.from(e.parentElement.children).indexOf(e),i=e.parentElement.children.length,s=e.closest(".swiffy-slider"),l=s.querySelector(".slider-container").children.length/i*t;this.slideTo(s,l)},slideTo(e,t){const i=e.querySelector(".slider-container"),s=parseInt(window.getComputedStyle(i).columnGap),l=i.children[0].offsetWidth+s,r=e.classList.contains("slider-nav-nodelay");i.scroll({left:l*t,behavior:r?"auto":"smooth"})},onSlideEnd(e,t,i=125){let s;e.querySelector(".slider-container").addEventListener("scroll",(()=>{window.clearTimeout(s),s=setTimeout(t,i)}),{capture:!1,passive:!0})},autoPlay(e,t,i){t=t<750?750:t;let s=setInterval((()=>this.slide(e)),t);const autoplayer=()=>this.autoPlay(e,t,i);return i&&(["mouseover","touchstart"].forEach((t=>{e.addEventListener(t,(()=>{window.clearTimeout(s)}),{once:!0,passive:!0})}
1216)),["mouseout","touchend"].forEach((t=>{e.addEventListener(t,(()=>{autoplayer()}),{once:!0,passive:!0})}))),s},handleIndicators(e){if(!e)return;const t=e.querySelector(".slider-container"),i=t.scrollWidth-t.offsetWidth,s=t.scrollLeft/i;e.querySelectorAll(".slider-indicators").forEach((e=>{let t=e.children,i=Math.abs(Math.round((t.length-1)*s));for(let e of t)e.classList.remove("active");t[i].classList.add("active")}))}};window.swiffyslider=swiffyslider,document.currentScript.hasAttribute("data-noinit")||(document.currentScript.hasAttribute("defer")?swiffyslider.init():document.onreadystatechange=()=>{"interactive"===document.readyState&&swiffyslider.init()});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.