PageSourceSearch

https://www.floapay.nl/media/tc/tc_BanqueCasinoCB4X_21.js

js floapay.nl collected 2026-10-08 12:20:12 UTC 297,402 bytes, 4,071 lines download raw bytes

vendor: 5,461 bytes, lines 1-128
1/*
2 * tagContainer Generator v100.2
3 * Copyright Commanders Act
4 * https://www.commandersact.com/fr/
5 * Generated: 2025-12-04 15:56:47 Europe/Paris
6 * ---
7 * Version	: 90.05
8 * IDTC 	: 21
9 * IDS		: 4453
10 */
11
12if(typeof tC == 'undefined'){
13    if (typeof document.domain == 'undefined' ||typeof document.referrer == 'undefined')
14        document = window.document; // eslint-disable-line no-global-assign, no-implicit-globals
15
16    /*
17    if (typeof console == 'undefined' || typeof console.log == 'undefined')
18        var console = {
19            log        : function() {},
20            error    : function() {},
21            warn    : function() {}
22        };
23     */
24
25
26    (function(window, undefined) {
27        var
28        roottC,
29        readyList,
30        document         = window.document,
31        location         = window.location,
32        navigator         = window.navigator,
33        _tC             = window.tC,
34        _$                 = window.$,
35        core_push         = Array.prototype.push,
36        core_slice         = Array.prototype.slice,
37        core_indexOf     = Array.prototype.indexOf,
38        core_toString     = Object.prototype.toString,
39        core_hasOwn     = Object.prototype.hasOwnProperty,
40        core_trim         = String.prototype.trim,
41        tC = function(selector, context) {
42            return new tC.fn.init(selector, context, roottC);
43        },
44        core_pnum        = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,
45        core_rnotwhite    = /\S/,
46        core_rspace        = /\s+/,
47        rtrim            = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
48        rquickExpr        = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
49        rsingleTag        = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
50        rvalidchars        = /^[\],:{}\s]*$/,
51        rvalidbraces    = /(?:^|:|,)(?:\s*\[)+/g,
52        rvalidescape    = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
53        rvalidtokens    = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,
54        rmsPrefix        = /^-ms-/,
55        rdashAlpha        = /-([\da-z])/gi, fcamelCase = function(all, letter) {
56            return (letter + "").toUpperCase();
57        },
58        class2type = {};
59
60        tC.fn = tC.prototype = {
61            constructor : tC,
62            init : function(selector, context, roottC) {
63                var match, elem, ret, doc;
64                if (!selector) {
65                    return this;
66                }
67                if (selector.nodeType) {
68                    this.context = this[0] = selector;
69                    this.length = 1;
70                    return this;
71                }
72                if ( typeof selector === "string") {
73                    if (selector.charAt(0) === "<" && selector.charAt(selector.length - 1) === ">" && selector.length >= 3) {
74                        match = [null, selector, null];
75                    } else {
76                        match = rquickExpr.exec(selector);
77                    }
78                    if (match && (match[1] || !context)) {
79                        if (match[1]) {
80                            context        = context instanceof tC ? context[0] : context;
81                            doc            = (context && context.nodeType ? context.ownerDocument || context : document);
82                            selector    = tC.parseHTML(match[1], doc, true);
83                            if (rsingleTag.test(match[1]) && tC.isPlainObject(context)) {
84                                this.attr.call(selector, context, true);
85                            }
86                            return tC.merge(this, selector);
87                        } else {
88                            elem = document.getElementById(match[2]);
89                            if (elem && elem.parentNode) {
90                                if (elem.id !== match[2]) {
91                                    return roottC.find(selector);
92                                }
93                                this.length = 1;
94                                this[0] = elem;
95                            }
96                            this.context = document;
97                            this.selector = selector;
98                            return this;
99                        }
100                    } else if (!context || context.tC) {
101                        return (context || roottC).find(selector);
102                    } else {
103                        return this.constructor(context).find(selector);
104                    }
105                } else if (tC.isFunction(selector)) {
106                    return roottC.ready(selector);
107                }
108                if (selector.selector !== undefined) {
109                    this.selector = selector.selector;
110                    this.context = selector.context;
111                }
112                return tC.makeArray(selector, this);
113            },
114            each : function(callback, args) {
115                return tC.each(this, callback, args);
116            },
117            ready : function(fn) {
118                // Add the callback
119                //tC.ready.promise().done(fn);
120                //CORRECTION SF/DP ... A VALIDER PAR MG
121                tC.ready.promise(fn);
122                return this;
123            }
124        };
125
126        tC.fn.init.prototype = tC.fn;
127        tC.extend = tC.fn.extend = function() {
128            var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false;
129            if ( typeof target === "boolean") {
130                deep = target;
131                target = arguments[1] || {};
132                i = 2;
133            }
134            if ( typeof target !== "object" && !tC.isFunction(target)) {
135                target = {};
136            }
137            if (length === i) {
138                target = this; --i;
139            }
140            for (; i < length; i++) {
141                if (( options = arguments[i]) != null) {
142                    for (name in options) {
143                        src = target[name];
144                        copy = options[name];
145                        if (target === copy) {
146                            continue;
147                        }
148                        if (deep && copy && (tC.isPlainObject(copy) || ( copyIsArray = tC.isArray(copy)))) {
149                            if (copyIsArray) {
150                                copyIsArray = false;
151                                clone = src && tC.isArray(src) ? src : [];
152                            } else {
153                                clone = src && tC.isPlainObject(src) ? src : {};
154                            }
155                            target[name] = tC.extend(deep, clone, copy);
156                        } else if (copy !== undefined) {
157                            target[name] = copy;
158                        }
159                    }
160                }
161            }
162            return target;
163        };
164
165        tC.extend({
166            ssl : "https://manager.",
167            randOrd : function(){
168                return (Math.round(Math.random())-0.5);
169            },
170            nodeNames : "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
171                "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
172            rnocache : /<(?:script|object|embed|option|style)/i,
173            rnoshimcache : new RegExp("<(?:" + tC.nodeNames + ")[\\s/>]", "i"),
174            rchecked : /checked\s*(?:[^=]|=\s*.checked.)/i,
175            containersLaunched  : {}
176        });
177
178        tC.extend({
179            inArray: function( elem, arr, i ) {
180                var len,
181                    core_indexOf     = Array.prototype.indexOf;
182
183                if ( arr ) {
184                    if ( core_indexOf ) {
185                        return core_indexOf.call( arr, elem, i );
186                    }
187
188                    len = arr.length;
189                    i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
190
191                    for ( ; i < len; i++ ) {
192                        if ( i in arr && arr[ i ] === elem ) {
193                            return i;
194                        }
195                    }
196                }
197                return -1;
198            },
199            isFunction : function(obj) {
200                return tC.type(obj) === "function";
201            },
202            isArray : Array.isArray || function(obj) {
203                return tC.type(obj) === "array";
204            },
205            isWindow : function(obj) {
206                return obj != null && obj == obj.window;
207            },
208            isNumeric : function(obj) {
209                return !isNaN(parseFloat(obj)) && isFinite(obj);
210            },
211            type : function(obj) {
212                return obj == null ? String(obj) : class2type[core_toString.call(obj)] || "object";
213            },
214            each : function(obj, callback, args) {
215                var name, i = 0, length = obj.length, isObj = length === undefined || tC.isFunction(obj);
216                if (args) {
217                    if (isObj) {
218                        for (name in obj) {
219                            if (callback.apply(obj[name], args) === false) {
220                                break;
221                            }
222                        }
223                    } else {
224                        for (; i < length; ) {
225                            if (callback.apply(obj[i++], args) === false) {
226                                break;
227                            }
228                        }
229                    }
230                } else {
231                    if (isObj) {
232                        for (name in obj) {
233                            if (callback.call(obj[name], name, obj[name]) === false) {
234                                break;
235                            }
236                        }
237                    } else {
238                        for (; i < length; ) {
239                            if (callback.call(obj[i], i, obj[i++]) === false) {
240                                break;
241                            }
242                        }
243                    }
244                }
245                return obj;
246            },
247            log : function(v, t) {
248                try {
249                    if(tC.getCookie('tCdebugLib') && console) console[t ? t : 'log'](v); // eslint-disable-line no-console
250                }catch(e) {}
251            }
252        });
253
254        tC.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
255            class2type["[object " + name + "]"] = name.toLowerCase();
256        });
257
258        roottC = tC(document);
259        var optionsCache = {};
260
261        function createOptions(options) {
262            var object = optionsCache[options] = {};
263            tC.each(options.split(core_rspace), function(_, flag) {
264                object[flag] = true;
265            });
266            return object;
267        }
268
269        tC.buildFragment = function( args, context, scripts ) {
270            var fragment, cacheable, cachehit,
271                first = args[ 0 ];
272
273            // Set context from what may come in as undefined or a jQuery collection or a node
274            // Updated to fix #12266 where accessing context[0] could throw an exception in IE9/10 &
275            // also doubles as fix for #8950 where plain objects caused createDocumentFragment exception
276            context = context || document;
277            context = !context.nodeType && context[0] || context;
278            context = context.ownerDocument || context;
279
280            // Only cache "small" (1/2 KB) HTML strings that are associated with the main document
281            // Cloning options loses the selected state, so don't cache them
282            // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
283            // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
284            // Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501
285            if ( args.length === 1 && typeof first === "string" && first.length < 512 && context === document &&
286                first.charAt(0) === "<" && !tC.rnocache.test( first ) &&
287                (tC.support.checkClone || !tC.rchecked.test( first )) &&
288                (tC.support.html5Clone || !tC.rnoshimcache.test( first )) ) {
289
290                // Mark cacheable and look for a hit
291                cacheable = true;
292                fragment = jQuery.fragments[ first ];
293                cachehit = fragment !== undefined;
294            }
295
296            if ( !fragment ) {
297                fragment = context.createDocumentFragment();
298                tC.clean( args, context, fragment, scripts );
299
300                // Update the cache, but only store false
301                // unless this is a second parsing of the same content
302                if ( cacheable ) {
303                    tC.fragments[ first ] = cachehit && fragment;
304                }
305            }
306
307            return { fragment: fragment, cacheable: cacheable };
308        };
309
310        window.tC = tC;
311    })(window);
312
313    /*NON utilisée - SF/MG 17/12/2013
314    function createSafeFragment( document ) {
315        var list = nodeNames.split( "|" ),
316        safeFrag = document.createDocumentFragment();
317
318        if ( safeFrag.createElement ) {
319            while ( list.length ) {
320                safeFrag.createElement(
321                    list.pop()
322                );
323            }
324        }
325        return safeFrag;
326    }*/
327}
328(function() {
329    if (!tC.maindomain) {
330        var hostname = location.hostname;
331        var tb = hostname.split('.');
332        // eslint-disable-next-line no-useless-escape
333        var ipregexp = '^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$';
334        //if local domain without extension or domain is one ip
335        if(
336            tb.length  < 2 || hostname.match(ipregexp)
337        ){
338            tC.maindomain = hostname;
339        //else it's one other domain
340        }else{
341            tC.maindomain = tb[tb.length - 2] + '.' + tb[tb.length - 1];
342        }
343    }
344
345    var currentContainer = {
346        id_container           : String(21),
347        id_site                : String(4453),
348        frequency              : String(30),
349        containerVersion       : String(90.05),
350        generatorVersion       : String('100.2'),
351        containerStart         : Date.now(),
352        sourceKey              : String('afa25364-eefd-4f0d-8991-c82db928061e'),
353        defaultCdnDomain       : String('cdn.trustcommander.net'),
354    };
355
356    tC.config = tC.config || {};
357    tC.extend({
358        internalvars           : typeof tC.internalvars !== 'undefined' ? tC.internalvars : {},
359        internalFunctions      : typeof tC.internalFunctions !== 'undefined' ? tC.internalFunctions : {},
360        privacyVersion         : tC.privacyVersion || '',
361        id_container           : currentContainer.id_container,
362        id_site                : currentContainer.id_site,
363        containerVersion       : currentContainer.containerVersion,
364        generatorVersion       : currentContainer.generatorVersion,
365        defaultCdnDomain       : currentContainer.defaultCdnDomain,
366        dedup_done             : typeof tC.dedup_done !== 'undefined' ? tC.dedup_done : false,
367        // Unique timestamp for first container loaded
368        containerStart         : tC.containerStart || currentContainer.containerStart,
369        config                 : tC.config,
370    });
371
372    var internalvarsSite = {};
373    internalvarsSite['internalvars_' + currentContainer.id_site] = typeof tC['internalvars_' + currentContainer.id_site] !== 'undefined' ? tC['internalvars_' + currentContainer.id_site] 
373: {};
374    tC.extend(internalvarsSite);
375
376    window['tC_' + currentContainer.id_site + '_' + currentContainer.id_container] = currentContainer;
377
378    tC.extend({
379        launchTag           : function (id, label, template, idSite, idContainer, idTrigger) {
380            if(typeof idTrigger === 'undefined'){
381                idTrigger = 0;
382            }
383
384            tC.array_launched_tags.push(label);
385            tC.array_launched_tags_keys.push(id);
386
387            tC.containersLaunched[idSite][idContainer].t.push({
388                id      : id,
389                label   : label,
390                idTpl   : template
391            });
392
393            window.top.postMessage('TC.EX:{"id":"'+id+'","idc":"'+idContainer+'","idt":"'+template+'","ids":"'+idSite+'","lb":"'+label.replace(/"/g, '\\"')+'","idtr":"'+idTrigger+'"}', '*');
394
395        }
396    });
397
398    if (typeof tC.containersLaunched === 'undefined') {
399        tC.containersLaunched = {};
400    }
401
402    if (typeof tC.containersLaunched[currentContainer.id_site] === 'undefined') {
403        tC.containersLaunched[currentContainer.id_site] = {};
404    }
405
406    tC.containersLaunched[currentContainer.id_site][currentContainer.id_container] = {v:currentContainer.containerVersion, t:[], g:currentContainer.generatorVersion};
407
408    /*extends*/
409    
410tC.coreReadyStandalone = true;
411if (tC.isDOMReady) {
412    tC.coreReadyStandalone = false;
413}
414
415tC.domReady = tC.domReady || false;
416
417tC.isDOMReady = tC.isDOMReady || function() {
418    if (document.readyState === 'complete' || document.readyState === 'loaded')
419        return true;
420    if (document.readyState !== 'interactive')
421        return false;
422    if (!document.documentElement.doScroll)
423        return true;
424    try {
425        document.documentElement.doScroll('left');
426        return true;
427    } catch (e) {
428        return false;
429    }
430};
431
432tC.waitingOnDomReadyCallBacks = tC.waitingOnDomReadyCallBacks || [];
433
434tC.excuteOnDomReadyCallBacks = tC.excuteOnDomReadyCallBacks || function() {
435    for (var i = 0; i < tC.waitingOnDomReadyCallBacks.length; i++) {
436        tC.waitingOnDomReadyCallBacks[i]();
437    }
438    tC.waitingOnDomReadyCallBacks = [];
439};
440
441tC.onDomReady = tC.onDomReady || function(callback) {
442
443    if(this.domReady){
444        callback();
445        return;
446    }
447
448    tC.waitingOnDomReadyCallBacks.push(callback);
449    var browserTypeSet = false;
450    /* Mozilla, Chrome, Opera */
451    if (document.addEventListener) {
452        browserTypeSet = true;
453        document.addEventListener('DOMContentLoaded', function() {
454            document.removeEventListener('DOMContentLoaded', arguments.callee, false);
455            tC.excuteOnDomReadyCallBacks();
456        }, false);
457    }
458    // If IE event model is used
459    else if (document.attachEvent) {
460        browserTypeSet = true;
461        // ensure firing before onload,
462        // maybe late but safe also for iframes
463        document.attachEvent('onreadystatechange', function() {
464            if (document.readyState === 'complete') {
465                document.detachEvent('onreadystatechange', arguments.callee);
466                tC.excuteOnDomReadyCallBacks();
467            }
468        });
469
470        // If IE and not an iframe
471        // continually check to see if the document is ready
472        if (document.documentElement.doScroll && window === window.top)
473            (function() {
474                if (tC.domReady)
475                    return;
476
477                try {
478                    // If IE is used, use the trick by Diego Perini
479                    // http://javascript.nwbox.com/IEContentLoaded/
480                    document.documentElement.doScroll('left');
481                } catch( error ) {
482                    setTimeout(arguments.callee, 0);
483                    return;
484                }
485
486                // and execute any waiting functions
487                tC.excuteOnDomReadyCallBacks();
488            })();
489    }
490    /* Other web browsers */
491    if (!browserTypeSet) {
492        window.onload = tC.excuteOnDomReadyCallBacks;
493    }
494};
495
496if (tC.coreReadyStandalone === true) {
497    if(tC.isDOMReady()){
498        tC.domReady = true;
499    }else{
500        tC.onDomReady(function() {
501            tC.domReady = true;
502        });
503    }
504}
505
506(function() {
507    'use strict';
508    tC.cactUtils = {};
509
510    var defaultCallback = function() {};
511    tC.cactUtils.formatArgumentsV2 = function(args) {
512        var message = {};
513        var nextArg = 0;
514
515        if (typeof args[nextArg] === 'string') {
516            message.event = args[nextArg++];
517        }
518        if (typeof args[nextArg] === 'object') {
519            message.properties = Object.assign({}, args[nextArg++]);
520        }
521        if (typeof args[nextArg] === 'object') {
522            message.config = Object.assign({}, args[nextArg++]);
523        }
524        if (typeof args[nextArg] === 'function') {
525            message.callback = args[nextArg++];
526        }
527        message.properties = message.properties || {};
528        message.config = message.config || {};
529        message.callback = message.callback || defaultCallback;
530        return message;
531    };
532})();
533
534(function() {
535    'use strict';
536
537    var tC = window.tC;
538    var apiVersion = 2;
539
540    if (tC == null || (tC.cact && tC.cactInfo && tC.cactInfo.apiVersion >= apiVersion)) {
541        return;
542    }
543
544    var isArrayLike = function(message) {
545        return message.toString() === '[object Arguments]' || Array.isArray(message);
546    };
547
548    var formatOldQueue = function(queue) {
549        return queue.map(function(message) {
550            if (isArrayLike(message)) {
551                return message;
552            }
553
554            var args = JSON.parse(JSON.stringify(message));
555            var _done = args._done;
556            delete args.event;
557            delete args.callback;
558            delete args._done;
559
560            var newMessage;
561            if (Object.keys(args).length !== 0) {
562                newMessage = [ message.event, args, message.callback ];
563            } else {
564                newMessage = [ message.event, message.callback ];
565            }
566            if (_done) {
567                newMessage._tc_meta = { done: _done };
568            }
569            return newMessage;
570        });
571    };
572
573    window.caReady = window.caReady || [];
574    window.cact = window.cact || function() {
575        window.caReady.push(arguments);
576    };
577
578    if (tC.cact) { // there is a version to override
579        window.caReady = formatOldQueue(window.caReady); // this will also remove the push override
580    }
581
582    tC.cact = tC.cact || {}; // namespace for container apis
583    tC.cactInfo = { apiVersion: apiVersion };
584
585    var processEvent = function(message) {
586        message._tc_meta = message._tc_meta || {};
587        var command = message[0];
588        if (message._tc_meta.done || tC.cact[command] == null) {
589            return;
590        }
591
592        // preserve from infinite recursion
593        message._tc_meta = message._tc_meta || {};
594        message._tc_meta.done = true;
595
596        var version = tC.cact[command]._tc_version;
597        message = Array.prototype.slice.call(message, version == null ? 0 : 1); // from version 2, strip command
598        if (version == null) {
599            var formatedMessage = formatArgumentsV1(message);
600            tC.cact[command](formatedMessage, formatedMessage.callback);
601        } else {
602            tC.cact[command].apply(tC.cact, message);
603        }
604    };
605
606    var defaultCallback = function() {};
607    var formatArgumentsV1 = function(args) {
608        var message;
609        var callback;
610        if (typeof args[1] === 'object') {
611            message = args[1];
612            callback = args[2];
613        } else if (typeof args[1] === 'function') {
614            message = {};
615            callback = args[1];
616        } else {
617            message = {};
618        }
619        message.event = args[0];
620        message.callback = callback || defaultCallback;
621        return message;
622    };
623
624    var processAllEvents = function() {
625        for (var i = 0; i < window.caReady.length; ++i) {
626            processEvent(window.caReady[i]);
627        }
628        var message = tC.cactUtils.formatArgumentsV2(arguments);
629        if (message && message.callback) message.callback(); // mostly for test purposes on the "exec" command
630    };
631    tC.cact.exec = processAllEvents;
632
633    var pushEvent = function(message) {
634        Array.prototype.push.call(window.caReady, message);
635        processEvent(message);
636    };
637    Object.defineProperty(window.caReady, 'push', { configurable: true, value: pushEvent });
638
639    tC.cact.exec();
640})();
641
642(function () {
643    'use strict';
644
645    tC.config = tC.config || {};
646    tC.cact.config = function () {
647        var args = tC.cactUtils.formatArgumentsV2(arguments);
648        var callback = args.callback;
649
650        Object.assign(tC.config, args.properties);
651        callback();
652    };
653
654    tC.cact.config._tc_version = 2;
655
656})();
657
658(function () {
659    'use strict';
660
661    var getElement = function(eventOrElement) {
662        var element;
663        if (eventOrElement instanceof Event) {
664            element = eventOrElement.target;
665        } else {
666            element = eventOrElement;
667        }
668
669        return element instanceof Element ? element : null;
670    };
671
672    tC.cact.trigger = function () {
673        var args = tC.cactUtils.formatArgumentsV2(arguments);
674        var event = args.event;
675        var properties = Object.assign({}, args.properties);
676        var config = args.config;
677        var callback = args.callback;
678
679        if (typeof event !== 'string' || event === '') {
680            return;
681        }
682        if (tC.trigger) {
683            var eventTarget = getElement(properties.from);
684            if (eventTarget) {
685                config.eventTarget = eventTarget;
686                delete properties.from;
687            }
688            tC.trigger({
689                event: event,
690                properties: properties,
691                config: config,
692            });
693        }
694        callback();
695        return tC.uniqueEventIndex;
696    };
697    tC.cact.trigger._tc_version = 2;
698
699    tC.cact.setProperty = function (key, value) {
700        if (!tC.set || typeof key !== 'string') {
701            return;
702        }
703        tC.config = tC.config || {};
704        tC.config.eventData = tC.config.eventData || {};
705        tC.set(tC.config.eventData, key, value);
706    };
707    tC.cact.setProperty._tc_version = 2;
708
709    tC.cact.dispatchEvent = function() {
710        var args = tC.cactUtils.formatArgumentsV2(arguments);
711        var event = args.event;
712        var properties = Object.assign({}, args.properties);
713        var config = Object.assign({}, args.config);
714        var callback = args.callback;
715
716        config.eventData = properties;
717        var eventTarget = getElement(properties.from);
718        if (eventTarget) {
719            config.eventTarget = eventTarget;
720            delete properties.from;
721        }
722        tC.eventTarget.dispatchEvent(event, config);
723        callback();
724    };
725    tC.cact.dispatchEvent._tc_version = 2;
726    tC.cact.emit = tC.cact.dispatchEvent; // alias for dispatchEvent
727
728    tC.cact.addEventListener = function() {
729        var args = tC.cactUtils.formatArgumentsV2(arguments);
730        var event = args.event;
731        var callback = args.callback;
732
733        return tC.eventTarget.addEventListener(event, callback);
734    };
735    tC.cact.addEventListener._tc_version = 2;
736    tC.cact.on = tC.cact.addEventListener; // alias for addEventListener
737
738    tC.cact.once = function() {
739        var args = tC.cactUtils.formatArgumentsV2(arguments);
740        var event = args.event;
741        var callback = args.callback;
742
743        return tC.eventTarget.once(event, callback);
744    };
745    tC.cact.once._tc_version = 2;
746
747    tC.cact.removeEventListener = function() {
748        var args = tC.cactUtils.formatArgumentsV2(arguments);
749        var event = args.event;
750        var callback = args.callback;
751
752        return tC.eventTarget.removeEventListener(event, callback);
753    };
754    tC.cact.removeEventListener._tc_version = 2;
755    tC.cact.off = tC.cact.removeEventListener; // alias for removeEventListener
756})();
757
758/*
759 *
760 */
761tC.extend({
762    isCurrentVersion:function(){
763        if (Boolean(tC.bypassBookmarklet) === true) {
764            return true;
765        }
766        /*
767         * return true :
768         * - if bm is disable,
769         * - if bm is enable but the container is loaded by the bookmarklet
770         * else return false
771         */
772        var v = tC.getCookie('tc_mode_test');
773        var t = 'testModeIncludeReplaceThisByTrue' ;
774        /*
775         * info : 'testModeIncludeReplaceThisByTrue' is replaced by "true" by the test mode include script
776         */
777        return v !== '1' || (v === '1' && t === 'true');
778    }
779});
780
781
782
783/*
784 * Extension pixelTrack
785 *
786 * @vars
787 */
788
789tC.pixelTrack = tC.pixelTrack || {
790    add : function(u, t) {
791        u = u || 0;
792        t = t || 'img';
793        tC.onDomReady(function() {
794            var d;
795            if(t === 'iframe'){
796                d = document.createElement(t);
797                d.src = u;
798                d.width = 1;
799                d.height = 1;
800                d.style.display = 'none';
801                document.body.appendChild(d);
802            }else{
803                d = new Image();
804                d.src = u;
805            }
806        });
807    }
808};
809
810tC.setCookie = tC.setCookie || function(name, value, expires, path, domain, secure, sameSite) {
811    if (!domain) {
812        domain = tC.domain();
813    }
814
815    tC.config = tC.config || {};
816    tC.cookieForceSameSite = tC.cookieForceSameSite || '';
817    sameSite = sameSite || tC.config.cookieForceSameSite || tC.cookieForceSameSite;
818
819    if (!tC.isSameSiteContext()) {
820        sameSite = 'None'; // 'Lax' and 'Strict' will not work in cross-site context iframes
821    }
822    if (!sameSite) {
823        sameSite = tC.isSubdomain(domain) ? 'Lax': 'None';
824    }
825
826    tC.cookieForceSecure = tC.cookieForceSecure != null ? tC.cookieForceSecure : '';// "first container wins"
827    if (secure == null) {
828        secure = tC.config.cookieForceSecure; // value from cact('config')
829    }
830    if (secure == null) {
831        secure = tC.cookieForceSecure; // value manually set in customJS
832    }
833    secure = Boolean(Number(secure)); // double-cast to handle properly '0' value (0 as a string);
834
835    if (sameSite.toLowerCase() === 'none') {// even if we want to force secure setting, SameSite=None must not be set withtout secure flag (or popular browsers may not set cookie)
836        secure = true;
837    }
838
839    var today = new Date();
840    today.setTime(today.getTime());
841    if (expires)
842        expires = expires * 1000 * 60 * 60 * 24;
843    var expires_date = new Date(today.getTime() + (expires));
844
845    var cookieString = name + '=' + tC.cookieEncode(value)
846        + ((expires) ? ';expires=' + expires_date.toGMTString() : '' )
847        + ((path) ? ';path=' + path : ';path=/' )
848        + ((domain) ? ';domain=' + domain : '' )
849        + ((secure) ? ';secure' : '' )
850        + ';SameSite=' + sameSite;
851    document.cookie = cookieString;
852};
853
854tC.cookieEncode = tC.cookieEncode || function (value) {
855    var specialChars = {
856        '!': '%21',
857        "'": '%27',
858        '(': '%28',
859        ')': '%29',
860        '~': '%7E',
861    };
862    var encoded = encodeURIComponent(value)
863        .replace(/[!~'()]/g, function(x) {
864            return specialChars[x];
865        });
866    return encoded;
867};
868
869tC.getCookie = tC.getCookie || function(key) {
870    if (key == null) {
871        return '';
872    }
873    var whitelist = '@$'.split('');
874    var hasWhitelistChars = whitelist.some(function(c) {
875        return key.indexOf(c) !== -1;
876    });
877    if (!hasWhitelistChars) {
878        key = encodeURIComponent(key);
879    } else {
880        key = key.replace('$', '\\$');
881    }
882    var result = new RegExp('(?:^|; )' + key + '=([^;]*)').exec(document.cookie);
883    if (result) {
884        var decodedValue = '';
885        try {
886            decodedValue = decodeURIComponent(result[1]);
887        } catch(e) {
888            decodedValue = unescape(result[1]);
889        }
890        return decodedValue;
891    }
892
893    return '';
894};
895
896tC.cookieCheck = function(options) {
897    options = options || {};
898    var domain = options.domain ? ';domain=' + options.domain : '';
899    var samesite = options.samesite ? ';samesite=' + options.samesite : '';
900    var cookieName = 'tc_test_cookie';
901    var cookieValue = Math.random().toString(36).substr(2, 9);
902
903    var cookieSet;
904    var cookieString =
905        cookieName + '=' + cookieValue + ';expires=0;path=/;' + samesite + domain;
906    document.cookie = cookieString;
907
908    var match = new RegExp('(?:^|; )' + cookieName + '=([^;]*)').exec(document.cookie);
909    if (match) match = match[1];
910    cookieSet = match === cookieValue;
911    if (cookieSet) {
912        cookieString =
913            cookieName + '=;expires=' + new Date(0).toUTCString() + ';path=/;' + samesite + domain;
914        document.cookie = cookieString;
915    }
916    return cookieSet;
917};
918
919tC._samesite = tC._samesite || null;
920tC.isSameSiteContext = tC.isSameSiteContext || function() {
921    if (tC._samesite != null) {
922        return tC._samesite;
923    }
924    if (tC.isCrossDomainContext()) {
925        tC._samesite = false;
926    } else {
927        tC._samesite = tC.cookieCheck({ samesite: 'lax' });
928    }
929    return tC._samesite;
930};
931
932tC.isCookieEnabled = function () {
933    // Quick test if browser has cookieEnabled host property
934    if (navigator.cookieEnabled && window.navigator.userAgent.indexOf('MSIE') === -1) {
935        return true;
936    }
937    return tC.cookieCheck();
938};
939
940tC.removeCookie = tC.removeCookie || function (name, domain) {
941    this.setCookie(name, '', -1, '/', domain);
942};
943
944/*
945 * Extension domain
946 */
947
948tC._domain = tC._domain || null;
949tC.domain = tC.domain || function() {
950    if (tC._domain != null) {
951        return tC._domain;
952    }
953
954    var domainParts = (tC.tc_hdoc.domain || '').toLowerCase().split('.');
955    var domainLength = domainParts.length;
956    if (domainLength === 0) {
957        return '';
958    }
959
960    var cookieCheck = false;
961    var domain;
962    for (var domainLevel = 2; !cookieCheck && domainLevel <= domainLength; ++domainLevel) {
963        domain = '.' + domainParts.slice(domainLength - domainLevel, domainLength).join('.');
964        cookieCheck = tC.cookieCheck({ domain: domain });
965    }
966
967    tC._domain = domain || '';
968    return tC._domain;
969};
970
971tC.getDomainLevels = tC.getDomainLevels || function() {
972    var splitted = (tC.tc_hdoc.domain || '').toLowerCase().split('.');
973    var subdomains = splitted.map(function(level, index) {
974        return '.' + splitted.slice(index).join('.');
975    });
976    subdomains.pop();
977    subdomains.reverse();
978    return subdomains;
979};
980
981tC.isSubdomain = tC.isSubdomain || function(domain) {
982    if (domain && domain[0] === '.') {
983        domain = domain.substr(1, domain.length - 1);
984    }
985    return new RegExp(domain + '$').test(tC.tc_hdoc.domain);
986};
987
988tC.isCrossDomainContext = tC.isCrossDomainContext || function() {
989    try{
990        window.top.document;
991        return false;
992    }catch(e){
993        return true;
994    }
995};
996
997tC.tc_hdoc = tC.tc_hdoc || false;
998if (!tC.tc_hdoc) {
999    // if iframe with different domain/alias => get domain of the iframe as fallback
1000    tC.tc_hdoc = tC.isCrossDomainContext() ? window.document : window.top.document;
1001}
1002
1003tC.isTcDns = function(dns) {
1004    dns = dns || '';
1005    if (dns === '') {
1006        return false;
1007    }
1008    return dns.indexOf('.commander1.com') !== -1 || dns.indexOf('.tagcommander.com') !== -1;
1009};
1010
1011tC.isCustomDns = function(dns) {
1012    dns = dns || '';
1013    if (dns === '') {
1014        return false;
1015    }
1016    return !tC.isTcDns(dns);
1017};
1018
1019(function(){
1020    tC.getCdnDomainList = tC.getCdnDomainList || function() {
1021        return [] || [];
1022    };
1023
1024    tC.getClientDnsList = tC.getClientDnsList || function() {
1025        return ['delta.floapay.it', 'delta.floapay.fr', 'delta.floapay.pt', 'delta.floapay.es', 'delta.floapay.nl', 'delta.floapay.be', 'delta.floapay.de', 'delta.floapay.com'] || [];
1026    };
1027
1028    var getDomainMatcher = function(getFromCache, getDomainList) {
1029        return function() {
1030            var cachedDomain = getFromCache();
1031            if (cachedDomain) {
1032                return cachedDomain;
1033            }
1034
1035            var domainLevels = tC.getDomainLevels().map(function (domain) {
1036                return new RegExp('^[\\w,\\d,\\-]*' + domain.replace('.', '\\.') + '$');
1037            });
1038
1039            var domainList = getDomainList();
1040            var matchingDomain = domainList.find(function (dns) {
1041                return domainLevels.find(function (domainRegexp) {
1042                    return domainRegexp.test(dns);
1043                });
1044            });
1045
1046            return matchingDomain;
1047        };
1048    };
1049
1050    tC.getCachedClientCollectDns = function() {
1051        return tC.clientCollectDns;
1052    };
1053
1054    tC.getCachedClientCdnDomain = function() {
1055        return tC.clientCdnDomain;
1056    };
1057
1058    tC.getClientCollectDns = getDomainMatcher(tC.getCachedClientCollectDns, tC.getClientDnsList);
1059    tC.clientCollectDns = tC.getClientCollectDns();
1060
1061    tC.getClientCdnDomain = getDomainMatcher(tC.getCachedClientCdnDomain, tC.getCdnDomainList);
1062    tC.clientCdnDomain = tC.getClientCdnDomain();
1063
1064    tC.clientCampaignDns = tC.clientCampaignDns || 'banquecasinocb4x.commander1.com';
1065    tC.getClientCampaignDns = function() {
1066        return tC.clientCampaignDns;
1067    };
1068
1069    tC.campaignForceCookieFirst = 0;
1070
1071    tC.getCdnDomain = function(options) {
1072        var defaultDomain = options.defaultDomain || tC.defaultCdnDomain;
1073        var customDomain = window.tc_cdn_domain || tC.clientCdnDomain;
1074
1075        return customDomain || defaultDomain;
1076    };
1077
1078    tC.getPrivacyCdnDomain = function() {
1079        return tC.getCdnDomain({ defaultDomain: (tC.privacy || {}).defaultCdnDomain });
1080    };
1081})();
1082
1083(function() {
1084    'use strict';
1085
1086    var tC = window.tC;
1087    tC.eventTarget = tC.eventTarget || {
1088        _eventTarget: document.createElement('null'),
1089        addEventListener: function(type, listener, options) {
1090            this._eventTarget.addEventListener(type, listener, options);
1091        },
1092        once: function(type, listener, options) {
1093            this.addEventListener(type, listener, Object.assign({}, options, {once: true}));
1094        },
1095        removeEventListener: function(type, callback) {
1096            this._eventTarget.removeEventListener(type, callback);
1097        },
1098        createEvent: function(eventType, eventData) {
1099            var event;
1100            if (eventType instanceof Event && eventType.target == null) {
1101                event = eventType;
1102            } else if (typeof eventType === 'string' && eventType !== '*') {
1103                event = new Event(eventType);
1104            } else {
1105                return;
1106            }
1107
1108            if (eventData == null || typeof eventData !== 'object') {
1109                eventData = {};
1110            }
1111            event.eventData = eventData;
1112            return event;
1113        },
1114        dispatchEvent: function(eventType, options) {
1115            options = options || {};
1116            var event = tC.eventTarget.createEvent(eventType, options.eventData);
1117            this._eventTarget.dispatchEvent(event);
1118
1119            var broadcast = new Event('*');
1120            broadcast.originalEvent = event;
1121            this._eventTarget.dispatchEvent(broadcast);
1122
1123            tC.eventTarget.callTagTrigger(event.type, options);
1124        },
1125        callTagTrigger: function(eventType, options) {
1126            if (options.skipTrigger === true) {
1127                return;
1128            }
1129
1130            var event = tC.eventTarget.createEvent(eventType, options.eventData);
1131
1132            var tagTrigger = options.tagTrigger;
1133            if (tagTrigger == null) {
1134                // ex: 'my-custom-event' -> 'my_custom_event' -> tC.event.my_custom_event
1135                tagTrigger = event.type.replace(/-/g, '_');
1136            }
1137
1138            var target = options.eventTarget;
1139            var attributes = {};
1140            if (target && target.getAttributeNames) {
1141                target.getAttributeNames().forEach(function(attr) {
1142                    attributes[attr] = target[attr];
1143                });
1144            }
1145            Object.defineProperty(event, 'target', { writable: true, value: attributes });
1146            Object.defineProperty(event, 'target', { writable: false });
1147
1148            if (tagTrigger != null && tC.event != null && typeof tC.event[tagTrigger] === 'function') {
1149                tC.event[tagTrigger](event, event.eventData);
1150            }
1151        },
1152        dispatchEventAsync: function(eventType, options) {
1153            options = Object.assign({}, options);
1154            var delay = 0;
1155            if (options.delay > 0) {
1156                delay = Number(options.delay);
1157                delete options.delay;
1158            }
1159            setTimeout(function() {
1160                tC.eventTarget.dispatchEvent(eventType, options);
1161            }, delay);
1162        },
1163    };
1164})();
1165
1166// AI generated function, equivalent to lodash.set
1167tC.set = function (object, path, value) {
1168    if (!object || typeof object !== 'object') return object;
1169
1170    // Convert path to an array if it is not already
1171    if (typeof path === 'string') {
1172        path = path.split('.').map(function(key) {
1173            return key.indexOf('[') > -1 ? key.replace(/\]/g, '').split('[') : key;
1174        }).reduce(function(acc, val) {
1175            return acc.concat(val);
1176        }, []);
1177    }
1178
1179    var current = object;
1180
1181    for (var i = 0; i < path.length; i++) {
1182        var key = path[i];
1183
1184        // If we are at the last key, set the value
1185        if (i === path.length - 1) {
1186            current[key] = value;
1187        } else {
1188            // If the key doesn't exist or isn't an object, create an object or array
1189            if (!current[key] || typeof current[key] !== 'object') {
1190                current[key] = isNaN(Number(path[i + 1])) ? {} : [];
1191            }
1192            current = current[key];
1193        }
1194    }
1195
1196    return object;
1197};
1198
1199
1200// https://stackoverflow.com/a/34749873
1201tC.deepMerge = function() {
1202    var isObject = function(item) {
1203        return (item && typeof item === 'object' && !Array.isArray(item));
1204    };
1205
1206    var sources = Array.from(arguments); // eslint-disable-line es/no-array-from
1207    var target = sources.shift();
1208    if (!sources.length) {
1209        return target;
1210    }
1211    var source = sources.shift();
1212
1213    if (isObject(target) && isObject(source)) {
1214        var toAssign;
1215        for (var key in source) {
1216            if (isObject(source[key])) {
1217                if (!target[key]) {
1218                    toAssign = {};
1219                    toAssign[key] = {};
1220                    Object.assign(target, toAssign);
1221                }
1222                tC.deepMerge(target[key], source[key]);
1223            } else {
1224                toAssign = {};
1225                toAssign[key] = source[key];
1226                Object.assign(target, toAssign);
1227            }
1228        }
1229    }
1230
1231    return tC.deepMerge.apply(tC, [target].concat(sources));
1232};
1233
1234tC.xhr = tC.xhr || function (reqOptions) {
1235    var req = new XMLHttpRequest();
1236    if (!req) {
1237        return false;
1238    }
1239    req.open(reqOptions.method || 'GET', reqOptions.url);
1240    if (reqOptions.withCredentials) {
1241        req.withCredentials = true;
1242    }
1243    var data = reqOptions.data;
1244    if (reqOptions.json === true) {
1245        req.setRequestHeader('Content-Type', 'application/json');
1246        if (typeof data !== 'string') {
1247            try {
1248                data = JSON.stringify(data);
1249            } catch (e) {
1250                data = 'null';
1251            }
1252        }
1253    }
1254    if (reqOptions.headers) {
1255        Object.keys(reqOptions.headers).forEach(function(header) {
1256            req.setRequestHeader(header, reqOptions.headers[header]);
1257        });
1258    }
1259    var ajaxCallback = function () {
1260        if (req.readyState === XMLHttpRequest.DONE) {
1261            var callback = reqOptions[(req.status >= 200 && req.status < 300) ? 'done' : 'fail'];
1262            if (callback) {
1263                var response = req.response;
1264                if (reqOptions.json === true) {
1265                    try {
1266                        response = JSON.parse(response);
1267                    } catch (e) {
1268                        // nothing to do
1269                    }
1270                }
1271                callback(response, req.status);
1272            }
1273        }
1274    };
1275    req.onload = ajaxCallback;
1276    req.onerror = ajaxCallback;
1277    req.send(data);
1278};
1279
1280(function() {
1281    'use strict';
1282
1283    tC.getCrossDomainCookie = tC.getCrossDomainCookie || function(options, callback) {
1284        callback = callback || function() {};
1285        var siteId = options.siteId;
1286        var cookieName = options.name;
1287        var domain = options.domain;
1288
1289        tC.xhr({
1290            url: 'https://' + domain + '/get-cookie?tc_s=' + siteId + '&name=' + cookieName,
1291            withCredentials: true,
1292            json: true,
1293            done: function(res) {
1294                var cookieValue = '';
1295                try {
1296                    cookieValue = res[cookieName] || '';
1297                } catch (err) {
1298                    // nothing to do
1299                }
1300                callback(cookieValue);
1301            },
1302            fail: function(err) {
1303                if (tC.log) {
1304                    tC.log('error occured retrieving cookie ' + co
1304okieName, err);
1305                }
1306                callback('');
1307            },
1308        });
1309    };
1310})();
1311
1312(function() {
1313    'use strict';
1314
1315    var routes = {
1316        'cookie-serverside': {
1317            path: 'css',
1318            serverId: 'phoenix',
1319            defaultDomain: 'collect.commander1.com',
1320            siteQueryArg: 'tc_s',
1321            caidSync: false,
1322        },
1323        'dms': {
1324            path: 'dms',
1325            serverId: 'data',
1326            defaultDomain: 'engage.commander1.com',
1327            siteQueryArg: 'tc_s',
1328        },
1329        'events': {
1330            path: 'events',
1331            serverId: 'cdp',
1332            defaultDomain: 'collect.commander1.com',
1333            siteQueryArg: 'tc_s',
1334        },
1335        'measure-click-and-visit': {
1336            path: 'cs3',
1337            serverId: 'mix',
1338            defaultDomain: tC.clientCampaignDns || 'mix.commander1.com',
1339            syncDomain: 'collect.commander1.com',
1340            siteQueryArg: 'tcs',
1341        },
1342        'measure-visit': {
1343            path: 's3',
1344            serverId: 'mix',
1345            defaultDomain: tC.clientCampaignDns || 'mix.commander1.com',
1346            syncDomain: 'collect.commander1.com',
1347            siteQueryArg: 'tcs',
1348        },
1349        'privacy-consent': {
1350            path: 'privacy-consent',
1351            serverId: 'trust',
1352            defaultDomain: 'privacy.commander1.com',
1353            cookielessDomains: ['privacy.trustcommander.net'],
1354            siteQueryArg: 'site',
1355        },
1356    };
1357
1358    var generateCaid = function() {
1359        var date = new Date();
1360        var year = date.getFullYear();
1361        var month = ('0' + (date.getMonth() + 1)).slice(-2);
1362        var day = ('0' + date.getDate()).slice(-2);
1363        var hours = ('0' + date.getHours()).slice(-2);
1364        var minutes = ('0' + date.getMinutes()).slice(-2);
1365        var seconds = ('0' + date.getSeconds()).slice(-2);
1366        var formattedDate = year + month + day + hours + minutes + seconds;
1367        return formattedDate + Math.floor((Math.random() * 12345678942) + 1);
1368    };
1369
1370    var sendHit = function(url, data) {
1371        var useXhr = false;
1372        if (typeof navigator.sendBeacon !== 'function') {
1373            useXhr = true;
1374        } else if (!navigator.sendBeacon(url, data)) {
1375            useXhr = true;
1376        }
1377        if (useXhr) {
1378            tC.xhr({
1379                method: 'POST',
1380                json: true,
1381                url: url,
1382                data: data,
1383                withCredentials: true,
1384            });
1385        }
1386    };
1387
1388    if (tC.track == null) {
1389        tC._trackVersion = 5;
1390    }
1391    tC.track = tC.track || function(options) {
1392        options = options || {};
1393        var siteId = options.siteId || tC.config.siteId || tC.id_site;
1394
1395        var route = routes[options.route];
1396        if (route == null) {
1397            return null;
1398        }
1399
1400        var eventData = JSON.stringify(options.body || {});
1401
1402        var defaultDomain = '' || route.defaultDomain;
1403        var collectionDomain = options.domain || window.tC_collect_dns || tC.config.collectionDomain || defaultDomain;
1404        collectionDomain = collectionDomain.split('://').slice(-1)[0]; // remove protocol part
1405        if (collectionDomain[collectionDomain.length - 1] === '/') {
1406            collectionDomain = collectionDomain.slice(0, -1);
1407        }
1408
1409        var isFirstParty = tC.isCustomDns(collectionDomain) && !(route.cookielessDomains || []).includes(collectionDomain);
1410        var isCookieless = options.isCookieless || (route.cookielessDomains || []).includes(collectionDomain);
1411        var queryParams = {};
1412        if (isCookieless) {
1413            queryParams.tc_do_not_track = isCookieless;
1414        }
1415
1416        var byPassCookieExtension = 0;
1417        if (byPassCookieExtension) {
1418            queryParams.force_rewrite_cookie = byPassCookieExtension;
1419        }
1420        if (route.siteQueryArg && siteId) {
1421            queryParams[route.siteQueryArg] = siteId;
1422        }
1423        Object.assign(queryParams, options.queryParams);
1424        var queryString = Object.keys(queryParams).reduce(function(qs, key) {
1425            var value = queryParams[key];
1426            qs.push(key + '=' + value);
1427            return qs;
1428        }, []);
1429        queryString = queryString.join('&');
1430        if (queryString) {
1431            queryString = '?' + queryString;
1432        }
1433
1434        var serverId = isFirstParty ? '/' + route.serverId : '';
1435        var collectionUrl = 'https://' + collectionDomain + serverId + '/' + route.path + queryString;
1436
1437        var cookieName = '' || 'CAID';
1438        var cookieValue = tC.getCookie(cookieName);
1439        var caidSync = route.caidSync !== false;
1440        if (caidSync) {
1441            caidSync = tC.config.caidSync != null ? tC.config.caidSync : caidSync;
1442            caidSync = options.caidSync != null ? options.caidSync : caidSync;
1443        }
1444        var hasMissingCaid = isFirstParty && !isCookieless && !cookieValue;
1445        if (hasMissingCaid) {
1446            if (caidSync) {
1447                var syncDomain = '' || route.syncDomain || defaultDomain;
1448                tC.getCrossDomainCookie({ name: 'TCID', siteId: siteId, domain: syncDomain }, function(tcid) {
1449                    var caid = tcid;
1450                    if (!caid) {
1451                        caid = generateCaid();
1452                    }
1453                    tC.setCookie(cookieName, caid);
1454                    sendHit(collectionUrl, eventData);
1455                });
1456            } else {
1457                var caid = generateCaid();
1458                tC.setCookie(cookieName, caid);
1459                sendHit(collectionUrl, eventData);
1460            }
1461        } else {
1462            sendHit(collectionUrl, eventData);
1463        }
1464    };
1465})();
1466
1467(function () {
1468    'use strict';
1469
1470    tC.uniqueEventIndex = tC.uniqueEventIndex || 0;
1471    //keep last event in tC
1472    tC.triggeredEvents = tC.triggeredEvents || [];
1473
1474    tC.config = tC.config || {};
1475    var containerSourceKey = 'afa25364-eefd-4f0d-8991-c82db928061e' || null;
1476    tC.config.collectionDomain = tC.config.collectionDomain || tC.clientCollectDns;
1477
1478    var emailReg = /[a-z0-9-.+_-]+@[a-z0-9-]+(\.[a-z0-9-]+)*/i;
1479    var userLookingSearchParams = /(user|mail|pass(word|phrase)?|secret|((first|last)name))/i;
1480    var anonymize= function(text) {
1481        return (text || '').replace(emailReg, '*****');
1482    };
1483    var anonymizeUrl= function(url) {
1484        try {
1485            var safeUrl = new URL(url);
1486            safeUrl.pathname = anonymize(safeUrl.pathname);
1487            safeUrl.searchParams.forEach(function(paramValue, paramKey) {
1488                if (emailReg.test(paramValue)) {
1489                    return safeUrl.searchParams.set(paramKey, anonymize(paramValue));
1490                } else if (userLookingSearchParams.test(paramKey)) {
1491                    return safeUrl.searchParams.set(paramKey, '*****');
1492                }
1493            });
1494            return safeUrl.toString();
1495        } catch (e) {
1496            return url;
1497        }
1498    };
1499
1500    tC.generateEventId = function() {
1501        var eventId = String(Date.now()).slice(2) + Math.round(Math.random() * 10000000000000);
1502        while (eventId.length < 24) {
1503            eventId = eventId + '0';
1504        }
1505        return eventId;
1506    };
1507
1508    //Trigger API
1509    tC.trigger = function (options) {
1510        options = options || {};
1511        var event = options.event;
1512        var properties = Object.assign({}, options.properties);
1513        var config = options.config || {};
1514        var pageUrl = properties.url || anonymizeUrl(window.location.href);
1515
1516        tC.uniqueEventIndex++;
1517        tC.uniqueEventId = tC.generateEventId();
1518        //default settings
1519        var queryParams = {};
1520        var sourceKey = config.sourceKey || tC.config.sourceKey || containerSourceKey;
1521        if (sourceKey) {
1522            queryParams.token = sourceKey;
1523        }
1524
1525        var defaultEventData = tC.config.eventData;
1526        if (typeof defaultEventData === 'object' && tC.deepMerge) {
1527            properties = tC.deepMerge({}, defaultEventData, properties);
1528        }
1529
1530        //add automatic data
1531        properties.user = properties.user || {};
1532        //get consents
1533        if (!properties.user.consent_categories) {
1534            var consentCategories = [];
1535            if ('privacy' in tC) {
1536                if ('getValidCategories' in tC.privacy) {
1537                    consentCategories = tC.privacy.getValidCategories();
1538                } else {
1539                    consentCategories = tC.privacy.getOptinCategories();
1540                }
1541            }
1542            //manage Trust v1 when consent categories are 'ALL'
1543            var privacyCookie = tC.getCookie(tC.privacy && tC.privacy.getCN() || 'TC_PRIVACY');
1544            if (/ALL/.test(privacyCookie)) {
1545                consentCategories = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'];
1546            }
1547            properties.user.consent_categories = consentCategories;
1548        }
1549        if (!properties.user.rejected_vendors) {
1550            var rejectedVendors = [];
1551            if (tC.privacy) {
1552                if (tC.privacy.checkOptoutAllVendors && tC.privacy.checkOptoutAllVendors()) {
1553                    rejectedVendors = 'ALL';
1554                } else if (tC.privacy.checkOptinAllVendors && !tC.privacy.checkOptinAllVendors()) {
1555                    rejectedVendors = tC.privacy.getOptoutVendors();
1556                }
1557            }
1558            properties.user.rejected_vendors = rejectedVendors;
1559        }
1560        if (properties.revenue) {
1561            properties.amount = properties.revenue;
1562        }
1563        properties.integrations = properties.integrations || {};
1564        //Facebook cookies
1565        // TODO: remove once it is handled properly on backend https://tagcommander.atlassian.net/browse/PTMS-6738
1566        properties.integrations.facebook = properties.integrations.facebook || {};
1567        properties.integrations.facebook.fbc = tC.getCookie('_fbc') || undefined; // eslint-disable-line no-undefined
1568        properties.integrations.facebook.fbp = tC.getCookie('_fbp') || undefined; // eslint-disable-line no-undefined
1569        properties.integrations.facebook.event_id = properties.integrations.facebook.event_id || tC.uniqueEventId;
1570        //specific automatic properties regarding the type of event
1571        switch (event) {
1572            case 'page_view':
1573                properties.title = document.title;
1574                properties.path = location.pathname;
1575                properties.url = pageUrl;
1576                if (document.referrer !== '') properties.referrer = document.referrer;
1577                properties.type = properties.type || (window.tc_vars || {}).env_template || 'other';
1578                properties.page_type = properties.page_type || (window.tc_vars || {}).env_template || 'other';
1579                break;
1580            case 'purchase':
1581                properties.status = properties.status || 'in_progress';
1582                properties.type = properties.type || 'online';
1583                break;
1584        }
1585        var timezone;
1586        try {
1587            timezone = window.Intl && window.Intl.DateTimeFormat().resolvedOptions().timeZone;
1588        } catch(e) {
1589            // browser doesn't have the feature => skip
1590        }
1591        var de = document.documentElement || {};
1592        var nav = window.navigator || {};
1593        var page = {
1594            title: document.title,
1595            url: pageUrl,
1596            lang: de.lang,
1597            referrer: document.referrer || (tC.storage && tC.storage.get('TC_REFERRER')),
1598            viewport: {
1599                width: de.clientWidth,
1600                height: de.clientHeight,
1601            },
1602        };
1603        var pickCookies = function() {
1604            // Facebook: _fbp/_fbq
1605            // Google: https://business.safety.google/adscookies/
1606            //AT-internet: atuserid/xtidc
1607            //Criteo: crto_mapped_user_id
1608            //Awin: awc
1609            var usefulCookies = [
1610                '_fbp',
1611                '_fbc',
1612                /^_+(ga|gcl|opt_|utm)/,
1613                /^(pm_sess|VISITOR_INFO1|FPGCL|GA_)/,
1614                '__gsas',
1615                'NID',
1616                'DSID',
1617                'test_cookie',
1618                'id',
1619                'GED_PLAYLIST_ACTIVITY',
1620                'ACLK_DATA',
1621                'aboutads_sessNNN',
1622                'FPAU',
1623                'ANID',
1624                'AID',
1625                'IDE',
1626                'TAID',
1627                'FLC',
1628                'RUL',
1629                'FCCDCF',
1630                'FCNEC',
1631                'CUID',
1632                '1P_JAR',
1633                'Conversion',
1634                'YSC',
1635                'FPLC',
1636                '_gid',
1637                'AMP_TOKEN',
1638                'FPID',
1639                '_dc_gtm_',
1640                'PAIDCONTENT',
1641                'atuserid',
1642                'xtidc',
1643                'crto_mapped_user_id',
1644                'awc',
1645                'tduid',
1646                'kwks2s',
1647                '_ttp',
1648                /^_pk_id\./,
1649                '_pcid', // piano
1650                'pa_vid', // piano
1651                'rmStore', // rakuten
1652                '_uetmsclkid', // microsoft uet
1653                /^_dy.*/, // dynamic yield
1654                /^ty_.*/, // thank you analytics
1655            ];
1656            return (document.cookie || '').split('; ').filter(function(cookie) {
1657                var name = cookie.split('=')[0];
1658                return usefulCookies.find(function(pattern) { return pattern.test ? pattern.test(name) : (name === pattern); });
1659            }).join('; ');
1660        };
1661        var device = {
1662            cookie: pickCookies() || '',
1663            lang: nav.language || nav.userLanguage,
1664            screen: {
1665                width: window.screen.width,
1666                height: window.screen.height,
1667            },
1668            timezone: timezone
1669        };
1670        //store it as an internal vars for automatic mapping in other tags
1671        tC.internalvars.caEventData = properties;
1672        var eventId = config.eventId ? String(config.eventId) : tC.uniqueEventId;
1673        //build event data
1674        var eventObject = {
1675            event_name: event,
1676            context: {
1677                page: page,
1678                device: device,
1679                eventId: eventId,
1680                version: 2,
1681                created: new Date().toJSON(),
1682                generatorVersion: tC.generatorVersion,
1683                containerVersion: tC.containerVersion
1684            },
1685        };
1686        Object.assign(eventObject, properties);
1687        //limit history size
1688        if (100 < tC.triggeredEvents.length) {
1689            while (tC.triggeredEvents.length > 100) {
1690                tC.triggeredEvents.shift();
1691            }
1692        }
1693        tC.triggeredEvents.push(eventObject);
1694        tC.lastTriggeredEvent = tC.triggeredEvents[tC.triggeredEvents.length - 1];
1695
1696        var siteId = config.siteId || config.idSite;
1697        var collectionDomain = config.collectionDomain;
1698        //SEND HIT through sendBeacon or ajax as a fallback
1699        tC.track({
1700            domain: collectionDomain,
1701            route: 'events',
1702            siteId: siteId,
1703            queryParams: queryParams,
1704            body: eventObject,
1705            caidSync: config.caidSync,
1706        });
1707
1708        if (tC.eventTarget) {
1709            var dispatchParams = {
1710                eventData: eventObject,
1711                eventTarget: config.eventTarget,
1712            };
1713            tC.eventTarget.dispatchEvent('track_' + event, dispatchParams);
1714            tC.eventTarget.dispatchEvent('track_all_events', dispatchParams);
1715        }
1716        return tC.uniqueEventIndex;
1717    };
1718
1719})();
1720
1721/*
1722 * Extension storage
1723 *
1724 * tC.storage
1725 */
1726
1727tC.storage = {
1728    // legacy function has Storage
1729    has : function () {
1730        try {
1731            if ('localStorage' in window && window.localStorage != null) {
1732                window.localStorage.setItem('TC_CHECK', '1');
1733                window.localStorage.removeItem('TC_CHECK');
1734                return true;
1735            }
1736            return false;
1737        } catch (e) {
1738            return false;
1739        }
1740    },
1741    isAvailable: function() {
1742        try {
1743            window.localStorage;
1744            return true;
1745        } catch (err) {
1746            return false;
1747        }
1748    },
1749    //get storage
1750    get : function (k) {
1751        if (!this.isAvailable()) return;
1752        return window.localStorage.getItem(k);
1753    },
1754    //set storage
1755    set : function (k, v) {
1756        if (!this.isAvailable()) return;
1757        try {
1758            return window.localStorage.setItem(k, v) || true;
1759        } catch (e) {
1760            // most likely localstorage size limit exceeded
1761            return false;
1762        }
1763    },
1764    //remove storage
1765    remove : function (k) {
1766        if (!this.isAvailable()) return;
1767        return window.localStorage.removeItem(k) || true;
1768    },
1769    setWithExpiry: function (key, value, nbDays) {
1770        if (!this.isAvailable()) return;
1771        var now = (new Date()).getTime();
1772        var ttl = nbDays * 1000 * 60 * 60 * 24;
1773        var item = JSON.stringify({
1774            value: value,
1775            expires: now + ttl,
1776        });
1777        try {
1778            window.localStorage.setItem(key, item);
1779        } catch (e) {
1780            // most likely localstorage size limit exceeded
1781        }
1782    },
1783    getWithExpiry: function (key) {
1784        if (!this.isAvailable()) return;
1785        var item = window.localStorage.getItem(key);
1786        if (item == null) {
1787            return null;
1788        }
1789        var now = (new Date()).getTime();
1790        item = JSON.parse(item);
1791        if (item.expires < now) {
1792            this.remove(key);
1793            return null;
1794        }
1795
1796        return item.value;
1797    },
1798};
1799
1800/**
1801 * Extension hitCounter
1802 *
1803 * adds the hit counter for each container
1804 * allows to follow the usage of this container
1805 * will be called once in $frequency times
1806 *
1807 * @vars id_tagcommander,id_site,version,frequency
1808 */
1809
1810(function() {
1811    var hitCounterExtend = {};
1812    var containerName = 4453 + '_' + 21;
1813    /*
1814    * f = force le hit
1815    * c = className du hit img
1816    */
1817    hitCounterExtend['hitCounter_' + containerName] = function() {
1818        var container = window['tC_' + containerName];
1819        if(Math.floor(Math.random()*parseInt(container.frequency)) === 0){
1820            var dns = window.tc_collect_dns || tC.clientCollectDns || 'manager.tagcommander.com';
1821            tC.pixelTrack.add('https://' + dns + '/utils/hit.php?id='+container.id_container+'&site='+container.id_site+'&version='+container.containerVersion+'&frequency='+container.frequency+'&position='+tC.container_position+'&rand='+Math.random());
1822        }
1823    };
1824
1825    tC.extend(hitCounterExtend);
1826
1827    /* global tc_container_position */
1828    tC.container_position = (typeof tc_container_position !== 'undefined') ? tc_container_position : (typeof tC.container_position !== 'undefined') ? tC.container_position : 0;
1829    tC.container_position++;
1830    if(typeof tc_container_position !== 'undefined'){
1831        tc_container_position++; // eslint-disable-line no-global-assign
1832    }
1833    tC['hitCounter_' + containerName]();
1834})();
1835/*
1836 * Extension script
1837 */
1838
1839tC.script = {
1840    add: function(src,callback,abortTime){
1841        var s           = (document.getElementsByTagName('body')[0] || document.getElementsByTagName('script')[0].parentNode);
1842        var e           = document.createElement('script');
1843        e.type      = 'text/javascript';
1844        e.async     = true;
1845        e.src       = src;
1846        e.charset   = 'utf-8';
1847        e.id        = 'tc_script_' + Math.random();
1848        if(s){
1849            if(callback){
1850                if (e.addEventListener) { /* normal browsers (FF, Chrome,IE9+)*/
1851                    e.addEventListener('load', function(){
1852                        callback();
1853                    }, false);
1854                }
1855                else {
1856                    e.onreadystatechange = function() { /* old IEs (8-) */
1857                        if (e.readyState in {loaded: 1, complete: 1}){
1858                            e.onreadystatechange = null;
1859                            callback();
1860                        }
1861                    };
1862                }
1863            }
1864            if(abortTime && typeof abortTime === 'number'){
1865                setTimeout(function(){
1866                    if ( s && e.parentNode ) {
1867                        s.removeChild(e);
1868                    }
1869                },abortTime);
1870            }
1871            s.insertBefore(e, s.firstChild);
1872        }
1873        else{
1874            tC.log('tC.script error : the element <script> or <body> is not found ! the file '+src+' is not implemented !', 'warn');
1875        }
1876    }
1877};
1878
1879/*
1880 * Extension bypassBookmarklet
1881 */
1882
1883
1884tC.bypassBookmarklet = true;
1885
1886tC.extend({
1887    addClass: function( value ) {
1888        /* global core_rspace */
1889        var classNames, i, l, elem,
1890            setClass, c, cl;
1891
1892        if ( tC.isFunction( value ) ) {
1893            return this.each(function( j ) {
1894                jQuery( this ).addClass( value.call(this, j, this.className) );
1895            });
1896        }
1897
1898        if ( value && typeof value === "string" ) {
1899            classNames = value.split( core_rspace );
1900
1901            for ( i = 0, l = this.length; i < l; i++ ) {
1902                elem = this[ i ];
1903
1904                if ( elem.nodeType === 1 ) {
1905                    if ( !elem.className && classNames.length === 1 ) {
1906                        elem.className = value;
1907
1908                    } else {
1909                        setClass = " " + elem.className + " ";
1910
1911                        for ( c = 0, cl = classNames.length; c < cl; c++ ) {
1912                            if ( setClass.indexOf( " " + classNames[ c ] + " " ) < 0 ) {
1913                                setClass += classNames[ c ] + " ";
1914                            }
1915                        }
1916                        elem.className = jQuery.trim( setClass );
1917                    }
1918                }
1919            }
1920        }
1921
1922        return this;
1923    },
1924    removeClass: function( value ) {
1925        /* global rclass */
1926        var removes, className, elem, c, cl, i, l;
1927
1928        if ( tC.isFunction( value ) ) {
1929            return this.each(function( j ) {
1930                jQuery( this ).removeClass( value.call(this, j, this.className) );
1931            });
1932        }
1933        if ( (value && typeof value === "string") || value === undefined ) {
1934            removes = ( value || "" ).split( core_rspace );
1935
1936            for ( i = 0, l = this.length; i < l; i++ ) {
1937                elem = this[ i ];
1938                if ( elem.nodeType === 1 && elem.className ) {
1939
1940                    className = (" " + elem.className + " ").replace( rclass, " " );
1941
1942                    // loop over each item in the removal list
1943                    for ( c = 0, cl = removes.length; c < cl; c++ ) {
1944                        // Remove until there is nothing to remove,
1945                        while ( className.indexOf(" " + removes[ c ] + " ") >= 0 ) {
1946                            className = className.replace( " " + removes[ c ] + " " , " " );
1947                        }
1948                    }
1949                    elem.className = value ? jQuery.trim( className ) : "";
1950                }
1951            }
1952        }
1953        return this;
1954    },
1955
1956    toggleClass: function( value, stateVal ) {
1957        var type = typeof value,
1958            isBool = typeof stateVal === "boolean";
1959
1960        if ( tC.isFunction( value ) ) {
1961            return this.each(function( i ) {
1962                tC( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
1963            });
1964        }
1965
1966        return this.each(function() {
1967            if ( type === "string" ) {
1968                // toggle individual class names
1969                var className,
1970                    i = 0,
1971                    self = jQuery( this ),
1972                    state = stateVal,
1973                    classNames = value.split( core_rspace );
1974
1975                while ( (className = classNames[ i++ ]) ) {
1976                    // check each className given, space separated list
1977                    state = isBool ? state : !self.hasClass( className );
1978                    self[ state ? "addClass" : "removeClass" ]( className );
1979                }
1980
1981            } else if ( type === 'undefined' || type === "boolean" ) {
1982                if ( this.className ) {
1983                    // store className if set
1984                    jQuery._data( this, "__className__", this.className );
1985                }
1986
1987                // toggle whole className
1988                this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
1989            }
1990        });
1991    },
1992
1993    hasClass: function( selector ) {
1994        var className = " " + selector + " ",
1995            i = 0,
1996            l = this.length;
1997        for ( ; i < l; i++ ) {
1998            if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
1999                return true;
2000            }
2001        }
2002
2003        return false;
2004    }
2005});
2006(function() {
2007    'use strict';
2008
2009    window.tC = window.tC || {};
2010
2011    if (window.tC.Bitfield != null) {
2012        return;
2013    }
2014
2015    var bufferIndexFromBitIndex = function(bitIndex, bitfieldSize) {
2016        if (isNaN(bitIndex) || bitIndex < 0 || bitIndex >= bitfieldSize) {
2017            throw new RangeError('Bitfield: invalid index');
2018        }
2019        var bufferIndex = bitIndex >> 3; // Equivalent to: Math.floor(bitIndex / 8);
2020        return bufferIndex;
2021    };
2022
2023    var bitMaskFromIndex = function(bitIndex) {
2024        return 1 << (bitIndex % 8);
2025    };
2026
2027    var Bitfield = function(nbBits) {
2028        if (isNaN(nbBits) || nbBits <= 0) {
2029            throw new Error('Bitfield: size must be greater than zero');
2030        }
2031        var nbBytes = Math.ceil(nbBits / 8);
2032        /* global Uint8Array */
2033        this.buffer = new Uint8Array(nbBytes); // eslint-disable-line es/no-typed-arrays
2034        this.length = nbBits;
2035    };
2036
2037    Bitfield.fromBase64URL = function(str) {
2038        var base64 = str
2039            .replace(/\-/g, '+') // eslint-disable-line no-useless-escape
2040            .replace(/_/g, '/');
2041
2042        var binaryString = atob(base64);
2043        var bitfield = new Bitfield(binaryString.length * 8);
2044
2045        for (var index in binaryString) {
2046            if (binaryString.hasOwnProperty(index)) {
2047                bitfield.buffer[index] = binaryString.charCodeAt(index);
2048            }
2049        }
2050        return bitfield;
2051    };
2052
2053    Bitfield.prototype.toBase64URL = function() {
2054        var binaryString = String.fromCharCode.apply(null, this.buffer);
2055        return btoa(binaryString)
2056            .replace(/\+/g, '-')
2057            .replace(/\//g, '_');
2058    };
2059
2060    Bitfield.fromArray = function(arr) {
2061        var bitfield = new Bitfield(arr.length);
2062        for (var i = 0; i < arr.length; ++i) {
2063            if (arr[i]) {
2064                bitfield.set(i);
2065            }
2066        }
2067        return bitfield;
2068    };
2069
2070    Bitfield.prototype.toArray = function() {
2071        var res = Array(this.length);
2072        for (var i = 0; i < this.length; ++i) {
2073            res[i] = this.get(i);
2074        }
2075        return res;
2076    };
2077
2078    Bitfield.prototype.get = function(index) {
2079        var bufIndex = bufferIndexFromBitIndex(index, this.length);
2080        var bitMask = bitMaskFromIndex(index);
2081        return Boolean(this.buffer[bufIndex] & bitMask);
2082    };
2083
2084    Bitfield.prototype.set = function(index) {
2085        var bufIndex = bufferIndexFromBitIndex(index, this.length);
2086        var bitMask = bitMaskFromIndex(index);
2087        this.buffer[bufIndex] |= bitMask;
2088        return this;
2089    };
2090
2091    Bitfield.prototype.unset = function(index) {
2092        var bufIndex = bufferIndexFromBitIndex(index, this.length);
2093        var bitMask = bitMaskFromIndex(index);
2094        this.buffer[bufIndex] &= ~(bitMask);
2095        return this;
2096    };
2097
2098    window.tC.Bitfield = Bitfield;
2099})();
2100
2101/*
2102 * Extension privacy common part between V2 and Standalone
2103 */
2104
2105;
2106
2107tC.arrayUniqueFilter = function (value, index, array) {
2108    return array.indexOf(value) === index;
2109};
2110
2111tC.privacy = tC.privacy || {
2112    reactived: null,
2113    id: null,
2114    version: null,
2115    categories: null,
2116    vendorsDisabled: null, // legacy IABv1
2117    optinVendors: [],
2118    cookieData: null,
2119    initialized: false,
2120
2121    init: function () {
2122        //get the data cookie
2123        var cookie = tC.getCookie(tC.privacy.getCN());
2124        if(cookie) {
2125            //we first check if current cookie has the default cookie separator (@) to build cookieData array
2126            tC.privacy.cookieData = cookie.indexOf('@') >= 0 ? cookie.split('@') : cookie.split(tC.privacy.getCS());
2127        }else{//fallback if tC.getCookie had a problem
2128            tC.privacy.cookieData = [];
2129        }
2130
2131        tC.privacy.vendorsDisabled = tC.getCookie(this.getVCN()).split(','); // legacy IABv1
2132
2133        tC.privacy.optinVendors = [];
2134        var vendorsConsentArray = tC.privacy.cookieData[5] || '';
2135        if(String(vendorsConsentArray) !== '') {
2136            vendorsConsentArray = tC.Bitfield.fromBase64URL(vendorsConsentArray).toArray();
2137            vendorsConsentArray.forEach(function (value, index) {
2138                if (value === true) {
2139                    tC.privacy.optinVendors.push(String(index));
2140                }
2141            });
2142        }
2143        if (tC.privacy.isIabGoogleAcmEnabled != null && tC.privacy.isIabGoogleAcmEnabled()) {
2144            var acmVendorsConsentArray = tC.storage.getWithExpiry(this.getCN() + '_ACM');
2145            if (acmVendorsConsentArray != null && String(acmVendorsConsentArray) !== '') {
2146                acmVendorsConsentArray = tC.Bitfield.fromBase64URL(acmVendorsConsentArray).toArray();
2147                acmVendorsConsentArray.forEach(function (value, index) {
2148                    if (value === true) {
2149                        tC.privacy.optinVendors.push('acm_' + index);
2150                    }
2151                });
2152            }
2153        }
2154
2155        //get categories in cookie => this variable stores all OPTIN categories
2156        tC.privacy.categories = tC.privacy.cookieData[2] || '';
2157        tC.privacy.cachedBlockedOnCategories = tC.privacy.cookieData[3] ? tC.privacy.cookieData[3].split(',') : null;
2158        if (tC.privacy.categories === 'ALL') { // legacy: previous format
2159            //we get the opt type (first parameter in the main cookie, 0 = optin ; 1 = optout)
2160            var optType = parseInt(tC.privacy.cookieData[0] || 0);
2161            if (optType === 1) {//optout to "ALL" => no category optin
2162                tC.privacy.categories = [];
2163            } else {//optin to "ALL" => we set the list to a real list of category ids
2164                tC.privacy.categories = tC.privacy.allSelectableCategoriesId || [];
2165            }
2166        } else {//we have a regular list of ids (may be empty) => split to create an array
2167            tC.privacy.categories = tC.privacy.categories !== '' ? tC.privacy.categories.split(',') : [];
2168        }
2169
2170        if (tC.privacy.cookieData[0] == null && tC.privacy.initIabLegitimateInterests){
2171            tC.privacy.initIabLegitimateInterests();
2172        }
2173
2174        var privacyDates = (tC.privacy.cookieData[4] || '').split(',');
2175        tC.privacy.consentDates = {
2176            updatedAt: Number(privacyDates[0]) || null,
2177            createdAt: Number(privacyDates[1]) || null,
2178            expiresAt: Number(privacyDates[2]) || null,
2179        };
2180        if (!tC.privacy.initialized) {
2181            tC.privacy.initialized = true;
2182            if (tC.gtagInit) {
2183                tC.gtagInit();
2184            }
2185            if (tC.privacy.gcmEnabled) {
2186                tC.privacy.gcmInit();
2187            }
2188            // async dispatch so that dispatch happens after tC.event functions are installed
2189            tC.eventTarget.dispatchEventAsync('privacy-module-ready');
2190            if (tC.privacy.cookieData.length !== 0) {
2191                tC.eventTarget.dispatchEventAsync('consent-ready');
2192            }
2193        }
2194    }
2195};
2196
2197tC.privacy.saveConsent = function(options) {
2198    var cookieIsOptin = options.optin;
2199
2200    if (tC.isCookieEnabledBool == null) {
2201        tC.isCookieEnabledBool = tC.isCookieEnabled();
2202    }
2203    if (tC.isCookieEnabledBool === false) {
2204        return;
2205    }
2206
2207    var categoryList = options.categoryList || '';
2208    // if there is no category selected but there could be (meaning there is at least one category which is not in "blocked on" configuration) => it's actually an opt-out
2209    if(categoryList.length === 0 && tC.privacy.privacySelectableUnblockedCategoriesId && tC.privacy.privacySelectableUnblockedCategoriesId.length > 0){
2210        cookieIsOptin = false;
2211    }
2212    var hitIsOptin = options.hitOptin != null ? options.hitOptin : options.optin;
2213    var vendorList = options.vendorList || '';
2214    var privacyVersion = options.privacyVersion || tC.privacy.getVersion();
2215    var privacyId = options.privacyId || tC.privacy.getId();
2216    var action = options.action || 'banner_button';
2217
2218    var cookieOptions = {};
2219    if (options.acmVendorList != null) {
2220        cookieOptions.acmVendorList = options.acmVendorList;
2221    }
2222
2223    var isInitialConsent = tC.privacy.cookieData == null || tC.privacy.cookieData.length === 0;
2224    tC.privacy.cok(Number(! cookieIsOptin), privacyVersion, categoryList, vendorList, cookieOptions);
2225    if(options.sendHit !== false) {
2226        tC.privacy.hit(Number(hitIsOptin), privacyVersion, privacyId, action);
2227    }
2228    if (window.tCPrivacyTagManager) {
2229        tC.privacy.sendDataOtherTMS();
2230    }
2231    if (tC.privacy.gcmEnabled) {
2232        tC.privacy.gcmUpdate();
2233    }
2234    if (isInitialConsent) {
2235        tC.eventTarget.dispatchEvent('consent-ready');
2236    }
2237    // avoid collision with existing custom consent-update events, skipTrigger
2238    // legacy event for iab tag and cact('onReady') / cact('onUpdate')
2239    tC.eventTarget.dispatchEvent('consent-update', { skipTrigger: true });
2240    tC.eventTarget.dispatchEvent('consent-updated'); // new event used for tag triggers
2241};
2242
2243tC.privacy.In = tC.privacy.In || function (privacyId, privacyVersion, tags, categoryList, action, vendorList, options) {
2244    options = options || {};
2245    tags = null; // unused, left for retrocompatibility
2246
2247    tC.privacy.saveConsent({
2248        optin: true,
2249        privacyId: privacyId,
2250        privacyVersion: privacyVersion,
2251        action: action,
2252        categoryList: categoryList,
2253        vendorList: vendorList,
2254        acmVendorList: options.acmVendorList,
2255        sendHit: options.sendHit,
2256    });
2257};
2258
2259tC.privacy.Out = tC.privacy.Out || function (privacyId, privacyVersion, tags, categoryList, action, vendorList, options) {
2260    options = options || {};
2261    tags = null; // unused, left for retrocompatibility
2262    if (categoryList === 'ALL') {
2263        categoryList = '';
2264    }
2265
2266    tC.privacy.saveConsent({
2267        optin: false,
2268        privacyId: privacyId,
2269        privacyVersion: privacyVersion,
2270        action: action,
2271        categoryList: categoryList,
2272        vendorList: vendorList,
2273        acmVendorList: options.acmVendorList,
2274        sendHit: options.sendHit,
2275    });
2276};
2277
2278tC.privacy.encodeVendorList = function (vendorList) {
2279    if(vendorList.length > 0){
2280        vendorList = vendorList.map(Number).sort(function (a, b) {
2281            return a - b;
2282        });
2283
2284        var maxIabId = vendorList[vendorList.length - 1];
2285        var bitfield = new tC.Bitfield(maxIabId + 1);//+1 because array index begin at 0 & IAB ids begin at 1
2286        vendorList.forEach(function(id){
2287            bitfield.set(id);
2288        });
2289        return bitfield.toBase64URL();
2290    }
2291    return '';
2292};
2293
2294tC.privacy.optinAll = function(action, options) {
2295    action = action || 'banner_button';
2296    options = options || {};
2297    var listCategories = tC.privacy.getCategoryIdList().join(',');
2298    var listVendors = tC.privacy.getVendorIdList();
2299
2300    var acmVendorList;
2301    if (tC.privacy.isIabGoogleAcmEnabled != null && tC.privacy.isIabGoogleAcmEnabled()) {
2302        var allVendors = tC.privacy.prepareAcmVendorConsent(listVendors);
2303        listVendors = allVendors.nonAcmVendors;
2304        acmVendorList = tC.privacy.encodeVendorList(allVendors.acmVendors);
2305    }
2306
2307    listVendors = tC.privacy.encodeVendorList(listVendors);
2308    tC.privacy.saveConsent({
2309        optin: true,
2310        action: action,
2311        categoryList: listCategories,
2312        vendorList: listVendors,
2313        acmVendorList: acmVendorList,
2314        sendHit: options.sendHit,
2315    });
2316};
2317
2318tC.privacy.prepareConsent = function(options) {
2319    options = options || {};
2320    var listCategories = (options.categories || []).map(String);
2321    var listVendors = (options.vendors || []).map(String);
2322
2323    if (tC.privacy.iabCategoriesToPublicCategories) {
2324        var iabCategories = tC.privacy.iabCategoriesToPublicCategories({
2325            purposes: (options.iabPurposes || []).map(String),
2326            legIntPurposes: (options.iabPurposes || []).map(String).filter(function(id) {
2327                return id !== 1; // no legInt for purpose 1
2328            }),
2329            specialFeatures: (options.iabSpecialFeatures || []).map(String)
2330        });
2331        listCategories = listCategories.concat(iabCategories);
2332    }
2333    if (tC.privacy.iabVendorsToPublicVendors) {
2334        var iabVendors = tC.privacy.iabVendorsToPublicVendors({
2335            vendors: (options.iabVendors || []).map(String),
2336            legIntVendors: (options.iabVendors || []).map(String),
2337        });
2338        listVendors = listVendors.concat(iabVendors);
2339    }
2340    return { vendors: listVendors, categories: listCategories };
2341};
2342
2343tC.privacy.optin = function(action, options) {
2344    action = action || 'banner_button';
2345    options = options || {};
2346    var consent = tC.privacy.prepareConsent(options);
2347    var listCategories = consent.categories;
2348    var listVendors = consent.vendors;
2349
2350    if (listCategories.length === 0 && listVendors.length === 0) {
2351        return;
2352    }
2353
2354    listCategories = listCategories
2355        .concat(options.reset ? [] : tC.privacy.getOptinCategories())
2356        .filter(tC.arrayUniqueFilter);
2357    listVendors = listVendors
2358        .concat(options.reset ? [] : tC.privacy.getOptinVendors())
2359        .filter(tC.arrayUniqueFilter);
2360
2361    var acmVendorList;
2362    if (tC.privacy.isIabGoogleAcmEnabled != null && tC.privacy.isIabGoogleAcmEnabled()) {
2363        var allVendors = tC.privacy.prepareAcmVendorConsent(listVendors);
2364        listVendors = allVendors.nonAcmVendors;
2365        acmVendorList = tC.privacy.encodeVendorList(allVendors.acmVendors);
2366    }
2367    listVendors = tC.privacy.encodeVendorList(listVendors);
2368
2369    tC.privacy.saveConsent({
2370        optin: true,
2371        action: action,
2372        categoryList: listCategories,
2373        vendorList: listVendors,
2374        acmVendorList: acmVendorList,
2375        hitOptin: options.hitOptin, // for iab legints (refuse all)
2376        sendHit: options.sendHit,
2377    });
2378};
2379
2380tC.privacy.optoutAll = function(action, options) {
2381    action = action || 'banner_button';
2382    options = options || {};
2383    var acmVendorList;
2384    if (tC.privacy.isIabGoogleAcmEnabled != null && tC.privacy.isIabGoogleAcmEnabled()) {
2385        acmVendorList = '';
2386    }
2387    tC.privacy.saveConsent({
2388        optin: false,
2389        action: action,
2390        categoryList: '',
2391        vendorList: '',
2392        acmVendorList: acmVendorList,
2393        sendHit: options.sendHit,
2394    });
2395};
2396
2397tC.privacy.optout = function(action, options) {
2398    action = action || 'banner_button';
2399    var consent = tC.privacy.prepareConsent(options);
2400    var listCategories = consent.categories;
2401    var listVendors = consent.vendors;
2402
2403    if (listCategories.length === 0 && listVendors.length === 0) {
2404        return;
2405    }
2406
2407    var optinCategories = tC.privacy.getOptinCategories();
2408    var optinVendors = tC.privacy.getOptinVendors();
2409
2410    listCategories = optinCategories.filter(function(id) {
2411        return listCategories.indexOf((id)) === -1;
2412    });
2413    listVendors = optinVendors.filter(function(id) {
2414        return listVendors.indexOf((id)) === -1;
2415    });
2416    if (listCategories.length === 0 && listVendors.length === 0) {
2417        tC.privacy.optoutAll(action, { sendHit: options.sendHit });
2418        return;
2419    }
2420
2421    var acmVendorList;
2422    if (tC.privacy.isIabGoogleAcmEnabled != null && tC.privacy.isIabGoogleAcmEnabled()) {
2423        var allVendors = tC.privacy.prepareAcmVendorConsent(listVendors);
2424        listVendors = allVendors.nonAcmVendors;
2425        acmVendorList = tC.privacy.encodeVendorList(allVendors.acmVendors);
2426    }
2427    listVendors = tC.privacy.encodeVendorList(listVendors);
2428    tC.privacy.saveConsent({
2429        optin: true,
2430        action: action,
2431        categoryList: listCategories,
2432        vendorList: listVendors,
2433        acmVendorList: acmVendorList,
2434        sendHit: options.sendHit,
2435    });
2436};
2437
2438tC.privacy.getFlattenCategories = function() {
2439    return tC.privacy.allCategories.flatMap(function(category) {
2440        return (category.subCategories || []).concat(category);
2441    });
2442};
2443
2444tC.privacy.getFlattenCategoryIdList = function() {
2445    return tC.privacy.getFlattenCategories().map(function(category) {
2446        return category.id;
2447    });
2448};
2449
2450tC.privacy.getCategoryIdList = function() {
2451    var categories = tC.privacy.privacySelectableUnblockedCategoriesId || tC.privacy.getFlattenCategoryIdList();
2452    if (tC.privacy.getIabCategoryIdList) {
2453        categories = categories.concat(tC.privacy.getIabCategoryIdList());
2454    }
2455    return categories;
2456};
2457
2458tC.privacy.getVendorIdList = function() {
2459    var vendors = (tC.privacy.includedVendorIds || []);
2460    if (tC.privacy.isIabGoogleAcmEnabled != null && tC.privacy.isIabGoogleAcmEnabled()) {
2461        vendors = vendors.filter(function(id) {
2462            return ! (id > 1000); // everything but IAB vendors (predefined, custom, google)
2463        });
2464    } else {
2465        vendors = vendors.filter(function(id) {
2466            return id < 1000; // filter IAB and ACM vendors
2467        });
2468    }
2469    if (tC.privacy.getIabVendorIdList) {
2470        vendors = vendors.concat(tC.privacy.getIabVendorIdList());
2471    }
2472    return vendors;
2473};
2474
2475tC.privacy.getId = tC.privacy.getId || function() {
2476    return '';
2477};
2478
2479tC.privacy.getVersion = tC.privacy.getVersion || function() {
2480    return '';
2481};
2482
2483tC.privacy.setTcfConsent = function(tcfConsent, options) {
2484    var index;
2485    var categories = options.categories || {};
2486    var vendors = options.vendors || {};
2487
2488    if (tcfConsent.purpose) {
2489        if (tcfConsent.purpose.consents) {
2490            for (var p in tcfConsent.purpose.consents) {
2491                index = 'tcf2_' + p;
2492                categories[index] = categories[index] || {};
2493                categories[index].status = tcfConsent.purpose.consents[p] === true ? options.on : options.off;
2494            }
2495        }
2496        if (tcfConsent.purpose.legitimateInterests) {
2497            for (var li in tcfConsent.purpose.legitimateInterests) {
2498                index = 'tcf2_' + li;
2499                categories[index] = categories[index] || {};
2500                categories[index].legIntStatus = tcfConsent.purpose.legitimateInterests[li] === true ? options.on : options.off;
2501            }
2502        }
2503    }
2504
2505    if (tcfConsent.vendor) {
2506        if (tcfConsent.vendor.consents) {
2507            for (var v in tcfConsent.vendor.consents) {
2508                index = 'tcf2_' + v;
2509                vendors[index] = vendors[index] || {};
2510                vendors[index].status = tcfConsent.vendor.consents[v] === true ? options.on : options.off;
2511            }
2512        }
2513        if (tcfConsent.vendor.legitimateInterests) {
2514            for (var vli in tcfConsent.vendor.legitimateInterests) {
2515                index = 'tcf2_' + vli;
2516                vendors[index] = vendors[index] || {};
2517                vendors[index].legIntStatus = tcfConsent.vendor.legitimateInterests[vli] === true ? options.on : options.off;
2518            }
2519        }
2520    }
2521
2522    if (tcfConsent.specialFeatureOptins) {
2523        for (var sf in tcfConsent.specialFeatureOptins) {
2524            index = 'tcf2_sf_' + sf;
2525            categories[index] = categories[index] || {};
2526            categories[index].status = tcfConsent.specialFeatureOptins[sf] === true ? options.on : options.off;
2527        }
2528    }
2529
2530    return {
2531        categories: categories,
2532        vendors: vendors,
2533    };
2534};
2535
2536tC.privacy.isSet = tC.privacy.isSet || function() {
2537    return tC.privacy.cookieData != null && tC.privacy.cookieData.length > 0;
2538};
2539
2540tC.privacy.getConsent = function(options) {
2541    options = options || {};
2542    var prettyMode = options.pretty;
2543
2544    var defaultStatus = prettyMode ? 'off': false;
2545    var globalStatus = null;
2546
2547    //init cookie Data only when necessary
2548    if (tC.privacy.cookieData == null) {
2549        tC.privacy.init();
2550    }
2551
2552    if (tC.privacy.cookieData.length === 0) {
2553        defaultStatus = prettyMode ? 'unset': null;
2554        globalStatus = 'unset';
2555    } else if (Number(tC.privacy.cookieData[0]) === 1) {
2556        globalStatus = 'all-off';
2557    }
2558    var onStatus = true;
2559    var offStatus = false;
2560
2561    if(prettyMode){
2562        onStatus = 'on';
2563        offStatus = 'off';
2564    }
2565
2566    var optinCategories = tC.privacy.getOptinCategories().reduce(function(res, id) {
2567        res[id] = onStatus;
2568        return res;
2569    }, {});
2570    var categories = tC.privacy.getCategoryIdList();
2571    categories = categories.reduce(function(res, catId) {
2572        var key = catId;
2573        var field = 'status';
2574
2575        if (catId > 10000 && catId < 13000) {
2576            key = 'tcf2_' + Math.ceil((catId - 10000) / 2);
2577
2578            var isLegInt = catId % 2 === 0;
2579            if (isLegInt) {
2580                field = 'legIntStatus';
2581            }
2582        } else if (catId > 13000) {
2583            key = 'tcf2_sf_' + (catId - 13000);
2584        }
2585
2586        res[key] = res[key] || {};
2587        res[key][field] = optinCategories[catId] || defaultStatus;
2588        if (globalStatus == null && res[key][field] !== onStatus) {
2589            globalStatus = 'mixed';
2590        }
2591        return res;
2592    }, {});
2593
2594    tC.privacy.getBlockedOnCategories().forEach(function (catId) {
2595        categories[catId] = {status: onStatus, required: true};
2596    });
2597
2598    var vendors = tC.privacy.getVendorIdList();
2599    var optinVendors = tC.privacy.getOptinVendors().reduce(function(res, id) {
2600        res[id] = onStatus;
2601        return res;
2602    }, {});
2603    vendors = vendors.reduce(function(res, catId) {
2604        var key = catId;
2605        var field = 'status';
2606
2607        if (catId > 1000) {
2608            key = 'tcf2_' + Math.ceil((catId - 1000) / 2);
2609
2610            var isLegInt = catId % 2 === 0;
2611            if (isLegInt) {
2612                field = 'legIntStatus';
2613            }
2614        }
2615
2616        res[key] = res[key] || {};
2617        res[key][field] = optinVendors[catId] || defaultStatus;
2618        if (globalStatus == null && res[key][field] !== onStatus) {
2619            globalStatus = 'mixed';
2620        }
2621        return res;
2622    }, {});
2623
2624    if (tC.storage.getWithExpiry(tC.privacy.getCN() + '_TCF')) {
2625        var tcfConsent = tC.storage.getWithExpiry(tC.privacy.getCN() + '_TCF');
2626        var filledConsent = tC.privacy.setTcfConsent(tcfConsent, {
2627            categories: categories,
2628            vendors: vendors,
2629            on: onStatus,
2630            off: offStatus,
2631        });
2632        categories = filledConsent.categories;
2633        vendors = filledConsent.vendors;
2634    }
2635
2636    globalStatus = globalStatus || 'all-on';
2637    var meta = {
2638        version: '1.0',
2639        siteId: tC.id_site,
2640        consentId: tC.privacy.getConsentId(),
2641        bannerId: String(tC.privacy.getId()),
2642        bannerVersion: tC.privacy.getVersion(),
2643    };
2644    if (tC.privacy.iabVendorList) {
2645        meta.tcfPolicyVersion = String(tC.privacy.iabVendorList.tcfPolicyVersion);
2646    }
2647    if (tC.privacy.consentDates) {
2648        meta.dateCreated = tC.privacy.consentDates.createdAt;
2649        meta.dateUpdated = tC.privacy.consentDates.updatedAt;
2650        meta.dateExpires = tC.privacy.consentDates.expiresAt;
2651    }
2652    return {
2653        meta: meta,
2654        consent: {
2655            status: globalStatus,
2656            categories: categories,
2657            vendors: vendors,
2658        }
2659    };
2660};
2661
2662tC.privacy.updateConsent = function(options) {
2663    options = options || {};
2664    if (options.status === 'all-on') {
2665        tC.privacy.optinAll(options.action, { sendHit: options.sendHit });
2666        return;
2667    } else if (options.status === 'all-off') {
2668        tC.privacy.optoutAll(options.action, { sendHit: options.sendHit });
2669        return;
2670    }
2671
2672    options.categories = options.categories || {};
2673    options.vendors = options.vendors || {};
2674    var onStatus = options.pretty ? 'on' : true;
2675    var offStatus = options.pretty ? 'off' : false;
2676
2677    var optins = { categories: [], vendors: [], sendHit: false };
2678    var optouts = { categories: [], vendors: [], sendHit: false };
2679    var hasIab = window.__tcfapi != null;
2680
2681    Object.keys(options.categories).forEach(function(categoryId) {
2682        var internalId = categoryId;
2683        var category = options.categories[categoryId];
2684
2685        if (hasIab) {
2686            var tcfId = String(categoryId).match(/tcf2_(\d*)/);
2687            var tcfSpFeatId = tcfId ? String(categoryId).match(/tcf2_sf_(\d*)/) : null;
2688
2689            if (tcfSpFeatId) {
2690                internalId = 13000 + Number(tcfSpFeatId[1]);
2691            }
2692            else if (tcfId) { // purpose
2693                internalId = 10000 + (Number(tcfId[1]) * 2 - 1);
2694                if (category.legIntStatus === onStatus) {
2695                    optins.categories.push(internalId + 1);
2696                } else if (category.legIntStatus === offStatus) {
2697                    optouts.categories.push(internalId + 1);
2698                }
2699            }
2700        }
2701        if (category.status === onStatus) {
2702            optins.categories.push(internalId);
2703        } else if (category.status === offStatus) {
2704            optouts.categories.push(internalId);
2705        }
2706    });
2707
2708    Object.keys(options.vendors).forEach(function(vendorId) {
2709        var internalId = vendorId;
2710        var vendor = options.vendors[vendorId];
2711
2712        if (hasIab) {
2713            var tcfId = String(vendorId).match(/tcf2_(\d*)/);
2714
2715            if (tcfId) { // iab vendor
2716                internalId = 1000 + (Number(tcfId[1]) * 2 - 1);
2717                if (vendor.legIntStatus === onStatus) {
2718                    optins.vendors.push(internalId + 1);
2719                } else if (vendor.legIntStatus === offStatus) {
2720                    optouts.vendors.push(internalId + 1);
2721                }
2722            }
2723        }
2724        if (vendor.status === onStatus) {
2725            optins.vendors.push(internalId);
2726        } else if (vendor.status === offStatus) {
2727            optouts.vendors.push(internalId);
2728        }
2729    });
2730
2731    tC.privacy.optin(options.action, optins);
2732    tC.privacy.optout(options.action, optouts);
2733
2734    var sendHit = options.sendHit == null ? true : options.sendHit;
2735    if (sendHit) {
2736        var isOptin = tC.privacy.getOptinCategories().length > 0 || tC.privacy.getOptinVendors().length > 0;
2737        var action = options.action || 'banner_button';
2738        tC.privacy.hit(Number(isOptin), tC.privacy.getVersion(), tC.privacy.getId(), action);
2739    }
2740};
2741
2742tC.privacy.revokeConsent = function() {
2743    tC.privacy.optoutAll();
2744    tC.removeCookie(tC.privacy.getCN(), window.tc_privacy_force_domain);
2745    tC.removeCookie(tC.privacy.getPCCN(), window.tc_privacy_force_domain);
2746    tC.privacy.cookieData = [];
2747
2748    if (tC.storage) {
2749        tC.storage.remove(tC.privacy.getCN() + '_TCF');
2750        tC.storage.remove(tC.privacy.getCN() + '_ACM');
2751    }
2752
2753    tC.removeCookie('TCPID', window.tc_privacy_force_domain);
2754    tC.setCookie('TCPID', tC.privacy.rand(), 393, '/', window.tc_privacy_force_domain || tC.domain());
2755    tC.eventTarget.dispatchEvent('consent-revoke');
2756    tC.eventTarget.dispatchEvent('consent-update');
2757};
2758
2759tC.privacy.cok = tC.privacy.cok || function (action, version, categoryList, vendorList, options) {
2760    options = options || {};
2761    categoryList = categoryList || '';
2762    vendorList = vendorList || '';
2763    var consentDuration = tC.privacy.consentDuration || 13;
2764    consentDuration = parseInt(consentDuration) * 30;//conversion in days
2765    var forceDomain = typeof window.tc_privacy_force_domain !== 'undefined' ? window.tc_privacy_force_domain : null;
2766    // in case of IAB TCFv2 context, add vendor list version in cookie
2767    if (tC.privacy.iabVendorList) {
2768        version = version + '|' + tC.privacy.iabVendorList.gvlSpecificationVersion + '|'
2769            + tC.privacy.iabVendorList.tcfPolicyVersion + '|'
2770            + tC.privacy.iabVendorList.vendorListVersion;
2771    }
2772    if (tC.privacy.getId) {
2773        version = version + '|' + tC.privacy.getId() + '|' + tC.id_site;
2774    }
2775
2776    var now = new Date().getTime();
2777    var consentDates = now; // old format
2778    if (tC.privacy.consentDates) {
2779        var expires = now + (consentDuration * 1000 * 60 * 60 * 24);
2780
2781        tC.privacy.consentDates.updatedAt = now;
2782        tC.privacy.consentDates.createdAt = tC.privacy.consentDates.createdAt || now;
2783        tC.privacy.consentDates.expiresAt = expires;
2784
2785        consentDates = [
2786            tC.privacy.consentDates.updatedAt,
2787            tC.privacy.consentDates.createdAt,
2788            tC.privacy.consentDates.expiresAt,
2789        ].join(',');
2790    }
2791    var cookieValue = action + tC.privacy.getCS() + version + tC.privacy.getCS()
2792        + categoryList + tC.privacy.getCS() + (tC.privacy.blockedOnCategories || '')
2793        + tC.privacy.getCS() + consentDates + tC.privacy.getCS() + vendorList;
2794    tC.setCookie(tC.privacy.getCN(), cookieValue, consentDuration, '/', forceDomain);
2795    tC.setCookie(tC.privacy.getPCCN(), categoryList, consentDuration, '/', forceDomain);
2796    if (options.acmVendorList != null) {
2797        tC.storage.setWithExpiry(tC.privacy.getCN() + '_ACM', options.acmVendorList, consentDuration);
2798    }
2799    if (window.__tcfapi != null) {
2800        var tcfStorage = tC.privacy.getCN() + '_TCF';
2801        tC.storage.remove(tcfStorage);
2802        var isAsyncGetTcData = false;
2803        var hasGcmTcfSupport = tC.privacy.gcmEnabled && window.gtag_enable_tcf_support;
2804        window.__tcfapi('getTCData', 2, function(tcfData, success) {
2805            if (success) {
2806                tcfData.vendorListVersion = tC.privacy.iabVendorList.vendorListVersion;
2807                tC.storage.setWithExpiry(tcfStorage, tcfData, consentDuration);
2808                if (isAsyncGetTcData && hasGcmTcfSupport) {
2809                    tC.privacy.gcmUpdate();
2810                }
2811            }
2812        });
2813        isAsyncGetTcData = true;
2814    }
2815};
2816
2817/**
2818 * Check if all vendors are really optin, taking into account IAB legitimate interests
2819 * @returns {boolean}
2820 */
2821tC.privacy.checkOptinAllVendors = function () {
2822    var optinVendors = tC.privacy.getOptinVendors().map(String);
2823    var vendorIdList = tC.privacy.getVendorIdList().map(String);
2824
2825    return vendorIdList.every(function (vendorId) {// check if all vendors are optin
2826        return optinVendors.indexOf(vendorId) !== -1;
2827    });
2828};
2829
2830tC.privacy.checkOptoutAllVendors = function () {
2831    return tC.privacy.getVendorIdList().length > 0 && tC.privacy.getOptinVendors().length === 0;
2832};
2833
2834tC.privacy.sendBeacon = function(privacyHitDatas) {
2835    privacyHitDatas = privacyHitDatas || {};
2836    var privacyHitDomain = tC.privacy.getHitDomain(privacyHitDatas.tc_optout);
2837    tC.track({
2838        domain: privacyHitDomain,
2839        route: 'privacy-consent',
2840        siteId: privacyHitDatas.site,
2841        body: privacyHitDatas,
2842        isCookieless: Boolean(privacyHitDatas.tc_optout)
2843    });
2844};
2845
2846tC.privacy.createConsentId = function () {
2847    // tC.privacyCookieDisallowed blocks TCPID when no consent has been set
2848    if (tC.privacyCookieDisallowed &&
2849        (!tC.privacy.cookieData.length || (tC.privacy.cookieData.length === 1 && tC.privacy.cookieData[0] === ''))
2850    ) {
2851        return '';
2852    }
2853    var consentId = tC.getCookie('TCPID');
2854    if (consentId === '') {
2855        consentId = tC.privacy.rand();
2856        tC.setCookie('TCPID', consentId, 393, '/', tC.domain());
2857    }
2858    return consentId;
2859};
2860
2861tC.privacy.getConsentId = tC.privacy.getConsentId || function() {
2862    return tC.privacy.createConsentId() || tC.getCookie('TCPID'); // retro-compat with older versions of createConsentId
2863};
2864
2865/*
2866 * @param {string} action (in / out)
2867 * @param {number} privacyId (int)
2868 * @param {number} version (int)
2869 * @param {string} actionType
2870 */
2871tC.privacy.hit = tC.privacy.hit || function (action, version, privacyId, actionType) {
2872    var optOut;
2873    if (action === 0) {
2874        optOut = 1;
2875    } else if (action === 1) {
2876        optOut = 0;
2877    } else {
2878        optOut = parseInt(tC.privacy.cookieData[0] || 1);// 0 = optin ; 1 = optout (default)
2879    }
2880
2881    var privacyHitsCategory = tC.privacy.getPrivacyHitsCategory();
2882    var privacyCheck = true;
2883    if (privacyHitsCategory) {
2884        var oldCats = tC.privacy.categories || [];
2885        var nbOptinCatsBeforeHit = oldCats.length;
2886        var statsCategoryId = tC.privacy.tagsCategoriesAssignation[privacyHitsCategory];
2887        tC.privacy.init(); // refresh tC.privacy.cookieData
2888        privacyCheck = tC.privacy.validRules(privacyHitsCategory)
2889        || (tC.privacy.blockedOnCategories || []).indexOf(statsCategoryId) !== -1
2890        || (action === 1 && oldCats.indexOf(String(statsCategoryId)) > -1 && tC.privacy.categories.indexOf(String(statsCategoryId)) === -1)
2891        || (action === 0 && nbOptinCatsBeforeHit > 0 && tC.privacy.categories.length === 0);
2892    }
2893    if(privacyCheck){
2894        var referenceSelectableCategories = tC.privacy.privacySelectableUnblockedCategoriesId || tC.privacy.getFlattenCategoryIdList();
2895        var copyAllSelectableCategoriesId = referenceSelectableCategories.slice(); // we copy the list of all selectable categories because we want to be able to modify it while parsing it
2896        var updatedCategories = tC.privacy.getOptinCategories();
2897        var optinToAll = 0;
2898
2899        if (updatedCategories.length >= referenceSelectableCategories.length) {
2900            referenceSelectableCategories.forEach(function(item) { // we loop on all selectable categories
2901                if (updatedCategories.indexOf(String(item)) > -1) { // if the current category exists in our list of optin categories
2902                    copyAllSelectableCategoriesId.splice(copyAllSelectableCategoriesId.indexOf(item), 1); // then we remove it from the list of all selectable category
2903                }
2904            });
2905            optinToAll = copyAllSelectableCategoriesId.length === 0 ? 1 : 0; // if there is no more categories in the list of all selectable categories, then it means we are optin to all
2906        }
2907        var privacyHitDatas = {
2908            id_tc: String(tC.privacy.containerId || 21),
2909            site: String(4453),
2910            version: version,
2911            id_privacy: privacyId,
2912            type_action: actionType,
2913            privacy_action: action.toString(),
2914            optin_categories: tC.privacy.getValidCategories(),
2915            optout_categories: tC.privacy.getOptoutCategories(),
2916            optin_to_all: optinToAll,
2917            tcpid: tC.privacy.getConsentId(),
2918            tc_optout: optOut,
2919        };
2920        var doNotTrack = Number(window.tc_privacy_do_not_track || tC.getCookie('TC_PRIVACY_DO_NOT_TRACK'));
2921        if (doNotTrack) {
2922            var isConsentAction = ['1', '0'].indexOf(privacyHitDatas.privacy_action) !== -1;
2923            if (!isConsentAction) {
2924                return;
2925            }
2926            privacyHitDatas.do_not_track = Boolean(doNotTrack);
2927        }
2928        if (action === 1) {
2929            privacyHitDatas.optin_vendors = tC.privacy.getOptinVendors();
2930            privacyHitDatas.optin_to_all_vendors = Number(tC.privacy.checkOptinAllVendors());
2931        }
2932        tC.privacy.sendBeacon(privacyHitDatas);
2933    }
2934};
2935
2936tC.privacy.rand = tC.privacy.rand || function () {
2937    var d = new Date();
2938    return String() + d.getYear() + (d.getMonth() + 1) + d.getDay() + d.getHours() + d.getMinutes() + d.getSeconds() + parseInt(Math.random() * 12345678942);
2939};
2940
2941/*
2942settings : (object) collection of settings
2943exemple : id, version, reactived
2944*/
2945tC.privacy.set = tC.privacy.set || function (settings) {
2946    tC.privacy.settings = settings;
2947};
2948
2949tC.privacy.getCN = tC.privacy.getCN || function () {
2950    return typeof window.tc_privacy_cookie_name !== 'undefined' ? window.tc_privacy_cookie_name : 'TC_PRIVACY';
2951};
2952
2953tC.privacy.getPCCN = tC.privacy.getPCCN || function () {
2954    return tC.privacy.getCN() + '_CENTER';
2955};
2956
2957tC.privacy.getVCN = function () {
2958    return tC.privacy.getCN() + '_VENDOR';
2959};
2960
2961/*
2962return booleen if this context enabled the current privacy
2963*/
2964tC.privacy.isEnable = tC.privacy.isEnable || function () {
2965
2966    //init cookie Data only when necessary
2967    if (tC.privacy.cookieData === null) {
2968        tC.privacy.init();
2969    }
2970
2971    return (tC.privacy.cookieData.length <= 2 || (String(tC.privacy.reactivate) !== '' &&
2972        String(tC.privacy.cookieData[1]) === String(tC.privacy.reactivate)));
2973};
2974
2975/*
2976return the dom container element for the privacy
2977if the <div> preview is found, we return the preview dom element else, the body
2978*/
2979tC.privacy.getContainer = tC.privacy.getContainer || function (document) {
2980    return document.getElementById('tc_div_preview') || document.body;
2981};
2982
2983tC.privacy.getPrivacyHitsCategory = function() {
2984    return null;
2985};
2986tC.privacy.getHitDomain = function(optOut) {
2987    var privacyForceHitDomain = null;
2988    var defaultDomain = 'https://privacy.commander1.com';
2989    var customDomain = window.tc_collect_dns || tC.clientCollectDns;
2990
2991    var privacyHitDomain;
2992    if (customDomain) {
2993        privacyHitDomain = customDomain;
2994    } else if (privacyForceHitDomain) {
2995        privacyHitDomain = privacyForceHitDomain;
2996    } else if (Number(optOut) === 0) {
2997        privacyHitDomain = defaultDomain;
2998    } else {
2999        privacyHitDomain = 'https://privacy.trustcommander.net';
3000    }
3001    return privacyHitDomain;
3002};
3003
3004tC.privacy.hitCounter = function (idPrivacy, actionType) {
3005    var doNotTrack = Number(window.tc_privacy_do_not_track || tC.getCookie('TC_PRIVACY_DO_NOT_TRACK'));
3006    if (doNotTrack) {
3007        return;
3008    }
3009    actionType = actionType ? actionType : 'banner';
3010    tC.privacy.init();
3011    var optOut = parseInt(tC.privacy.cookieData[0] || 1);// 0 = optin ; 1 = optout (default)
3012
3013    var privacyHitsCategory = tC.privacy.getPrivacyHitsCategory();
3014    if(privacyHitsCategory == null || tC.privacy.validRules(privacyHitsCategory)){
3015        var privacyHitDatas = {
3016            id_tc: String(tC.privacy.containerId || 21),
3017            site: String(4453),
3018            version: tC.privacy.getVersion(),
3019            id_privacy: idPrivacy,
3020            type_action: actionType,
3021            privacy_action: 'V',
3022            tcpid: tC.privacy.getConsentId(),
3023            tc_optout: optOut
3024        };
3025        tC.privacy.sendBeacon(privacyHitDatas);
3026    }
3027};
3028
3029/**
3030* returns optin categories in an array
3031*/
3032tC.privacy.getOptinCategories = function () {
3033    tC.privacy.init();
3034    var optType = parseInt(tC.privacy.cookieData[0] || 0);
3035    if (tC.privacy.categories && tC.privacy.categories.length && tC.privacy.categories[0] === '') { // categories is [""]
3036        return [];
3037    }
3038    var hasOptinCategories = optType === 0 && tC.privacy.categories != null
3039        && tC.privacy.categories !== 'undefined' && Number(tC.privacy.categories) !== -1;
3040
3041    return hasOptinCategories ? tC.privacy.categories : [];
3042};
3043
3044tC.privacy.getOptoutCategories = function () {
3045    var categoryList = tC.privacy.getValidCategories();
3046    return tC.privacy.getCategoryIdList().concat(tC.privacy.getBlockedOnCategories()).map(String).filter(function (cat) {
3047        return categoryList.indexOf(cat) === -1;
3048    });
3049};
3050
3051tC.privacy.getOptinVendors = function () {
3052    tC.privacy.init();
3053    return tC.privacy.optinVendors || [];
3054};
3055
3056tC.privacy.getOptoutVendors = function () {
3057    tC.privacy.init();
3058    var vendorIds = tC.privacy.getVendorIdList().map(String);
3059    var optinVendors = (tC.privacy.optinVendors || []).map(String);
3060    return vendorIds.filter(function(id) {
3061        return optinVendors.indexOf(String(id)) === -1;
3062    });
3063};
3064
3065tC.privacy.getBlockedOnCategories = function() {
3066    return (tC.privacy.cachedBlockedOnCategories || tC.privacy.blockedOnCategories || []).map(String);
3067};
3068
3069tC.privacy.getValidCategories = function() {
3070    return tC.privacy.getOptinCategories().concat(tC.privacy.getBlockedOnCategories());
3071};
3072
3073tC.privacy.getValidVendors = function() {
3074    var validCategories = tC.privacy.getValidCategories();
3075    return tC.privacy.getOptinVendors().filter(function(vendorId) {
3076        var vendor = tC.privacy.includedVendors[vendorId];
3077        if (vendor) {
3078            if (vendor.categories != null) {
3079                return vendor.categories.every(function(categoryId) {
3080                    return validCategories.indexOf(String(categoryId)) !== -1;
3081                });
3082            } else {
3083                return true; // IAB vendors do not have native categories mapped
3084            }
3085        }
3086        return false;
3087    });
3088};
3089
3090/*
3091 * Get privacy cookie separator
3092 */
3093tC.privacy.getCS = tC.privacy.getCS || function () {
3094    return typeof tC.privacyCookieSeparator !== 'undefined' ? tC.privacyCookieSeparator : '@';
3095};
3096
3097tC.privacy.validRules = tC.privacy.validRules || function (tagId) {
3098    //init cookieData only when necessary
3099    if (tC.privacy.cookieData === null) {
3100        tC.privacy.init();
3101    }
3102
3103    // if the cookie is not found OR empty, return true;
3104    if (!tC.privacy.cookieData.length || (tC.privacy.cookieData.length === 1 && tC.privacy.cookieData[0] === '')) {
3105        return true;
3106    }
3107
3108    var isOptin = parseInt(tC.privacy.cookieData[0] || 0) === 0;
3109    var consentVersionDetails = tC.privacy.cookieData[1] ? tC.privacy.cookieData[1].split('|') : [0];
3110    var consentPrivacyVersion = parseInt(consentVersionDetails[0]);
3111    var consentPrivacyId = consentVersionDetails.length > 2 ? parseInt(consentVersionDetails[(consentVersionDetails.length - 2)]) : 0;
3112    var catsIdInCookie = (tC.privacy.cookieData[2] || '').split(',');//array of category IDs stored in the cookie
3113    var blockedOnCategories = tC.privacy.cookieData[3] ? tC.privacy.cookieData[3].split(',') : [];//array of blocked ON category IDs
3114    var optinVendors = tC.privacy.optinVendors;
3115    var tagCategory = (tC.privacy.tagsCategoriesAssignation && tC.privacy.tagsCategoriesAssignation[tagId]) ? tC.privacy.tagsCategoriesAssignation[tagId] : 0;//category affected to the tag
3116    var tagVendor = (tC.privacy.tagsVendorsAssignation && tC.privacy.tagsVendorsAssignation[tagId]) ? tC.privacy.tagsVendorsAssignation[tagId] : 0;//vendor affected to the tag
3117
3118    // true if:
3119    // blocked on category OR (optin cookie AND category in cookie)
3120    // AND
3121    // (no tag vendor OR optin vendor OR minor tag vendor without consent)
3122    // "minor tag vendor without consent" = in the "minor tags" list (tC.privacy.minorTags) AND vendor not optin AND vendor version > consent version for privacy
3123    var isBlockedCategory = tC.inArray(tagCategory.toString(), blockedOnCategories) !== -1;
3124    var isCategoryOptin = tC.inArray(tagCategory.toString(), catsIdInCookie) !== -1 || tC.inArray('ALL', catsIdInCookie) !== -1;
3125    var isVendorOptin = tC.inArray(tagVendor.toString(), optinVendors) !== -1;
3126    var isMinorTag = tC.inArray(parseInt(tagId), tC.privacy.minorTags) !== -1;
3127    var vendorPrivacyVersion = tC.privacy.includedVendors && tC.privacy.includedVendors[tagVendor] ? parseInt(tC.privacy.includedVendors[tagVendor].privacyVersion[consentPrivacyId]) : 0;
3128
3129    var isCategoryAllowed = isBlockedCategory || (isOptin && isCategoryOptin);
3130    var isVendorAllowed = !tagVendor || isVendorOptin || (isMinorTag && vendorPrivacyVersion > consentPrivacyVersion);
3131
3132    return isCategoryAllowed && isVendorAllowed;
3133};
3134
3135tC.privacy.sendDataOtherTMS = tC.privacy.sendDataOtherTMS || function() {
3136    var tcVendorsConsent = tC.privacy.getListVendorConsent(); // list of vendors to push to choosen TMS
3137    var tcCategoriesConsent = tC.privacy.getListCategoryConsent(); // list of categories to push to choosen TMS
3138
3139    //process other tms
3140    if (window.tCPrivacyTagManager) {
3141        switch (window.tCPrivacyTagManager) {
3142            case 'gtm':
3143                if (window.dataLayer && typeof window.dataLayer.push === 'function') {
3144                    // push event to gtm and variables in gtm datalayer
3145                    window.dataLayer.push({
3146                        'tcVendorsConsent': tcVendorsConsent,
3147                        'tcCategoriesConsent': tcCategoriesConsent,
3148                        'event': 'tcConsentChanged'
3149                    });
3150                }
3151                break;
3152            case 'adobe':
3153                if (window.digitalData && window.digitalData.user) {
3154                    // create variables in adobe datalayer
3155                    window.digitalData.user.tcVendorsConsent = tcVendorsConsent;
3156                    window.digitalData.user.tcCategoriesConsent = tcCategoriesConsent;
3157                }
3158                break;
3159            default:
3160                break;
3161        }
3162    }
3163    //add consent variables in window scope
3164    window.tcVendorsConsent = tcVendorsConsent;
3165    window.tcCategoriesConsent = tcCategoriesConsent;
3166};
3167
3168tC.privacy.getListCategoryConsent = tC.privacy.getListCategoryConsent || function() {
3169    if(tC.getCookie(tC.privacy.getCN()) === '') {//no consent cookie => no_consent
3170        return 'no_consent';
3171    }
3172
3173    var listCategory = tC.privacy.getOptinCategories();
3174    //consent cookie exists but optinCategories === [] || [""] (no selectable category is optin when there are selectable categories) => optout
3175    if (Array.isArray(listCategory) &&
3176        ((listCategory.length === 0 || (listCategory.length === 1 && String(listCategory[0]) === '')) && tC.privacy.privacySelectableUnblockedCategoriesId && tC.privacy.privacySelectableUnblockedCategoriesId.length > 0)) {
3177        return 'optout';
3178    }
3179
3180    //at least one selectable category is optin => return all categories, including blocked categories
3181    return tC.privacy.getValidCategories().join();
3182};
3183
3184tC.privacy.getListVendorConsent = tC.privacy.getListVendorConsent || function() {
3185    if(tC.getCookie(tC.privacy.getCN()) === '') {//no consent cookie => no_consent
3186        return 'no_consent';
3187    }
3188
3189    var listOptinVendor = tC.privacy.getOptinVendors();
3190    var selectableVendors = tC.privacy.getVendorIdList();
3191
3192    //consent cookie exists but optinVendors === [] || [""] (no selectable vendor is optin when there are selectable vendors) => optout
3193    var noOptinVendor = listOptinVendor.length === 0 || (listOptinVendor.length === 1 && String(listOptinVendor[0]) === '');
3194
3195    if (noOptinVendor && selectableVendors.length > 0) {
3196        return 'optout';
3197    }
3198
3199    //at least one vendor is optin => return all vendors
3200    return tC.privacy.getValidVendors().join();
3201};
3202
3203tC.privacy.getEmbeddedCategories = function () {
3204    return tC.privacy.allSelectableCategoriesId ? tC.privacy.allSelectableCategoriesId.map(function (el) {
3205        return parseInt(el);
3206    }) : [];
3207};
3208
3209tC.privacy.tagsCategoriesAssignation = [ tC.privacy.tagsCategoriesAssignation || {}, {"115":2,"117":2,"118":2,"127":2,"128":2,"132":2,"135":2,"143":2,"148":2,"103":2,"120":2,"122":2,"131":2,"123":2,"112":2,"130":2,"114":2,"116":2,"124":2,"133":2,"144":2,"152":2,"166":2,"134":2,"189":2,"193":2,"197":2,"199":2,"207":2,"210":2,"213":2,"125":1,"153":1,"169":1,"170":1,"137":1,"136":1,"126":1,"182":1,"183":1,"185":1,"184":1,"196":1,"202":1,"203":1,"107":1,"205":1,"212":1,"211":1,"200":1,"121":1,"129":3,"113":3,"138":3,"145":3,"167":3,"168":3,"171":3,"150":3,"149":3,"147":3,"146":3,"174":3,"151":3,"208":3,"DS1":3} ]
3210    .reduce(function(acc, val) {
3211        Object.keys(val).forEach(function(k) { acc[k] = val[k]; }); // Object.assign equivalent for IE11 support
3212        return acc;
3213    }, {});
3214
3215tC.privacy.tagsVendorsAssignation = [ tC.privacy.tagsVendorsAssignation || {}, {"189":1,"193":1,"197":1,"143":11,"103":11,"122":11,"144":11,"213":11,"185":5,"107":5,"212":5,"211":5,"115":6,"117":6,"116":6,"118":7,"128":7,"129":7,"138":7,"167":7,"168":7,"112":14,"207":14,"153":21,"169":21,"170":21,"137":21,"182":21,"183":21,"184":21,"196":21,"200":21,"121":21,"150":16,"149":16,"147":16,"146":16,"174":16,"151":16,"202":3,"203":4,"208":8} ]
3216    .reduce(function(acc, val) {
3217        Object.keys(val).forEach(function(k) { acc[k] = val[k]; }); // Object.assign equivalent for IE11 support
3218        return acc;
3219    }, {});
3220
3221tC.privacy.allCategories = tC.privacy.allCategories || [{"id":2,"label":"Personnalisation","categoryParent":-1,"description":"Ces cookies permettent d'am\u00e9liorer la qualit\u00e9 de l'information et des services que nous fournissons sur le site afin de r\u00e9pondre au mieux \u00e0 vos attentes","isUsedInTarget":"","subCategories":null,"tagsId":[115,117,118,127,128,132,135,143,148,103,120,122,131,123,112,130,114,116,124,133,144,152,166,134,189,193,197,199,207,210,213]},{"id":1,"label":"Mesure d'audience","categoryParent":-1,"description":"Ces cookies permettent d\u2019\u00e9tablir des statistiques, volumes de fr\u00e9quentations et d\u2019utilisation des divers \u00e9l\u00e9ments de notre site (contenus visit\u00e9s, parcours\u2026) afin d\u2019am\u00e9liorer l\u2019exp\u00e9rience utilisateur","isUsedInTarget":"","subCategories":null,"tagsId":[125,153,169,170,137,136,126,182,183,185,184,196,202,203,107,205,212,211,200,121]},{"id":4,"label":"R\u00e9seaux sociaux","categoryParent":-1,"description":"Ces cookies permettent de partager des contenus via des r\u00e9seaux sociaux et sont g\u00e9n\u00e9r\u00e9s par les boutons applicatifs fournis par ces r\u00e9seaux sociaux.","isUsedInTarget":"","subCategories":null,"tagsId":[]},{"id":3,"label":"Publicit\u00e9","categoryParent":-1,"description":"Ces cookies permettent de mieux cibler vos attentes afin d\u2019adapter les offres qui vous sont adress\u00e9es en fonction des centres d\u2019int\u00e9r\u00eats d\u00e9duits de votre navigation.","isUsedInTarget":"","subCategories":null,"tagsId":[129,113,138,145,167,168,171,150,149,147,146,174,151,208,"DS1"]}];
3222tC.privacy.includedVendors = tC.privacy.includedVendors || {"1":{"id":1,"label":"Commanders Act","description":"","policyUrl":" https:\/\/www.commandersact.com\/fr\/privacy\/","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[]},"11":{"id":11,"label":"AB Tasty","description":"","policyUrl":" https:\/\/www.abtasty.c
3222om\/fr\/politique-protection-vie-privee\/","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[2]},"5":{"id":5,"label":"Content Square","description":"","policyUrl":" https:\/\/contentsquare.com\/fr-fr\/privacy-center\/privacy-policy\/","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[1]},"6":{"id":6,"label":"Criteo","description":"","policyUrl":" https:\/\/www.criteo.com\/fr\/privacy\/","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[2,3]},"7":{"id":7,"label":"Google","description":"","policyUrl":"https:\/\/policies.google.com\/privacy?hl=fr","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[3]},"14":{"id":14,"label":"Green Bureau","description":"","policyUrl":"","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[2]},"21":{"id":21,"label":"Matomo","description":"","policyUrl":" https:\/\/fr.matomo.org\/privacy\/","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[1]},"22":{"id":22,"label":"GetQuanty","description":"","policyUrl":"","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[3]},"16":{"id":16,"label":"Adrenalead","description":"","policyUrl":"","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[3]},"2":{"id":2,"label":"0_Generic","description":null,"policyUrl":null,"privacyVersion":{"2":9,"4":8,"5":47,"6":19,"7":18,"8":29,"9":16,"10":10,"11":7,"12":5,"13":3,"14":3,"17":9,"18":2,"19":1,"20":34},"categories":[]},"3":{"id":3,"label":"Fullstory","description":"","policyUrl":"https:\/\/www.fullstory.com\/legal\/privacy-policy","privacyVersion":{"2":9,"5":47,"8":29,"17":9,"18":2,"19":1,"20":34},"categories":[1]},"4":{"id":4,"label":"Google Analytics","description":"","policyUrl":"https:\/\/policies.google.com\/privacy","privacyVersion":{"2":9,"4":8,"5":47,"6":21,"7":20,"8":29,"9":18,"10":11,"11":9,"12":7,"13":5,"14":5,"17":9,"18":2,"19":1,"20":34},"categories":[1]},"8":{"id":8,"label":"Linkedin","description":null,"policyUrl":null,"privacyVersion":{"2":9,"5":47,"18":2,"20":34},"categories":[3]}};
3223tC.privacy.includedVendorIds = Object.keys(tC.privacy.includedVendors);
3224tC.privacy.minorTags = (tC.privacy.minorTags || []).concat([]).filter(tC.arrayUniqueFilter);
3225
3226tC.privacy.setLocale = function(value){
3227    tC.privacy.lang = value;
3228};
3229
3230tC.privacy.useDynamicCdnDomain = tC.privacy.useDynamicCdnDomain != null ? tC.privacy.useDynamicCdnDomain : false;
3231tC.privacy.defaultCdnDomain = tC.privacy.defaultCdnDomain || 'cdn.trustcommander.net';
3232tC.privacy.validateGCMSequencing = tC.privacy.validateGCMSequencing || function () {
3233    if (window.dataLayer != null && Array.isArray(window.dataLayer)) {
3234        var consentIndexInSequence = window.dataLayer.findIndex(function(el) { return el[0] === 'consent'; });
3235        var configIndexInSequence = window.dataLayer.findIndex(function(el) { return el[0] === 'config'; });
3236
3237        if (consentIndexInSequence < configIndexInSequence) {
3238            return true;
3239        }
3240    }
3241
3242    return false;
3243};
3244
3245tC.privacy.explainGCMSequencingValidation = tC.privacy.explainGCMSequencingValidation || function () {
3246    return tC.privacy.validateGCMSequencing() ? 'Valid sequencing' : 'Consent is set too late, Google tags are triggered before consent set. Please verify your Consent Mode sequencing';
3247};
3248
3249tC.gtagInit = tC.gtagInit || function() {
3250    var config = tC.config || {};
3251    if (config.disableGtag === true) {
3252        return;
3253    }
3254
3255    window.dataLayer = window.dataLayer || [];
3256    window.gtag = window.gtag || function gtag() { window.dataLayer.push(arguments); };
3257    window.gtag('set', 'developer_id.' + "dOWVhY2", true);
3258};
3259
3260(function() {
3261    'use strict';
3262
3263    var tC = window.tC;
3264    if (tC == null || tC.cact == null) {
3265        return;
3266    }
3267
3268    tC.cact['consent.get'] = function() {
3269        var event = tC.cactUtils.formatArgumentsV2(arguments);
3270        var consent = tC.privacy.getConsent({ pretty: true });
3271        event.callback(consent);
3272    };
3273    tC.cact['consent.get']._tc_version = 2;
3274
3275    tC.cact['consent.onReady'] = function() {
3276        var event = tC.cactUtils.formatArgumentsV2(arguments);
3277        var initialConsent = tC.privacy.getConsent({ pretty: true });
3278        var initialStatus = initialConsent.consent.status;
3279        if (initialStatus !== 'unset') {
3280            initialConsent.updateEvent = 'set';
3281            event.callback(initialConsent);
3282            return;
3283        }
3284
3285        var listener = function() {
3286            var consent = tC.privacy.getConsent({ pretty: true });
3287            consent.updateEvent = 'set';
3288            event.callback(consent);
3289        };
3290        tC.eventTarget.addEventListener('consent-ready', listener);
3291    };
3292    tC.cact['consent.onReady']._tc_version = 2;
3293
3294    tC.cact['consent.onUpdate'] = function() {
3295        var event = tC.cactUtils.formatArgumentsV2(arguments);
3296        var initialConsent = tC.privacy.getConsent({ pretty: true });
3297        var nextEvent = initialConsent.consent.status === 'unset' ? 'set' : 'changed';
3298
3299        var revokeListener = function() {
3300            nextEvent = 'revoked';
3301        };
3302        var updateListener = function() {
3303            var consent = tC.privacy.getConsent({ pretty: true });
3304            var currentEvent = nextEvent;
3305            consent.updateEvent = currentEvent;
3306            nextEvent = currentEvent === 'revoked' ? 'set' : 'changed';
3307            event.callback(consent);
3308        };
3309        tC.eventTarget.addEventListener('consent-update', updateListener);
3310        tC.eventTarget.addEventListener('consent-revoke', revokeListener);
3311    };
3312    tC.cact['consent.onUpdate']._tc_version = 2;
3313})();
3314
3315if (tC.privacy.gcmEnabled == null) {
3316    tC.privacy.gcmEnabled = tC.config.gcmEnabled == null ? 1 : tC.config.gcmEnabled;
3317}
3318if (tC.privacy.gcmInitialized == null) {
3319    tC.privacy.gcmInitialized = false;
3320}
3321
3322tC.privacy.gcmInit = tC.privacy.gcmInit || function() {
3323    if (tC.gtagInit) {
3324        tC.gtagInit();
3325    }
3326    var gtag = window.gtag || function() {};
3327    tC.privacy.gcmInitialized = true;
3328
3329    var gcmTcfSupport = tC.config.gcmTcfSupport != null
3330        ? Boolean(tC.config.gcmTcfSupport)
3331        : 0;
3332    var hasIab = window.__tcfapi != null;
3333    if (gcmTcfSupport && hasIab) {
3334        window.gtag_enable_tcf_support = true;
3335    }
3336    var gcmUrlPassthrough = tC.config.gcmUrlPassthrough != null
3337        ? Boolean(tC.config.gcmUrlPassthrough)
3338        : 0;
3339    if (gcmUrlPassthrough) {
3340        gtag('set', 'url_passthrough', true);
3341    }
3342
3343    var gcmAdsDataRedaction = tC.config.gcmAdsDataRedaction != null
3344        ? Boolean(tC.config.gcmAdsDataRedaction)
3345        : 0;
3346    if (gcmAdsDataRedaction) {
3347        gtag('set', 'ads_data_redaction', true);
3348    }
3349
3350    var gcmGlobalConfig = Object.assign({}, {"ad_storage":"denied","analytics_storage":"denied","functionality_storage":"denied","personalization_storage":"denied","security_storage":"denied","ad_personalization":"denied","ad_user_data":"denied"});
3351    var gcmWaitForUpdate = tC.config.gcmWaitForUpdate != null
3352        ? Number(tC.config.gcmWaitForUpdate)
3353        : Number(0);
3354    if (gcmWaitForUpdate > 0) {
3355        gcmGlobalConfig.wait_for_update = gcmWaitForUpdate;
3356    }
3357
3358    tC.privacy.gcmCategoriesMapping = {"ad_storage":"3","analytics_storage":"1","functionality_storage":"1","personalization_storage":"3","security_storage":"1","ad_personalization":"3","ad_user_data":"3"};
3359
3360    var gcmConfigByRegion = Object.assign({ global: gcmGlobalConfig }, tC.config.gcmDefault);
3361    Object.keys(gcmConfigByRegion).forEach(function (region) {
3362        if (region !== 'global') { // handled after
3363            var regionDefault = Object.assign({ region: [ region ] }, gcmConfigByRegion[region]);
3364            gtag('consent', 'default', regionDefault);
3365        }
3366    });
3367
3368    gtag('consent', 'default', gcmConfigByRegion.global);
3369
3370    if (tC.privacy.isSet()) {
3371        var gcmConsent = tC.privacy.getGcmConsent();
3372        gtag('consent', 'update', gcmConsent);
3373    }
3374
3375    if (tC.eventTarget) {
3376        tC.eventTarget.addEventListener('container-ready', tC.privacy.gcmSendSignal, { once: true });
3377    }
3378    return;
3379};
3380
3381tC.privacy.getGcmConsent = tC.privacy.getGcmConsent || function() {
3382    var optinCategories = tC.privacy.getValidCategories();
3383    var gcmCategoriesMapping = tC.privacy.gcmCategoriesMapping || {};
3384    var tcfConsent = {};
3385    var tcfMapping = {};
3386    if (window.gtag_enable_tcf_support) {
3387        if (tC.storage) {
3388            tcfConsent = tC.storage.getWithExpiry(tC.privacy.getCN() + '_TCF') || {};
3389        }
3390        tcfMapping = {
3391            ad_storage: [1],
3392            ad_user_data: [1, 7],
3393            ad_personalization: [3, 4],
3394        };
3395    }
3396
3397    var gcmConsent = Object.keys(gcmCategoriesMapping).reduce(function (result, gcmCategory) {
3398        var privacyCategory = String(gcmCategoriesMapping[gcmCategory]);
3399        var isOptin = optinCategories.includes(privacyCategory);
3400        result[gcmCategory] = isOptin ? 'granted' : 'denied';
3401
3402        return result;
3403    }, {});
3404
3405    gcmConsent = Object.keys(tcfMapping).reduce(function (result, gcmCategory) {
3406        var tcfPurposes = tcfMapping[gcmCategory] || [];
3407        var isOptin = tcfPurposes.every(function(purposeId) {
3408            var purpose = tcfConsent.purpose;
3409            return purpose != null && purpose.consents[purposeId];
3410        });
3411        result[gcmCategory] = isOptin ? 'granted' : 'denied';
3412
3413        return result;
3414    }, gcmConsent);
3415
3416    return gcmConsent;
3417};
3418
3419tC.privacy.gcmUpdate = tC.privacy.gcmUpdate || function() {
3420    var gtag = window.gtag;
3421    if (Boolean(tC.privacy.gcmInitialized) === false) {
3422        tC.privacy.gcmInit();
3423    }
3424
3425    var gcmConsent = tC.privacy.getGcmConsent();
3426    if (gtag) {
3427        gtag('consent', 'update', gcmConsent);
3428    }
3429    tC.privacy.gcmSendSignal();
3430};
3431
3432tC.privacy.gcmSendSignal = tC.privacy.gcmSendSignal || function() {
3433    if (tC.eventTarget) {
3434        tC.eventTarget.dispatchEvent('consent-signal-ready', { tagTrigger: 'consent_signal_ready' });
3435    }
3436};
3437
3438tC.privacy.getGcmPolicyUrl = function() {
3439    return 'https://business.safety.google/privacy/';
3440};
3441
3442tC.privacy.getGcmHtml = function() {
3443    var url = tC.privacy.getGcmPolicyUrl();
3444    return '\
3445    <span id="gcm-policy-url" class="gcm-policy-url"> \
3446        <br id="gcm-line-break" class="gcm-line-break"/> \
3447        <a target="_blank" href="' + url  + '"> \
3448            <span id="gcm-url-text" class="gcm-url-text">' + url + '</span> \
3449        </a> \
3450    </span> \
3451    ';
3452};
3453
3454if (tC.privacy != null && tC.privacy.initialized === false) {
3455    tC.privacy.init();
3456}
3457
3458tC.extend({
3459    executeListener15_4453_21: function(el){
3460        window.top.postMessage('TC.EX.TRIGGER.FIRED:{"id":15,"name":"DOM ready","idcat":1,"cat":"DOM Ready"}', "*");
3461},
3462
3463    executeListener12_4453_21: function(el){
3464        window.top.postMessage('TC.EX.TRIGGER.FIRED:{"id":12,"name":"Clic formulaire contact commercant","idcat":2,"cat":"Clicks"}', "*");
3465},
3466
3467    executeListener14_4453_21: function(el){
3468        window.top.postMessage('TC.EX.TRIGGER.FIRED:{"id":14,"name":"Clic formulaire part","idcat":2,"cat":"Clicks"}', "*");
3469},
3470
3471    executeListener18_4453_21: function(el){
3472        window.top.postMessage('TC.EX.TRIGGER.FIRED:{"id":18,"name":"CLICK - BLOC JE SUIS UN PARTICULIER","idcat":2,"cat":"Clicks"}', "*");
3473if(tC.getCookie(tC.privacy.getCN()) != ''){
3474 if(tC.privacy.validRules('153')){
3475
3476        tC.executeTag153_4453_21(el);
3477        tC.eventTarget.dispatchEvent('tag_trigger_clicks', { eventTarget: (el || {}).target });
3478        tC.launchTag(153, 'MATOMO - TRACKING JE SUIS UN PARTICULIER', 26, 4453, 21, 18);
3479}
3480
3481}
3482},
3483
3484    executeListener19_4453_21: function(el){
3485        window.top.postMessage('TC.EX.TRIGGER.FIRED:{"id":19,"name":"Clic Bouton Contact mobile","idcat":2,"cat":"Clicks"}', "*");
3486if(tC.getCookie(tC.privacy.getCN()) != ''){
3487 if(tC.privacy.validRules('169')){
3488
3489        tC.executeTag169_4453_21(el);
3490        tC.eventTarget.dispatchEvent('tag_trigger_clicks', { eventTarget: (el || {}).target });
3491        tC.launchTag(169, 'MATOMO - CLIC BOUTON FLOTTANT SUR MOBILE', 26, 4453, 21, 19);
3492}
3493
3494}
3495},
3496
3497    executeListener21_4453_21: function(el){
3498        window.top.postMessage('TC.EX.TRIGGER.FIRED:{"id":21,"name":"Clic_SUIVANT","idcat":2,"cat":"Clicks"}', "*");
3499if(tC.getCookie(tC.privacy.getCN()) != ''){
3500 if(tC.privacy.validRules('185')){
3501 if(((document.location).toString().toLowerCase().indexOf(('floapay.').toLowerCase()) != -1)){
3502
3503        tC.executeTag185_4453_21(el);
3504        tC.eventTarget.dispatchEvent('tag_trigger_clicks', { eventTarget: (el || {}).target });
3505        tC.launchTag(185, 'A - CONTENTSQUARE - CONTACT - ETAPE 2', 26, 4453, 21, 21);
3506}
3507
3508}
3509
3510}
3511}});
3512
3513tC.event = tC.event || {};
3514tC.event.b2cEventListFunctions = tC.event.b2cEventListFunctions || [];
3515tC.event.b2cEventListIdTags = tC.event.b2cEventListIdTags || [];
3516if (tC.event.b2cEventListIdTags.indexOf("134")==-1){
3517    tC.event.b2cEventListIdTags.push("134");
3518    tC.event.b2cEventListFunctions.push(function(el, p){
3519    if(tC.getCookie(tC.privacy.getCN()) != ''){
3520 if(tC.privacy.validRules('134')){
3521 if((document.location).toString().toLowerCase().indexOf(('validation-particuliers.floapay' ).toLowerCase()) != -1 || (document.location).toString().toLowerCase().indexOf(( 'preprod-particuliers.floapay').toLowerCase()) != -1){
3522 if(tc_vars["event"] == 'forgot-password-click'){
3523
3524        tC.executeTag134_4453_21(el, p);
3525        tC.launchTag(134, 'CA - QA - b2cEvent + forgot-password-click', 78, 4453, 21, 16);
3526}
3527
3528}
3529
3530}
3531
3532}
3533});
3534}
3535if (tC.event.b2cEventListIdTags.indexOf("133")==-1){
3536    tC.event.b2cEventListIdTags.push("133");
3537    tC.event.b2cEventListFunctions.push(function(el, p){
3538    if(tC.getCookie(tC.privacy.getCN()) != ''){
3539 if(tC.privacy.validRules('133')){
3540 if(((document.location).toString().toLowerCase().match( new RegExp(('.*validation-particuliers\.floapay\.com|particuliers\.floapay\.com').replace(new RegExp("\\*","g"),".*"),"gi") ))){
3541
3542        tC.executeTag133_4453_21(el, p);
3543        tC.launchTag(133, 'CONTENTSQUARE - B2C - TOUTES LES ETAPES', 26, 4453, 21, 16);
3544}
3545
3546}
3547
3548}
3549});
3550}
3551if (tC.event.b2cEventListIdTags.indexOf("137")==-1){
3552    tC.event.b2cEventListIdTags.push("137");
3553    tC.event.b2cEventListFunctions.push(function(el, p){
3554    if(tC.getCookie(tC.privacy.getCN()) != ''){
3555 if(tC.privacy.validRules('137')){
3556 if(((document.location).toString().toLowerCase().match( new RegExp(('.*validation-particuliers\.floapay\.com|particuliers\.floapay\.com').replace(new RegExp("\\*","g"),".*"),"gi") ))){
3557
3558        tC.executeTag137_4453_21(el, p);
3559        tC.launchTag(137, 'MATOMO - B2C - PARTICULIERS FLOAPAY - ATTEINTE ETAPES', 26, 4453, 21, 16);
3560}
3561
3562}
3563
3564}
3565});
3566}
3567if (tC.event.b2cEventListIdTags.indexOf("182")==-1){
3568    tC.event.b2cEventListIdTags.push("182");
3569    tC.event.b2cEventListFunctions.push(function(el, p){
3570    if(tC.getCookie(tC.privacy.getCN()) != ''){
3571 if(tC.privacy.validRules('182')){
3572 if(((document.location).toString().toLowerCase().match( new RegExp(('.*validation-particuliers\.floapay\.com|particuliers\.floapay\.com').replace(new RegExp("\\*","g"),".*"),"gi") ))){
3573
3574        tC.executeTag182_4453_21(el, p);
3575        tC.launchTag(182, 'MATOMO - B2C - PARTICULIERS TRACKING EVENTS CLIC', 26, 4453, 21, 16);
3576}
3577
3578}
3579
3580}
3581});
3582}
3583tC.event.b2cEvent=function(el, p){
3584tc_array_events=tC.container_4453_21.init_tc_array_events(p);
3585for(var i=0,x=tC.event.b2cEventListFunctions.length;i<x;i++){
3586tC.event.b2cEventListFunctions[i](el, p);
3587}
3588};
3589
3590tC.event.b2ceventListFunctions = tC.event.b2ceventListFunctions || [];
3591tC.event.b2ceventListIdTags = tC.event.b2ceventListIdTags || [];
3592tC.event.b2cevent=function(el, p){
3593tc_array_events=tC.container_4453_21.init_tc_array_events(p);
3594for(var i=0,x=tC.event.b2ceventListFunctions.length;i<x;i++){
3595tC.event.b2ceventListFunctions[i](el, p);
3596}
3597};
3598;
3599
3600;
3601tC.extend({
3602    container: {
3603        reload: function(){
3604            var params = arguments[0];
3605            tC.reload_events = true;
3606            tC.container_position = 0;
3607
3608            if(tC.containerList){
3609                tC.each(tC.containerList, function(index, value) {
3610                    if(typeof tC['container_'+value] === 'object' && typeof tC['container_'+value].reload === 'function') {
3611                        tC['container_' + value].reload(params, true);
3612                        tC.reload_events = false;
3613                    }
3614                });
3615            }
3616        }
3617    }
3618});
3619
3620(function() {
3621    var containerIdExtend = {};
3622    var containerName = 4453 + '_' + 21;
3623    var container = window['tC_' + containerName] || {};
3624    var cactTriggerFuncName = 'trigger' + '_' + containerName;
3625
3626    var containerApi = {
3627        /**
3628         * Load container elements
3629         * @param {object} params Parameters of the load (list of exclusions, tC.event functions to call…) ; ex.: {exclusions:["datastorage", "internalvars"], events:{function1:["paramF1"],function2:["param1F2", "param2F2"]}}
3630         * @param {boolean} [isReload] false (default) for the first load, true for a reload
3631         */
3632        load: function(params, isReload){
3633            tC.container_position++;
3634            tC['hitCounter_' + containerName]();
3635            this.datalayer();
3636            tC.array_launched_tags = [];
3637            tC.array_launched_tags_keys = [];
3638
3639            if(typeof params !== 'object'){
3640                params = {};
3641            }
3642
3643            if(typeof isReload !== 'boolean'){
3644                isReload = false;
3645            }
3646
3647            if(typeof params.exclusions === 'undefined') {
3648                params.exclusions = [];
3649            }
3650
3651            if (params.exclusions.indexOf('datastorage') === -1) {
3652                this.datastorage();
3653            }
3654
3655            if (params.exclusions.indexOf('deduplication') === -1) {
3656                this.deduplication();
3657            }
3658
3659            if (params.exclusions.indexOf('internalvars') === -1) {
3660                this.internalvars();
3661            }
3662
3663            if (params.exclusions.indexOf('privacy') === -1) {
3664                this.privacy();
3665            }
3666
3667            if (params.exclusions.indexOf('eventlisteners') === -1) {
3668                this.eventlisteners();
3669            }
3670
3671            if (tC.reload_events === false || typeof params.events === 'undefined') {
3672                params.events = {};
3673            }
3674
3675            //Each params.events is an object with name of the function in key and an array of parameters in value, for example: {function1:["param1", "param2"]}
3676            tC.each(params.events, function (k, v) {
3677                if (tC.event && typeof tC.event[k] === 'function' && v.length > 0) {//we check if there is a tC.event corresponding, with at least 1 parameter
3678                    if (typeof v[1] === 'undefined') {//2nd parameter is not set, we don't send it to the tC.event custom function
3679                        tC.event[k](v[0]);
3680                    } else {
3681                        tC.event[k](v[0], v[1]);
3682                    }
3683                }
3684            });
3685        },
3686
3687        reload: function(params, isGlobalReload){
3688            if(typeof isGlobalReload !== 'boolean'){
3689                isGlobalReload = false;
3690            }
3691
3692            if(!isGlobalReload){
3693                tC.container_position = 0;
3694                tC.reload_events = true;
3695            }
3696
3697            this.load(arguments[0], true);
3698        },
3699
3700        datalayer: function(){
3701            /* global tc_vars */
3702            if(typeof tc_vars==='undefined') window.tc_vars=[];
3703            var l = 'env_support|page_type|env_travail|event|evenement|page|client_contract_type|client_employer_seniority|client_housing_status|client_income_net|client_marital_status|client_monthly_expenses|client_nationality|client_number_of_children|client_profession_status|client_profession_status_type|country|env|error_code|financing_after_buy_back_amount|financing_buy_back_amount|financing_buying_amount|financing_installments_count|language|merchant_name|order_levy_mode|page_category_title|page_step_title|page_substep_title|product_code|total_amount|total_customer_fees|total_discount_amount|total_shipping_fees|env_template|page_cat1|page_cat2|page_name|user_name|user_lastname|user_firstname|user_email|user_mensu|user_prelev|user_id'.split('|');
3704            for(var k in l){
3705                if(!tc_vars.hasOwnProperty(l[k])){
3706                    tc_vars[l[k]]='';
3707                }
3708            }
3709
3710            window.top.postMessage('TC.EX.EXT_VARS.RELOAD', '*');
3711        },
3712
3713        datastorage: function(){
3714            if(tC.getCookie(tC.privacy.getCN()) != ''){
3715
3716if(tC.privacy.validRules('DS1')){
3717//UNIQ ID COOKIE MANAGER
3718(function(){
3719var lifetime = 30;
3720if(!tC.getCookie('TC_UID')){
3721    var currentTime = new Date();
3722    var month = currentTime.getMonth() + 1;
3723    var day = currentTime.getDate();
3724    var year = currentTime.getFullYear();
3725    var hour = currentTime.getHours();
3726    var minute = currentTime.getMinutes();
3727    var seconds = currentTime.getSeconds();
3728    var rand = Math.random();
3729    var uniqid = 'V1'+year+month+day+hour+minute+seconds+rand;
3730    tC.setCookie('TC_UID',uniqid,lifetime,'/');
3731}else{
3732    if('1' == '1'){
3733        var uniqid = tC.getCookie('TC_UID');
3734        tC.setCookie('TC_UID',uniqid,lifetime,'/');     
3735    }
3736}
3737})();}
3738
3739}
3740;
3741
3742            window.top.postMessage('TC.EX.DATASTORAGE.RELOAD', '*');
3743        },
3744
3745        deduplication: function(){
3746            if(tC.dedup) {
3747                tC.dedup.LeA=false;
3748                tC.dedup.LeAD=false;
3749                tC.dedup.LeC=false;
3750                tC.dedup.LeCD=false;
3751                tC.dedup.LeV=false;
3752                tC.dedup.LeVD=false;
3753                tC.dedup.FeA=false;
3754                tC.dedup.FeAD=false;
3755                tC.dedup.FeC=false;
3756                tC.dedup.FeCD=false;
3757                tC.dedup.FeV=false;
3758                tC.dedup.FeVD=false;
3759                tC.dedup.AeA=[];
3760                tC.dedup.AeC=[];
3761                tC.dedup.AeV=[];
3762                tC.dedup.init();
3763                tC.dedup.setEventList();
3764            }
3765        },
3766
3767        eventlisteners: function(){
3768            
3769            var allElements = document.querySelectorAll('#formPro');
3770            for(var i = 0; i < allElements.length; i++){
3771                allElements[i].removeEventListener("click", tC.executeListener12_4453_21);
3772                allElements[i].addEventListener("click", tC.executeListener12_4453_21);
3773            }
3774
3775            var allElements = document.querySelectorAll('#formPart');
3776            for(var i = 0; i < allElements.length; i++){
3777                allElements[i].removeEventListener("click", tC.executeListener14_4453_21);
3778                allElements[i].addEventListener("click", tC.executeListener14_4453_21);
3779            }
3780
3781            var allElements = document.querySelectorAll('a.bloc-link.first');
3782            for(var i = 0; i < allElements.length; i++){
3783                allElements[i].removeEventListener("click", tC.executeListener18_4453_21);
3784                allElements[i].addEventListener("click", tC.executeListener18_4453_21);
3785            }
3786
3787            var allElements = document.querySelectorAll('a#textCta.button-contact');
3788            for(var i = 0; i < allElements.length; i++){
3789                allElements[i].removeEventListener("click", tC.executeListener19_4453_21);
3790                allElements[i].addEventListener("click", tC.executeListener19_4453_21);
3791            }
3792
3793            var allElements = document.querySelectorAll('.buttons.step1 .next-button');
3794            for(var i = 0; i < allElements.length; i++){
3795                allElements[i].removeEventListener("click", tC.executeListener21_4453_21);
3796                allElements[i].addEventListener("click", tC.executeListener21_4453_21);
3797            }
3798;
3799        },
3800
3801        internalvars: function(){
3802            var listInternalVars = tC['internalvars_' + containerName].listVar;
3803            if(listInternalVars.length > 0){
3804                for (var i = 0; i < listInternalVars.length; i++) {
3805                    tC['internalvars_' + 4453].initiators['var'+listInternalVars[i]]();
3806                }
3807            }
3808
3809            window.top.postMessage('TC.EX.INT_VARS.RELOAD', '*');
3810        },
3811
3812        privacy: function(){
3813            if(tC.privacy) {
3814                tC.privacy.init();
3815            }
3816        },
3817
3818        init_tc_array_events: function(t){
3819            if (typeof t === 'undefined') {
3820                t = {};
3821            }
3822            var l = ''.split('|');
3823            for (var k in l) {
3824                if (!t.hasOwnProperty(l[k])) {
3825                    t[l[k]] = '';
3826                }
3827            }
3828
3829            return t;
3830        },
3831        cact: function() {
3832            var args = arguments;
3833            if (args[0] === 'trigger') {
3834                args[0] = cactTriggerFuncName;
3835            }
3836            window.caReady.push(args);
3837        },
3838        get_info: function() {
3839            var info  = Object.assign({}, container);
3840            delete info.api;
3841            return info;
3842        },
3843        get_config: function() {
3844            return Object.assign({}, tC.config);
3845        }
3846    };
3847
3848    containerIdExtend['container_' + containerName] = containerApi;
3849    tC.extend(containerIdExtend);
3850    container.api = containerApi;
3851
3852    if(typeof tC.containerList === 'undefined'){tC.containerList = [];}
3853    tC.containerList.push(containerName);
3854    window.tc_array_events = tC['container_' + containerName].init_tc_array_events([]);
3855
3856    if (tC.cact) {
3857        tC.cact[cactTriggerFuncName] = function() {
3858            var args = tC.cactUtils.formatArgumentsV2(arguments);
3859
3860            var event = args.event;
3861            var properties = Object.assign({}, args.properties);
3862            var config = Object.assign({}, args.config);
3863            var callback = args.callback;
3864
3865            var globalConfig = tC.config || {};
3866            if (!config.sourceKey && !globalConfig.sourceKey && container.sourceKey) {
3867                config.sourceKey = container.sourceKey;
3868            }
3869            if (!config.siteId && !config.id_site && !globalConfig.siteId && container.id_site) {
3870                config.siteId = container.id_site;
3871            }
3872
3873            tC.cact.trigger(event, properties, config, callback);
3874        };
3875        tC.cact[cactTriggerFuncName]._tc_version = 2;
3876    }
3877})();
3878
3879;
3880
3881    window['tC' + currentContainer.id_site + '_' + currentContainer.id_container] = tC;
3882
3883    window.postMessage('TC.EX.CONTAINER:{"id":' + currentContainer.id_container + ',"ids":' + currentContainer.id_site + ',"v":"' + currentContainer.containerVersion + '","g":' + currentContainer.generatorVersion + ',"p":'+tC.container_position+',"url":"'+(document.currentScript ? document.currentScript.src : '')+'"}','*');
3884})();
3885
3886tC.container_4453_21.datalayer();tC.array_launched_tags=[];tC.array_launched_tags_keys=[];
3887
3888/*DYNAMIC JS BLOCK 1*/
3889
3890
3891/*Dynamic file : https://code.jquery.com/jquery-3.4.1.min.js*/
3892
vendor: 88,148 bytes, lines 3893-3896
3893/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
3894!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
3895
3896/*
3896END DYNAMIC JS BLOCK 1*/
3897
3898/*CUSTOM_JS_BLOCK1*/
3899cact('consent.onUpdate',function(result){var PERSO_ID=2;var AB_TASTY_CONSENT=11;var persoCategory=result.consent.categories[PERSO_ID]||{};var abTastyVendor=result.consent.vendors[AB_TASTY_CONSENT]||{};if(persoCategory.status==='on'&&abTastyVendor.status==='on'){tC.setCookie('consent_perso','1',180)}else{tC.setCookie('consent_perso','0',180)}});
3900/*END_CUSTOM_JS_BLOCK1*/
3901if(tC.privacyCookieDisallowed){tC.setCookie('TCPID','',-1,'',tC.domain());}
3902tC.id_site='4453';
3903/*VARIABLES_BLOCK*/
3904tC.internalvars_4453.initiators=tC.internalvars_4453.initiators||{};tC.internalvars_4453_21={listVar:[]}
3905tC.internalvars_4453.initiators.var264=function(){if(typeof(tC.internalvars.ReloadPrivacy)=="undefined"){tC.internalvars.ReloadPrivacy=false;}}
3906tC.internalvars_4453.initiators.var264();tC.internalvars_4453_21.listVar.push(264);tC.internalvars_4453.initiators.var266=function(){tC.extend({detectDevice:{get:function(){var ua=(navigator?navigator.userAgent:'No User-Agent Provided');return ua.match(/GoogleTV|SmartTV|Internet.TV|NetCast|NETTV|AppleTV|boxee|Kylo|Roku|DLNADOC|CE-HTML/i)?'tv':ua.match(/Xbox|PLAYSTATION.3|Wii/i)?'tv':ua.match(/iPad/i)||ua.match(/tablet/i)&&!ua.match(/RX-34/i)||ua.match(/FOLIO/i)?'t':ua.match(/Linux/i)&&ua.match(/Android/i)&&!ua.match(/Fennec|mobi|HTC.Magic|HTCX06HT|Nexus.One|SC-02B|fone.945/i)?'t':ua.match(/Kindle/i)||ua.match(/Mac.OS/i)&&ua.match(/Silk/i)?'t':ua.match(/GT-P10|SC-01C|SHW-M180S|SGH-T849|SCH-I800|SHW-M180L|SPH-P100|SGH-I987|zt180|HTC(.Flyer|_Flyer)|Sprint.ATP51|ViewPad7|pandigital(sprnova|nova)|Ideos.S7|Dell.Streak.7|Advent.Vega|A101IT|A70BHT|MID7015|Next2|nook/i)||ua.match(/MB511/i)&&ua.match(/RUTEM/i)?'t':ua.match(/BOLT|Fennec|Iris|Maemo|Minimo|Mobi|mowser|NetFront|Novarra|Prism|RX-34|Skyfire|Tear|XV6875|XV6975|Google.Wireless.Transcoder/i)?'m':ua.match(/Opera/i)&&ua.match(/Windows.NT.5/i)&&ua.match(/HTC|Xda|Mini|Vario|SAMSUNG-GT-i8000|SAMSUNG-SGH-i9/i)?'m':ua.match(/Windows.(NT|XP|ME|9)/)&&!ua.match(/Phone/i)||ua.match(/Win(9|.9|NT)/i)?'d':ua.match(/Macintosh|PowerPC/i)&&!ua.match(/Silk/i)?'d':ua.match(/Linux/i)&&ua.match(/X11/i)?'d':ua.match(/Solaris|SunOS|BSD/i)?'d':ua.match(/Bot|Crawler|Spider|Yahoo|ia_archiver|Covario-IDS|findlinks|DataparkSearch|larbin|Mediapartners-Google|NG-Search|Snappy|Teoma|Jeeves|TinEye/i)&&!ua.match(/Mobile/i)?'d':'m';}}});tC.internalvars.device=tC.detectDevice.get();}
3907tC.internalvars_4453.initiators.var266();tC.internalvars_4453_21.listVar.push(266);tC.internalvars_4453.initiators.var269=function(){tC.internalvars.iadvize_ssid="6473";if(window.location.href.indexOf("preprod.floapay.")>-1){tC.internalvars.iadvize_ssid="6430";}
3908if(window.location.href.indexOf("floapay.")>-1){tC.internalvars.iadvize_ssid="6473";}}
3909tC.internalvars_4453.initiators.var269();tC.internalvars_4453_21.listVar.push(269);tC.internalvars_4453.initiators.var270=function(){tC.internalvars.GBtoken="50dd9468-de17-4a97-808f-acd030f6ccbc";if(window.location.href.indexOf("preprod.floapay.")>-1){tC.internalvars.GBtoken="1161d16a-f28a-4bcf-9734-beff90fa3c03";}
3910if(window.location.href.indexOf("floapay.")>-1){tC.internalvars.GBtoken="760c3b20-32b4-4657-9546-131b9f5fe078";}}
3911tC.internalvars_4453.initiators.var270();tC.internalvars_4453_21.listVar.push(270);tC.internalvars_4453.initiators.var262=function(){var ref=window.location.href;tC.internalvars.ua_standard="UA-25167844-8";if(ref.indexOf("dev-floa-pay.aps.floapay.")>-1){tC.internalvars.ua_standard="UA-25167844-9";}}
3912tC.internalvars_4453.initiators.var262();tC.internalvars_4453_21.listVar.push(262);tC.internalvars_4453.initiators.var272=function(){var ref=window.location.href;tC.internalvars.siteId_standard="19";if(ref.indexOf("dev-floa-pay.aps.floapay.")>-1){tC.internalvars.siteId_standard="3";}}
3913tC.internalvars_4453.initiators.var272();tC.internalvars_4453_21.listVar.push(272);tC.internalvars_4453.initiators.var273=function(){var ref=window.location.href;tC.internalvars.ga4_standard="G-48FDWDGZ7C";if(ref.indexOf("dev-floa-pay.aps.floapay.")>-1){tC.internalvars.ga4_standard="G-819GT4DWF1";}}
3914tC.internalvars_4453.initiators.var273();tC.internalvars_4453_21.listVar.push(273);tC.internalvars_4453.initiators.var274=function(){var ref=window.location.href;tC.internalvars.siteIds={standard_siteId:ref.indexOf("dev-floa-pay.aps.floapay.")>-1?'4':'1',standard_cumul_GA:'19'};}
3915tC.internalvars_4453.initiators.var274();tC.internalvars_4453_21.listVar.push(274);tC.internalvars_4453.initiators.var279=function(){var ref=window.location.pathname;if(ref=="/contactez-nous-ok"){tC.internalvars.ads_label="l1QqCISgg4EYEP7AsOAD";}else
3916if(ref=="/contactanos-ok"){tC.internalvars.ads_label="IOIPCLrIhYEYEP7AsOAD";}else
3917if(ref=="/contattaci-ok"){tC.internalvars.ads_label="1v3xCOrDhIEYEP7AsOAD";}else
3918if(ref=="/contacte-nos-ok"){tC.internalvars.ads_label="U1H0CKGShYEYEP7AsOAD";}else
3919if(ref=="/fr/contactez-nous-ok"){tC.internalvars.ads_label="CmfOCOOuh4EYEP7AsOAD";}}
3920tC.internalvars_4453.initiators.var279();tC.internalvars_4453_21.listVar.push(279);tC.internalvars_4453.initiators.var280=function(){var url=window.location.hostname;if(url.indexOf('.es')!==-1){tC.internalvars.adrenaleadsetIds='ffc2ae9d1746aba1';}
3921if(url.indexOf('.de')!==-1){tC.internalvars.adrenaleadsetIds='b0489f21a0d4458c';}
3922if(url.indexOf('.com')!==-1){tC.internalvars.adrenaleadsetIds='c4a4036730cd00b7';}
3923if(url.indexOf('.fr')!==-1){tC.internalvars.adrenaleadsetIds='b1c791f8393db34e';}
3924if(url.indexOf('.it')!==-1){tC.internalvars.adrenaleadsetIds='0cf0c5a6792a0196';}
3925if(url.indexOf('.nl')!==-1){tC.internalvars.adrenaleadsetIds='cc5725e94494f72d';}
3926if(url.indexOf('.pt')!==-1){tC.internalvars.adrenaleadsetIds='bfb333fd414a70d7';}}
3927tC.internalvars_4453.initiators.var280();tC.internalvars_4453_21.listVar.push(280);tC.internalvars_4453.initiators.var281=function(){tC.internalvars.new_label_ads="";var ref=window.location.pathname;if(ref=="/contactez-nous-ok"){tC.internalvars.new_label_ads="-3wpCLPXxKIYENqTk94C";}else
3928if(ref=="/contactanos-ok"){tC.internalvars.new_label_ads="_r7GCN74h64YENqTk94C";}else
3929if(ref=="/contattaci-ok"){tC.internalvars.new_label_ads="jXODCNbQm64YENqTk94C";}else
3930if(ref=="/contacte-nos-ok"){tC.internalvars.new_label_ads="8YIDCLnIiK4YENqTk94C";}else
3931if(ref=="/fr/contactez-nous-ok"){tC.internalvars.new_label_ads="hRMfCOzXiK4YENqTk94C";}else
3932if(ref=="/nl/contact-ok"){tC.internalvars.new_label_ads="LGyBCOLfiK4YENqTk94C";}}
3933tC.internalvars_4453.initiators.var281();tC.internalvars_4453_21.listVar.push(281);tC.internalvars_4453.initiators.var282=function(){function tc_getDomainExtensionFromCurrentPage(){try{var domain=location.hostname;var domainSegments=domain.split('.');var domainExtension=domainSegments[domainSegments.length-1];return domainExtension;}catch(error){tC.error('Erreur lors de l\'extraction de l\'extension de domaine :',error);return null;}}
3934tC.internalvars.extensionDomain=tc_getDomainExtensionFromCurrentPage();}
3935tC.internalvars_4453.initiators.var282();tC.internalvars_4453_21.listVar.push(282);tC.internalvars_4453.initiators.var286=function(){tC.internalvars.tc_title=document.title;}
3936tC.internalvars_4453.initiators.var286();
3936tC.internalvars_4453_21.listVar.push(286);tC.internalvars_4453.initiators.var287=function(){tC.internalvars.tc_url=document.location.href;}
3937tC.internalvars_4453.initiators.var287();tC.internalvars_4453_21.listVar.push(287);tC.internalvars_4453.initiators.var285=function(){tC.internalvars.tc_referrer=document.referrer;}
3938tC.internalvars_4453.initiators.var285();tC.internalvars_4453_21.listVar.push(285);tC.internalvars_4453.initiators.var288=function(){tC.internalvars.tc_url_1=(function(){tC.internalvars.tc_url_1_tmp=document.location.href.split('?');tC.internalvars.tc_url_1_tmp2=tC.internalvars.tc_url_1_tmp[0].split('/');return tC.internalvars.tc_url_1_tmp2[3];})();}
3939tC.internalvars_4453.initiators.var288();tC.internalvars_4453_21.listVar.push(288);tC.internalvars_4453.initiators.var289=function(){tC.internalvars.tc_url_2=(function(){tC.internalvars.tc_url_2_tmp=document.location.href.split('?');tC.internalvars.tc_url_2_tmp2=tC.internalvars.tc_url_2_tmp[0].split('/');return tC.internalvars.tc_url_2_tmp2[4];})();}
3940tC.internalvars_4453.initiators.var289();tC.internalvars_4453_21.listVar.push(289);tC.internalvars_4453.initiators.var290=function(){tC.internalvars.tc_url_3=(function(){tC.internalvars.tc_url_3_tmp=document.location.href.split('?');tC.internalvars.tc_url_3_tmp2=tC.internalvars.tc_url_3_tmp[0].split('/');return tC.internalvars.tc_url_3_tmp2[5];})();}
3941tC.internalvars_4453.initiators.var290();tC.internalvars_4453_21.listVar.push(290);tC.internalvars_4453.initiators.var284=function(){tC.internalvars.tc_pathname=window.location.pathname;}
3942tC.internalvars_4453.initiators.var284();tC.internalvars_4453_21.listVar.push(284);tC.internalvars_4453.initiators.var283=function(){tC.internalvars.country='';if(tC.internalvars.extensionDomain){tC.internalvars.country=tC.internalvars.extensionDomain.toUpperCase()}}
3943tC.internalvars_4453.initiators.var283();tC.internalvars_4453_21.listVar.push(283);tC.internalvars_4453.initiators.var292=function(){tC.internalvars.collectionDomainCA="";tC.internalvars.collectionDomainCA="delta."+window.location.host;}
3944tC.internalvars_4453.initiators.var292();tC.internalvars_4453_21.listVar.push(292);tC.internalvars_4453.initiators.var294=typeof tC.internalvars_4453.initiators.var294=="function"?tC.internalvars_4453.initiators.var294:function(){tC.internalvars.site_B2C=tC.internalvars.site_B2C?tC.internalvars.site_B2C:"";}
3945tC.internalvars_4453.initiators.var294();tC.internalvars_4453_21.listVar.push(294);tC.internalvars_4453.initiators.var295=function(){tC.internalvars.GBInternational="";if(window.location.href.indexOf("/conexion-particular")>-1){tC.internalvars.GBInternational="e6a8fa56-99a3-4a40-8b5d-e23990aa480a";}
3946if(window.location.href.indexOf("/privati")>-1){tC.internalvars.GBInternational="59797f56-2f0f-4bdb-b157-993c28e38d87";}
3947if(window.location.href.indexOf("/iniciar-sesao-especial")>-1){tC.internalvars.GBInternational="89bb5343-33b0-492f-b30d-08dbda6e5d26";}}
3948tC.internalvars_4453.initiators.var295();tC.internalvars_4453_21.listVar.push(295);tC.internalvars_4453.initiators.var296=function(){tC.internalvars.PageContacts="";if(window.location.href.indexOf("floapay.es")>-1){tC.internalvars.PageContacts="https://www.floapay.es/contactanos";}
3949if(window.location.href.indexOf("floapay.it")>-1){tC.internalvars.PageContacts="https://www.floapay.it/contattaci";}
3950if(window.location.href.indexOf("floapay.pt")>-1){tC.internalvars.PageContacts="https://www.floapay.pt/contacte-nos";}}
3951tC.internalvars_4453.initiators.var296();tC.internalvars_4453_21.listVar.push(296);tC.internalvars_4453.initiators.var297=function(){var ref=window.location.href;tC.internalvars.siteId_NG="52";if(ref.indexOf("val-payment.floa.")>-1||ref.indexOf("prp-payment.floa.")>-1||ref.indexOf("dev-payment.floa.")>-1||ref.indexOf("integ-payment.floa.")>-1){tC.internalvars.siteId_NG="3";}}
3952tC.internalvars_4453.initiators.var297();tC.internalvars_4453_21.listVar.push(297);tC.internalvars_4453.initiators.var326=function(){var ref=window.location.href;tC.internalvars.siteId_99="";if(ref.indexOf("floapay.fr/pos-page-ok")>-1||ref.indexOf("floapay.fr/pos-page-ko")>-1||ref.indexOf("floapay.es/pdv-pagina-retorno-es")>-1||ref.indexOf("floapay.es/pdv-pagina-ko-es")>-1||ref.indexOf("floapay.es/pdv-pagina-ok-es")>-1||ref.indexOf("floapay.be/fr/pos-page-retour-befr")>-1||ref.indexOf("floapay.be/fr/pos-page-ko-befr")>-1||ref.indexOf("floapay.be/fr/pos-page-ok-befr")>-1||ref.indexOf("floapay.be/nl/pos-page-return-benl")>-1||ref.indexOf("floapay.be/nl/pos-page-ko-benl")>-1||ref.indexOf("floapay.be/nl/pos-page-ok-benl")>-1||ref.indexOf("floapay.nl/pos-page-return-nl")>-1||ref.indexOf("floapay.nl/pos-page-ko-nl")>-1||ref.indexOf("floapay.nl/pos-page-ok-nl")>-1||ref.indexOf("floapay.de/pos-seite-zurück")>-1||ref.indexOf("floapay.de/pos-seite-abbruch")>-1||ref.indexOf("floapay.de/pos-seite-bestätigen")>-1||ref.indexOf("floapay.it/pv-pagina-ritorno-it")>-1||ref.indexOf("floapay.it/pv-pagina-ko-it")>-1||ref.indexOf("floapay.it/pv-pagina-ok-it")>-1||ref.indexOf("floapay.pt/pdv-pagina-retorno")>-1||ref.indexOf("floapay.pt/pdv-pagina-ko")>-1||ref.indexOf("floapay.pt/pdv-pagina-ok")>-1){tC.internalvars.siteId_99="19";}}
3953tC.internalvars_4453.initiators.var326();tC.internalvars_4453_21.listVar.push(326);
3954/*END_VARIABLES_BLOCK*/
3955
3956
3957/*DYNAMIC JS BLOCK 2*/
3958
3959/*END DYNAMIC JS BLOCK 2*/
3960
3961/*CUSTOM_JS_BLOCK2*/
3962if(document.URL.indexOf('floapay.be/')!==-1){tC.privacy.cok=function(t,e,a,i,n){n=n||{},a=a||"",i=i||"";var r=tC.privacy.consentDuration||13;r=30*parseInt(r);var o="undefined"!=typeof tc_privacy_force_domain?tc_privacy_force_domain:null;tC.privacy.iabVendorList&&(e=e+"|"+tC.privacy.iabVendorList.gvlSpecificationVersion+"|"+tC.privacy.iabVendorList.tcfPolicyVersion+"|"+tC.privacy.iabVendorList.vendorListVersion);var s=t+tC.privacy.getCS()+e+tC.privacy.getCS()+a+tC.privacy.getCS()+(tC.privacy.blockedOnCategories||"")+tC.privacy.getCS()+Date.now()+tC.privacy.getCS()+i;if(document.URL.indexOf('/fr')!==-1){var path="/fr"}else if(document.URL.indexOf('/nl')!==-1){var path="/nl"}else{var path="/"}
3963tC.setCookie(tC.privacy.getCN(),s,r,path,o,null,'None'),tC.setCookie(tC.privacy.getPCCN(),a,r,path,o,null,'None'),null!=n.acmVendorList&&tC.storage.setWithExpiry(tC.privacy.getCN()+"_ACM",n.acmVendorList,r),null!=window.__tcfapi&&(tC.storage.remove("TC_PRIVACY_TCF"),window.__tcfapi("getTCData",2,(function(t,e){e&&(t.vendorListVersion=tC.privacy.iabVendorList.vendorListVersion,tC.storage.setWithExpiry("TC_PRIVACY_TCF",t,r))})))}}
3964/*END_CUSTOM_JS_BLOCK2*/
3965tC.container_4453_21.datastorage();
3966
3967//----------------------------------------------------
3968
3969
3970
3971
3972//----
3973
3974tC.extend({executeTag134_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};}
3975tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};tC.log('====================================================================');tC.log('========= b2cEvent x tc_vars.event="forgot-password-click" =========');tC.log('====================================================================');}});tC.extend({executeTag133_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};}
3976tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};(function(){window._uxa=window._uxa||[];try{if(typeof tc_vars!=='undefined'){window._uxa.push(['setCustomVariable',1,'page_name',tc_vars["page_name"],3]);window._uxa.push(['setCustomVariable',2,'page_type',tc_vars["page_type"],3]);window._uxa.push(['setCustomVariable',3,'page_cat1',tc_vars["page_cat1"],3]);window._uxa.push(['setCustomVariable',4,'page_cat2',tc_vars["page_cat2"],3]);}}catch(e){}
3977if(typeof CS_CONF==='undefined'){window._uxa.push(['setPath',window.location.pathname+window.location.hash.replace('#','?__')]);var mt=document.createElement("script");mt.type="text/javascript";mt.async=true;mt.id="tc_script_322_1";mt.src="//t.contentsquare.net/uxa/f80de5d914500.js";document.getElementsByTagName("head")[0].appendChild(mt);}
3978else{window._uxa.push(['trackPageview',(window.location.pathname+window.location.hash.replace('#','?')+"/"+tc_vars["page_name"]+"/"+tc_vars["event"]).replaceAll('//','/')]);}})();}});tC.extend({executeTag137_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};}
3979tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};var _paq=window._paq=window._paq||[];_paq.push(["setVisitorCookieTimeout","28927800"]);_paq.push(["setCustomDimension","1",window.location.hostname]);tC.template=document.location.href.split("/").splice(1,3).join("/");_paq.push(['setDocumentTitle',(document.title+"/"+tc_vars["page_cat1"]+"/"+tc_vars["env_support"]).replaceAll('//','/')]);_paq.push(['setCustomUrl',"/"+tc_vars["page_name"]]);_paq.push(['trackPageView']);tC.log("MATOMO - PARTICULIERS-FLOAPAY - "+tC.internalvars.siteId_standard+" - Statistique");(function(){var u="//matomo.floa.com/";_paq.push(['setTrackerUrl',u+'matomo.php']);_paq.push(['setSiteId',tC.internalvars.siteId_standard]);window.matomoAsyncInit=function(){var matomoTrackerB2C=Matomo.getTracker(u+'matomo.php',tC.internalvars.siteId_standard);matomoTrackerB2C.trackPageView();matomoTrackerB2C.enableLinkTracking();};var d=document,g=d.createElement('script'),s=d.getElementsByTagName('script')[0];g.async=true;g.src=u+'matomo.js';s.parentNode.insertBefore(g,s);})();}});tC.extend({executeTag182_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};}
3980tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};_paq.push(['trackEvent','Event Clic',tc_vars["page_name"],tc_vars["page_cat
39801"]]);}});tC.extend({executeTag153_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};}
3981tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};var _paq=window._paq=window._paq||[];_paq.push(['trackEvent','CTA Contact','Clic','Je suis un particulier']);}});tC.extend({executeTag169_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};}
3982tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};_paq.push(['trackEvent','BOUTON FLOTTANT ','CLIC SUR MOBILE']);}});tC.extend({executeTag185_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};}
3983tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};setTimeout(function(){if(window.location.pathname=='/formulaire-contactez-nous-2'){(function(){window._uxa=window._uxa||[];if(typeof CS_CONF==='undefined'){window._uxa.push(['setPath',window.location.pathname+window.location.hash.replace('#','?__')]);var mt=document.createElement("script");mt.type="text/javascript";mt.async=true;mt.id="tc_script_322_1";mt.src="//t.contentsquare.net/uxa/f80de5d914500.js";document.getElementsByTagName("head")[0].appendChild(mt);}
3984else{window._uxa.push(['trackPageview',window.location.pathname+window.location.hash.replace('#','?__')]);}})();}},4000);}});if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('129')){tC.launchTag(129,'GOOGLE ADS - BASE TAG FLOAPAY',2584,4453,21,8);tC.scriptElt1=document.createElement("script");tC.scriptElt1.id="tc_script_129_1";tC.scriptElt1.src="https://www.googletagmanager.com/gtag/js?id=AW-469406772";(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tC.scriptElt1,null);window.dataLayer=window.dataLayer||[];var gtag=function(){dataLayer.push(arguments);};gtag('js',new Date());gtag('config','AW-469406772');}}
3985if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('107')){if(((document.location).toString().toLowerCase().indexOf(('floapay.').toLowerCase())!=-1)){if((document.location).toString().toLowerCase().indexOf(('particuliers.').toLowerCase())==-1){if((document.location).toString().toLowerCase().indexOf(('validation.').toLowerCase())==-1){if((document.location).toString().toLowerCase().indexOf(('pros.').toLowerCase())==-1){if((document.location).toString().toLowerCase().indexOf(('preprod.').toLowerCase())==-1){tC.launchTag(107,'Content Square - Principal',26,4453,21,8);(function(){window._uxa=window._uxa||[];if(typeof CS_CONF==='undefined'){window._uxa.push(['setPath',window.location.pathname+window.location.hash.replace('#','?__')]);var mt=document.createElement("script");mt.type="text/javascript";mt.async=true;mt.id="tc_script_322_1";mt.src="//t.contentsquare.net/uxa/f80de5d914500.js";document.getElementsByTagName("head")[0].appendChild(mt);}
3986else{window._uxa.push(['trackPageview',window.location.pathname+window.location.hash.replace('#','?__')]);}})();}}}}}}}
3987if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('123')){if(((document.location).toString().toLowerCase().match(new RegExp(('\/contact$|contattaci$|\/contactanos$|\/contact-us$|\/contacte-nos$|\/kontaktieren-sie-uns$').replace(new RegExp("\\*","g"),".*"),"gi")))){if(tC.internalvars.device=='d'){tC.launchTag(123,'GB - PAGE CONTACT - FLOAPAY - TOUS PAYS - SAUF FR',26,4453,21,8);tC.scriptElt1=document.createElement("script");tC.scriptElt1.id="tc_script_110_1";tC.scriptElt1.type="text/javascript";tC.scriptElt1.src="https://widgets.greenbureau.com/js/chayall.js";tC.scriptElt1.async=true;tC.scriptElt1.setAttribute("data-chayall-account","1e89bee8-9da0-4936-82df-056422aaa962");(document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tC.scriptElt1,null);}}}}
3988if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('113')){if(((document.location).toString().toLowerCase().indexOf(('particuliers.floapay.com/connexion').toLowerCase())!=-1)){tC.launchTag(113,'Criteo : OneTag Homepage 96514 - MAJ',647,4453,21,8);tC.scriptElt1=document.createElement("script");tC.scriptElt1.id="tc_script_138_1";tC.scriptElt1.type="text/javascript";tC.scriptElt1.src="//static.criteo.net/js/ld/ld.js";tC.scriptElt1.async="true";(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tC.scriptElt1,null);window.criteo_q=window.criteo_q||[];var deviceType=/iPad/.test(navigator.userAgent)?"t":/Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent)?"m":"d";window.criteo_q.push({event:"setAccount",account:96514},{event:"setEmail",email:tc_vars["user_email"]},{event:"setSiteType",type:tC.internalvars.device},{event:"viewHome",extra_project:'1'});}}}
3989if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('121')){if((!(document.location).toString().toLowerCase().match(new RegExp(('.*validation-particuliers\.floapay\.com|particuliers\.floapay\.com').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(121,'MATOMO - GENERIQUE',26,4453,21,8);setTimeout(function(){var _paq=window._paq=window._paq||[];var posPatterns=['floapay.fr/pos-page-ok','floapay.fr/pos-page-ko','floapay.es/pdv-pagina-retorno-es','floapay.es/pdv-pagina-ko-es','floapay.es/pdv-pagina-ok-es','floapay.be/fr/pos-page-retour-befr','floapay.be/fr/pos-page-ko-befr','floapay.be/fr/pos-page-ok-befr','floapay.be/nl/pos-page-return-benl','floapay.be/nl/pos-page-ko-benl','floapay.be/nl/pos-page-ok-benl','floapay.nl/pos-page-return-nl','floapay.nl/pos-page-ko-nl','floapay.nl/pos-page-ok-nl','floapay.de/pos-seite-zurück','floapay.de/pos-seite-abbruch','floapay.de/pos-seite-bestätigen','floapay.it/pv-pagina-ritorno-it','floapay.it/pv-pagina-ko-it','floapay.it/pv-pagina-ok-it','floapay.pt/pdv-pagina-retorno','floapay.pt/pdv-pagina-ko','floapay.pt/pdv-pagina-ok'];var isPosPage=function(){var url=decodeURIComponent(window.location.href).toLowerCase();return posPatterns.some(function(pattern){return url.includes(pattern.toLowerCase());});};(function(){var u="//matomo.floa.com/";
3989window.matomoAsyncInit=function(){var matomoTracker19=Matomo.getTracker('https://matomo.floa.com/matomo.php',19);matomoTracker19.setCustomDimension(1,window.location.hostname);matomoTracker19.trackPageView();matomoTracker19.enableLinkTracking();if(!isPosPage()){var matomoTracker1=Matomo.getTracker('https://matomo.floa.com/matomo.php',1);matomoTracker1.setCustomDimension(1,window.location.hostname);matomoTracker1.trackPageView();matomoTracker1.enableLinkTracking();}};var d=document,g=d.createElement('script'),s=d.getElementsByTagName('script')[0];g.async=true;g.src=u+'matomo.js';s.parentNode.insertBefore(g,s);})();},0);}}}
3990if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('133')){if(((document.location).toString().toLowerCase().match(new RegExp(('.*validation-particuliers\.floapay\.com|particuliers\.floapay\.com').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(133,'CONTENTSQUARE - B2C - TOUTES LES ETAPES',26,4453,21,8);(function(){window._uxa=window._uxa||[];try{if(typeof tc_vars!=='undefined'){window._uxa.push(['setCustomVariable',1,'page_name',tc_vars["page_name"],3]);window._uxa.push(['setCustomVariable',2,'page_type',tc_vars["page_type"],3]);window._uxa.push(['setCustomVariable',3,'page_cat1',tc_vars["page_cat1"],3]);window._uxa.push(['setCustomVariable',4,'page_cat2',tc_vars["page_cat2"],3]);}}catch(e){}
3991if(typeof CS_CONF==='undefined'){window._uxa.push(['setPath',window.location.pathname+window.location.hash.replace('#','?__')]);var mt=document.createElement("script");mt.type="text/javascript";mt.async=true;mt.id="tc_script_322_1";mt.src="//t.contentsquare.net/uxa/f80de5d914500.js";document.getElementsByTagName("head")[0].appendChild(mt);}
3992else{window._uxa.push(['trackPageview',(window.location.pathname+window.location.hash.replace('#','?')+"/"+tc_vars["page_name"]+"/"+tc_vars["event"]).replaceAll('//','/')]);}})();}}}
3993if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('137')){if(((document.location).toString().toLowerCase().match(new RegExp(('.*validation-particuliers\.floapay\.com|particuliers\.floapay\.com').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(137,'MATOMO - B2C - PARTICULIERS FLOAPAY - ATTEINTE ETAPES',26,4453,21,8);var _paq=window._paq=window._paq||[];_paq.push(["setVisitorCookieTimeout","28927800"]);_paq.push(["setCustomDimension","1",window.location.hostname]);tC.template=document.location.href.split("/").splice(1,3).join("/");_paq.push(['setDocumentTitle',(document.title+"/"+tc_vars["page_cat1"]+"/"+tc_vars["env_support"]).replaceAll('//','/')]);_paq.push(['setCustomUrl',"/"+tc_vars["page_name"]]);_paq.push(['trackPageView']);tC.log("MATOMO - PARTICULIERS-FLOAPAY - "+tC.internalvars.siteId_standard+" - Statistique");(function(){var u="//matomo.floa.com/";_paq.push(['setTrackerUrl',u+'matomo.php']);_paq.push(['setSiteId',tC.internalvars.siteId_standard]);window.matomoAsyncInit=function(){var matomoTrackerB2C=Matomo.getTracker(u+'matomo.php',tC.internalvars.siteId_standard);matomoTrackerB2C.trackPageView();matomoTrackerB2C.enableLinkTracking();};var d=document,g=d.createElement('script'),s=d.getElementsByTagName('script')[0];g.async=true;g.src=u+'matomo.js';s.parentNode.insertBefore(g,s);})();}}}
3994if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('138')){if(((document.location).toString().toLowerCase().match(new RegExp(('\/contactez-nous-ok|\/contactanos-ok|\/contattaci-ok|\/contacte-nos-ok|\/fr\/contactez-nous-ok|\/nl\/contact-ok').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(138,'GOOGLE ADS - CONVERSION ALL COUNTRIES',2572,4453,21,8);var tc_img_adwords=document.createElement("img");tc_img_adwords.id="tc_img__1";tc_img_adwords.type="text/javascript";tc_img_adwords.src="//www.googleadservices.com/pagead/conversion/"+'1007427710'+"/?value="+''+"&label="+tC.internalvars.ads_label+"&cachebuster="+Math.floor(Math.random()*1000000);(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tc_img_adwords,null);}}}
3995if(((document.location).toString().toLowerCase().match(new RegExp(('.*floapay\.fr\/|floapay\.io.*').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(141,'TAG - GETQUANTY APRES CONSENTEMENT - 3010318920',26,4453,21,8);if(tC.privacy.getOptinVendors().includes("22")){var script=document.createElement('script');script.src="https://get.smart-data-systems.com/gq?site_id=3010318920&consent=1";document.head.appendChild(script);}else{var script=document.createElement('script');script.src="https://get.smart-data-systems.com/gq?site_id=3010318920&notrack=1";document.head.appendChild(script);}}
3996if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('146')){if((!(document.location).toString().toLowerCase().match(new RegExp(('.*be\/').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(146,'ADRENALEAD - COLLECTE ABONNES ET DECLENCHEMENT- ALL COUNTRIES - SAUF BE',26,4453,21,8);var _nAdzq=_nAdzq||[];(function(){_nAdzq.push(["setIds",tC.internalvars.adrenaleadsetIds]);_nAdzq.push(["startR"]);var e="https://notifpush.com/scripts/";var t=document.createElement("script");t.id="tc_script_146_1";t.type="text/javascript";t.defer=true;t.async=true;t.src=e+"nadz-sdk.js";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)})();var _nAdzqTriggers=_nAdzqTriggers||[];var runNadzTriggers=function(){_nAdzqTriggers.push(["setIds",tC.internalvars.adrenaleadsetIds]);var e="https://notifpush.com/scripts/";var t=document.createElement("script");t.id="tc_script_145_1";t.type="text/javascript";t.defer=true;t.async=true;t.src=e+"full-script-trigger.min.js";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s);};runNadzTriggers();}}}
3997if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('147')){if(((document.location).toString().toLowerCase().match(new RegExp(('\/contactez-nous-ok|\/contactanos-ok|\/contattaci-ok|\/contacte-nos-ok|\/fr\/contactez-nous-ok|\/nl\/contact-ok|\/kontaktieren-sie-uns-ok|\/contact-ok|\/contact-us-ok|\/landing-contact-premium-ok|\/landing-contact-premium-kantar-ok|\/landing-contact-livre-blanc-paiement-plusieurs-fois-ok|\/contact-bnp-ok|\/contact-bnpp-retail-ok|\/contact-avatacar-ok|\/contact-event-ok|\/contact-point-s-ok|\/contact-sport-2000-ok|\/contact-cabinets-conseil-ok|\/contact-agences-voyages-ok').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(147,'ADRENALEAD - COLLECTE SUIVI DES CONVERSIONS - ABANDON PAN
3997IER - EXCLUSION',26,4453,21,8);var _nAdztr=_nAdztr||[];(function(){_nAdztr.push(["setAdvertiserId","2205"]);_nAdztr.push(["setTransactionId",Math.floor(Math.random()*100000000)]);_nAdztr.push(["setAmount",1]);_nAdztr.push(["setTr"]);var u="https://notifpush.com/scripts/";var s=document.createElement("script");s.id="tc_script_147_1";s.type="text/javascript";s.defer=true;s.async=true;s.src=u+"nadz-tr.js";var p=document.getElementsByTagName("script")[0];p.parentNode.insertBefore(s,p);})();if(window['NADZ_TRIGGERS']!==undefined){var actions=window['NADZ_TRIGGERS'].getNadzTriggerActions();actions.handleActions([['setProduitsDansPanier',false],['setMontantConversion',"0"]]);}
3998else{var _nAdzqTriggers=_nAdzqTriggers||[];_nAdzqTriggers.push(['handleActions',[['setProduitsDansPanier',false],['setMontantConversion',"0"]]]);}}}}
3999if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('149')){if(tc_vars["page_cat1"]=='page_schedules'){tC.launchTag(149,'ADRENALEAD - AUTHENTIFICATION TRUE',26,4453,21,8);if(window['NADZ_TRIGGERS']!==undefined){var actions=window['NADZ_TRIGGERS'].getNadzTriggerActions();actions.handleActions([['isAuthenticated',true]]);}
4000else{var _nAdzqTriggers=_nAdzqTriggers||[];_nAdzqTriggers.push(['handleActions',[['isAuthenticated',true]]]);}}}}
4001if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('150')){if(((document.location).toString().toLowerCase().match(new RegExp(('\/contactez-nous|\/contactanos|\/contattaci|\/contacte-nos|\/fr\/contactez-nous|\/nl\/contact|\/kontaktieren-sie-uns|\/contact|\/contact-us|\/landing-contact-premium|\/landing-contact-premium-kantar|\/landing-contact-livre-blanc-paiement-plusieurs-fois|\/contact-bnp|\/contact-bnpp-retail|\/contact-avatacar|\/contact-event|\/contact-point-s|\/contact-sport-2000|\/contact-cabinets-conseil|\/contact-agences-voyages').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(150,'ADRENALEAD - ABANDON DEMANDE DE CONTACT',26,4453,21,8);if(window['NADZ_TRIGGERS']!==undefined){var actions=window['NADZ_TRIGGERS'].getNadzTriggerActions();actions.handleActions([['setProduitsDansPanier',true]]);}
4002else{var _nAdzqTriggers=_nAdzqTriggers||[];_nAdzqTriggers.push(['handleActions',[['setProduitsDansPanier',true]]]);}}}}
4003if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('151')){if(((document.location).toString().toLowerCase().match(new RegExp(('.*be\/').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(151,'00 - ADRENALEAD - COLLECTE ABONNES - BE',26,4453,21,8);setTimeout(function(){var lang=location.pathname.split('/')[1],oParams={"fr":{ids:"37cfcc9676d1852a"},"nl":{ids:"06253d63713ecf26"}};if(oParams[lang]!==undefined){var _nAdzq=_nAdzq||[];(function(){_nAdzq.push(["setIds",oParams[lang].ids]);_nAdzq.push(["startR"]);var e="https://notifpush.com/scripts/";var t=document.createElement("script");t.id="tc_script_151_1";t.type="text/javascript";t.defer=true;t.async=true;t.src=e+"nadz-sdk.js";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)})();}},3000)
4004setTimeout(function(){var lang=location.pathname.split('/')[1],oParams={"fr":{ids:"37cfcc9676d1852a"},"nl":{ids:"06253d63713ecf26"}};if(oParams[lang]!==undefined){var _nAdzqTriggers=_nAdzqTriggers||[];var runNadzTriggers=function(){_nAdzqTriggers.push(["setIds",oParams[lang].ids]);var e="https://notifpush.com/scripts/";var t=document.createElement("script");t.id="tc_script_152_1";t.type="text/javascript";t.defer=true;t.async=true;t.src=e+"full-script-trigger.min.js";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s);};runNadzTriggers();}},3000)}}}
4005if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('167')){tC.launchTag(167,'Google Ads - REMARKETING - 734317018',2584,4453,21,8);tC.scriptElt1=document.createElement("script");tC.scriptElt1.id="tc_script_167_1";tC.scriptElt1.src="https://www.googletagmanager.com/gtag/js?id=AW-734317018";(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tC.scriptElt1,null);window.dataLayer=window.dataLayer||[];var gtag=function(){dataLayer.push(arguments);};gtag('js',new Date());gtag('config','AW-734317018');}}
4006if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('168')){if(((document.location).toString().toLowerCase().match(new RegExp(('\/contactez-nous-ok|\/contactanos-ok|\/contattaci-ok|\/contacte-nos-ok|\/fr\/contactez-nous-ok|\/nl\/contact-ok').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(168,'Google Ads - CONVERSION ALL COUNTRIES - 734317018',2572,4453,21,8);var tc_img_adwords=document.createElement("img");tc_img_adwords.id="tc_img__1";tc_img_adwords.type="text/javascript";tc_img_adwords.src="//www.googleadservices.com/pagead/conversion/"+'734317018'+"/?value="+''+"&label="+tC.internalvars.new_label_ads+"&cachebuster="+Math.floor(Math.random()*1000000);(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tc_img_adwords,null);}}}
4007if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('171')){if(((document.location).toString().toLowerCase().match(new RegExp(('.*floapay\.fr\/|floapay\.io.*').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(171,'Floapay FR - Pardot pour Google Ads',26,4453,21,8);piAId='998881';piCId='77338';piHostname='pi.pardot.com';(function(){var async_load=function(){var s=document.createElement('script');s.type='text/javascript';s.src=('https:'==document.location.protocol?'https://pi':'http://cdn')+'.pardot.com/pd.js';var c=document.getElementsByTagName('script')[0];c.parentNode.insertBefore(s,c);};if(window.attachEvent){window.attachEvent('onload',async_load);}
4008else{window.addEventListener('load',async_load,false);}})();}}}
4009if(((document.location).toString().toLowerCase().match(new RegExp(('.*floapay\.fr|floapay\.com.*').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(186,'AB Tasty FLOAPAY FR & COM - No Consent',26,4453,21,8);(function(i,s,o,g,r,a,m){i[r]=i[r]||[],i['abtiming']=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=0;a.defer=0;a.src=g;m.parentNode.insertBefore(a,m)}
4009)(window,document,'script','//try.abtasty.com/'+'39a36a3c1aba49056104141c3145c0a7'+'.js','_abtasty');}
4010if(((document.location).toString().toLowerCase().match(new RegExp(('.*floapay\.es|floapay\.it|floapay\.pt|floapay\.nl|floapay\.de.*').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(187,'AB Tasty FLOAPAY ES IT PT NL DE - No Consent',26,4453,21,8);(function(i,s,o,g,r,a,m){i[r]=i[r]||[],i['abtiming']=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=0;a.defer=0;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//try.abtasty.com/'+'1c73933add76adb79a7fcc5017c23629'+'.js','_abtasty');}
4011if(((document.location).toString().toLowerCase().match(new RegExp(('.*be\/').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(188,'AB Tasty FLOAPAY BE/FR & BE/NL - No Consent',26,4453,21,8);(function(i,s,o,g,r,a,m){i[r]=i[r]||[],i['abtiming']=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=0;a.defer=0;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//try.abtasty.com/'+'6dfe79061d03c2491ec77a4065d8ad03'+'.js','_abtasty');(function(i,s,o,g,r,a,m){i["abtiming"]=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,"script","//try.abtasty.com/6dfe79061d03c2491ec77a4065d8ad03.js");}
4012if((document.querySelector('.video-consent')!==null)){tC.launchTag(194,'CA - code for mask 1',2999,4453,21,8);if(tC.getCookie('TC_PRIVACY')==''){var referrerHistory=localStorage.getItem('referrerHistory');if(!referrerHistory){referrerHistory=[];referrerHistory.push(document.referrer);localStorage.setItem('referrerHistory',JSON.stringify(referrerHistory));}else{referrerHistory=JSON.parse(referrerHistory);}}
4012
4013if(tC.getCookie('TC_PRIVACY')!=''){var referrerHistory=localStorage.getItem("referrerHistory");if(referrerHistory){Object.defineProperty(document,"referrer",{get:function(){return referrerHistory.replace(/[\[\]"]/g,'');}});localStorage.removeItem("referrerHistory");}}
4014if(typeof window.tc_InsertConsent=="undefined"){window.tc_InsertConsent=[];}
4015window.tc_InsertConsent.CSSincluded=false;window.tc_InsertConsent.OptinCat=function(cat){var value=false;var userConsent=tC.privacy.getOptinCategories();if(userConsent.indexOf('4')>-1){value=true;}
4016return value};window.tc_InsertConsent.insertCSS=function(myStyle){window.tc_InsertConsent.CSSincluded=true;var styleNode=document.createElement('style');styleNode.type="text/css";if(!!(window.attachEvent&&!window.opera)){styleNode.styleSheet.cssText=myStyle;}else{var styleText=document.createTextNode(myStyle);styleNode.appendChild(styleText);}
4017document.getElementsByTagName('head')[0].appendChild(styleNode);};}
4018if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.be/nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.nl').toLowerCase())!=-1){tC.launchTag(157,'CA - code for mask 2 (text NL)',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;}
4019var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;}
4020html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+='   <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+='      <p class="tc_InsertConsent_activate_text_line1">'+'You have to accept cookies to watch this '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Allow cookies to get access to this functionality.'+'</p>';html+='      <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+='          '+'Accept';html+='       </div>';html+='   </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);}
4021for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}}
4022return false;};}}
4023if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.com').toLowerCase())!=-1){tC.launchTag(156,'CA - code for mask 2 (text EN)',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;}
4024var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;}
4025html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+='   <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+='      <p class="tc_InsertConsent_activate_text_line1">'+'You have to accept cookies to watch this '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Allow cookies to get access to this functionality.'+'</p>';html+='      <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+='          '+'Accept';html+='       </div>';html+='   </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);}
4026for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}}
4027return false;};}}
4028if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.es').toLowerCase())!=-1){tC.launchTag(192,'CA - code for mask 2 (text ES) ',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;}
4029var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;}
4030html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+='   <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+='      <p class="tc_InsertConsent_activate_text_line1">
4030'+'You have to accept cookies to watch this '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Allow cookies to get access to this functionality.'+'</p>';html+='      <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+='          '+'Accept';html+='       </div>';html+='   </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);}
4031for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}}
4032return false;};}}
4033if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.it').toLowerCase())!=-1){tC.launchTag(159,'CA - code for mask 2 (text IT)',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;}
4034var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;}
4035html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+='   <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+='      <p class="tc_InsertConsent_activate_text_line1">'+'You have to accept cookies to watch this '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Allow cookies to get access to this functionality.'+'</p>';html+='      <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+='          '+'Accept';html+='       </div>';html+='   </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);}
4036for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}}
4037return false;};}}
4038if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.pt').toLowerCase())!=-1){tC.launchTag(191,'CA - code for mask 2 (text PT)',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;}
4039var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;}
4040html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+='   <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+='      <p class="tc_InsertConsent_activate_text_line1">'+'You have to accept cookies to watch this '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Allow cookies to get access to this functionality.'+'</p>';html+='      <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+='          '+'Accept';html+='       </div>';html+='   </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);}
4041for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}}
4042return false;};}}
4043if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.de').toLowerCase())!=-1){tC.launchTag(158,'CA - code for mask 2 (text DE)',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;}
4044var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;}
4045html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+='   <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+='      <p class="tc_InsertConsent_activate_text_line1">
4045'+'You have to accept cookies to watch this '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Allow cookies to get access to this functionality.'+'</p>';html+='      <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+='          '+'Accept';html+='       </div>';html+='   </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);}
4046for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}}
4047return false;};}}
4048if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.be/fr').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.fr').toLowerCase())!=-1){tC.launchTag(177,'CA - code for mask 2 (text FR)',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;}
4049var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;}
4050html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+='   <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+='      <p class="tc_InsertConsent_activate_text_line1">'+'Vous devez accepter les cookies pour voir cette  '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Autoriser le dépôt de cookies pour accéder à cette fonctionnalité.'+'</p>';html+='      <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+='          '+'Autoriser';html+='       </div>';html+='   </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);}
4051for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}}
4052return false;};}}
4053if((document.querySelector('.video-consent')!==null)){tC.launchTag(190,'CA - code for mask 3',2999,4453,21,8);window.tc_InsertConsent.setPermission=function(){cact('consent.update',{categories:{'4':{status:'on'}}});window.location.reload();};window.tc_InsertConsent.style="";window.tc_InsertConsent.style+=".tc_InsertConsent_activate{border: "+'0px'+" "+'solid'+" "+''+"; background: "+'#f9f9fa'+";color: "+'#161616'+";display: table;font-size: "+'14px'+";height: 100%;line-height: 2em;margin: auto;text-align: center;width: 100%;padding:"+'30px'+";    display: flex;flex-direction: column; justify-content: center; align-items: center;}";window.tc_InsertConsent.style+=".tc_InsertConsent_float{display: table-cell;text-align: "+'left'+";vertical-align: middle;}";window.tc_InsertConsent.style+=".tc_InsertConsent_AllowBtn{background:"+'#00ff87'+";text-align: "+'center'+";font-size: "+'20px'+";color:"+'#161616'+"; padding:"+'10px 30px'+";display: block; margin-top:15px;cursor:pointer;border-radius:"+'10px'+" ;border: "+'0px'+" ;}";window.tc_InsertConsent.style+=".tc_InsertConsent_AllowBtn:hover{background:"+'#00ff87'+";color:"+''+";border: "+'0px'+";}";window.tc_InsertConsent.style+=".tc_InsertConsent_activate_text_line1{font-size:"+'20px !important'+"; font-weight:100;"+";color: "+'#272e35'+";}";window.tc_InsertConsent.style+=".tc_InsertConsent_activate_text_line2{"+";color: "+'#7e8b99'+";}";setTimeout(function(){if(document.querySelector('.video-consent')!==null){window.tc_InsertConsent.getPermission('.video-consent','4','vidéo','tc_privacy_mask');}},500);cact('consent.onUpdate',function(result){var CATEGORY_ID='4';var inspectedCategory=result.consent.categories[CATEGORY_ID]||{};if(inspectedCategory.status==='on'){if(document.querySelector('.video-consent')!==null){window.location.reload();}}else{tC.log("=============  cat refused ===============");}});}
4054if(document.querySelector('.video-consent')===null&&document.querySelector('.tc_privacy_mask')===null){tC.launchTag(195,'CA - Containers reload on consent',3004,4453,21,8);tC.internalvars.myDomainScripts=[];tC.internalvars.scriptElementsMyDomain=document.querySelectorAll('script');for(var i=0;i<tC.internalvars.scriptElementsMyDomain.length;i++){tC.internalvars.srcMyDomain=tC.internalvars.scriptElementsMyDomain[i].getAttribute('src');if(tC.internalvars.srcMyDomain&&tC.internalvars.srcMyDomain.indexOf("tc_BanqueCasinoCB4X_")!==-1){tC.internalvars.myDomainScripts.push(tC.internalvars.srcMyDomain);}}
4055cact('consent.onUpdate',function(result){for(var j=0;j<tC.internalvars.myDomainScripts.length;j++){tC.internalvars.myDomainContainerUrl=tC.internalvars.myDomainScripts[j];tC.script.add(tC.internalvars.myDomainContainerUrl);}});}
4056if(tC.internalvars.device!='m'){tC.launchTag(198,'A - Greenbureau Page de connexion - Connexion particular',26,4453,21,8);setTimeout(function(){tC.scriptElt1=document.createElement("script");tC.scriptElt2=document.createElement("style");tC.scriptElt2.innerHTML="#gb-app  {position: fixed; } @media (max-width: 721px) { #gb-app { position: fixed; z-index: 1000 }}";document.head.appendChild(tC.scriptElt2);tC.scriptElt1.id="tc_script_754_1";tC.scriptElt1.type="text/javascript";tC.scriptElt1.src="https://widgets.greenbureau.com/js/chayall.js";tC.scriptElt1.async=true;tC.scriptElt1.setAttribute("data-chayall-account",tC.internalvars.GBInternational);tC.scriptElt1.setAttribute("data-gb-host","https://proxy.greenbureau.com");tC.scriptElt1.setAttribute("data-gb-instances","#gb-sticky-btn,#gb-footer-btn");tC.scriptElt1.setAttribute("data-gb-offline-url",tC.internalvars.PageContacts);(document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tC.scriptElt1,null);},2000)}
4057if(((document.location).toString().toLowerCase().match(new RegExp(('\/contactez-nous-ok|\/contactanos-ok|\/contattaci-ok|\/contacte-nos-ok|\/fr\/contactez-nous-ok|\/nl\/contact-ok').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(201,'CA - Generate_lead - OneTag',26,4453,21,8);var country=window.location.host.split(".").splice(2);var document=window.document.title;cact('trigger','generate_lead',{value:'1',revenue:'1',currency:'EUR',page_name:document,country:country},{siteId:'4453',sourceKey:'afa25364-eefd-4f0d-8991-c82db928061e'});}
4058if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('207')){if(((document.location).toString().toLowerCase().match(new RegExp(('.*\/conseiller-virtuel$').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(207,'Greenbureau - Chatbot - redirection',26,4453,21,8);window.addEventListener('chawgt-messaging-channel-webchat-fin',function(e){window.location.href='https://www.floapay.fr/conseiller-virtuel-ok'});}}}
4059if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('208')){tC.launchTag(208,'Linkedin - Data Partner Pixel',26,4453,21,8);_linkedin_partner_id="2433594";window._linkedin_data_partner_ids=window._linkedin_data_partner_ids||[];window._linkedin_data_partner_ids.push(_linkedin_partner_id);(function(l){if(!l){window.lintrk=function(a,b)
4060{window.lintrk.q.push([a,b])};window.lintrk.q=[]}
4061var s=document.getElementsByTagName("script")[0];var b=document.createElement("script");b.id="tc_script_208_1";b.type="text/javascript";b.async=true;b.src="https://snap.licdn.com/li.lms-analytics/insight.min.js";s.parentNode.insertBefore(b,s);})(window.lintrk);}}
4062var tc_privacy_used=0;window.tc_privacy_display_21=function(){if(!(document.location).toString().toLowerCase().match(new RegExp(('https:\/\/particuliers\.floapay\.com\/(es|it|pt|de|nl|en)\/.+').replace(new RegExp("\\*","g"),".*"),"gi"))){if
4062(!(document.location).toString().toLowerCase().match(new RegExp(('https:\/\/validation-particuliers\.floapay\.com\/(es|it|pt|de|nl|en)\/.+').replace(new RegExp("\\*","g"),".*"),"gi"))){if((document.location).toString().toLowerCase().indexOf(('floapay.fr').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('/dev-floa-pay.aps.floapay.io/').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('particuliers.floapay').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('/val-floa-pay.aps.floapay.io/').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('/prp-floa-pay.aps.floapay.io/').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_5.js';tC.script.add(privacyFileUrl);}}}}
4063if((document.location).toString().toLowerCase().indexOf(('floapay.com').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('en-dev-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('en-val-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('en-prp-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('particuliers.floapay.com/en/').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('validation-particuliers.floapay.com/en/').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_9.js';tC.script.add(privacyFileUrl);}}
4064if((document.location).toString().toLowerCase().indexOf(('floapay.es').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('es-dev-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/es').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('es-val-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('es-prp-floa-pay.aps.floapay.io').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_6.js';tC.script.add(privacyFileUrl);}}
4065if((document.location).toString().toLowerCase().indexOf(('floapay.it').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/it').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('it-dev-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('it-val-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('it-prp-floa-pay.aps.floapay.io').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_8.js';tC.script.add(privacyFileUrl);}}
4066if((document.location).toString().toLowerCase().indexOf(('floapay.pt').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/pt').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('pt-dev-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('pt-val-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('pt-prp-floa-pay.aps.floapay.io').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_7.js';tC.script.add(privacyFileUrl);}}
4067if((document.location).toString().toLowerCase().indexOf(('floapay.be/fr').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/be/fr').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('be-dev-floa-pay.aps.floapay.io/fr').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('be-val-floa-pay.aps.floapay.io/fr').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('be-prp-floa-pay.aps.floapay.io/fr').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_11.js';tC.script.add(privacyFileUrl);}}
4068if((document.location).toString().toLowerCase().indexOf(('floapay.be/nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/be/nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('be-dev-floa-pay.aps.floapay.io/nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('be-val-floa-pay.aps.floapay.io/nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('be-prp-floa-pay.aps.floapay.io/nl').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_12.js';tC.script.add(privacyFileUrl);}}
4069if((document.location).toString().toLowerCase().indexOf(('floapay.nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('nl-dev-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('nl-val-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('nl-prp-floa-pay.aps.floapay.io').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_13.js';tC.script.add(privacyFileUrl);}}
4070if((document.location).toString().toLowerCase().indexOf(('floapay.de').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/de').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('de-dev-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('de-val-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('de-prp-floa-pay.aps.floapay.io').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_14.js';tC.script.add(privacyFileUrl);}}}
4071tC.onDomReady(function(){tC.container_4453_21.eventlisteners();tC.eventTarget.dispatchEvent('container-ready');tC.eventTarget.dispatchEvent('container_4453_21_ready');tC.executeListener15_4453_21();window.tc_privacy_display_21();});

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