PageSourceSearch

https://www.betontechnische-daten.de/modules/custom/hm_core/js/bb-manager.js

js betontechnische-daten.de collected 2026-10-02 21:36:06 UTC 70,531 bytes, 1,591 lines download raw bytes

1var BBCookieManager, bbCookieApi, BBGlobalSettings = function() {
2    var e = {
3        disabledStatementIds: "",
4        cookieName: "_2BCookieSettings",
5        robots: /googlebot|BaiDuSpider|bingbot|YandexBot|Sogou|Exabot-|Sosospider|facebookexternalhit|Feedfetcher-|Google-|FAST-WebCrawler|FAST Enterprise Crawler|Acoon Robot|ASPSeek|Yahoo-|Chrome-|Exabot|msnbot-|DuckDuckBot|Y!J-ASR\/|Y!J-BRI\/|Y!J-BRJ\/YATS|Y!J-BRO\/YFSJ|Y!J-BRW\/|Y!J-BSC\/|YahooCacheSystem/i,
6        CookieTypeEnum: {
7            Cookie: 1,
8            SessionStorage: 2,
9            LocalStorage: 3
10        },
11        globalDomains: {
12            domains: [{
13                domain: "google-analytics.com",
14                cat: ["statistic"]
15            }, {
16                domain: "google.*",
17                cat: ["marketing"]
18            }, {
19                domain: "youtube.com",
20                cat: ["marketing"]
21            }, {
22                domain: "youtube-nocookie.com",
23                cat: ["marketing"]
24            }, {
25                domain: "googleadservices.com",
26                cat: ["marketing"]
27            }, {
28                domain: "googlesyndication.com",
29                cat: ["marketing"]
30            }, {
31                domain: "doubleclick.net",
32                cat: ["marketing"]
33            }, {
34                domain: "facebook.*",
35                cat: ["marketing"]
36            }, {
37                domain: "linkedin.com",
38                cat: ["marketing"]
39            }, {
40                domain: "twitter.com",
41                cat: ["marketing"]
42            }, {
43                domain: "addthis.com",
44                cat: ["marketing"]
45            }, {
46                domain: "bing.com",
47                cat: ["marketing"]
48            }, {
49                domain: "vimeo.com",
50                cat: ["marketing"]
51            }, {
52                domain: "sharethis.com",
53                cat: ["marketing"]
54            }, {
55                domain: "yahoo.com",
56                cat: ["marketing"]
57            }, {
58                domain: "addtoany.com",
59                cat: ["marketing"]
60            }, {
61                domain: "dailymotion.com",
62                cat: ["marketing"]
63            }, {
64                domain: "amazon-adsystem.com",
65                cat: ["marketing"]
66            }]
67        },
68        Events: {
69            onLoad: "BBCookieManagerOnLoad",
70            onAccept: "BBCookieManagerOnAccept",
71            onWidthdraw: "BBCookieManagerOnWithdraw",
72            onDialogInit: "BBCookieManagerOnDialogInit",
73            onDialogDisplay: "BBCookieManagerOnDialogDisplay",
74            onDialogSettingsInit: "BBCookieManagerOnDialogSettingsInit",
75            onDialogSettingsDisplay: "BBCookieManagerOnDialogSettingsDisplay",
76            onDecline: "BBCookieManagerOnDecline"
77        }
78    };
79    return e
80}(), Helper = {
81    settings: {
82        enableLogger: !1,
83        scriptId: "BBCookieConsentRur",
84        scriptDecId: "BBCookieConsentDecBuilder",
85        scriptCsId: "BBCookieConsentDec",
86        scriptPsId: "BBPolicyConsentRur",
87        scriptOoId: "BBOptIOConsentRur",
88        scriptWOId: "BBWhistleOpsManagerRur",
89        scriptOcId: "BBOptIOConfirmator",
90        bbCDN: "https://cdn.2b-advice.com/psf",
91        configUrl: "https://prime-psf.2b-advice.com/statementmanager",
92        blobEndpoint: "https://prime-psf.2b-advice.com/statementmanager/v1/attachments",
93        errorMessage: "Oops, file is not uploaded. Please try again later.",
94        maxNumberOfFiles: 10,
95        maxSizeOfFiles: 10485760
96    },
97    getTranslation: function(e, t) {
98        var o = BBCookieManager.configuration.localizations
99          , n = e.replace(/ /g, "").replace(/"/g, "").replace(/{/g, "").replace(/}/g, "").split(".");
100        return o[n[0]][n[1].replace(t, "")]
101    },
102    appendEventListener: function(e, t, o) {
103        e.addEventListener ? e.addEventListener(t, o) : e.attachEvent("on" + t, function() {
104            o.call(e)
105        })
106    },
107    setCookie: function(e, t, o, n) {
108        var i, a = "";
109        o && ((i = new Date).setTime(i.getTime() + 24 * o * 60 * 60 * 1e3),
110        a = "; expires=" + i.toUTCString());
111        var r = e + "=" + (t || "") + a + "; path=/;";
112        if (null !== n)
113            for (var s = JSON.parse(n), c = 0; c < s.length; c++)
114                r += s[c];
115        document.cookie = r
116    },
117    getWildcardCookies: function() {
118        var e = []
119          , t = BBCookieManager.configuration.cookies;
120        if (t && 0 < t.length)
121            for (var o = 0; o < t.length; o++)
122                t[o].name.includes("*") && e.push(t[o].name);
123        return e
124    },
125    getCookieByRelativeName: function(e) {
126        for (var t = e.split("*"), o = this.getWildcardCookies(), n = document.cookie.split(";"), i = 0; i < n.length; i++) {
127            for (var a = n[i]; " " === a.charAt(0); )
128                a = a.substring(1, a.length);
129            var r = a.split("=");
130            if (r && 1 < r.length) {
131                var s = r[0]
132                  , c = [];
133                if (s.startsWith(t[0]) && s.endsWith(t[1]) && s.length >= e.length) {
134                    for (var g = 0; g < o.length; g++) {
135                        var l = o[g].split("*");
136                        s.startsWith(l[0]) && s.endsWith(l[1]) && s.length >= o[g].length && c.push(o[g])
137                    }
138                    if (!(1 < c.length))
139                        return s;
140                    for (var u = {
141                        length: c[0].length,
142                        cName: c[0]
143                    }, d = 1; d < c.length; d++)
144                        c[d].length > u.length && (u = {
145                            length: c[d].length,
146                            cName: c[d]
147                        });
148                    if (u.cName === e)
149                        return s
150                }
151            }
152        }
153        return null
154    },
155    getCookie: function(e) {
156        for (var t = e + "=", o = document.cookie.split(";"), n = 0; n < o.length; n++) {
157            for (var i = o[n]; " " === i.charAt(0); )
158                i = i.substring(1, i.length);
159            if (0 === i.indexOf(t))
160                return i.substring(t.length, i.length)
161        }
162        return null
163    },
164    triggerEvent: function(e, t, o) {
165        var n = document.createEvent("CustomEvent");
166        n.initCustomEvent(t, !0, !0, o),
167        e.dispatchEvent(n)
168    },
169    createElement: function(e) {
170        if (e) {
171            var t = document.createElement("div");
172            return t.innerHTML = e.trim(),
173            t.firstChild
174        }
175        return null
176    },
177    insertAfter: function(e, t) {
178        t.parentNode.insertBefore(e, t.nextSibling)
179    },
180    getLanguage: function() {
181        return (navigator.language || navigator.userLanguage).split("-")[0]
182    },
183    getCookieByName: function(e) {
184        var t = BBCookieManager.configuration.cookies
185          , o = null;
186        if (t && 0 < t.length)
187            for (var n = 0; n < t.length; n++)
188                if (t[n].name.toLowerCase() === e.toLowerCase()) {
189                    o = t[n];
190                    break
191                }
192        return o
193    },
194    setCookieContent: function(e, t, o, n) {
195        var i = document.getElementById(e);
196        i && (n ? i.innerHTML = t : i.innerText = t,
197        i.id += o)
198    },
199    insertContent: function(e, t) {
200        var o = document.getElementById(e);
201        o && o.parentNode.insertBefore(t, o)
202    },
203    hasAttr: function(e, t) {
204        return e.hasAttribute ? e.hasAttribute(t) : !!e.getAttribute(t)
205    },
206    isNotNullOrStringEmpty: function(e) {
207        return null != e && "" !== e
208    },
209    createParamlessUrl: function(e) {
210        if (this.isNotNullOrStringEmpty(e)) {
211            var t = document.createElement("a");
212            t.href = e;
213            var o = t.cloneNode(!1).href;
214            return o.substring(0, o.indexOf("?"))
215        }
216        return null
217    }
218}, BBCookieLogger = {
219    writeToLog: function(e) {
220        Helper.settings.enableLogger && (e.obj ? console.log("[" + e.funcName + "] - ", e.msg, e.obj) : console.log("[" + e.funcName + "] - ", e.msg))
221    }
222}, CookieHelper = {
223    set2BCookie: function(e) {
224        var t = this.getCookieLifeTime()
225          , o = this.isAcceptAllCookieCategories(e) ? t.allAccepted : t.notAllAccepted;
226        Helper.setCookie(BBGlobalSettings.cookieName, e, o, '["secure;"]')
227    },
228    isAcceptAllCookieCategories: function(e) {
229        for (var t = !0, o = JSON.parse(e), n = BBCookieManager.configuration.categoryDefs, i = 0; i < n.length; i++) {
230            if (n[i].countOfCookies && 0 !== n[i].countOfCookies)
231                if (!o[n[i].id]) {
232                    t = !1;
233                    break
234                }
235        }
236        return t
237    },
238    getCookieLifeTime: function() {
239        var e = BBCookieManager && BBCookieManager.configuration && BBCookieManager.configuration.cookieLifetime ? BBCookieManager.configuration.cookieLifetime : {
240            allAccepted: null,
241            notAllAccepted: null
242        };
243        return null === e.allAccepted && (e.allAccepted = 365),
244        null === e.notAllAccepted && (e.notAllAccepted = 365),
245        e
246    },
247    getCategoryCookies: function(t, e) {
248        return e.filter(function(e) {
249            return e.cat === t
250        })
251    },
252    getCategoryInfo: function(e, t) {
253        return e.filter(function(e) {
254            return e.id === t
255        })
256    },
257    fillCategoryLabelText: function(e, t, o) {
258        var n = document.getElementById("bbcdCategoryLabel_" + o);
259        n && (n.id += t,
260        n.innerHTML = Helper.getTranslation("dynamic.title-" + e.id));
261        var i = document.getElementById("bbcdCount");
262        i && (i.id += t,
263        i.innerHTML = e.countOfCookies)
264    },
265    insertNode: function(e, t, o, n, i) {
266        return n < BBCookieManager.configuration.categoryDefs.length && (o.appendChild(e),
267        e = document.getElementById(i).cloneNode(!0)),
268        e
269    },
270    insertCookieNode: function(e, t, o, n, i) {
271        document.getElementById("bbcdSelectedCookies_" + i).id += t;
272        var a = document.getElementById("bbcdCategoryDescription_" + i);
273        a && (a.innerHTML = Helper.getTranslation("dynamic.description-" + o),
274        a.id += t);
275        var r = document.getElementById("bbcdCookies_" + i);
276        if (r && (r.id += t,
277        h = document.getElementById("bbcdCookie_" + i))) {
278            var s = BBCookieManager.configuration.cookies
279              , c = Helper.getTranslation("static.bbcdCookiesExpiry", i)
280              , g = Helper.getTranslation("static.bbcdCookiesProvider", i)
281              , l = !0
282              , u = s.filter(function(e) {
283                return e.cat === o
284            });
285            u && 0 < u.length && (l = !1);
286            for (var d = 0; d < u.length; d++) {
287                var m, B, h, p = t + "-" + d;
288                (h = document.getElementById("bbcdCookie_" + i)) && (m = h.cloneNode(!0),
289                h.id += p,
290                Helper.setCookieContent("bbcdCookieTitle_" + i, u[d].name, p, !1),
291                Helper.setCookieContent("bbcdCookieDescription_" + i, u[d].description, p, !1),
292                Helper.setCookieContent("bbcdCookieExpiry_" + i, c, p, !1),
293                Helper.setCookieContent("bbcdCookieExpiryText_" + i, u[d].expire, p, !1),
294                B = u[d].provider && "" !== u[d].provider,
295                Helper.setCookieContent("bbcdCookieProvider_" + i, B || u[d].domain && "" !== u[d].domain ? g : "", p, !1),
296                Helper.setCookieContent("bbcdCookieProviderText_" + i, B ? u[d].provider : u[d].domain, p, B)),
297                d < u.length - 1 && r.appendChild(m)
298            }
299            l && h && r.parentNode.removeChild(r)
300        }
301    },
302    cloneScriptElement: function(e) {
303        var t = document.createElement("script");
304        for (o = 0; o < e.attributes.length; o++)
305            void 0 !== e.attributes[o].value && "" !== e.attributes[o].value && t.setAttribute(e.attributes[o].name, e.attributes[o].value);
306        return Helper.hasAttr(e, "nomodule") && t.setAttribute("nomodule", ""),
307        void 0 !== e.text && (t.text = e.text),
308        t.setAttribute("type", "text/javascript"),
309        t
310    }
311}, renderEnum = {
312    auto: "auto",
313    ondemand: "ondemand"
314}, ConfigHelper = {
315    isValidGuid: function(e) {
316        return !!(0 < e.length && /^(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}$/.test(e))
317    },
318    getStatementIdFromScript: function(e) {
319        return Helper.hasAttr(e, "data-bbcid") ? e.getAttribute("data-bbcid") : this.getUrlParam("bbcid", e)
320    },
321    createConfigScript: function(e, t) {
322        var o, n, i;
323        return !e || (o = this.getStatementIdFromScript(e)) && "" !== o && this.isValidGuid(o) && (n = Helper.hasAttr(e, "data-language") ? e.getAttribute("data-language") : this.getUrlParam("language", e),
324        i = t + "/" + o.toLowerCase() + "/bb-config.js",
325        n && "" !== n && (i += "?lang=" + n),
326        i += (-1 < i.indexOf("?") ? "&" : "?") + "rnd=" + (new Date).getTime()),
327        {
328            serialNumber: o,
329            srcValue: i
330        }
331    },
332    getUrlParam: function(e, t) {
333        if (t && (e = new RegExp("[?&]" + encodeURIComponent(e) + "=([^&#]*)").exec(t.src)))
334            return decodeURIComponent(e[1].replace(/\+/g, " "))
335    },
336    callScript: function(e, t, o) {
337        var n = document.getElementsByTagName("script")[0]
338          , i = document.createElement("script");
339        i.type = "text/javascript",
340        i.charset = "UTF-8",
341        t && (i.async = "async"),
342        i.src = e,
343        i.onload = i.onreadystatechange = function(e, t) {
344            !t && i.readyState && !/loaded|complete/.test(i.readyState) || (i.onload = i.onreadystatechange = null,
345            t || o && o(!0))
346        }
347        ,
348        i.onerror = function() {
349            o && o(!1)
350        }
351        ,
352        n.parentNode.insertBefore(i, n)
353    },
354    getRenderMode: function(e) {
355        var t = Helper.hasAttr(e, "data-rendermode") ? e.getAttribute("data-rendermode") : null;
356        return t && "" !== t && renderEnum.hasOwnProperty(t) ? t : renderEnum.auto
357    }
358};
359function CookieManagerAPI() {
360    this.renderCookieDeclaration = function(e) {
361        "undefined" != typeof BBCookieDeclarationManager && (BBCookieLogger.writeToLog({
362            funcName: "renderCookieDeclaration",
363            msg: "call API and insert into parent: ",
364            obj: e
365        }),
366        BBCookieDeclarationManager.renderCookieDeclaration(e))
367    }
368    ,
369    this.renderPolicyDeclaration = function(e) {
370        "undefined" != typeof BBPolicyManager && (BBCookieLogger.writeToLog({
371            funcName: "renderPolicyDeclaration",
372            msg: "call API and insert into parent: ",
373            obj: e
374        }),
375        BBPolicyManager.renderPolicyDeclaration(e))
376    }
377    ,
378    this.showBanner = function() {
379        psm && (BBCookieLogger.writeToLog({
380            funcName: "showBanner",
381            msg: "call API"
382        }),
383        psm.renew())
384    }
385    ,
386    this.showSettings = function() {
387        var e = new BannerSettings;
388        e && (BBCookieLogger.writeToLog({
389            funcName: "showSettings",
390            msg: "call API"
391        }),
392        e.init(),
393        e.show())
394    }
395    ,
396    this.withdraw = function() {
397        void 0 !== BBCookieManager && (BBCookieLogger.writeToLog({
398            funcName: "withdraw",
399            msg: "call API"
400        }),
401        BBCookieManager.withdraw())
402    }
403    ,
404    this.callbackByCategory = function(e, t) {
405        void 0 !== BBCookieManager && "" !== e && (BBCookieLogger.writeToLog({
406            funcName: "callbackByCategory",
407            msg: "call API - execute calback for category: ",
408            obj: e
409        }),
410        (void 0 === BBCookieManager.consent[e.toLowerCase()] || BBCookieManager.consent[e.toLowerCase()] || "ignore" === e.toLowerCase()) && t && t())
411    }
412    ,
413    this.setCookie = function(e, t, o) {
414        var n, i, a, r;
415        void 0 !== BBCookieManager && (BBCookieLogger.writeToLog({
416            funcName: "setCookie",
417            msg: "call API - set cookie: ",
418            obj: e
419        }),
420        n = !1,
421        (i = Helper.getCookieByName(e)) && "" !== i && void 0 !== BBCookieManager.consent[i.cat.toLowerCase()] && !BBCookieManager.consent[i.cat.toLowerCase()] || (n = !0),
422        n && (a = "",
423        o && ((r = new Date).setTime(r.getTime() + 60 * o * 60 * 1e3),
424        a = "; expires=" + r.toUTCString()),
425        document.cookie = e + "=" + (t || "") + a))
426    }
427    ,
428    this.registerEvent = function(e, t) {
429        BBCookieLogger.writeToLog({
430            funcName: "registerEvent",
431            msg: "call API - register function for even: ",
432            obj: e
433        }),
434        window.addEventListener(e, function(e) {
435            t && t()
436        })
437    }
438    ,
439    this.appendSrcTag = function(e, t, o) {
440        var n;
441        e && o && void 0 !== BBCookieManager && (BBCookieLogger.writeToLog({
442            funcName: "appendSrcTag",
443            msg: "call API - append element for category: " + t,
444            obj: e
445        }),
446        "SCRIPT" === e.tagName ? (Helper.hasAttr(e, "src") && BBCookieManager.preloadMutationScript(e.src),
447        e.setAttribute(BBCookieManager.cookieElemData, t),
448        e.origScriptType = e.type,
449        e.origOuterHTML = e.outerHTML,
450        e.type = "text/plain") : BBCookieManager.isCheckedSrcTagElement(e.tagName) && (e.setAttribute(BBCookieManager.cookieElemData, t),
451        "" !== (n = Helper.hasAttr(e, "src") ? e.getAttribute("src") : "") && (e.setAttribute("data-src", n),
452        e.removeAttribute("src"))),
453        o.appendChild(e))
454    }
455    ,
456    this.runSrcTags = function() {
457        if (void 0 !== BBCookieManager) {
458            BBCookieLogger.writeToLog({
459                funcName: "runSrcTags",
460                msg: "call API - run src elements"
461            });
462            for (var e = document.getElementsByTagName("script"), t = [], o = 0; o < e.length; o++)
463                e[o].hasAttribute("type") && "text/plain" === e[o].getAttribute("type").toLowerCase() && t.push(e[o]);
464            BBCookieManager.runScripts(t)
465        }
466    }
467}
468"undefined" == typeof BBCookieControler && (BBCookieControler = {}),
469BBCookieControler.start = function(e) {
470    this.cookieElemData = "data-bbcc",
471    this.cookieCssClass = "bbcc",
472    this.cookieName = e,
473    this.source = null,
474    this.deferMutations = [],
475    this.nonDeferMutations = [],
476    this.srcTagsMutations = [],
477    this.isAutoBlockingMode = !0,
478    this.cookieValues = "",
479    this.consented = !1,
480    this.doManualMutation = !1,
481    this.categoryInformation = [],
482    this.manualMutationDocAttr = [],
483    this.manualMutationOnloadListeners = [],
484    this.mutationAppName = "",
485    this.mutateEventListeners = !1,
486    this.windowOnloadTriggered = !1,
487    this.manualMutationScripts = [],
488    this.manualMutationDeferScripts = [],
489    this.manualMutationEventListeners = [],
490    this.orgDocumentWrite = null,
491    this.configuration = {
492        loaded: !1,
493        tags: [],
494        globalDomains: [],
495        categoryDefs: [],
496        cookies: []
497    },
498    this.consent = {},
499    this.srcTagsElements = ["iframe", "img", "embed", "video", "audio", "picture", "source"],
500    this.mutationDisablingParams = ["elementor-preview"],
501    this.init = function() {
502        if (!navigator.userAgent.match(BBGlobalSettings.robots)) {
503            var t, e = ConfigHelper.getStatementIdFromScript(this.findSource());
504            if ("" !== e && null !== e && "" !== BBGlobalSettings.disabledStatementIds)
505                if (e.match(BBGlobalSettings.disabledStatementIds))
506                    return;
507            this.isPreviewMode() ? (t = this).getConfigurations(function() {
508                var e = t.createDialogScript();
509                ConfigHelper.callScript(e, !0, null)
510            }) : (this.orgDocumentWrite = document.write,
511            "cookie"in document && (this.setConsentFromCookie(),
512            this.setBlockingMode(),
513            this.isAutoBlockingMode && this.initMutationObserver()),
514            window.addEventListener ? window.addEventListener("load", o, !1) : window.attachEvent("onload", o))
515        }
516        function o() {
517            BBCookieManager && !BBCookieManager.doManualMutation && BBCookieManager.doAfterStopMutation(),
518            BBCookieManager.windowOnloadTriggered = !0,
519            window.removeEventListener ? window.removeEventListener("load", o, !1) : window.detachEvent && window.detachEvent("onload", o)
520        }
521    }
522    ,
523    this.doAfterStopMutation = function() {
524        BBCookieLogger.writeToLog({
525            funcName: "doAfterStopMutation",
526            msg: "Start"
527        }),
528        BBCookieManager.stopMutationObserver(),
529        setTimeout(function() {
530            BBCookieManager.triggerGTMEvents(),
531            BBCookieManager.showHideSrcElement(),
532            BBCookieManager.triggerOnloadCallbacks(),
533            BBCookieLogger.writeToLog({
534                funcName: "doAfterStopMutation",
535                msg: "Stop"
536            }),
537            document.write = BBCookieManager.orgDocumentWrite
538        }, 1e3)
539    }
540    ,
541    this.triggerOnloadCallbacks = function() {
542        var e;
543        this.consented && ("function" == typeof BBCookieManagerCallbackOnLoad && BBCookieManagerCallbackOnLoad(),
544        (e = document.createEvent("Event")).initEvent(BBGlobalSettings.Events.onLoad, !0, !0),
545        window.dispatchEvent(e))
546    }
547    ,
548    this.createDialogScript = function() {
549        return Helper.settings.bbCDN + "/js/bb-ui.js"
550    }
551    ,
552    this.setBlockingMode = function() {
553        var e, t = this.findSource();
554        t && (e = t.getAttribute("data-mode"),
555        this.isAutoBlockingMode = !e || "auto" === e.toLowerCase())
556    }
557    ,
558    this.checkScriptAndRunByCategory = function(e, t) {
559        BBCookieLogger.writeToLog({
560            funcName: "checkScriptAndRunByCategory",
561            msg: "Checking script element",
562            obj: e
563        }),
564        BBCookieManager.startJQueryHold();
565        var o = ""
566          , n = ""
567          , i = !1
568          , a = !1;
569        Helper.hasAttr(e, "src") && (o = e.getAttribute("src"),
570        i = !0),
571        Helper.hasAttr(e, "defer") && (a = !0),
572        void 0 !== e.origOuterHTML && (n = this.getCookieCategories(e.origOuterHTML, o, e, !0)),
573        i && "" !== n && 0 <= o.toLocaleLowerCase().indexOf("jquery") && (n = ""),
574        "" !== (n = this.setUserScriptCategory(e, n)) && e.setAttribute(BBCookieManager.cookieElemData, n),
575        BBCookieLogger.writeToLog({
576            funcName: "checkScriptAndRunByCategory",
577            msg: "Category is: " + n
578        });
579        var r, s, c = e.parentNode;
580        "" === n || this.canRunScriptByCategory(e, n) ? "text/plain" === e.type && null !== c ? (BBCookieLogger.writeToLog({
581            funcName: "checkScriptAndRunByCategory",
582            msg: "Run script",
583            obj: e
584        }),
585        (r = CookieHelper.cloneScriptElement(e)).consentProcessed = "1",
586        r.isCloned = !0,
587        s = Helper.hasAttr(r, "nomodule"),
588        !i || a || Helper.hasAttr(e, "async") || s || (r.onload = function() {
589            BBCookieLogger.writeToLog({
590                funcName: "checkScriptAndRunByCategory",
591                msg: "onload method for script:",
592                obj: r
593            }),
594            t && BBCookieManager.checkAndRunByCategory(t)
595        }
596        ,
597        r.onerror = function() {
598            BBCookieLogger.writeToLog({
599                funcName: "checkScriptAndRunByCategory",
600                msg: "onerror method for script:",
601                obj: r
602            }),
603            t && BBCookieManager.checkAndRunByCategory(t)
604        }
605        ),
606        r.origOuterHTML = e.origOuterHTML,
607        void 0 !== e.origScriptType && (r.type = e.origScriptType),
608        BBCookieLogger.writeToLog({
609            funcName: "checkScriptAndRunByCategory",
610            msg: "Insert script clone element",
611            obj: r
612        }),
613        c.insertBefore(r, e),
614        c.removeChild(e),
615        (!i || a || Helper.hasAttr(e, "async") || s) && t && BBCookieManager.checkAndRunByCategory(t)) : t && BBCookieManager.checkAndRunByCategory(t) : (e.type = "text/plain",
616        t && BBCookieManager.checkAndRunByCategory(t))
617    }
618    ,
619    this.checkAndRunByCategory = function(e) {
620        var t, o;
621        BBCookieLogger.writeToLog({
622            funcName: "checkAndRunByCategory",
623            msg: "Start checking script elements",
624            obj: e
625        }),
626        0 < e.length ? "SCRIPT" === (t = e.shift()).tagName ? BBCookieManager.checkScriptAndRunByCategory(t, e) : BBCookieManager.checkAndRunByCategory(e) : 0 < this.deferMutations.length ? (BBCookieLogger.writeToLog({
627            funcName: "checkAndRunByCategory",
628            msg: "Run checking scripts (Defer)"
629        }),
630        BBCookieManager.checkAndRunByCategory(BBCookieManager.deferMutations)) : (BBCookieLogger.writeToLog({
631            funcName: "checkAndRunByCategory",
632            msg: "Finish"
633        }),
634        o = BBCookieManager.createDialogScript(),
635        ConfigHelper.callScript(o, !0, null),
636        setTimeout(function() {
637            BBCookieManager.endJQueryHold(),
638            BBCookieManager.dispatchEventsOnFinish()
639        }, 1e3))
640    }
641    ,
642    this.canRunScriptByCategory = function(e, t) {
643        if ("" !== i && "ignore" === t)
644            return !0;
645        BBCookieManager.fillConsent();
646        var o = "" !== t && null !== t ? t.split(",") : null !== e.getAttribute(this.cookieElemData) ? e.getAttribute(this.cookieElemData).toLowerCase().split(",") : []
647          , n = !0;
648        for (j = 0; j < o.length; j++) {
649            var i = o[j].replace(/^\s*/, "").replace(/\s*$/, "");
650            "" === i || void 0 === BBCookieManager.consent[i.toLowerCase()] || BBCookieManager.consent[i.toLowerCase()] || (n = !1)
651        }
652        return n
653    }
654    ,
655    this.processPostMutations = function() {
656        if (0 < this.srcTagsMutations.length) {
657            for (var e = 0; e < this.srcTagsMutations.length; e++) {
658                var t = this.srcTagsMutations[e];
659                this.processMutation(t, !0)
660            }
661            this.srcTagsMutations = []
662        }
663    }
664    ,
665    this.renewUrl = function(e) {
666        var t = document.createElement("a");
667        return t.href = e,
668        t.cloneNode(!1).href
669    }
670    ,
671    this.manualMutation = function(e) {
672        var t = document.implementation.createHTMLDocument("" + (document.title || ""));
673        document.replaceChild(document.importNode(t.documentElement, !0), document.documentElement);
674        for (var o = 0; o < this.manualMutationDocAttr.length; o++)
675            document.documentElement.setAttribute(this.manualMutationDocAttr[o].name, this.manualMutationDocAttr[o].value);
676        document.documentElement.innerHTML = e;
677        for (var n = 0; n < BBCookieManager.srcTagsElements.length; n++) {
678            var i = document.getElementsByTagName(BBCookieManager.srcTagsElements[n]);
679            if (i && 0 < i.length)
680                for (var a = 0; a < i.length; a++)
681                    Helper.hasAttr(i[a], "src") && (i[a].setAttribute("data-src", i[a].getAttribute("src")),
682                    i[a].removeAttribute("src"))
683        }
684        document.getElementById(Helper.settings.scriptId) || document.head.appendChild(this.source),
685        this.getConfigurations(function() {
686            var e;
687            0 < document.getElementsByTagName("base").length && navigator.userAgent.match(/IEMobile|Trident/i) && (e = document.getElementsByTagName("*"),
688            [].forEach.call(e, function(e) {
689                var t, o;
690                Helper.hasAttr(e, "src") ? e.src = BBCookieManager.renewUrl(e.src) : Helper.hasAttr(e, "href") && (e.href = BBCookieManager.renewUrl(e.href)),
691                "LINK" === e.tagName && Helper.hasAttr(e, "rel") && (t = e.cloneNode(!0),
692                (o = e.parentNode) && (o.insertBefore(t, e),
693                o.removeChild(e)))
694            }));
695            var t = document.getElementsByTagName("script");
696            [].forEach.call(t, function(e) {
697                var t, o, n;
698                BBCookieManager.isBBElem(e) && ((t = Helper.hasAttr(e, "id") ? e.getAttribute("id") : null) !== Helper.settings.scriptCsId && t !== Helper.settings.scriptPsId && t !== Helper.settings.scriptOoId && t !== Helper.settings.scriptOcId && t !== Helper.settings.scriptWOId || (o = e.parentNode,
699                n = CookieHelper.cloneScriptElement(e),
700                Helper.hasAttr(e, "async") && (n.async = "async"),
701                o && (o.insertBefore(n, e),
702                o.removeChild(e)))),
703                e.origOuterHTML = e.outerHTML,
704                Helper.hasAttr(e, "defer") && Helper.hasAttr(e, "src") ? BBCookieManager.manualMutationDeferScripts.push(e) : BBCookieManager.manualMutationScripts.push(e)
705            });
706            for (var o = 0; o < BBCookieManager.srcTagsElements.length; o++) {
707                var n = document.getElementsByTagName(BBCookieManager.srcTagsElements[o]);
708                if (n && 0 < n.length)
709                    for (var i = 0; i < n.length; i++)
710                        BBCookieLogger.writeToLog({
711                            funcName: "manualMutation",
712                            msg: "Check SRC element: ",
713                            obj: n[i]
714                        }),
715                        BBCookieManager.processMutation(n[i], null)
716            }
717            BBCookieManager.checkScriptAndRunByCategoryManual(BBCookieManager.manualMutationScripts)
718        })
719    }
720    ,
721    this.cloneManualEvtListeners = function(e, t) {
722        for (var o = 0; o < this.manualMutationEventListeners.length; o++)
723            this.manualMutationEventListeners[o].target === e && t.addEventListenerBase(this.manualMutationEventListeners[o].type, this.manualMutationEventListeners[o].listener, this.manualMutationEventListeners[o].options)
724    }
725    ,
726    this.checkScriptAndRunByCategoryManual = function(e) {
727        var t, o, n, i, a;
728        BBCookieLogger.writeToLog({
729            funcName: "checkScriptAndRunByCategoryManual",
730            msg: "Start checking script elements",
731            obj: e
732        }),
733        BBCookieManager.startJQueryHold(),
734        0 < e.length ? (t = e.shift(),
735        BBCookieManager.processMutation(t, !0),
736        BBCookieLogger.writeToLog({
737            funcName: "checkScriptAndRunByCategoryManual",
738            msg: "Checking script element",
739            obj: t
740        }),
741        o = t.parentNode,
742        this.isBBElem(t && null !== o) ? BBCookieManager.checkScriptAndRunByCategoryManual(e) : ((n = CookieHelper.cloneScriptElement(t)).type = t.type,
743        this.cloneManualEvtListeners(t, n),
744        i = !(n.consentProcessed = "1"),
745        Helper.hasAttr(t, "src") && (i = !Helper.hasAttr(n, "nomodule")),
746        a = "text/plain" === n.getAttribute("type"),
747        i && !a && (n.onload = function() {
748            BBCookieLogger.writeToLog({
749                funcName: "checkScriptAndRunByCategoryManual",
750                msg: "onload method for script:",
751                obj: n
752            }),
753            BBCookieManager.checkScriptAndRunByCategoryManual(e),
754            BBCookieManager.startJQueryHold()
755        }
756        ,
757        n.onerror = function() {
758            BBCookieLogger.writeToLog({
759                funcName: "checkScriptAndRunByCategoryManual",
760                msg: "onerror method for script:",
761                obj: n
762            }),
763            BBCookieManager.checkScriptAndRunByCategoryManual(e),
764            BBCookieManager.startJQueryHold()
765        }
766        ),
767        BBCookieLogger.writeToLog({
768            funcName: "checkScriptAndRunByCategoryManual",
769            msg: "Insert script clone element",
770            obj: n
771        }),
772        o.insertBefore(n, t),
773        o.removeChild(t),
774        a && (Helper.hasAttr(t, "defer") && i ? this.deferMutations.push(t) : this.nonDeferMutations.push(t)),
775        i && !a || BBCookieManager.checkScriptAndRunByCategoryManual(e))) : 0 < this.manualMutationDeferScripts.length ? (BBCookieLogger.writeToLog({
776            funcName: "checkScriptAndRunByCategoryManual",
777            msg: "Check defer scripts"
778        }),
779        this.checkScriptAndRunByCategoryManual(this.manualMutationDeferScripts)) : setTimeout(function() {
780            BBCookieLogger.writeToLog({
781                funcName: "checkScriptAndRunByCategoryManual",
782                msg: "Finish"
783            }),
784            BBCookieManager.stopMutationOverrideEventListeners(),
785            BBCookieManager.endJQueryHold(),
786            "undefined" == typeof EventTarget && BBCookieManager.dispatchEventsOnFinish(),
787            BBCookieLogger.writeToLog({
788                funcName: "checkScriptAndRunByCategoryManual",
789                msg: "Call do after stop for manual mutation"
790            }),
791            BBCookieManager.doAfterStopMutation()
792        }, 1e3)
793    }
794    ,
795    this.overrideManualMutationEventListeners = function() {
796        var n = this;
797        this.mutateEventListeners = !0,
798        "undefined" != typeof EventTarget && void 0 === EventTarget.prototype.addEventListenerBase && (EventTarget.prototype.addEventListenerBase = EventTarget.prototype.addEventListener,
799        EventTarget.prototype.addEventListener = function(e, t, o) {
800            n.mutateEventListeners && !n.isInternalEventListener(e, this, t) ? "DOMContentLoaded" === e || "load" === e || "onload" === e || "readystatechange" === e ? n.manualMutationOnloadListeners.push({
801                target: this,
802                type: e,
803                listener: t,
804                options: o
805            }) : (n.manualMutationEventListeners.push({
806                target: this,
807                type: e,
808                listener: t,
809                options: o
810            }),
811            this.addEventListenerBase(e, t, o)) : this.addEventListenerBase(e, t, o)
812        }
813        )
814    }
815    ,
816    this.isInternalEventListener = function(e, t) {
817        var o = !1;
818        return "beforescriptexecute" === e && void 0 !== t.origOuterHTML || "load" !== e && "error" !== e && (o = !0),
819        o
820    }
821    ,
822    this.initMutationObserver = function() {
823        document.write = function(e) {
824            BBCookieManager.checkDocumentWriteElement(e)
825        }
826        ;
827        var e = !0;
828        if ("function" != typeof MutationObserver && "object" != typeof MutationObserver && (e = !1),
829        document && document.documentElement && Helper.hasAttr(document.documentElement, "ng-app") && (this.mutationAppName = document.documentElement.getAttribute("ng-app"),
830        document.documentElement.removeAttribute("ng-app")),
831        e && navigator.userAgent.match(/IEMobile|Trident|Edge/i)) {
832            for (var t, o, n, i = 0; i < document.documentElement.attributes.length; i++) {
833                var a = document.documentElement.attributes[i].name
834                  , r = "";
835                document.documentElement.attributes[i].value && (r = document.documentElement.attributes[i].value),
836                this.manualMutationDocAttr.push({
837                    name: a,
838                    value: r
839                })
840            }
841            e = !1,
842            this.overrideManualMutationEventListeners(),
843            window.manualMutation || (this.doManualMutation = !0,
844            window.manualMutation = this.doManualMutation),
845            this.doManualMutation && document.implementation && "function" == typeof document.implementation.createHTMLDocument && ((t = document.implementation.createHTMLDocument("")).documentElement.innerHTML = "<html><head></head><body></body></html>",
846            document.replaceChild(document.importNode(t.documentElement, !0), document.documentElement)),
847            this.doManualMutation && ("function" == typeof window.stop && window.stop(),
848            o = new XMLHttpRequest,
849            n = "",
850            o.onreadystatechange = function() {
851                4 === o.readyState && (n = o.responseText,
852                BBCookieManager.manualMutation(n))
853            }
854            ,
855            o.open("GET", document.URL, !0),
856            o.send(null))
857        }
858        e && (this.mutationObserver = new MutationObserver(this.mutationHandler),
859        this.mutationObserver.observe(document.documentElement, {
860            childList: !0,
861            subtree: !0
862        }),
863        this.configuration.loaded || this.getConfigurations())
864    }
865    ,
866    this.checkDocumentWriteElement = function(e) {
867        var t = Helper.createElement(e);
868        t && t.tagName && BBCookieManager.isCheckedSrcTagElement(t.tagName) ? (t.isDW = !0,
869        BBCookieManager.configuration.loaded ? BBCookieManager.processMutation(t, null) : BBCookieManager.doListForMutation(t)) : t && t.tagName && "SCRIPT" === t.tagName ? BBCookieManager.configuration.loaded ? (t.origScriptType = t.type,
870        t.type = "text/plain",
871        document.body ? document.body.appendChild(t) : document.head.appendChild(t),
872        BBCookieLogger.writeToLog({
873            funcName: "document.write",
874            msg: "Check document write script",
875            obj: t
876        }),
877        BBCookieManager.checkScriptAndRunByCategory(t, null)) : BBCookieManager.doListForMutation(t) : document.body ? document.body.insertAdjacentHTML("beforeend", e) : document.head.insertAdjacentHTML("beforeend", e)
878    }
879    ,
880    this.stopMutationOverrideEventListeners = function() {
881        this.mutateEventListeners && setTimeout(function() {
882            BBCookieManager.mutateEventListeners = !1,
883            BBCookieManager.applyOverrideEventListeners(),
884            "" !== BBCookieManager.mutationAppName && angular && angular.bootstrap && angular.bootstrap(document.documentElement, [BBCookieManager.mutationAppName])
885        }, 1)
886    }
887    ,
888    this.overrideEventOnloaded = [],
889    this.overrideEventOnloading = [],
890    this.applyOverrideEventListeners = function() {
891        for (var e, t = 0; t < this.manualMutationOnloadListeners.length; t++)
892            try {
893                var o = this.manualMutationOnloadListeners[t];
894                if (o.target && null !== o.target && void 0 !== o.target) {
895                    if (o.target.addEventListenerBase(o.type, o.listener, o.options),
896                    (!BBCookieManager.windowOnloadTriggered || o.target !== window && o.target !== document) && o.target !== window && o.target !== document)
897                        try {
898                            (e = document.createEvent("Event")).initEvent(mutationListenert.type, !0, !0),
899                            o.target.dispatchEvent(e)
900                        } catch (t) {}
901                } else {
902                    var n = o.target.toString() + o.type.toString();
903                    BBCookieManager.overrideEventOnloaded.indexOf(n) < 0 && (BBCookieManager.overrideEventOnloaded.push(n),
904                    BBCookieManager.overrideEventOnloading.push({
905                        target: o.target,
906                        type: o.type
907                    }))
908                }
909            } catch (t) {}
910        for (t = 0; t < BBCookieManager.overrideEventOnloading.length; t++)
911            try {
912                (e = document.createEvent("Event")).initEvent(BBCookieManager.overrideEventOnloading[t].type, !0, !0),
913                BBCookieManager.overrideEventOnloading[t].target.dispatchEvent(e)
914            } catch (t) {}
915        !BBCookieManager.windowOnloadTriggered || "function" != typeof window.onload || null !== document.body.getAttribute("onload") && document.body.onload === window.onload || window.onload(),
916        this.manualMutationOnloadListeners = []
917    }
918    ,
919    this.getConfigurations = function(r) {
920        var e = ConfigHelper.createConfigScript(this.findSource(), Helper.settings.configUrl);
921        this.serialNumber = e.serialNumber,
922        this.configuration.tags = [],
923        ConfigHelper.callScript(e.srcValue, !0, function(e) {
924            if (BBCookieManager.configuration.loaded = e,
925            BBCookieManager.configuration.loaded || console.log("The configuration file cannot be downloaded. The current domain name doesn't match with published statement domain name."),
926            0 === BBCookieManager.configuration.globalDomains.length)
927                for (var t = 0; t < BBCookieManager.configuration.tags.length; t++) {
928                    var o, n = BBCookieManager.configuration.tags[t];
929                    !n.url || "" === n.url || "" !== (o = BBCookieManager.getHostnameFromURL(n.url)) && o !== window.location.hostname && BBCookieManager.configuration.globalDomains.push({
930                        domain: o,
931                        cat: n.cat
932                    })
933                }
934            for (var i = BBCookieManager.configuration.categoryDefs, a = 0; a < i.length; a++)
935                BBCookieManager.categoryInformation.push({
936                    id: i[a].id,
937                    countOfCookies: void 0 !== i[a].countOfCookies ? i[a].countOfCookies : CookieHelper.getCategoryCookie
937s(i[a].id, BBCookieManager.configuration.cookies).length
938                });
939            BBCookieManager.configuration.loaded && "undefined" != typeof BBCookieDeclarationManager && BBCookieDeclarationManager.init(),
940            r && r()
941        })
942    }
943    ,
944    this.mutationHandler = function(e, t) {
945        var o = !0;
946        BBCookieManager.configuration.loaded && (o = !1,
947        BBCookieManager.processPostMutations());
948        for (var n = 0; n < e.length; n++) {
949            var i = e[n];
950            if ("childList" === i.type)
951                for (var a = 0; a < i.addedNodes.length; a++) {
952                    var r = i.addedNodes[a];
953                    1 === r.nodeType && void 0 === r.isCloned && !BBCookieManager.isInIgnoredSubtree(r) && (o || "SCRIPT" === r.tagName ? BBCookieManager.doListForMutation(r) : BBCookieManager.processMutation(r, !1))
954                }
955        }
956    }
957    ,
958    this.setUserScriptCategory = function(e, t) {
959        return Helper.hasAttr(e, BBCookieManager.cookieElemData) && (t = e.getAttribute(BBCookieManager.cookieElemData)),
960        t
961    }
962    ,
963    this.processMutation = function(e, t) {
964        BBCookieLogger.writeToLog({
965            funcName: "processMutation",
966            msg: "Start - is set category: " + t,
967            obj: e
968        });
969        var o, n, i, a, r, s, c = !0;
970        !t && this.isBBElem(e) && (c = !1),
971        e.consentProcessed && "1" === e.consentProcessed && (c = !1),
972        c && (BBCookieLogger.writeToLog({
973            funcName: "processMutation",
974            msg: "doMutation"
975        }),
976        n = o = "",
977        i = !1,
978        "SCRIPT" === e.tagName ? (e.consentProcessed = "1",
979        Helper.hasAttr(e, "src") && (n = e.getAttribute("src"),
980        i = !0),
981        t && (void 0 !== e.origOuterHTML ? o = this.getCookieCategories(e.origOuterHTML, n, e, !0) : (o = this.getCookieCategories(e.outerHTML, n, e, !0),
982        null !== e.type && void 0 !== e.type && "" !== e.type && "text/plain" !== e.type && (e.origScriptType = e.type)),
983        o = this.setUserScriptCategory(e, o)),
984        i && "" !== o && 0 <= n.toLocaleLowerCase().indexOf("jquery") && (o = ""),
985        "" !== o && e.setAttribute(BBCookieManager.cookieElemData, o),
986        BBCookieLogger.writeToLog({
987            funcName: "processMutation",
988            msg: "Category name is: " + o
989        }),
990        "" === o || this.canRunScriptByCategory(e, o) ? t && "text/plain" === e.type && (BBCookieLogger.writeToLog({
991            funcName: "processMutation",
992            msg: "Run script",
993            obj: e
994        }),
995        a = e.parentNode,
996        (r = CookieHelper.cloneScriptElement(e)).consentProcessed = "1",
997        r.isCloned = !0,
998        r && (r.origOuterHTML = e.origOuterHTML,
999        void 0 !== e.origScriptType && (r.type = e.origScriptType),
1000        null !== a && (BBCookieLogger.writeToLog({
1001            funcName: "processMutation",
1002            msg: "Insert script clone element",
1003            obj: r
1004        }),
1005        a.insertBefore(r, e),
1006        a.removeChild(e)))) : e.type = "text/plain") : this.isCheckedSrcTagElement(e.tagName) && (BBCookieLogger.writeToLog({
1007            funcName: "processMutation",
1008            msg: "Check src elements",
1009            obj: e
1010        }),
1011        n = Helper.hasAttr(e, "data-src") ? e.getAttribute("data-src") : Helper.hasAttr(e, "src") ? e.getAttribute("src") : "",
1012        o = this.getCookieCategories(e.origOuterHTML, n, e, !0),
1013        "" !== (o = this.setUserScriptCategory(e, o)) && e.setAttribute(this.cookieElemData, o),
1014        s = this.canRunScriptByCategory(e, o),
1015        "" === o || s ? (Helper.hasAttr(e, "data-src") && (e.setAttribute("src", e.getAttribute("data-src")),
1016        e.removeAttribute("data-src"),
1017        this.prepareMediaElement(e)),
1018        e.consentProcessed = "1") : "" === o || s || Helper.hasAttr(e, "data-src") || (e.setAttribute("data-src", e.getAttribute("src")),
1019        e.removeAttribute("src")),
1020        e.isDW && (e.isDW = !1,
1021        document.body ? document.body.appendChild(e) : document.head.appendChild(e))))
1022    }
1023    ,
1024    this.getHashCode = function(e) {
1025        if (!e)
1026            return null;
1027        var t = 0;
1028        if (0 === (e = e.replace(/\r\n|\n|\r|\t|\s/g, "")).length)
1029            return t;
1030        for (var o = 0; o < e.length; o++) {
1031            t = (t << 5) - t + e.charCodeAt(o);
1032            t |= 0
1033        }
1034        return t
1035    }
1036    ,
1037    this.getCookieCategories = function(e, t, o, n) {
1038        for (var i = "", a = 0; a < this.configuration.tags.length; a++) {
1039            var r = this.configuration.tags[a];
1040            if (Helper.isNotNullOrStringEmpty(t) && Helper.isNotNullOrStringEmpty(r.paramlessUrl) && r.paramlessUrl.toLowerCase() === Helper.createParamlessUrl(t.toLowerCase())) {
1041                i = this.cookieCategoriesFromArray(r.cat);
1042                break
1043            }
1044            if (Helper.isNotNullOrStringEmpty(t) && Helper.isNotNullOrStringEmpty(r.url) && r.url.toLowerCase() === t.toLowerCase()) {
1045                i = this.cookieCategoriesFromArray(r.cat);
1046                break
1047            }
1048            if (Helper.isNotNullOrStringEmpty(t) && Helper.isNotNullOrStringEmpty(r.resolvedUrl) && r.resolvedUrl.toLowerCase() === t.toLowerCase()) {
1049                i = this.cookieCategoriesFromArray(r.cat);
1050                break
1051            }
1052            if (o.innerHTML && 5 < o.innerHTML.length) {
1053                if (Helper.isNotNullOrStringEmpty(r.innerHash)) {
1054                    var s = this.getHashCode(o.innerHTML);
1055                    if (null !== s && r.innerHash === s) {
1056                        i = this.cookieCategoriesFromArray(r.cat);
1057                        break
1058                    }
1059                }
1060                if (Helper.isNotNullOrStringEmpty(r.outerHash) && void 0 !== e && "undefined" !== e && null !== (s = this.getHashCode(e)) && r.outerHash === s) {
1061                    i = this.cookieCategoriesFromArray(r.cat);
1062                    break
1063                }
1064            }
1065            if (Helper.isNotNullOrStringEmpty(t) && Helper.isNotNullOrStringEmpty(r.url) && 0 < this.configuration.globalDomains.length) {
1066                var c = this.getHostnameFromURL(t);
1067                if ("" !== c && c !== window.location.hostname)
1068                    for (var g = 0; g < this.configuration.globalDomains.length; g++) {
1069                        var l = this.configuration.globalDomains[g];
1070                        if (c === l.domain) {
1071                            i = this.cookieCategoriesFromArray(l.cat);
1072                            break
1073                        }
1074                    }
1075            }
1076        }
1077        if (n && "" !== t && "" === i) {
1078            var u = t.toLowerCase()
1079              , d = !0;
1080            if (0 === u.indexOf("https://") && 8 < u.length ? u = u.substr(8) : 0 === u.indexOf("http://") && 7 < u.length ? u = u.substr(7) : 0 === u.indexOf("//") && 2 < u.length ? u = u.substr(2) : d = !1,
1081            d && (0 < u.indexOf(":") && (u = u.substr(0, u.indexOf(":"))),
1082            0 < u.indexOf("/") && (u = u.substr(0, u.indexOf("/")))),
1083            3 < u.length)
1084                for (var m = 0; m < BBGlobalSettings.globalDomains.domains.length; m++) {
1085                    var B = BBGlobalSettings.globalDomains.domains[m];
1086                    if (0 <= u.indexOf(B.domain)) {
1087                        i = this.cookieCategoriesFromArray(B.cat);
1088                        break
1089                    }
1090                }
1091        }
1092        return i
1093    }
1094    ,
1095    this.cookieCategoriesFromArray = function(e) {
1096        for (var t = "", o = 0; o < e.length; o++)
1097            "" !== t && (t += ","),
1098            t += e[o];
1099        return "" !== t && "," === t.substr(t.length - 1, 1) && (t = t.substring(0, t.length - 1)),
1100        t
1101    }
1102    ,
1103    this.isCheckedSrcTagElement = function(e) {
1104        for (var t = !1, o = 0; o < BBCookieManager.srcTagsElements.length; o++)
1105            if (BBCookieManager.srcTagsElements[o].toLowerCase() === e.toLowerCase()) {
1106                t = !0;
1107                break
1108            }
1109        return t
1110    }
1111    ,
1112    this.isFriendlyCaptcha = function(t){
1113     return t.getAttribute("data--frc-frame-id")
1114    }
1115    ,
1116    this.isInIgnoredSubtree = function(t) {
1117     return !(!t || "function" != typeof t.closest) && null !== t.closest('[data-bbcc="ignore"]')
1118    }
1119    ,
1120    this.doListForMutation = function(t) {
1121        var e, o, n, i;
1122        "ignore" == t.dataset.bbcc || this.isBBElem(t) || this.isFriendlyCaptcha(t) || ("SCRIPT" !== t.tagName || null !== t.type && void 0 !== t.type && "" !== t.type && "text/javascript" !== t.type && "text/plain" !== t.type ? this.isCheckedSrcTagElement(t.tagName) && Helper.hasAttr(t, "src") && !Helper.hasAttr(t, "data-src") && !Helper.hasAttr(t, "data-lazy-type") && !this.isBBElem(t) && this.getHostnameFromURL(t.src) && (t.origOuterHTML = t.outerHTML,
1123        t.setAttribute("data-src", t.getAttribute("src")),
1124        t.removeAttribute("src"),
1125        (e = t.cloneNode(!0)).isCloned = !0,
1126        (o = t.parentNode).insertBefore(e, t),
1127        o.removeChild(t),
1128        t = null,
1129        this.srcTagsMutations.push(e)) : (BBCookieManager.startJQueryHold(),
1130        t.origOuterHTML = t.outerHTML,
1131        null !== t.type && void 0 !== t.type && "" !== t.type && "text/plain" !== t.type && (t.origScriptType = t.type),
1132        t.type = "text/plain",
1133        n = function(e) {
1134            "text/plain" === t.getAttribute("type") && e.preventDefault(),
1135            t.removeEventListener("beforescriptexecute", n)
1136        }
1137        ,
1138        t.addEventListener("beforescriptexecute", n),
1139        i = !1,
1140        Helper.hasAttr(t, "src") && !Helper.hasAttr(t, "nomodule") && (i = !0,
1141        this.preloadMutationScript(t.src)),
1142        Helper.hasAttr(t, "defer") && i ? this.deferMutations.push(t) : this.nonDeferMutations.push(t)))
1143    }
1144    ,
1145    this.isBBElem = function(e) {
1146        var t, o = !1;
1147        return Helper.hasAttr(e, "src") && (0 !== (t = e.getAttribute("src").toLowerCase()).indexOf(Helper.settings.bbCDN.toLowerCase()) && 0 !== t.indexOf(Helper.settings.configUrl.toLowerCase()) || (o = !0)),
1148        o
1149    }
1150    ,
1151    this.preloadMutationScript = function(e) {
1152        var t = document.createElement("link");
1153        t.href = e,
1154        t.rel = "preload",
1155        t.as = "script",
1156        t.isCloned = !0,
1157        document.head.appendChild(t)
1158    }
1159    ,
1160    this.startJQueryHold = function() {
1161        "undefined" != typeof jQuery && void 0 === window.BBstartJQueryHold && void 0 !== jQuery.holdReady && (window.BBstartJQueryHold = !0,
1162        jQuery.holdReady(!0))
1163    }
1164    ,
1165    this.endJQueryHold = function() {
1166        "undefined" != typeof jQuery && void 0 !== window.BBstartJQueryHold && void 0 !== jQuery.holdReady && jQuery.holdReady(!1)
1167    }
1168    ,
1169    this.getHostnameFromURL = function(e) {
1170        try {
1171            var t = document.createElement("a");
1172            return t.href = e,
1173            t.cloneNode(!1).hostname
1174        } catch (e) {
1175            return ""
1176        }
1177    }
1178    ,
1179    this.runScripts = function(e) {
1180        BBCookieManager.checkSrcTags();
1181        var t = []
1182          , o = []
1183          , n = null === e ? [] : e;
1184        for (i = 0; i < n.length; i++) {
1185            var a = n[i];
1186            Helper.hasAttr(a, BBCookieManager.cookieElemData) && "text/plain" === a.getAttribute("type").toLowerCase() && void 0 === a.cookiesProcessed && (Helper.hasAttr(a, "defer") ? (a.removeAttribute("defer"),
1187            o.push(a)) : t.push(a))
1188        }
1189        for (i = 0; i < o.length; i++)
1190            t.push(o[i]);
1191        BBCookieManager.runScriptTags(t)
1192    }
1193    ,
1194    this.runScriptTags = function(e) {
1195        var t, o, n, i, a;
1196        BBCookieLogger.writeToLog({
1197            funcName: "runScriptTags",
1198            msg: "start for scripts",
1199            obj: e
1200        }),
1201        0 < e.length && (o = (t = e.shift()).parentNode,
1202        Helper.hasAttr(t, this.cookieElemData) && null !== o && this.canRunScriptByCategory(t, null) ? (BBCookieLogger.writeToLog({
1203            funcName: "runScriptTags",
1204            msg: "Run script",
1205            obj: t
1206        }),
1207        t.cookiesProcessed = 1,
1208        n = t.nextElementSibling,
1209        i = CookieHelper.cloneScriptElement(t),
1210        a = Helper.hasAttr(i, "async"),
1211        Helper.hasAttr(i, "src") && !a && (i.onload = function() {
1212            BBCookieLogger.writeToLog({
1213                funcName: "runScriptTags",
1214                msg: "onload method for script",
1215                obj: i
1216            }),
1217            BBCookieManager.runScriptTags(e)
1218        }
1219        ,
1220        i.onerror = function() {
1221            BBCookieLogger.writeToLog({
1222                funcName: "runScriptTags",
1223                msg: "onerror method for script",
1224                obj: i
1225            }),
1226            BBCookieManager.runScriptTags(e)
1227        }
1228        ),
1229        BBCookieLogger.writeToLog({
1230            funcName: "runScriptTags",
1231            msg: "Insert script clone",
1232            obj: i
1233        }),
1234        o.removeChild(t),
1235        o.insertBefore(i, n || null),
1236        !a && Helper.hasAttr(i, "src") || this.runScriptTags(e)) : this.runScriptTags(e))
1237    }
1238    ,
1239    this.checkSrcTags = function() {
1240        for (var e = 0; e < BBCookieManager.srcTagsElements.length; e++)
1241            BBCookieManager.runSrcTags(BBCookieManager.srcTagsElements[e])
1242    }
1243    ,
1244    this.runSrcTags = function(e) {
1245        var t = document.getElementsByTagName(e)
1246          , o = [];
1247        for (i = 0; i < t.length; i++) {
1248            var n = t[i];
1249            Helper.hasAttr(n, this.cookieElemData) && Helper.hasAttr(n, "data-src") && "ignore" !== n.getAttribute(this.cookieElemData).toLowerCase() && o.push(n)
1250        }
1251        for (i = 0; i < o.length; i++) {
1252            n = o[i],
1253            this.preapreDisplayState(n);
1254            var a = n.getAttribute(this.cookieElemData).toLowerCase().split(",")
1255              , r = !0;
1256            for (j = 0; j < a.length; j++) {
1257                var s = a[j].replace(/^\s*/, "").replace(/\s*$/, "");
1258                r && (this.addClass(n, BBCookieManager.cookieCssClass + "-" + s.toLowerCase()),
1259                r = void 0 === BBCookieManager.consent[s.toLowerCase()] || BBCookieManager.consent[s.toLowerCase()])
1260            }
1261            r ? (n.src = n.getAttribute("data-src"),
1262            n.removeAttribute("data-src"),
1263            this.displayElement(n)) : this.hideElement(n)
1264        }
1265    }
1266    ,
1267    this.preapreDisplayState = function(e) {
1268        var t;
1269        void 0 === e.ccDataStyle && (t = "",
1270        window.getComputedStyle && ("" === (t = window.getComputedStyle(e, null).getPropertyValue("display")) ? e.style.display ? e.ccDataStyle = e.style.display : e.ccDataStyle = "block" : e.ccDataStyle = t))
1271    }
1272    ,
1273    this.hasClass = function(e, t) {
1274        return e.className && e.className.match(new RegExp("(\\s|^)" + t + "(\\s|$)"))
1275    }
1276    ,
1277    this.addClass = function(e, t) {
1278        this.hasClass(e, t) || (e.className += " " + t)
1279    }
1280    ,
1281    this.hideElement = function(e) {
1282        e.style.display = "none"
1283    }
1284    ,
1285    this.displayElement = function(e) {
1286        e.style.display = e.ccDataStyle
1287    }
1288    ,
1289    this.showHideSrcElement = function() {
1290        for (var e = document.getElementsByTagName("iframe"), t = 0; t < e.length; t++) {
1291            var o = e[t];
1292            if (Helper.hasAttr(o, this.cookieElemData) && Helper.hasAttr(o, "data-src") && !Helper.hasAttr(o, "src")) {
1293                var n = o.getAttribute(this.cookieElemData).replace("/ /g", "").toLowerCase().split(",");
1294                for (j = 0; j < n.length; j++)
1295                    this.addClass(o, BBCookieManager.cookieCssClass + "-" + n[j].toLowerCase())
1296            }
1297        }
1298        this.fillConsent();
1299        var i = "";
1300        for (var a in BBCookieManager.consent) {
1301            i += ("" === i ? "" : ", ") + "." + BBCookieManager.cookieCssClass + "-" + a
1302        }
1303        for (var r = BBCookieManager.configuration.loaded && "" !== i ? document.querySelectorAll(i) : [], t = 0; t < r.length; t++) {
1304            var s = !0;
1305            for (var c in BBCookieManager.consent)
1306                if (this.hasClass(r[t], BBCookieManager.cookieCssClass + "-" + c) && !BBCookieManager.consent[c]) {
1307                    s = !1;
1308                    break
1309                }
1310            this.preapreDispl
1310ayState(r[t]),
1311            s ? this.displayElement(r[t]) : this.hideElement(r[t])
1312        }
1313    }
1314    ,
1315    this.stopMutationObserver = function() {
1316        void 0 === this.mutationObserver && !this.doManualMutation || (BBCookieManager.processPostMutations(),
1317        BBCookieManager.checkAndRunByCategory(this.nonDeferMutations),
1318        void 0 !== this.mutationObserver && (this.mutationObserver.disconnect(),
1319        this.mutationObserver = null))
1320    }
1321    ,
1322    this.fillConsent = function() {
1323        if (BBCookieManager.cookieValues && "" !== BBCookieManager.cookieValues && BBCookieManager.canDoAction())
1324            for (var e in BBCookieManager.consented = !0,
1325            BBCookieManager.cookieValues)
1326                BBCookieManager.consent[e] = BBCookieManager.cookieValues[e];
1327        else if (BBCookieManager.consented = !1,
1328        BBCookieManager.configuration.categoryDefs && 0 < BBCookieManager.configuration.categoryDefs.length)
1329            for (var t = 0; t < BBCookieManager.configuration.categoryDefs.length; t++) {
1330                var o = BBCookieManager.configuration.categoryDefs[t].id.toLowerCase();
1331                BBCookieManager.consent[o] || (BBCookieManager.consent[o] = !!BBCookieManager.configuration.categoryDefs[t].mandatory || !BBCookieManager.canDoAction())
1332            }
1333    }
1334    ,
1335    this.removeDisabledConsent = function() {
1336        if (BBCookieManager.consent) {
1337            var l = this
1338              , e = BBCookieManager.consent;
1339            for (var t in e)
1340                e[t] || function(e) {
1341                    if (!BBCookieManager.configuration || !BBCookieManager.configuration.tags || 0 === BBCookieManager.configuration.tags)
1342                        return;
1343                    for (var t = BBCookieManager.configuration.cookies, o = 0; o < t.length; o++) {
1344                        var n = t[o];
1345                        n.cat === e && function(e) {
1346                            if (e && "" !== e) {
1347                                var t = e.name;
1348                                if (e.name = "" !== t && -1 !== t.indexOf("*") ? Helper.getCookieByRelativeName(t) : t,
1349                                null === e.name)
1350                                    return e.name = t;
1351                                if (e.type === BBGlobalSettings.CookieTypeEnum.Cookie) {
1352                                    var o = window.location.pathname.split("/")
1353                                      , n = window.location.hostname
1354                                      , i = "www" === n.substring(0, 3)
1355                                      , a = e.name
1356                                      , r = ";path="
1357                                      , s = "=;expires=Thu, 01 Jan 1970 00:00:00 GMT"
1358                                      , c = ";domain=";
1359                                    document.cookie = a + s;
1360                                    for (var g = 0; g < o.length; g++)
1361                                        r += ("/" !== r.substr(-1) ? "/" : "") + o[g],
1362                                        document.cookie = a + s + r,
1363                                        document.cookie = a + s + r + c + escape(n),
1364                                        document.cookie = a + s + r + c + "." + escape(n),
1365                                        document.cookie = a + s + r + c + escape(l.getRootDomain(n)),
1366                                        document.cookie = a + s + r + c + "." + escape(l.getRootDomain(n)),
1367                                        i && (document.cookie = a + s + r + c + escape(n.substring(3)))
1368                                } else
1369                                    e.type === BBGlobalSettings.CookieTypeEnum.LocalStorage ? localStorage.removeItem(e.name) : e.type === BBGlobalSettings.CookieTypeEnum.SessionStorage && sessionStorage.removeItem(e.name)
1370                            }
1371                        }(n)
1372                    }
1373                }(t);
1374            var o = new XMLHttpRequest;
1375            o.open("GET", document.URL, !0),
1376            o.send()
1377        }
1378    }
1379    ,
1380    this.setConsentFromCookie = function() {
1381        var e = Helper.getCookie(this.cookieName);
1382        if (this.cookieValues = JSON.parse(e),
1383        this.cookieValues && "" !== this.cookieValues)
1384            for (var t in this.consented = !0,
1385            this.cookieValues)
1386                this.consent[t] = this.cookieValues[t]
1387    }
1388    ,
1389    this.reinitCookies = function() {
1390        this.orgDocumentWrite = document.write,
1391        document.write = function(e) {
1392            BBCookieManager.checkDocumentWriteElement(e)
1393        }
1394        ,
1395        BBCookieLogger.writeToLog({
1396            funcName: "reinitCookies",
1397            msg: "Reinit cookie"
1398        }),
1399        this.cookieValues = null,
1400        this.setConsentFromCookie();
1401        for (var e = 0; e < BBCookieManager.srcTagsElements.length; e++) {
1402            var t = document.getElementsByTagName(BBCookieManager.srcTagsElements[e]);
1403            if (t && 0 < t.length)
1404                for (var o = 0; o < t.length; o++)
1405                    Helper.hasAttr(t[o], BBCookieManager.cookieElemData) && t[o].hasAttribute("src") && t[o].getAttribute("src") && t[o].getAttribute(BBCookieManager.cookieElemData) !== "ignore" && (BBCookieLogger.writeToLog({
1406                        funcName: "reinitCookies",
1407                        msg: "Disabled SRC element: ",
1408                        obj: t[o]
1409                    }),
1410                    t[o].setAttribute("data-src", t[o].getAttribute("src")),
1411                    t[o].removeAttribute("src"))
1412        }
1413        for (var n, i, a, r = document.getElementsByTagName("script"), s = [], c = 0; c < r.length; c++) {
1414            r[c].hasAttribute("type") && Helper.hasAttr(r[c], BBCookieManager.cookieElemData) && ((n = r[c].getAttribute(BBCookieManager.cookieElemData)) && "" !== n && "ignore" !== n && (i = void 0 === BBCookieManager.consent[n.toLowerCase()] || BBCookieManager.consent[n.toLowerCase()],
1415            a = r[c].getAttribute("type"),
1416            i && "text/plain" === a && (BBCookieLogger.writeToLog({
1417                funcName: "reinitCookies",
1418                msg: "Enabled script:",
1419                obj: r[c]
1420            }),
1421            s.push(r[c])),
1422            i || (BBCookieLogger.writeToLog({
1423                funcName: "reinitCookies",
1424                msg: "Disabled script:",
1425                obj: r[c]
1426            }),
1427            r[c].removeAttribute("type"),
1428            r[c].setAttribute("type", "text/plain"))))
1429        }
1430        this.removeDisabledConsent(),
1431        this.runScripts(s),
1432        setTimeout(function() {
1433            BBCookieManager.endJQueryHold()
1434        }, 1e3),
1435        document.write = BBCookieManager.orgDocumentWrite
1436    }
1437    ,
1438    this.submitChanges = function() {
1439        BBCookieLogger.writeToLog({
1440            funcName: "submitChanges",
1441            msg: "Do action after submit consent"
1442        }),
1443        this.cookieValues = null,
1444        this.setConsentFromCookie(),
1445        this.triggerGTMEvents(),
1446        this.reinitCookies(),
1447        "function" == typeof BBCookieManagerCallbackOnAccept && BBCookieManagerCallbackOnAccept();
1448        var e = document.createEvent("Event");
1449        e.initEvent(BBGlobalSettings.Events.onAccept, !0, !0),
1450        window.dispatchEvent(e),
1451        this.triggerOnloadCallbacks()
1452    }
1453    ,
1454    this.setMandatoryCategories = function() {
1455        if (BBCookieManager.canDoAction()) {
1456            BBCookieLogger.writeToLog({
1457                funcName: "setMandatoryCategories",
1458                msg: "Set only mandatory categories"
1459            });
1460            for (var e = {}, t = BBCookieManager.configuration.categoryDefs, o = 0; o < t.length; o++) {
1461                var n = t[o].id
1462                  , i = CookieHelper.getCategoryInfo(BBCookieManager.categoryInformation, n);
1463                i && 0 < i.length && 0 < i[0].countOfCookies && (e[n] = t[o].mandatory)
1464            }
1465            BBCookieManager.configuration.version && (e.version = BBCookieManager.configuration.version),
1466            BBCookieLogger.writeToLog({
1467                funcName: "setMandatoryCategories",
1468                msg: "Settings version is: ",
1469                obj: e.version
1470            });
1471            var a = JSON.stringify(e);
1472            CookieHelper.set2BCookie(a),
1473            BBCookieLogger.writeToLog({
1474                funcName: "setMandatoryCategories",
1475                msg: "New cookies are: ",
1476                obj: a
1477            }),
1478            this.reinitCookies()
1479        }
1480    }
1481    ,
1482    this.withdraw = function() {
1483        this.setMandatoryCategories(),
1484        "function" == typeof BBCookieManagerCallbackOnWithdraw && BBCookieManagerCallbackOnWithdraw();
1485        var e = document.createEvent("Event");
1486        e.initEvent(BBGlobalSettings.Events.onWidthdraw, !0, !0),
1487        window.dispatchEvent(e)
1488    }
1489    ,
1490    this.getRootDomain = function(e) {
1491        var t, o = e;
1492        return 0 < e.length && (t = o.split("."),
1493        1 < o.length && (o = t.slice(-2).join("."))),
1494        o
1495    }
1496    ,
1497    this.canDoAction = function() {
1498        return 0 < this.configuration.cookies.length
1499    }
1500    ,
1501    this.findSource = function() {
1502        if (!this.source) {
1503            var e = document.getElementById(Helper.settings.scriptId);
1504            if (e)
1505                this.source = e;
1506            else
1507                for (var t = document.getElementsByTagName("script"), o = 0; o < t.length; o++) {
1508                    var n = t[o];
1509                    if (Helper.hasAttr(n, "src") && 0 < n.getAttribute("src").toLowerCase().indexOf("bbcid=") && 0 < n.getAttribute("src").toLowerCase().indexOf("/bb-manager.js")) {
1510                        this.source = n;
1511                        break
1512                    }
1513                }
1514        }
1515        return this.source
1516    }
1517    ,
1518    this.updateGoogleConsent = function() {
1519        dataLayer.push(arguments)
1520    }
1521    ,
1522    this.triggerGTMEvents = function() {
1523        if ("object" == typeof dataLayer && "function" == typeof dataLayer.push) {
1524            var e = "granted"
1525              , t = "denied"
1526              , o = BBCookieManager.consent
1527              , n = {};
1528            for (var i in o)
1529                "marketing" === i ? (n.ad_storage = o.marketing ? e : t,
1530                n.ad_user_data = o.marketing ? e : t,
1531                n.ad_personalization = o.marketing ? e : t) : "statistic" === i ? n.analytics_storage = o.statistic ? e : t : "preferences" === i ? (n.functionality_storage = o.preferences ? e : t,
1532                n.personalization_storage = o.preferences ? e : t) : "necessary" === i ? n.security_storage = e : "version" !== i && (n[i] = o[i] ? e : t);
1533            this.updateGoogleConsent("consent", "update", n),
1534            this.updateGoogleConsent("set", "ads_data_redaction", !o.marketing),
1535            dataLayer.push({
1536                event: "2bcookie_consent"
1537            })
1538        }
1539    }
1540    ,
1541    this.canInsertElement = function(e) {
1542        if (e) {
1543            var t = BBCookieManager.getCookieCategories(e.outerHTML, e.src, e, !0)
1544              , t = BBCookieManager.setUserScriptCategory(e, t);
1545            return BBCookieManager.canRunScriptByCategory(e, t)
1546        }
1547        return !1
1548    }
1549    ,
1550    this.dispatchEventsOnFinish = function() {
1551        var e = document.createEvent("Event");
1552        e.initEvent("readystatechange", !0, !0),
1553        window.document.dispatchEvent(e),
1554        (e = document.createEvent("Event")).initEvent("DOMContentLoaded", !0, !0),
1555        window.document.dispatchEvent(e),
1556        (e = document.createEvent("Event")).initEvent("load", !0, !0),
1557        window.dispatchEvent(e),
1558        (e = document.createEvent("Event")).initEvent("onload", !0, !0),
1559        window.dispatchEvent(e)
1560    }
1561    ,
1562    this.prepareMediaElement = function(e) {
1563        var t;
1564        "source" === e.tagName.toLowerCase() && (!(t = e.parentNode) || "video" !== t.tagName.toLowerCase() && "audio" !== t.tagName.toLowerCase() || t.load())
1565    }
1566    ,
1567    this.isPreviewMode = function() {
1568        var e = !1;
1569        if (window.top !== window) {
1570            var t = window.location.search;
1571            if (t && "" !== t)
1572                for (var o = new URLSearchParams(t), n = 0; n < this.mutationDisablingParams.length; n++) {
1573                    var i = o.get(this.mutationDisablingParams[n]);
1574                    if (i && "" !== i) {
1575                        e = !0;
1576                        break
1577                    }
1578                }
1579        }
1580        return e
1581    }
1582    ,
1583    this.init(),
1584    BBCookieControler.start.prototype.onload = function() {}
1585}
1586,
1587void 0 === BBCookieManager ? BBCookieManager = new BBCookieControler.start(BBGlobalSettings.cookieName) : BBCookieLogger.writeToLog({
1588    funcName: "BBCookieControler.start()",
1589    msg: "The bb-manager is already initialized"
1590}),
1591void 0 === bbCookieApi && (bbCookieApi = new CookieManagerAPI);

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.