").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function mc(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,n.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?("undefined"!=typeof e.getBoundingClientRect&&(d=e.getBoundingClientRect()),c=mc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Qa})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return Y(this,function(a,d,e){var f=mc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ua(l.pixelPosition,function(a,c){return c?(c=Sa(a,b),Oa.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({
padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return Y(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var nc=a.jQuery,oc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=oc),b&&a.jQuery===n&&(a.jQuery=nc),n},b||(a.jQuery=a.$=n),n});/*!
* jQuery Cycle2; version: 2.1.6 build: 20141007
* http://jquery.malsup.com/cycle2/
* Copyright (c) 2014 M. Alsup; Dual licensed: MIT/GPL
*/
/* Cycle2 core engine */
;(function($) {
"use strict";
var version = '2.1.6';
$.fn.cycle = function( options ) {
// fix mistakes with the ready state
var o;
if ( this.length === 0 && !$.isReady ) {
o = { s: this.selector, c: this.context };
$.fn.cycle.log('requeuing slideshow (dom not ready)');
$(function() {
$( o.s, o.c ).cycle(options);
});
return this;
}
return this.each(function() {
var data, opts, shortName, val;
var container = $(this);
var log = $.fn.cycle.log;
if ( container.data('cycle.opts') )
return; // already initialized
if ( container.data('cycle-log') === false ||
( options && options.log === false ) ||
( opts && opts.log === false) ) {
log = $.noop;
}
log('--c2 init--');
data = container.data();
for (var p in data) {
// allow props to be accessed sans 'cycle' prefix and log the overrides
if (data.hasOwnProperty(p) && /^cycle[A-Z]+/.test(p) ) {
val = data[p];
shortName = p.match(/^cycle(.*)/)[1].replace(/^[A-Z]/, lowerCase);
log(shortName+':', val, '('+typeof val +')');
data[shortName] = val;
}
}
opts = $.extend( {}, $.fn.cycle.defaults, data, options || {});
opts.timeoutId = 0;
opts.paused = opts.paused || false; // #57
opts.container = container;
opts._maxZ = opts.maxZ;
opts.API = $.extend ( { _container: container }, $.fn.cycle.API );
opts.API.log = log;
opts.API.trigger = function( eventName, args ) {
opts.container.trigger( eventName, args );
return opts.API;
};
container.data( 'cycle.opts', opts );
container.data( 'cycle.API', opts.API );
// opportunity for plugins to modify opts and API
opts.API.trigger('cycle-bootstrap', [ opts, opts.API ]);
opts.API.addInitialSlides();
opts.API.preInitSlideshow();
if ( opts.slides.length )
opts.API.initSlideshow();
});
};
$.fn.cycle.API = {
opts: function() {
return this._container.data( 'cycle.opts' );
},
addInitialSlides: function() {
var opts = this.opts();
var slides = opts.slides;
opts.slideCount = 0;
opts.slides = $(); // empty set
// add slides that already exist
slides = slides.jquery ? slides : opts.container.find( slides );
if ( opts.random ) {
slides.sort(function() {return Math.random() - 0.5;});
}
opts.API.add( slides );
},
preInitSlideshow: function() {
var opts = this.opts();
opts.API.trigger('cycle-pre-initialize', [ opts ]);
var tx = $.fn.cycle.transitions[opts.fx];
if (tx && $.isFunction(tx.preInit))
tx.preInit( opts );
opts._preInitialized = true;
},
postInitSlideshow: function() {
var opts = this.opts();
opts.API.trigger('cycle-post-initialize', [ opts ]);
var tx = $.fn.cycle.transitions[opts.fx];
if (tx && $.isFunction(tx.postInit))
tx.postInit( opts );
},
initSlideshow: function() {
var opts = this.opts();
var pauseObj = opts.container;
var slideOpts;
opts.API.calcFirstSlide();
if ( opts.container.css('position') == 'static' )
opts.container.css('position', 'relative');
$(opts.slides[opts.currSlide]).css({
opacity: 1,
display: 'block',
visibility: 'visible'
});
opts.API.stackSlides( opts.slides[opts.currSlide], opts.slides[opts.nextSlide], !opts.reverse );
if ( opts.pauseOnHover ) {
// allow pauseOnHover to specify an element
if ( opts.pauseOnHover !== true )
pauseObj = $( opts.pauseOnHover );
pauseObj.hover(
function(){ opts.API.pause( true ); },
function(){ opts.API.resume( true ); }
);
}
// stage initial transition
if ( opts.timeout ) {
slideOpts = opts.API.getSlideOpts( opts.currSlide );
opts.API.queueTs );
slideOpts.slideNum = opts.slideCount;
try {
// these props should always be read from the master state object
delete slideOpts.API;
delete slideOpts.slideCount;
delete slideOpts.currSlide;
delete slideOpts.nextSlide;
delete slideOpts.slides;
} catch(e) {
// no op
}
return slideOpts;
},
getSlideOpts: function( index ) {
var opts = this.opts();
if ( index === undefined )
index = opts.currSlide;
var slide = opts.slides[index];
var slideOpts = $(slide).data('cycle.opts');
return $.extend( {}, opts, slideOpts );
},
initSlide: function( slideOpts, slide, suggestedZindex ) {
var opts = this.opts();
slide.css( slideOpts.slideCss || {} );
if ( suggestedZindex > 0 )
slide.css( 'zIndex', suggestedZindex );
// ensure that speed settings are sane
if ( isNaN( slideOpts.speed ) )
slideOpts.speed = $.fx.speeds[slideOpts.speed] || $.fx.speeds._default;
if ( !slideOpts.sync )
slideOpts.speed = slideOpts.speed / 2;
slide.addClass( opts.slideClass );
},
updateView: function( isAfter, isDuring, forceEvent ) {
var opts = this.opts();
if ( !opts._initialized )
return;
var slideOpts = opts.API.getSlideOpts();
var currSlide = opts.slides[ opts.currSlide ];
if ( ! isAfter && isDuring !== true ) {
opts.API.trigger('cycle-update-view-before', [ opts, slideOpts, currSlide ]);
if ( opts.updateView < 0 )
return;
}
if ( opts.slideActiveClass ) {
opts.slides.removeClass( opts.slideActiveClass )
.eq( opts.currSlide ).addClass( opts.slideActiveClass );
}
if ( isAfter && opts.hideNonActive )
opts.slides.filter( ':not(.' + opts.slideActiveClass + ')' ).css('visibility', 'hidden');
if ( opts.updateView === 0 ) {
setTimeout(function() {
opts.API.trigger('cycle-update-view', [ opts, slideOpts, currSlide, isAfter ]);
}, slideOpts.speed / (opts.sync ? 2 : 1) );
}
if ( opts.updateView !== 0 )
opts.API.trigger('cycle-update-view', [ opts, slideOpts, currSlide, isAfter ]);
if ( isAfter )
opts.API.trigger('cycle-update-view-after', [ opts, slideOpts, currSlide ]);
},
getComponent: function( name ) {
var opts = this.opts();
var selector = opts[name];
if (typeof selector === 'string') {
// if selector is a child, sibling combinator, adjancent selector then use find, otherwise query full dom
return (/^\s*[\>|\+|~]/).test( selector ) ? opts.container.find( selector ) : $( selector );
}
if (selector.jquery)
return selector;
return $(selector);
},
stackSlides: function( curr, next, fwd ) {
var opts = this.opts();
if ( !curr ) {
curr = opts.slides[opts.currSlide];
next = opts.slides[opts.nextSlide];
fwd = !opts.reverse;
}
// reset the zIndex for the common case:
// curr slide on top, next slide beneath, and the rest in order to be shown
$(curr).css('zIndex', opts.maxZ);
var i;
var z = opts.maxZ - 2;
var len = opts.slideCount;
if (fwd) {
for ( i = opts.currSlide + 1; i < len; i++ )
$( opts.slides[i] ).css( 'zIndex', z-- );
for ( i = 0; i < opts.currSlide; i++ )
$( opts.slides[i] ).css( 'zIndex', z-- );
}
else {
for ( i = opts.currSlide - 1; i >= 0; i-- )
$( opts.slides[i] ).css( 'zIndex', z-- );
for ( i = len - 1; i > opts.currSlide; i-- )
$( opts.slides[i] ).css( 'zIndex', z-- );
}
$(next).css('zIndex', opts.maxZ - 1);
},
getSlideIndex: function( el ) {
return this.opts().slides.index( el );
}
}; // API
// default logger
$.fn.cycle.log = function log() {
/*global console:true */
if (window.console && console.log)
console.log('[cycle2] ' + Array.prototype.join.call(arguments, ' ') );
};
$.fn.cycle.version = function() { return 'Cycle2: ' + version; };
// helper functions
function lowerCase(s) {
return (s || '').toLowerCase();
}
// expose transition object
$.fn.cycle.transitions = {
custom: {
},
none: {
before: function( opts, curr, next, fwd ) {
opts.API.stackSlides( next, curr, fwd );
opts.cssBefore = { opacity: 1, visibility: 'visible', display: 'block' };
}
},
fade: {
before: function( opts, curr, next, fwd ) {
var css = opts.API.getSlideOpts( opts.nextSlide ).slideCss || {};
opts.API.stackSlides( curr, next, fwd );
opts.cssBefore = $.extend(css, { opacity: 0, visibility: 'visible', display: 'block' });
opts.animIn = { opacity: 1 };
opts.animOut = { opacity: 0 };
}
},
fadeout: {
before: function( opts , curr, next, fwd ) {
var css = opts.API.getSlideOpts( opts.nextSlide ).slideCss || {};
opts.API.stackSlides( curr, next, fwd );
opts.cssBefore = $.extend(css, { opacity: 1, visibility: 'visible', display: 'block' });
opts.animOut = { opacity: 0 };
}
},
scrollHorz: {
before: function( opts, curr, next, fwd ) {
opts.API.stackSlides( curr, next, fwd );
var w = opts.container.css('overflow','hidden').width();
opts.cssBefore = { left: fwd ? w : - w, top: 0, opacity: 1, visibility: 'visible', display: 'block' };
opts.cssAfter = { zIndex: opts._maxZ - 2, left: 0 };
opts.animIn = { left: 0 };
opts.animOut = { left: fwd ? -w : w };
}
}
};
// @see: http://jquery.malsup.com/cycle2/api
$.fn.cycle.defaults = {
allowWrap: true,
autoSelector: '.cycle-slideshow[data-cycle-auto-init!=false]',
delay: 0,
easing: null,
fx: 'fade',
hideNonActive: true,
loop: 0,
manualFx: undefined,
manualSpeed: undefined,
manualTrump: true,
maxZ: 100,
pauseOnHover: false,
reverse: false,
slideActiveClass: 'cycle-slide-active',
slideClass: 'cycle-slide',
slideCss: { position: 'absolute', top: 0, left: 0 },
slides: '> img',
speed: 500,
startingSlide: 0,
sync: true,
timeout: 4000,
updateView: 0
};
// automatically find and run slideshows
$(document).ready(function() {
$( $.fn.cycle.defaults.autoSelector ).cycle();
});
})(jQuery);
/*! Cycle2 autoheight plugin; Copyright (c) M.Alsup, 2012; version: 20130913 */
(function($) {
"use strict";
$.extend($.fn.cycle.defaults, {
autoHeight: 0, // setting this option to false disables autoHeight logic
autoHeightSpeed: 250,
autoHeightEasing: null
});
$(document).on( 'cycle-initialized', function( e, opts ) {
var autoHeight = opts.autoHeight;
var t = $.type( autoHeight );
var resizeThrottle = null;
var ratio;
if ( t !== 'string' && t !== 'number' )
return;
// bind events
opts.container.on( 'cycle-slide-added cycle-slide-removed', initAutoHeight );
opts.container.on( 'cycle-destroyed', onDestroy );
if ( autoHeight == 'container' ) {
opts.container.on( 'cycle-before', onBefore );
}
else if ( t === 'string' && /\d+\:\d+/.test( autoHeight ) ) {
// use ratio
ratio = autoHeight.match(/(\d+)\:(\d+)/);
ratio = ratio[1] / ratio[2];
opts._autoHeightRatio = ratio;
}
// if autoHeight is a number then we don't need to recalculate the sentinel
// index on resize
if ( t !== 'number' ) {
// bind unique resize handler per slideshow (so it can be 'off-ed' in onDestroy)
opts._autoHeightOnResize = function () {
clearTimeout( resizeThrottle );
resizeThrottle = setTimeout( onResize, 50 );
};
$(window).on( 'resize orientationchange', opts._autoHeightOnResize );
}
setTimeout( onResize, 30 );
function onResize() {
initAutoHeight( e, opts );
}
});
function initAutoHeight( e, opts ) {
var clone, height, sentinelIndex;
var autoHeight = opts.autoHeight;
if ( autoHeight == 'container' ) {
height = $( opts.slides[ opts.currSlide ] ).outerHeight();
opts.container.height( height );
}
else if ( opts._autoHeightRatio ) {
opts.container.height( opts.container.width() / opts._autoHeightRatio );
}
else if ( autoHeight === 'calc' || ( $.type( autoHeight ) == 'number' && autoHeight >= 0 ) ) {
if ( autoHeight === 'calc' )
sentinelIndex = calcSentinelIndex( e, opts );
else if ( autoHeight >= opts.slides.length )
sentinelIndex = 0;
else
sentinelIndex = autoHeight;
// only recreate sentinel if index is different
if ( sentinelIndex == opts._sentinelIndex )
return;
opts._sentinelIndex = sentinelIndex;
if ( opts._sentinel )
opts._sentinel.remove();
// clone existing slide as sentinel
clone = $( opts.slides[ sentinelIndex ].cloneNode(true) );
// #50; remove special attributes from cloned content
clone.removeAttr( 'id name rel' ).find( '[id],[name],[rel]' ).removeAttr( 'id name rel' );
clone.css({
position: 'static',
visibility: 'hidden',
display: 'block'
}).prependTo( opts.container ).addClass('cycle-sentinel cycle-slide').removeClass('cycle-slide-active');
clone.find( '*' ).css( 'visibility', 'hidden' );
opts._sentinel = clone;
}
}
function calcSentinelIndex( e, opts ) {
var index = 0, max = -1;
// calculate tallest slide index
opts.slides.each(function(i) {
var h = $(this).height();
if ( h > max ) {
max = h;
index = i;
}
});
return index;
}
function onBefore( e, opts, outgoing, incoming, forward ) {
var h = $(incoming).outerHeight();
opts.container.animate( { height: h }, opts.autoHeightSpeed, opts.autoHeightEasing );
}
function onDestroy( e, opts ) {
if ( opts._autoHeightOnResize ) {
$(window).off( 'resize orientationchange', opts._autoHeightOnResize );
opts._autoHeightOnResize = null;
}
opts.container.off( 'cycle-slide-added cycle-slide-removed', initAutoHeight );
opts.container.off( 'cycle-destroyed', onDestroy );
opts.container.off( 'cycle-before', onBefore );
if ( opts._sentinel ) {
opts._sentinel.remove();
opts._sentinel = null;
}
}
})(jQuery);
/*! caption plugin for Cycle2; version: 20130306 */
(function($) {
"use strict";
$.extend($.fn.cycle.defaults, {
caption: '> .cycle-caption',
captionTemplate: '{{slideNum}} / {{slideCount}}',
overlay: '> .cycle-overlay',
overlayTemplate: '
{{title}}
{{desc}}
',
captionModule: 'caption'
});
$(document).on( 'cycle-update-view', function( e, opts, slideOpts, currSlide ) {
if ( opts.captionModule !== 'caption' )
return;
var el;
$.each(['caption','overlay'], function() {
var name = this;
var template = slideOpts[name+'Template'];
var el = opts.API.getComponent( name );
if( el.length && template ) {
el.html( opts.API.tmpl( template, slideOpts, opts, currSlide ) );
el.show();
}
else {
el.hide();
}
});
});
$(document).on( 'cycle-destroyed', function( e, opts ) {
var el;
$.each(['caption','overlay'], function() {
var name = this, template = opts[name+'Template'];
if ( opts[name] && template ) {
el = opts.API.getComponent( 'caption' );
el.empty();
}
});
});
})(jQuery);
/*! command plugin for Cycle2; version: 20140415 */
(function($) {
"use strict";
var c2 = $.fn.cycle;
$.fn.cycle = function( options ) {
var cmd, cmdFn, opts;
var args = $.makeArray( arguments );
if ( $.type( options ) == 'number' ) {
return this.cycle( 'goto', options );
}
if ( $.type( options ) == 'string' ) {
return this.each(function() {
var cmdArgs;
cmd = options;
opts = $(this).data('cycle.opts');
if ( opts === undefined ) {
c2.log('slideshow must be initialized before sending commands; "' + cmd + '" ignored');
return;
}
else {
cmd = cmd == 'goto' ? 'jump' : cmd; // issue #3; change 'goto' to 'jump' internally
cmdFn = opts.API[ cmd ];
if ( $.isFunction( cmdFn )) {
cmdArgs = $.makeArray( args );
cmdArgs.shift();
return cmdFn.apply( opts.API, cmdArgs );
}
else {
c2.log( 'unknown command: ', cmd );
}
}
});
}
else {
return c2.apply( this, arguments );
}
};
// copy props
$.extend( $.fn.cycle, c2 );
$.extend( c2.API, {
next: function() {
var opts = this.opts();
if ( opts.busy && ! opts.manualTrump )
return;
var count = opts.reverse ? -1 : 1;
if ( opts.allowWrap === false && ( opts.currSlide + count ) >= opts.slideCount )
return;
opts.API.advanceSlide( count );
opts.API.trigger('cycle-next', [ opts ]).log('cycle-next');
},
prev: function() {
var opts = this.opts();
if ( opts.busy && ! opts.manualTrump )
return;
var count = opts.reverse ? 1 : -1;
if ( opts.allowWrap === false && ( opts.currSlide + count ) < 0 )
return;
opts.API.advanceSlide( count );
opts.API.trigger('cycle-prev', [ opts ]).log('cycle-prev');
},
destroy: function() {
this.stop(); //#204
var opts = this.opts();
var clean = $.isFunction( $._data ) ? $._data : $.noop; // hack for #184 and #201
clearTimeout(opts.timeoutId);
opts.timeoutId = 0;
opts.API.stop();
opts.API.trigger( 'cycle-destroyed', [ opts ] ).log('cycle-destroyed');
opts.container.removeData();
clean( opts.container[0], 'parsedAttrs', false );
// #75; remove inline styles
if ( ! opts.retainStylesOnDestroy ) {
opts.container.removeAttr( 'style' );
opts.slides.removeAttr( 'style' );
opts.slides.removeClass( opts.slideActiveClass );
}
opts.slides.each(function() {
var slide = $(this);
slide.removeData();
slide.removeClass( opts.slideClass );
clean( this, 'parsedAttrs', false );
});
},
jump: function( index, fx ) {
// go to the requested slide
var fwd;
var opts = this.opts();
if ( opts.busy && ! opts.manualTrump )
return;
var num = parseInt( index, 10 );
if (isNaN(num) || num < 0 || num >= opts.slides.length) {
opts.API.log('goto: invalid slide index: ' + num);
return;
}
if (num == opts.currSlide) {
opts.API.log('goto: skipping, already on slide', num);
return;
}
opts.nextSlide = num;
clearTimeout(opts.timeoutId);
opts.timeoutId = 0;
opts.API.log('goto: ', num, ' (zero-index)');
fwd = opts.currSlide < opts.nextSlide;
opts._tempFx = fx;
opts.API.prepareTx( true, fwd );
},
stop: function() {
var opts = this.opts();
var pauseObj = opts.container;
clearTimeout(opts.timeoutId);
opts.timeoutId = 0;
opts.API.stopTransition();
if ( opts.pauseOnHover ) {
if ( opts.pauseOnHover !== true )
pauseObj = $( opts.pauseOnHover );
pauseObj.off('mouseenter mouseleave');
}
opts.API.trigger('cycle-stopped', [ opts ]).log('cycle-stopped');
},
reinit: function() {
var opts = this.opts();
opts.API.destroy();
opts.container.cycle();
},
remove: function( index ) {
var opts = this.opts();
var slide, slideToRemove, slides = [], slideNum = 1;
for ( var i=0; i < opts.slides.length; i++ ) {
slide = opts.slides[i];
if ( i == index ) {
slideToRemove = slide;
}
else {
slides.push( slide );
$( slide ).data('cycle.opts').slideNum = slideNum;
slideNum++;
}
}
if ( slideToRemove ) {
opts.slides = $( slides );
opts.slideCount--;
$( slideToRemove ).remove();
if (index == opts.currSlide)
opts.API.advanceSlide( 1 );
else if ( index < opts.currSlide )
opts.currSlide--;
else
opts.currSlide++;
opts.API.trigger('cycle-slide-removed', [ opts, index, slideToRemove ]).log('cycle-slide-removed');
opts.API.updateView();
}
}
});
// listen for clicks on elements with data-cycle-cmd attribute
$(document).on('click.cycle', '[data-cycle-cmd]', function(e) {
// issue cycle command
e.preventDefault();
var el = $(this);
var command = el.data('cycle-cmd');
var context = el.data('cycle-context') || '.cycle-slideshow';
$(context).cycle(command, el.data('cycle-arg'));
});
})(jQuery);
/*! hash plugin for Cycle2; version: 20130905 */
(function($) {
"use strict";
$(document).on( 'cycle-pre-initialize', function( e, opts ) {
onHashChange( opts, trueitialized', function( e, opts ) {
var autoHeight = opts.autoHeight;
var t = $.type( autoHeight );
var resizeThrottle = null;
var ratio;
if ( t !== 'string' && t !== 'number' )
return;
// bind events
opts.container.on( 'cycle-slide-added cycle-slide-removed', initAutoHeight );
opts.container.on( 'cycle-destroyed', onDestroy );
if ( autoHeight == 'container' ) {
opts.container.on( 'cycle-before', onBefore );
}
else if ( t === 'string' && /\d+\:\d+/.test( autoHeight ) ) {
// use ratio
ratio = autoHeight.match(/(\d+)\:(\d+)/);
ratio = ratio[1] / ratio[2];
opts._autoHeightRatio = ratio;
}
// if autoHeight is a number then we don't need to recalculate the sentinel
// index on resize
if ( t !== 'number' ) {
// bind unique resize handler per slideshow (so it can be 'off-ed' in onDestroy)
opts._autoHeightOnResize = function () {
clearTimeout( resizeThrottle );
resizeThrottle = setTimeout( onResize, 50 );
};
$(window).on( 'resize orientationchange', opts._autoHeightOnResize );
}
setTimeout( onResize, 30 );
function onResize() {
initAutoHeight( e, opts );
}
});
function initAutoHeight( e, opts ) {
var clone, height, sentinelIndex;
var autoHeight = opts.autoHeight;
if ( autoHeight == 'container' ) {
height = $( opts.slides[ opts.currSlide ] ).outerHeight();
opts.container.height( height );
}
else if ( opts._autoHeightRatio ) {
opts.container.height( opts.container.width() / opts._autoHeightRatio );
}
else if ( autoHeight === 'calc' || ( $.type( autoHeight ) == 'number' && autoHeight >= 0 ) ) {
if ( autoHeight === 'calc' )
sentinelIndex = calcSentinelIndex( e, opts );
else if ( autoHeight >= opts.slides.length )
sentinelIndex = 0;
else
sentinelIndex = autoHeight;
// only recreate sentinel if index is different
if ( sentinelIndex == opts._sentinelIndex )
return;
opts._sentinelIndex = sentinelIndex;
if ( opts._sentinel )
opts._sentinel.remove();
// clone existing slide as sentinel
clone = $( opts.slides[ sentinelIndex ].cloneNode(true) );
// #50; remove special attributes from cloned content
clone.removeAttr( 'id name rel' ).find( '[id],[name],[rel]' ).removeAttr( 'id name rel' );
clone.css({
position: 'static',
visibility: 'hidden',
display: 'block'
}).prependTo( opts.container ).addClass('cycle-sentinel cycle-slide').removeClass('cycle-slide-active');
clone.find( '*' ).css( 'visibility', 'hidden' );
opts._sentinel = clone;
}
}
function calcSentinelIndex( e, opts ) {
var index = 0, max = -1;
// calculate tallest slide index
opts.slides.each(function(i) {
var h = $(this).height();
if ( h > max ) {
max = h;
index = i;
}
});
return index;
}
function onBefore( e, opts, outgoing, incoming, forward ) {
var h = $(incoming).outerHeight();
opts.container.animate( { height: h }, opts.autoHeightSpeed, opts.autoHeightEasing );
}
function onDestroy( e, opts ) {
if ( opts._autoHeightOnResize ) {
$(window).off( 'resize orientationchange', opts._autoHeightOnResize );
opts._autoHeightOnResize = null;
}
opts.container.off( 'cycle-slide-added cycle-slide-removed', initAutoHeight );
opts.container.off( 'cycle-destroyed', onDestroy );
opts.container.off( 'cycle-before', onBefore );
if ( opts._sentinel ) {
opts._sentinel.remove();
opts._sentinel = null;
}
}
})(jQuery);
/*! caption plugin for Cycle2; version: 20130306 */
(function($) {
"use strict";
$.extend($.fn.cycle.defaults, {
caption: '> .cycle-caption',
captionTemplate: '{{slideNum}} / {{slideCount}}',
overlay: '> .cycle-overlay',
overlayTemplate: '
{{title}}
{{desc}}
',
captionModule: 'caption'
});
$(document).on( 'cycle-update-view', function( e, opts, slideOpts, currSlide ) {
if ( opts.captionModule !== 'caption' )
return;
var el;
$.each(['caption','overlay'], function() {
var name = this;
var template = slideOpts[name+'Template'];
var el = opts.API.getComponent( name );
if( el.length && template ) {
el.html( opts.API.tmpl( template, slideOpts, opts, currSlide ) );
el.show();
}
else {
el.hide();
}
});
});
$(document).on( 'cycle-destroyed', function( e, opts ) {
var el;
$.each(['caption','overlay'], function() {
var name = this, template = opts[name+'Template'];
if ( opts[name] && template ) {
el = opts.API.getComponent( 'caption' );
el.empty();
}
});
});
})(jQuery);
/*! command plugin for Cycle2; version: 20140415 */
(function($) {
"use strict";
var c2 = $.fn.cycle;
$.fn.cycle = function( options ) {
var cmd, cmdFn, opts;
var args = $.makeArray( arguments );
if ( $.type( options ) == 'number' ) {
return this.cycle( 'goto', options );
}
if ( $.type( options ) == 'string' ) {
return this.each(function() {
var cmdArgs;
cmd = options;
opts = $(this).data('cycle.opts');
if ( opts === undefined ) {
c2.log('slideshow must be initialized before sending commands; "' + cmd + '" ignored');
return;
}
else {
cmd = cmd == 'goto' ? 'jump' : cmd; // issue #3; change 'goto' to 'jump' internally
cmdFn = opts.API[ cmd ];
if ( $.isFunction( cmdFn )) {
cmdArgs = $.makeArray( args );
cmdArgs.shift();
return cmdFn.apply( opts.API, cmdArgs );
}
else {
c2.log( 'unknown command: ', cmd );
}
}
});
}
else {
return c2.apply( this, arguments );
}
};
// copy props
$.extend( $.fn.cycle, c2 );
$.extend( c2.API, {
next: function() {
var opts = this.opts();
if ( opts.busy && ! opts.manualTrump )
return;
var count = opts.reverse ? -1 : 1;
if ( opts.allowWrap === false && ( opts.currSlide + count ) >= opts.slideCount )
return;
opts.API.advanceSlide( count );
opts.API.trigger('cycle-next', [ opts ]).log('cycle-next');
},
prev: function() {
var opts = this.opts();
if ( opts.busy && ! opts.manualTrump )
return;
var count = opts.reverse ? 1 : -1;
if ( opts.allowWrap === false && ( opts.currSlide + count ) < 0 )
return;
opts.API.advanceSlide( count );
opts.API.trigger('cycle-prev', [ opts ]).log('cycle-prev');
},
destroy: function() {
this.stop(); //#204
var opts = this.opts();
var clean = $.isFunction( $._data ) ? $._data : $.noop; // hack for #184 and #201
clearTimeout(opts.timeoutId);
opts.timeoutId = 0;
opts.API.stop();
opts.API.trigger( 'cycle-destroyed', [ opts ] ).log('cycle-destroyed');
opts.container.removeData();
clean( opts.container[0], 'parsedAttrs', false );
// #75; remove inline styles
if ( ! opts.retainStylesOnDestroy ) {
opts.container.removeAttr( 'style' );
opts.slides.removeAttr( 'style' );
opts.slides.removeClass( opts.slideActiveClass );
}
opts.slides.each(function() {
var slide = $(this);
slide.removeData();
slide.removeClass( opts.slideClass );
clean( this, 'parsedAttrs', false );
});
},
jump: function( index, fx ) {
// go to the requested slide
var fwd;
var opts = this.opts();
if ( opts.busy && ! opts.manualTrump )
return;
var num = parseInt( index, 10 );
if (isNaN(num) || num < 0 || num >= opts.slides.length) {
opts.API.log('goto: invalid slide index: ' + num);
return;
}
if (num == opts.currSlide) {
opts.API.log('goto: skipping, already on slide', num);
return;
}
opts.nextSlide = num;
clearTimeout(opts.timeoutId);
opts.timeoutId = 0;
opts.API.log('goto: ', num, ' (zero-index)');
fwd = opts.currSlide < opts.nextSlide;
opts._tempFx = fx;
opts.API.prepareTx( true, fwd );
},
stop: function() {
var opts = this.opts();
var pauseObj = opts.container;
clearTimeout(opts.timeoutId);
opts.timeoutId = 0;
opts.API.stopTransition();
if ( opts.pauseOnHover ) {
if ( opts.pauseOnHover !== true )
ponent( 'prev' ).off( opts.nextEvent );
opts.API.getComponent( 'next' ).off( opts.prevEvent );
opts.container.off( 'swipeleft.cycle swiperight.cycle swipeLeft.cycle swipeRight.cycle swipeUp.cycle swipeDown.cycle' );
});
})(jQuery);
/*! progressive loader plugin for Cycle2; version: 20130315 */
(function($) {
"use strict";
$.extend($.fn.cycle.defaults, {
progressive: false
});
$(document).on( 'cycle-pre-initialize', function( e, opts ) {
if ( !opts.progressive )
return;
var API = opts.API;
var nextFn = API.next;
var prevFn = API.prev;
var prepareTxFn = API.prepareTx;
var type = $.type( opts.progressive );
var slides, scriptEl;
if ( type == 'array' ) {
slides = opts.progressive;
}
else if ($.isFunction( opts.progressive ) ) {
slides = opts.progressive( opts );
}
else if ( type == 'string' ) {
scriptEl = $( opts.progressive );
slides = $.trim( scriptEl.html() );
if ( !slides )
return;
// is it json array?
if ( /^(\[)/.test( slides ) ) {
try {
slides = $.parseJSON( slides );
}
catch(err) {
API.log( 'error parsing progressive slides', err );
return;
}
}
else {
// plain text, split on delimeter
slides = slides.split( new RegExp( scriptEl.data('cycle-split') || '\n') );
// #95; look for empty slide
if ( ! slides[ slides.length - 1 ] )
slides.pop();
}
}
if ( prepareTxFn ) {
API.prepareTx = function( manual, fwd ) {
var index, slide;
if ( manual || slides.length === 0 ) {
prepareTxFn.apply( opts.API, [ manual, fwd ] );
return;
}
if ( fwd && opts.currSlide == ( opts.slideCount-1) ) {
slide = slides[ 0 ];
slides = slides.slice( 1 );
opts.container.one('cycle-slide-added', function(e, opts ) {
setTimeout(function() {
opts.API.advanceSlide( 1 );
},50);
});
opts.API.add( slide );
}
else if ( !fwd && opts.currSlide === 0 ) {
index = slides.length-1;
slide = slides[ index ];
slides = slides.slice( 0, index );
opts.container.one('cycle-slide-added', function(e, opts ) {
setTimeout(function() {
opts.currSlide = 1;
opts.API.advanceSlide( -1 );
},50);
});
opts.API.add( slide, true );
}
else {
prepareTxFn.apply( opts.API, [ manual, fwd ] );
}
};
}
if ( nextFn ) {
API.next = function() {
var opts = this.opts();
if ( slides.length && opts.currSlide == ( opts.slideCount - 1 ) ) {
var slide = slides[ 0 ];
slides = slides.slice( 1 );
opts.container.one('cycle-slide-added', function(e, opts ) {
nextFn.apply( opts.API );
opts.container.removeClass('cycle-loading');
});
opts.container.addClass('cycle-loading');
opts.API.add( slide );
}
else {
nextFn.apply( opts.API );
}
};
}
if ( prevFn ) {
API.prev = function() {
var opts = this.opts();
if ( slides.length && opts.currSlide === 0 ) {
var index = slides.length-1;
var slide = slides[ index ];
slides = slides.slice( 0, index );
opts.container.one('cycle-slide-added', function(e, opts ) {
opts.currSlide = 1;
opts.API.advanceSlide( -1 );
opts.container.removeClass('cycle-loading');
});
opts.container.addClass('cycle-loading');
opts.API.add( slide, true );
}
else {
prevFn.apply( opts.API );
}
};
}
});
})(jQuery);
/*! tmpl plugin for Cycle2; version: 20121227 */
(function($) {
"use strict";
$.extend($.fn.cycle.defaults, {
tmplRegex: '{{((.)?.*?)}}'
});
$.extend($.fn.cycle.API, {
tmpl: function( str, opts /*, ... */) {
var regex = new RegExp( opts.tmplRegex || $.fn.cycle.defaults.tmplRegex, 'g' );
var args = $.makeArray( arguments );
args.shift();
return str.replace(regex, function(_, str) {
var i, j, obj, prop, names = str.split('.');
for (i=0; i < args.length; i++) {
obj = args[i];
if ( ! obj )
continue;
if (names.length > 1) {
prop = obj;
for (j=0; j < names.length; j++) {
obj = prop;
prop = prop[ names[j] ] || str;
}
} else {
prop = obj[str];
}
if ($.isFunction(prop))
return prop.apply(obj, args);
if (prop !== undefined && prop !== null && prop != str)
return prop;
}
return str;
});
}
});
})(jQuery);!function(a){"use strict";a.extend(a.fn.cycle.defaults,{centerHorz:!1,centerVert:!1}),a(document).on("cycle-pre-initialize",function(b,c){function f(){clearTimeout(d),d=setTimeout(i,50)}function g(b,c){clearTimeout(d),clearTimeout(e),a(window).off("resize orientationchange",f)}function h(){c.slides.each(j)}function i(){j.apply(c.container.find("."+c.slideActiveClass)),clearTimeout(e),e=setTimeout(h,50)}function j(){var b=a(this),d=c.container.width(),e=c.container.height(),f=b.outerWidth(),g=b.outerHeight();f&&(c.centerHorz&&f<=d&&b.css("marginLeft",(d-f)/2),c.centerVert&&g<=e&&b.css("marginTop",(e-g)/2))}if(c.centerHorz||c.centerVert){var d,e;a(window).on("resize orientationchange load",f),c.container.on("cycle-destroyed",g),c.container.on("cycle-initialized cycle-slide-added cycle-slide-removed",function(a,b,c,d){f()}),i()}})}(jQuery);!function(a){"use strict";a(document).on("cycle-bootstrap",function(a,b,c){"carousel"===b.fx&&(c.getSlideIndex=function(a){var b=this.opts()._carouselWrap.children(),c=b.index(a);return c%b.length},c.next=function(){var a=b.reverse?-1:1;b.allowWrap===!1&&b.currSlide+a>b.slideCount-b.carouselVisible||(b.API.advanceSlide(a),b.API.trigger("cycle-next",[b]).log("cycle-next"))})}),a.fn.cycle.transitions.carousel={preInit:function(b){b.hideNonActive=!1,b.container.on("cycle-destroyed",a.proxy(this.onDestroy,b.API)),b.API.stopTransition=this.stopTransition;for(var c=0;c
b.slideCount&&(b.carouselVisible=b.slideCount-1);var h=b.carouselVisible||b.slides.length,i={display:g?"block":"inline-block",position:"static"};if(b.container.css({position:"relative",overflow:"hidden"}),b.slides.css(i),b._currSlide=b.currSlide,f=a('
').prependTo(b.container).css({margin:0,padding:0,top:0,left:0,position:"absolute"}).append(b.slides),b._carouselWrap=f,g||f.css("white-space","nowrap"),b.allowWrap!==!1){for(d=0;d<(void 0===b.carouselVisible?2:1);d++){for(c=0;c .cycle-prev',
prevEvent: 'click.cycle',
swipe: false
});
$(document).on( 'cycle-initialized', function( e, opts ) {
opts.API.getComponent( 'next' ).on( opts.nextEvent, function(e) {
e.preventDefault();
opts.API.next();
});
opts.API.getComponent( 'prev' ).on( opts.prevEvent, function(e) {
e.preventDefault();
opts.API.prev();
});
if ( opts.swipe ) {
var nextEvent = opts.swipeVert ? 'swipeUp.cycle' : 'swipeLeft.cycle swipeleft.cycle';
var prevEvent = opts.swipeVert ? 'swipeDown.cycle' : 'swipeRight.cycle swiperight.cycle';
opts.container.on( nextEvent, function(e) {
opts._tempFx = opts.swipeFx;
opts.API.next();
});
opts.container.on( prevEvent, function() {
opts._tempFx = opts.swipeFx;
opts.API.prev();
});
}
});
$(document).on( 'cycle-update-view', function( e, opts, slideOpts, currSlide ) {
if ( opts.allowWrap )
return;
var cls = opts.disabledClass;
var next = opts.API.getComponent( 'next' );
var prev = opts.API.getComponent( 'prev' );
var prevBoundry = opts._prevBoundry || 0;
var nextBoundry = (opts._nextBoundry !== undefined)?opts._nextBoundry:opts.slideCount - 1;
if ( opts.currSlide == nextBoundry )
next.addClass( cls ).prop( 'disabled', true );
else
next.removeClass( cls ).prop( 'disabled', false );
if ( opts.currSlide === prevBoundry )
prev.addClass( cls ).prop( 'disabled', true );
else
prev.removeClass( cls ).prop( 'disabled', false );
});
$(document).on( 'cycle-destroyed', function( e, opts ) {
opts.API.getComponent( 'prev' ).off( opts.nextEvent );
opts.API.getComponent( 'next' ).off( opts.prevEvent );
opts.container.off( 'swipeleft.cycle swiperight.cycle swipeLeft.cycle swipeRight.cycle swipeUp.cycle swipeDown.cycle' );
});
})(jQuery);
/*! progressive loader plugin for Cycle2; version: 20130315 */
(function($) {
"use strict";
$.extend($.fn.cycle.defaults, {
progressive: false
});
$(document).on( 'cycle-pre-initialize', function( e, opts ) {
if ( !opts.progressive )
return;
var API = opts.API;
var nextFn = API.next;
var prevFn = API.prev;
var prepareTxFn = API.prepareTx;
var type = $.type( opts.progressive );
var slides, scriptEl;
if ( type == 'array' ) {
slides = opts.progressive;
}
else if ($.isFunction( opts.progressive ) ) {
slides = opts.progressive( opts );
}
else if ( type == 'string' ) {
scriptEl = $( opts.progressive );
slides = $.trim( scriptEl.html() );
if ( !slides )
return;
// is it json array?
if ( /^(\[)/.test( slides ) ) {
try {
slides = $.parseJSON( slides );
}
catch(err) {
API.log( 'error parsing progressive slides', err );
return;
}
}
else {
// plain text, split on delimeter
slides = slides.split( new RegExp( scriptEl.data('cycle-split') || '\n') );
// #95; look for empty slide
if ( ! slides[ slides.length - 1 ] )
slides.pop();
}
}
if ( prepareTxFn ) {
API.prepareTx = function( manual, fwd ) {
var index, slide;
if ( manual || slides.length === 0 ) {
prepareTxFn.apply( opts.API, [ manual, fwd ] );
return;
}
if ( fwd && opts.currSlide == ( opts.slideCount-1) ) {
slide = slides[ 0 ];
slides = slides.slice( 1 );
opts.container.one('cycle-slide-added', function(e, opts ) {
setTimeout(function() {
opts.API.advanceSlide( 1 );
},50);
});
opts.API.add( slide );
}
else if ( !fwd && opts.currSlide === 0 ) {
index = slides.length-1;
slide = slides[ index ];
slides = slides.slice( 0, index );
opts.container.one('cycle-slide-added', function(e, opts ) {
setTimeout(function() {
opts.currSlide = 1;
opts.API.advanceSlide( -1 );
},50);
});
opts.API.add( slide, true );
}
else {
prepareTxFn.apply( opts.API, [ manual, fwd ] );
}
};
}
if ( nextFn ) {
API.next = function() {
var opts = this.opts();
if ( slides.length && opts.currSlide == ( opts.slideCount - 1 ) ) {
var slide = slides[ 0 ];
slides = slides.slice( 1 );
opts.container.one('cycle-slide-added', function(e, opts ) {
nextFn.apply( opts.API );
opts.container.removeClass('cycle-loading');
});
opts.container.addClass('cycle-loading');
opts.API.add( slide );
}
else {
nextFn.apply( opts.API );
}
};
}
if ( prevFn ) {
API.prev = function() {
var opts = this.opts();
if ( slides.length && opts.currSlide === 0 ) {
var index = slides.length-1;
var slide = slides[ index ];
slides = slides.slice( 0, index );
opts.container.one('cycle-slide-added', function(e, opts ) {
opts.currSlide = 1;
opts.API.advanceSlide( -1 );
opts.container.removeClass('cycle-loading');
});
opts.container.addClass('cycle-loading');
opts.API.add( slide, true );
}
else {
prevFn.apply( opts.API );
}
};
}
});
})(jQuery);
/*! tmpl plugin for Cycle2; version: 20121227 */
(function($) {
"use strict";
$.extend($.fn.cycle.defaults, {
tmplRegex: '{{((.)?.*?)}}'
});
$.extend($.fn.cycle.API, {
tmpl: function( str, opts /*, ... */) {
var regex = new RegExp( opts.tmplRegex || $.fn.cycle.defaults.tmplRegex, 'g' );
var args = $.makeArray( arguments );
args.shift();
return str.replace(regex, function(_, str) {
var i, j, obj, prop, names = str.split('.');
for (i=0; i < args.length; i++) {
obj = args[i];
if ( ! obj )
continue;
if (names.length > 1) {
prop = obj;
for (j=0; j < names.length; j++) {
obj = prop;
prop = prop[ names[j] ] || str;
}
} else {
prop = obj[str];
}
if ($.isFunction(prop))
return prop.apply(obj, args);
if (prop !== undefined && prop !== null && prop != str)
return prop;
}
return str;
});
}
});
})(jQuery);!function(a){"use strict";a.extend(a.fn.cycle.defaults,{centerHorz:!1,centerVert:!1}),a(document).on("cycle-pre-initialize",function(b,c){function f(){clearTimeout(d),d=setTimeout(i,50)}function g(b,c){clearTimeout(d),clearTimeout(e),a(window).off("resize orientationchange",f)}function h(){c.slides.each(j)}function i(){j.apply(c.container.find("."+c.slideActiveClass)),clearTimeout(e),e=setTimeout(h,50)}function j(){var b=a(this),d=c.container.width(),e=c.container.height(),f=b.outerWidth(),g=b.outerHeight();f&&(c.centerHorz&&f<=d&&b.css("marginLeft",(d-f)/2),c.centerVert&&g<=e&&b.css("marginTop",(e-g)/2))}if(c.centerHorz||c.centerVert){var d,e;a(window).on("resize orientationchange load",f),c.container.on("cycle-destroyed",g),c.container.on("cycle-initialized cycle-slide-added cycle-slide-removed",function(a,b,c,d){f()}),i()}})}(jQuery);!function(a){"use strict";a(document).on("cycle-bootstrap",function(a,b,c){"carousel"===b.fx&&(c.getSlideIndex=function(a){var b=this.opts()._carouselWrap.children(),c=b.index(a);return c%b.length},c.next=function(){var a=b.reverse?-1:1;b.allowWrap===!1&&b.currSlide+a>b.slideCount-b.carouselVisible||(b.API.advanceSlide(a),b.API.trigger("cycle-next",[b]).log("cycle-next"))})}),a.fn.cycle.transitions.carousel={preInit:function(b){b.hideNonActive=!1,b.container.on("cycle-destroyed",a.proxy(this.onDestroy,b.API)),b.API.stopTransition=this.stopTransition;for(var c=0;cb.slideCount&&(b.carouselVisible=b.slideCount-1);var h=b.carouselVisible||b.slides.length,i={display:g?"block":"inline-block",position:"static"};if(b.container.css({position:"relative",overflow:"hidden"}),b.slides.css(i),b._currSlide=b.currSlide,f=a('1&&a)s%=r.group.length,s=s<0?r.group.length+s:s,2==r.group.length?i=t-r.currIndex+r.currPos:(i=s-r.currIndex+r.currPos,Math.abs(r.currPos-(i+r.group.length))1&&((r.opts.loop||i-1>=0)&&r.createSlide(i-1),(r.opts.loop||i+12)for(var a in i.slides)if(i.slides[a].index===o)return s=i.slides[a],s.pos=t,i.slides[t]=s,delete i.slides[a],i.updateSlide(s),s;e=n('
').appendTo(i.$refs.slider),i.slides[t]=n.extend(!0,{},i.group[o],{pos:t,$slide:e,isMoved:!1,isLoaded:!1})}return i.slides[t]},zoomInOut:function(t,e,o){var s,i,a,r=this,c=r.current,l=c.$placeholder,u=c.opts.opacity,p=c.opts.$thumb,h=p?p.offset():0,f=c.$slide.offset();return!!(l&&c.isMoved&&h&&d(p))&&(!("In"===t&&!r.firstRun)&&(n.fancybox.stop(l),r.isAnimating=!0,s={top:h.top-f.top+parseFloat(p.css("border-top-width")||0),left:h.left-f.left+parseFloat(p.css("border-left-width")||0),width:p.width(),height:p.height(),scaleX:1,scaleY:1},"auto"==u&&(u=Math.abs(c.width/c.height-s.width/s.height)>.1),"In"===t?(i=s,a=r.getFitPos(c),a.scaleX=a.width/i.width,a.scaleY=a.height/i.height,u&&(i.opacity=.1,a.opacity=1)):(i=n.fancybox.getTranslate(l),a=s,c.$ghost&&(c.$ghost.show(),c.$image&&c.$image.remove()),i.scaleX=i.width/a.width,i.scaleY=i.height/a.height,i.width=a.width,i.height=a.height,u&&(a.opacity=0)),r.updateCursor(a.width,a.height),delete a.width,delete a.height,n.fancybox.setTranslate(l,i),l.show(),r.trigger("beforeZoom"+t),l.css("transition","all "+e+"ms"),n.fancybox.setTranslate(l,a),setTimeout(function(){var e;l.css("transition","none"),e=n.fancybox.getTranslate(l),e.scaleX=1,e.scaleY=1,n.fancybox.setTranslate(l,e),r.trigger("afterZoom"+t),o.apply(r),r.isAnimating=!1},e),!0))},canPan:function(){var t=this,e=t.current,n=e.$placeholder,o=!1;return n&&(o=t.getFitPos(e),o=Math.abs(n.width()-o.width)>1||Math.abs(n.height()-o.height)>1),o},isScaledDown:function(){var t=this,e=t.current,o=e.$placeholder,s=!1;return o&&(s=n.fancybox.getTranslate(o),s=s.widthh&&(a=i.left*c-(t*c-t),a>0&&(a=0),af&&(r=i.top*l-(e*l-e),r>0&&(r=0),r=a||"x"===u.postfix&&u.value>=i){o=u;break}}!o&&s.length&&(o=s[s.length-1]),o&&(e.src=o.url,e.width&&e.height&&"w"==o.postfix&&(e.height=e.width/e.height*o.value,e.width=o.value))}e.$placeholder=n('1&&(l.src=c.shift(),l.opts.selector=c.shift())),"auto"==l.opts.smallBtn&&(n.inArray(a,["html","inline","ajax"])>-1?(l.opts.buttons=!1,l.opts.smallBtn=!0):l.opts.smallBtn=!1),"pdf"===a&&(l.type="iframe",l.opts.closeBtn=!0,l.opts.smallBtn=!1,l.opts.iframe.preload=!1),l.opts.modal&&n.extend(!0,l.opts,{infobar:0,buttons:0,keyboard:0,slideShow:0,fullScreen:0,closeClickOutside:0}),e.group.push(l)})},addEvents:function(){var e=this;e.removeEvents(),e.$refs.container.on("click.fb-close","[data-fancybox-close]",function(t){t.stopPropagation(),t.preventDefault(),e.close(t)}).on("click.fb-previous","[data-fancybox-previous]",function(t){t.stopPropagation(),t.preventDefault(),e.previous()}).on("click.fb-next","[data-fancybox-next]",function(t){t.stopPropagation(),t.preventDefault(),e.next()}),n(t).on("orientationchange.fb resize.fb",function(t){u(function(){t&&t.originalEvent&&"resize"===t.originalEvent.type?e.update():(e.$refs.slider_wrap.hide(),u(function(){e.$refs.slider_wrap.show(),e.update()}))})}),r.on("focusin.fb",function(t){var o=n.fancybox?n.fancybox.getInstance():null;!o||n(t.target).hasClass("fancybox-container")||n.contains(o.$refs.container[0],t.target)||(t.stopPropagation(),o.focus(),a.scrollTop(e.scrollTop).scrollLeft(e.scrollLeft))}),r.on("keydown.fb",function(t){var o=e.current,s=t.keyCode||t.which;if(o&&o.opts.keyboard&&!n(t.target).is("input")&&!n(t.target).is("textarea")){if(8===s||27===s)return t.preventDefault(),void e.close(t);switch(s){case 37:case 38:t.preventDefault(),e.previous();break;case 39:case 40:t.preventDefault(),e.next();break;case 80:case 32:t.preventDefault(),e.SlideShow&&(t.preventDefault(),e.SlideShow.toggle());break;case 70:e.FullScreen&&(t.preventDefault(),e.FullScreen.toggle());break;case 71:e.Thumbs&&(t.preventDefault(),e.Thumbs.toggle())}}})},removeEvents:function(){a.off("scroll.fb resize.fb orientationchange.fb"),r.off("keydown.fb focusin.fb click.fb-close"),this.$refs.container.off("click.fb-close click.fb-previous click.fb-next")},previous:function(t){this.jumpTo(this.currIndex-1,t)},next:function(t){this.jumpTo(this.currIndex+1,t)},jumpTo:function(t,e){var n,s,i,a,r=this;if(n=r.firstRun=null===r.firstRun,s=i=t=parseInt(t,10),a=!!r.current&&r.current.opts.loop,!r.isAnimating&&(s!=r.currIndex||n)){if(r.group.length>1&&a)s%=r.group.length,s=s<0?r.group.length+s:s,2==r.group.length?i=t-r.currIndex+r.currPos:(i=s-r.currIndex+r.currPos,Math.abs(r.currPos-(i+r.group.length))
1&&((r.opts.loop||i-1>=0)&&r.createSlide(i-1),(r.opts.loop||i+12)for(var a in i.slides)if(i.slides[a].index===o)return s=i.slides[a],s.pos=t,i.slides[t]=s,delete i.slides[a],i.updateSlide(s),s;e=n('
').appendTo(i.$refs.slider),i.slides[t]=n.extend(!0,{},i.group[o],{pos:t,$slide:e,isMoved:!1,isLoaded:!1})}return i.slides[t]},zoomInOut:function(t,e,o){var s,i,a,r=this,c=r.current,l=c.$placeholder,u=c.opts.opacity,p=c.opts.$thumb,h=p?p.offset():0,f=c.$slide.offset();return!!(l&&c.isMoved&&h&&d(p))&&(!("In"===t&&!r.firstRun)&&(n.fancybox.stop(l),r.isAnimating=!0,s={top:h.top-f.top+parseFloat(p.css("border-top-width")||0),left:h.left-f.left+parseFloat(p.css("border-left-width")||0),width:p.width(),height:p.height(),scaleX:1,scaleY:1},"auto"==u&&(u=Math.abs(c.width/c.height-s.width/s.height)>.1),"In"===t?(i=s,a=r.getFitPos(c),a.scaleX=a.width/i.width,a.scaleY=a.height/i.height,u&&(i.opacity=.1,a.opacity=1)):(i=n.fancybox.getTranslate(l),a=s,c.$ghost&&(c.$ghost.show(),c.$image&&c.$image.remove()),i.scaleX=i.width/a.width,i.scaleY=i.height/a.height,i.width=a.width,i.height=a.height,u&&(a.opacity=0)),r.updateCursor(a.width,a.height),delete a.width,delete a.height,n.fancybox.setTranslate(l,i),l.show(),r.trigger("beforeZoom"+t),l.css("transition","all "+e+"ms"),n.fancybox.setTranslate(l,a),setTimeout(function(){var e;l.css("transition","none"),e=n.fancybox.getTranslate(l),e.scaleX=1,e.scaleY=1,n.fancybox.setTranslate(l,e),r.trigger("afterZoom"+t),o.apply(r),r.isAnimating=!1},e),!0))},canPan:function(){var t=this,e=t.current,n=e.$placeholder,o=!1;return n&&(o=t.getFitPos(e),o=Math.abs(n.width()-o.width)>1||Math.abs(n.height()-o.height)>1),o},isScaledDown:function(){var t=this,e=t.current,o=e.$placeholder,s=!1;return o&&(s=n.fancybox.getTranslate(o),s=s.widthh&&(a=i.left*c-(t*c-t),a>0&&(a=0),af&&(r=i.top*l-(e*l-e),r>0&&(r=0),r10?[n[13],n[12],n[0],n[5]]:[n[5],n[4],n[0],n[3]],n=n.map(parseFloat)):n=[0,0,1,1],{top:n[0],left:n[1],scaleX:n[2],scaleY:n[3],opacity:parseFloat(t.css("opacity")),width:e.width,height:e.height})},setTranslate:function(t,e){var n="",s={};if(t&&e)return e.left===o&&e.top===o||(n=(e.left===o?t.position().top:e.left)+"px, "+(e.top===o?t.position().top:e.top)+"px",n=this.use3d?"translate3d("+n+", 0px)":"translate("+n+")"),e.scaleX!==o&&e.scaleY!==o&&(n=(n.length?n+" ":"")+"scale("+e.scaleX+", "+e.scaleY+")"),n.length&&(s.transform=n),e.opacity!==o&&(s.opacity=e.opacity),e.width!==o&&(s.width=e.width),e.height!==o&&(s.height=e.height),t.css(s)},easing:{easeOutCubic:function(t,e,n,o){return n*((t=t/o-1)*t*t+1)+e},easeInCubic:function(t,e,n,o){return n*(t/=o)*t*t+e},easeOutSine:function(t,e,n,o){return n*Math.sin(t/o*(Math.PI/2))+e},easeInSine:function(t,e,n,o){return-n*Math.cos(t/o*(Math.PI/2))+n+e}},stop:function(t){t.removeData("animateID")},animate:function(t,e,s,i,a,r){var c,l,d,p=this,h=null,f=0,g=function(){s.scaleX!==o&&s.scaleY!==o&&e&&e.width!==o&&e.height!==o&&(s.width=e.width*s.scaleX,s.height=e.height*s.scaleY,s.scaleX=1,s.scaleY=1),p.setTranslate(t,s),r()},b=function(n){if(c=[],l=0,t.length&&t.data("animateID")===d){if(n=n||Date.now(),h&&(l=n-h),h=n,f+=l,f>=i)return void g();for(var r in s)s.hasOwnProperty(r)&&e[r]!==o&&(e[r]==s[r]?c[r]=s[r]:c[r]=p.easing[a](f,e[r],s[r]-e[r],i));p.setTranslate(t,c),u(b)}};p.animateID=d=p.animateID===o?1:p.animateID+1,t.data("animateID",d),r===o&&"function"==n.type(a)&&(r=a,a=o),a||(a="easeOutCubic"),r=r||n.noop,e?this.setTranslate(t,e):e=this.getTranslate(t),i?(t.show(),u(b)):g()}},n.fn.fancybox=function(t){return this.off("click.fb-start").on("click.fb-start",{items:this,options:t||{}},s),this},n(e).on("click.fb-start","[data-fancybox]",s)}(window,document,window.jQuery),function(t){"use strict";var e=function(e,n,o){if(e)return o=o||"","object"===t.type(o)&&(o=t.param(o,!0)),t.each(n,function(t,n){e=e.replace("$"+t,n||"")}),o.length&&(e+=(e.indexOf("?")>0?"&":"?")+o),e},n={youtube:{matcher:/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,params:{autoplay:1,autohide:1,fs:1,rel:0,hd:1,wmode:"transparent",enablejsapi:1,html5:1},paramPlace:8,type:"iframe",url:"//www.youtube.com/embed/$4",thumb:"//img.youtube.com/vi/$4/hqdefault.jpg"},vimeo:{matcher:/^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,params:{autoplay:1,hd:1,show_title:1,show_byline:1,show_portrait:0,fullscreen:1,api:1},paramPlace:3,type:"iframe",url:"//player.vimeo.com/video/$2"},metacafe:{matcher:/metacafe.com\/watch\/(\d+)\/(.*)?/,type:"iframe",url:"//www.metacafe.com/embed/$1/?ap=1"},dailymotion:{matcher:/dailymotion.com\/video\/(.*)\/?(.*)/,params:{additionalInfos:0,autoStart:1},type:"iframe",url:"//www.dailymotion.com/embed/video/$1"},vine:{matcher:/vine.co\/v\/([a-zA-Z0-9\?\=\-]+)/,type:"iframe",url:"//vine.co/v/$1/embed/simple"},instagram:{matcher:/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,type:"image",url:"//$1/p/$2/media/?size=l"},google_maps:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/?ll="+(t[9]?t[9]+"&z="+Math.floor(t[10])+(t[12]?t[12].replace(/^\//,"&"):""):t[12])+"&output="+(t[12]&&t[12].indexOf("layer=c")>0?"svembed":"embed")}}};t(document).on("onInit.fb",function(o,s){t.each(s.group,function(o,s){var i,a,r,c,l,u,d=s.src||"",p=!1;s.type||(t.each(n,function(n,o){if(a=d.match(o.matcher),l={},u=n,a){if(p=o.type,o.paramPlace&&a[o.paramPlace]){c=a[o.paramPlace],"?"==c[0]&&(c=c.substring(1)),c=c.split("&");for(var h=0;he.clientHeight,i=("scroll"===o||"auto"===o)&&e.scrollWidth>e.clientWidth;return s||i},c=function(t){for(var e=!1;;){if(e=r(t.get(0)))break;if(t=t.parent(),!t.length||t.hasClass("fancybox-slider")||t.is("body"))break}return e},l=function(t){var e=this;e.instance=t,e.$wrap=t.$refs.slider_wrap,e.$slider=t.$refs.slider,e.$container=t.$refs.container,e.destroy(),e.$wrap.on("touchstart.fb mousedown.fb",n.proxy(e,"ontouchstart"))};l.prototype.destroy=function(){this.$wrap.off("touchstart.fb mousedown.fb touchmove.fb mousemove.fb touchend.fb touchcancel.fb mouseup.fb mouseleave.fb")},l.prototype.ontouchstart=function(e){var o=this,r=n(e.target),l=o.instance,u=l.current,d=u.$content||u.$placeholder;return o.startPoints=s(e),o.$target=r,o.$content=d,o.canvasWidth=Math.round(u.$slide[0].clientWidth),o.canvasHeight=Math.round(u.$slide[0].clientHeight),o.startEvent=e,e.originalEvent.clientX>o.canvasWidth+u.$slide.offset().left||(a(r)||a(r.parent())||c(r)?void 0:u.opts.touch?void(e.originalEvent&&2==e.originalEvent.button||(e.stopPropagation(),e.preventDefault(),!u||o.instance.isAnimating||o.instance.isClosing||!o.startPoints||o.startPoints.length>1&&!u.isMoved||(o.$wrap.off("touchmove.fb mousemove.fb",n.proxy(o,"ontouchmove")),o.$wrap.off("touchend.fb touchcancel.fb mouseup.fb mouseleave.fb",n.proxy(o,"ontouchend")),o.$wrap.on("touchend.fb touchcancel.fb mouseup.fb mouseleave.fb",n.proxy(o,"ontouchend")),o.$wrap.on("touchmove.fb mousemove.fb",n.proxy(o,"ontouchmove")),o.startTime=(new Date).getTime(),o.distanceX=o.distanceY=o.distance=0,o.canTap=!1,o.isPanning=!1,o.isSwiping=!1,o.isZooming=!1,o.sliderStartPos=n.fancybox.getTranslate(o.$slider),o.contentStartPos=n.fancybox.getTranslate(o.$content),o.contentLastPos=null,1!==o.startPoints.length||o.isZooming||(o.canTap=u.isMoved,"image"===u.type&&(o.contentStartPos.width>o.canvasWidth+1||o.contentStartPos.height>o.canvasHeight+1)?(n.fancybox.stop(o.$content),o.isPanning=!0):(n.fancybox.stop(o.$slider),o.isSwiping=!0),o.$container.addClass("fancybox-controls--isGrabbing")),2===o.startPoints.length&&u.isMoved&&!u.hasError&&"image"===u.type&&(u.isLoaded||u.$ghost)&&(o.isZooming=!0,o.isSwiping=!1,o.isPanning=!1,n.fancybox.stop(o.$content),o.centerPointStartX=.5*(o.startPoints[0].x+o.startPoints[1].x)-n(tt,o){var s,i=Array.prototype.slice.call(arguments,1),a=this,r=o&&o.opts?o:a.current;return r?i.unshift(r):r=a,i.unshift(a),n.isFunction(r.opts[t])&&(s=r.opts[t].apply(r,i)),s===!1?s:void("afterClose"===t?n(e).trigger(t+".fb",i):a.$refs.container.trigger(t+".fb",i))},toggleControls:function(t){this.isHiddenControls?this.updateControls(t):this.hideControls()},hideControls:function(){this.isHiddenControls=!0,this.$refs.container.removeClass("fancybox-show-controls"),this.$refs.container.removeClass("fancybox-show-caption")},updateControls:function(t){var e=this,o=e.$refs.container,s=e.$refs.caption,i=e.current,a=i.index,r=i.opts,c=r.caption;this.isHiddenControls&&t!==!0||(this.isHiddenControls=!1,o.addClass("fancybox-show-controls").toggleClass("fancybox-show-infobar",!!r.infobar&&e.group.length>1).toggleClass("fancybox-show-buttons",!!r.buttons).toggleClass("fancybox-is-modal",!!r.modal),n(".fancybox-button--left",o).toggleClass("fancybox-button--disabled",!r.loop&&a<=0),n(".fancybox-button--right",o).toggleClass("fancybox-button--disabled",!r.loop&&a>=e.group.length-1),n(".fancybox-button--play",o).toggle(!!(r.slideShow&&e.group.length>1)),n(".fancybox-button--close",o).toggle(!!r.closeBtn),n(".js-fancybox-count",o).html(e.group.length),n(".js-fancybox-index",o).html(a+1),i.$slide.trigger("refresh"),s&&s.empty(),c&&c.length?(s.html(c),this.$refs.container.addClass("fancybox-show-caption "),e.$caption=s):this.$refs.container.removeClass("fancybox-show-caption"))}}),n.fancybox={version:"3.0.47",defaults:i,getInstance:function(t){var e=n('.fancybox-container:not(".fancybox-container--closing"):first').data("FancyBox"),o=Array.prototype.slice.call(arguments,1);return e instanceof p&&("string"===n.type(t)?e[t].apply(e,o):"function"===n.type(t)&&t.apply(e,o),e)},open:function(t,e,n){return new p(t,e,n)},close:function(t){var e=this.getInstance();e&&(e.close(),t===!0&&this.close())},isTouch:e.createTouch!==o&&/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent),use3d:function(){var n=e.createElement("div");return t.getComputedStyle(n).getPropertyValue("transform")&&!(e.documentMode&&e.documentMode<=11)}(),getTranslate:function(t){var e,n;return!(!t||!t.length)&&(e=t.get(0).getBoundingClientRect(),n=t.eq(0).css("transform"),n&&n.indexOf("matrix")!==-1?(n=n.split("(")[1],n=n.split(")")[0],n=n.split(",")):n=[],n.length?(n=n.length>10?[n[13],n[12],n[0],n[5]]:[n[5],n[4],n[0],n[3]],n=n.map(parseFloat)):n=[0,0,1,1],{top:n[0],left:n[1],scaleX:n[2],scaleY:n[3],opacity:parseFloat(t.css("opacity")),width:e.width,height:e.height})},setTranslate:function(t,e){var n="",s={};if(t&&e)return e.left===o&&e.top===o||(n=(e.left===o?t.position().top:e.left)+"px, "+(e.top===o?t.position().top:e.top)+"px",n=this.use3d?"translate3d("+n+", 0px)":"translate("+n+")"),e.scaleX!==o&&e.scaleY!==o&&(n=(n.length?n+" ":"")+"scale("+e.scaleX+", "+e.scaleY+")"),n.length&&(s.transform=n),e.opacity!==o&&(s.opacity=e.opacity),e.width!==o&&(s.width=e.width),e.height!==o&&(s.height=e.height),t.css(s)},easing:{easeOutCubic:function(t,e,n,o){return n*((t=t/o-1)*t*t+1)+e},easeInCubic:function(t,e,n,o){return n*(t/=o)*t*t+e},easeOutSine:function(t,e,n,o){return n*Math.sin(t/o*(Math.PI/2))+e},easeInSine:function(t,e,n,o){return-n*Math.cos(t/o*(Math.PI/2))+n+e}},stop:function(t){t.removeData("animateID")},animate:function(t,e,s,i,a,r){var c,l,d,p=this,h=null,f=0,g=function(){s.scaleX!==o&&s.scaleY!==o&&e&&e.width!==o&&e.height!==o&&(s.width=e.width*s.scaleX,s.height=e.height*s.scaleY,s.scaleX=1,s.scaleY=1),p.setTranslate(t,s),r()},b=function(n){if(c=[],l=0,t.length&&t.data("animateID")===d){if(n=n||Date.now(),h&&(l=n-h),h=n,f+=l,f>=i)return void g();for(var r in s)s.hasOwnProperty(r)&&e[r]!==o&&(e[r]==s[r]?c[r]=s[r]:c[r]=p.easing[a](f,e[r],s[r]-e[r],i));p.setTranslate(t,c),u(b)}};p.animateID=d=p.animateID===o?1:p.animateID+1,t.data("animateID",d),r===o&&"function"==n.type(a)&&(r=a,a=o),a||(a="easeOutCubic"),r=r||n.noop,e?this.setTranslate(t,e):e=this.getTranslate(t),i?(t.show(),u(b)):g()}},n.fn.fancybox=function(t){return this.off("click.fb-start").on("click.fb-start",{items:this,options:t||{}},s),this},n(e).on("click.fb-start","[data-fancybox]",s)}(window,document,window.jQuery),function(t){"use strict";var e=function(e,n,o){if(e)return o=o||"","object"===t.type(o)&&(o=t.param(o,!0)),t.each(n,function(t,n){e=e.replace("$"+t,n||"")}),o.length&&(e+=(e.indexOf("?")>0?"&":"?")+o),e},n={youtube:{matcher:/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,params:{autoplay:1,autohide:1,fs:1,rel:0,hd:1,wmode:"transparent",enablejsapi:1,html5:1},paramPlace:8,type:"iframe",url:"//www.youtube.com/embed/$4",thumb:"//img.youtube.com/vi/$4/hqdefault.jpg"},vimeo:{matcher:/^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,params:{autoplay:1,hd:1,show_title:1,show_byline:1,show_portrait:0,fullscreen:1,api:1},paramPlace:3,type:"iframe",url:"//player.vimeo.com/video/$2"},metacafe:{matcher:/metacafe.com\/watch\/(\d+)\/(.*)?/,type:"iframe",url:"//www.metacafe.com/embed/$1/?ap=1"},dailymotion:{matcher:/dailymotion.com\/video\/(.*)\/?(.*)/,params:{additionalInfos:0,autoStart:1},type:"iframe",url:"//www.dailymotion.com/embed/video/$1"},vine:{matcher:/vine.co\/v\/([a-zA-Z0-9\?\=\-]+)/,type:"iframe",url:"//vine.co/v/$1/embed/simple"},instagram:{matcher:/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,type:"image",url:"//$1/p/$2/media/?size=l"},google_maps:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/?ll="+(t[9]?t[9]+"&z="+Math.floor(t[10])+(t[12]?t[12].replace(/^\//,"&"):""):t[12])+"&output="+(t[12]&&t[12].indexOf("layer=c")>0?"svembed":"embed")}}};t(document).on("onInit.fb",function(o,s){t.each(s.group,function(o,s){var i,a,r,c,l,u,d=s.src||"",p=!1;s.type||(t.each(n,function(n,o){if(a=d.match(o.matcher),l={},u=n,a){if(p=o.type,o.paramPlace&&a[o.paramPlace]){c=a[o.paramPlace],"?"==c[0]&&(c=c.substring(1)),c=c.split("&");for(var h=0;he.clientHeight,i=("scroll"===o||"auto"===o)&&e.scrollWidth>e.clientWidth;return s||i},c=function(t){for(var e=!1;;){if(e=r(t.get(0)))break;if(t=t.parent(),!t.length||t.hasClass("fancybox-slider")||t.is("body"))break}return e},l=function(t){var e=this;e.instance=t,e.$wrap=t.$refs.slider_wrap,e.$slider=t.$refs.slider,e.$container=t.$refs.container,e.destroy(),e.$wrap.on("touchstart.fb mousedown.fb",n.proxy(e,"ontouchstart"))};l.prototype.destroy=function(){this.$wrap.off("touchstart.fb mousedown.fb touchmove.fb mousemove.fb touchend.fb touchcancel.fb mouseup.fb mouseleave.fb")},l.prototype.ontouchstart=function(e)eenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i={};for(n=0;n').appendTo(n.$refs.buttons),s.on("click.fb-fullscreen","[data-fancybox-fullscreen]",function(t){t.stopPropagation(),t.preventDefault(),o.toggle(s[0])}),n.opts.fullScreen.requestOnStart===!0&&o.request(s[0]))},"beforeMove.fb":function(t,e){e&&e.$refs.button_fs&&e.$refs.button_fs.toggle(!!e.current.opts.fullScreen)},"beforeClose.fb":function(){o.exit()}}),e(t).on(n.fullscreenchange,function(){var t=e.fancybox.getInstance(),n=t?t.current.$placeholder:null;n&&(n.css("transition","none"),t.isAnimating=!1,t.update(!0,!0,0))})}}(document,window.jQuery),function(t,e){"use strict";var n=function(t){this.instance=t,this.init()};e.extend(n.prototype,{$button:null,$grid:null,$list:null,isVisible:!1,init:function(){var t=this;t.$button=e(' ').appendTo(this.instance.$refs.buttons).on("touchend click",function(e){e.stopPropagation(),e.preventDefault(),t.toggle()})},create:function(){var t,n,o=this.instance;this.$grid=e('
').appendTo(o.$refs.container),t="",e.each(o.group,function(e,o){n=o.opts.thumb||(o.opts.$thumb?o.opts.$thumb.attr("src"):null),n||"image"!==o.type||(n=o.src),n&&n.length&&(t+=' ')}),t+=" ",this.$list=e(t).appendTo(this.$grid).on("click touchstart","li",function(){o.jumpTo(e(this).data("index"))}),this.$list.find("img").hide().one("load",function(){var t,n,o,s,i=e(this).parent().removeClass("fancybox-thumbs-loading"),a=i.outerWidth(),r=i.outerHeight();t=this.naturalWidth||this.width,n=this.naturalHeight||this.height,o=t/a,s=n/r,o>=1&&s>=1&&(o>s?(t/=s,n=r):(t=a,n/=o)),e(this).css({width:Math.floor(t),height:Math.floor(n),"margin-top":Math.min(0,Math.floor(.3*r-.3*n)),"margin-left":Math.min(0,Math.floor(.5*a-.5*t))}).show()}).each(function(){this.src=e(this).data("src")})},focus:function(){this.instance.current&&this.$list.children().removeClass("fancybox-thumbs-active").filter('[data-index="'+this.instance.current.index+'"]').addClass("fancybox-thumbs-active").focus()},close:function(){this.$grid.hide()},update:function(){this.instance.$refs.container.toggleClass("fancybox-container--thumbs",this.isVisible),this.isVisible?(this.$grid||this.create(),this.$grid.show(),this.focus()):this.$grid&&this.$grid.hide(),this.instance.update()},hide:function(){this.isVisible=!1,this.update()},show:function(){this.isVisible=!0,this.update()},toggle:function(){this.isVisible?this.hide():this.show()}}),e(t).on("onInit.fb",function(t,e){var o=e.group[0],s=e.group[1];e.opts.thumbs&&!e.Thumbs&&e.group.length>1&&("image"==o.type||o.opts.thumb||o.opts.$thumb)&&("image"==s.type||s.opts.thumb||s.opts.$thumb)&&(e.Thumbs=new n(e))}),e(t).on("beforeMove.fb",function(t,e,n){var o=e&&e.Thumbs;o&&(n.modal?(o.$button.hide(),o.hide()):(e.opts.thumbs.showOnStart===!0&&e.firstRun&&o.show(),o.$button.show(),o.isVisible&&o.focus()))}),e(t).on("beforeClose.fb",function(t,e){e&&e.Thumbs&&(e.Thumbs.isVisible&&e.opts.thumbs.hideOnClosing!==!1&&e.Thumbs.close(),e.Thumbs=null)})}(document,window.jQuery),function(t,e,n){"use strict";function o(){var t=e.location.hash.substr(1),n=t.split("-"),o=n.length>1&&/^\+?\d+$/.test(n[n.length-1])?parseInt(n.pop(-1),10)||1:1,s=n.join("-");return o<1&&(o=1),{hash:t,index:o,gallery:s}}function s(t){var e;""!==t.gallery&&(e=n("[data-fancybox='"+n.escapeSelector(t.gallery)+"']").eq(t.index-1),e.length?e.trigger("click"):n("#"+n.escapeSelector(t.gallery)).trigger("click"))}function i(t){var e;return!!t&&(e=t.current?t.current.opts:t.opts,e.$orig?e.$orig.data("fancybox"):e.hash||"")}n.escapeSelector||(n.escapeSelector=function(t){var e=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,n=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t};return(t+"").replace(e,n)});var a=null;n(function(){setTimeout(function(){n.fancybox.defaults.hash!==!1&&(n(e).on("hashchange.fb",function(){var t=o();n.fancybox.getInstance()?a&&a!==t.gallery+"-"+t.index&&(a=null,n.fancybox.close()):""!==t.gallery&&s(t)}),n(t).on({"onInit.fb":function(t,e){var n=o(),s=i(e);s&&n.gallery&&s==n.gallery&&(e.currIndex=n.index-1)},"beforeMove.fb":function(n,o,s){var r=i(o);r&&""!==r&&(e.location.hash.indexOf(r)<0&&(o.opts.origHash=e.location.hash),a=r+(o.group.length>1?"-"+(s.index+1):""),"pushState"in history?history.pushState("",t.title,e.location.pathname+e.location.search+"#"+a):e.location.hash=a)},"beforeClose.fb":function(n,o,s){var r=i(o),c=o&&o.opts.origHash?o.opts.origHash:"";r&&""!==r&&("pushState"in history?history.pushState("",t.title,e.location.pathname+e.location.search+c):e.location.hash=c),a=null}}),s(o()))},50)})}(document,window,window.jQuery);jQuery(function ($) {
// Navegar hasta proyectos
$("#ver-mas").click(function () {
var p = $("#mas");
var offset = p.offset();
$("html, body").animate(
{
scrollTop: offset.top + 1,
},
500
);
});
//Añadir clase a header al hacer scroll HOMEPAGE
$(window).scroll(function () {
var scroll = $(window).scrollTop();
if (scroll > 800) {
$(".header-homepage").addClass("fixed");
} else {
$(".header-homepage").removeClass("fixed");
}
});
//Añadir clase a header al hacer scroll
$(window).scroll(function () {
var scroll = $(window).scrollTop();
if (scroll > 10) {
$("header").addClass("white");
} else {
$("header").removeClass("white");
}
});
// external js: masonry.pkgd.js, imagesloaded.pkgd.js
// init Masonry
var $grid = $(".grid").masonry({
itemSelector: ".grid-item",
percentPosition: true,
columnWidth: ".grid-sizer",
gutter: 80,
});
// layout Masonry after each image loads
$grid.imagesLoaded().progress(function () {
$grid.masonry();
});
//Cerrar mensaje de Cookies
$(".closecookiebanner").on("click", function () {
var nowPreserve = new Date();
var oneYear = 30 * 24 * 60 * 60 * 1000;
var thenPreserve = nowPreserve.getTime() + oneYear;
nowPreserve.setTime(thenPreserve);
var expireTime = nowPreserve.toUTCString();
document.cookie =
"cookiebanner=1;path=/;expires=" +
expireTime +
";domain=" +
document.domain;
$(".cookiebanner").slideUp();
event.preventDefault();
});
// Mostrar o no el mensaje de Cookies
function show_popup() {
if (!showCookieBanner) {
$(".cookiebanner").slideDown();
}
}
var showCookieBanner =
document.cookie.indexOf("cookiebanner=") === -1
? ""
: ("; " + document.cookie).split("; cookiebanner=")[1].split(";")[0];
show_popup();
/*$("#casos_exito").on("click", function() {
ga('send', 'event', 'vip-event', 'click', 'casos exito');
});*/
$("a.fancybox").fancybox();
/* Analytics trigger events */
$(".ga_inscripciones").on("click", function () {
ga("send", "event", "vip-event", "click", "Inscripciones");
});
var spamPassed = [];
var formNatimer:null,isActive:!1,$button:null,speed:3e3,init:function(){var t=this;t.$button=e(' ').appendTo(t.instance.$refs.buttons),t.instance.$refs.container.on("click","[data-fancybox-play]",function(){t.toggle()})},set:function(){var t=this;t.instance&&t.instance.current&&(t.instance.current.opts.loop||t.instance.currIndex1&&e.opts.slideShow&&!e.SlideShow&&(e.SlideShow=new n(e))}),e(t).on("beforeClose.fb onDeactivate.fb",function(t,e){e&&e.SlideShow&&e.SlideShow.stop()})}(document,window.jQuery),function(t,e){"use strict";var n=function(){var e,n,o,s=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i={};for(n=0;n').appendTo(n.$refs.buttons),s.on("click.fb-fullscreen","[data-fancybox-fullscreen]",function(t){t.stopPropagation(),t.preventDefault(),o.toggle(s[0])}),n.opts.fullScreen.requestOnStart===!0&&o.request(s[0]))},"beforeMove.fb":function(t,e){e&&e.$refs.button_fs&&e.$refs.button_fs.toggle(!!e.current.opts.fullScreen)},"beforeClose.fb":function(){o.exit()}}),e(t).on(n.fullscreenchange,function(){var t=e.fancybox.getInstance(),n=t?t.current.$placeholder:null;n&&(n.css("transition","none"),t.isAnimating=!1,t.update(!0,!0,0))})}}(document,window.jQuery),function(t,e){"use strict";var n=function(t){this.instance=t,this.init()};e.extend(n.prototype,{$button:null,$grid:null,$list:null,isVisible:!1,init:function(){var t=this;t.$button=e(' ').appendTo(this.instance.$refs.buttons).on("touchend click",function(e){e.stopPropagation(),e.preventDefault(),t.toggle()})},create:function(){var t,n,o=this.instance;this.$grid=e('
').appendTo(o.$refs.container),t="",e.each(o.group,function(e,o){n=o.opts.thumb||(o.opts.$thumb?o.opts.$thumb.attr("src"):null),n||"image"!==o.type||(n=o.src),n&&n.length&&(t+=' ')}),t+=" ",this.$list=e(t).appendTo(this.$grid).on("click touchstart","li",function(){o.jumpTo(e(this).data("index"))}),this.$list.find("img").hide().one("load",function(){var t,n,o,s,i=e(this).parent().removeClass("fancybox-thumbs-loading"),a=i.outerWidth(),r=i.outerHeight();t=this.naturalWidth||this.width,n=this.naturalHeight||this.height,o=t/a,s=n/r,o>=1&&s>=1&&(o>s?(t/=s,n=r):(t=a,n/=o)),e(this).css({width:Math.floor(t),height:Math.floor(n),"margin-top":Math.min(0,Math.floor(.3*r-.3*n)),"margin-left":Math.min(0,Math.floor(.5*a-.5*t))}).show()}).each(function(){this.src=e(this).data("src")})},focus:function(){this.instance.current&&this.$list.children().removeClass("fancybox-thumbs-active").filter('[data-index="'+this.instance.current.index+'"]').addClass("fancybox-thumbs-active").focus()},close:function(){this.$grid.hide()},update:function(){this.instance.$refs.container.toggleClass("fancybox-container--thumbs",this.isVisible),this.isVisible?(this.$grid||this.create(),this.$grid.show(),this.focus()):this.$grid&&this.$grid.hide(),this.instance.update()},hide:function(){this.isVisible=!1,this.update()},show:function(){this.isVisible=!0,this.update()},toggle:function(){this.isVisible?this.hide():this.show()}}),e(t).on("onInit.fb",function(t,e){var o=e.group[0],s=e.group[1];e.opts.thumbs&&!e.Thumbs&&e.group.length>1&&("image"==o.type||o.opts.thumb||o.opts.$thumb)&&("image"==s.type||s.opts.thumb||s.opts.$thumb)&&(e.Thumbs=new n(e))}),e(t).on("beforeMove.fb",function(t,e,n){var o=e&&e.Thumbs;o&&(n.modal?(o.$button.hide(),o.hide()):(e.opts.thumbs.showOnStart===!0&&e.firstRun&&o.show(),o.$button.show(),o.isVisible&&o.focus()))}),e(t).on("beforeClose.fb",function(t,e){e&&e.Thumbs&&(e.Thumbs.isVisible&&e.opts.thumbs.hideOnClosing!==!1&&e.Thumbs.close(),e.Thumbs=null)})}(document,window.jQuery),function(t,e,n){"use strict";function o(){var t=e.location.hash.substr(1),n=t.split("-"),o=n.length>1&&/^\+?\d+$/.test(n[n.length-1])?parseInt(n.pop(-1),10)||1:1,s=n.join("-");return o<1&&(o=1),{hash:t,index:o,gallery:s}}function s(t){var e;""!==t.gallery&&(e=n("[data-fancybox='"+n.escapeSelector(t.gallery)+"']").eq(t.index-1),e.length?e.trigger("click"):n("#"+n.escapeSelector(t.gallery)).trigger("click"))}function i(t){var e;return!!t&&(e=t.current?t.current.opts:t.opts,e.$orig?e.$orig.data("fancybox"):e.hash||"")}n.escapeSelector||(n.escapeSelector=function(t){var e=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,n=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t};return(t+"").replace(e,n)});var a=null;n(function(){setTimeout(function(){n.fancybox.defaults.hash!==!1&&(n(e).on("hashchange.fb",function(){var t=o();n.fancybox.getInstance()?a&&a!==t.gallery+"-"+t.index&&(a=null,n.fancybox.close()):""!==t.gallery&&s(t)}),n(t).on({"onInit.fb":function(t,e){var n=o(),s=i(e);s&&n.gallery&&s==n.gallery&&(e.currIndex=n.index-1)},"beforeMove.fb":function(n,o,s){var r=i(o);r&&""!==r&&(e.location.hash.indexOf(r)<0&&(o.opts.origHash=e.location.hash),a=r+(o.group.length>1?"-"+(s.index+1):""),"pushState"in history?history.pushState("",t.title,e.location.pathname+e.location.search+"#"+a):e.location.hash=a)},"beforeClose.fb":function(n,o,s){var r=i(o),c=o&&o.opts.origHash?o.opts.origHash:"";r&&""!==r&&("pushState"in history?history.pushState("",t.title,e.location.pathname+e.location.search+c):e.location.hash=c),a=null}}),s(o()))},50)})}(document,window,window.jQuery);jQuery(function ($) {
// Navegar hasta proyectos
$("#ver-mas").click(function () {
var p = $("#mas");
var offset = p.offset();
$("html, body").animate(
{
scrollTop: offset.top + 1,
},
500
);
});
//Añadir clase a header al hacer scroll HOMEPAGE
$(window).scroll(function () {
var scroll = $(window).scrollTop();
if (scroll > 800) {
$(".header-homepage").addClass("fixed");
} else {
$(".header-homepage").removeClass("fixed");
eturn this;
};
proto.emitEvent = function( eventName, args ) {
var listeners = this._events && this._events[ eventName ];
if ( !listeners || !listeners.length ) {
return;
}
// copy over to avoid interference if .off() in listener
listeners = listeners.slice(0);
args = args || [];
// once stuff
var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
for ( var i=0; i < listeners.length; i++ ) {
var listener = listeners[i]
var isOnce = onceListeners && onceListeners[ listener ];
if ( isOnce ) {
// remove listener
// remove before trigger to prevent recursion
this.off( eventName, listener );
// unset once flag
delete onceListeners[ listener ];
}
// trigger listener
listener.apply( this, args );
}
return this;
};
proto.allOff = function() {
delete this._events;
delete this._onceEvents;
};
return EvEmitter;
}));
/*!
* getSize v2.0.3
* measure size of elements
* MIT license
*/
/* jshint browser: true, strict: true, undef: true, unused: true */
/* globals console: false */
( function( window, factory ) {
/* jshint strict: false */ /* globals define, module */
if ( typeof define == 'function' && define.amd ) {
// AMD
define( 'get-size/get-size',factory );
} else if ( typeof module == 'object' && module.exports ) {
// CommonJS
module.exports = factory();
} else {
// browser global
window.getSize = factory();
}
})( window, function factory() {
'use strict';
// -------------------------- helpers -------------------------- //
// get a number from a string, not a percentage
function getStyleSize( value ) {
var num = parseFloat( value );
// not a percent like '100%', and a number
var isValid = value.indexOf('%') == -1 && !isNaN( num );
return isValid && num;
}
function noop() {}
var logError = typeof console == 'undefined' ? noop :
function( message ) {
console.error( message );
};
// -------------------------- measurements -------------------------- //
var measurements = [
'paddingLeft',
'paddingRight',
'paddingTop',
'paddingBottom',
'marginLeft',
'marginRight',
'marginTop',
'marginBottom',
'borderLeftWidth',
'borderRightWidth',
'borderTopWidth',
'borderBottomWidth'
];
var measurementsLength = measurements.length;
function getZeroSize() {
var size = {
width: 0,
height: 0,
innerWidth: 0,
innerHeight: 0,
outerWidth: 0,
outerHeight: 0
};
for ( var i=0; i < measurementsLength; i++ ) {
var measurement = measurements[i];
size[ measurement ] = 0;
}
return size;
}
// -------------------------- getStyle -------------------------- //
/**
* getStyle, get style of element, check for Firefox bug
* https://bugzilla.mozilla.org/show_bug.cgi?id=548397
*/
function getStyle( elem ) {
var style = getComputedStyle( elem );
if ( !style ) {
logError( 'Style returned ' + style +
'. Are you running this code in a hidden iframe on Firefox? ' +
'See https://bit.ly/getsizebug1' );
}
return style;
}
// -------------------------- setup -------------------------- //
var isSetup = false;
var isBoxSizeOuter;
/**
* setup
* check isBoxSizerOuter
* do on first getSize() rather than on page load for Firefox bug
*/
function setup() {
// setup once
if ( isSetup ) {
return;
}
isSetup = true;
// -------------------------- box sizing -------------------------- //
/**
* Chrome & Safari measure the outer-width on style.width on border-box elems
* IE11 & Firefox<29 measures the inner-width
*/
var div = document.createElement('div');
div.style.width = '200px';
div.style.padding = '1px 2px 3px 4px';
div.style.borderStyle = 'solid';
div.style.borderWidth = '1px 2px 3px 4px';
div.style.boxSizing = 'border-box';
var body = document.body || document.documentElement;
body.appendChild( div );
var style = getStyle( div );
// round value for browser zoom. desandro/masonry#928
isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;
getSize.isBoxSizeOuter = isBoxSizeOuter;
body.removeChild( div );
}
// -------------------------- getSize -------------------------- //
function getSize( elem ) {
setup();
// use querySeletor if elem is string
if ( typeof elem == 'string' ) {
elem = document.querySelector( elem );
}
// do not proceed on non-objects
if ( !elem || typeof elem != 'object' || !elem.nodeType ) {
return;
}
var style = getStyle( elem );
// if hidden, everything is 0
if ( style.display == 'none' ) {
return getZeroSize();
}
var size = {};
size.width = elem.offsetWidth;
size.height = elem.offsetHeight;
var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';
// get all measurements
for ( var i=0; i < measurementsLength; i++ ) {
var measurement = measurements[i];
var value = style[ measurement ];
var num = parseFloat( value );
// any 'auto', 'medium' value will be 0
size[ measurement ] = !isNaN( num ) ? num : 0;
}
var paddingWidth = size.paddingLeft + size.paddingRight;
var paddingHeight = size.paddingTop + size.paddingBottom;
var marginWidth = size.marginLeft + size.marginRight;
var marginHeight = size.marginTop + size.marginBottom;
var borderWidth = size.borderLeftWidth + size.borderRightWidth;
var borderHeight = size.borderTopWidth + size.borderBottomWidth;
var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;
// overwrite width and height if we can get it from style
var styleWidth = getStyleSize( style.width );
if ( styleWidth !== false ) {
size.width = styleWidth +
// add padding and border unless it's already including it
( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );
}
var styleHeight = getStyleSize( style.height );
if ( styleHeight !== false ) {
size.height = styleHeight +
// add padding and border unless it's already including it
( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );
}
size.innerWidth = size.width - ( paddingWidth + borderWidth );
size.innerHeight = size.height - ( paddingHeight + borderHeight );
size.outerWidth = size.width + marginWidth;
size.outerHeight = size.height + marginHeight;
return size;
}
return getSize;
});
/**
* matchesSelector v2.0.2
* matchesSelector( element, '.selector' )
* MIT license
*/
/*jshint browser: true, strict: true, undef: true, unused: true */
( function( window, factory ) {
/*global define: false, module: false */
'use strict';
// universal module definition
if ( typeof define == 'function' && define.amd ) {
// AMD
define( 'desandro-matches-selector/matches-selector',factory );
} else if ( typeof module == 'object' && module.exports ) {
// CommonJS
module.exports = factory();
} else {
// browser global
window.matchesSelector = factory();
}
}( window, function factory() {
'use strict';
var matchesMethod = ( function() {
var ElemProto = window.Element.prototype;
// check for the standard method name first
if ( ElemProto.matches ) {
return 'matches';
}
// check un-prefixed
if ( ElemProto.matchesSelector ) {
return 'matchesSelector';
}
// check vendor prefixes
var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];
for ( var i=0; i < prefixes.length; i++ ) {
var prefix = prefixes[i];
var method = prefix + 'MatchesSelector';
if ( ElemProto[ method ] ) {
return method;
}
}
})();
return function matchesSelector( elem, selector ) {
return elem[ matchesMethod ]( selector );
};
}));
/**
* Fizzy UI utils v2.0.7
* MIT license
*/
/*jshint browser: true, undef: true, unused: true, strict: true */
( function( window, factory ) {
// universal module definition
/*jshint strict: false */ /*globals define, module, require */
if ( typeof define == 'function' && define.amd ) {
// AMD
define( 'fizzy-ui-utils/utils',[
'desandro-matches-selector/matches-selector'
], function( matchesSelector ) {
return factory( window, matchesSelector );
});
} else if ( typeof module == 'object' && module.exports ) {
// CommonJS
module.exports = factory(
window,
require('desandro-matches-selector')
);
} else {
// browser global
window.fizzyUIUtils = factory(
window,
window.matchesSelector
);
}
}( window, function factory( window, matchesSelector )ed: true, undef: true, strict: true */
( function( global, factory ) {
// universal module definition
/* jshint strict: false */ /* globals define, module, window */
if ( typeof define == 'function' && define.amd ) {
// AMD - RequireJS
define( 'ev-emitter/ev-emitter',factory );
} else if ( typeof module == 'object' && module.exports ) {
// CommonJS - Browserify, Webpack
module.exports = factory();
} else {
// Browser globals
global.EvEmitter = factory();
}
}( typeof window != 'undefined' ? window : this, function() {
function EvEmitter() {}
var proto = EvEmitter.prototype;
proto.on = function( eventName, listener ) {
if ( !eventName || !listener ) {
return;
}
// set events hash
var events = this._events = this._events || {};
// set listeners array
var listeners = events[ eventName ] = events[ eventName ] || [];
// only add once
if ( listeners.indexOf( listener ) == -1 ) {
listeners.push( listener );
}
return this;
};
proto.once = function( eventName, listener ) {
if ( !eventName || !listener ) {
return;
}
// add event
this.on( eventName, listener );
// set once flag
// set onceEvents hash
var onceEvents = this._onceEvents = this._onceEvents || {};
// set onceListeners object
var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
// set flag
onceListeners[ listener ] = true;
return this;
};
proto.off = function( eventName, listener ) {
var listeners = this._events && this._events[ eventName ];
if ( !listeners || !listeners.length ) {
return;
}
var index = listeners.indexOf( listener );
if ( index != -1 ) {
listeners.splice( index, 1 );
}
return this;
};
proto.emitEvent = function( eventName, args ) {
var listeners = this._events && this._events[ eventName ];
if ( !listeners || !listeners.length ) {
return;
}
// copy over to avoid interference if .off() in listener
listeners = listeners.slice(0);
args = args || [];
// once stuff
var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
for ( var i=0; i < listeners.length; i++ ) {
var listener = listeners[i]
var isOnce = onceListeners && onceListeners[ listener ];
if ( isOnce ) {
// remove listener
// remove before trigger to prevent recursion
this.off( eventName, listener );
// unset once flag
delete onceListeners[ listener ];
}
// trigger listener
listener.apply( this, args );
}
return this;
};
proto.allOff = function() {
delete this._events;
delete this._onceEvents;
};
return EvEmitter;
}));
/*!
* getSize v2.0.3
* measure size of elements
* MIT license
*/
/* jshint browser: true, strict: true, undef: true, unused: true */
/* globals console: false */
( function( window, factory ) {
/* jshint strict: false */ /* globals define, module */
if ( typeof define == 'function' && define.amd ) {
// AMD
define( 'get-size/get-size',factory );
} else if ( typeof module == 'object' && module.exports ) {
// CommonJS
module.exports = factory();
} else {
// browser global
window.getSize = factory();
}
})( window, function factory() {
'use strict';
// -------------------------- helpers -------------------------- //
// get a number from a string, not a percentage
function getStyleSize( value ) {
var num = parseFloat( value );
// not a percent like '100%', and a number
var isValid = value.indexOf('%') == -1 && !isNaN( num );
return isValid && num;
}
function noop() {}
var logError = typeof console == 'undefined' ? noop :
function( message ) {
console.error( message );
};
// -------------------------- measurements -------------------------- //
var measurements = [
'paddingLeft',
'paddingRight',
'paddingTop',
'paddingBottom',
'marginLeft',
'marginRight',
'marginTop',
'marginBottom',
'borderLeftWidth',
'borderRightWidth',
'borderTopWidth',
'borderBottomWidth'
];
var measurementsLength = measurements.length;
function getZeroSize() {
var size = {
width: 0,
height: 0,
innerWidth: 0,
innerHeight: 0,
outerWidth: 0,
outerHeight: 0
};
for ( var i=0; i < measurementsLength; i++ ) {
var measurement = measurements[i];
size[ measurement ] = 0;
}
return size;
}
// -------------------------- getStyle -------------------------- //
/**
* getStyle, get style of element, check for Firefox bug
* https://bugzilla.mozilla.org/show_bug.cgi?id=548397
*/
function getStyle( elem ) {
var style = getComputedStyle( elem );
if ( !style ) {
logError( 'Style returned ' + style +
'. Are you running this code in a hidden iframe on Firefox? ' +
'See https://bit.ly/getsizebug1' );
}
return style;
}
// -------------------------- setup -------------------------- //
var isSetup = false;
var isBoxSizeOuter;
/**
* setup
* check isBoxSizerOuter
* do on first getSize() rather than on page load for Firefox bug
*/
function setup() {
// setup once
if ( isSetup ) {
return;
}
isSetup = true;
// -------------------------- box sizing -------------------------- //
/**
* Chrome & Safari measure the outer-width on style.width on border-box elems
* IE11 & Firefox<29 measures the inner-width
*/
var div = document.createElement('div');
div.style.width = '200px';
div.style.padding = '1px 2px 3px 4px';
div.style.borderStyle = 'solid';
div.style.borderWidth = '1px 2px 3px 4px';
div.style.boxSizing = 'border-box';
var body = document.body || document.documentElement;
body.appendChild( div );
var style = getStyle( div );
// round value for browser zoom. desandro/masonry#928
isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;
getSize.isBoxSizeOuter = isBoxSizeOuter;
body.removeChild( div );
}
// -------------------------- getSize -------------------------- //
function getSize( elem ) {
setup();
// use querySeletor if elem is string
if ( typeof elem == 'string' ) {
elem = document.querySelector( elem );
}
// do not proceed on non-objects
if ( !elem || typeof elem != 'object' || !elem.nodeType ) {
return;
}
var style = getStyle( elem );
// if hidden, everything is 0
if ( style.display == 'none' ) {
return getZeroSize();
}
var size = {};
size.width = elem.offsetWidth;
size.height = elem.offsetHeight;
var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';
// get all measurements
for ( var i=0; i < measurementsLength; i++ ) {
var measurement = measurements[i];
var value = style[ measurement ];
var num = parseFloat( value );
// any 'auto', 'medium' value will be 0
size[ measurement ] = !isNaN( num ) ? num : 0;
}
var paddingWidth = size.paddingLeft + size.paddingRight;
var paddingHeight = size.paddingTop + size.paddingBottom;
var marginWidth = size.marginLeft + size.marginRight;
var marginHeight = size.marginTop + size.marginBottom;
var borderWidth = size.borderLeftWidth + size.borderRightWidth;
var borderHeight = size.borderTopWidth + size.borderBottomWidth;
var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;
// overwrite width and height if we can get it from style
var styleWidth = getStyleSize( style.width );
if ( styleWidth !== false ) {
size.width = styleWidth +
// add padding and border unless it's already including it
( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );
}
var styleHeight = getStyleSize( style.height );
if ( styleHeight !== false ) {
size.height = styleHeight +
// add padding and border unless it's already including it
( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );
}
size.innerWidth = size.width - ( paddingWidth + borderWidth );
size.innerHeight = size.height - ( paddingHeight + borderHeight );
size.outerWidth = size.width + marginWidth;
size.outerHeight = size.height + marginHeight;
return size;
}
return getSize;
});
/**
* matchesSelector v2.0.2
* matchesSelector( element, '.selector' )
* MIT license
*/
/*jshint browser: true, strict: true, undef: true, unused: true */
( function( window, factory ) {
/*global define: false, module: false */
'use strict';
// universal module definition
if ( typeof define == 'function' && define.amd ) {
// AMD
define( 'desandro-matches-selector/matches-selector',factory );
} else if ( t-1 ) {
x = ( x / 100 ) * layoutSize.width;
}
if ( yValue.indexOf('%') != -1 ) {
y = ( y / 100 ) * layoutSize.height;
}
// clean up 'auto' or other non-integer values
x = isNaN( x ) ? 0 : x;
y = isNaN( y ) ? 0 : y;
// remove padding from measurement
x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;
y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;
this.position.x = x;
this.position.y = y;
};
// set settled position, apply padding
proto.layoutPosition = function() {
var layoutSize = this.layout.size;
var style = {};
var isOriginLeft = this.layout._getOption('originLeft');
var isOriginTop = this.layout._getOption('originTop');
// x
var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';
var xProperty = isOriginLeft ? 'left' : 'right';
var xResetProperty = isOriginLeft ? 'right' : 'left';
var x = this.position.x + layoutSize[ xPadding ];
// set in percentage or pixels
style[ xProperty ] = this.getXValue( x );
// reset other property
style[ xResetProperty ] = '';
// y
var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';
var yProperty = isOriginTop ? 'top' : 'bottom';
var yResetProperty = isOriginTop ? 'bottom' : 'top';
var y = this.position.y + layoutSize[ yPadding ];
// set in percentage or pixels
style[ yProperty ] = this.getYValue( y );
// reset other property
style[ yResetProperty ] = '';
this.css( style );
this.emitEvent( 'layout', [ this ] );
};
proto.getXValue = function( x ) {
var isHorizontal = this.layout._getOption('horizontal');
return this.layout.options.percentPosition && !isHorizontal ?
( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';
};
proto.getYValue = function( y ) {
var isHorizontal = this.layout._getOption('horizontal');
return this.layout.options.percentPosition && isHorizontal ?
( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';
};
proto._transitionTo = function( x, y ) {
this.getPosition();
// get current x & y from top/left
var curX = this.position.x;
var curY = this.position.y;
var didNotMove = x == this.position.x && y == this.position.y;
// save end position
this.setPosition( x, y );
// if did not move and not transitioning, just go to layout
if ( didNotMove && !this.isTransitioning ) {
this.layoutPosition();
return;
}
var transX = x - curX;
var transY = y - curY;
var transitionStyle = {};
transitionStyle.transform = this.getTranslate( transX, transY );
this.transition({
to: transitionStyle,
onTransitionEnd: {
transform: this.layoutPosition
},
isCleaning: true
});
};
proto.getTranslate = function( x, y ) {
// flip cooridinates if origin on right or bottom
var isOriginLeft = this.layout._getOption('originLeft');
var isOriginTop = this.layout._getOption('originTop');
x = isOriginLeft ? x : -x;
y = isOriginTop ? y : -y;
return 'translate3d(' + x + 'px, ' + y + 'px, 0)';
};
// non transition + transform support
proto.goTo = function( x, y ) {
this.setPosition( x, y );
this.layoutPosition();
};
proto.moveTo = proto._transitionTo;
proto.setPosition = function( x, y ) {
this.position.x = parseFloat( x );
this.position.y = parseFloat( y );
};
// ----- transition ----- //
/**
* @param {Object} style - CSS
* @param {Function} onTransitionEnd
*/
// non transition, just trigger callback
proto._nonTransition = function( args ) {
this.css( args.to );
if ( args.isCleaning ) {
this._removeStyles( args.to );
}
for ( var prop in args.onTransitionEnd ) {
args.onTransitionEnd[ prop ].call( this );
}
};
/**
* proper transition
* @param {Object} args - arguments
* @param {Object} to - style to transition to
* @param {Object} from - style to start transition from
* @param {Boolean} isCleaning - removes transition styles after transition
* @param {Function} onTransitionEnd - callback
*/
proto.transition = function( args ) {
// redirect to nonTransition if no transition duration
if ( !parseFloat( this.layout.options.transitionDuration ) ) {
this._nonTransition( args );
return;
}
var _transition = this._transn;
// keep track of onTransitionEnd callback by css property
for ( var prop in args.onTransitionEnd ) {
_transition.onEnd[ prop ] = args.onTransitionEnd[ prop ];
}
// keep track of properties that are transitioning
for ( prop in args.to ) {
_transition.ingProperties[ prop ] = true;
// keep track of properties to clean up when transition is done
if ( args.isCleaning ) {
_transition.clean[ prop ] = true;
}
}
// set from styles
if ( args.from ) {
this.css( args.from );
// force redraw. http://blog.alexmaccaw.com/css-transitions
var h = this.element.offsetHeight;
// hack for JSHint to hush about unused var
h = null;
}
// enable transition
this.enableTransition( args.to );
// set styles that are transitioning
this.css( args.to );
this.isTransitioning = true;
};
// dash before all cap letters, including first for
// WebkitTransform => -webkit-transform
function toDashedAll( str ) {
return str.replace( /([A-Z])/g, function( $1 ) {
return '-' + $1.toLowerCase();
});
}
var transitionProps = 'opacity,' + toDashedAll( transformProperty );
proto.enableTransition = function(/* style */) {
// HACK changing transitionProperty during a transition
// will cause transition to jump
if ( this.isTransitioning ) {
return;
}
// make `transition: foo, bar, baz` from style object
// HACK un-comment this when enableTransition can work
// while a transition is happening
// var transitionValues = [];
// for ( var prop in style ) {
// // dash-ify camelCased properties like WebkitTransition
// prop = vendorProperties[ prop ] || prop;
// transitionValues.push( toDashedAll( prop ) );
// }
// munge number to millisecond, to match stagger
var duration = this.layout.options.transitionDuration;
duration = typeof duration == 'number' ? duration + 'ms' : duration;
// enable transition styles
this.css({
transitionProperty: transitionProps,
transitionDuration: duration,
transitionDelay: this.staggerDelay || 0
});
// listen for transition end event
this.element.addEventListener( transitionEndEvent, this, false );
};
// ----- events ----- //
proto.onwebkitTransitionEnd = function( event ) {
this.ontransitionend( event );
};
proto.onotransitionend = function( event ) {
this.ontransitionend( event );
};
// properties that I munge to make my life easier
var dashedVendorProperties = {
'-webkit-transform': 'transform'
};
proto.ontransitionend = function( event ) {
// disregard bubbled events from children
if ( event.target !== this.element ) {
return;
}
var _transition = this._transn;
// get property name of transitioned property, convert to prefix-free
var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName;
// remove property that has completed transitioning
delete _transition.ingProperties[ propertyName ];
// check if any properties are still transitioning
if ( isEmptyObj( _transition.ingProperties ) ) {
// all properties have completed transitioning
this.disableTransition();
}
// clean style
if ( propertyName in _transition.clean ) {
// clean up style
this.element.style[ event.propertyName ] = '';
delete _transition.clean[ propertyName ];
}
// trigger onTransitionEnd callback
if ( propertyName in _transition.onEnd ) {
var onTransitionEnd = _transition.onEnd[ propertyName ];
onTransitionEnd.call( this );
delete _transition.onEnd[ propertyName ];
}
this.emitEvent( 'transitionEnd', [ this ] );
};
proto.disableTransition = function() {
this.removeTransitionStyles();
this.element.removeEventListener( transitionEndEvent, this, false );
this.isTransitioning = false;
};
/**
* removes style property from element
* @param {Object} style
**/
proto._removeStyles = function( style ) {
// clean up transition styles
var cleanStyle = {};
for ( var prop in style ) {
cleanStyle[ prop ] = '';
}
this.css( cleanStyle );
};
var cleanTransitionStyle = {
transitionProperty: '',
transitionDuration: '',
transitionDelay: ''
};
proto.removeTransitionStyles = function() {
// remove transition
this.css( cleanTransitionStylroperty + 'Delay'
};
// -------------------------- Item -------------------------- //
function Item( element, layout ) {
if ( !element ) {
return;
}
this.element = element;
// parent layout class, i.e. Masonry, Isotope, or Packery
this.layout = layout;
this.position = {
x: 0,
y: 0
};
this._create();
}
// inherit EvEmitter
var proto = Item.prototype = Object.create( EvEmitter.prototype );
proto.constructor = Item;
proto._create = function() {
// transition objects
this._transn = {
ingProperties: {},
clean: {},
onEnd: {}
};
this.css({
position: 'absolute'
});
};
// trigger specified handler for event type
proto.handleEvent = function( event ) {
var method = 'on' + event.type;
if ( this[ method ] ) {
this[ method ]( event );
}
};
proto.getSize = function() {
this.size = getSize( this.element );
};
/**
* apply CSS styles to element
* @param {Object} style
*/
proto.css = function( style ) {
var elemStyle = this.element.style;
for ( var prop in style ) {
// use vendor property if available
var supportedProp = vendorProperties[ prop ] || prop;
elemStyle[ supportedProp ] = style[ prop ];
}
};
// measure position, and sets it
proto.getPosition = function() {
var style = getComputedStyle( this.element );
var isOriginLeft = this.layout._getOption('originLeft');
var isOriginTop = this.layout._getOption('originTop');
var xValue = style[ isOriginLeft ? 'left' : 'right' ];
var yValue = style[ isOriginTop ? 'top' : 'bottom' ];
var x = parseFloat( xValue );
var y = parseFloat( yValue );
// convert percent to pixels
var layoutSize = this.layout.size;
if ( xValue.indexOf('%') != -1 ) {
x = ( x / 100 ) * layoutSize.width;
}
if ( yValue.indexOf('%') != -1 ) {
y = ( y / 100 ) * layoutSize.height;
}
// clean up 'auto' or other non-integer values
x = isNaN( x ) ? 0 : x;
y = isNaN( y ) ? 0 : y;
// remove padding from measurement
x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;
y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;
this.position.x = x;
this.position.y = y;
};
// set settled position, apply padding
proto.layoutPosition = function() {
var layoutSize = this.layout.size;
var style = {};
var isOriginLeft = this.layout._getOption('originLeft');
var isOriginTop = this.layout._getOption('originTop');
// x
var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';
var xProperty = isOriginLeft ? 'left' : 'right';
var xResetProperty = isOriginLeft ? 'right' : 'left';
var x = this.position.x + layoutSize[ xPadding ];
// set in percentage or pixels
style[ xProperty ] = this.getXValue( x );
// reset other property
style[ xResetProperty ] = '';
// y
var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';
var yProperty = isOriginTop ? 'top' : 'bottom';
var yResetProperty = isOriginTop ? 'bottom' : 'top';
var y = this.position.y + layoutSize[ yPadding ];
// set in percentage or pixels
style[ yProperty ] = this.getYValue( y );
// reset other property
style[ yResetProperty ] = '';
this.css( style );
this.emitEvent( 'layout', [ this ] );
};
proto.getXValue = function( x ) {
var isHorizontal = this.layout._getOption('horizontal');
return this.layout.options.percentPosition && !isHorizontal ?
( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';
};
proto.getYValue = function( y ) {
var isHorizontal = this.layout._getOption('horizontal');
return this.layout.options.percentPosition && isHorizontal ?
( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';
};
proto._transitionTo = function( x, y ) {
this.getPosition();
// get current x & y from top/left
var curX = this.position.x;
var curY = this.position.y;
var didNotMove = x == this.position.x && y == this.position.y;
// save end position
this.setPosition( x, y );
// if did not move and not transitioning, just go to layout
if ( didNotMove && !this.isTransitioning ) {
this.layoutPosition();
return;
}
var transX = x - curX;
var transY = y - curY;
var transitionStyle = {};
transitionStyle.transform = this.getTranslate( transX, transY );
this.transition({
to: transitionStyle,
onTransitionEnd: {
transform: this.layoutPosition
},
isCleaning: true
});
};
proto.getTranslate = function( x, y ) {
// flip cooridinates if origin on right or bottom
var isOriginLeft = this.layout._getOption('originLeft');
var isOriginTop = this.layout._getOption('originTop');
x = isOriginLeft ? x : -x;
y = isOriginTop ? y : -y;
return 'translate3d(' + x + 'px, ' + y + 'px, 0)';
};
// non transition + transform support
proto.goTo = function( x, y ) {
this.setPosition( x, y );
this.layoutPosition();
};
proto.moveTo = proto._transitionTo;
proto.setPosition = function( x, y ) {
this.position.x = parseFloat( x );
this.position.y = parseFloat( y );
};
// ----- transition ----- //
/**
* @param {Object} style - CSS
* @param {Function} onTransitionEnd
*/
// non transition, just trigger callback
proto._nonTransition = function( args ) {
this.css( args.to );
if ( args.isCleaning ) {
this._removeStyles( args.to );
}
for ( var prop in args.onTransitionEnd ) {
args.onTransitionEnd[ prop ].call( this );
}
};
/**
* proper transition
* @param {Object} args - arguments
* @param {Object} to - style to transition to
* @param {Object} from - style to start transition from
* @param {Boolean} isCleaning - removes transition styles after transition
* @param {Function} onTransitionEnd - callback
*/
proto.transition = function( args ) {
// redirect to nonTransition if no transition duration
if ( !parseFloat( this.layout.options.transitionDuration ) ) {
this._nonTransition( args );
return;
}
var _transition = this._transn;
// keep track of onTransitionEnd callback by css property
for ( var prop in args.onTransitionEnd ) {
_transition.onEnd[ prop ] = args.onTransitionEnd[ prop ];
}
// keep track of properties that are transitioning
for ( prop in args.to ) {
_transition.ingProperties[ prop ] = true;
// keep track of properties to clean up when transition is done
if ( args.isCleaning ) {
_transition.clean[ prop ] = true;
}
}
// set from styles
if ( args.from ) {
this.css( args.from );
// force redraw. http://blog.alexmaccaw.com/css-transitions
var h = this.element.offsetHeight;
// hack for JSHint to hush about unused var
h = null;
}
// enable transition
this.enableTransition( args.to );
// set styles that are transitioning
this.css( args.to );
this.isTransitioning = true;
};
// dash before all cap letters, including first for
// WebkitTransform => -webkit-transform
function toDashedAll( str ) {
return str.replace( /([A-Z])/g, function( $1 ) {
return '-' + $1.toLowerCase();
});
}
var transitionProps = 'opacity,' + toDashedAll( transformProperty );
proto.enableTransition = function(/* style */) {
// HACK changing transitionProperty during a transition
// will cause transition to jump
if ( this.isTransitioning ) {
return;
}
// make `transition: foo, bar, baz` from style object
// HACK un-comment this when enableTransition can work
// while a transition is happening
// var transitionValues = [];
// for ( var prop in style ) {
// // dash-ify camelCased properties like WebkitTransition
// prop = vendorProperties[ prop ] || prop;
// transitionValues.push( toDashedAll( prop ) );
// }
// munge number to millisecond, to match stagger
var duration = this.layout.options.transitionDuration;
duration = typeof duration == 'number' ? duration + 'ms' : duration;
// enable transition styles
this.css({
transitionProperty: transitionProps,
transitionDuration: duration,
transitionDelay: this.staggerDelay || 0
});
// listen for transition end event
this.element.addEventListener( transitionEndEvent, this, false );
};
// ----- events ----- //
proto.onwebkitTransitionEnd = function( event ) {
this.ontransitionend( event );
};
proto.onotransitionend = function( event ) {
this.ontransitionend( event );
};
// properties that I munge to make my life easier
var dashedVendorProperties = {
'-webkit-transform': 'transform'
};
proto.ontransitionend = function( event ) {
// disregard bubbled events from children
if ( event.target !== this.element ) {
return;
}
var _transition = this._transn;
// get property name of transitioned property, convert to prefix-free
var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName;
// remove property that has completed transitioning
delete _transition.ingProperties[ propertyName ];
// check if any properties are still transitioning
if ( isEmptyObj( _transition.ingProperties ) ) {
// all properties have completed transitioning
this.disableTransition();
}
// clean style
if ( propertyName in _transition.clean ) {
// clean up style
this.element.style[ event.propertyName ] = '';
delete _transition.clean[ propertyName ];
}
// trigger onTransitionEnd callback
if ( propertyName in _transition.onEnd ) {
var onTransitionEnd = _transition.onEnd[ propertyName ];
onTransitionEnd.call( this );
delete _transition.onEnd[ propertyName ];
}
this.emitEvent( 'transitionEnd', [ this ] );
};
proto.disableTransition = function() {
this.removeTransitionStyles();
this.element.removeEventListener( transitionEndEvent, this, false );
this.isTransitioning = false;
};
/**
* removes style property from element
* @param {Object} style
**/
proto._removeStyles = function( style ) {
// clean up transition styles
var cleanStyle = {};
for ( var prop in style ) {
cleanStyle[ prop ] = '';
}
this.css( cleanStyle );
};
var cleanTransitionStyle = {
transitionProperty: '',
transitionDuration: '',
transitionDelay: ''
};
proto.removeTransitionStyles = function() {
// remove transition
this.css( cleanTransitionStyle );
};
// ----- stagger ----- //
proto.stagger = function( delay ) {
delay = isNaN( delay ) ? 0 : delay;
this.staggerDelay = delay + 'ms';
};
// ----- show/hide/remove ----- //
// remove element from DOM
proto.removeElem = function() {
this.element.parentNode.removeChild( this.element );
// remove display: none
this.css({ display: '' });
this.emitEvent( 'remove', [ this ] );
};
proto.remove = function() {
// just remove element if no transition support or no transition
if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) {
this.removeElem();
return;
}
// start transition
this.once( 'transitionEnd', function() {
this.removeElem();
});
this.hide();
};
proto.reveal = function() {
delete this.isHidden;
// remove display: none
this.css({ display: '' });
var options = this.layout.options;
var onTransitionEnd = {};
var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');
onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd;
this.transition({
from: options.hiddenStyle,
to: options.visibleStyle,
isCleaning: true,
onTransitionEnd: onTransitionEnd
});
};
proto.onRevealTransitionEnd = function() {
// check if still visible
// during transition, item may have been hidden
if ( !this.isHidden ) {
this.emitEvent('reveal');
}
};
/**
* get style property use for hide/reveal transition end
* @param {String} styleProperty - hiddenStyle/visibleStyle
* @returns {String}
*/
proto.getHideRevealTransitionEndProperty = function( styleProperty ) {
var optionStyle = this.layout.options[ styleProperty ];
// use opacity
if ( optionStyle.opacity ) {
return 'opacity';
}
// get first property
for ( var prop in optionStyle ) {
return prop;
}
};
proto.hide = function() {
// set flag
this.isHidden = true;
// remove display: none
this.css({ display: '' });
var options = this.layout.options;
var onTransitionEnd = {};
var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');
onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd;
this.transition({
from: options.visibleStyle,
to: options.hiddenStyle,
// keep hidden stuff hidden
isCleaning: true,
onTransitionEnd: onTransitionEnd
});
};
proto.onHideTransitionEnd = function() {
// check if still hidden
// during transition, item may have been un-hidden
if ( this.isHidden ) {
this.css({ display: 'none' });
this.emitEvent('hide');
}
};
proto.destroy = function() {
this.css({
position: '',
left: '',
right: '',
top: '',
bottom: '',
transition: '',
transform: ''
});
};
return Item;
}));
/*!
* Outlayer v2.1.1
* the brains and guts of a layout library
* MIT license
*/
( function( window, factory ) {
'use strict';
// universal module definition
/* jshint strict: false */ /* globals define, module, require */
if ( typeof define == 'function' && define.amd ) {
// AMD - RequireJS
define( 'outlayer/outlayer',[
'ev-emitter/ev-emitter',
'get-size/get-size',
'fizzy-ui-utils/utils',
'./item'
],
function( EvEmitter, getSize, utils, Item ) {
return factory( window, EvEmitter, getSize, utils, Item);
}
);
} else if ( typeof module == 'object' && module.exports ) {
// CommonJS - Browserify, Webpack
module.exports = factory(
window,
require('ev-emitter'),
require('get-size'),
require('fizzy-ui-utils'),
require('./item')
);
} else {
// browser global
window.Outlayer = factory(
window,
window.EvEmitter,
window.getSize,
window.fizzyUIUtils,
window.Outlayer.Item
);
}
}( window, function factory( window, EvEmitter, getSize, utils, Item ) {
'use strict';
// ----- vars ----- //
var console = window.console;
var jQuery = window.jQuery;
var noop = function() {};
// -------------------------- Outlayer -------------------------- //
// globally unique identifiers
var GUID = 0;
// internal store of all Outlayer intances
var instances = {};
/**
* @param {Element, String} element
* @param {Object} options
* @constructor
*/
function Outlayer( element, options ) {
var queryElement = utils.getQueryElement( element );
if ( !queryElement ) {
if ( console ) {
console.error( 'Bad element for ' + this.constructor.namespace +
': ' + ( queryElement || element ) );
}
return;
}
this.element = queryElement;
// add jQuery
if ( jQuery ) {
this.$element = jQuery( this.element );
}
// options
this.options = utils.extend( {}, this.constructor.defaults );
this.option( options );
// add id for Outlayer.getFromElement
var id = ++GUID;
this.element.outlayerGUID = id; // expando
instances[ id ] = this; // associate via id
// kick it off
this._create();
var isInitLayout = this._getOption('initLayout');
if ( isInitLayout ) {
this.layout();
}
}
// settings are for internal use only
Outlayer.namespace = 'outlayer';
Outlayer.Item = Item;
// default options
Outlayer.defaults = {
containerStyle: {
position: 'relative'
},
initLayout: true,
originLeft: true,
originTop: true,
resize: true,
resizeContainer: true,
// item options
transitionDuration: '0.4s',
hiddenStyle: {
opacity: 0,
transform: 'scale(0.001)'
},
visibleStyle: {
opacity: 1,
transform: 'scale(1)'
}
};
var proto = Outlayer.prototype;
// inherit EvEmitter
utils.extend( proto, EvEmitter.prototype );
/**
* set options
* @param {Object} opts
*/
proto.option = function( opts ) {
utils.extend( this.options, opts );
};
/**
* get backwards compatible option value, check old name
*/
proto._getOption = function( option ) {
var oldOption = this.constructor.compatOptions[ option ];
return oldOption && this.options[ oldOption ] !== undefined ?
this.options[ oldOption ] : this.options[ option ];
};
Outlayer.compatOptions = {
// currentName: oldName
initLayout: 'isInitLayout',
horizontal: 'isHorizontal',
layoutInstant: 'isLayoutInstant',
originLeft: 'isOriginLeft',
originTop: 'isOriginTop',
resize: 'isResizeBound',
resizeContainer: 'isResizingContainer'
};
proto._create = function() {
// get items from children
this.reloadItems();
// elements that affect layout, but are not laid out
this.stamps = [];
this.stamp( this.options.stamp );
// set container style
utils.extend( this.element.style, this.options.containerStyle );
// bind resize method
var canBindResize = this._getOption('resize');
if ( canBindResize ) {
this.bindResize();
}
};
// goes through all children again and gets bricks in proper order
proto.reloadItems = function() {
// collection of item elements
this.items = this._itemize( this.element.children );
};
/**
* turn elements into Outlayer.Items to be used in layout
* @param {Array or NodeList or HTMLElement} elems
* @returns {Array} items - collection of new Outlayer Items
*/
proto._itemize = function( elems ) {
var itemElems = this._filterFindItemElements( elems );
var Item = this.constructor.Item;
// create new Outlayer Items for collection
var items = [];
for ( var i=0; i < itemElems.length; i++ ) {
var elem = itemElems[i];
var item = new Item( elem, this );
items.push( item );
}
return items;
};
/**
* get item elements to be used in layout
* @param {Array or NodeList or HTMLElement} elems
* @returns {Array} items - item elements
*/
proto._filterFindItemElements = function( elems ) {
return utils.filterFindElements( elems, this.options.itemSelector );
};
/**
* getter method for getting item elements
* @returns {Array} elems - collection of item elements
*/
proto.getItemElements = function() {
return this.items.map( function( item ) {
return item.element;
});
};
// ----- init & layout ----- //
/**
* lays out all items
*/
proto.layout = function() {
this._resetLayout();
this._manageStamps();
// don't animate first layout
var layoutInstant = this._getOption('layoutInstant');
var isInstant = layoutInstant !== undefined ?
layoutInstant : !this._isLayoutInited;
this.layoutItems( this.items, isInstant );
// flag for initalized
this._isLayoutInited = true;
};
// _init is alias for layout
proto._init = proto.layout;
/**
* logic before any new layout
*/
proto._resetLayout = function() {
this.getSize();
};
proto.getSize = function() {
this.size = getSize( this.element );
};
/**
* get measurement from option, for columnWidth, rowHeight, gutter
* if option is String -> get element from selector string, & get size of element
* if option is Element -> get size of element
* else use option as a number
*
* @param {String} measurement
* @param {String} size - width or height
* @private
*/
proto._getMeasurement = function( measurement, size ) {
var option = this.options[ measurement ];
var elem;
if ( !option ) {
// default to 0
this[ measurement ] = 0;
} else {
// use option as an element
if ( typeof option == 'string' ) {
elem = this.element.querySelector( option );
} else if ( option instanceof HTMLElement ) {
elem = option;
}
// use size of element, if element
this[ measurement ] = elem ? getSize( elem )[ size ] : option;
}
};
/**
* layout a collection of item elements
* @api public
*/
proto.layoutItems = function( items, isInstant ) {
items = this._getItemsForLayout( items );
this._layoutItems( items, isInstant );
this._postLayout();
};
/**
* get the items to be laid out
* you may want to skip over some items
* @param {Array} items
* @returns {Array} items
*/
proto._getItemsForLayout = function( items ) {
return items.filter( function( item ) {
return !item.isIgnored;
});
};
/**
* layout items
* @param {Array} items
* @param {Boolean} isInstant
*/
proto._layoutItems = function( items, isInstant ) {
this._emitCompleteOnItems( 'layout', items );
if ( !items || !items.length ) {
// no items, emit event with empty array
return;
}
var queue = [];
items.forEach( function( item ) {
// get x/y object from method
var position = this._getItemLayoutPosition( item );
// enqueue
position.item = item;
position.isInstant = isInstant || item.isLayoutInstant;
queue.push( position );
}, this );
this._processLayoutQueue( queue );
};
/**
* get item layout position
* @param {Outlayer.Item} item
* @returns {Object} x and y position
*/
proto._getItemLayoutPosition = function( /* item */ ) {
return {
x: 0,
y: 0
};
};
/**
* iterate over array and position each item
* Reason being - separating this logic prevents 'layout invalidation'
* thx @paul_irish
* @param {Array} queue
*/
proto._processLayoutQueue = function( queue ) {
this.updateStagger();
queue.forEach( function( obj, i ) {
this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i );
}, this );
};
// set stagger from option in milliseconds number
proto.updateStagger = function() {
var stagger = this.options.stagger;
if ( stagger === null || stagger === undefined ) {
this.stagger = 0;
return;
}
this.stagger = getMilliseconds( stagger );
return this.stagger;
};
/**
* Sets position of item in DOM
* @param {Outlayer.Item} item
* @param {Number} x - horizontal position
* @param {Number} y - vertical position
* @param {Boolean} isInstant - disables transitions
*/
proto._positionItem = function( item, x, y, isInstant, i ) {
if ( isInstant ) {
// if not transition, just set CSS
item.goTo( x, y );
} else {
item.stagger( i * this.stagger );
item.moveTo( x, y );
}
};
/**
* Any logic you want to do after each layout,
* i.e. size the container
*/
proto._postLayout = function() {
this.resizeContainer();
};
proto.resizeContainer = function() {
var isResizingContainer = this._getOption('resizeContainer');
if ( !isResizingContainer ) {
return;
}
var size = this._getContainerSize();
if ( size ) {
this._setContainerMeasure( size.width, true );
this._setContainerMeasure( size.height, false );
}
};
/**
* Sets width or height of container if returned
* @returns {Object} size
* @param {Number} width
* @param {Number} height
*/
proto._getContainerSize = noop;
/**
* @param {Number} measure - size of width or height
* @param {Boolean} isWidth
*/
proto._setContainerMeasure = function( measure, isWidth ) {
if ( measure === undefined ) {
return;
}
var elemSize = this.size;
// add padding and border width if border box
if ( elemSize.isBorderBox ) {
measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +
elemSize.borderLeftWidth + elemSize.borderRightWidth :
elemSize.paddingBottom + elemSize.paddingTop +
elemSize.borderTopWidth + elemSize.borderBottomWidth;
}
measure = Math.max( measure, 0 );
this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px';
};
/**
* emit eventComplete on a collection of items events
* @param {String} eventName
* @param {Array} items - Outlayer.Items
*/
proto._emitCompleteOnItems = function( eventName, items ) {
var _this = this;
function onComplete() {
_this.dispatchEvent( eventName + 'Complete', null, [ items ] );
}
var count = items.length;
if ( !items || !count ) {
onComplete();
return;
}
var doneCount = 0;
function tick() {
doneCount++;
if ( doneCount == count ) {
onComplete();
}
}
// bind callback
items.forEach( function( item ) {
item.once( eventName, tick );
});
};
/**
* emits events via EvEmitter and jQuery events
* @param {String} type - name of event
* @param {Event} event - original event
* @param {Array} args - extra arguments
*/
proto.dispatchEvent = function( type, event, args ) {
// add original event to arguments
var emitArgs = event ? [ event ].concat( args ) : args;
this.emitEvent( type, emitArgs );
if ( jQuery ) {
// set this.$element
this.$element = this.$element || jQuery( this.element );
if ( event ) {
// create jQuery event
var $event = jQuery.Event( event );
$event.type = type;
this.$element.trigger( $event, args );
} else {
// just trigger with type if no event available
this.$element.trigger( type, args );
}
}
};
// -------------------------- ignore & stamps -------------------------- //
/**
* keep item in collection, but do not lay it out
* ignored items do not get skipped in layout
* @param {Element} elem
*/
proto.ignore = function( elem ) {
var item = this.getItem( elem );
if ( item ) {
item.isIgnored = true;
}
};
/**
* return item to layout collection
* @param {Element} elem
*/
proto.unignore = function( elem ) {
var item = this.getItem( elem );
if ( item ) {
delete item.isIgnored;
}
};
/**
* adds elements to stamps
* @param {NodeList, Array, Element, or String} elems
*/
proto.stamp = function( elems ) {
elems = this._find( elems );
if ( !elems ) {
return;
}
this.stamps = this.stamps.concat( elems );
// ignore
elems.forEach( this.ignore, this );
};
/**
* removes elements to stamps
* @param {NodeList, Array, or Element} elems
*/
proto.unstamp = function( elems ) {
elems = this._find( elems );
if ( !elems ){
return;
}
elems.forEach( function( elem ) {
// filter out removed stamp elements
utils.removeFrom( this.stamps, elem );
this.unignore( elem );
}, this );
};
/**
* finds child elements
* @param {NodeList, Array, Element, or String} elems
* @returns {Array} elems
*/
proto._find = function( elems ) {
if ( !elems ) {
return;
}
// if string, use argument as selector string
if ( typeof elems == 'string' ) {
elems = this.element.querySelectorAll( elems );
}
elems = utils.makeArray( elems );
return elems;
};
proto._manageStamps = function() {
if ( !this.stamps || !this.stamps.length ) {
return;
}
this._getBoundingRect();
this.stamps.forEach( this._manageStamp, this );
};
// update boundingLeft / Top
proto._getBoundingRect = function() {
// get bounding rect for container element
var boundingRect = this.element.getBoundingClientRect();
var size = this.size;
this._boundingRect = {
left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,
top: boundingRect.top + size.paddingTop + size.borderTopWidth,
right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ),
bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth )
};
};
/**
* @param {Element} stamp
**/
proto._manageStamp = noop;
/**
* get x/y position of element relative to container element
* @param {Element} elem
* @returns {Object} offset - has left, top, right, bottom
*/
proto._getElementOffset = function( elem ) {
var boundingRect = elem.getBoundingClientRect();
var thisRect = this._boundingRect;
var size = getSize( elem );
var offset = {
left: boundingRect.left - thisRect.left - size.marginLeft,
top: boundingRect.top - thisRect.top - size.marginTop,
right: thisRect.right - boundingRect.right - size.marginRight,
bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom
};
return offset;
};
// -------------------------- resize -------------------------- //
// enable event handlers for listeners
// i.e. resize -> onresize
proto.handleEvent = utils.handleEvent;
/**
* Bind layout to window resizing
*/
proto.bindResize = function() {
window.addEventListener( 'resize', this );
this.isResizeBound = true;
};
/**
* Unbind layout to window resizing
*/
proto.unbindResize = function() {
window.removeEventListener( 'resize', this );
this.isResizeBound = false;
};
proto.onresize = function() {
this.resize();
};
utils.debounceMethod( Outlayer, 'onresize', 100 );
proto.resize = function() {
// don't trigger if size did not change
// or if resize was unbound. See #9
if ( !this.isResizeBound || !this.needsResizeLayout() ) {
return;
}
this.layout();
};
/**
* check if layout is needed post layout
* @returns Boolean
*/
proto.needsResizeLayout = function() {
var size = getSize( this.element );
// check that this.size and size are there
// IE8 triggers resize on body size change, so they might not be
var hasSizes = this.size && size;
return hasSizes && size.innerWidth !== this.size.innerWidth;
};
// -------------------------- methods -------------------------- //
/**
* add items to Outlayer instance
* @param {Array or NodeList or Element} elems
* @returns {Array} items - Outlayer.Items
**/
proto.addItems = function( elems ) {
var items = this._itemize( elems );
// add items to collection
if ( items.length ) {
this.items = this.items.concat( items );
}
return items;
};
/**
* Layout newly-appended item elements
* @param {Array or NodeList or Element} elems
*/
proto.appended = function( elems ) {
var items = this.addItems( elems );
if ( !items.length ) {
return;
}
// layout and reveal just the new items
this.layoutItems( items, true );
this.reveal( items );
};
/**
* Layout prepended elements
* @param {Array or NodeList or Element} elems
*/
proto.prepended = function( elems ) {
var items = this._itemize( elems );
if ( !items.length ) {
return;
}
// add items to beginning of collection
var previousItems = this.items.slice(0);
this.items = items.concat( previousItems );
// start new layout
this._resetLayout();
this._manageStamps();
// layout new stuff without transition
this.layoutItems( items, true );
this.reveal( items );
// layout previous items
this.layoutItems( previousItems );
};
/**
* reveal a collection of items
* @param {Array of Outlayer.Items} items
*/
proto.reveal = function( items ) {
this._emitCompleteOnItems( 'reveal', items );
if ( !items || !items.length ) {
return;
}
var stagger = this.updateStagger();
items.forEach( function( item, i ) {
item.stagger( i * stagger );
item.reveal();
});
};
/**
* hide a collection of items
* @param {Array of Outlayer.Items} items
*/
proto.hide = function( items ) {
this._emitCompleteOnItems( 'hide', items );
if ( !items || !items.length ) {
return;
}
var stagger = this.updateStagger();
items.forEach( function( item, i ) {
item.stagger( i * stagger );
item.hide();
});
};
/**
* reveal item elements
* @param {Array}, {Element}, {NodeList} items
*/
proto.revealItemElements = function( elems ) {
var items = this.getItems( elems );
this.reveal( items );
};
/**
* hide item elements
* @param {Array}, {Element}, {NodeList} items
*/
proto.hideItemElements = function( elems ) {
var items = this.getItems( elems );
this.hide( items );
};
/**
* get Outlayer.Item, given an Element
* @param {Element} elem
* @param {Function} callback
* @returns {Outlayer.Item} item
*/
proto.getItem = function( elem ) {
// loop through items to get the one that matches
for ( var i=0; i < this.items.length; i++ ) {
var item = this.items[i];
if ( item.element == elem ) {
// return item
return item;
}
}
};
/**
* get collection of Outlayer.Items, given Elements
* @param {Array} elems
* @returns {Array} items - Outlayer.Items
*/
proto.getItems = function( elems ) {
elems = utils.makeArray( elems );
var items = [];
elems.forEach( function( elem ) {
var item = this.getItem( elem );
if ( item ) {
items.push( item );
}
}, this );
return items;
};
/**
* remove element(s) from instance and DOM
* @param {Array or NodeList or Element} elems
*/
proto.remove = function( elems ) {
var removeItems = this.getItems( elems );
this._emitCompleteOnItems( 'remove', removeItems );
// bail if no items to remove
if ( !removeItems || !removeItems.length ) {
return;
}
removeItems.forEach( function( item ) {
item.remove();
// remove item from collection
utils.removeFrom( this.items, item );
}, this );
};
// ----- destroy ----- //
// remove and disable Outlayer instance
proto.destroy = function() {
// clean up dynamic styles
var style = this.element.style;
style.height = '';
style.position = '';
style.width = '';
// destroy items
this.items.forEach( function( item ) {
item.destroy();
});
this.unbindResize();
var id = this.element.outlayerGUID;
delete instances[ id ]; // remove reference to instance by id
delete this.element.outlayerGUID;
// remove data for jQuery
if ( jQuery ) {
jQuery.removeData( this.element, this.constructor.namespace );
}
};
// -------------------------- data -------------------------- //
/**
* get Outlayer instance from element
* @param {Element} elem
* @returns {Outlayer}
*/
Outlayer.data = function( elem ) {
elem = utils.getQueryElement( elem );
var id = elem && elem.outlayerGUID;
return id && instances[ id ];
};
// -------------------------- create Outlayer class -------------------------- //
/**
* create a layout class
* @param {String} namespace
*/
Outlayer.create = function( namespace, options ) {
// sub-class Outlayer
var Layout = subclass( Outlayer );
// apply new options and compatOptions
Layout.defaults = utils.extend( {}, Outlayer.defaults );
utils.extend( Layout.defaults, options );
Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions );
Layout.namespace = namespace;
Layout.data = Outlayer.data;
// sub-class Itistener ) {
var listeners = this._events && this._events[ eventName ];
if ( !listeners || !listeners.length ) {
return;
}
var index = listeners.indexOf( listener );
if ( index != -1 ) {
listeners.splice( index, 1 );
}
return this;
};
proto.emitEvent = function( eventName, args ) {
var listeners = this._events && this._events[ eventName ];
if ( !listeners || !listeners.length ) {
return;
}
// copy over to avoid interference if .off() in listener
listeners = listeners.slice(0);
args = args || [];
// once stuff
var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
for ( var i=0; i < listeners.length; i++ ) {
var listener = listeners[i]
var isOnce = onceListeners && onceListeners[ listener ];
if ( isOnce ) {
// remove listener
// remove before trigger to prevent recursion
this.off( eventName, listener );
// unset once flag
delete onceListeners[ listener ];
}
// trigger listener
listener.apply( this, args );
}
return this;
};
proto.allOff = function() {
delete this._events;
delete this._onceEvents;
};
return EvEmitter;
}));
/*!
* imagesLoaded v4.1.4
* JavaScript is all like "You images are done yet or what?"
* MIT License
*/
( function( window, factory ) { 'use strict';
// universal module definition
/*global define: false, module: false, require: false */
if ( typeof define == 'function' && define.amd ) {
// AMD
define( [
'ev-emitter/ev-emitter'
], function( EvEmitter ) {
return factory( window, EvEmitter );
});
} else if ( typeof module == 'object' && module.exports ) {
// CommonJS
module.exports = factory(
window,
require('ev-emitter')
);
} else {
// browser global
window.imagesLoaded = factory(
window,
window.EvEmitter
);
}
})( typeof window !== 'undefined' ? window : this,
// -------------------------- factory -------------------------- //
function factory( window, EvEmitter ) {
var $ = window.jQuery;
var console = window.console;
// -------------------------- helpers -------------------------- //
// extend objects
function extend( a, b ) {
for ( var prop in b ) {
a[ prop ] = b[ prop ];
}
return a;
}
var arraySlice = Array.prototype.slice;
// turn element or nodeList into an array
function makeArray( obj ) {
if ( Array.isArray( obj ) ) {
// use object if already an array
return obj;
}
var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';
if ( isArrayLike ) {
// convert nodeList to array
return arraySlice.call( obj );
}
// array of single index
return [ obj ];
}
// -------------------------- imagesLoaded -------------------------- //
/**
* @param {Array, Element, NodeList, String} elem
* @param {Object or Function} options - if function, use as callback
* @param {Function} onAlways - callback function
*/
function ImagesLoaded( elem, options, onAlways ) {
// coerce ImagesLoaded() without new, to be new ImagesLoaded()
if ( !( this instanceof ImagesLoaded ) ) {
return new ImagesLoaded( elem, options, onAlways );
}
// use elem as selector string
var queryElem = elem;
if ( typeof elem == 'string' ) {
queryElem = document.querySelectorAll( elem );
}
// bail if bad element
if ( !queryElem ) {
console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );
return;
}
this.elements = makeArray( queryElem );
this.options = extend( {}, this.options );
// shift arguments if no options set
if ( typeof options == 'function' ) {
onAlways = options;
} else {
extend( this.options, options );
}
if ( onAlways ) {
this.on( 'always', onAlways );
}
this.getImages();
if ( $ ) {
// add jQuery Deferred object
this.jqDeferred = new $.Deferred();
}
// HACK check async to allow time to bind listeners
setTimeout( this.check.bind( this ) );
}
ImagesLoaded.prototype = Object.create( EvEmitter.prototype );
ImagesLoaded.prototype.options = {};
ImagesLoaded.prototype.getImages = function() {
this.images = [];
// filter & find items if we have an item selector
this.elements.forEach( this.addElementImages, this );
};
/**
* @param {Node} element
*/
ImagesLoaded.prototype.addElementImages = function( elem ) {
// filter siblings
if ( elem.nodeName == 'IMG' ) {
this.addImage( elem );
}
// get background image on element
if ( this.options.background === true ) {
this.addElementBackgroundImages( elem );
}
// find children
// no non-element nodes, #143
var nodeType = elem.nodeType;
if ( !nodeType || !elementNodeTypes[ nodeType ] ) {
return;
}
var childImgs = elem.querySelectorAll('img');
// concat childElems to filterFound array
for ( var i=0; i < childImgs.length; i++ ) {
var img = childImgs[i];
this.addImage( img );
}
// get child background images
if ( typeof this.options.background == 'string' ) {
var children = elem.querySelectorAll( this.options.background );
for ( i=0; i < children.length; i++ ) {
var child = children[i];
this.addElementBackgroundImages( child );
}
}
};
var elementNodeTypes = {
1: true,
9: true,
11: true
};
ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {
var style = getComputedStyle( elem );
if ( !style ) {
// Firefox returns null if in a hidden iframe https://bugzil.la/548397
return;
}
// get url inside url("...")
var reURL = /url\((['"])?(.*?)\1\)/gi;
var matches = reURL.exec( style.backgroundImage );
while ( matches !== null ) {
var url = matches && matches[2];
if ( url ) {
this.addBackground( url, elem );
}
matches = reURL.exec( style.backgroundImage );
}
};
/**
* @param {Image} img
*/
ImagesLoaded.prototype.addImage = function( img ) {
var loadingImage = new LoadingImage( img );
this.images.push( loadingImage );
};
ImagesLoaded.prototype.addBackground = function( url, elem ) {
var background = new Background( url, elem );
this.images.push( background );
};
ImagesLoaded.prototype.check = function() {
var _this = this;
this.progressedCount = 0;
this.hasAnyBroken = false;
// complete if no images
if ( !this.images.length ) {
this.complete();
return;
}
function onProgress( image, elem, message ) {
// HACK - Chrome triggers event before object properties have changed. #83
setTimeout( function() {
_this.progress( image, elem, message );
});
}
this.images.forEach( function( loadingImage ) {
loadingImage.once( 'progress', onProgress );
loadingImage.check();
});
};
ImagesLoaded.prototype.progress = function( image, elem, message ) {
this.progressedCount++;
this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;
// progress event
this.emitEvent( 'progress', [ this, image, elem ] );
if ( this.jqDeferred && this.jqDeferred.notify ) {
this.jqDeferred.notify( this, image );
}
// check if completed
if ( this.progressedCount == this.images.length ) {
this.complete();
}
if ( this.options.debug && console ) {
console.log( 'progress: ' + message, image, elem );
}
};
ImagesLoaded.prototype.complete = function() {
var eventName = this.hasAnyBroken ? 'fail' : 'done';
this.isComplete = true;
this.emitEvent( eventName, [ this ] );
this.emitEvent( 'always', [ this ] );
if ( this.jqDeferred ) {
var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';
this.jqDeferred[ jqMethod ]( this );
}
};
// -------------------------- -------------------------- //
function LoadingImage( img ) {
this.img = img;
}
LoadingImage.prototype = Object.create( EvEmitter.prototype );
LoadingImage.prototype.check = function() {
// If complete is true and browser supports natural sizes,
// try to check for image status manually.
var isComplete = this.getIsImageComplete();
if ( isComplete ) {
// report based on naturalWidth
this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
return;
}
// If none of the checks above matched, simulate loading on detached element.
this.proxyImage = new Image();
this.proxyImage.addEventListener( 'load', this );
this.proxyImage.addEventListener( 'error', this );
// bind to image as well for Firefox. #191
this.img.addEventListener( 'load', this );
this.img.addEventListener( 'error', this );
this.proxyImage.src = this.img.src;
};
Loaddth;
};
return Masonry;
}));
/*!
* imagesLoaded PACKAGED v4.1.4
* JavaScript is all like "You images are done yet or what?"
* MIT License
*/
/**
* EvEmitter v1.1.0
* Lil' event emitter
* MIT License
*/
/* jshint unused: true, undef: true, strict: true */
( function( global, factory ) {
// universal module definition
/* jshint strict: false */ /* globals define, module, window */
if ( typeof define == 'function' && define.amd ) {
// AMD - RequireJS
define( 'ev-emitter/ev-emitter',factory );
} else if ( typeof module == 'object' && module.exports ) {
// CommonJS - Browserify, Webpack
module.exports = factory();
} else {
// Browser globals
global.EvEmitter = factory();
}
}( typeof window != 'undefined' ? window : this, function() {
function EvEmitter() {}
var proto = EvEmitter.prototype;
proto.on = function( eventName, listener ) {
if ( !eventName || !listener ) {
return;
}
// set events hash
var events = this._events = this._events || {};
// set listeners array
var listeners = events[ eventName ] = events[ eventName ] || [];
// only add once
if ( listeners.indexOf( listener ) == -1 ) {
listeners.push( listener );
}
return this;
};
proto.once = function( eventName, listener ) {
if ( !eventName || !listener ) {
return;
}
// add event
this.on( eventName, listener );
// set once flag
// set onceEvents hash
var onceEvents = this._onceEvents = this._onceEvents || {};
// set onceListeners object
var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
// set flag
onceListeners[ listener ] = true;
return this;
};
proto.off = function( eventName, listener ) {
var listeners = this._events && this._events[ eventName ];
if ( !listeners || !listeners.length ) {
return;
}
var index = listeners.indexOf( listener );
if ( index != -1 ) {
listeners.splice( index, 1 );
}
return this;
};
proto.emitEvent = function( eventName, args ) {
var listeners = this._events && this._events[ eventName ];
if ( !listeners || !listeners.length ) {
return;
}
// copy over to avoid interference if .off() in listener
listeners = listeners.slice(0);
args = args || [];
// once stuff
var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
for ( var i=0; i < listeners.length; i++ ) {
var listener = listeners[i]
var isOnce = onceListeners && onceListeners[ listener ];
if ( isOnce ) {
// remove listener
// remove before trigger to prevent recursion
this.off( eventName, listener );
// unset once flag
delete onceListeners[ listener ];
}
// trigger listener
listener.apply( this, args );
}
return this;
};
proto.allOff = function() {
delete this._events;
delete this._onceEvents;
};
return EvEmitter;
}));
/*!
* imagesLoaded v4.1.4
* JavaScript is all like "You images are done yet or what?"
* MIT License
*/
( function( window, factory ) { 'use strict';
// universal module definition
/*global define: false, module: false, require: false */
if ( typeof define == 'function' && define.amd ) {
// AMD
define( [
'ev-emitter/ev-emitter'
], function( EvEmitter ) {
return factory( window, EvEmitter );
});
} else if ( typeof module == 'object' && module.exports ) {
// CommonJS
module.exports = factory(
window,
require('ev-emitter')
);
} else {
// browser global
window.imagesLoaded = factory(
window,
window.EvEmitter
);
}
})( typeof window !== 'undefined' ? window : this,
// -------------------------- factory -------------------------- //
function factory( window, EvEmitter ) {
var $ = window.jQuery;
var console = window.console;
// -------------------------- helpers -------------------------- //
// extend objects
function extend( a, b ) {
for ( var prop in b ) {
a[ prop ] = b[ prop ];
}
return a;
}
var arraySlice = Array.prototype.slice;
// turn element or nodeList into an array
function makeArray( obj ) {
if ( Array.isArray( obj ) ) {
// use object if already an array
return obj;
}
var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';
if ( isArrayLike ) {
// convert nodeList to array
return arraySlice.call( obj );
}
// array of single index
return [ obj ];
}
// -------------------------- imagesLoaded -------------------------- //
/**
* @param {Array, Element, NodeList, String} elem
* @param {Object or Function} options - if function, use as callback
* @param {Function} onAlways - callback function
*/
function ImagesLoaded( elem, options, onAlways ) {
// coerce ImagesLoaded() without new, to be new ImagesLoaded()
if ( !( this instanceof ImagesLoaded ) ) {
return new ImagesLoaded( elem, options, onAlways );
}
// use elem as selector string
var queryElem = elem;
if ( typeof elem == 'string' ) {
queryElem = document.querySelectorAll( elem );
}
// bail if bad element
if ( !queryElem ) {
console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );
return;
}
this.elements = makeArray( queryElem );
this.options = extend( {}, this.options );
// shift arguments if no options set
if ( typeof options == 'function' ) {
onAlways = options;
} else {
extend( this.options, options );
}
if ( onAlways ) {
this.on( 'always', onAlways );
}
this.getImages();
if ( $ ) {
// add jQuery Deferred object
this.jqDeferred = new $.Deferred();
}
// HACK check async to allow time to bind listeners
setTimeout( this.check.bind( this ) );
}
ImagesLoaded.prototype = Object.create( EvEmitter.prototype );
ImagesLoaded.prototype.options = {};
ImagesLoaded.prototype.getImages = function() {
this.images = [];
// filter & find items if we have an item selector
this.elements.forEach( this.addElementImages, this );
};
/**
* @param {Node} element
*/
ImagesLoaded.prototype.addElementImages = function( elem ) {
// filter siblings
if ( elem.nodeName == 'IMG' ) {
this.addImage( elem );
}
// get background image on element
if ( this.options.background === true ) {
this.addElementBackgroundImages( elem );
}
// find children
// no non-element nodes, #143
var nodeType = elem.nodeType;
if ( !nodeType || !elementNodeTypes[ nodeType ] ) {
return;
}
var childImgs = elem.querySelectorAll('img');
// concat childElems to filterFound array
for ( var i=0; i < childImgs.length; i++ ) {
var img = childImgs[i];
this.addImage( img );
}
// get child background images
if ( typeof this.options.background == 'string' ) {
var children = elem.querySelectorAll( this.options.background );
for ( i=0; i < children.length; i++ ) {
var child = children[i];
this.addElementBackgroundImages( child );
}
}
};
var elementNodeTypes = {
1: true,
9: true,
11: true
};
ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {
var style = getComputedStyle( elem );
if ( !style ) {
// Firefox returns null if in a hidden iframe https://bugzil.la/548397
return;
}
// get url inside url("...")
var reURL = /url\((['"])?(.*?)\1\)/gi;
var matches = reURL.exec( style.backgroundImage );
while ( matches !== null ) {
var url = matches && matches[2];
if ( url ) {
this.addBackground( url, elem );
}
matches = reURL.exec( style.backgroundImage );
}
};
/**
* @param {Image} img
*/
ImagesLoaded.prototype.addImage = function( img ) {
var loadingImage = new LoadingImage( img );
this.images.push( loadingImage );
};
ImagesLoaded.prototype.addBackground = function( url, elem ) {
var background = new Background( url, elem );
this.images.push( background );
};
ImagesLoaded.prototype.check = function() {
var _this = this;
this.progressedCount = 0;
this.hasAnyBroken = false;
// complete if no images
if ( !this.images.length ) {
this.complete();
return;
}
function onProgress( image, elem, message ) {
// HACK - Chrome triggers event before object properties have changed. #83
setTimeout( function() {
_this.progress( image, elem, message );
});
}
this.images.forEach( function( loadingImage ) {
loadingImage.once( 'progress', onProgress );
loadingImage.check();
});
};
ImagesLoaded.prototype.progress = function( image, elem, message ) {
this.progressedCount++;
this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;
// progress event
this.emitEvent( 'progress', [ this, image, elem ] );
if ( this.jqDeferred && this.jqDeferred.notify ) {
this.jqDeferred.notify( this, image );
}
// check if completed
if ( this.progressedCount == this.images.length ) {
this.complete();
}
if ( this.options.debug && console ) {
console.log( 'progress: ' + message, image, elem );
}
};
ImagesLoaded.prototype.complete = function() {
var eventName = this.hasAnyBroken ? 'fail' : 'done';
this.isComplete = true;
this.emitEvent( eventName, [ this ] );
this.emitEvent( 'always', [ this ] );
if ( this.jqDeferred ) {
var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';
this.jqDeferred[ jqMethod ]( this );
}
};
// -------------------------- -------------------------- //
function LoadingImage( img ) {
this.img = img;
}
LoadingImage.prototype = Object.create( EvEmitter.prototype );
LoadingImage.prototype.check = function() {
// If complete is true and browser supports natural sizes,
// try to check for image status manually.
var isComplete = this.getIsImageComplete();
if ( isComplete ) {
// report based on naturalWidth
this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
return;
}
// If none of the checks above matched, simulate loading on detached element.
this.proxyImage = new Image();
this.proxyImage.addEventListener( 'load', this );
this.proxyImage.addEventListener( 'error', this );
// bind to image as well for Firefox. #191
this.img.addEventListener( 'load', this );
this.img.addEventListener( 'error', this );
this.proxyImage.src = this.img.src;
};
LoadingImage.prototype.getIsImageComplete = function() {
// check for non-zero, non-undefined naturalWidth
// fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671
return this.img.complete && this.img.naturalWidth;
};
LoadingImage.prototype.confirm = function( isLoaded, message ) {
this.isLoaded = isLoaded;
this.emitEvent( 'progress', [ this, this.img, message ] );
};
// ----- events ----- //
// trigger specified handler for event type
LoadingImage.prototype.handleEvent = function( event ) {
var method = 'on' + event.type;
if ( this[ method ] ) {
this[ method ]( event );
}
};
LoadingImage.prototype.onload = function() {
this.confirm( true, 'onload' );
this.unbindEvents();
};
LoadingImage.prototype.onerror = function() {
this.confirm( false, 'onerror' );
this.unbindEvents();
};
LoadingImage.prototype.unbindEvents = function() {
this.proxyImage.removeEventListener( 'load', this );
this.proxyImage.removeEventListener( 'error', this );
this.img.removeEventListener( 'load', this );
this.img.removeEventListener( 'error', this );
};
// -------------------------- Background -------------------------- //
function Background( url, element ) {
this.url = url;
this.element = element;
this.img = new Image();
}
// inherit LoadingImage prototype
Background.prototype = Object.create( LoadingImage.prototype );
Background.prototype.check = function() {
this.img.addEventListener( 'load', this );
this.img.addEventListener( 'error', this );
this.img.src = this.url;
// check if image is already complete
var isComplete = this.getIsImageComplete();
if ( isComplete ) {
this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
this.unbindEvents();
}
};
Background.prototype.unbindEvents = function() {
this.img.removeEventListener( 'load', this );
this.img.removeEventListener( 'error', this );
};
Background.prototype.confirm = function( isLoaded, message ) {
this.isLoaded = isLoaded;
this.emitEvent( 'progress', [ this, this.element, message ] );
};
// -------------------------- jQuery -------------------------- //
ImagesLoaded.makeJQueryPlugin = function( jQuery ) {
jQuery = jQuery || window.jQuery;
if ( !jQuery ) {
return;
}
// set local variable
$ = jQuery;
// $().imagesLoaded()
$.fn.imagesLoaded = function( options, callback ) {
var instance = new ImagesLoaded( this, options, callback );
return instance.jqDeferred.promise( $(this) );
};
};
// try making plugin
ImagesLoaded.makeJQueryPlugin();
// -------------------------- -------------------------- //
return ImagesLoaded;
});
var referrer_canal_url = (document.cookie.indexOf('referrercanalurl=') === -1 ? '' : ('; ' + document.cookie).split('; referrercanalurl=')[1].split(';')[0]);if (referrer_canal_url) {
} else {
if (document.referrer) {
var referrer_canal_url = document.referrer;
var cookieId = 'referrercanalurl';
cookieStr = referrer_canal_url;
var nowPreserve = new Date();
var oneYear = 30*24*60*60*1000;
var thenPreserve = nowPreserve.getTime() + oneYear;
nowPreserve.setTime(thenPreserve);
var expireTime = nowPreserve.toUTCString();
document.cookie = cookieId+'='+cookieStr+';path=/;expires='+expireTime+';domain='+document.domain;
} else {
var referrer_canal_url = '';
}
}jQuery(function($){ $("a[href^=mailto]").on("click", function() { ga('send', 'event', 'vip-event', 'click', 'mail'); }); $("a[href^=tel]").on("click", function() { ga('send', 'event', 'vip-event', 'click', 'telefono'); });});var notUs = (document.cookie.indexOf('wasLogged=') === -1 ? '' : ('; ' + document.cookie).split('; wasLogged=')[1].split(';')[0]);
if (notUs == 0){(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.text=
// Copyright 2012 Google Inc. All rights reserved.
(function(){
var data = {
"resource": {
"version":"2",
"macros":[{"function":"__e"},{"vtp_signal":0,"function":"__c","vtp_value":0},{"function":"__c","vtp_value":"google.es"},{"function":"__c","vtp_value":0},{"vtp_signal":0,"function":"__c","vtp_value":0},{"function":"__c","vtp_value":"google.es"},{"function":"__c","vtp_value":0}],
"tags":[{"function":"__ogt_ga_send","priority":8,"vtp_value":true,"tag_id":16},{"function":"__ogt_referral_exclusion","priority":8,"vtp_includeConditions":["list","pgiengineering\\.com"],"tag_id":18},{"function":"__ogt_session_timeout","priority":8,"vtp_sessionMinutes":30,"vtp_sessionHours":0,"tag_id":19},{"function":"__ogt_1p_data_v2","priority":8,"vtp_isAutoEnabled":true,"vtp_autoCollectExclusionSelectors":["list",["map","exclusionSelector",""]],"vtp_isEnabled":true,"vtp_cityType":"CSS_SELECTOR","vtp_manualEmailEnabled":false,"vtp_firstNameType":"CSS_SELECTOR","vtp_countryType":"CSS_SELECTOR","vtp_cityValue":"","vtp_emailType":"CSS_SELECTOR","vtp_regionType":"CSS_SELECTOR","vtp_autoEmailEnabled":true,"vtp_postalCodeValue":"","vtp_lastNameValue":"","vtp_phoneType":"CSS_SELECTOR","vtp_phoneValue":"","vtp_streetType":"CSS_SELECTOR","vtp_autoPhoneEnabled":false,"vtp_postalCodeType":"CSS_SELECTOR","vtp_emailValue":"","vtp_firstNameValue":"","vtp_streetValue":"","vtp_lastNameType":"CSS_SELECTOR","vtp_autoAddressEnabled":false,"vtp_regionValue":"","vtp_countryValue":"","vtp_isAutoCollectPiiEnabledFlag":false,"tag_id":20},{"function":"__ccd_ga_first","priority":7,"vtp_instanceDestinationId":"G-WP2Y5CS0D6","tag_id":28},{"function":"__set_product_settings","priority":6,"vtp_instanceDestinationId":"G-WP2Y5CS0D6","vtp_foreignTldMacroResult":["macro",5],"vtp_isChinaVipRegionMacroResult":["macro",6],"tag_id":27},{"function":"__ccd_ga_ads_link","priority":5,"vtp_instanceDestinationId":"G-WP2Y5CS0D6","tag_id":26},{"function":"__ogt_google_signals","priority":4,"vtp_googleSignals":"DISABLED","vtp_instanceDestinationId":"G-WP2Y5CS0D6","vtp_serverMacroResult":["macro",4],"tag_id":25},{"function":"__ccd_ga_regscope","priority":3,"vtp_settingsTable":["list",["map","redactFieldGroup","DEVICE_AND_GEO","disallowAllRegions",false,"disallowedRegions",""],["map","redactFieldGroup","GOOGLE_SIGNALS","disallowAllRegions",true,"disallowedRegions",""]],"vtp_instanceDestinationId":"G-WP2Y5CS0D6","tag_id":24},{"function":"__ccd_conversion_marking","priority":2,"vtp_conversionRules":["list",["map","matchingRules","{\"type\":5,\"args\":[{\"stringValue\":\"purchase\"},{\"contextValue\":{\"namespaceodule_ccdGaRegionScopedSettings"]],[52,"c",[2,[15,"b"],"extractRedactedLocations",[7,[15,"a"]]]],[2,[15,"b"],"applyRegionScopedSettings",[7,[15,"a"],[15,"c"]]],[2,[15,"a"],"gtmOnSuccess",[7]]]
,[50,"__e",[46,"a"],[36,[13,[41,"$0"],[3,"$0",["require","internal.getEventData"]],["$0","event"]]]]
,[50,"__ogt_1p_data_v2",[46,"a"],[50,"k",[46,"n","o","p"],[22,[20,[16,[15,"o"],"type"],[15,"p"]],[46,[22,[28,[15,"n"]],[46,[3,"n",[8]]]],[22,[28,[16,[15,"n"],[15,"p"]]],[46,[43,[15,"n"],[15,"p"],[16,[15,"o"],"userData"]]]]]],[36,[15,"n"]]],[50,"l",[46,"n","o"],[52,"p",[16,[15,"a"],[15,"n"]]],[41,"q"],[22,[20,[15,"p"],"CSS_SELECTOR"],[46,[3,"q","css_selector"]],[46,[22,[20,[15,"p"],"JS_VAR"],[46,[3,"q","js_variable"]]]]],[36,[8,"selector_type",[15,"q"],"value",[16,[15,"a"],[15,"o"]]]]],[50,"m",[46,"n","o","p","q"],[22,[28,[16,[15,"a"],[15,"q"]]],[46,[36]]],[43,[15,"n"],[15,"o"],["l",[15,"p"],[15,"q"]]]],[22,[28,[17,[15,"a"],"isEnabled"]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[52,"b",[13,[41,"$0"],[3,"$0",["require","internal.getFlags"]],["$0"]]],[52,"c",["require","internal.getDestinationIds"]],[52,"d",["require","internal.getProductSettingsParameter"]],[52,"e",["require","internal.detectUserProvidedData"]],[52,"f",["require","queryPermission"]],[52,"g",["require","internal.setRemoteConfigParameter"]],[52,"h",["require","internal.registerCcdCallback"]],[52,"i",[30,["c"],[7]]],[52,"j",[8,"enable_code",true]],[22,[17,[15,"a"],"isAutoEnabled"],[46,[53,[52,"n",[7]],[22,[1,[17,[15,"a"],"autoCollectExclusionSelectors"],[17,[17,[15,"a"],"autoCollectExclusionSelectors"],"length"]],[46,[53,[41,"p"],[3,"p",0],[63,[7,"p"],[23,[15,"p"],[17,[17,[15,"a"],"autoCollectExclusionSelectors"],"length"]],[33,[15,"p"],[3,"p",[0,[15,"p"],1]]],[46,[53,[52,"q",[17,[16,[17,[15,"a"],"autoCollectExclusionSelectors"],[15,"p"]],"exclusionSelector"]],[22,[15,"q"],[46,[2,[15,"n"],"push",[7,[15,"q"]]]]]]]]]]],[52,"o",[39,[17,[15,"a"],"isAutoCollectPiiEnabledFlag"],[17,[15,"a"],"autoEmailEnabled"],true]],[43,[15,"j"],"auto_detect",[8,"email",[15,"o"],"phone",[17,[15,"a"],"autoPhoneEnabled"],"address",[17,[15,"a"],"autoAddressEnabled"],"exclude_element_selectors",[15,"n"]]]]]],[22,[17,[15,"a"],"isManualEnabled"],[46,[53,[52,"n",[8]],[22,[17,[15,"a"],"manualEmailEnabled"],[46,["m",[15,"n"],"email","emailType","emailValue"]]],[22,[17,[15,"a"],"manualPhoneEnabled"],[46,["m",[15,"n"],"phone","phoneType","phoneValue"]]],[22,[17,[15,"a"],"manualAddressEnabled"],[46,[53,[52,"o",[8]],["m",[15,"o"],"first_name","firstNameType","firstNameValue"],["m",[15,"o"],"last_name","lastNameType","lastNameValue"],["m",[15,"o"],"street","streetType","streetValue"],["m",[15,"o"],"city","cityType","cityValue"],["m",[15,"o"],"region","regionType","regionValue"],["m",[15,"o"],"country","countryType","countryValue"],["m",[15,"o"],"postal_code","postalCodeType","postalCodeValue"],[43,[15,"n"],"name_and_address",[7,[15,"o"]]]]]],[43,[15,"j"],"selectors",[15,"n"]]]]],[65,"n",[15,"i"],[46,[53,[41,"o"],[3,"o",[15,"j"]],[22,[1,[20,[2,[15,"n"],"indexOf",[7,"G-"]],0],[28,[16,[15,"b"],"enableEuidAutoMode"]]],[46,[53,[52,"r",[8,"enable_code",true,"selectors",[16,[15,"j"],"selectors"]]],[3,"o",[15,"r"]]]]],["g",[15,"n"],"user_data_settings",[15,"o"]],[52,"p",[16,[15,"o"],"auto_detect"]],[22,[28,[15,"p"]],[46,[6]]],[52,"q",[51,"",[7,"r"],[52,"s",[2,[15,"r"],"getMetadata",[7,"user_data_from_automatic"]]],[22,[15,"s"],[46,[36,[15,"s"]]]],[41,"t"],[22,[30,[28,[16,[15,"b"],"enableDetectUserProvidedDataErrorHandling"]],["f","detect_user_provided_data","auto"]],[46,[3,"t",["e",[8,"excludeElementSelectors",[16,[15,"p"],"exclude_element_selectors"],"fieldFilters",[8,"email",[16,[15,"p"],"email"],"phone",[16,[15,"p"],"phone"],"address",[16,[15,"p"],"address"]]]]]]],[52,"u",[1,[15,"t"],[16,[15,"t"],"elements"]]],[52,"v",[8]],[22,[1,[15,"u"],[18,[17,[15,"u"],"length"],0]],[46,[53,[41,"w"],[53,[41,"x"],[3,"x",0],[63,[7,"x"],[23,[15,"x"],[17,[15,"u"],"length"]],[33,[15,"x"],[3,"x",[0,[15,"x"],1]]],[46,[53,[52,"y",[16,[15,"u"],[15,"x"]]],["k",[15,"v"],[15,"y"],"email"],[22,[16,[15,"b"],"enableAutoPiiOnPhoneAndAddress"],[46,["k",[15,"v"],[15,"y"],"phone_number"],[3,"w",["k",[15,"w"],[15,"y"],"first_name"]],[3,"w",["k",[15,"w"],[15,"y"],"last_name"]],[3,"w",["k",[15,"w"],[15,"y"],"country"]],[3,"w",["k",[15,"w"],[15,"y"],"postal_code"]]]]]]]],[22,[1,[15,"w"],[28,[16,[15,"v"],"address"]]],[46,[43,[15,"v"],"address",[15,"w"]]]]]]],[2,[15,"r"],"setMetadata",[7,"user_data_from_automatic",[15,"v"]]],[36,[15,"v"]]]],["h",[15,"n"],[51,"",[7,"r"],[2,[15,"r"],"setMetadata",[7,"user_data_from_automatic_getter",[15,"q"]]]]]]]],[2,[15,"a"],"gtmOnSuccess",[7]]]
,[50,"__ogt_ga_send",[46,"a"],[50,"g",[46,"h","i","j","k"],[22,[21,[16,[15,"h"],[15,"i"]],[44]],[46,[43,[15,"j"],[15,"k"],[16,[15,"h"],[15,"i"]]]]]],[22,[28,[17,[15,"a"],"value"]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[52,"b",["require","getContainerVersion"]],[52,"c",["require","internal.getDestinationIds"]],[52,"d",["require","internal.sendGtagEvent"]],[52,"e",["require","internal.addGaSendListener"]],[41,"f"],[3,"f",["c"]],[22,[30,[28,[15,"f"]],[20,[17,[15,"f"],"length"],0]],[46,[3,"f",[7,[17,["b"],"containerId"]]]]],["e",[51,"",[7,"h","i"],[41,"j"],[41,"k"],[3,"k",[8]],[22,[20,[15,"h"],"event"],[46,[3,"j",[16,[15,"i"],"eventAction"]],["g",[15,"i"],"eventCategory",[15,"k"],"event_category"],["g",[15,"i"],"eventLabel",[15,"k"],"event_label"],["g",[15,"i"],"eventValue",[15,"k"],"value"]],[46,[22,[20,[15,"h"],"exception"],[46,[3,"j","exception"],["g",[15,"i"],"exDescription",[15,"k"],"description"],["g",[15,"i"],"exFatal",[15,"k"],"fatal"]],[46,[22,[20,[15,"h"],"timing"],[46,[22,[30,[30,[20,[16,[15,"i"],"timingCategory"],[44]],[20,[16,[15,"i"],"timingVar"],[44]]],[20,[16,[15,"i"],"timingValue"],[44]]],[46,[36]]],[3,"j","timing_complete"],["g",[15,"i"],"timingCategory",[15,"k"],"event_category"],["g",[15,"i"],"timingVar",[15,"k"],"name"],["g",[15,"i"],"timingValue",[15,"k"],"value"],["g",[15,"i"],"timingLabel",[15,"k"],"event_label"]]]]]]],[22,[21,[15,"j"],[44]],[46,[53,[52,"l",[8,"eventMetadata",[8,"event_usage",[7,7]],"eventId",[17,[15,"a"],"gtmEventId"],"noGtmEvent",true]],[65,"m",[15,"f"],[46,[22,[20,[2,[15,"m"],"indexOf",[7,"G-"]],0],[46,["d",[15,"m"],[15,"j"],[15,"k"],[15,"l"]]]]]]]]]]],[2,[15,"a"],"gtmOnSuccess",[7]]]
,[50,"__ogt_google_signals",[46,"a"],[52,"b",["require","internal.setProductSettingsParameter"]],[52,"c",["require","getContainerVersion"]],[52,"d",[30,[17,[15,"a"],"instanceDestinationId"],[17,["c"],"containerId"]]],["b",[15,"d"],"google_signals",[20,[17,[15,"a"],"googleSignals"],"ENABLED"]],["b",[15,"d"],"google_ng",[20,[17,[15,"a"],"googleSignals"],"NON_GAIA_REMARKETING"]],[2,[15,"a"],"gtmOnSuccess",[7]]]
,[50,"__ogt_referral_exclusion",[46,"a"],[52,"b",[15,"__module_convertDomainConditions"]],[52,"c",["require","internal.getDestinationIds"]],[52,"d",["require","internal.setRemoteConfigParameter"]],[52,"e",[13,[41,"$0"],[3,"$0",["require","internal.getFlags"]],["$0"]]],[22,[17,[15,"a"],"includeConditions"],[46,[53,[41,"f"],[3,"f",[30,["c"],[7]]],[65,"g",[15,"f"],[46,[53,[41,"h"],[3,"h",[17,[15,"a"],"includeConditions"]],[22,[17,[15,"h"],"length"],[46,[3,"h",[2,[15,"b"],"convertDomainConditions",[7,[15,"h"]]]],["d",[15,"g"],"referral_exclusion_definition",[8,"include_conditions",[15,"h"]]]]]]]]]]],[2,[15,"a"],"gtmOnSuccess",[7]]]
,[50,"__ogt_session_timeout",[46,"a"],[52,"b",["require","internal.getDestinationIds"]],[52,"c",["require","makeNumber"]],[52,"d",["require","internal.setRemoteConfigParameter"]],[41,"e"],[3,"e",[30,["b"],[7]]],[52,"f",[30,["c",[17,[15,"a"],"sessionHours"]],0]],[52,"g",[30,["c",[17,[15,"a"],"sessionMinutes"]],0]],[22,[30,[15,"f"],[15,"g"]],[46,[53,[52,"i",[0,[26,[15,"f"],60],[15,"g"]]],[65,"j",[15,"e"],[46,["d",[15,"j"],"session_duration",[15,"i"]]]]]]],[52,"h",[30,["c",[17,[15,"a"],"engagementSeconds"]],0]],[22,[15,"h"],[46,[53,[52,"i",[26,[15,"h"],1000]],[65,"j",[15,"e"],[46,["d",[15,"j"],"session_engaged_time",[15,"i"]]]]]]],[2,[15,"a"],"gtmOnSuccess",[7]]]
,[50,"__set_product_settings",[46,"a"],[2,[15,"a"],"gtmOnSuccess",[7]]]
,[52,"__module_convertDomainConditions",[13,[41,"$0"],[3,"$0",[51,"",[7],[50,"a",[46],[50,"e",[46,"g"],[36,[2,[15,"g"],"replace",[7,[15,"d"],"\\$&"]]]],[50,"f",[46,"g"],[52,"h",[7]],[53,[41,"i"],[3,"i",0],[63,[7,"i"],[23,[15,"i"],[17,[15,"g"],"length"]],[33,[15,"i"],[3,"i",[0,[15,"i"],1]]],[46,[53,[41,"j"],[22,[20,["c",[16,[15,"g"],[15,"i"]]],"object"],[46,[53,[52,"l",[16,[16,[15,"g"],[15,"i"]],"matchType"]],[52,"m",[16,[16,[15,"g"],[15,"i"]],"matchValue"]],[38,[15,"l"],[46,"BEGINS_WITH","ENDS_WITH","EQUALS","REGEX","CONTAINS"],[46,[5,[46,[3,"j",[0,"^",["e",[15,"m"]]]],[4]]],[5,[46,[3,"j",[0,["e",[15,"m"]],"$"]],[4]]],[5,[46,[3,"j",[0,[0,"^",["e",[15,"m"]]],"$"]],[4]]],[5,[46,[3,"j",[15,"m"]],[4]]],[5,[46]],[9,[46,[3,"j",["e",[15,"m"]]],[4]]]]]]],[46,[3,"j",[16,[15,"g"],[15,"i"]]]]],[41,"k"],[22,[15,"j"],[46,[3,"k",["b",[15,"j"]]]]],[22,[15,"k"],[46,[2,[15,"h"],"push",[7,[15,"k"]]]]]]]]],[36,[15,"h"]]],[52,"b",["require","internal.createRegex"]],[52,"c",["require","getType"]],[52,"d",["b","[.*+\\-?^${}()|[\\]\\\\]","g"]],[36,[8,"convertDomainConditions",[15,"f"]]]],[36,["a"]]]],["$0"]]]
,[52,"__module_activities",[13,[41,"$0"],[3,"$0",[51,"",[7],[50,"a",[46],[50,"b",[46,"c","d"],[36,[39,[15,"d"],["d",[15,"c"]],[15,"c"]]]],[36,[8,"withRequestContext",[15,"b"]]]],[36,["a"]]]],["$0"]]]
,[52,"__module_ccdGaRegionScopedSettings",[13,[41,"$0"],[3,"$0",[51,"",[7],[50,"a",[46],[50,"n",[46,"q","r","s"],[50,"x",[46,"z"],[52,"ba",[16,[15,"m"],[15,"z"]]],[22,[28,[15,"ba"]],[46,[36]]],[53,[41,"bb"],[3,"bb",0],[63,[7,"bb"],[23,[15,"bb"],[17,[15,"ba"],"length"]],[33,[15,"bb"],[3,"bb",[0,[15,"bb"],1]]],[46,[53,[52,"bc",[16,[15,"ba"],[15,"bb"]]],["u",[15,"t"],[17,[15,"bc"],"name"],[17,[15,"bc"],"value"]]]]]]],[50,"y",[46,"z"],[22,[30,[28,[15,"v"]],[21,[17,[15,"v"],"length"],2]],[46,[36,false]]],[41,"ba"],[3,"ba",[16,[15,"z"],[15,"w"]]],[22,[20,[15,"ba"],[44]],[46,[3,"ba",[16,[15,"z"],[15,"v"]]]]],[36,[28,[28,[15,"ba"]]]]],[22,[28,[15,"r"]],[46,[36]]],[52,"t",[30,[17,[15,"q"],"instanceDestinationId"],[17,["d"],"containerId"]]],[52,"u",["i",[15,"g"],[15,"s"]]],[52,"v",[13,[41,"$0"],[3,"$0",["i",[15,"e"],[15,"s"]]],["$0"]]],[52,"w",[13,[41,"$0"],[3,"$0",["i",[15,"f"],[15,"s"]]],["$0"]]],[53,[41,"z"],[3,"z",0],[63,[7,"z"],[23,[15,"z"],[17,[15,"r"],"length"]],[33,[15,"z"],[3,"z",[0,[15,"z"],1]]],[46,[53,[52,"ba",[16,[15,"r"],[15,"z"]]],[22,[30,[17,[15,"ba"],"disallowAllRegions"],["y",[17,[15,"ba"],"disallowedRegions"]]],[46,["x",[17,[15,"ba"],"redactFieldGroup"]]]]]]]]],[50,"o",[46,"q"],[52,"r",[8]],[22,[28,[15,"q"]],[46,[36,[15,"r"]]]],[52,"s",[2,[15,"q"],"split",[7,","]]],[53,[41,"t"],[3,"t",0],[63,[7,"t"],[23,[15,"t"],[17,[15,"s"],"length"]],[33,[15,"t"],[3,"t",[0,[15,"t"],1]]],[46,[53,[52,"u",[2,[16,[15,"s"],[15,"t"]],"trim",[7]]],[22,[28,[15,"u"]],[46,[6]]],[52,"v",[2,[15,"u"],"split",[7,"-"]]],[52,"w",[16,[15,"v"],0]],[52,"x",[39,[20,[17,[15,"v"],"length"],2],[15,"u"],[44]]],[22,[30,[28,[15,"w"]],[21,[17,[15,"w"],"length"],2]],[46,[6]]],[22,[1,[21,[15,"x"],[44]],[30,[23,[17,[15,"x"],"length"],4],[18,[17,[15,"x"],"length"],6]]],[46,[6]]],[43,[15,"r"],[15,"u"],true]]]]],[36,[15,"r"]]],[50,"p",[46,"q"],[22,[28,[17,[15,"q"],"settingsTable"]],[46,[36,[7]]]],[52,"r",[8]],[53,[41,"s"],[3,"s",0],[63,[7,"s"],[23,[15,"s"],[17,[17,[15,"q"],"settingsTable"],"length"]],[33,[15,"s"],[3,"s",[0,[15,"s"],1]]],[46,[53,[52,"t",[16,[17,[15,"q"],"settingsTable"],[15,"s"]]],[52,"u",[17,[15,"t"],"redactFieldGroup"]],[22,[28,[16,[15,"m"],[15,"u"]]],[46,[6]]],[43,[15,"r"],[15,"u"],[8,"redactFieldGroup",[15,"u"],"disallowAllRegions",false,"disallowedRegions",[8]]],[52,"v",[16,[15,"r"],[15,"u"]]],[22,[17,[15,"t"],"disallowAllRegions"],[46,[43,[15,"v"],"disallowAllRegions",true],[6]]],[43,[15,"v"],"disallowedRegions",["o",[17,[15,"t"],"disallowedRegions"]]]]]]],[36,[2,[15,"b"],"values",[7,[15,"r"]]]]],[52,"b",["require","Object"]],[52,"c",[13,[41,"$0"],[3,"$0",["require","internal.getFlags"]],["$0"]]],[52,"d",["require","getContainerVersion"]],[52,"e",["require","internal.getCountryCode"]],[52,"f",["require","internal.getRegionCode"]],[52,"g",["require","internal.setRemoteConfigParameter"]],[52,"h",[15,"__module_activities"]],[52,"i",[17,[15,"h"],"withRequestContext"]],[41,"j"],[41,"k"],[41,"l"],[52,"m",[8,"GOOGLE_SIGNALS",[7,[8,"name","allow_google_signals","value",false]],"DEVICE_AND_GEO",[7,[8,"name","geo_granularity","value",true],[8,"name","redact_device_info","value",true]]]],[36,[8,"applyRegionScopedSettings",[15,"n"],"extractRedactedLocations",[15,"p"]]]],[36,["a"]]]],["$0"]]]
]
,"entities":{
"__c":{"2":true,"4":true}
,
"__ccd_auto_redact":{"2":true,"4":true}
,
"__ccd_conversion_marking":{"2":true,"4":true}
,
"__ccd_ga_ads_link":{"2":true,"4":true}
,
"__ccd_ga_first":{"2":true,"4":true}
,
"__ccd_ga_last":{"2":true,"4":true}
,
"__ccd_ga_regscope":{"2":true,"4":true}
,
"__e":{"2":true,"4":true}
,
"__ogt_1p_data_v2":{"2":true}
,
"__ogt_ga_send":{"2":true}
,
"__ogt_google_signals":{"2":true,"4":true}
,
"__ogt_referral_exclusion":{"2":true}
,
"__ogt_session_timeout":{"2":true}
,
"__set_product_settings":{"2":true,"4":true}
}
,"blob":{"1":"2"}
,"permissions":{
"__c":{}
,
"__ccd_auto_redact":{}
,
"__ccd_conversion_marking":{}
,
"__ccd_ga_ads_link":{}
,
"__ccd_ga_first":{}
,
"__ccd_ga_last":{}
,
"__ccd_ga_regscope":{"read_container_data":{}}
,
"__e":{"read_event_data":{"eventDataAccess":"specific","keyPatterns":["event"]}}
,
"__ogt_1p_data_v2":{"detect_user_provided_data":{"limitDataSources":true,"allowAutoDataSources":true,"allowManualDataSources":false,"allowCodeDataSources":false}}
,
"__ogt_ga_send":{"access_globals":{"keys":[{"key":"ga.q","read":true,"write":true,"execute":true},{"key":"GoogleAnalyticsObject","read":true,"write":false,"execute":false}]},"read_container_data":{}}
,
"__ogt_google_signals":{"read_container_data":{}}
,
"__ogt_referral_exclusion":{}
,
"__ogt_session_timeout":{}
,
"__set_product_settings":{}
}
,"security_groups":{
"google":[
"__c"
,
"__ccd_auto_redact"
,
"__ccd_conversion_marking"
,
"__ccd_ga_ads_link"
,
"__ccd_ga_first"
,
"__ccd_ga_last"
,
"__ccd_ga_regscope"
,
"__e"
,
"__ogt_1p_data_v2"
,
"__ogt_ga_send"
,
"__ogt_google_signals"
,
"__ogt_referral_exclusion"
,
"__ogt_session_timeout"
,
"__set_product_settings"
]
}
};
var aa,ba=function(a){var b=0;return function(){return b>>0)+"_",d=0,e=function(f){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new b(c+(f||"")+"_"+d++,f)};return e});
var ja=function(a){return ha(a,a)},ha=function(a,b){a.raw=b;Object.freeze&&(Object.freeze(a),Object.freeze(b));return a},ka=function(a){var b=typeof Symbol!="undefined"&&Symbol.iterator&&a[Symbol.iterator];if(b)return b.call(a);if(typeof a.length=="number")return{next:ba(a)};throw Error(String(a)+" is not an iterable or ArrayLike");},ma=function(a){for(var b,c=[];!(b=a.next()).done;)c.push(b.value);return c},oa=function(a){return a instanceof Array?a:ma(ka(a))},pa=typeof Object.assign=="function"?
Object.assign:function(a,b){for(var c=1;c=b.length&&a.substring(0,b.length)===b}function Fb(a,b){return a.length>=b.length&&a.substring(a.length-b.length,a.length)===b}
function Gb(a,b){var c=z;b=b||[];for(var d=c,e=0;e=0)return}return d}function Hb(a,b){for(var c={},d=c,e=a.split("."),f=0;f"+a+" "),f=Pb();d=new ic(f?f.createHTML(e):e);if(c.nodeType===1&&/^(script|style)$/i.test(c.tagName))throw Error("");var g;if(d instanceof ic)g=d.j;else throw Error("");c.innerHTML=g;b=b.lastChild;for(var k=[];b&&b.firstChild;)k.push(b.removeChild(b.firstChild));return k}
function Gc(a,b,c){c=c||100;for(var d={},e=0;e>4);g!==64&&(c+=String.fromCharCode(f<<4&240|g>>2),k!==64&&(c+=String.fromCharCode(g<<6&192|k)))}};var eb={};function fb(a,b){eb[a]=eb[a]||[];eb[a][b]=!0}function gb(a){var b=eb[a];if(!b||b.length===0)return"";for(var c=[],d=0,e=0;e0&&(c.push(String.fromCharCode(d)),d=0),b[e]&&(d|=1<0&&c.push(String.fromCharCode(d));return cb(c.join("")).replace(/\.+$/,"")}function hb(){for(var a=[],b=eb.fdr||[],c=0;c0?a:void 0};var ib=[],jb={};function kb(a){return ib[a]===void 0?!1:ib[a]};function lb(){}function mb(a){return typeof a==="function"}function h(a){return typeof a==="string"}function nb(a){return typeof a==="number"&&!isNaN(a)}function ob(a){return Array.isArray(a)?a:[a]}function pb(a,b){if(a&&Array.isArray(a))for(var c=0;cb)a=0,b=2147483647;return Math.floor(Math.random()*(b-a+1)+a)}
function rb(a,b){for(var c=new sb,d=0;d=b.length&&a.substring(0,b.length)===b}function Fb(a,b){return a.length>=b.length&&a.substring(a.length-b.length,a.length)===b}
function Gb(a,b){var c=z;b=b||[];for(var d=c,e=0;e=0)return}return d}function Hb(a,b){for(var c={},d=c,e=a.split("."),f=0;f"+a+" "),f=Pb();d=new ic(f?f.createHTML(e):e);if(c.nodeType===1&&/^(script|style)$/i.test(c.tagName))throw Error("");var g;if(d instanceof ic)g=d.j;else throw Error("");c.innerHTML=g;b=b.lastChild;for(var k=[];b&&b.firstChild;)k.push(b.removeChild(b.firstChild));return k}
function Gc(a,b,c){c=c||100;for(var d={},e=0;e-1}function Tc(a,b){var c=String(this.evaluate(a)),d=String(this.evaluate(b));return c.substring(0,d.length)===d}
function Uc(a,b){a=this.evaluate(a);b=this.evaluate(b);switch(a){case "pageLocation":var c=z.location.href;b instanceof Xa&&b.get("stripProtocol")&&(c=c.replace(/^https?:\/\//,""));return c}};var Vc=function(a,b){Ka.call(this);this.Lj=a;this.hh=b};wa(Vc,Ka);aa=Vc.prototype;aa.toString=function(){return this.Lj};aa.getName=function(){return this.Lj};aa.Mb=function(){return new Va(La(this,1))};aa.invoke=function(a){return this.hh.apply(new Wc(this,a),Array.prototype.slice.call(arguments,1))};aa.eb=function(a){try{return this.invoke.apply(this,Array.prototype.slice.call(arguments,0))}catch(b){}};var Wc=function(a,b){this.hh=a;this.D=b};
Wc.prototype.evaluate=function(a){var b=this.D;return Array.isArray(a)?Ia(b,a):a};Wc.prototype.getName=function(){return this.hh.getName()};Wc.prototype.od=function(){return this.D.od()};var Xc=function(){this.map=new Map};Xc.prototype.set=function(a,b){this.map.set(a,b)};Xc.prototype.get=function(a){return this.map.get(a)};var Yc=function(){this.keys=[];this.values=[]};Yc.prototype.set=function(a,b){this.keys.push(a);this.values.push(b)};Yc.prototype.get=function(a){var b=this.keys.indexOf(a);if(b>-1)return this.values[b]};function Zc(){try{return Map?new Xc:new Yc}catch(a){return new Yc}};var $c=function(a){if(a instanceof $c)return a;if(Ta(a))throw Error("Type of given value has an equivalent Pixie type.");this.value=a};$c.prototype.getValue=function(){return this.value};$c.prototype.toString=function(){return String(this.value)};var bd=function(a){Ka.call(this);this.promise=a;this.set("then",ad(this));this.set("catch",ad(this,!0));this.set("finally",ad(this,!1,!0))};wa(bd,Xa);var ad=function(a,b,c){b=b===void 0?!1:b;c=c===void 0?!1:c;return new Vc("",function(d,e){b&&(e=d,d=void 0);c&&(e=d);d instanceof Vc||(d=void 0);e instanceof Vc||(e=void 0);var f=Ga(this.D),g=function(m){return function(n){return c?(m.invoke(f),a.promise):m.invoke(f,n)}},k=a.promise.then(d&&g(d),e&&g(e));return new bd(k)})};function G(a,b,c){var d=Zc(),e=function(g,k){for(var m=La(g,1),n=0;n=0;f--)if(this.has(f)&&this.get(f)===b)return f;return-1},map:function(a,b){for(var c=this.length(),d=[],e=0;ed)throw Error("TypeError: ReduceRight on List with no elements.");}for(var k=f;k>=0;k--)this.has(k)&&(e=b.invoke(a,e,this.get(k),k,this));return e},reverse:function(){for(var a=Wa(this),b=a.length-1,c=0;b>=0;b--,c++)a.hasOwnProperty(b)?this.set(c,a[b]):this.remove(c);return this},shift:function(){return this.shift()},slice:function(a,b,c){var d=this.length();b===void 0&&(b=0);b=b<0?Math.max(d+b,0):Math.min(b,d);c=c===void 0?
d:c<0?Math.max(d+c,0):Math.min(c,d);c=Math.max(b,c);for(var e=[],f=b;f=0){var t=Wa(c);t.unshift(this.D);return ed[b].apply(a,t)}}if(a instanceof Vc||a instanceof Xa){if(a.has(b)){var u=a.get(b);if(u instanceof Vc){var v=Wa(c);v.unshift(this.D);return u.invoke.apply(u,v)}var w="TypeError: "+b+" is not a function";if(dd())throw new fd(w);throw Error(w);}if(b==="toString")return a instanceof Vc?a.getName():a.toString();if(b==="hasOwnProperty")return a.has.apply(a,
Wa(c))}if(a instanceof $c&&b==="toString")return a.toString();var x="TypeError: Object has no '"+b+"' property.";if(dd())throw new fd(x);throw Error(x);}function md(a,b){a=this.evaluate(a);if(typeof a!=="string")throw Error("Invalid key name given for assignment.");var c=this.D;if(!c.has(a))throw Error("Attempting to assign to undefined value "+b);var d=this.evaluate(b);c.set(a,d);return d}function nd(){var a=Ga(this.D),b=Ha(a,Array.prototype.slice.apply(arguments));if(b instanceof Aa)return b}
function od(){return hd}function pd(a){for(var b=this.evaluate(a),c=0;cthis.evaluate(b)}function Od(a,b){return this.evaluate(a)>=this.evaluate(b)}
function Pd(a,b){a=this.evaluate(a);b=this.evaluate(b);a instanceof $c&&(a=a.getValue());b instanceof $c&&(b=b.getValue());return a===b}function Qd(a,b){return!Pd.call(this,a,b)}function Rd(a,b,c){var d=[];this.evaluate(a)?d=this.evaluate(b):c&&(d=this.evaluate(c));var e=Ha(this.D,d);if(e instanceof Aa)return e}var Ld=!1;
function Sd(a,b){return this.evaluate(a)>Number(this.evaluate(b))}
function qe(a,b){return Number(this.evaluate(a))>>>Number(this.evaluate(b))}function re(a,b){return Number(this.evaluate(a))&Number(this.evaluate(b))}function se(a,b){return Number(this.evaluate(a))^Number(this.evaluate(b))}function te(a,b){return Number(this.evaluate(a))|Number(this.evaluate(b))}function ue(){}
function ve(a,b,c,d,e){var f=!0;try{var g=this.evaluate(c);if(g instanceof Aa)return g}catch(r){if(!(r instanceof fd&&a))throw f=r instanceof fd,r;var k=Ga(this.D),m=new $c(r);k.add(b,m);var n=this.evaluate(d),p=Ha(k,n);if(p instanceof Aa)return p}finally{if(f&&e!==void 0){var q=this.evaluate(e);if(q instanceof Aa)return q}}};var xe=function(){this.j=new Ja;we(this)};xe.prototype.execute=function(a){return this.j.Ih(a)};var we=function(a){var b=function(c,d){var e=new Vc(String(c),d);e.Ja();a.j.j.set(String(c),e)};b("map",Vd);b("and",Pc);b("contains",Sc);b("equals",Qc);b("or",Rc);b("startsWith",Tc);b("variable",Uc)};var ze=function(){this.C=!1;this.j=new Ja;ye(this);this.C=!0};ze.prototype.execute=function(a){return Ae(this.j.Ih(a))};var Be=function(a,b,c){return Ae(a.j.Ik(b,c))};ze.prototype.Ja=function(){this.j.Ja()};
var ye=function(a){var b=function(c,d){var e=String(c),f=new Vc(e,d);f.Ja();a.j.j.set(e,f)};b(0,jd);b(1,kd);b(2,ld);b(3,md);b(56,re);b(57,oe);b(58,ne);b(59,te);b(60,pe);b(61,qe);b(62,se);b(53,nd);b(4,od);b(5,pd);b(52,qd);b(6,rd);b(49,ud);b(7,Ud);b(8,Vd);b(9,pd);b(50,vd);b(10,wd);b(12,xd);b(13,yd);b(51,Jd);b(47,Bd);b(54,Cd);b(55,Dd);b(63,Id);b(64,Ed);b(65,Gd);b(66,Hd);b(15,Kd);b(16,Md);b(17,Md);b(18,Nd);b(19,Od);b(20,Pd);b(21,Qd);b(22,Rd);b(23,Sd);b(24,Td);b(25,Wd);b(26,Xd);b(27,Yd);b(28,Zd);b(29,
$d);b(45,ae);b(30,be);b(32,ce);b(33,ce);b(34,de);b(35,de);b(46,ee);b(36,fe);b(43,ge);b(37,he);b(38,ie);b(39,je);b(67,ve);b(40,ke);b(44,ue);b(41,le);b(42,me)};ze.prototype.od=function(){return this.j.od()};function Ae(a){if(a instanceof Aa||a instanceof Vc||a instanceof Va||a instanceof Xa||a instanceof $c||a===null||a===void 0||typeof a==="string"||typeof a==="number"||typeof a==="boolean")return a};var Ce=function(a){this.message=a};function De(a){var b="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_"[a];return b===void 0?new Ce("Value "+a+" can not be encoded in web-safe base64 dictionary."):b};function Ee(a){switch(a){case 1:return"1";case 2:case 4:return"0";default:return"-"}};var Fe=/^[1-9a-zA-Z_-][1-9a-c][1-9a-v]\d$/;function Ge(a,b){for(var c="",d=!0;a>7;){var e=a&31;a>>=5;d?d=!1:e|=32;c=""+De(e)+c}a<<=2;d||(a|=32);return c=""+De(a|b)+c};var He=function(){function a(b){return{toString:function(){return b}}}return{kk:a("consent"),Th:a("convert_case_to"),Uh:a("convert_false_to"),Vh:a("convert_null_to"),Wh:a("convert_true_to"),Xh:a("convert_undefined_to"),fn:a("debug_mode_metadata"),la:a("function"),Mg:a("instance_name"),Lk:a("live_only"),Mk:a("malware_disabled"),METADATA:a("metadata"),Pk:a("original_activity_id"),pn:a("original_vendor_template_id"),on:a("once_on_load"),Ok:a("once_per_event"),gj:a("once_per_load"),rn:a("priority_override"),
sn:a("respected_consent_types"),pj:a("setup_tags"),qe:a("tag_id"),uj:a("teardown_tags")}}();var ef;var ff=[],gf=[],hf=[],jf=[],kf=[],lf={},mf,nf;function of(a){nf=nf||a}
function pf(a){}var qf,rf=[],sf=[];function tf(a,b){var c={};c[He.la]="__"+a;for(var d in b)b.hasOwnProperty(d)&&(c["vtp_"+d]=b[d]);return c}
function uf(a,b,c){try{return mf(vf(a,b,c))}catch(d){JSON.stringify(a)}return 2}function wf(a){var b=a[He.la];if(!b)throw Error("Error: No function name given for function call.");return!!lf[b]}
var vf=function(a,b,c){c=c||[];var d={},e;for(e in a)a.hasOwnProperty(e)&&(d[e]=xf(a[e],b,c));return d},xf=function(a,b,c){if(Array.isArray(a)){var d;switch(a[0]){case "function_id":return a[1];case "list":d=[];for(var e=1;e0;case 3:return!d(c[0]);
case 4:return lg(d(c[0]),d(c[1]),!1);case 5:return ng(d(c[0]),d(c[1]));case 6:return sg(d(c[0]),d(c[1]));case 7:return jg(d(c[0]),d(c[1]));case 8:return mg(d(c[0]),d(c[1]));case 9:return rg(d(c[0]),d(c[1]));case 10:return pg(d(c[0]),d(c[1]));case 11:return qg(d(c[0]),d(c[1]));case 12:return og(d(c[0]),d(c[1]));default:throw Error('Invalid boolean expression format. Expected "type" property tobe a positive integer which is less than 13.');}};function Sg(a){J(this.getName(),["message:?string"],arguments);};function Tg(a,b){J(this.getName(),["min:!number","max:!number"],arguments);return qb(a,b)};function Ug(){return(new Date).getTime()};function Vg(a){if(a===null)return"null";if(a instanceof Va)return"array";if(a instanceof Vc)return"function";if(a instanceof $c){var b;a=(b=a)==null?void 0:b.getValue();var c;if(((c=a)==null?void 0:c.constructor)===void 0||a.constructor.name===void 0){var d=String(a);return d.substring(8,d.length-1)}return String(a.constructor.name)}return typeof a};function Wg(a){function b(c){return function(d){try{return c(d)}catch(e){(Sf||Tf.bk)&&a.call(this,e.message)}}}return{parse:b(function(c){return cd(JSON.parse(c))}),stringify:b(function(c){return JSON.stringify(G(c))})}};function Xg(a){return ub(G(a,this.D))};function Yg(a){return Number(G(a,this.D))};function Zg(a){return a===null?"null":a===void 0?"undefined":a.toString()};function $g(a,b,c){var d=null,e=!1;return e?d:null};var Jg="floor ceil round max min abs pow sqrt".split(" ");function ah(){var a={};return{Dl:function(b){return a.hasOwnProperty(b)?a[b]:void 0},Xj:function(b,c){a[b]=c},reset:function(){a={}}}}function bh(a,b){return function(){var c=Array.prototype.slice.call(ya.apply(0,arguments),0);c.unshift(b);return Vc.prototype.invoke.apply(a,c)}}
function ch(a,b){J(this.getName(),["apiName:!string","mock:?*"],arguments);}
function dh(a,b){J(this.getName(),["apiName:!string","mock:!PixieMap"],arguments);};var eh={};var fh=function(a){var b=new Xa;if(a instanceof Va)for(var c=a.Mb(),d=0;d>6,128|d&63):d<55296||d>=57344?b.push(224|d>>12,128|d>>6&63,128|d&63):(d=65536+((d&1023)<<10|a.charCodeAt(++c)&1023),b.push(240|d>>18,128|d>>12&63,128|d>>6&63,128|d&63))}return new Uint8Array(b)}}
function qh(a){if(a===""||a==="e0")return Promise.resolve(a);var b;if((b=z.crypto)==null?0:b.subtle){if(oh.test(a))return Promise.resolve(a);try{var c=ph(a);return z.crypto.subtle.digest("SHA-256",c).then(function(d){var e=Array.from(new Uint8Array(d)).map(function(f){return String.fromCharCode(f)}).join("");return z.btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}).catch(function(){return"e2"})}catch(d){return Promise.resolve("e2")}}else return Promise.resolve("e1")};function M(a){fb("GTM",a)};
var uh=function(a){var b={},c=["tv.1"],d=0;var u=c.join("~");return{Kh:{userData:b},
Qm:u,Ym:d}},wh=function(a){if(z.Promise)try{return new Promise(function(b){vh(a,function(c,d){b({zh:c,Se:d})})})}catch(b){}},xh=function(a){for(var b=["tv.1"],c=0,d=0;d0;case 3:return!d(c[0]);
case 4:return lg(d(c[0]),d(c[1]),!1);case 5:return ng(d(c[0]),d(c[1]));case 6:return sg(d(c[0]),d(c[1]));case 7:return jg(d(c[0]),d(c[1]));case 8:return mg(d(c[0]),d(c[1]));case 9:return rg(d(c[0]),d(c[1]));case 10:return pg(d(c[0]),d(c[1]));case 11:return qg(d(c[0]),d(c[1]));case 12:return og(d(c[0]),d(c[1]));default:throw Error('Invalid boolean expression format. Expected "type" property tobe a positive integer which is less than 13.');}};function Sg(a){J(this.getName(),["message:?string"],arguments);};function Tg(a,b){J(this.getName(),["min:!number","max:!number"],arguments);return qb(a,b)};function Ug(){return(new Date).getTime()};function Vg(a){if(a===null)return"null";if(a instanceof Va)return"array";if(a instanceof Vc)return"function";if(a instanceof $c){var b;a=(b=a)==null?void 0:b.getValue();var c;if(((c=a)==null?void 0:c.constructor)===void 0||a.constructor.name===void 0){var d=String(a);return d.substring(8,d.length-1)}return String(a.constructor.name)}return typeof a};function Wg(a){function b(c){return function(d){try{return c(d)}catch(e){(Sf||Tf.bk)&&a.call(this,e.message)}}}return{parse:b(function(c){return cd(JSON.parse(c))}),stringify:b(function(c){return JSON.stringify(G(c))})}};function Xg(a){return ub(G(a,this.D))};function Yg(a){return Number(G(a,this.D))};function Zg(a){return a===null?"null":a===void 0?"undefined":a.toString()};function $g(a,b,c){var d=null,e=!1;return e?d:null};var Jg="floor ceil round max min abs pow sqrt".split(" ");function ah(){var a={};return{Dl:function(b){return a.hasOwnProperty(b)?a[b]:void 0},Xj:function(b,c){a[b]=c},reset:function(){a={}}}}function bh(a,b){return function(){var c=Array.prototype.slice.call(ya.apply(0,arguments),0);c.unshift(b);return Vc.prototype.invoke.apply(a,c)}}
function ch(a,b){J(this.getName(),["apiName:!string","mock:?*"],arguments);}
function dh(a,b){J(this.getName(),["apiName:!string","mock:!PixieMap"],arguments);};var eh={};var fh=function(a){var b=new Xa;if(a instanceof Va)for(var c=a.Mb(),d=0;d>6,128|d&63):d<55296||d>=57344?b.push(224|d>>12,128|d>>6&63,128|d&63):(d=65536+((d&1023)<<10|a.charCodeAt(++c)&1023),b.push(240|d>>18,128|d>>12&63,128|d>>6&63,128|d&63))}return new Uint8Array(b)}}
function qh(a){if(a===""||a==="e0")return Promise.resolve(a);var b;if((b=z.crypto)==null?0:b.subtle){if(oh.test(a))return Promise.resolve(a);try{var c=ph(a);return z.crypto.subtle.digest("SHA-256",c).then(function(d){var e=Array.from(new Uint8Array(d)).map(function(f){return String.fromCharCode(f)}).join("");return z.btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}).catch(function(){return"e2"})}catch(d){return Promise.resolve("e2")}}else return Promise.resolve("e1")};function M(a){fb("GTM",a)};
var uh=function(a){var b={},c=["tv.1"],d=0;var uze((Vh[Q.g.Vf]=1,Vh[Q.g.Wf]=1,Vh[Q.g.ic]=1,Vh[Q.g.jc]=1,Vh[Q.g.Xf]=1,Vh[Q.g.Qb]=1,Vh[Q.g.kc]=1,Vh[Q.g.hb]=1,Vh[Q.g.Cb]=1,Vh[Q.g.ib]=1,Vh[Q.g.Ga]=1,Vh[Q.g.mc]=1,Vh[Q.g.Ka]=1,Vh[Q.g.Yf]=1,Vh)),Xh=Object.freeze([Q.g.ja,Q.g.Dd,Q.g.kb,Q.g.oc,Q.g.sc,Q.g.Yc,Q.g.Ha,Q.g.Xb]),Yh=Object.freeze([].concat(oa(Xh))),Zh=Object.freeze([Q.g.La,
Q.g.Rd,Q.g.gd,Q.g.qf,Q.g.Md]),$h=Object.freeze([].concat(oa(Zh))),ai={},bi=(ai[Q.g.O]="1",ai[Q.g.T]="2",ai[Q.g.N]="3",ai[Q.g.sa]="4",ai),ci={},di=Object.freeze((ci[Q.g.ja]=1,ci[Q.g.Dd]=1,ci[Q.g.Ed]=1,ci[Q.g.za]=1,ci[Q.g.Sb]=1,ci[Q.g.cf]=1,ci[Q.g.Fd]=1,ci[Q.g.Gd]=1,ci[Q.g.Hd]=1,ci[Q.g.ba]=1,ci[Q.g.Id]=1,ci[Q.g.Wa]=1,ci[Q.g.na]=1,ci[Q.g.Ua]=1,ci[Q.g.La]=1,ci[Q.g.Xa]=1,ci[Q.g.Ma]=1,ci[Q.g.wa]=1,ci[Q.g.Jd]=1,ci[Q.g.ia]=1,ci[Q.g.yi]=1,ci[Q.g.Od]=1,ci[Q.g.Pd]=1,ci[Q.g.kf]=1,ci[Q.g.sc]=1,ci[Q.g.Ub]=1,ci[Q.g.Hb]=
1,ci[Q.g.Na]=1,ci[Q.g.bd]=1,ci[Q.g.qa]=1,ci[Q.g.Aa]=1,ci[Q.g.yg]=1,ci[Q.g.zg]=1,ci[Q.g.Ag]=1,ci[Q.g.Bg]=1,ci[Q.g.Vb]=1,ci[Q.g.Ha]=1,ci[Q.g.Wb]=1,ci[Q.g.fd]=1,ci[Q.g.hd]=1,ci[Q.g.xa]=1,ci[Q.g.Kb]=1,ci[Q.g.Xb]=1,ci[Q.g.Va]=1,ci[Q.g.Ba]=1,ci[Q.g.ya]=1,ci[Q.g.ka]=1,ci)),ei={},fi=Object.freeze((ei.search="s",ei.youtube="y",ei.playstore="p",ei.shopping="h",ei.ads="a",ei.maps="m",ei));Object.freeze(Q.g);var gi={},hi=z.google_tag_manager=z.google_tag_manager||{};gi.Og="49j0";gi.ne=Number("0")||0;gi.fb="dataLayer";gi.dn="ChAI8MbJtwYQnKbYx/6L/9t8EiUAShCEZ4bR/MpMf9iMiZO4HoEkGBiu1bHNoc/3bR93JOZnOyAzGgLAgQ\x3d\x3d";var ii={__cl:1,__ecl:1,__ehl:1,__evl:1,__fal:1,__fil:1,__fsl:1,__hl:1,__jel:1,__lcl:1,__sdl:1,__tl:1,__ytl:1},ji={__paused:1,__tg:1},ki;for(ki in ii)ii.hasOwnProperty(ki)&&(ji[ki]=1);var li=vb("true"),mi=!0,ni,oi=!1;oi=!0;
ni=oi;var pi,qi=!1;pi=qi;var ri,si=!1;ri=si;gi.Bd="www.googletagmanager.com";var ti=""+gi.Bd+(ni?"/gtag/js":"/gtm.js"),ui=null,vi=null,wi={},xi={};function yi(){var a=hi.sequence||1;hi.sequence=a+1;return a}gi.lk="";var zi="";gi.Pg=zi;var Ai=new function(){this.j="";this.F=!1;this.C=0;this.P=this.X=this.Oa=this.K=""};function Bi(){var a=Ai.K.length;return Ai.K[a-1]==="/"?Ai.K.substring(0,a-1):Ai.K}function Ci(){return Ai.F&&Ai.C!==1}function Di(a){for(var b={},c=ka(a.split("|")),d=c.next();!d.done;d=c.next())b[d.value]=!0;return b}var Ei=new sb,Fi={},Gi={},Ji={name:gi.fb,set:function(a,b){Ra(Hb(a,b),Fi);Hi()},get:function(a){return Ii(a,2)},reset:function(){Ei=new sb;Fi={};Hi()}};function Ii(a,b){return b!=2?Ei.get(a):Ki(a)}function Ki(a,b){var c=a.split(".");b=b||[];for(var d=Fi,e=0;e0){g=[];for(var t=0;t=0&&(m[m.length-1]="");f=m.join("/");break;case "query":f=a.search.replace("?","");e&&(f=Ti(f,e,!1));break;case "extension":var n=a.pathname.split(".");f=n.length>1?n[n.length-1]:"";f=f.split("/")[0];break;case "fragment":f=a.hash.replace("#","");break;default:f=a&&a.href}return f}function Vi(a){return a?a.replace(":","").toLowerCase():""}function Xi(a){var b="";if(a&&a.href){var c=a.href.indexOf("#");b=c<0?a.href:a.href.substring(0,c)}return b}var Yi={},Zi=0;
function $i(a){var b=Yi[a];if(!b){var c=D.createElement("a");a&&(c.href=a);var d=c.pathname;d[0]!=="/"&&(a||fb("TAGGING",1),d="/"+d);var e=c.hostname.replace(Ri,"");b={href:c.href,protocol:c.protocol,host:c.host,hostname:e,pathname:d,search:c.search,hash:c.hash,port:c.port};Zi<5&&(Yi[a]=b,Zi++)}return b}
function aj(a){function b(n){var p=n.split("=")[0];return d.indexOf(p)<0?n:p+"=0"}function c(n){return n.split("&").map(b).filter(function(p){return p!==void 0}).join("&")}var d="gclid dclid gbraid wbraid gclaw gcldc gclha gclgf gclgb _gl".split(" "),e=$i(a),f=a.split(/[?#]/)[0],g=e.search,k=e.hash;g[0]==="?"&&(g=g.substring(1));k[0]==="#"&&(k=k.substring(1));g=c(g);k=c(k);g!==""&&(g="?"+g);k!==""&&(k="#"+k);var m=""+f+g+k;m[m.length-1]==="/"&&(m=m.substring(0,m.length-1));return m}
function bj(a){var b=$i(z.location.href),c=Ui(b,"host",!1);if(c&&c.match(Si)){var d=Ui(b,"path");if(d){var e=d.split(a+"=");if(e.length>1)return e[1].split(";")[0].split("?")[0]}}}function cj(a){for(var b=0;b<3;++b)try{var c=decodeURIComponent(a).replace(/\+/g," ");if(c===a)break;a=c}catch(d){return""}return a};var dj={"https://www.google.com":"/g","https://www.googleadservices.com":"/as","https://pagead2.googlesyndication.com":"/gs"};function ej(a,b){if(a){var c=""+a;c.indexOf("http://")!==0&&c.indexOf("https://")!==0&&(c="https://"+c);c[c.length-1]==="/"&&(c=c.substring(0,c.length-1));return $i(""+c+b).href}}function fj(a,b){if(Ci()||pi)return ej(a,b)}function gj(){return!!gi.Pg&&gi.Pg.split("@@").join("")!=="SGTM_TOKEN"}
function hj(a){for(var b=ka([Q.g.fd,Q.g.Kb]),c=b.next();!c.done;c=b.next()){var d=T(a,c.value);if(d)return d}}function ij(a,b){return Ci()?""+Bi()+(b?dj[a]||"":""):a};function jj(a){var b=String(a[He.la]||"").replace(/_/g,"");return Eb(b,"cvt")?"cvt":b}var kj=z.location.search.indexOf("?gtm_latency=")>=0||z.location.search.indexOf(">m_latency=")>=0;var lj={sampleRate:"0.005000",hk:"",Zm:"0.01"},mj=Math.random(),nj;if(!(nj=kj)){var oj=lj.sampleRate;nj=mj=1-Number(lj.Zm);var rj=/gtag[.\/]js/,sj=/gtm[.\/]js/,tj=!1;function uj(a){if(tj)return"1";var b=a.scriptSource;if(b){if(rj.test(b))return"3";if(sj.test(b))return"2"}return"0"}function vj(a,b){var c=wj();c.pending||(c.pending=[]);pb(c.pending,function(d){return d.target.ctid===a.ctid&&d.target.isDestination===a.isDestination})||c.pending.push({target:a,onLoad:b})}
var xj=function(){this.container={};this.destination={};this.canonical={};this.pending=[];this.siloed=[];this.injectedFirstPartyContainers={};var a;var b=z.google_tags_first_party||[];if(Array.isArray(b)){for(var c={},d=ka(b),e=d.next();!e.done;e=d.next())c[e.value]=!0;a=Object.freeze(c)}else a={};this.injectedFirstPartyContainers=a};function wj(){var a=rc("google_tag_data",{}),b=a.tidr;b||(b=new xj,a.tidr=b);return b};var yj={},zj=!1,Nf={ctid:"G-WP2Y5CS0D6",canonicalContainerId:"132128926",Nj:"G-WP2Y5CS0D6|GT-MRL3MCT",Oj:"G-WP2Y5CS0D6"};yj.je=vb("");function Aj(){var a=Bj();return zj?a.map(Cj):a}function Dj(){var a=Ej();return zj?a.map(Cj):a}function Fj(){return Gj(Nf.ctid)}function Hj(){return Gj(Nf.canonicalContainerId||"_"+Nf.ctid)}function Bj(){return Nf.Nj?Nf.Nj.split("|"):[Nf.ctid]}function Ej(){return Nf.Oj?Nf.Oj.split("|"):[]}
function Ij(){var a=Jj(Nj()),b=a&&a.parent;if(b)return Jj(b)}function Jj(a){var b=wj();return a.isDestination?b.destination[a.ctid]:b.container[a.ctid]}function Gj(a){return zj?Cj(a):a}function Cj(a){return"siloed_"+a}function Oj(a){return zj?Pj(a):a}function Pj(a){a=String(a);return Eb(a,"siloed_")?a.substring(7):a}
function Qj(){var a=!1;if(a){var b=wj();if(b.siloed){for(var c=[],d=Bj().map(Cj),e=Ej().map(Cj),f={},g=0;g=0){var t;b:{if(q.scriptSource){for(var u=Ai.F,v=$i(q.scriptSource),w=u?v.pathname:""+v.hostname+v.pathname,x=D.scripts,y="",A=0;A=0){t=String(A);break b}y=String(A)}}if(y){t=y;break b}}t=void 0}var C=t;if(C){tj=!0;r=C;break a}}var H=[].slice.call(document.scripts);r=q.scriptElement?String(H.indexOf(q.scriptElement)):"-1"}q.htmlLoadOrder=r;q.loadScriptType=uj(q)}var I=p?e.destination:e.container,F=I[n];F?(p&&F.state===0&&M(93),Object.assign(F,q)):I[n]=q},e=wj(),f=ka(b),g=f.next();!g.done;g=f.next())d(g.value,!1);for(var k=ka(c),
m=k.next();!m.done;m=k.next())d(m.value,!0);e.canonical[Hj()]={};Rj()}function Tj(a){return!!wj().container[a]}function Uj(a){var b=wj().destination[a];return!!b&&!!b.state}function Nj(){return{ctid:Fj(),isDestination:yj.je}}function Vj(a){var b=wj();(b.siloed=b.siloed||[]).push(a)}function Wj(){var a=wj().container,b;for(b in a)if(a.hasOwnProperty(b)&&a[b].state===1)return!0;return!1}function Xj(){var a={};l(wj().destination,function(b,c){c.state===0&&(a[Pj(b)]=c)});return a}
function Yj(a){return!!(a&&a.parent&&a.context&&a.context.source===1&&a.parent.ctid.indexOf("GTM-")!==0)}var Zj="/td?id="+Nf.ctid,ak=["v","t","pid","dl","tdp"],bk=["mcc"],ck={},dk={};function ek(a,b,c){dk[a]=b;(c===void 0||c)&&fk(a)}function fk(a,b){if(ck[a]===void 0||(b===void 0?0:b))ck[a]=!0}function gk(a){a=a===void 0?!1:a;var b=Object.keys(ck).filter(function(c){return ck[c]===!0&&dk[c]!==void 0&&(a||!bk.includes(c))}).map(function(c){var d=dk[c];typeof d==="function"&&(d=d());return d?"&"+c+"="+d:""}).join("");return""+ij("https://www.googletagmanager.com")+Zj+(""+b+"&z=0")}
function hk(){Object.keys(ck).forEach(function(a){ak.indexOf(a)<0&&(ck[a]=!1)})}function ik(a){a=a===void 0?!1:a;if(qj&&Nf.ctid){var b=gk(a);a?Kc(b):zc(b);hk()}}function jk(){Object.keys(ck).filter(function(a){return ck[a]&&!ak.includes(a)}).length>0&&ik(!0)}var kk=qb();function lk(){kk=qb()}function mk(){ek("v","3");ek("t","t");ek("pid",function(){return String(kk)});Bc(z,"pagehide",jk);z.setInterval(lk,864E5)}function nk(){var a=rc("google_tag_data",{});return a.ics=a.ics||new ok}var ok=function(){this.entries={};this.waitPeriodTimedOut=this.wasSetLate=this.accessedAny=this.accessedDefault=this.usedImplicit=this.usedUpdate=this.usedDefault=this.usedDeclare=this.active=!1;this.j=[]};
ok.prototype.default=function(a,b,c,d,e,f,g){this.usedDefault||this.usedDeclare||!this.accessedDefault&&!this.accessedAny||(this.wasSetLate=!0);this.usedDefault=this.active=!0;fb("TAGGING",19);b==null?fb("TAGGING",18):pk(this,a,b==="granted",c,d,e,f,g)};ok.prototype.waitForUpdate=function(a,b,c){for(var d=0;d0&&n.update===void 0),t={region:q,declare_region:n.declare_region,implicit:n.implicit,default:c!==void 0?c:n.default,declare:n.declare,update:n.update,quiet:r};if(e!==""||n.default!==!1)m[b]=t;r&&z.setTimeout(function(){m[b]===t&&t.quiet&&(fb("TAGGING",2),a.waitPeriodTimedOut=!0,a.clearTimeout(b,void 0,k),
a.notifyListeners())},g)}};aa=ok.prototype;aa.clearTimeout=function(a,b,c){var d=[a],e=c.delegatedConsentTypes,f;for(f in e)e.hasOwnProperty(f)&&e[f]===a&&d.push(f);var g=this.entries[a]||{},k=this.getConsentState(a,c);if(g.quiet){g.quiet=!1;for(var m=ka(d),n=m.next();!n.done;n=m.next())qk(this,n.value)}else if(b!==void 0&&k!==b)for(var p=ka(d),q=p.next();!q.done;q=p.next())qk(this,q.value)};
aa.update=function(a,b,c){this.usedDefault||this.usedDeclare||this.usedUpdate||!this.accessedAny||(this.wasSetLate=!0);this.usedUpdate=this.active=!0;if(b!=null){var d=this.getConsentState(a,c),e=this.entries;(e[a]=e[a]||{}).update=b==="granted";this.clearTimeout(a,d,c)}};
aa.declare=function(a,b,c,d,e){this.usedDeclare=this.active=!0;var f=this.entries,g=f[a]||{},k=g.declare_region,m=c&&h(c)?c.toUpperCase():void 0;d=d.toUpperCase();e=e.toUpperCase();if(d===""||m===e||(m===d?k!==e:!m&&!k)){var n={region:g.region,declare_region:m,declare:b==="granted",implicit:g.implicit,default:g.default,update:g.update,quiet:g.quiet};if(d!==""||g.declare!==!1)f[a]=n}};
aa.implicit=function(a,b){this.usedImplicit=!0;var c=this.entries,d=c[a]=c[a]||{};d.implicit!==!1&&(d.implicit=b==="granted")};
aa.getConsentState=function(a,b){var c=this.entries,d=c[a]||{},e=d.update;if(e!==void 0)return e?1:2;if(kb(8)&&b.usedContainerScopedDefaults){var f=b.containerScopedDefaults[a];if(f===3)return 1;if(f===2)return 2}else if(e=d.default,e!==void 0)return e?1:2;if(b==null?0:b.delegatedConsentTypes.hasOwnProperty(a)){var g=b.delegatedConsentTypes[a],k=c[g]||{};e=k.update;if(e!==void 0)return e?1:2;if(kb(8)&&b.usedContainerScopedDefaults){var m=b.containerScopedDefaults[g];if(m===3)return 1;if(m===2)return 2}else if(e=
k.default,e!==void 0)return e?1:2}e=d.declare;if(e!==void 0)return e?1:2;e=d.implicit;return e!==void 0?e?3:4:0};aa.addListener=function(a,b){this.j.push({consentTypes:a,yl:b})};var qk=function(a,b){for(var c=0;c=e.length?m(n):z.setTimeout(function(){m(c())},500)}}))};var Ek=["ad_storage","analytics_storage","ad_user_data","ad_personalization"],Fk=!1,Gk=!1;function Hk(){P(50)&&!Gk&&Fk&&(Ek.some(function(a){return uk.containerScopedDefaults[a]!==1})||Ik("mbc"));Gk=!0}function Ik(a){qj&&(ek(a,"1"),ik())}function Jk(a){fb("HEALTH",a)};var Kk;try{Kk=JSON.parse(db("eyIwIjoiRVMiLCIxIjoiIiwiMiI6ZmFsc2UsIjMiOiJnb29nbGUuZXMiLCI0IjoicmVnaW9uMSIsIjUiOmZhbHNlLCI2Ijp0cnVlLCI3IjoiYWRfc3RvcmFnZXxhbmFseXRpY3Nfc3RvcmFnZXxhZF91c2VyX2RhdGF8YWRfcGVyc29uYWxpemF0aW9uIn0"))}catch(a){M(123),Jk(2),Kk={}}function Lk(){return Kk["0"]||""}function Mk(){return Kk["1"]||""}function Nk(){var a=!1;a=!!Kk["2"];return a}function Ok(){return Kk["6"]!==!1}function Pk(){var a="";a=Kk["4"]||"";return a}
function Qk(){var a=!1;a=!!Kk["5"];return a}function Rk(){var a="";a=Kk["3"]||"";return a}var Sk=[Q.g.O,Q.g.T,Q.g.N,Q.g.sa],Tk,Uk;function Vk(a){for(var b=a[Q.g.Bb],c=Array.isArray(b)?b:[b],d={Ge:0};d.Ge=0||D.location.search.indexOf(">m_diagnostics=")>=0,ul=void 0;
function vl(a,b){if(b.length&&qj){var c;(c=ol)[a]!=null||(c[a]=[]);pl[a]!=null||(pl[a]=[]);var d=b.filter(function(e){return!pl[a].includes(e)});ol[a].push.apply(ol[a],oa(d));pl[a].push.apply(pl[a],oa(d));!ul&&d.length>0&&(fk("tdc",!0),ul=z.setTimeout(function(){ik();ol={};ul=void 0},nl))}}
function wl(a,b,c){if(qj&&a==="config"){var d,e=(d=il(b))==null?void 0:d.ids;if(!(e&&e.length>1)){var f,g=rc("google_tag_data",{});g.td||(g.td={});f=g.td;var k=Ra(c.K);Ra(c.j,k);var m=[],n;for(n in f)if(f.hasOwnProperty(n)){var p=xl(f[n],k);p.length&&(tl&&console.log(p),m.push(n))}m.length&&(vl(b,m),fb("TAGGING",ql[D.readyState]||14));f[b]=k}}}function yl(a,b){var c={},d;for(d in b)b.hasOwnProperty(d)&&(c[d]=!0);for(var e in a)a.hasOwnProperty(e)&&(c[e]=!0);return c}
function xl(a,b,c,d){c=c===void 0?{}:c;d=d===void 0?"":d;if(a===b)return[];var e=function(r,t){var u;Na(t)==="object"?u=t[r]:Na(t)==="array"&&(u=t[r]);return u===void 0?sl[r]:u},f=yl(a,b),g;for(g in f)if(f.hasOwnProperty(g)){var k=(d?d+".":"")+g,m=e(g,a),n=e(g,b),p=Na(m)==="object"||Na(m)==="array",q=Na(n)==="object"||Na(n)==="array";if(p&&q)xl(m,n,c,k);else if(p||q||m!==n)c[k]=!0}return Object.keys(c)}
function zl(){ek("tdc",function(){ul&&(z.clearTimeout(ul),ul=void 0);var a=[],b;for(b in ol)ol.hasOwnProperty(b)&&a.push(b+"*"+ol[b].join("."));return a.length?a.join("!"):void 0},!1)};var Al=function(a,b,c,d,e,f,g,k,m,n,p){this.eventId=a;this.priorityId=b;this.j=c;this.P=d;this.F=e;this.K=f;this.C=g;this.eventMetadata=k;this.onSuccess=m;this.onFailure=n;this.isGtmEvent=p},Bl=function(a,b){var c=[];switch(b){case 3:c.push(a.j);c.push(a.P);c.push(a.F);c.push(a.K);c.push(a.C);break;case 2:c.push(a.j);break;case 1:c.push(a.P);c.push(a.F);c.push(a.K);c.push(a.C);break;case 4:c.push(a.j),c.push(a.P),c.push(a.F),c.push(a.K)}return c},T=function(a,b,c,d){for(var e=ka(Bl(a,d===void 0?3:
d)),f=e.next();!f.done;f=e.next()){var g=f.value;if(g[b]!==void 0)return g[b]}return c},Cl=function(a){for(var b={},c=Bl(a,4),d=ka(c),e=d.next();!e.done;e=d.next())for(var f=Object.keys(e.value),g=ka(f),k=g.next();!k.done;k=g.next())b[k.value]=1;return Object.keys(b)},Dl=function(a,b,c){function d(n){Qa(n)&&l(n,function(p,q){f=!0;e[p]=q})}var e={},f=!1,g=Bl(a,c===void 0?3:c);g.reverse();for(var k=ka(g),m=k.next();!m.done;m=k.next())d(m.value[b]);return f?e:void 0},El=function(a){for(var b=[Q.g.Pc,
Q.g.Lc,Q.g.Mc,Q.g.Nc,Q.g.Oc,Q.g.Qc,Q.g.Rc],c=Bl(a,3),d=ka(c),e=d.next();!e.done;e=d.next()){for(var f=e.value,g={},k=!1,m=ka(b),n=m.next();!n.done;n=m.next()){var p=n.value;f[p]!==void 0&&(g[p]=f[p],k=!0)}var q=k?g:void 0;if(q)return q}return{}},Fl=function(a,b){this.eventId=a;this.priorityId=b;this.C={};this.P={};this.j={};this.F={};this.X={};this.K={};this.eventMetadata={};this.isGtmEvent=!1;this.onSuccess=function(){};this.onFailure=function(){}},Gl=function(a,b){a.C=b;return a},Hl=function(a,
b){a.P=b;return a},egion:m,declare:b==="granted",implicit:g.implicit,default:g.default,update:g.update,quiet:g.quiet};if(d!==""||g.declare!==!1)f[a]=n}};
aa.implicit=function(a,b){this.usedImplicit=!0;var c=this.entries,d=c[a]=c[a]||{};d.implicit!==!1&&(d.implicit=b==="granted")};
aa.getConsentState=function(a,b){var c=this.entries,d=c[a]||{},e=d.update;if(e!==void 0)return e?1:2;if(kb(8)&&b.usedContainerScopedDefaults){var f=b.containerScopedDefaults[a];if(f===3)return 1;if(f===2)return 2}else if(e=d.default,e!==void 0)return e?1:2;if(b==null?0:b.delegatedConsentTypes.hasOwnProperty(a)){var g=b.delegatedConsentTypes[a],k=c[g]||{};e=k.update;if(e!==void 0)return e?1:2;if(kb(8)&&b.usedContainerScopedDefaults){var m=b.containerScopedDefaults[g];if(m===3)return 1;if(m===2)return 2}else if(e=
k.default,e!==void 0)return e?1:2}e=d.declare;if(e!==void 0)return e?1:2;e=d.implicit;return e!==void 0?e?3:4:0};aa.addListener=function(a,b){this.j.push({consentTypes:a,yl:b})};var qk=function(a,b){for(var c=0;c=e.length?m(n):z.setTimeout(function(){m(c())},500)}}))};var Ek=["ad_storage","analytics_storage","ad_user_data","ad_personalization"],Fk=!1,Gk=!1;function Hk(){P(50)&&!Gk&&Fk&&(Ek.some(function(a){return uk.containerScopedDefaults[a]!==1})||Ik("mbc"));Gk=!0}function Ik(a){qj&&(ek(a,"1"),ik())}function Jk(a){fb("HEALTH",a)};var Kk;try{Kk=JSON.parse(db("eyIwIjoiRVMiLCIxIjoiIiwiMiI6ZmFsc2UsIjMiOiJnb29nbGUuZXMiLCI0IjoicmVnaW9uMSIsIjUiOmZhbHNlLCI2Ijp0cnVlLCI3IjoiYWRfc3RvcmFnZXxhbmFseXRpY3Nfc3RvcmFnZXxhZF91c2VyX2RhdGF8YWRfcGVyc29uYWxpemF0aW9uIn0"))}catch(a){M(123),Jk(2),Kk={}}function Lk(){return Kk["0"]||""}function Mk(){return Kk["1"]||""}function Nk(){var a=!1;a=!!Kk["2"];return a}function Ok(){return Kk["6"]!==!1}function Pk(){var a="";a=Kk["4"]||"";return a}
function Qk(){var a=!1;a=!!Kk["5"];return a}function Rk(){var a="";a=Kk["3"]||"";return a}var Sk=[Q.g.O,Q.g.T,Q.g.N,Q.g.sa],Tk,Uk;function Vk(a){for(var b=a[Q.g.Bb],c=Array.isArray(b)?b:[b],d={Ge:0};d.Ge=0||D.location.search.indexOf(">m_diagnostics=")>=0,ul=void 0;
function vl(a,b){if(b.length&&qj){var c;(c=ol)[a]!=null||(c[a]=[]);pl[a]!=null||(pl[a]=[]);var d=b.filter(function(e){return!pl[a].includes(e)});ol[a].push.apply(ol[a],oa(d));pl[a].push.apply(pl[a],oa(d));!ul&&d.length>0&&(fk("tdc",!0),ul=z.setTimeout(function(){ik();ol={};ul=void 0},nl))}}
function wl(a,b,c){if(qj&&a==="config"){var d,e=(d=il(b))==null?void 0:d.ids;if(!(e&&e.length>1)){var f,g=rc("google_tag_data",{});g.td||(g.td={});f=g.td;var k=Ra(c.K);Ra(c.j,k);var m=[],n;for(n in f)if(f.hasOwnProperty(n)){var p=xl(f[n],k);p.length&&(tl&&console.log(p),m.push(n))}m.length&&(vl(b,m),fb("TAGGING",ql[D.readyState]||14));f[b]=k}}}function yl(a,b){var c={},d;for(d in b)b.hasOwnProperty(d)&&(c[d]=!0);for(var e in a)a.hasOwnProperty(e)&&(c[e]=!0);return c}
function xl(a,b,c,d){c=c===void 0?{}:c;d=d===void 0?"":d;if(a===b)return[];var e=function(r,t){var u;Na(t)==="object"?u=t[r]:Na(t)==="array"&&(u=t[r]);return u===void 0?sl[r]:u},f=yl(a,b),g;for(g in f)if(f.hasOwnProperty(g)){var k=(d?d+".":"")+g,m=e(g,a),n=e(g,b),p=Na(m)==="object"||Na(m)==="array",q=Na(n)==="object"||Na(n)==="array";if(p&&q)xl(m,n,c,k);else if(p||q||m!==n)c[k]=!0}return Object.keys(c)}
function zl(){ek("tdc",function(){ul&&(z.clearTimeout(ul):b;var c="https://pagead2.googlesyndication.com/pagead/gen_204?id=tcfe";Ym(a,function(d,e){if(d||d===0)c+="&"+e+"="+encodeURIComponent(""+d)});bn(c,b)},bn=function(a,b){var c=window,d;b=b===void 0?!1:b;d=d===void 0?!1:d;if(c.fetch){var e={keepalive:!0,credentials:"include",redirect:"follow",method:"get",mode:"no-cors"};d&&(e.mode="cors","setAttributionReporting"in XMLHttpRequest.prototype?e.attributionReporting={eventSourceEligible:"true",triggerEligible:"false"}:
e.headers={"Attribution-Reporting-Eligible":"event-source"});c.fetch(a,e)}else an(c,a,b===void 0?!1:b,d===void 0?!1:d)};var dn=function(){this.P=this.P;this.C=this.C};dn.prototype.P=!1;dn.prototype.dispose=function(){this.P||(this.P=!0,this.Oa())};dn.prototype[Symbol.dispose]=function(){this.dispose()};dn.prototype.addOnDisposeCallback=function(a,b){this.P?b!==void 0?a.call(b):a():(this.C||(this.C=[]),b&&(a=a.bind(b)),this.C.push(a))};dn.prototype.Oa=function(){if(this.C)for(;this.C.length;)this.C.shift()()};var en=function(a){a.addtlConsent!==void 0&&typeof a.addtlConsent!=="string"&&(a.addtlConsent=void 0);a.gdprApplies!==void 0&&typeof a.gdprApplies!=="boolean"&&(a.gdprApplies=void 0);return a.tcString!==void 0&&typeof a.tcString!=="string"||a.listenerId!==void 0&&typeof a.listenerId!=="number"?2:a.cmpStatus&&a.cmpStatus!=="error"?0:3},fn=function(a,b){b=b===void 0?{}:b;dn.call(this);this.F=a;this.j=null;this.X={};this.Df=0;var c;this.he=(c=b.Tm)!=null?c:500;var d;this.Ac=(d=b.zn)!=null?d:!1;this.K=
null};wa(fn,dn);fn.prototype.Oa=function(){this.X={};this.K&&(ym(this.F,"message",this.K),delete this.K);delete this.X;delete this.F;delete this.j;dn.prototype.Oa.call(this)};var hn=function(a){return typeof a.F.__tcfapi==="function"||gn(a)!=null};
fn.prototype.addEventListener=function(a){var b=this,c={internalBlockOnErrors:this.Ac},d=wm(function(){return a(c)}),e=0;this.he!==-1&&(e=setTimeout(function(){c.tcString="tcunavailable";c.internalErrorState=1;d()},this.he));var f=function(g,k){clearTimeout(e);g?(c=g,c.internalErrorState=en(c),c.internalBlockOnErrors=b.Ac,k&&c.internalErrorState===0||(c.tcString="tcunavailable",k||(c.internalErrorState=3))):(c.tcString="tcunavailable",c.internalErrorState=3);a(c)};try{jn(this,"addEventListener",f)}catch(g){c.tcString=
"tcunavailable",c.internalErrorState=3,e&&(clearTimeout(e),e=0),d()}};fn.prototype.removeEventListener=function(a){a&&a.listenerId&&jn(this,"removeEventListener",null,a.listenerId)};
var ln=function(a,b,c){var d;d=d===void 0?"755":d;var e;a:{if(a.publisher&&a.publisher.restrictions){var f=a.publisher.restrictions[b];if(f!==void 0){e=f[d===void 0?"755":d];break a}}e=void 0}var g=e;if(g===0)return!1;var k=c;c===2?(k=0,g===2&&(k=1)):c===3&&(k=1,g===1&&(k=0));var m;if(k===0)if(a.purpose&&a.vendor){var n=kn(a.vendor.consents,d===void 0?"755":d);m=n&&b==="1"&&a.purposeOneTreatment&&a.publisherCC==="CH"?!0:n&&kn(a.purpose.consents,b)}else m=!0;else m=k===1?a.purpose&&a.vendor?kn(a.purpose.legitimateInterests,
b)&&kn(a.vendor.legitimateInterests,d===void 0?"755":d):!0:!0;return m},kn=function(a,b){return!(!a||!a[b])},jn=function(a,b,c,d){c||(c=function(){});if(typeof a.F.__tcfapi==="function"){var e=a.F.__tcfapi;e(b,2,c,d)}else if(gn(a)){mn(a);var f=++a.Df;a.X[f]=c;if(a.j){var g={};a.j.postMessage((g.__tcfapiCall={command:b,version:2,callId:f,parameter:d},g),"*")}}else c({},!1)},gn=function(a){if(a.j)return a.j;var b;a:{for(var c=a.F,d=0;d<50;++d){var e;try{e=!(!c.frames||!c.frames.__tcfapiLocator)}catch(k){e=
!1}if(e){b=c;break a}var f;b:{try{var g=c.parent;if(g&&g!=c){f=g;break b}}catch(k){}f=null}if(!(c=f))break}b=null}a.j=b;return a.j},mn=function(a){a.K||(a.K=function(b){try{var c;c=(typeof b.data==="string"?JSON.parse(b.data):b.data).__tcfapiReturn;a.X[c.callId](c.returnValue,c.success)}catch(d){}},xm(a.F,"message",a.K))},nn=function(a){if(a.gdprApplies===!1)return!0;a.internalErrorState===void 0&&(a.internalErrorState=en(a));return a.cmpStatus==="error"||a.internalErrorState!==0?a.internalBlockOnErrors?
(cn({e:String(a.internalErrorState)}),!1):!0:a.cmpStatus!=="loaded"||a.eventStatus!=="tcloaded"&&a.eventStatus!=="useractioncomplete"?!1:!0};var on={1:0,3:0,4:0,7:3,9:3,10:3};function pn(){var a=hi.tcf||{};return hi.tcf=a}var qn=function(){return new fn(z,{Tm:-1})};
function rn(){var a=pn(),b=qn();hn(b)&&!sn()&&!tn()&&M(124);if(!a.active&&hn(b)){sn()&&(a.active=!0,a.bc={},a.cmpId=0,a.tcfPolicyVersion=0,nk().active=!0,a.tcString="tcunavailable");cl();try{b.addEventListener(function(c){if(c.internalErrorState!==0)un(a),dl([Q.g.O,Q.g.sa,Q.g.N]),nk().active=!0;else if(a.gdprApplies=c.gdprApplies,a.cmpId=c.cmpId,a.enableAdvertiserConsentMode=c.enableAdvertiserConsentMode,tn()&&(a.active=!0),!vn(c)||sn()||tn()){a.tcfPolicyVersion=c.tcfPolicyVersion;var d;if(c.gdprApplies===
!1){var e={},f;for(f in on)on.hasOwnProperty(f)&&(e[f]=!0);d=e;b.removeEventListener(c)}else if(vn(c)){var g={},k;for(k in on)if(on.hasOwnProperty(k))if(k==="1"){var m,n=c,p={Cl:!0};p=p===void 0?{}:p;m=nn(n)?n.gdprApplies===!1?!0:n.tcString==="tcunavailable"?!p.Hj:(p.Hj||n.gdprApplies!==void 0||p.Cl)&&(p.Hj||typeof n.tcString==="string"&&n.tcString.length)?ln(n,"1",0):!0:!1;g["1"]=m}else g[k]=ln(c,k,on[k]);d=g}if(d){a.tcString=c.tcString||"tcempty";a.bc=d;var q={},r=(q[Q.g.O]=a.bc["1"]?"granted":
"denied",q);a.gdprApplies!==!0?(dl([Q.g.O,Q.g.sa,Q.g.N]),nk().active=!0):(r[Q.g.sa]=a.bc["3"]&&a.bc["4"]?"granted":"denied",typeof a.tcfPolicyVersion==="number"&&a.tcfPolicyVersion>=4?r[Q.g.N]=a.bc["1"]&&a.bc["7"]?"granted":"denied":dl([Q.g.N]),Yk(r,{eventId:0},{gdprApplies:a?a.gdprApplies:void 0,tcString:wn()||""}))}}else dl([Q.g.O,Q.g.sa,Q.g.N])})}catch(c){un(a),dl([Q.g.O,Q.g.sa,Q.g.N]),nk().active=!0}}}function un(a){a.type="e";a.tcString="tcunavailable"}
function vn(a){return a.eventStatus==="tcloaded"||a.eventStatus==="useractioncomplete"||a.eventStatus==="cmpuishown"}function sn(){return z.gtag_enable_tcf_support===!0}function tn(){return pn().enableAdvertiserConsentMode===!0}function wn(){var a=pn();if(a.active)return a.tcString}function xn(){var a=pn();if(a.active&&a.gdprApplies!==void 0)return a.gdprApplies?"1":"0"}function yn(a){if(!on.hasOwnProperty(String(a)))return!0;var b=pn();return b.active&&b.bc?!!b.bc[String(a)]:!0}var zn=[Q.g.O,Q.g.T,Q.g.N,Q.g.sa],An={},Bn=(An[Q.g.O]=1,An[Q.g.T]=2,An);function Cn(a){if(a===void 0)return 0;switch(T(a,Q.g.ja)){case void 0:return 1;case !1:return 3;default:return 2}}function Dn(a){if(Mk()==="US-CO"&&nc.globalPrivacyControl===!0)return!1;var b=Cn(a);if(b===3)return!1;switch(wk(Q.g.sa)){case 1:case 3:return!0;case 2:return!1;case 4:return b===2;case 0:return!0;default:return!1}}function En(){return zk()||!vk(Q.g.O)||!vk(Q.g.T)}
function Fn(){var a={},b;for(b in Bn)Bn.hasOwnProperty(b)&&(a[Bn[b]]=wk(b));return"G1"+Ee(a[1]||0)+Ee(a[2]||0)}var Gn={},Hn=(Gn[Q.g.O]=0,Gn[Q.g.T]=1,Gn[Q.g.N]=2,Gn[Q.g.sa]=3,Gn);function In(a){switch(a){case void 0:return 1;case !0:return 3;case !1:return 2;default:return 0}}
function Jn(a){for(var b="1",c=0;cc)e=c;d+=b.length+1;return decodeURIComponent(a.slice(d,e!==-1?e:0).replace(/\+/g," "))},Vm=/[?&]($|#)/,Wm=function(a,b,c){for(var d,e=a.search(Tm),f=0,g,k=[];(g=Sm(a,f,b,e))>=0;)k.push(a.substring(f,
g)),f=Math.min(a.indexOf("&",g)+1||e,e);k.push(a.slice(f));d=k.join("").replace(Vm,"$1");var m,n=c!=null?"="+encodeURIComponent(String(c)):"";var p=b+n;if(p){var q,r=d.indexOf("#");r<0&&(r=d.length);var t=d.indexOf("?"),u;t<0||t>r?(t=r,u=""):u=d.substring(t+1,r);q=[d.slice(0,t),u,d.slice(r)];var v=q[1];q[1]=p?v?v+"&"+p:p:v;m=q[0]+(q[1]?"?"+q[1]:"")+q[2]}else m=d;return m};var Xm=function(a){try{var b;if(b=!!a&&a.location.href!=null)a:{try{Rm(a.foo);b=!0;break a}catch(c){}b=!1}return b}catch(c){return!1}},Ym=function(a,b){if(a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b(a[c],c,a)},Zm=function(a){if(z.top==z)return 0;if(a===void 0?0:a){var b=z.location.ancestorOrigins;if(b)return b[b.length-1]==z.location.origin?1:2}return Xm(z.top)?1:2},$m=function(a){a=a===void 0?document:a;return a.createElement("img")};function an(a,b,c,d){d=d===void 0?!1:d;a.google_image_requests||(a.google_image_requests=[]);var e=$m(a.document);if(c){var f=function(){if(c){var g=a.google_image_requests,k=lc(g,e);k>=0&&Array.prototype.splice.call(g,k,1)}ym(e,"load",f);ym(e,"error",f)};xm(e,"load",f);xm(e,"error",f)}d&&(e.attributionSrc="");e.src=b;a.google_image_requests.push(e)}
var cn=function(a){var b;b=b===void 0?!1:b;var c="https://pagead2.googlesyndication.com/pagead/gen_204?id=tcfe";Ym(a,function(d,e){if(d||d===0)c+="&"+e+"="+encodeURIComponent(""+d)});bn(c,b)},bn=function(a,b){var c=window,d;b=b===void 0?!1:b;d=d===void 0?!1:d;if(c.fetch){var e={keepalive:!0,credentials:"include",redirect:"follow",method:"get",mode:"no-cors"};d&&(e.mode="cors","setAttributionReporting"in XMLHttpRequest.prototype?e.attributionReporting={eventSourceEligible:"true",triggerEligible:"false"}:
e.headers={"Attribution-Reporting-Eligible":"event-source"});c.fetch(a,e)}else an(c,a,b===void 0?!1:b,d===void 0?!1:d)};var dn=function(){this.P=this.P;this.C=this.C};dn.prototype.P=!1;dn.prototype.dispose=function(){this.P||(this.P=!0,this.Oa())};dn.prototype[Symbol.dispose]=function(){this.dispose()};dn.prototype.addOnDisposeCallback=function(a,b){this.P?b!==void 0?a.call(b):a():(this.C||(this.C=[]),b&&(a=a.bind(b)),this.C.push(a))};dn.prototype.Oa=function(){if(this.C)for(;this.C.length;)this.C.shift()()};var en=function(a){a.addtlConsent!==void 0&&typeof a.addtlConsent!=="string"&&(a.addtlConsent=void 0);a.gdprApplies!==void 0&&typeof a.gdprApplies!=="boolean"&&(a.gdprApplies=void 0);return a.tcString!==void 0&&typeof a.tcString!=="string"||a.listenerId!==void 0&&typeof a.listenerId!=="number"?2:a.cmpStatus&&a.cmpStatus!=="error"?0:3},fn=function(a,b){b=b===void 0?{}:b;dn.call(this);this.F=a;this.j=null;this.X={};this.Df=0;var c;this.he=(c=b.Tm)!=null?c:500;var d;this.Ac=(d=b.zn)!=null?d:!1;this.K=
null};wa(fn,dn);fn.prototype.Oa=function(){this.X={};this.K&&(ym(this.F,"message",this.K),delete this.K);delete this.X;delete this.F;delete this.j;dn.prototype.Oa.call(this)};var hn=function(a){return typeof a.F.__tcfapi==="function"||gn(a)!=null};
fn.prototype.addEventListener=function(a){var b=this,c={internalBlockOnErrors:this.Ac},d=wm(function(){return a(c)}),e=0;this.he!==-1&&(e=setTimeout(function(){c.tcString="tcunavailable";c.internalErrorState=1;d()},this.he));var f=function(g,k){clearTimeout(e);g?(c=g,c.internalErrorState=en(c),c.internalBlockOnErrors=b.Ac,k&&c.internalErrorState===0||(c.tcString="tcunavailable",k||(c.internalErrorState=3))):(c.tcString="tcunavailable",c.internalErrorState=3);a(c)};try{jn(this,"addEventListener",f)}catch(g){c.tcString=
"tcunavailable",c.internalErrorState=3,e&&(clearTimeout(e),e=0),d()}};fn.prototype.removeEventListener=function(a){a&&a.listenerId&&jn(this,"removeEventListener",null,a.listenerId)};
var ln=function(a,b,c){var d;d=d===void 0?"755":d;var e;a:{if(a.publisher&&a.publisher.restrictions){var f=a.publisher.restrictions[b];if(f!==void 0){e=f[d===void 0?"755":d];break a}}e=void 0}var g=e;if(g===0)return!1;var k=c;c===2?(k=0,g===2&&(k=1)):c===3&&(k=1,g===1&&(k=0));var m;if(k===0)if(a.purpose&&a.vendor){var n=kn(a.vendor.consents,d===void 0?"755":d);m=n&&b==="1"&&a.purposeOneTreatment&&a.publisherCC==="CH"?!0:n&&kn(a.purpose.consents,b)}else m=!0;else m=k===1?a.purpose&&a.vendor?kn(a.purpose.legitimateInterests,
b)&&kn(a.vendor.legitimateInterests,d===void 0?"755":d):!0:!0;return m},kn=function(a,b){return!(!a||!a[b])},jn=function(a,b,c,d){c||(c=function(){});if(typeof a.F.__tcfapi==="function"){var e=a.F.__tcfapi;e(b,2,c,d)}else if(gn(a)){mn(a);var f=++a.Df;a.X[f]=c;if(a.j){var g={};a.j.postMessage((g.__tcfapiCall={command:b,version:2,callId:f,parameter:d},g),"*")}}else c({},!1)},gn=function(a){if(a.j)return a.j;var b;a:{for(var c=a.F,d=0;d<50;++d){var e;try{e=!(!c.frames||!c.frames.__tcfapiLocator)}catch(k){e=
!1}if(e){b=c;break a}var f;b:{try{var g=c.parent;if(g&&g!=c){f=g;break b}}catch(k){}f=null}if(!(c=f))break}b=null}a.j=b;return a.j},mn=function(a){a.K||(a.K=function(b){try{var c;c=(typeof b.data==="string"?JSON.parse(b.data):b.data).__tcfapiReturn;a.X[c.callId](c.returnValue,c.success)}catch(d){}},xm(a.F,"message",a.K))},nn=function(a){if(a.gdprApplies===!1)return!0;a.internalErrorState===void 0&&(a.internalErrorState=en(a));return a.cmpStatus==="error"||a.internalErrorState!==0?a.internalBlockOnErrors?
(cn({e:String(a.internalErrorState)}),!1):!0:a.cmpStatus!=="loaded"||a.eventStatus!=="tcloaded"&&a.eventStatus!=="useractioncomplete"?!1:!0};var on={1:0,3:0,4:0,7:3,9:3,10:3};function pn(){var a=hi.tcf||{};return hi.tcf=a}var qn=function(){return new fn(z,{Tm:-1})};
function rn(){var a=pn(),b=qn();hn(b)&&!sn()&&!tn()&&M(124);if(!a.active&&hn(b)){sn()&&(a.active=!0,a.bc={},a.cmpId=0,a.tcfPolicyVersion=0,nk().active=!0,a.tcString="tcunavailable");cl();try{b.addEventListener(function(c){if(c.internalErrorState!==0)un(a),dl([Q.g.O,Q.g.sa,Q.g.N]),nk().active=!0;else if(a.gdprApplies=c.gdprApplies,a.cmpId=c.cmpId,a.enableAdvertiserConsentMode=c.enableAdvertiserConsentMode,tn()&&(a.active=!0),!vn(c)||sn()||tn()){a.tcfPolicyVersion=c.tcfPolicyVersion;var d;if(c.gdprApplies===
!1){var e={},f;for(f in on)on.hasOwnProperty(f)&&(e[f]=!0);d=e;b.removeEventListener(c)}else if(vn(c)){var g={},k;for(k in on)if(on.hasOwnProperty(k))if(k==="1"){var m,n=c,p={Cl:!0};p=p===void 0?{}:p;m=nn(n)?n.gdprApplies===!1?!0:n.tcString==="tcunavailable"?!p.Hj:(p.Hj||n.gdprApplies!==void 0||p.Cl)&&(p.Hj||typeof n.tcString==="string"&&n.tcString.length)?ln(n,"1",0):!0:!1;g["1"]=m}else g[k]=ln(c,k,on[k]);d=g}if(d){a.tcString=c.tcString||"tcempty";a.bc=d;var q={},r=(q[Q.g.O]=a.bc["1"]?"granted":
"denied",q);a.gdprApplies!==!0?(dl([Q.g.O,Q.g.sa,Q.g.N]),nk().active=!0):(r[Q.g.sa]=a.bc["3"]&&a.bc["4"]?"granted":"denied",typeof a.tcfPolicyVersion==="number"&&a.tcfPolicyVersion>=4?r[Q.g.N]=a.bc["1"]&&a.bc["7"]?"granted":"denied":dl([Q.g.N]),Yk(r,{eventId:0},{gdprApplies:a?a.gdprApplies:void 0,tcString:wn()||""}))}}else dl([Q.g.O,Q.g.sa,Q.g.N])})}catch(c){un(a),dl([Q.g.O,Q.g.sa,Q.g.N]),nk().active=!0}}}function un(a){a.type="e";a.tcString="tcunavailable"}
function vn(a){return a.eventStatus==="tcloaded"||a.eventStatus==="useractioncomplete"||a.eventStatus==="cmpuishown"}function sn(){return z.gtag_enable_tcf_support===!0}function tn(){return pn().enableAdvertiserConsentMode===!0}function wn(){var a=pn();if(a.active)return a.tcString}function xn(){var a=pn();if(a.active&&a.gdprApplies!==void 0)return a.gdprApplies?"1":"0"}function yn(a){if(!on.hasOwnProperty(String(a)))return!0;var b=pn();return b.active&&b.bc?!!b.bc[String(a)]:!0}var zn=[Q.g.O,Q.g.T,Q.g.N,Q.g.sa],An={},Bn=(An[Q.g.O]=1,An[Q.g.T]=2,An);function Cn(a){if(a===void 0)return 0;switch(T(a,Q.g.ja)){case void 0:return 1;case !1:return 3;default:return 2}}function Dn(a){if(Mk()==="US-CO"&&nc.globalPrivacyControl===!0)return!1;var b=Cn(a);if(b===3)return!1;switch(wk(Q.g.sa)){case 1:cas){var b=Oo.exec(a);if(b)return{yh:b[1],query:b[2],fragment:b[3]}}
function Qo(a,b){var c=[nc.userAgent,(new Date).getTimezoneOffset(),nc.userLanguage||nc.language,Math.floor(zb()/60/1E3)-(b===void 0?0:b),a].join("*"),d;if(!(d=Eo)){for(var e=Array(256),f=0;f<256;f++){for(var g=f,k=0;k<8;k++)g=g&1?g>>>1^3988292384:g>>>1;e[f]=g}d=e}Eo=d;for(var m=4294967295,n=0;n>>8^Eo[(m^c.charCodeAt(n))&255];return((m^-1)>>>0).toString(36)}
function Ro(){return function(a){var b=$i(z.location.href),c=b.search.replace("?",""),d=Ti(c,"_gl",!1,!0)||"";a.query=So(d)||{};var e=Ui(b,"fragment"),f;var g=-1;if(Eb(e,"_gl="))g=4;else{var k=e.indexOf("&_gl=");k>0&&(g=k+3+2)}if(g<0)f=void 0;else{var m=e.indexOf("&",g);f=m<0?e.substring(g):e.substring(g,m)}a.fragment=So(f||"")||{}}}function To(a){var b=Ro(),c=Io();c.data||(c.data={query:{},fragment:{}},b(c.data));var d={},e=c.data;e&&(Cb(d,e.query),a&&Cb(d,e.fragment));return d}
var So=function(a){try{var b=Uo(a,3);if(b!==void 0){for(var c={},d=b?b.split("*"):[],e=0;e+10;){if(c.href&&c.nodeName.match(/^a(?:rea)?$/i)){b=c;break a}c=c.parentNode;d--}b=null}var e=b;if(e){var f=e.protocol;f!=="http:"&&f!=="https:"||Wo(e,e.hostname)}}catch(g){}}function Ho(a){try{if(a.action){var b=Ui($i(a.action),"host");Wo(a,b)}}catch(c){}}function $o(a,b,c,d){Fo();var e=c==="fragment"?2:1;d=!!d;Jo(a,b,e,d,!1);e===2&&fb("TAGGING",23);d&&fb("TAGGING",24)}function ap(a,b){Fo();Jo(a,[Wi(z.location,"host",!0)],b,!0,!0)}
function bp(){var a=D.location.hostname,b=Mo.exec(D.referrer);if(!b)return!1;var c=b[2],d=b[1],e="";if(c){var f=c.split("/"),g=f[1];e=g==="s"?decodeURIComponent(f[2]):decodeURIComponent(g)}else if(d){if(d.indexOf("xn--")===0)return!1;e=d.replace(/-/g,".").replace(/\.\./g,"-")}var k=a.replace(No,""),m=e.replace(No,"");return k===m||Fb(k,"."+m)}function cp(a,b){return a===!1?!1:a||b||bp()};var dp=["1"],ep={},fp={};function gp(a,b){b=b===void 0?!0:b;var c=hp(a.prefix);if(!ep[c])if(ip(c,a.path,a.domain)){var d=fp[hp(a.prefix)];jp(a,d?d.id:void 0,d?d.th:void 0)}else{var e=bj("auiddc");if(e)fb("TAGGING",17),ep[c]=e;else if(b){var f=hp(a.prefix),g=Ao();kp(f,g,a);ip(c,a.path,a.domain)}}}function jp(a,b,c){var d=hp(a.prefix),e=ep[d];if(e){var f=e.split(".");if(f.length===2){var g=Number(f[1])||0;if(g){var k=e;b&&(k=e+"."+b+"."+(c?c:Math.floor(zb()/1E3)));kp(d,k,a,g*1E3)}}}}
function kp(a,b,c,d){var e=Co(b,"1",c.domain,c.path),f=Do(c,d);f.zb=lp();to(a,e,f)}function ip(a,b,c){var d=Bo(a,b,c,dp,lp());if(!d)return!1;mp(a,d);return!0}function mp(a,b){var c=b.split(".");c.length===5?(ep[a]=c.slice(0,2).join("."),fp[a]={id:c.slice(2,4).join("."),th:Number(c[4])||0}):c.length===3?fp[a]={id:c.slice(0,2).join("."),th:Number(c[2])||0}:ep[a]=b}function hp(a){return(a||"_gcl")+"_au"}function np(a){function b(){vk(c)&&a()}var c=lp();Ck(function(){b();vk(c)||Dk(b,c)},c)}
function op(a){var b=To(!0),c=hp(a.prefix);np(function(){var d=b[c];if(d){mp(c,d);var e=Number(ep[c].split(".")[1])*1E3;if(e){fb("TAGGING",16);var f=Do(a,e);f.zb=lp();var g=Co(d,"1",a.domain,a.path);to(c,g,f)}}})}function pp(a,b,c,d,e){e=e||{};var f=function(){var g={},k=Bo(a,e.path,e.domain,dp,lp());k&&(g[a]=k);return g};np(function(){$o(f,b,c,d)})}function lp(){return["ad_storage","ad_user_data"]};var qp={},rp=(qp.k={Fa:/^[\w-]+$/},qp.b={Fa:/^[\w-]+$/,Gh:!0},qp.i={Fa:/^[1-9]\d*$/},qp.u={Fa:/^[1-9]\d*$/},qp);var sp={},vp=(sp[5]={ik:{2:tp},Xg:["k","i","b","u"]},sp[4]={ik:{2:tp,GCL:up},Xg:["k","i","b"]},sp);function wp(a){var b=vp[5];if(b){var c=a.split(".")[0];if(c){var d=b.ik[c];if(d)return d(a,5)}}}
function tp(a,b){var c=a.split(".");if(c.length===3){var d={},e=vp[b];if(e){for(var f=e.Xg,g=ka(c[2].split("$")),k=g.next();!k.done;k=g.next()){var m=k.value,n=m[0];if(f.indexOf(n)!==-1)try{var p=decodeURIComponent(m.substring(1)),q=rp[n];q&&(q.Gh?(d[n]=d[n]||[],d[n].push(p)):d[n]=p)}catch(r){}}return d}}}
function xp(a,b){var c=vp[5];if(c){for(var d=[],e=ka(c.Xg),f=e.next();!f.done;f=e.next()){var g=f.value,k=rp[g];if(k){var m=a[g];if(m!==void 0)if(k.Gh&&Array.isArray(m))for(var n=ka(m),p=n.next();!p.done;p=n.next())d.push(encodeURIComponent(""+g+p.value));else d.push(encodeURIComponent(""+g+m))}}return["2",b||"1",d.join("$")].join(".")}}function up(a){var b=a.split(".");b.shift();var c=b.shift(),d=b.shift(),e={};return e.k=d,e.i=c,e.b=b,e};var yp=new Map([[5,"ad_storage"],[4,["ad_storage","ad_user_data"]]]);function zp(a){if(vp[5]){for(var b=[],c=io(a,void 0,void 0,yp.get(5)),d=ka(c),e=d.next();!e.done;e=d.next()){var f=wp(e.value);f&&(Ap(f),b.push(f))}return b}}function Bp(a,b,c,d){c=c||{};var e=yo(c.domain,c.path),f=xp(b,e);if(f){var g=Do(c,d,void 0,yp.get(5));to(a,f,g)}}function Cp(a,b){var c=b.Fa;return typeof c==="function"?c(a):c.test(a)}
function Ap(a){for(var b=ka(Object.keys(a)),c=b.next(),d={};!c.done;d={xe:void 0},c=b.next()){var e=c.value,f=a[e];d.xe=rp[e];d.xe?d.xe.Gh?a[e]=Array.isArray(f)?f.filter(function(g){return function(k){return Cp(k,g.xe)}}(d)):void 0:typeof f==="string"&&Cp(f,d.xe)||(a[e]=void 0):a[e]=void 0}};function Dp(a){for(var b=[],c=D.cookie.split(";"),d=new RegExp("^\\s*"+(a||"_gac")+"_(UA-\\d+-\\d+)=\\s*(.+?)\\s*$"),e=0;e3&&(g.labels=f.slice(3));d[c[e].Mh].push(g)}}return d};var Fp=/^\w+$/,Gp=/^[\w-]+$/,Hp={},Ip=(Hp.aw="_aw",Hp.dc="_dc",Hp.gf="_gf",Hp.gp="_gp",Hp.gs="_gs",Hp.ha="_ha",Hp.ag="_ag",Hp.gb="_gb",Hp);function Jp(){return["ad_storage","ad_user_data"]}function Kp(a){return!kb(12)||vk(a)}function Lp(a,b){function c(){var d=Kp(b);d&&a();return d}Ck(function(){c()||Dk(c,b)},b)}function Mp(a){return Np(a).map(function(b)indow.document.location.hostname;vo.test(e)||uo.test(e)||a.push("none");return a};function zo(a){var b=Math.round(Math.random()*2147483647);return a?String(b^go(a)&2147483647):String(b)}function Ao(a){return[zo(a),Math.round(zb()/1E3)].join(".")}function Bo(a,b,c,d,e){var f=wo(b);return lo(a,f,xo(c),d,e)}function Co(a,b,c,d){return[b,yo(c,d),a].join(".")};function Do(a,b,c,d){var e,f=Number(a.yb!=null?a.yb:void 0);f!==0&&(e=new Date((b||zb())+1E3*(f||7776E3)));return{path:a.path,domain:a.domain,flags:a.flags,encode:!!c,expires:e,zb:d}};var Eo;function Fo(){function a(g){c(g.target||g.srcElement||{})}function b(g){d(g.target||g.srcElement||{})}var c=Go,d=Ho,e=Io();if(!e.init){Bc(D,"mousedown",a);Bc(D,"keyup",a);Bc(D,"submit",b);var f=HTMLFormElement.prototype.submit;HTMLFormElement.prototype.submit=function(){d(this);f.call(this)};e.init=!0}}function Jo(a,b,c,d,e){var f={callback:a,domains:b,fragment:c===2,placement:c,forms:d,sameHost:e};Io().decorators.push(f)}
function Ko(a,b,c){for(var d=Io().decorators,e={},f=0;f=0||p&&m[q].indexOf(n)>=0){k=!0;break a}k=!1}if(k){var r=g.placement;r===void 0&&(r=g.fragment?2:1);r===b&&Cb(e,g.callback())}}return e}
function Io(){var a=rc("google_tag_data",{}),b=a.gl;b&&b.decorators||(b={decorators:[]},a.gl=b);return b};var Lo=/(.*?)\*(.*?)\*(.*)/,Mo=/^https?:\/\/([^\/]*?)\.?cdn\.ampproject\.org\/?(.*)/,No=/^(?:www\.|m\.|amp\.)+/,Oo=/([^?#]+)(\?[^#]*)?(#.*)?/;function Po(a){var b=Oo.exec(a);if(b)return{yh:b[1],query:b[2],fragment:b[3]}}
function Qo(a,b){var c=[nc.userAgent,(new Date).getTimezoneOffset(),nc.userLanguage||nc.language,Math.floor(zb()/60/1E3)-(b===void 0?0:b),a].join("*"),d;if(!(d=Eo)){for(var e=Array(256),f=0;f<256;f++){for(var g=f,k=0;k<8;k++)g=g&1?g>>>1^3988292384:g>>>1;e[f]=g}d=e}Eo=d;for(var m=4294967295,n=0;n>>8^Eo[(m^c.charCodeAt(n))&255];return((m^-1)>>>0).toString(36)}
function Ro(){return function(a){var b=$i(z.location.href),c=b.search.replace("?",""),d=Ti(c,"_gl",!1,!0)||"";a.query=So(d)||{};var e=Ui(b,"fragment"),f;var g=-1;if(Eb(e,"_gl="))g=4;else{var k=e.indexOf("&_gl=");k>0&&(g=k+3+2)}if(g<0)f=void 0;else{var m=e.indexOf("&",g);f=m<0?e.substring(g):e.substring(g,m)}a.fragment=So(f||"")||{}}}function To(a){var b=Ro(),c=Io();c.data||(c.data={query:{},fragment:{}},b(c.data));var d={},e=c.data;e&&(Cb(d,e.query),a&&Cb(d,e.fragment));return d}
var So=function(a){try{var b=Uo(a,3);if(b!==void 0){for(var c={},d=b?b.split("*"):[],e=0;e+10;){if(c.href&&c.nodeName.match(/^a(?:rea)?$/i)){b=c;break a}c=c.parentNode;d--}b=null}var e=b;if(e){var f=e.protocol;f!=="http:"&&f!=="https:"||Wo(e,e.hostname)}}catch(g){}}function Ho(a){try{if(a.action){var b=Ui($i(a.action),"host");Wo(a,b)}}catch(c){}}function $o(a,b,c,d){Fo();var e=c==="fragment"?2:1;d=!!d;Jo(a,b,e,d,!1);e===2&&fb("TAGGING",23);d&&fb("TAGGING",24)}function ap(a,b){Fo();Jo(a,[Wi(z.location,"host",!0)],b,!0,!0)}
function bp(){var a=D.location.hostname,b=Mo.exec(D.referrer);if(!b)return!1;var c=b[2],d=b[1],e="";if(c){var f=c.split("/"),g=f[1];e=g==="s"?decodeURIComponent(f[2]):decodeURIComponent(g)}else if(d){if(d.indexOf("xn--")===0)return!1;e=d.replace(/-/g,".").replace(/\.\./g,"-")}var k=a.replace(No,""),m=e.replace(No,"");return k===m||Fb(k,"."+m)}function cp(a,b){return a===!1?!1:a||b||bp()};var dp=["1"],ep={},fp={};function gp(a,b){b=b===void 0?!0:b;var c=hp(a.prefix);if(!ep[c])if(ip(c,a.path,a.domain)){var d=fp[hp(a.prefix)];jp(a,d?d.id:void 0,d?d.th:void 0)}else{var e=bj("auiddc");if(e)fb("TAGGING",17),ep[c]=e;else if(b){var f=hp(a.prefix),g=Ao();kp(f,g,a);ip(c,a.path,a.domain)}}}function jp(a,b,c){var d=hp(a.prefix),e=ep[d];if(e){var f=e.split(".");if(f.length===2){var g=Number(f[1])||0;if(g){var k=e;b&&(k=e+"."+b+"."+(c?c:Math.floor(zb()/1E3)));kp(d,k,a,g*1E3)}}}}
function kp(a,b,c,d){var e=Co(b,"1",c.domain,c.path),f=Do(c,d);f.zb=lp();to(a,e,f)}function ip(a,b,c){var d=Bo(a,b,c,dp,lp());if(!d)return!1;mp(a,d);return!0}function mp(a,b){var c=b.split(".");c.length===5?(ep[a]=c.slice(0,2).join("."),fp[a]={id:c.slice(2,4).join("."),th:Number(c[4])||0}):c.length===3?fp[a]={id:c.slice(0,2).join("."),th:Number(c[2])||0}:ep[a]=b}function hp(a){return(a||"_gcl")+"_au"}function np(a){function b(){vk(c)&&a()}var c=lp();Ck(function(){b();vk(c)||Dk(b,c)},c)}
function op(a){var b=To(!0),c=hp(a.prefix);np(function(){var d=b[c];if(d){mp(c,d);var e=Number(ep[c].split(".")[1])*1E3;if(e){fb("TAGGING",16);var f=Do(a,e);f.zb=lp();var g=Co(d,"1",a.domain,a.path);to(c,g,f)}}})}function pp(a,b,c,d,e){e=e||{};var f=function(){var g={},k=Bo(a,e.path,e.domain,dp,lp());k&&(g[a]=k);return g};np(function(){$o(f,b,c,d)})}function lp(){return["ad_storage","ad_user_data"]};var qp={},rp=(qp.k={Fa:/^[\w-]+$/},qp.b={Fa:/^[\w-]+$/,Gh:!0},qp.i={Fa:/^[1-9]\d*$/},qp.u={Fa:/^[1-9]\d*$/},qp);var sp={},vp=(sp[5]={ik:{2:tp},Xg:["k","i","b","u"]},sp[4]={ik:{2:tp,GCL:up},Xg:["k","i","b"]},sp);function wp(a){var b=vp[5];if(b){var c=a.split(".")[0];if(c){var d=b.ik[c];if(d)return d(a,5)}}}
function tp(a,b){var c=a.split(".");if(c.length===3){var d={},e=vp[b];if(e){for(var f=e.Xg,g=ka(c[2].split("$")),k=g.next();!k.done;k=g.next()){var m=k.value,n=m[0];if(f.indexOf(n)!==-1)try{var p=decodeURIComponent(m.substring(1)),q=rp[n];q&&(q.Gh?(d[n]=d[n]||[],d[n].push(p)):d[n]=p)}catch(r){}}return d}}}
function xp(a,b){var c=vp[5];if(c){for(var d=[],e=ka(c.Xg),f=e.next();!f.done;f=e.next()){var g=f.value,k=rp[g];if(k){var m=a[g];if(m!==void 0)if(k.Gh&&Array.isArray(m))for(var n=ka(m),p=n.next();!p.done;p=n.next())d.push(encodeURIComponent(""+g+p.value));else d.push(encodeURIComponent(""+g+m))}}return["2",b||"1",d.join("$")].join(".")}}function up(a){var b=a.split(".");b.shift();var c=b.shift(),d=b.shift(),e={};return e.k=d,e.i=c,e.b=b,e};var yp=new Map([[5,"ad_storage"]);return b}function uq(a,b){var c=Math.max(sq("aw",a),tq(Kp(Jp())?Ep():{})),d=Math.max(sq("gb",a),tq(Kp(Jp())?Ep("_gac_gb",!0):{}));kb(7)&&b&&(d=Math.max(d,sq("ag",a)));return d>c};
var vq=function(a,b){var c=hi.ads_pageview=hi.ads_pageview||{};if(c[a])return!1;(b===void 0?0:b)||(c[a]=!0);return!0},Fq=function(a,b,c,d,e){var f=Qp(a.prefix);if(!P(39)||vq(f,!0)){var g=$p(),k=[],m=g.gclid,n=g.dclid,p=g.gclsrc||"aw",q=wq(),r,t;if(P(69)){var u=xq();r=u.De;t=u.Bj}else r=yq();!m||p!=="aw.ds"&&p!=="aw"&&p!=="ds"&&p!=="3p.ds"||k.push({Z:m,Ee:p});n&&k.push({Z:n,Ee:"ds"});k.length===2&&M(147);k.length===0&&g.wbraid&&k.push({Z:g.wbraid,Ee:"gb"});k.length===0&&p==="aw.ds"&&k.push({Z:"",Ee:"aw.ds"});
zq(function(){var v=U(Aq());if(v){gp(a);var w=[],x=v?ep[hp(a.prefix)]:void 0;x&&w.push("auid="+x);if(U(Q.g.N)){e&&w.push("userId="+e);var y=co(Yn.Qg);if(y===void 0)bo(Yn.Rg,!0);else{var A=co(Yn.pe);w.push("ga_uid="+A+"."+y)}}var B=D.referrer?Ui($i(D.referrer),"host"):"",C=v||!d?k:[];C.length===0&&(Bq.test(B)||Cq.test(B))&&C.push({Z:"",Ee:""});if(C.length!==0||q||r!==void 0){B&&w.push("ref="+encodeURIComponent(B));var H=Dq();w.push("url="+encodeURIComponent(H));w.push("tft="+zb());var I=Nc();I!==void 0&&
w.push("tfd="+Math.round(I));var F=Zm(!0);w.push("frm="+F);q&&w.push("gad=1");r!==void 0&&w.push("gad_source="+encodeURIComponent(r));t!==void 0&&w.push("gad_source_src="+encodeURIComponent(t.toString()));if(!c){var L={};c=Ql(Gl(new Fl(0),(L[Q.g.ja]=km.j[Q.g.ja],L)))}w.push("gtm="+Xn({ra:b}));En()&&w.push("gcs="+Fn());w.push("gcd="+Jn(c));Mn()&&w.push("dma_cps="+Kn());w.push("dma="+Ln());Dn(c)?w.push("npa=0"):w.push("npa=1");Un()&&w.push("_ng=1");hn(qn())&&w.push("tcfd="+Tn());var N=xn();N&&w.push("gdpr="+
N);var S=wn();S&&w.push("gdpr_consent="+S);P(18)&&w.push("apve="+(P(19)?1:0));Ai.j&&w.push("tag_exp="+Ai.j);if(C.length>0)for(var V=0;V0)return f?["0"]:g}var k=Rp(a,e);return k?Mp(k):[]},zq=function(a){var b=Aq();bl(function(){a();U(b)||Dk(a,b)},b)},Aq=function(){return[Q.g.O,Q.g.N]},Bq=/^(www\.)?google(\.com?)?(\.[a-z]{2}t?)?$/,Cq=/^www.googleadservices.com$/,Hq=/^gad_source[_=](\d+)$/;function Mq(){hi.dedupe_gclid||(hi.dedupe_gclid=Ao());return hi.dedupe_gclid};var Nq=/^(www\.)?google(\.com?)?(\.[a-z]{2}t?)?$/,Oq=/^www.googleadservices.com$/;function Pq(a){a||(a=Qq());return a.Xm?!1:a.Nl||a.Ol||a.Rl||a.Pl||a.lh||a.De||a.Bl||a.Ql||a.Fl?!0:!1}
function Qq(){var a={},b=To(!0);a.Xm=!!b._up;var c=$p();a.Nl=c.aw!==void 0;a.Ol=c.dc!==void 0;a.Rl=c.wbraid!==void 0;a.Pl=c.gbraid!==void 0;a.Ql=c.gclsrc==="aw.ds";var d=$i(z.location.href),e=Ui(d,"query",!1,void 0,"gad");a.lh=e!==void 0;if(!a.lh){var f=d.hash.replace("#",""),g=Ti(f,"gad",!1);a.lh=g!==void 0}a.De=xq().De;var k=D.referrer?Ui($i(D.referrer),"host"):"";a.Fl=Nq.test(k);a.Bl=Oq.test(k);return a};var Rq=RegExp("^UA-\\d+-\\d+%3A[\\w-]+(?:%2C[\\w-]+)*(?:%3BUA-\\d+-\\d+%3A[\\w-]+(?:%2C[\\w-]+)*)*$"),Sq=/^~?[\w-]+(?:\.~?[\w-]+)*$/,Tq=/^\d+\.fls\.doubleclick\.net$/,Uq=/;gac=([^;?]+)/,Vq=/;gacgb=([^;?]+)/;
function Wq(a,b){if(Tq.test(D.location.host)){var c=D.location.href.match(b);return c&&c.length===2&&c[1].match(Rq)?decodeURIComponent(c[1]):""}for(var d=[],e=ka(Object.keys(a)),f=e.next();!f.done;f=e.next()){for(var g=f.value,k=[],m=a[g],n=0;n0?d.join(";"):""}
function Xq(a,b,c){for(var d=Kp(Jp())?Ep("_gac_gb",!0):{},e=[],f=!1,g=ka(Object.keys(d)),k=g.next();!k.done;k=g.next()){var m=k.value,n=qq("_gac_gb_"+m,a,b,c);f=f||n.length!==0&&n.some(function(p){return p===1});e.push(m+":"+n.join(","))}return{Al:f?e.join(";"):"",zl:Wq(d,Vq)}}function Yq(a){var b=D.location.href.match(new RegExp(";"+a+"=([^;?]+)"));return b&&b.length===2&&b[1].match(Sq)?b[1]:void 0}
function Zq(a){var b=kb(13),c={},d,e,f;Tq.test(D.location.host)&&(d=Yq("gclgs"),e=Yq("gclst"),b&&(f=Yq("gcllp")));if(d&&e&&(!b||f))c.Cj=d,c.Ej=e,c.Dj=f;else{var g=zb(),k=Sp((a||"_gcl")+"_gs"),m=k.map(function(q){return q.Z}),n=k.map(function(q){return g-q.timestamp}),p=[];b&&(p=k.map(function(q){return q.Jj}));m.length>0&&n.length>0&&(!b||p.length>0)&&(c.Cj=m.join("."),c.Ej=n.join("."),b&&p.length>0&&(c.Dj=p.join(".")))}return c}
function $q(a,b,c){if(Tq.test(D.location.host)){var d=Yq(c);if(d)return[{Z:d}]}else{if(b==="gclid")return Np((a||"_gcl")+"_aw");if(b==="wbraid")return Np((a||"_gcl")+"_gb");if(b==="braids")return Pp({prefix:a})}return[]}function ar(a){return $q(a,"gclid","gclaw").map(function(b){return b.Z}).join(".")}function br(a){return $q(a,"wbraid","gclgb").map(function(b){return b.Z}).join(".")}function cr(a){return $q(a,"braids","gclgb").map(function(b){return b.Z}).join(".")}
function dr(a,b){return Tq.test(D.location.host)?!(Yq("gclaw")||Yq("gac")):uq(a,b)}function er(a,b,c){var d;d=c?rq(a,b):qq((b&&b.prefix||"_gcl")+"_gb",a,b);return d.length===0||d.every(function(e){return e===0})?"":d.join(".")};function fr(){var a=z.__uspapi;if(mb(a)){var b="";try{a("getUSPData",1,function(c,d){if(d&&c){var e=c.uspString;e&&RegExp("^[\\da-zA-Z-]{1,20}$").test(e)&&(b=e)}})}catch(c){}return b}};
var jr=function(a){if(a.eventName===Q.g.aa&&a.metadata.hit_type==="page_view")if(P(19)){a.metadata.redact_click_ids=T(a.m,Q.g.da)!=null&&T(a.m,Q.g.da)!==!1&&!U([Q.g.O,Q.g.N]);var b=gr(a),c=T(a.m,Q.g.na)!==!1;c||(a.j[Q.g.wi]="1");var d=Qp(b.prefix),e=a.metadata.is_server_side_destination;if(!a.metadata.consent_updated&&!a.metadata.user_id_updated){var f=T(a.m,Q.g.Va),g=T(a.m,Q.g.oa)||{};hr({md:c,ud:g,yd:f,ac:b});if(!e&&!vq(d)){a.isAborted=!0;return}}if(e)a.isAborted=!0;else{a.j[Q.g.rc]=Q.g.Rb;if(a.metadata.consent_updated)a.j[Q.g.rc]=
Q.g.nk,a.j[Q.g.Pb]="1";else if(a.metadata.user_id_updated)a.j[Q.g.rc]=Q.g.tk;else{var k=$p();a.j[Q.g.Cd]=k.gclid;a.j[Q.g.Kd]=k.dclid;a.j[Q.g.oi]=k.gclsrc;a.j[Q.g.Cd]||a.j[Q.g.Kd]||(a.j[Q.g.Ze]=k.wbraid,a.j[Q.g.Zf]=k.gbraid);a.j[Q.g.Aa]=D.referrer?Ui($i(D.referrer),"host"):"";a.j[Q.g.qa]=Dq();P(22)&&(a.j[Q.g.Ya]=ir());var m;if(P(69)){var n=xq();m=n.De;a.j[Q.g.ni]=n.Bj}else m=yq();a.j[Q.g.mi]=m;a.j[Q.g.Gb]=Zm(!0);var p=Qq();Pq(p)&&(a.j[Q.g.Zc]="1");a.j[Q.g.si]=Mq();To(!1)._up==="1"&&(a.j[Q.g.Ji]="1")}Fk=
!0;var q=U([Q.g.O,Q.g.N]);c&&q&&(gp(b),a.j[Q.g.Db]=ep[hp(b.prefix)]);a.j[Q.g.jb]=void 0;a.j[Q.g.Ta]=void 0;var r=P(71);if(!a.j[Q.g.Cd]&&!a.j[Q.g.Kd]&&dr(d,r)){var t=r?Op(b):Mp(d+"_gb");t.length>0&&(a.j[Q.g.jb]=t.join("."))}else if(!a.j[Q.g.Ze]&&q){var u=Mp(d+"_aw");u.length>0&&(a.j[Q.g.Ta]=u.join("."))}a.m.isGtmEvent&&(a.m.j[Q.g.ja]=km.j[Q.g.ja]);Dn(a.m)?a.j[Q.g.Lb]=!1:a.j[Q.g.Lb]=!0;a.metadata.add_tag_timing=!0;var v=fr();v!==void 0&&(a.j[Q.g.be]=v||"error");var w=xn();w&&(a.j[Q.g.vc]=w);var x=wn();
x&&(a.j[Q.g.zc]=x);a.metadata.speculative=!1}}else a.isAborted=!0},gr=function(a){var b={prefix:T(a.m,Q.g.Wa)||T(a.m,Q.g.Ma),domain:T(a.m,Q.gbraid);ap(function(){return d},3);ap(function(){var e={};return e._up="1",e},1)}}}
function nq(a){if(!kb(1))return null;var b=To(!0).gad_source;if(b!=null)return z.location.hash="",b;if(kb(2)){var c=$i(z.location.href);b=Ui(c,"query",!1,void 0,"gad_source");if(b!=null)return b;var d=$p();if(lq(d,a))return"0"}return null}function oq(a){var b=nq(a);b!=null&&ap(function(){var c={};return c.gad_source=b,c},4)}
function pq(a,b,c){var d=[];if(b.length===0)return d;for(var e={},f=0;fc};
var vq=function(a,b){var c=hi.ads_pageview=hi.ads_pageview||{};if(c[a])return!1;(b===void 0?0:b)||(c[a]=!0);return!0},Fq=function(a,b,c,d,e){var f=Qp(a.prefix);if(!P(39)||vq(f,!0)){var g=$p(),k=[],m=g.gclid,n=g.dclid,p=g.gclsrc||"aw",q=wq(),r,t;if(P(69)){var u=xq();r=u.De;t=u.Bj}else r=yq();!m||p!=="aw.ds"&&p!=="aw"&&p!=="ds"&&p!=="3p.ds"||k.push({Z:m,Ee:p});n&&k.push({Z:n,Ee:"ds"});k.length===2&&M(147);k.length===0&&g.wbraid&&k.push({Z:g.wbraid,Ee:"gb"});k.length===0&&p==="aw.ds"&&k.push({Z:"",Ee:"aw.ds"});
zq(function(){var v=U(Aq());if(v){gp(a);var w=[],x=v?ep[hp(a.prefix)]:void 0;x&&w.push("auid="+x);if(U(Q.g.N)){e&&w.push("userId="+e);var y=co(Yn.Qg);if(y===void 0)bo(Yn.Rg,!0);else{var A=co(Yn.pe);w.push("ga_uid="+A+"."+y)}}var B=D.referrer?Ui($i(D.referrer),"host"):"",C=v||!d?k:[];C.length===0&&(Bq.test(B)||Cq.test(B))&&C.push({Z:"",Ee:""});if(C.length!==0||q||r!==void 0){B&&w.push("ref="+encodeURIComponent(B));var H=Dq();w.push("url="+encodeURIComponent(H));w.push("tft="+zb());var I=Nc();I!==void 0&&
w.push("tfd="+Math.round(I));var F=Zm(!0);w.push("frm="+F);q&&w.push("gad=1");r!==void 0&&w.push("gad_source="+encodeURIComponent(r));t!==void 0&&w.push("gad_source_src="+encodeURIComponent(t.toString()));if(!c){var L={};c=Ql(Gl(new Fl(0),(L[Q.g.ja]=km.j[Q.g.ja],L)))}w.push("gtm="+Xn({ra:b}));En()&&w.push("gcs="+Fn());w.push("gcd="+Jn(c));Mn()&&w.push("dma_cps="+Kn());w.push("dma="+Ln());Dn(c)?w.push("npa=0"):w.push("npa=1");Un()&&w.push("_ng=1");hn(qn())&&w.push("tcfd="+Tn());var N=xn();N&&w.push("gdpr="+
N);var S=wn();S&&w.push("gdpr_consent="+S);P(18)&&w.push("apve="+(P(19)?1:0));Ai.j&&w.push("tag_exp="+Ai.j);if(C.length>0)for(var V=0;V0)return f?["0"]:g}var k=Rp(a,e);return k?Mp(k):[]},zq=function(a){var b=Aq();bl(function(){a();U(b)||Dk(a,b)},b)},Aq=function(){return[Q.g.O,Q.g.N]},Bq=/^(www\.)?google(\.com?)?(\.[a-z]{2}t?)?$/,Cq=/^www.googleadservices.com$/,Hq=/^gad_source[_=](\d+)$/;function Mq(){hi.dedupe_gclid||(hi.dedupe_gclid=Ao());return hi.dedupe_gclid};var Nq=/^(www\.)?google(\.com?)?(\.[a-z]{2}t?)?$/,Oq=/^www.googleadservices.com$/;function Pq(a){a||(a=Qq());return a.Xm?!1:a.Nl||a.Ol||a.Rl||a.Pl||a.lh||a.De||a.Bl||a.Ql||a.Fl?!0:!1}
function Qq(){var a={},b=To(!0);a.Xm=!!b._up;var c=$p();a.Nl=c.aw!==void 0;a.Ol=c.dc!==void 0;a.Rl=c.wbraid!==void 0;a.Pl=c.gbraid!==void 0;a.Ql=c.gclsrc==="aw.ds";var d=$i(z.location.href),e=Ui(d,"query",!1,void 0,"gad");a.lh=e!==void 0;if(!a.lh){var f=d.hash.replace("#",""),g=Ti(f,"gad",!1);a.lh=g!==void 0}a.De=xq().De;var k=D.referrer?Ui($i(D.referrer),"host"):"";a.Fl=Nq.test(k);a.Bl=Oq.test(k);return a};var Rq=RegExp("^UA-\\d+-\\d+%3A[\\w-]+(?:%2C[\\w-]+)*(?:%3BUA-\\d+-\\d+%3A[\\w-]+(?:%2C[\\w-]+)*)*$"),Sq=/^~?[\w-]+(?:\.~?[\w-]+)*$/,Tq=/^\d+\.fls\.doubleclick\.net$/,Uq=/;gac=([^;?]+)/,Vq=/;gacgb=([^;?]+)/;
function Wq(a,b){if(Tq.test(D.location.host)){var c=D.location.href.match(b);return c&&c.length===2&&c[1].match(Rq)?decodeURIComponent(c[1]):""}for(var d=[],e=ka(Object.keys(a)),f=e.next();!f.done;f=e.next()){for(var g=f.value,k=[],m=a[g],n=0;n0?d.join(";"):""}
function Xq(a,b,c){for(var d=Kp(Jp())?Ep("_gac_gb",!0):{},e=[],f=!1,g=ka(Object.keys(d)),k=g.next();!k.done;k=g.next()){var m=k.value,n=qq("_gac_gb_"+m,a,b,c);f=f||n.length!==0&&n.some(function(p){return p===1});e.push(m+":"+n.join(","))}return{Al:f?e.join(";"):"",zl:Wq(d,Vq)}}function Yq(a){var b=D.location.href.match(new RegExp(";"+a+"=([^;?]+)"));return b&&b.length===2&&b[1].match(Sq)?b[1]:void 0}
function Zq(a){var b=kb(13),c={},d,e,f;Tq.test(D.location.host)&&(d=Yq("gclgs"),e=Yq("gclst"),b&&(f=Yq("gcllp")));if(d&&e&&(!b||f))c.Cj=d,c.Ej=e,c.Dj=f;else{var g=zb(),k=Sp((a||"_gcl")+"_gs"),m=k.map(function(q){return q.Z}),n=k.map(function(q){return g-q.timestamp}),p=[];b&&(p=k.map(function(q){return q.Jj}));m.length>0&&n.length>0&&(!b||p.length>0)&&(c.Cj=m.join("."),c.Ej=n.join("."),b&&p.length>0&&(c.Dj=p.join(".")))}return c}
function $q(a,b,c){if(Tq.test(D.location.host)){var d=Yq(c);if(d)return[{Z:d}]}else{if(b==="gclid")return Np((a||"_gcl")+"_aw");if(b==="wbraid")return Np((a||"_gcl")+"_gb");if(b==="braids")return Pp({prefix:a})}return[]}function ar(a){return $q(a,"gclid","gclaw").map(function(b){return b.Z}).join(".")}function br(a){return $q(a,"wbraid","gclgb").map(function(b){return b.Z}).join(".")}function cr(a){return $q(a,"braids","gclgb").map(function(b){return b.Z}).join(".")}
function dr(a,b){return Tq.test(D.location.host)?!(Yq("gclaw")||Yq("gac")):uq(a,b)}function er(a,b,c){var d;d=c?rq(a,b):qq((b&&b.prefix||"_gcl")+"_gb",a,b);return d.length===0||d.every(function(e){return e===0})?"":d.join(".")};function fr(){var a=z.__uspapi;if(mb(a)){var b="";try{a("getUSPData",1,function(c,d){if(d&&c){var e=c.uspString;e&&RegExp("^[\\da-zA-Z-]{1,20}$").test(e)&&(b=e)}})}catch(c){}return b}};
var jr=function(a){if(a.eventName===Q.g.aa&&a.metadata.hit_type==="page_view")if(P(19)){a.metadata.redact_click_ids=T(a.m,Q.g.da)!=null&&T(a.m,Q.g.da)!==!1&&!U([Q.g.O,Q.g.N]);var b=gr(a),c=T(a.m,Q.g.na)!==!1;c||(a.j[Q.g.wi]="1");var d=Qp(b.prefix),e=a.metadata.is_server_side_destination;if(!a.metadata.consent_updated&&!a.metadata.user_id_updated){var f=T(a.m,Q.g.Va),g=T(a.m,Q.g.oa)||{};hr({md:c,ud:g,yd:f,ac:b});if(!e&&!vq(d)){a.isAborted=!0;return}}if(e)a.isAborted=!0;else{a.j[Q.g.rc]=Q.g.Rb;if(a.metadata.consent_updated)a.j[Q.g.rc]=
Q.g.nk,a.j[Q.g.Pb]="1";else if(a.metadata.user_id_updated)a.j[Q.g.rc]=Q.g.tk;else{var k=$p();a.j[Q.g.Cd]=k.gclid;a.j[Q.g.Kd]=k.dclid;a.j[Q.g.oi]=k.gclsrc;a.j[Q.g.Cd]||a.j[Q.g.Kd]||(a.j[Q.g.Ze]=k.wbraid,a.j[Q.g.Zf]=k.gbraid);a.j[Q.g.Aa]=D.referrer?Ui($i(D.referrer),"host"):"";a.j[Q.g.qa]=Dq();P(22)&&(a.j[Q.g.Ya]=ir());var m;if(P(69)){var n=xq();m=n.De;a.j[Q.g.ni]=n.Bj}else m=yq();a.j[Q.g.mi]=m;a.j[Q.g.Gb]=Zm(!0);var p=Qq();Pq(p)&&(a.j[Q.g.Zc]="1");a.j[Q.g.si]=Mq();To(!1)._up==="1"&&(a.j[Q.g.Ji]="1")}Fk=
!0;var q=U([Q.g.O,Q.g.N]);c&&q&&(gp(b),a.j[Q.g.Db]=ep[hp(b.prefix)]);a.j[Q.g.jb]=void 0;a.j[Q.g.Ta]=void 0;var r=P(71);if(!a.j[Q.g.Cd]&&!a.j[Q.g.Kd]&&dr(d,r)){var t=r?Op(b):Mp(d+"_gb");t.length>0&&(a.j[Q.g.jb]=t.join("."))}else if(!a.j[Q.g.Ze]&&q){var u=Mp(d+"_aw");u.length>0&&(a.j[Q.g.Ta]=u.join("."))}a.m.isGtmEvent&&(a.m.j[Q.g.ja]=km.j[Q.g.ja]);Dn(a.m)?a.j[Q.g.Lb]=!1:a.j[Q.g.Lb]=!0;a.metadata.add_tag_timing=!0;var v=fr();v!==void 0&&(a.j[Q.g.be]=v||"error");var w=xn();w&&(a.j[Q.g.vc]=w);var x=wn();
x&&(a.j[Q.g.zc]=x);a.metadata.speculative=!1}}else a.isAborted=!0},gr=function(a){var b={prefix:T(a.m,Q.g.Wa)||T(a.m,Q.g.Ma),domain:T(a.m,Q.g.Ua),yb:T(a.m,Q.g.La),flags:T(a.m,Q.g.Xa)};a.m.isGtmEvent&&(b.path=T(a.m,Q.g.Eb));return b},kr=function(a,b){var c,d,e,f,g,k,m,n;c=a.md;d=a.ud;e=a.yd;f=a.ra;g=a.m;k=a.vd;m=a.Bn;n=a.ek;hr({md:c,ud:d,yd:e,ac:b});c&&m!==!0&&(n!=null?n=String(n):n=void 0,Fq(b,f,g,k,n))},hr=function(a){var b,c,d,e;b=a.md;c=a.ud;d=a.yd;e=a.ac;b&&(cp(c[Q.g.yc],!!c[Q.g.U])&&(dq(lr,e),
fq(e),op(e)),aq(e),jq(lr,e),kq(e));c[Q.g.U]&&(hq(lr,c[Q.g.U],c[Q.g.Ib],!!c[Q.g.sb],e.prefix),iq(c[Q.g.U],c[Q.g.Ib],!!c[Q.g.sb],e.prefix),pp(hp(e.prefix),c[Q.g.U],c[Q.g.Ib],!!c[Q.g.sb],e),pp("FPAU",c[Q.g.U],c[Q.g.Ib],!!c[Q.g.sb],e));d&&mq(mr);oq(mr)},nr=function(a,b,c,d){var e,f,g;e=a.fk;f=a.callback;g=a.Kj;if(typeof f==="function")if(e===Q.g.Ta&&g===void 0){var k=d(b.prefix,c);k.length===0?f(void 0):k.length===1?f(k[0]):f(k)}else e===Q.g.Db?(M(65),gp(b,!1),f(ep[hp(b.prefix)])):f(g)},lr=["aw","dc",
"gb"],mr=["aw","dc","gb","ag"];function or(a){var b=T(a.m,Q.g.Hb),c=T(a.m,Q.g.Ub);b&&!c?(a.eventName!==Q.g.aa&&a.eventName!==Q.g.Kc&&M(131),a.isAborted=!0):!b&&c&&(M(132),a.isAborted=!0)}function pr(a){var b=U(Q.g.O)?hi.pscdl:"denied";b!=null&&(a.j[Q.g.df]=b)}function qr(a){var b=Zm(!0);a.j[Q.g.Gb]=b}function rr(a){Un()&&(a.j[Q.g.wc]=1)}
function ir(){var a=D.title;if(a===void 0||a==="")return"";var b=function(d){try{return decodeURIComponent(d),!0}catch(e){return!1}};a=encodeURIComponent(a);for(var c=256;c>0&&!b(a.substring(0,c));)c--;return decodeURIComponent(a.substring(0,c))}function sr(a){if(P(13)){var b=T(a.m,Q.g.La);a.j[Q.g.fe]||(a.j[Q.g.fe]={});a.j[Q.g.fe].ce=b}};function zr(a,b,c,d){var e=xc(),f;if(e===1)a:{var g=ti;g=g.toLowerCase();for(var k="https://"+g,m="http://"+g,n=1,p=D.getElementsByTagName("script"),q=0;q=0&&(g=g.substring(k+8,g.indexOf(")",k)),g.charAt(g.length-1)==="%"&&(g=g.substring(0,g.length-1)),f=String(Math.min(Number(g),Number(f))))}if(f!==void 0&&Number(f)<=0)return!0;(d=d.parentElement)&&
(e=z.getComputedStyle(d,null))}return!1}
var gs=function(a){return a.tagName+":"+a.isVisible+":"+a.W.length+":"+fs.test(a.W)},us=function(a){a=a||{rd:!0,sd:!0,Pf:void 0};a.vb=a.vb||{email:!0,phone:!1,address:!1};var b=hs(a),c=is[b];if(c&&zb()-c.timestamp<200)return c.result;var d=js(),e=d.status,f=[],g,k,m=[];if(!P(26)){if(a.vb&&a.vb.email){var n=ks(d.elements);f=ls(n,a&&a.ye);g=ms(f);n.length>10&&(e="3")}!a.Pf&&g&&(f=[g]);for(var p=0;p:nth-child("+e.toString()+")"}else d="";c=d}b=c}return b},ks=function(a){for(var b=[],c=0;c=0}else k=!1;k||b.push({element:d,W:g})}}}return b},
js=function(){var a=[],b=D.body;if(!b)return{elements:a,status:"4"};for(var c=b.querySelectorAll("*"),d=0;d=0)&&e.children instanceof HTMLCollection){for(var f=!1,g=0;g=0)){f=!0;break}(!f||P(26)&&Bs.indexOf(e.tagName)!==-1)&&a.push(e)}}return{elements:a,status:c.length>1E4?"2":"1"}},Cs=!1;var ys=/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/i,fs=/@(gmail|googlemail)\./i,xs=/support|noreply/i,zs="SCRIPT STYLE IMG SVG PATH BR NOSCRIPT TEXTAREA".split(" "),As=["BR"],ss={hc:"1",me:"2",ee:"3",ie:"4",Tf:"5",Ng:"6",Ef:"7"},is={},Bs=["INPUT","SELECT"];var Rs=function(a,b,c){a.j[Q.g.oe]||(a.j[Q.g.oe]={});a.j[Q.g.oe][b]=c},Ts=function(a,b){var c=Ss(a,Q.g.Qd,a.m.C[Q.g.Qd]);if(c&&c[b||a.eventName]!==void 0)return c[b||a.eventName]},Us=function(a){var b=a.metadata.user_data;if(Qa(b))return b},Vs=function(a){if(a.metadata.is_merchant_center||!hj(a.m))return!","nonGoogleScripts","nonGoogleIframes"],nonGoogleScripts:["customScripts","html"],nonGoogleIframes:["customScripts","html","nonGoogleScripts"]},cw="google customPixels customScripts html nonGooglePixels nonGoogleScripts nonGoogleIframes".split(" ");
function dw(){var a=Ii("gtm.allowlist")||Ii("gtm.whitelist");a&&M(9);ni&&(a=["google","gtagfl","lcl","zone"]);$v.test(z.location&&z.location.hostname)&&(ni?M(116):(M(117),ew&&(a=[],window.console&&window.console.log&&window.console.log("GTM blocked. See go/13687728."))));var b=a&&Db(wb(a),aw),c=Ii("gtm.blocklist")||Ii("gtm.blacklist");c||(c=Ii("tagTypeBlacklist"))&&M(3);c?M(8):c=[];$v.test(z.location&&z.location.hostname)&&(c=wb(c),c.push("nonGooglePixels","nonGoogleScripts","sandboxedScripts"));
wb(c).indexOf("google")>=0&&M(2);var d=c&&Db(wb(c),bw),e={};return function(f){var g=f&&f[He.la];if(!g||typeof g!=="string")return!0;g=g.replace(/^_*/,"");if(e[g]!==void 0)return e[g];var k=xi[g]||[],m=!0;if(a){var n;if(n=m)a:{if(b.indexOf(g)<0)if(k&&k.length>0)for(var p=0;p=0;if(r)q=r;else{var t=rb(d,k||[]);t&&M(10);q=t}}var u=!m||q;u||!(k.indexOf("sandboxedScripts")>=0)||b&&b.indexOf("sandboxedScripts")!==
-1||(u=rb(d,cw));return e[g]=u}}var ew=!1;ew=!0;function fw(){zj&&Uv(Hj(),function(a){var b=tf(a.entityId),c;if(wf(b)){var d=b[He.la];if(!d)throw Error("Error: No function name given for function call.");var e=lf[d];c=!!e&&!!e.runInSiloedMode}else c=!!Tv(b[He.la],4);return c})}function gw(a,b,c,d,e){if(!hw()){var f=d.siloed?Cj(a):a;if(!Tj(f)){var g=iw(a),k=Eb(a,"GTM-"),m=gj(),n=c?"/gtag/js":"/gtm.js",p=fj(b,n+g);if(!p){var q=gi.Bd+n;if(m&&qc&&k)q=qc.replace(/^(?:https?:\/\/)?/i,"").split(/[?#]/)[0],p=zr("https://","http://",q+g);else if(Ci()){var r=n;P(63)&&(r="/");p=Bi()+r+g}else p=zr("https://","http://",q+g)}d.siloed&&Vj({ctid:f,isDestination:!1});var t=Nj();wj().container[f]={state:1,context:d,parent:t};vj({ctid:f,isDestination:!1},e);wc(p)}}}
function jw(a,b,c,d){if(!hw()){var e=c.siloed?Cj(a):a;if(!Uj(e))if(!c.siloed&&Wj())wj().destination[e]={state:0,transportUrl:b,context:c,parent:Nj()},vj({ctid:e,isDestination:!0},d),M(91);else{var f="/gtag/destination"+iw(a,!0),g=fj(b,f);g||(Ci()?(P(63)&&(f="/gtd"+iw(a,!0)),g=Bi()+f):g=zr("https://","http://",gi.Bd+f));c.siloed&&Vj({ctid:e,isDestination:!0});wj().destination[e]={state:1,context:c,parent:Nj()};vj({ctid:e,isDestination:!0},d);wc(g)}}}
function iw(a,b){b=b===void 0?!1:b;var c="?id="+encodeURIComponent(a)+"&l="+gi.fb;if(!Eb(a,"GTM-")||b)c+="&cx=c";P(73)&&(c+=">m="+Xn());gj()&&(c+="&sign="+gi.Pg);var d=Ai.C;d===1?c+="&fps=fc":d===2&&(c+="&fps=fe");return c}function hw(){if(Vn()){return!0}return!1};var kw=[];function lw(){var a=Nf.ctid;if(a){var b=yj.je?1:0,c,d=Jj(Nj());c=d&&d.context;return a+";"+Nf.canonicalContainerId+";"+(c&&c.fromContainerExecution?1:0)+";"+(c&&c.source||0)+";"+b}}function mw(){var a=$i(z.location.href);return a.hostname+a.pathname}function nw(){var a=mw();a&&ek("dl",encodeURIComponent(a));if(P(93)){var b=lw();b&&ek("tdp",b)}else ek("tdp",function(){return kw.length>0?kw.join("."):void 0});var c=Zm(!0);c!==void 0&&ek("frm",String(c))};var ow=!1,pw=0,qw=[];function rw(a){if(!ow){var b=D.createEventObject,c=D.readyState==="complete",d=D.readyState==="interactive";if(!a||a.type!=="readystatechange"||c||!b&&d){ow=!0;for(var e=0;e=a.F&&Aw(a)})},Cw=function(a){a.P=!0;a.C>=a.F&&Aw(a)};var Dw={};function Ew(){return z[Fw()]}
function Fw(){return z.GoogleAnalyticsObject||"ga"}function Iw(){var a=Fj();}
function Jw(a,b){return function(){var c=Ew(),d=c&&c.getByName&&c.getByName(a);if(d){var e=d.get("sendHitTask");d.set("sendHitTask",function(f){var g=f.get("hitPayload"),k=f.get("hitCallback"),m=g.indexOf("&tid="+b)<0;m&&(f.set("hitPayload",g.replace(/&tid=UA-[0-9]+-[0-9]+/,"&tid="+b),!0),f.set("hitCallback",void 0,!0));e(f);m&&(f.set("hitPayload",g,!0),f.set("hitCallback",k,!0),f.set("_x_19",void 0,!0),e(f))})}}}var Ow=["es","1"],Pw={},Qw={};function Rw(a,b){if(pj){var c;c=b.match(/^(gtm|gtag)\./)?encodeURIComponent(b):"*";Pw[a]=[["e",c],["eid",a]];cm(a)}}function Sw(a){var b=a.eventId,c=a.fc;if(!Pw[b])return[];var d=[];Qw[b]||d.push(Ow);d.push.apply(d,oa(Pw[b]));c&&(Qw[b]=!0);return d};var Tw={},Uw={},Vw={};function Ww(a,b,c,d){pj&&P(83)&&((d===void 0?0:d)?(Vw[b]=Vw[b]||0,++Vw[b]):c!==void 0?(Uw[a]=Uw[a]||{},Uw[a][b]=Math.round(c)):(Tw[a]=Tw[a]||{},Tw[a][b]=(Tw[a][b]||0)+1))}function Xw(a){var b=a.eventId,c=a.fc,d=Tw[b]||{},e=[],f;for(f in d)d.hasOwnProperty(f)&&e.push(""+f+d[f]);c&&delete Tw[b];return e.length?[["md",e.join(".")]]:[]}
function Yw(a){var b=a.eventId,c=a.fc,d=Uw[b]||{},e=[],f;for(f in d)d.hasOwnProperty(f)&&e.push(""+f+d[f]);c&&delete Uw[b];return e.length?[["mtd",e.join(".")]]:[]}function Zw(){for(var a=[],b=ka(Object.keys(Vw)),c=b.next();!c.done;c=b.next()){var d=c.value;a.push(""+d+Vw[d])}return a.length?[["mec",a.join(".")]]:[]};var $w={},ax={};function bx(a,b,c){if(pj&&b){var d=jj(b);$w[a]=$w[a]||[];$w[a].push(c+d);var e=(wf(b)?"1":"2")+d;ax[a]=ax[a]||[];ax[a].push(e);cm(a)}}function cx(a){var b=a.eventId,c=a.fc,d=[],e=$w[b]||[];e.length&&d.push(["tr",e.join(".")]);var f=ax[b]||[];f.length&&d.push(["ti",f.join(".")]);c&&(delete $w[b],delete ax[b]);return d};function dx(a,b,c,d){var e=jf[a],f=ex(a,b,c,d);if(!f)return null;var g=xf(e[He.pj],c,[]);if(g&&g.length){var k=g[0];f=dx(k.index,{onSuccess:f,onFailure:k.Aj===1?b.terminate:f,terminate:b.terminate},c,d)}return f}
function ex(a,b,c,d){function e(){function w(){Jk(3);var I=zb()-H;bx(c.id,f,"7");zw(c.Zb,B,"exception",I);P(74)&&xv(c,f,Gu.J.qj);C||(C=!0,k())}if(f[He.Mk])k();else{var x=vf(f,c,[]),y=x[He.kk];if(y!=null)for(var A=0;A
0};function kx(a,b){var c,d=b.Qj,e=a.Qj;c=d>e?1:dk?1:g=0){if(e.Bh=il(g,b),e.Bh){var k=Dj();pb(k,function(r){return function(t){return r.Bh.destinationId===t}}(e))?c.push(g):d.push(g)}}else{var m=Kx[g]||[];e.kh={};m.forEach(function(r){return function(t){r.kh[t]=!0}}(e));for(var n=Aj(),p=0;p=0&&c.splice(d,1)})}function Ox(a){l(Lx,function(b,c){var d=c.indexOf(a);d>=0&&c.splice(d,1)})}var Px="HA GF G UA AW DC MC".split(" "),Qx=!1,Rx=!1,Sx=!1,Tx=!1;function Ux(a,b){a.hasOwnProperty("gtm.uniqueEventId")||Object.defineProperty(a,"gtm.uniqueEventId",{value:yi()});b.eventId=a["gtm.uniqueEventId"];b.priorityId=a["gtm.priorityId"];return{eventId:b.eventId,priorityId:b.priorityId}}var Vx=void 0,Wx=void 0;
function Xx(a,b,c){var d=Ra(a,null);d.eventId=void 0;d.inheritParentConfig=void 0;Object.keys(b).some(function(f){return b[f]!==void 0})&&M(136);var e=Ra(b,null);Ra(c,e);Gx(yx(Aj()[0],e),a.eventId,d)}function Yx(a){for(var b=ka([Q.g.fd,Q.g.Kb]),c=b.next();!c.done;c=b.next()){var d=c.value,e=a&&a[d]||km.j[d];if(e)return e}}
var Zx=[Q.g.fd,Q.g.Kb,Q.g.sc,Q.g.lb,Q.g.tb,Q.g.ya,Q.g.oa,Q.g.Ma,Q.g.Ua,Q.g.Eb],$x={config:function(a,b){var c=Ux(a,b);if(!(a.length<2)&&h(a[1])){var d={};if(a.length>2){if(a[2]!==void 0&&!Qa(a[2])||a.length>3)return;d=a[2]}var e=il(a[1],b.isGtmEvent);if(e){var f,g,k;a:{if(!yj.je){var m=Jj(Nj());if(Yj(m)){var n=m.parent,p=n.isDestination;k={tm:Jj(n),fm:p};break a}}k=void 0}var q=k;q&&(f=q.tm,g=q.fm);Rw(c.eventId,"gtag.config");var r=e.destinationId,t=e.id!==r;if(t?Dj().indexOf(r)===-1:Aj().indexOf(r)===
-1){if(!b.inheritParentConfig&&!d[Q.g.Hb]){var u=Yx(d);if(t)jw(r,u,{source:2,fromContainerExecution:b.fromContainerExecution});else if(f!==void 0&&f.containers.indexOf(r)!==-1){var v=d;Vx?Xx(b,v,Vx):Wx||(Wx=Ra(v,null))}else gw(r,u,!0,{source:2,fromContainerExecution:b.fromContainerExecution})}}else{if(f&&(M(128),g&&M(130),b.inheritParentConfig)){var w;var x=d;Wx?(Xx(b,Wx,x),w=!1):(!x[Q.g.Xb]&&li&&Vx||(Vx=Ra(x,null)),w=!0);w&&f.containers&&f.containers.join(",");return}var y=d;if(!Sx&&(Sx=!0,Rx))for(var A=
ka(Zx),B=A.next();!B.done;B=A.next())if(y.hasOwnProperty(B.value)){Ik("erc");break}qj&&!zj&&(vx===1&&(ck.mcc=!1),vx=2);Fk=!0;if(li&&!t&&!d[Q.g.Xb]){var C=Tx;Tx=!0;if(C)return}Qx||M(43);if(!b.noTargetGroup)if(t){Ox(e.id);var H=e.id,I=d[Q.g.Ud]||"default";I=String(I).split(",");for(var F=0;F2){if(!Qa(a[2])&&a[2]!==void 0||a.length>3)return;d=a[2]}var e=d,f={},g=(f.event=c,f);e&&(g.eventModel=Ra(e,null),e[Q.g.Xc]&&(g.eventCallback=e[Q.g.Xc]),e[Q.g.Rd]&&(g.eventTimeout=e[Q.g.Rd]));var k=Ux(a,b),m=k.eventId,n=k.priorityId;g["gtm.uniqueEventId"]=m;n&&(g["gtm.priorityId"]=n);if(c==="optimize.callback")return g.eventModel=g.eventModel||{},g;var p;var q=d,r=q&&q[Q.g.Wb];
r===void 0&&(r=Ii(Q.g.Wb,2),r===void 0&&(r="default"));if(h(r)||Array.isArray(r)){var t;t=b.isGtmEvent?h(r)?[r]:r:r.toString().replace(/\s+/g,"").split(",");var u=Mx(t,b.isGtmEvent),v=u.gm,w=u.jm;if(w.length)for(var x=Yx(q),y=0;y0?g.eventModel[Q.g.Wb]=H.join():delete g.eventModel[Q.g.Wb];Qx||M(43);b.noGtmEvent===void 0&&b.eventMetadata&&b.eventMetadata.syn_or_mod&&(b.noGtmEvent=!0);g.eventModel[Q.g.Ub]&&
(b.noGtmEvent=!0);return b.noGtmEvent?void 0:g}}},get:function(a,b){M(53);if(a.length===4&&h(a[1])&&h(a[2])&&mb(a[3])){var c=il(a[1],b.isGtmEvent),d=String(a[2]),e=a[3];if(c){Qx||M(43);var f=Yx();if(!pb(Dj(),function(k){return c.destinationId===k}))jw(c.destinationId,f,{source:4,fromContainerExecution:b.fromContainerExecution});else if(Px.indexOf(Oj(c.prefix))!==-1){Fk=!0;Ux(a,b);var g={};Ra((g[Q.g.qb]=d,g[Q.g.Fb]=e,g),null);mm(d,function(k){E(function(){e(k)})},c.id,b)}}}},js:function(a,b){if(a.length===
2&&a[1].getTime){Qx=!0;var c=Ux(a,b),d=c.eventId,e=c.priorityId,f={};return f.event="gtm.js",f["gtm.start"]=a[1].getTime(),f["gtm.uniqueEventId"]=d,f["gtm.priorityId"]=e,f}},policy:function(a){if(a.length===3&&h(a[1])&&mb(a[2])){if(Kf(a[1],a[2]),M(74),a[1]==="all"){M(75);var b=!1;try{b=a[2](Fj(),"unknown",{})}catch(c){}b||M(76)}}else M(73)},set:function(a,b){var c=void 0;a.length===2&&Qa(a[1])?c=Ra(a[1],null):a.length===3&&h(a[1])&&(c={},Qa(a[2])||Array.isArray(a[2])?c[a[1]]=Ra(a[2],null):c[a[1]]=
a[2]);if(c){var d=Ux(a,b),e=d.eventId,f=d.priorityId;Ra(c,null);var g=Ra(c,null);km.push("set",[g],void 0,b);c["gtm.uniqueEventId"]=e;f&&(c["gtm.priorityId"]=f);delete c.event;b.overwriteModelFields=!0;return c}}},ay={policy:!0};var cy=function(a){if(by(a))return a;this.value=a};cy.prototype.getUntrustedMessageValue=function(){return this.value};var by=function(a){return!a||Na(a)!=="object"||Qa(a)?!1:"getUntrustedMessageValue"in a};cy.prototype.getUntrustedMessageValue=cy.prototype.getUntrustedMessageValue;var dy=!1,ey=[];function fy(){if(!dy){dy=!0;for(var a=0;ahy&&(hy=q)}my=!1}}}return!a}
function wy(){if(P(74)){var a=xy();}var b=uy();if(P(74)){}try{var c=Fj(),d=z[gi.fb].hide;if(d&&d[c]!==void 0&&d.end){d[c]=!1;var e=!0,f;for(f in d)if(d.hasOwnProperty(f)&&d[f]===
!0){e=!1;break}e&&(d.end(),d.end=null)}}catch(g){}return b}function Jx(a){if(hy
0){f=[];for(var g=0;gn)for(M(4),c.pruned=!0;this.length>n;)this.shift();var p=typeof m!=="boolean"||m;return uy()&&p};var e=b.slice(0).map(function(f){return a(f)});jy.push.apply(jy,e);if(xy()){if(P(74)){}E(wy)}}var xy=function(){var a=!0;return a},py=function(a){return z[gi.fb].push(a)};function zy(a){if(a==null||a.length===0)return!1;var b=Number(a),c=zb();return bc-9E5}function Ay(a){return a&&a.indexOf("pending:")===0?zy(a.substr(8)):!1};
function Vy(){};var Wy=function(){};Wy.prototype.toString=function(){return"undefined"};var Xy=new Wy;function dz(a,b){function c(g){var k=$i(g),m=Ui(k,"protocol"),n=Ui(k,"host",!0),p=Ui(k,"port"),q=Ui(k,"path").toLowerCase().replace(/\/$/,"");if(m===void 0||m==="http"&&p==="80"||m==="https"&&p==="443")m="web",p="default";return[m,n,p,q]}for(var d=c(String(a)),e=c(String(b)),f=0;f=
0;case "_le":return pg(b,c);case "_lt":return rg(b,c);case "_re":return lg(b,c,a.ignore_case);case "_sw":return sg(b,c);case "_um":return dz(b,c)}return!1};function gz(){var a;a=a===void 0?"":a;var b,c;return((b=data)==null?0:(c=b.blob)==null?0:c.hasOwnProperty(1))?String(data.blob[1]):a};function hz(){var a=[["cv",P(102)?gz():"2"],["rv",gi.Og],["tc",jf.filter(function(b){return b}).length]];gi.ne&&a.push(["x",gi.ne]);Ai.j&&a.push(["tag_exp",Ai.j]);return a};var iz={},jz={};function kz(){var a=0;return function(b){switch(b){case 1:a|=1;break;case 2:a|=2;break;case 3:a|=4}return a}}function lz(a,b,c,d){if(pj){var e=String(c)+b;iz[a]=iz[a]||[];iz[a].push(e);jz[a]=jz[a]||[];jz[a].push(d+b)}}function mz(a){var b=a.eventId,c=a.fc,d=[],e=iz[b]||[];e.length&&d.push(["hf",e.join(".")]);var f=jz[b]||[];f.length&&d.push(["ht",f.join(".")]);c&&(delete iz[b],delete jz[b]);return d};function nz(){return!1}function oz(){var a={};return function(b,c,d){}};function pz(){var a=qz;return function(b,c,d){var e=d&&d.event;rz(c);var f=Eb(b,"__cvt_")?void 0:1,g=new Xa;l(c,function(r,t){if(b!=="__html"||r!=="gtmOnSuccess"&&r!=="gtmOnFailure"||!P(78)){var u=cd(t,void 0,f);u===void 0&&t!==void 0&&M(44);g.set(r,u)}else g.set(r,new Vc(r,t))});a.j.j.C=Cf();var k={xj:Rf(b),eventId:e==null?void 0:e.id,priorityId:e!==void 0?e.priorityId:void 0,se:e!==void 0?function(r){e.Zb.se(r)}:void 0,ab:function(){return b},log:function(){},xl:{index:d==null?void 0:d.index,type:d==
null?void 0:d.type,name:d==null?void 0:d.name},Em:!!Tv(b,3),originalEventData:e==null?void 0:e.originalEventData};e&&e.cachedModelValues&&(k.a(b,null),Oa=il(ia,xa.isGtmEvent);Oa&&km.push("config",[na],Oa,xa)}}}}},consent:function(a,b){if(a.length===3){M(39);var c=Ux(a,b),d=a[1],e=a[2];b.fromContainerExecution||(e[Q.g.N]&&M(139),e[Q.g.sa]&&M(140));d==="default"?Wk(e):d==="update"?Yk(e,c):d===
"declare"&&b.fromContainerExecution&&Vk(e)}},event:function(a,b){var c=a[1];if(!(a.length<2)&&h(c)){var d=void 0;if(a.length>2){if(!Qa(a[2])&&a[2]!==void 0||a.length>3)return;d=a[2]}var e=d,f={},g=(f.event=c,f);e&&(g.eventModel=Ra(e,null),e[Q.g.Xc]&&(g.eventCallback=e[Q.g.Xc]),e[Q.g.Rd]&&(g.eventTimeout=e[Q.g.Rd]));var k=Ux(a,b),m=k.eventId,n=k.priorityId;g["gtm.uniqueEventId"]=m;n&&(g["gtm.priorityId"]=n);if(c==="optimize.callback")return g.eventModel=g.eventModel||{},g;var p;var q=d,r=q&&q[Q.g.Wb];
r===void 0&&(r=Ii(Q.g.Wb,2),r===void 0&&(r="default"));if(h(r)||Array.isArray(r)){var t;t=b.isGtmEvent?h(r)?[r]:r:r.toString().replace(/\s+/g,"").split(",");var u=Mx(t,b.isGtmEvent),v=u.gm,w=u.jm;if(w.length)for(var x=Yx(q),y=0;y0?g.eventModel[Q.g.Wb]=H.join():delete g.eventModel[Q.g.Wb];Qx||M(43);b.noGtmEvent===void 0&&b.eventMetadata&&b.eventMetadata.syn_or_mod&&(b.noGtmEvent=!0);g.eventModel[Q.g.Ub]&&
(b.noGtmEvent=!0);return b.noGtmEvent?void 0:g}}},get:function(a,b){M(53);if(a.length===4&&h(a[1])&&h(a[2])&&mb(a[3])){var c=il(a[1],b.isGtmEvent),d=String(a[2]),e=a[3];if(c){Qx||M(43);var f=Yx();if(!pb(Dj(),function(k){return c.destinationId===k}))jw(c.destinationId,f,{source:4,fromContainerExecution:b.fromContainerExecution});else if(Px.indexOf(Oj(c.prefix))!==-1){Fk=!0;Ux(a,b);var g={};Ra((g[Q.g.qb]=d,g[Q.g.Fb]=e,g),null);mm(d,function(k){E(function(){e(k)})},c.id,b)}}}},js:function(a,b){if(a.length===
2&&a[1].getTime){Qx=!0;var c=Ux(a,b),d=c.eventId,e=c.priorityId,f={};return f.event="gtm.js",f["gtm.start"]=a[1].getTime(),f["gtm.uniqueEventId"]=d,f["gtm.priorityId"]=e,f}},policy:function(a){if(a.length===3&&h(a[1])&&mb(a[2])){if(Kf(a[1],a[2]),M(74),a[1]==="all"){M(75);var b=!1;try{b=a[2](Fj(),"unknown",{})}catch(c){}b||M(76)}}else M(73)},set:function(a,b){var c=void 0;a.length===2&&Qa(a[1])?c=Ra(a[1],null):a.length===3&&h(a[1])&&(c={},Qa(a[2])||Array.isArray(a[2])?c[a[1]]=Ra(a[2],null):c[a[1]]=
a[2]);if(c){var d=Ux(a,b),e=d.eventId,f=d.priorityId;Ra(c,null);var g=Ra(c,null);km.push("set",[g],void 0,b);c["gtm.uniqueEventId"]=e;f&&(c["gtm.priorityId"]=f);delete c.event;b.overwriteModelFields=!0;return c}}},ay={policy:!0};var cy=function(a){if(by(a))return a;this.value=a};cy.prototype.getUntrustedMessageValue=function(){return this.value};var by=function(a){return!a||Na(a)!=="object"||Qa(a)?!1:"getUntrustedMessageValue"in a};cy.prototype.getUntrustedMessageValue=cy.prototype.getUntrustedMessageValue;var dy=!1,ey=[];function fy(){if(!dy){dy=!0;for(var a=0;ahy&&(hy=q)}my=!1}}}return!a}
function wy(){if(P(74)){var a=xy();}var b=uy();if(P(74)){}try{var c=Fj(),d=z[gi.fb].hide;if(d&&d[c]!==void 0&&d.end){d[c]=!1;var e=!0,f;for(f in d)if(d.hasOwnProperty(f)&&d[f]===
!0){e=!1;break}e&&(d.end(),d.end=null)}}catch(g){}return b}function Jx(a){if(hy
0){f=[];for(var g=0;gn)for(M(4),c.pruned=!0;this.length>n;)this.shift();var p=typeof m!=="boolean"||m;return uy()&&p};var e=b.slice(0).map(function(f){return a(f)});jy.push.apply(jy,e);if(xy()){if(P(74)){}E(wy)}}var xy=function(){var a=!0;return a},py=function(a){return z[gi.fb].push(a)};function zy(a){if(a==null||a.length===0)return!1;var b=Number(a),c=zb();return bc-9E5}function Ay(a){return a&&a.indexOf("pending:")===0?zy(a.substr(8)):!1};
function Vy(){};var Wy=function(){};Wy.prototype.toString=function(){return"undefined"};var Xy=new Wy;function dz(a,b){function c(g){var k=$i(g),m=Ui(k,"protocol"),n=Ui(k,"host",!0),p=Ui(k,"port"),q=Ui(k,"path").toLowerCase().replace(/\/$/,"");if(m===void 0||m==="http"&&p==="80"||m==="https"&&p==="443")m="web",p="default";return[m,n,p,q]}for(var d=c(String(a)),e=c(String(b)),f=0;f=
0;case "_le":return pg(b,c);case "_lt":return rg(b,c);case "_re":return lg(b,c,a.ignore_case);case "_sw":return sg(b,c);case "_um":return dz(b,c)}return!1};function gz(){var a;a=a===void 0?"":a;var b,c;return((b=data)==null?0:(c=b.blob)==null?0:c.hasOwnProperty(1))?String(data.blob[1]):a};function hz(){var a=[["cv",P(102)?gz():"2"],["rv",gi.Og],["tc",jf.filter(function(b){return b}).length]];gi.ne&&a.push(["x",gi.ne]);Ai.j&&a.push(["tag_exp",Ai.j]);return a};var iz={},jz={};function kz(){var a=0;return function(b){switch(b){case 1:a|=1;break;case 2:a|=2;break;case 3:a|=4}return a}}function lz(a,b,c,d){if(pj){var e=String(c)+b;iz[a]=iz[a]||[];iz[a].push(e);jz[a]=jz[a]||[];jz[a].push(d+b)}}function mz(a){var b=a.eventId,c=a.fc,d=[],e=iz[b]||[];e.length&&d.push(["hf",e.join(".")]);var f=jz[b]||[];f.length&&d.push(["ht",f.join(".")]);c&&(delete iz[b],delete jz[b]);return d};function nz(){return!1}function oz(){var a={};return function(b,c,d){}};function pz(){var a=qz;return function(b,c,d){var e=d&&d.event;rz(c);var f=Eb(b,"__cvt_")?void 0:1,g=new Xa;l(c,function(r,t){if(b!=="__html"||r!=="gtmOnSuccess"&&r!=="gtmOnFailure"||!P(78)){var u=cd(t,void 0,f);u===void 0&&t!==void 0&&M(44);g.set(r,u)}else g.set(r,new Vc(r,t))});a.j.j.C=Cf();var k={xj:Rf(b),eventId:e==null?void 0:e.id,priorityId:e!==void 0?e.priorityId:void 0,se:e!==void 0?function(r){e.Zb.se(r)}:void 0,ab:function(){return b},log:function(){},xl:{index:d==null?void 0:d.index,type:d==
null?void 0:d.type,name:d==null?void 0:d.name},Em:!!Tv(b,3),originalEventData:e==null?void 0:e.originalEventData};e&&e.cachedModelValues&&(k.cachedModelValues={gtm:e.cachedModelValues.gtm,ecommerce:e.cachedModelValues.ecommerce});if(nz()){var m=oz(),n,p;k.Ra={Lh:[],te:{},wb:function(r,t,u){t===1&&(n=r);t===7&&(p=u);m(r,t,u)},Nf:ah()};k.log=function(r){var t=ya.apply(1,arguments);n&&m(n,4,{level:r,source:p,message:t})}}var q=Be(a,k,[b,g]);a.j.j.C=void 0;q instanceof Aa&&q.type==="return"&&(q=q.data);
return G(q,void 0,f)}}function rz(a){var b=a.gtmOnSuccess,c=a.gtmOnFailure;mb(b)&&(a.gtmOnSuccess=function(){E(b)});mb(c)&&(a.gtmOnFailure=function(){E(c)})};function sz(a,b){var c=this;}sz.R="addConsentListener";var tz=!1;function uz(a){for(var b=0;b=m.q.length+
(m.qd||0))return 0;var p=mA.apply(this,n);b++;if(p===null)return 0;c(p.Fe,p.Be);return 0}}});}nA.H="internal.addGaSendListener";function oA(a){if(!a)return{};var b=a.xl;return vw(b.type,b.index,b.name)}function pA(a){return a?{originatingEntity:oA(a)}:{}};function xA(a){var b=hi.zones;return b?b.getIsAllowedFn(Aj(),a):function(){return!0}}
function yA(){Wv(Hj(),function(a){var b=a.originalEventData["gtm.uniqueEventId"],c=hi.zones;return c?c.isActive(Aj(),b):!0});Uv(Hj(),function(a){var b,c;b=a.entityId;c=a.securityGroups;return xA(Number(a.originalEventData["gtm.uniqueEventId"]))(b,c)})};var zA=function(a,b){this.tagId=a;this.ve=b};
function AA(a,b){var c=this,d;return d}
AA.H="internal.loadGoogleTag";function BA(a){return new Vc("",function(b){var c=this.evaluate(b);if(c instanceof Vc)return new Vc("",function(){var d=ya.apply(0,arguments),e=this,f=Ra(yz(this),null);f.eventId=a.eventId;f.priorityId=a.priorityId;f.originalEventData=a.originalEventData;var g=d.map(function(m){return e.evaluate(m)}),k=Ga(this.D);k.j=f;return c.eb.apply(c,[k].concat(oa(g)))})})};function CA(a,b,c){var d=this;}CA.H="internal.addGoogleTagRestriction";var DA={},EA=[];
function LA(a,b){}
LA.H="internal.addHistoryChangeListener";function MA(a,b,c){}MA.R="addWindowEventListener";function NA(a,b){return!0}NA.R="aliasInWindow";function OA(a,b,c){}OA.H="internal.appendRemoteConfigParameter";function PA(a){var b;return b}PA.R="callInWindow";function QA(a){}QA.R="callLater";function RA(a){}RA.H="callOnDomReady";function SA(a){}SA.H="callOnWindowLoad";function TA(a,b){var c;return c}TA.H="internal.computeGtmParameter";function UA(a){var b;J(this.getName(),["key:!string"],arguments);if(!$n(a))throw Error("copyFromCrossContainerData requires valid CrossContainerSchema key.");var c=co(a);b=cd(c,this.D,1);return b}UA.H="internal.copyFromCrossContainerData";function VA(a,b){var c;var d=cd(c,this.D,Eb(yz(this).ab(),"__cvt_")?2:1);d===void 0&&c!==void 0&&M(45);return d}VA.R="copyFromDataLayer";
function WA(a){var b=void 0;return b}WA.H="internal.copyFromDataLayerCache";function XA(a){var b;return b}XA.R="copyFromWindow";function YA(a){var b=void 0;return cd(b,this.D,1)}YA.H="internal.copyKeyFromWindow";var ZA=function(a,b,c){this.eventName=b;this.m=c;this.j={};this.isAborted=!1;this.target=a;this.metadata=Ra(c.eventMetadata||{},{})};ZA.prototype.copyToHitData=function(a,b,c){var d=T(this.m,a);d===void 0&&(d=b);if(d!==void 0&&c!==void 0&&h(d)&&P(67))try{d=c(d)}catch(e){}d!==void 0&&(this.j[a]=d)};var Ss=function(a,b,c){var d=Vr(a.target.destinationId);return d&&d[b]!==void 0?d[b]:c};function $A(a,b){var c;J(this.getName(),["preHit:!PixieMap","dustOptions:?PixieMap"],arguments);var d=G(b)||{},e=G(a,this.D,1).Fj(),f=e.m;d.omitEventContext&&(f=Ql(new Fl(e.m.eventId,e.m.priorityId)));var g=new ZA(e.target,e.eventName,f);d.omitHitData||Ra(e.j,g.j);d.omitMetadata?g.metadata={}:Ra(e.metadata,g.metadata);g.isAborted=e.isAborted;c=cd(Lr(g),this.D,1);return c}$A.H="internal.copyPreHit";function aB(a,b){var c=null;return cd(c,this.D,2)}aB.R="createArgumentsQueue";function bB(a){return cd(function(c){var d=Ew();if(typeof c==="function")d(function(){c(function(f,g,k){var m=Ew(),n=m&&m.getByName&&
m.getByName(f);return vm(z.gaplugins.Linker,n).decorate(g,k)})});else if(Array.isArray(c)){var e=String(c[0]).split(".");b[e.length===1?e[0]:e[1]]&&d.apply(null,c)}else if(c==="isLoaded")return!!d.loaded},this.D,1)}bB.H="internal.createGaCommandQueue";function cB(a){return cd(function(){if(!mb(e.push))throw Error("Object at "+a+" in window is not an array.");e.push.apply(e,Array.prototype.slice.call(arguments,0))},this.D,Eb(yz(this).ab(),
"__cvt_")?2:1)}cB.R="createQueue";function dB(a,b){var c=null;J(this.getName(),["pattern:!string","flags:?string"],arguments);try{var d=(b||"").split("").filter(function(e){return"ig".indexOf(e)>=0}).join("");c=new $c(new RegExp(a,d))}catch(e){}return c}dB.H="internal.createRegex";function eB(){var a={};a={SHARED_USER_ID:Yn.Qg,SHARED_USER_ID_REQUESTED:Yn.Rg,SHARED_USER_ID_SOURCE:Yn.pe};return a};function fB(a){}fB.H="internal.declareConsentState";function gB(a){var b="";return b}gB.H="internal.decodeUrlHtmlEntities";function hB(a,b,c){var d;return d}hB.H="internal.decorateUrlWithGaCookies";function iB(a){var b;K(this,"detect_user_provided_data","auto");var c=G(a)||{},d=us({rd:!!c.includeSelector,sd:!!c.includeVisibility,ye:c.excludeElementSelectors,vb:c.fieldFilters,Pf:!!c.selectMultipleElements});b=new Xa;var e=new Va;b.set("elements",e);for(var f=d.elements,g=0;g=a.limit)a.Lf&&z.clearInterval(a.Lf);else{a.vh++;var b=zb();py({event:a.eventName,"gtm.timerId":a.Lf,"gtm.timerEventNumber":a.vh,"gtm.timerInterval":a.interval,"gtm.timerLimit":a.limit,"gtm.timerStartTime":a.Yj,"gtm.timerCurrentTime":b,"gtm.timerElapsedTime":b-a.Yj,"gtm.triggers":a.Vm})}}}
function tC(a,b){
return b}tC.H="internal.enableAutoEventOnTimer";var gc=ja(["data-gtm-yt-inspected-"]),vC=["www.youtube.com","www.youtube-nocookie.com"],wC,xC=!1;
function HC(a,b){var c=this;return b}HC.H="internal.enableAutoEventOnYouTubeActivity";function IC(a,b){J(this.getName(),["booleanExpression:!string","context:?PixieMap"],arguments);var c=b?G(b):{},d=a,e=!1;var f=JSON.parse(d);if(!f)throw Error("Invalid boolean expression string was given.");e=Qg(f,c);return e}IC.H="internal.evaluateBooleanExpression";var JC;function KC(a){var b=!1;return b}KC.H="internal.evaluateMatchingRules";function rD(){return yn(7)&&yn(9)&&yn(10)};function mE(a,b,c,d){}mE.H="internal.executeEventProcessor";function nE(a){var b;return cd(b,this.D,1)}nE.H="internal.executeJavascriptString";function oE(a){var b;return b};var pE=null;
function qE(){var a=new Xa;K(this,"read_container_data"),P(41)&&pE?a=pE:(a.set("containerId",'G-WP2Y5CS0D6'),a.set("version",'2'),a.set("environmentName",''),a.set("debugMode",Sf),a.set("previewMode",Tf.bk),a.set("environmentMode",Tf.sl),a.set("firstPartyServing",Ci()||pi),a.set("containerUrl",qc),a.Ja(),P(41)&&(pE=a));return a}
qE.R="getContainerVersion";function rE(a,b){b=b===void 0?!0:b;var c;return c}rE.R="getCookieValues";function sE(){return Lk()}sE.H="internal.getCountryCode";function tE(){var a=[];a=Dj();return cd(a)}tE.H="internal.getDestinationIds";function uE(a,b){var c=null;return c}uE.H="internal.getElementAttribute";function vE(a){var b=null;return b}vE.H="internal.getElementById";function wE(a){var b="";return b}wE.H="internal.getElementInnerText";function xE(a,b){var c=null;return c}xE.H="internal.getElementProperty";function yE(a){var b;return b}yE.H="internal.getElementValue";function zE(a){var b=0;return b}zE.H="internal.getElementVisibilityRatio";function AE(a){var b=null;return b}AE.H="internal.getElementsByCssSelector";
function BE(a){var b;J(this.getName(),["keyPath:!string"],arguments);K(this,"read_event_data",a);var c;a:{var d=a,e=yz(this).originalEventData;if(e){for(var f=e,g={},k={},m={},n=[],p=d.split("\\\\"),q=0;q0&&(a.j[Q.g.Md]=b)};aa.Ml=function(a){a.j[Q.g.Md]=void 0;this.Hh();this.C=0};aa.oh=function(){return this.F&&
this.isVisible&&this.isActive};aa.El=function(){return this.C+this.If()};aa.If=function(){return this.j&&this.j.get()||0};aa.Cm=function(a){this.K=a};aa.Tj=function(a){this.P=a};var SE=function(a){var b=a.metadata.event_usage;if(Array.isArray(b))for(var c=0;c=0&&(z.clearTimeout(this.C),this.C=-1)}};YF.prototype.X=function(a){var b=this,c=Us(a),d=P(68)&&!(c!=null&&Object.keys(c).length>0);!c||d?this.F(a):
vh(c,function(e){b.F(a,e.split("~").length===1?void 0:e)})};var $F=Oh('',500),aG=Oh('',5E3),ZF=!0;
var bG=function(a,b,c){c===void 0&&(c={});if(b==null)return c;if(typeof b==="object")for(var d=ka(Object.keys(b)),e=d.next();!e.done;e=d.next()){var f=e.value;bG(a+"."+f,b[f],c)}else c[a]=b;return c},cG=function(a){for(var b={},c=ka(a),d=c.next();!d.done;d=c.next()){var e=d.value;b[e]=!!U(e)}return b},eG=function(a,b){var c=dG.filter(function(e){return!U(e)});if(c.length){var d=cG(c);$k(c,function(){for(var e=cG(c),f=[],g=ka(c),k=g.next();!k.done;k=g.next()){var m=k.value;!d[m]&&e[m]&&f.push(m);e[m]&&
(d[m]=!0)}if(f.length){b.metadata.is_consent_update=!0;var n=f.map(function(p){return bi[p]}).join(".");n&&Rs(b,"gcut",n);a(b)}})}},fG=function(a){P(108)&&Vs(a)&&T(a.m,Q.g.Dd,!0)===!1&&(a.j[Q.g.Dd]=0)},gG=function(a,b){if(Vs(b)){var c=b.metadata.is_conversion;(b.eventName==="page_view"||c)&&eG(a,b)}},hG=function(a){if(Vs(a)&&a.eventName===Q.g.Kc&&a.metadata.is_consent_update){var b=a.j[Q.g.dg];b&&(Rs(a,"gcut",b),Rs(a,"syn",1))}},iG=function(a){P(109)&&Vs(a)&&T(a.m,Q.g.za)!==!1&&Jt("join-ad-interest-group")&&
mb(nc.joinAdInterestGroup)&&Rs(a,"flg",1)},jG=function(a){Vs(a)&&(a.metadata.speculative=!1)},kG=function(a){Vs(a)&&(a.metadata.speculative&&Rs(a,"sp",1),a.metadata.is_syn&&Rs(a,"syn",1),a.metadata.em_event&&(Rs(a,"em_event",1),Rs(a,"sp",1)))},lG=function(a){if(Vs(a)){var b=ui;b&&Rs(a,"tft",Number(b))}},mG=function(a){function b(e){var f=bG(Q.g.Ba,e);l(f,function(g,k){a.j[g]=k})}if(Vs(a)){var c=Ss(a,"ccd_add_1p_data",!1)?1:0;Rs(a,"ude",c);var d=T(a.m,Q.g.Ba);d!==void 0?(b(d),a.j[Q.g.jd]="c"):b(a.metadata.user_data);
a.metadata.user_data=void 0}},nG=function(a){if(Vs(a)){var b=fr();b&&Rs(a,"us_privacy",b);var c=xn();c&&Rs(a,"gdpr",c);var d=wn();d&&Rs(a,"gdpr_consent",d)}},oG=function(a){Vs(a)&&zk()&&T(a.m,Q.g.da)&&Rs(a,"adr",1)},pG=function(a){if(Vs(a)){var b=zF?Pk():"";b&&Rs(a,"gcsub",b)}},qG=function(a){if(Vs(a)){T(a.m,Q.g.kb,void 0,4)===!1&&Rs(a,"ngs",1);Nk()&&Rs(a,"ga_rd",1);rD()||Rs(a,"ngst",1);var b=Rk();b&&Rs(a,"etld",b)}},rG=function(a){},sG=function(a){Vs(a)&&zk()&&Rs(a,"rnd",Mq())},dG=[Q.g.O,Q.g.N];
var tG=function(a,b){var c;a:{var d=iF(a);if(d){if(gF(d,a)){c=d;break a}M(25);a.isAborted=!0}c=void 0}var e=c;return{clientId:ZE(a,b),Qa:e}},uG=function(a,b,c,d,e){var f=T(a.m,Q.g.lb);if(T(a.m,Q.g.Hb)&&T(a.m,Q.g.Ub))f?XE(a,f,1):(M(127),a.isAborted=!0);else{var g=f?1:8;a.metadata.is_new_to_site=!1;f||(f=aF(a),g=3);f||(f=b,g=5);if(!f){var k=U(Q.g.T),m=UE();f=!m.from_cookie||k?m.vid:void 0;g=6}f?f=""+f:(f=Ao(),g=7,a.metadata.is_first_visit=a.metadata.is_new_to_site=!0);XE(a,f,g)}var n=Math.floor(a.metadata.event_start_timestamp_ms/
1E3),p=void 0;a.metadata.is_new_to_site||(p=hF(a)||c);var q=ub(T(a.m,Q.g.gd,30));q=Math.min(475,q);q=Math.max(5,q);var r=ub(T(a.m,Q.g.qf,1E4)),t=bF(p);a.metadata.is_first_visit=!1;a.metadata.is_session_start=!1;a.metadata.join_timer_sec=0;t&&t.sh&&(a.metadata.join_timer_sec=Math.max(0,t.sh-Math.max(0,n-t.Ne)));var u=!1;t||(u=a.metadata.is_first_visit=!0,t={sessionId:String(n),Ic:1,wd:!1,Ne:n,Ec:!1,nd:void 0});n>t.Ne+q*60&&(u=!0,t.sessionId=String(n),t.Ic++,t.wd=!1,t.nd=void 0);if(u)a.metadata.is_session_start=
!0,d.Ml(a);else if(d.El()>r||a.eventName===Q.g.Rb)t.wd=!0;a.metadata.euid_mode_enabled?T(a.m,Q.g.ya)?t.Ec=!0:(t.Ec&&!P(12)&&(t.nd=void 0),t.Ec=!1):t.Ec=!1;var v=t.nd;if(a.metadata.euid_mode_enabled||Vs(a)){var w=T(a.m,Q.g.Nd),x=w?1:8;w||(w=v,x=4);w||(w=zo(),x=7);var y=w.toString(),A=x,B=a.metadata.enhanced_client_id_source;if(B===void 0||A<=B)a.j[Q.g.Nd]=y,a.metadata.enhanced_client_id_source=A}e?(a.copyToHitData(Q.g.tb,t.sessionId),a.copyToHitData(Q.g.Zd,t.Ic),a.copyToHitData(Q.g.Yd,t.wd?1:0)):(a.j[Q.g.tb]=
t.sessionId,a.j[Q.g.Zd]=t.Ic,a.j[Q.g.Yd]=t.wd?1:0);a.metadata[Q.g.jf]=t.Ec?1:0};var vG=window,wG=document,xG=function(a){var b=vG._gaUserPrefs;if(b&&b.ioo&&b.ioo()||wG.documentElement.hasAttribute("data-google-analytics-opt-out")||a&&vG["ga-disable-"+a]===!0)return!0;try{var c=vG.external;if(c&&c._gaUserPrefs&&c._gaUserPrefs=="oo")return!0}catch(p){}for(var d=[],e=String(wG.cookie).split(";"),f=0;f=0&&(c=a.pathname.substring(0,d));b.transport_url=a.protocol+"//"+a.hostname+c;return b},NF=function(a,b,c){var d=0,e=new z.XMLHttpRequest;e.withCredentials=!0;e.onprogress=function(f){if(e.status===200){var g=e.responseText.substring(d);d=f.loaded;JF(c,g)}};e.open(b?"POST":"GET",a);e.setAttributionReporting&&e.setAttributionReporting({eventSourceEligible:!1,triggerEligible:!0});
e.send(b)},PF=function(a,b,c){var d=Object.assign({},OF);b&&(d.body=b,d.method="POST");z.fetch(a,d).then(function(e){if(e.ok&&e.body){var f=e.body.getReader();return new Promise(function(g){function k(){f.read().then(function(m){var n,p;n=m.done;p=m.value;if(n)g();else{var q=(new TextDecoder).decode(p);JF(c,q);k()}}).catch(function(){g()})}k()})}}).catch(function(){P(88)&&(a+="&_z=retryFetch",b?Ic(a,b):Hc(a))})},QF=function(a,b){return IF(new HF(function(c,d){var e=LF(c,a);b&&(e=e.replace("_is_sw=0",
b));var f={};d.attribution_reporting&&(f.attributionsrc="");zc(e,void 0,void 0,f)}),function(c,d){var e=LF(c,a),f=d.dedupe_key;f&&Lt(e,f)})},RF=function(a,b,c,d){var e=QF(c,d);P(87)&&Lc()?PF(a,b,e):NF(a,b,e)},SF=function(a,b){var c=$i(a),d=MF(c),e=KF(c);P(91)?qt(e,b,d,function(f){RF(e,b,d,f)}):RF(e,b,d)},OF=Object.freeze({cache:"no-store",credentials:"include",method:"GET",keepalive:!0,redirect:"follow"});
var TF=function(a,b){return a?[a,b].join("&"):b},UF=function(a,b,c){var d=a+"?"+b;c?Ic(d,c):Hc(d)},WF=function(a,b,c,d){var e=b,f=Nc();f!==void 0&&(e+="&tfd="+Math.round(f));b=e;var g=a+"?"+b;VF&&(d=!Eb(g,xF())&&!Eb(g,wF()));if(d&&!NE)SF(g,c);else{var k=b;Lc()?Kc(a+"?"+k,c,{noFallback:!0})||UF(a,TF(k,"_z=failedfetch"),c):UF(a,TF(k,"_z=nofetch"),c)}},XF=function(a,b){function c(u){n.push(u+"="+encodeURIComponent(""+a.fa[u]))}var d=b.Km,e=b.Lm,f=b.Gl,g=b.Xl,k=b.Wl,m=b.Bm;if(d||e){var n=[];a.fa._ng&&
c("_ng");c("tid");c("cid");c("gtm");n.push("aip=1");a.Jc.uid&&!k&&n.push("uid="+encodeURIComponent(""+a.Jc.uid));var p=function(){c("dma");a.fa.dma_cps!=null&&c("dma_cps");a.fa.gcs!=null&&c("gcs");c("gcd");a.fa.npa!=null&&c("npa")};p();a.fa.frm!=null&&c("frm");d&&(Ai.j&&n.push("tag_exp="+Ai.j),UF("https://stats.g.doubleclick.net/g/collect","v=2&"+n.join("&")),n.join("&"));if(e){var q=function(){var u=Nt()+"/td/ga/rul?";n=[];c("tid");n.push("gacid="+encodeURIComponent(String(a.fa.cid)));c("gtm");p();
c("pscdl");a.fa._ng!=null&&c("_ng");n.push("aip=1");n.push("fledge=1");a.fa.frm!=null&&c("frm");Ai.j&&n.push("tag_exp="+Ai.j);n.push("z="+qb());var v=u+n.join("&");Lt(v,a.fa.tid)};Ai.j&&n.push("tag_exp="+Ai.j);n.push("z="+qb());if(!g){var r=f&&Eb(f,"google.")&&f!=="google.com"?"https://www.%/ads/ga-audiences?v=1&t=sr&slf_rd=1&_r=4&".replace("%",f):void 0;if(r){var t=r+n.join("&");zc(t)}}P(75)&&m&&!NE&&q()}}},VF=!1;
var YF=function(){this.K=1;this.P={};this.C=-1;this.j=new Yf};YF.prototype.F=function(a,b){var c=this,d=new GF(a,this.P,b),e=OE(a);e&&this.j.P(d)||this.flush();if(e&&this.j.add(d)){if(this.C<0){var f=z.setTimeout,g;Vs(a)?ZF?(ZF=!1,g=$F):g=aG:g=5E3;this.C=f.call(z,function(){c.flush()},g)}}else{var k=ag(d,this.K++);WF(d.baseUrl,k.params,k.body,d.F);var m=a.metadata.create_dc_join,n=a.metadata.create_google_join,p=T(a.m,Q.g.za)!==!1,q=Dn(a.m),r={eventId:a.m.eventId,priorityId:a.m.priorityId},t=a.j[Q.g.Cg],
u={Km:m,Lm:n,Gl:Rk(),yn:p,xn:q,Xl:Nk(),Wl:a.metadata.euid_mode_enabled,Cn:r,Bm:t,m:a.m};XF(d,u)}qv(a.m.eventId,a.eventName)};YF.prototype.add=function(a){a.metadata.euid_mode_enabled&&!NE?this.X(a):this.F(a)};YF.prototype.flush=function(){if(this.j.events.length){var a=cg(this.j,this.K++);WF(this.j.baseUrl,a.params,a.body,this.j.C);this.j=new Yf;this.C>=0&&(z.clearTimeout(this.C),this.C=-1)}};YF.prototype.X=function(a){var b=this,c=Us(a),d=P(68)&&!(c!=null&&Object.keys(c).length>0);!c||d?this.F(a):
vh(c,function(e){b.F(a,e.split("~").length===1?void 0:e)})};var $F=Oh('',500),aG=Oh('',5E3),ZF=!0;
var bG=function(a,b,c){c===void 0&&(c={});if(b==null)return c;if(typeof b==="object")for(var d=ka(Object.keys(b)),e=d.next();!e.done;e=d.next()){var f=e.value;bG(a+"."+f,b[f],c)}else c[a]=b;return c},cG=function(a){for(var b={},c=ka(a),d=c.next();!d.done;d=c.next()){var e=d.value;b[e]=!!U(e)}return b},eG=function(a,b){var c=dG.filter(function(e){return!U(e)});if(c.length){var d=cG(c);$k(c,function(){for(var e=cG(c),f=[],g=ka(c),k=g.next();!k.done;k=g.next()){var m=k.value;!d[m]&&e[m]&&f.push(m);e[m]&&
(d[m]=!0)}if(f.length){b.metadata.is_consent_update=!0;var n=f.map(function(p){return bi[p]}).join(".");n&&Rs(b,"gcut",n);a(b)}})}},fG=function(a){P(108)&&Vs(a)&&T(a.m,Q.g.Dd,!0)===!1&&(a.j[Q.g.Dd]=0)},gG=function(a,b){if(Vs(b)){var c=b.metadata.is_conversion;(b.eventName==="page_view"||c)&&eG(a,b)}},hG=function(a){if(Vs(a)&&a.eventName===Q.g.Kc&&a.metadata.is_consent_update){var b=a.j[Q.g.dg];b&&(Rs(a,"gcut",b),Rs(a,"syn",1))}},iG=function(a){P(109)&&Vs(a)&&T(a.m,Q.g.za)!==!1&&Jt("join-ad-interest-group")&&
mb(nc.joinAdInterestGroup)&&Rs(a,"flg",1)},jG=function(a){Vs(a)&&(a.metadata.speculative=!1)},kG=function(a){Vs(a)&&(a.metadata.speculative&&Rs(a,"sp",1),a.metadata.is_syn&&Rs(a,"syn",1),a.metadata.em_event&&(Rs(a,"em_event",1),Rs(a,"sp",1)))},lG=function(a){if(Vs(a)){var b=ui;b&&Rs(a,"tft",Number(b))}},mG=function(a){function b(e){var f=bG(Q.g.Ba,e);l(f,function(g,k){a.j[g]=k})}if(Vs(a)){var c=Ss(a,"ccd_add_1p_data",!1)?1:0;Rs(a,"ude",c);var d=T(a.m,Q.g.Ba);d!==void 0?(b(d),a.j[Q.g.jd]="c"):b(a.metadata.user_data);
a.metadata.user_data=void 0}},nG=function(a){if(Vs(a)){var b=fr();b&&Rs(a,"us_privacy",b);var c=xn();c&&Rs(a,"gdpr",c);var d=wn();d&&Rs(a,"gdpr_consent",d)}},oG=function(a){Vs(a)&&zk()&&T(a.m,Q.g.da)&&Rs(a,"adr",1)},pG=function(a){if(Vs(a)){var b=zF?Pk():"";b&&Rs(a,"gcsub",b)}},qG=function(a){if(Vs(a)){T(a.m,Q.g.kb,void 0,4)===!1&&Rs(a,"ngs",1);Nk()&&Rs(a,"ga_rd",1);rD()||Rs(a,"ngst",1);var b=Rk();b&&Rs(a,"etld",b)}},rG=function(a){},sG=function(a){Vs(a)&&zk()&&Rs(a,"rnd",Mq())},dG=[Q.g.O,Q.g.N];
var tG=function(a,b){var c;a:{var d=iF(a);if(d){if(gF(d,a)){c=d;break a}M(25);a.isAborted=!0}c=void 0}var e=c;return{clientId:ZE(a,b),Qa:e}},uG=function(a,b,c,d,e){var f=T(a.m,Q.g.lb);if(T(a.m,Q.g.Hb)&&T(a.m,Q.g.Ub))f?XE(a,f,1):(M(127),a.isAborted=!0);else{var g=f?1:8;a.metadata.is_new_to_site=!1;f||(f=aF(a),g=3);f||(f=b,g=5);if(!f){var k=U(Q.g.T),m=UE();f=!m.from_cookie||k?m.vid:void 0;g=6}f?f=""+f:(f=Ao(),g=7,a.metadata.is_first_visit=a.metadata.is_new_to_site=!0);XE(a,f,g)}var n=Math.floor(a.metadata.event_start_timestamp_ms/
1E3),p=void 0;a.metadata.is_new_to_site||(p=hF(a)||c);var q=ub(T(a.m,Q.g.gd,30));q=Math.min(475,q);q=Math.max(5,q);var r=ub(T(a.m,Q.g.qf,1E4)),t=bF(p);a.metadata.is_first_visit=!1;a.metadata.is_session_start=!1;a.metadata.join_timer_sec=0;t&&t.sh&&(a.metadata.join_timer_sec=Math.max(0,t.sh-Math.max(0,n-t.Ne)));var u=!1;t||(u=a.metadata.is_first_visit=!0,t={sessionId:String(n),Ic:1,wd:!1,Ne:n,Ec:!1,nd:void 0});n>t.Ne+q*60&&(u=!0,t.sessionId=String(n),t.Ic++,t.wd=!1,t.nd=void 0);if(u)a.metadata.is_session_start=
!0,d.Ml(a);else if(d.El()>r||a.eventName===Q.g.Rb)t.wd=!0;a.metadata.euid_mode_enabled?T(a.m,Q.g.ya)?t.Ec=!0:(t.Ec&&!P(12)&&(t.nd=void 0),t.Ec=!1):t.Ec=!1;var v=t.nd;if(a.metadata.euid_mode_enabled||Vs(a)){var w=T(a.m,Q.g.Nd),x=w?1:8;w||(w=v,x=4);w||(w=zo(),x=7);var y=w.toString(),A=x,B=a.metadata.enhanced_client_id_source;if(B===void 0||A<=B)a.j[Q.g.Nd]=y,a.metadata.enhanced_client_id_source=A}e?(a.copyToHitData(Q.g.tb,t.sessionId),a.copyToHitData(Q.g.Zd,t.Ic),a.copyToHitData(Q.g.Yd,t.wd?1:0)):(a.j[Q.g.tb]=
t.sessionId,a.j[Q.g.Zd]=t.Ic,a.j[Q.g.Yd]=t.wd?1:0);a.metadata[Q.g.jf]=t.Ec?1:0};var vG=window,wG=document,xG=function(a){var b=vG._gaUserPrefs;if(b&&b.ioo&&b.ioo()||wG.documentElement.hasAttribute("data-google-analytics-opt-out")||a&&vG["ga-disable-"+a]===!0)return!0;try{var c=vG.external;if(c&&c._gaUserPrefs&&c._gaUserPrefs=="oo")return!0}catch(p){}for(var d=[],e=String(wG.cookie).split(";"),f=0;f0&&RE(17);TG(a);uG(a,this.clientId,this.Qa,this.C,!this.Oa);UG(a);VG(a);WG(a);
XG(a);YG(a);ZG(a);$G(a);qF(a);uF(a);sG(a);rG(a);qG(a);pG(a);oG(a);nG(a);lG(a);kG(a);iG(a);hG(a);fG(a);rF(a);aH(a);bH(a);cH(a);qr(a);pr(a);dH(a);eH(a);Nr(a);mG(a);jG(a);fH(a);!this.K&&a.metadata.em_event&&RE(18);SE(a);if(a.metadata.speculative||a.isAborted){a.m.onFailure();TE();return}this.Sj(tG(a,this.clientId));this.Oa=!0;this.Pm(a);gH(a);gG(function(f){b.vj(f)},a);this.C.Hh();hH(a);if(a.isAborted){a.m.onFailure();TE();return}this.vj(a);a.m.onSuccess()}catch(f){a.m.onFailure()}TE()};aa.vj=function(a){this.X.add(a)};
aa.Sj=function(a){var b=a.clientId,c=a.Qa;b&&c&&(this.clientId=b,this.Qa=c)};aa.flush=function(){this.X.flush()};aa.Pm=function(a){var b=this;if(!this.P){var c=U(Q.g.N),d=U(Q.g.T);$k([Q.g.N,Q.g.T],function(){var e=U(Q.g.N),f=U(Q.g.T),g=!1,k={},m={};if(d!==f&&b.j&&b.Qa&&b.clientId){var n=b.clientId,p;var q=bF(b.Qa);p=q?q.nd:void 0;if(f){var r=aF(b.j);if(r){b.clientId=r;var t=hF(b.j);t&&(b.Qa=dF(t,b.Qa,b.j))}else YE(b.clientId,b.j),WE(b.clientId,!0);gF(b.Qa,b.j);g=!0;k[Q.g.qg]=n;P(57)&&p&&(k[Q.g.Ck]=
p)}else b.Qa=void 0,b.clientId=void 0,z.gaGlobal={}}e&&!c&&(g=!0,m.is_consent_update=!0,k[Q.g.dg]=bi[Q.g.N]);if(g){var u=zx(b.F,Q.g.Kc,k);Gx(u,a.m.eventId,{eventMetadata:m})}d=f;c=e});this.P=!0}};aa.Kk=function(a){a.eventName!==Q.g.Sa&&this.C.Jk(a)};var LG=function(a){var b=D.location.protocol;b!=="http:"&&b!=="https:"&&(M(29),a.isAborted=!0)},MG=function(a){nc&&nc.loadPurpose==="preview"&&(M(30),a.isAborted=!0)},NG=function(a){var b={prefix:String(T(a.m,Q.g.Ma,"")),path:String(T(a.m,Q.g.Eb,"/")),
flags:String(T(a.m,Q.g.Xa,"")),domain:String(T(a.m,Q.g.Ua,"auto")),yb:Number(T(a.m,Q.g.La,63072E3))};a.metadata.cookie_options=b},PG=function(a){if(a.metadata.is_merchant_center)a.metadata.euid_mode_enabled=!1;else if(Ss(a,"ccd_add_1p_data",!1)||Ss(a,"ccd_add_ec_stitching",!1))a.metadata.euid_mode_enabled=!0},QG=function(a){if(a.metadata.euid_mode_enabled&&Ss(a,"ccd_add_1p_data",!1)){var b=a.m.C[Q.g.ae];if(Qi(b)){var c=T(a.m,Q.g.Ba);c===null?a.metadata.user_data_from_code=null:(b.enable_code&&Qa(c)&&
(a.metadata.user_data_from_code=c),Qa(b.selectors)&&!a.metadata.user_data_from_manual&&(a.metadata.user_data_from_manual=Pi(b.selectors)))}}},RG=function(a){if(P(66)&&!P(65)&&Ss(a,"ga4_ads_linked",!1)&&a.eventName===Q.g.aa){var b=T(a.m,Q.g.na)!==!1;if(b){var c=gr(a);c.yb&&(c.yb=Math.min(c.yb,7776E3));hr({md:b,ud:T(a.m,Q.g.oa)||{},yd:T(a.m,Q.g.Va),ac:c})}}},aH=function(a){if(!Ct(z))M(87);else if(Ht!==void 0){M(85);var b=At();b?T(a.m,Q.g.Xd)&&!Vs(a)||Et(b,a):M(86)}},SG=function(a){a.eventName===Q.g.aa&&
(T(a.m,Q.g.Ha,!0)?(a.m.j[Q.g.ia]&&(a.m.F[Q.g.ia]=a.m.j[Q.g.ia],a.m.j[Q.g.ia]=void 0,a.j[Q.g.ia]=void 0),a.eventName=Q.g.Rb):a.isAborted=!0)},OG=function(a){function b(c,d){Sh[c]||d===void 0||(a.j[c]=d)}l(a.m.F,b);l(a.m.j,b)},UG=function(a){var b=El(a.m),c=function(d,e){FG[d]&&(a.j[d]=e)};Qa(b[Q.g.Pc])?l(b[Q.g.Pc],function(d,e){c((Q.g.Pc+"_"+d).toLowerCase(),e)}):l(b,c)},TG=DG,gH=function(a){if(P(91)&&U(Q.g.T)){Vs(a)&&(a.metadata.is_sgtm_service_worker=!0,Vs(a)&&Rs(a,"sw_exp",1));a:{}}},dH=function(a){if(a.eventName===Q.g.Sa){var b=T(a.m,Q.g.qb);T(a.m,Q.g.Fb)(a.j[b]||T(a.m,b));a.isAborted=!0}},VG=function(a){if(!T(a.m,Q.g.Ub)||!T(a.m,Q.g.Hb)){var b=a.copyToHitData,c=Q.g.qa,d="",e=D.location;if(e){var f=e.pathname||"";f.charAt(0)!=="/"&&(f="/"+f);var g=e.search||"";if(g&&g[0]==="?")for(var k=
g.substring(1).split("&"),m=0;m0&&e.charAt(0)!=="."&&(f--,e="."+e);if(f>=0&&c.indexOf(e,f)===f)return!0}}return!1}
function LI(a,b,c){for(var d={},e=!1,f=0;a&&f-1)return}else if(q==="write"){if(f.indexOf(r)>-1)return}else if(q==="readwrite"){if(f.indexOf(r)>-1&&e.indexOf(r)>-1)return}else if(q==="execute"){if(g.indexOf(r)>-1)return}else throw d(p,
{},"Operation must be either 'read', 'write', or 'execute', was "+q);throw d(p,{},"Prohibited "+q+" on global variable: "+r+".");},M:a}})}();Y.securityGroups.v=["google"],Y.__v=function(a){var b=a.vtp_name;if(!b||!b.replace)return!1;var c=YI(b.replace(/\\\./g,"."),a.vtp_dataLayerVersion||1);return c!==void 0?c:a.vtp_defaultValue},Y.__v.o="v",Y.__v.isVendorTemplate=!0,Y.__v.priorityOverride=0,Y.__v.isInfrastructure=!0,Y.__v.runInSiloedMode=!1;
Y.securityGroups.read_event_data=["google"],function(){function a(b,c){return{key:c}}(function(b){Y.__read_event_data=b;Y.__read_event_data.o="read_event_data";Y.__read_event_data.isVendorTemplate=!0;Y.__read_event_data.priorityOverride=0;Y.__read_event_data.isInfrastructure=!1;Y.__read_event_data.runInSiloedMode=!1})(function(b){var c=b.vtp_eventDataAccess,d=b.vtp_keyPatterns||[],e=b.vtp_createPermissionError;return{assert:function(f,g){if(g!=null&&!h(g))throw e(f,{key:g},"Key must be a string.");
if(c!=="any"){try{if(c==="specific"&&g!=null&&hg(g,d))return}catch(k){throw e(f,{key:g},"Invalid key filter.");}throw e(f,{key:g},"Prohibited read from event data.");}},M:a}})}();
Y.securityGroups.read_container_data=["google"],Y.__read_container_data=function(){return{assert:function(){},M:function(){return{}}}},Y.__read_container_data.o="read_container_data",Y.__read_container_data.isVendorTemplate=!0,Y.__read_container_data.priorityOverride=0,Y.__read_container_data.isInfrastructure=!1,Y.__read_container_data.runInSiloedMode=!1;
Y.securityGroups.detect_user_provided_data=["google"],function(){function a(b,c){return{dataSource:c}}(function(b){Y.__detect_user_providech,searchParams:e,hash:d.hash})}return c}var n;try{n=$i(a)}catch(w){return}if(!n.protocol||!n.host)return;var p={};if(n.search)for(var q=n.search.replace("?","").split("&"),r=0;r0&&e.charAt(0)!=="."&&(f--,e="."+e);if(f>=0&&c.indexOf(e,f)===f)return!0}}return!1}
function LI(a,b,c){for(var d={},e=!1,f=0;a&&f-1)return}else if(q==="write"){if(f.indexOf(r)>-1)return}else if(q==="readwrite"){if(f.indexOf(r)>-1&&e.indexOf(r)>-1)return}else if(q==="execute"){if(g.indexOf(r)>-1)return}else throw d(p,
{},"Operation must be either 'read', 'write', or 'execute', was "+q);throw d(p,{},"Prohibited "+q+" on global variable: "+r+".");},M:a}})}();Y.securityGroups.v=["google"],Y.__v=function(a){var b=a.vtp_name;if(!b||!b.replace)return!1;var c=YI(b.replace(/\\\./g,"."),a.vtp_dataLayerVersion||1);return c!==void 0?c:a.vtp_defaultValue},Y.__v.o="v",Y.__v.isVendorTemplate=!0,Y.__v.priorityOverride=0,Y.__v.isInfrastructure=!0,Y.__v.runInSiloedMode=!1;
Y.securityGroups.read_event_data=["google"],function(){function a(b,c){return{key:c}}(function(b){Y.__read_event_data=b;Y.__read_event_data.o="read_event_data";Y.__read_event_data.isVendorTemplate=!0;Y.__read_event_data.priorityOverride=0;Y.__read_event_data.isInfrastructure=!1;Y.__read_event_data.runInSiloedMode=!1})(function(b){var c=b.vtp_eventDataAccess,d=b.vtp_keyPatterns||[],e=b.vtp_createPermissionError;return{assert:function(f,g){if(g!=null&&!h(g))throw e(f,{key:g},"Key must be a string.");
if(c!=="any"){try{if(c==="specific"&&g!=null&&hg(g,d))return}catch(k){throw e(f,{key:g},"Invalid key filter.");}throw e(f,{key:g},"Prohibited read from event data.");}},M:a}})}();
Y.securityGroups.read_container_data=["google"],Y.__read_container_data=function(){return{assert:function(){},M:function(){return{}}}},Y.__read_container_data.o="read_container_data",Y.__read_container_data.isVendorTemplate=!0,Y.__read_container_data.priorityOverride=0,Y.__read_container_data.isInfrastructure=!1,Y.__read_container_data.runInSiloedMode=!1;
Y.securityGroups.detect_user_provided_data=["google"],function(){function a(b,c){return{dataSource:c}}(function(b){Y.__detect_user_provided_data=b;Y.__detect_user_provided_data.o="detect_user_provided_data";Y.__detect_user_provided_data.isVendorTemplate=!0;Y.__detect_user_provided_data.priorityOverride=0;Y.__detect_user_provided_data.isInfrastructure=!1;Y.__detect_user_provided_data.runInSiloedMode=!1})(function(b){var c=b.vtp_createPermissionError;return{assert:function(d,e){if(e!=="auto"&&e!=="manual"&&
e!=="code")throw c(d,{},"Unknown user provided data source.");if(b.vtp_limitDataSources)if(e!=="auto"||b.vtp_allowAutoDataSources){if(e==="manual"&&!b.vtp_allowManualDataSources)throw c(d,{},"Detection of user provided data via manually specified CSS selectors is not allowed.");if(e==="code"&&!b.vtp_allowCodeDataSources)throw c(d,{},"Detection of user provided data from an in-page variable is not allowed.");}else throw c(d,{},"Automatic detection of user provided data is not allowed.");},M:a}})}();
Y.securityGroups.gct=["google"],function(){function a(b){for(var c=[],d=0;d0&&(c[Q.g.gd]=d);c[Q.g.Qd]=b.vtp_eventSettings;c[Q.g.fg]=b.vtp_dynamicEventSettings;c[Q.g.xc]=b.vtp_googleSignals===1;c[Q.g.sg]=b.vtp_foreignTld;c[Q.g.pg]=b.vtp_restrictDomain===
1;c[Q.g.lf]=b.vtp_internalTrafficResults;var e=Q.g.oa,f=b.vtp_linker;f&&f[Q.g.U]&&(f[Q.g.U]=a(f[Q.g.U]));c[e]=f;var g=Q.g.nf,k=b.vtp_referralExclusionDefinition;k&&k.include_conditions&&(k.include_conditions=a(k.include_conditions));c[g]=k;var m=Oj(b.vtp_trackingId);pm(m,c);kH(m,b.vtp_gtmEventId);E(b.vtp_gtmOnSuccess)})}();
Y.securityGroups.get=["google"],Y.__get=function(a){var b=a.vtp_settings,c=b.eventParameters||{},d=String(a.vtp_eventName),e={};e.eventId=a.vtp_gtmEventId;e.priorityId=a.vtp_gtmPriorityId;a.vtp_deferrable&&(e.deferrable=!0);var f=zx(String(b.streamId),d,c);Gx(f,e.eventId,e);a.vtp_gtmOnSuccess()},Y.__get.o="get",Y.__get.isVendorTemplate=!0,Y.__get.priorityOverride=0,Y.__get.isInfrastructure=!1,Y.__get.runInSiloedMode=!1;
var cJ={};cJ.dataLayer=Ji;cJ.callback=function(a){wi.hasOwnProperty(a)&&mb(wi[a])&&wi[a]();delete wi[a]};cJ.bootstrap=0;cJ._spx=!1;
function dJ(){hi[Fj()]=hi[Fj()]||cJ;Sj();Wj()||l(Xj(),function(d,e){jw(d,e.transportUrl,e.context);M(92)});Cb(xi,Y.securityGroups);var a=Jj(Nj()),b,c=a==null?void 0:(b=a.context)==null?void 0:b.source;c!==2&&c!==4&&c!==3||M(142);qf=Hf}var eJ=!1;
(function(a){function b(){n=D.documentElement.getAttribute("data-tag-assistant-present");zy(n)&&(m=k.Vi)}function c(){m&&qc?g(m):a()}if(!z["__TAGGY_INSTALLED"]){var d=!1;if(D.referrer){var e=$i(D.referrer);d=Wi(e,"host")==="cct.google"}if(!d){var f=io("googTaggyReferrer");d=!(!f.length||!f[0].length)}d&&(z["__TAGGY_INSTALLED"]=!0,wc("https://cct.google/taggy/agent.js"))}var g=function(u){var v="GTM",w="GTM";ni&&(v="OGT",w="GTAG");var x=z["google.tagmanager.debugui2.queue"];x||(x=
[],z["google.tagmanager.debugui2.queue"]=x,wc("https://"+gi.Bd+"/debug/bootstrap?id="+Nf.ctid+"&src="+w+"&cond="+u+">m="+Xn()));var y={messageType:"CONTAINER_STARTING",data:{scriptSource:qc,containerProduct:v,debug:!1,id:Nf.ctid,targetRef:{ctid:Nf.ctid,isDestination:yj.je},aliases:Bj(),destinations:Ej()}};y.data.resume=function(){a()};gi.lk&&(y.data.initialPublish=!0);x.push(y)},k={Gk:1,Xi:2,mj:3,Yh:4,Vi:5};k[k.Gk]="GTM_DEBUG_LEGACY_PARAM";k[k.Xi]="GTM_DEBUG_PARAM";k[k.mj]="REFERRER";k[k.Yh]="COOKIE";k[k.Vi]="EXTENSION_PARAM";
var m=void 0,n=void 0,p=Ui(z.location,"query",!1,void 0,"gtm_debug");zy(p)&&(m=k.Xi);if(!m&&D.referrer){var q=$i(D.referrer);Wi(q,"host")==="tagassistant.google.com"&&(m=k.mj)}if(!m){var r=io("__TAG_ASSISTANT");r.length&&r[0].length&&(m=k.Yh)}m||b();if(!m&&Ay(n)){var t=!1;Bc(D,"TADebugSignal",function(){t||(t=!0,b(),c())},!1);z.setTimeout(function(){t||(t=!0,b(),c())},200)}else c()})(function(){try{var a;if(!(a=!P(58))){var b;if(!(b=eJ)){var c;a:{for(var d=wj().injectedFirstPartyContainers,e=ka(Aj()),
f=e.next();!f.done;f=e.next())if(d[f.value]){c=!0;break a}c=!1}b=!c}a=b}if(a){Qj();if(P(74)){}ib[12]=!0;rn();el();var g=Hj();if(wj().canonical[g]){var k=hi.zones;k&&k.unregisterChild(Aj());Vv().removeExternalRestrictions(Hj());}else{
It();a:{}Ai.j="0";Ai.K="";Ai.Oa="ad_storage|analytics_storage|ad_user_data|ad_personalization";Ai.X="ad_storage|analytics_storage|ad_user_data";Ai.P="4990";
Ai.P="4990";fw();for(var m=data.resource||{},n=m.macros||[],p=0;p